From 5aaf3ddee16917ebb6b05c3548d3052feb601d56 Mon Sep 17 00:00:00 2001 From: dimitrievgs Date: Sun, 12 Oct 2025 00:06:19 +0300 Subject: [PATCH] Add limitation for content length to generate title --- app/graph_history_manager.py | 8 ++++++-- app/title_generator.py | 16 +++++++++++++--- 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/app/graph_history_manager.py b/app/graph_history_manager.py index a1d7c6a..9dfdc46 100644 --- a/app/graph_history_manager.py +++ b/app/graph_history_manager.py @@ -32,8 +32,12 @@ class GraphHistoryManager: self.socketio = None def set_socketio(self, socketio): - socketio = socketio - self.title_generator.socketio = socketio + """ + Устанавливает объект SocketIO для отправки уведомлений генератору заголовков. + @param socketio: Объект SocketIO. + """ + self.socketio = socketio + self.title_generator.set_socketio(socketio) def __del__(self): """ diff --git a/app/title_generator.py b/app/title_generator.py index da3328e..bf45f72 100644 --- a/app/title_generator.py +++ b/app/title_generator.py @@ -11,6 +11,8 @@ from nodes import DEFAULT_SUMMARIZATION_LLM_NAME from llm_client import get_llm from langchain_core.messages import SystemMessage, HumanMessage +MAX_TITLE_GENERATION_CONTENT_LENGTH = 5000 # Максимальное количество символов для генерации заголовков + class TitleGenerator: """Сервис для асинхронной генерации заголовков.""" @@ -33,7 +35,13 @@ class TitleGenerator: Заголовок должен кратко описывать суть сообщения или действия. Заголовок должен быть простым текстом, без какого-либо форматирования или использования специальных символов разметки (например, #, *, _, `). Отвечай только заголовком, без дополнительных объяснений. Ты должен сделать саммери, а не ответить на вопросы, если они есть в сообщении.""" - + def set_socketio(self, socketio): + """ + Устанавливает объект SocketIO для отправки уведомлений. + @param socketio: Объект SocketIO. + """ + self.socketio = socketio + def _get_connection(self): """ Получает соединение с базой данных. @@ -168,7 +176,8 @@ class TitleGenerator: first_user_message = None for msg in messages: if msg.get("role") == "user": - first_user_message = msg.get("content", "") + # Ограничиваем сообщение первыми ... символами для генерации заголовка + first_user_message = msg.get("content", "")[:MAX_TITLE_GENERATION_CONTENT_LENGTH] break if not first_user_message: @@ -218,7 +227,8 @@ class TitleGenerator: # Получаем содержимое узла node_data = target_node.get("data", {}) message = node_data.get("message", {}) - content = message.get("content", "") + # Ограничиваем сообщение первыми ... символами для генерации заголовка + content = message.get("content", "")[:MAX_TITLE_GENERATION_CONTENT_LENGTH] if not content: # Если нет content, используем label или type