Add limitation for content length to generate title

This commit is contained in:
dimitrievgs 2025-10-12 00:06:19 +03:00
parent 45d892127d
commit 5aaf3ddee1
2 changed files with 19 additions and 5 deletions

View File

@ -32,8 +32,12 @@ class GraphHistoryManager:
self.socketio = None self.socketio = None
def set_socketio(self, socketio): 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): def __del__(self):
""" """

View File

@ -11,6 +11,8 @@ from nodes import DEFAULT_SUMMARIZATION_LLM_NAME
from llm_client import get_llm from llm_client import get_llm
from langchain_core.messages import SystemMessage, HumanMessage from langchain_core.messages import SystemMessage, HumanMessage
MAX_TITLE_GENERATION_CONTENT_LENGTH = 5000 # Максимальное количество символов для генерации заголовков
class TitleGenerator: class TitleGenerator:
"""Сервис для асинхронной генерации заголовков.""" """Сервис для асинхронной генерации заголовков."""
@ -33,6 +35,12 @@ class TitleGenerator:
Заголовок должен кратко описывать суть сообщения или действия. Заголовок должен быть простым текстом, без какого-либо форматирования или использования Заголовок должен кратко описывать суть сообщения или действия. Заголовок должен быть простым текстом, без какого-либо форматирования или использования
специальных символов разметки (например, #, *, _, `). Отвечай только заголовком, без дополнительных объяснений. Ты должен сделать саммери, а не ответить на вопросы, если они есть в сообщении.""" специальных символов разметки (например, #, *, _, `). Отвечай только заголовком, без дополнительных объяснений. Ты должен сделать саммери, а не ответить на вопросы, если они есть в сообщении."""
def set_socketio(self, socketio):
"""
Устанавливает объект SocketIO для отправки уведомлений.
@param socketio: Объект SocketIO.
"""
self.socketio = socketio
def _get_connection(self): def _get_connection(self):
""" """
@ -168,7 +176,8 @@ class TitleGenerator:
first_user_message = None first_user_message = None
for msg in messages: for msg in messages:
if msg.get("role") == "user": if msg.get("role") == "user":
first_user_message = msg.get("content", "") # Ограничиваем сообщение первыми ... символами для генерации заголовка
first_user_message = msg.get("content", "")[:MAX_TITLE_GENERATION_CONTENT_LENGTH]
break break
if not first_user_message: if not first_user_message:
@ -218,7 +227,8 @@ class TitleGenerator:
# Получаем содержимое узла # Получаем содержимое узла
node_data = target_node.get("data", {}) node_data = target_node.get("data", {})
message = node_data.get("message", {}) message = node_data.get("message", {})
content = message.get("content", "") # Ограничиваем сообщение первыми ... символами для генерации заголовка
content = message.get("content", "")[:MAX_TITLE_GENERATION_CONTENT_LENGTH]
if not content: if not content:
# Если нет content, используем label или type # Если нет content, используем label или type