From 620a6f1781b7ef9a6a5402ca7dc0838dd5498154 Mon Sep 17 00:00:00 2001 From: lonpatovaadelina Date: Wed, 27 May 2026 14:33:53 +0000 Subject: [PATCH] =?UTF-8?q?Stream-=D1=80=D0=B5=D0=B6=D0=B8=D0=BC=20AI-?= =?UTF-8?q?=D0=B0=D0=B3=D0=B5=D0=BD=D1=82=D0=B0:=20agent.py?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../agent.py | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/solutions/699cc158d6d3a5544a3ed35b_Stream-режим_AI-агента/agent.py b/solutions/699cc158d6d3a5544a3ed35b_Stream-режим_AI-агента/agent.py index d8d2d33..a5a0596 100644 --- a/solutions/699cc158d6d3a5544a3ed35b_Stream-режим_AI-агента/agent.py +++ b/solutions/699cc158d6d3a5544a3ed35b_Stream-режим_AI-агента/agent.py @@ -5,7 +5,7 @@ from langchain_ollama import ChatOllama from nomic_embed_text import NomicEmbedText from langchain.tools import BaseTool from langchain.schema import HumanMessage, AIMessage, SystemMessage -from langchain.agents import ToolExecutor, AgentExecutor, create_openai_tools_agent +from langchain.agents import AgentExecutor, initialize_agent, load_tools from langchain.prompts import ChatPromptTemplate # ---------- Настройки LLM и эмбеддингов ---------- @@ -29,7 +29,6 @@ class DummyTool(BaseTool): tool = DummyTool() tools = [tool] -tools_dict = {t.name: t for t in tools} # ---------- Создание агента ---------- prompt_template = ChatPromptTemplate.from_messages( @@ -39,8 +38,13 @@ prompt_template = ChatPromptTemplate.from_messages( ] ) -agent = create_openai_tools_agent(llm, tools, prompt=prompt_template) -executor = AgentExecutor(agent=agent, tools=tools, verbose=False) +agent_executor = initialize_agent( + tools, + llm, + agent="openai-tools", + verbose=False, + prompt=prompt_template, +) # ---------- Функции форматирования ---------- def format_message(message) -> str: @@ -66,8 +70,9 @@ def run_agent(user_input: str): global step step = 1 # Инициализируем состояние с пользовательским сообщением - init_state = {"messages": [HumanMessage(content=user_input)]} - stream = executor.stream(init_state, stream_mode=["messages", "updates"]) + init_state = {"input": user_input} + # В LangChain 0.2 AgentExecutor имеет метод stream() + stream = agent_executor.stream(init_state, stream_mode=["messages", "updates"]) for chunk_type, chunk_data in stream: if chunk_type == "messages":