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
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):
"""

View File

@ -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