From 0189049dd812e541adebfe3faac2c7041861fb29 Mon Sep 17 00:00:00 2001 From: lonpatovaadelina Date: Thu, 28 May 2026 09:59:25 +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 | 33 ++++++------------- 1 file changed, 10 insertions(+), 23 deletions(-) diff --git a/solutions/699cc158d6d3a5544a3ed35b_Stream-режим_AI-агента/agent.py b/solutions/699cc158d6d3a5544a3ed35b_Stream-режим_AI-агента/agent.py index 0978f40..891c73d 100644 --- a/solutions/699cc158d6d3a5544a3ed35b_Stream-режим_AI-агента/agent.py +++ b/solutions/699cc158d6d3a5544a3ed35b_Stream-режим_AI-агента/agent.py @@ -55,7 +55,6 @@ print(f"Человек: {current_wish}\n") print("Джинн:", end=" ", flush=True) -# --- Форматирование --------------------------------------------------------- def format_message(message) -> str: """Возвращает строку, которую нужно вывести в консоль.""" if message.content: @@ -66,21 +65,7 @@ def format_message(message) -> str: return "" -step = 1 - -def format_chunk_message(chunk): - """Обрабатывает чанк типа 'messages'.""" - global step - message, meta = chunk - - if meta["langgraph_step"] != step: - step = meta["langgraph_step"] - print("\n --- --- --- \n") - - if message.content: - # выводим токен без перевода строки, чтобы текст «тёк» - print(message.content, end="", flush=True) - +full_response = "" # --- Потоковый вызов -------------------------------------------------------- stream = human_agent.stream( @@ -98,17 +83,19 @@ stream = human_agent.stream( stream_mode=["messages", "updates"], ) -full_response = "" - for chunk_type, chunk_data in stream: if chunk_type == "messages": - format_chunk_message(chunk_data) - message, _ = chunk_data - full_response += message.content or "" + # chunk_data – список сообщений + for message in chunk_data: + text = format_message(message) + if text: + print(text, end="", flush=True) + full_response += text elif chunk_type == "updates": # событие завершения шага (например, вызов инструмента) - if chunk_data.get("model"): - last_msg = chunk_data["model"]["messages"][-1] + update = chunk_data.get("model") + if update: + last_msg = update["messages"][-1] formatted = format_message(last_msg) if formatted: print(f"\n[Вызов инструмента: {formatted}]")