From 5a1fb4d482141f1e76d47d543748e8d0b2fc42b5 Mon Sep 17 00:00:00 2001 From: dimitrievgs Date: Wed, 24 Sep 2025 02:27:03 +0300 Subject: [PATCH] Add title generator --- app/api.py | 13 +- app/graph_history_manager.py | 306 +++++++++++++++++++++++++++-------- app/llm_client.py | 6 +- app/nodes.py | 2 + app/title_generator.py | 151 +++++++++++++++++ graph_history.db | Bin 65536 -> 462848 bytes run-llm-backend.bat | 5 + 7 files changed, 410 insertions(+), 73 deletions(-) create mode 100644 app/title_generator.py create mode 100644 run-llm-backend.bat diff --git a/app/api.py b/app/api.py index 15865ea..0791cf8 100644 --- a/app/api.py +++ b/app/api.py @@ -8,12 +8,17 @@ from flask import Flask, request, jsonify from flask_cors import CORS from workflows import run_agent, graph_history_manager from llm_client import MODELS # Добавляем импорт списка моделей +from title_generator import TitleGenerator api = Flask(__name__) CORS( api ) # Разрешаем CORS для всех доменов (в production нужно настроить более строго) +# Инициализируем сервис генерации заголовков +title_generator = TitleGenerator(graph_history_manager) +title_generator.start() + @api.route('/api/chat', methods=['POST']) def chat(): @@ -84,4 +89,10 @@ def get_messages_from_root_to_node(graph_id, node_id): @api.route('/api/models', methods=['GET']) def get_available_models(): """API endpoint для получения списка доступных моделей.""" - return jsonify(list(MODELS.keys())) \ No newline at end of file + return jsonify(list(MODELS.keys())) + +@api.teardown_appcontext +def cleanup(error): + """Очистка ресурсов при завершении приложения.""" + if hasattr(api, '_title_generator'): + title_generator.stop() \ No newline at end of file diff --git a/app/graph_history_manager.py b/app/graph_history_manager.py index 416d0ba..1ab084f 100644 --- a/app/graph_history_manager.py +++ b/app/graph_history_manager.py @@ -3,13 +3,15 @@ from typing import Dict, Any, List, Optional import json import sqlite3 -import uuid # Для генерации UUID +import uuid # Для генерации UUID + # ----------------------------------------------- Exceptions ------------------------------------------------------------ class GraphUpdateConflictError(Exception): """Исключение возникает при конфликте обновления графа.""" pass + # ----------------------------------------------- GraphHistoryManager ------------------------------------------------------------ class GraphHistoryManager: """ @@ -28,7 +30,8 @@ class GraphHistoryManager: Получает соединение с базой данных. Устанавливаем таймаут для ожидания блокировки базы данных при конкурентной записи. """ - return sqlite3.connect(self.db_path, timeout=5.0) # Увеличил таймаут до 5 секунд + return sqlite3.connect(self.db_path, + timeout=5.0) # Увеличил таймаут до 5 секунд def _create_tables(self): """Создает таблицы для хранения графов, если они не существуют.""" @@ -38,7 +41,9 @@ class GraphHistoryManager: CREATE TABLE IF NOT EXISTS graphs ( id TEXT PRIMARY KEY, current_node_id TEXT DEFAULT NULL, - timestamp DATETIME DEFAULT CURRENT_TIMESTAMP -- Добавляем метку времени для сортировки + title TEXT DEFAULT NULL, + title_generated BOOLEAN DEFAULT FALSE, + timestamp DATETIME DEFAULT CURRENT_TIMESTAMP ) """) cursor.execute(""" @@ -46,7 +51,9 @@ class GraphHistoryManager: graph_id TEXT NOT NULL, node_id TEXT NOT NULL, node_type TEXT NOT NULL, - node_data TEXT NOT NULL, -- JSON-строка для 'data' из узла + node_data TEXT NOT NULL, + title TEXT DEFAULT NULL, + title_generated BOOLEAN DEFAULT FALSE, PRIMARY KEY (graph_id, node_id), FOREIGN KEY (graph_id) REFERENCES graphs (id) ON DELETE CASCADE ) @@ -63,6 +70,17 @@ class GraphHistoryManager: FOREIGN KEY (target_node_id) REFERENCES graph_nodes_data (node_id) ON DELETE CASCADE ) """) + # Очередь для обработки заголовков + cursor.execute(""" + CREATE TABLE IF NOT EXISTS title_generation_queue ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + item_type TEXT NOT NULL, -- 'graph' or 'node' + graph_id TEXT NOT NULL, + node_id TEXT DEFAULT NULL, -- только для узлов + priority INTEGER DEFAULT 0, -- для приоритета обработки + created_at DATETIME DEFAULT CURRENT_TIMESTAMP + ) + """) conn.commit() # _get_max_graph_id - удален, так как используем UUID для graph_id @@ -71,54 +89,60 @@ class GraphHistoryManager: def _get_graph_nodes(self, conn, graph_id: str) -> List[Dict[str, Any]]: """Извлекает все узлы для заданного графа.""" cursor = conn.cursor() - cursor.execute("SELECT node_id, node_type, node_data FROM graph_nodes_data WHERE graph_id = ?", (graph_id,)) + cursor.execute( + "SELECT node_id, node_type, node_data, title, title_generated FROM graph_nodes_data WHERE graph_id = ?", + (graph_id, )) nodes = [] - for node_id, node_type, node_data_json in cursor.fetchall(): + for node_id, node_type, node_data_json, title, title_generated in cursor.fetchall(): + node_data = json.loads(node_data_json) + # Добавляем заголовок в данные узла + if title and title_generated: + node_data["title"] = title + node_data["title_generated"] = bool(title_generated) + nodes.append({ "id": node_id, "type": node_type, - "data": json.loads(node_data_json) + "data": node_data }) return nodes def _get_graph_edges(self, conn, graph_id: str) -> List[Dict[str, Any]]: """Извлекает все ребра для заданного графа.""" cursor = conn.cursor() - cursor.execute("SELECT edge_id, source_node_id, target_node_id FROM graph_edges_data WHERE graph_id = ?", (graph_id,)) + cursor.execute( + "SELECT edge_id, source_node_id, target_node_id FROM graph_edges_data WHERE graph_id = ?", + (graph_id, )) edges = [] for edge_id, source, target in cursor.fetchall(): - edges.append({ - "id": edge_id, - "source": source, - "target": target - }) + edges.append({"id": edge_id, "source": source, "target": target}) return edges - def _update_graph_current_node_id(self, conn, graph_id: str, new_current_node_id: str): + def _update_graph_current_node_id(self, conn, graph_id: str, + new_current_node_id: str): """Обновляет current_node_id для графа.""" cursor = conn.cursor() - cursor.execute("UPDATE graphs SET current_node_id = ? WHERE id = ?", (new_current_node_id, graph_id)) + cursor.execute("UPDATE graphs SET current_node_id = ? WHERE id = ?", + (new_current_node_id, graph_id)) def _add_graph_node(self, conn, graph_id: str, node: Dict[str, Any]): """Добавляет новый узел в граф. Использует INSERT OR IGNORE для избежания конфликтов.""" cursor = conn.cursor() cursor.execute( "INSERT OR IGNORE INTO graph_nodes_data (graph_id, node_id, node_type, node_data) VALUES (?, ?, ?, ?)", - (graph_id, node["id"], node["type"], json.dumps(node["data"])) - ) + (graph_id, node["id"], node["type"], json.dumps(node["data"]))) def _add_graph_edge(self, conn, graph_id: str, edge: Dict[str, Any]): """Добавляет новое ребро в граф. Использует INSERT OR IGNORE для избежания конфликтов.""" cursor = conn.cursor() cursor.execute( "INSERT OR IGNORE INTO graph_edges_data (graph_id, edge_id, source_node_id, target_node_id) VALUES (?, ?, ?, ?)", - (graph_id, edge["id"], edge["source"], edge["target"]) - ) + (graph_id, edge["id"], edge["source"], edge["target"])) # ----------------------------------------------- Public Methods ------------------------------------------------------------ - def save_graph_changes(self, graph_id: str, - new_nodes: List[Dict[str, Any]], - new_edges: List[Dict[str, Any]], + def save_graph_changes(self, graph_id: str, new_nodes: List[Dict[str, + Any]], + new_edges: List[Dict[str, Any]], current_node_id: str) -> str: """ Сохраняет *изменения* в граф в базе данных. @@ -128,50 +152,78 @@ class GraphHistoryManager: Если graph_id пуст, генерируется новый UUID для графа. """ if not graph_id: - graph_id = str(uuid.uuid4()) # Генерируем новый UUID для ID графа - - with self._get_connection() as conn: # Одна транзакция для всех изменений + graph_id = str(uuid.uuid4()) # Генерируем новый UUID для ID графа + + with self._get_connection( + ) as conn: # Одна транзакция для всех изменений try: # Убедимся, что запись о графе существует в главной таблице `graphs` # INSERT OR IGNORE создаст новую запись, если её нет. # Если граф уже существует, это ничего не изменит. - conn.execute("INSERT OR IGNORE INTO graphs (id) VALUES (?)", (graph_id,)) - + conn.execute("INSERT OR IGNORE INTO graphs (id) VALUES (?)", + (graph_id, )) + + # Проверяем, новый ли это граф + cursor = conn.cursor() + cursor.execute( + "SELECT COUNT(*) FROM graph_nodes_data WHERE graph_id = ?", + (graph_id, )) + existing_nodes_count = cursor.fetchone()[0] + is_new_graph = existing_nodes_count == 0 + # Добавляем новые узлы for node in new_nodes: self._add_graph_node(conn, graph_id, node) + # Добавляем в очередь заголовков с высоким приоритетом + cursor.execute( + "INSERT INTO title_generation_queue (item_type, graph_id, node_id, priority) VALUES (?, ?, ?, ?)", + ("node", graph_id, node["id"], 10)) # Добавляем новые ребра for edge in new_edges: self._add_graph_edge(conn, graph_id, edge) # Обновляем current_node_id - это атомарное изменение в рамках транзакции - self._update_graph_current_node_id(conn, graph_id, current_node_id) + self._update_graph_current_node_id(conn, graph_id, + current_node_id) - conn.commit() # Фиксируем все изменения + # Если новый граф, добавляем его в очередь заголовков + if is_new_graph: + cursor.execute( + "INSERT INTO title_generation_queue (item_type, graph_id, priority) VALUES (?, ?, ?)", + ("graph", graph_id, 10)) + + conn.commit() # Фиксируем все изменения print(f"Изменения графа {graph_id} сохранены.") return graph_id except sqlite3.OperationalError as e: - conn.rollback() # Откатываем транзакцию при ошибке (например, DB Locked) - print(f"Ошибка блокировки SQLite при сохранении изменений графа {graph_id}: {e}") + conn.rollback( + ) # Откатываем транзакцию при ошибке (например, DB Locked) + print( + f"Ошибка блокировки SQLite при сохранении изменений графа {graph_id}: {e}" + ) raise except Exception as e: - conn.rollback() # Откатываем транзакцию при других ошибках + conn.rollback() # Откатываем транзакцию при других ошибках print(f"Ошибка при сохранении изменений графа {graph_id}: {e}") raise - def get_graph(self, graph_id: str, target_node_id: Optional[str] = None) -> Optional[Dict[str, Any]]: + def get_graph( + self, + graph_id: str, + target_node_id: Optional[str] = None) -> Optional[Dict[str, Any]]: """ Получает данные графа по ID из базы данных. """ with self._get_connection() as conn: cursor = conn.cursor() - cursor.execute("SELECT current_node_id FROM graphs WHERE id = ?", (graph_id,)) + cursor.execute("SELECT current_node_id FROM graphs WHERE id = ?", + (graph_id, )) result = cursor.fetchone() if result: db_current_node_id = result[0] - + # Получаем все узлы и ребра graph_nodes = self._get_graph_nodes(conn, graph_id) graph_edges = self._get_graph_edges(conn, graph_id) @@ -179,15 +231,16 @@ class GraphHistoryManager: resolved_current_node_id = target_node_id if target_node_id else db_current_node_id messages = self.get_messages_from_root_to_node( - {"graph_nodes": graph_nodes, "graph_edges": graph_edges}, - resolved_current_node_id - ) + { + "graph_nodes": graph_nodes, + "graph_edges": graph_edges + }, resolved_current_node_id) return { "id": graph_id, "messages": messages, - "graph_nodes": graph_nodes, - "graph_edges": graph_edges, + "graph_nodes": graph_nodes, + "graph_edges": graph_edges, "current_node_id": resolved_current_node_id } else: @@ -200,31 +253,45 @@ class GraphHistoryManager: with self._get_connection() as conn: cursor = conn.cursor() # Сортируем по timestamp по убыванию, чтобы самые новые были сверху - cursor.execute("SELECT id, current_node_id FROM graphs ORDER BY timestamp DESC") + cursor.execute( + "SELECT id, current_node_id, title, title_generated FROM graphs ORDER BY timestamp DESC" + ) graphs_data = cursor.fetchall() summaries = [] - for gid, current_node_id in graphs_data: - graph_nodes = self._get_graph_nodes(conn, gid) - graph_edges = self._get_graph_edges(conn, gid) - - # Получаем все сообщения до current_node_id - full_messages = self.get_messages_from_root_to_node( - {"graph_nodes": graph_nodes, "graph_edges": graph_edges}, - current_node_id - ) - - first_message_content = "No content" - if full_messages: - for msg in full_messages: - if msg.get("role") == "user": - first_message_content = msg.get("content", "No content") - break - if first_message_content == "No content" and full_messages: - first_message_content = full_messages[0].get("content", "No content") - + for gid, current_node_id, title, title_generated in graphs_data: + if title and title_generated: + display_title = title + else: + # Fallback к первому сообщению + graph_nodes = self._get_graph_nodes(conn, gid) + graph_edges = self._get_graph_edges(conn, gid) + + # Получаем все сообщения до current_node_id + full_messages = self.get_messages_from_root_to_node( + { + "graph_nodes": graph_nodes, + "graph_edges": graph_edges + }, current_node_id) + + first_message_content = "No content" + if full_messages: + for msg in full_messages: + if msg.get("role") == "user": + first_message_content = msg.get( + "content", "No content") + break + if first_message_content == "No content" and full_messages: + first_message_content = full_messages[0].get( + "content", "No content") + + # Обрезаем до 50 символов для отображения + display_title = first_message_content[:50] + "..." if len( + first_message_content) > 50 else first_message_content + summaries.append({ "id": gid, - "first_message": first_message_content + "title": display_title, + "title_generated": bool(title_generated) }) return summaries @@ -257,18 +324,22 @@ class GraphHistoryManager: messages_for_path = [] for node_id in path_to_target: node = node_map.get(node_id) - if node and 'message' in node.get('data', {}): # Проверяем наличие поля 'message' + if node and 'message' in node.get( + 'data', {}): # Проверяем наличие поля 'message' original_message = node['data']['message'] messages_for_path.append({ - "role": original_message.get("role", "unknown"), - "type": node.get("type", "unknown"), # Используем 'type' узла - "content": original_message.get("content", ""), - "node_id": original_message.get("node_id", node_id) + "role": + original_message.get("role", "unknown"), + "type": + node.get("type", "unknown"), # Используем 'type' узла + "content": + original_message.get("content", ""), + "node_id": + original_message.get("node_id", node_id) }) return messages_for_path - def delete_graph(self, graph_id: str) -> bool: """ Удаляет граф из базы данных. @@ -277,10 +348,107 @@ class GraphHistoryManager: with self._get_connection() as conn: cursor = conn.cursor() try: - cursor.execute("DELETE FROM graphs WHERE id = ?", (graph_id,)) + cursor.execute("DELETE FROM graphs WHERE id = ?", (graph_id, )) conn.commit() return cursor.rowcount > 0 except Exception as e: conn.rollback() print(f"Ошибка при удалении графа: {e}") - return False \ No newline at end of file + return False + + # ----------------------------------------------- Title Generation Queue Methods ------------------------------------------------------------ + + def add_to_title_queue(self, + item_type: str, + graph_id: str, + node_id: str = None, + priority: int = 0): + """Добавляет элемент в очередь генерации заголовков.""" + with self._get_connection() as conn: + cursor = conn.cursor() + cursor.execute( + "INSERT INTO title_generation_queue (item_type, graph_id, node_id, priority) VALUES (?, ?, ?, ?)", + (item_type, graph_id, node_id, priority)) + conn.commit() + + def get_next_from_title_queue(self) -> Optional[Dict[str, Any]]: + """Получает следующий элемент из очереди для обработки.""" + with self._get_connection() as conn: + cursor = conn.cursor() + cursor.execute(""" + SELECT id, item_type, graph_id, node_id + FROM title_generation_queue + ORDER BY priority DESC, id ASC + LIMIT 1 + """) + result = cursor.fetchone() + if result: + queue_id, item_type, graph_id, node_id = result + # Удаляем из очереди + cursor.execute( + "DELETE FROM title_generation_queue WHERE id = ?", + (queue_id, )) + conn.commit() + return { + "item_type": item_type, + "graph_id": graph_id, + "node_id": node_id + } + return None + + def populate_initial_title_queue(self): + """Заполняет очередь элементами без сгенерированных заголовков при старте сервера.""" + with self._get_connection() as conn: + cursor = conn.cursor() + + # Очищаем существующую очередь + cursor.execute("DELETE FROM title_generation_queue") + + # Добавляем графы без заголовков + cursor.execute( + "SELECT id FROM graphs WHERE title_generated = FALSE OR title_generated IS NULL" + ) + for (graph_id, ) in cursor.fetchall(): + cursor.execute( + "INSERT INTO title_generation_queue (item_type, graph_id, priority) VALUES (?, ?, ?)", + ("graph", graph_id, 1)) + + # Добавляем узлы без заголовков + cursor.execute( + "SELECT graph_id, node_id FROM graph_nodes_data WHERE title_generated = FALSE OR title_generated IS NULL" + ) + for graph_id, node_id in cursor.fetchall(): + cursor.execute( + "INSERT INTO title_generation_queue (item_type, graph_id, node_id, priority) VALUES (?, ?, ?, ?)", + ("node", graph_id, node_id, 1)) + + conn.commit() + + # ----------------------------------------------- Title Update Methods ------------------------------------------------------------ + + def update_graph_title(self, graph_id: str, title: str): + """Обновляет заголовок графа и устанавливает флаг генерации.""" + with self._get_connection() as conn: + cursor = conn.cursor() + cursor.execute( + "UPDATE graphs SET title = ?, title_generated = TRUE WHERE id = ?", + (title, graph_id)) + conn.commit() + + def update_node_title(self, graph_id: str, node_id: str, title: str): + """Обновляет заголовок узла и устанавливает флаг генерации.""" + with self._get_connection() as conn: + cursor = conn.cursor() + # Сначала проверим, существует ли узел + cursor.execute( + "SELECT COUNT(*) FROM graph_nodes_data WHERE graph_id = ? AND node_id = ?", + (graph_id, node_id)) + count = cursor.fetchone()[0] + print(f"Найдено узлов для обновления: {count}") + + cursor.execute( + "UPDATE graph_nodes_data SET title = ?, title_generated = TRUE WHERE graph_id = ? AND node_id = ?", + (title, graph_id, node_id)) + updated_rows = cursor.rowcount + print(f"Обновлено строк: {updated_rows}") + conn.commit() diff --git a/app/llm_client.py b/app/llm_client.py index f223deb..55e53dc 100644 --- a/app/llm_client.py +++ b/app/llm_client.py @@ -17,7 +17,7 @@ MODELS: Dict[str, Dict[str, Any]] = { "name": "gemini-2.0-flash", "provider": "openai", # Изменено на "openai" "model_name": "gemini-2.0-flash", # Добавлено имя модели для LangChain - "apiBase": "https://render-service-gsu7.onrender.com/g/v1beta", + "apiBase": "https://render-service-gsu7.onrender.com/g/v1beta", # "generativelanguage.googleapis.com", # "https://render-service-gsu7.onrender.com/g/v1beta", "apiKey": "AIzaSyDpueKFWVqknVKlQn6TdasLmJ2lvAUiBik", "stream": True, "capabilities": ["vision"], @@ -26,7 +26,7 @@ MODELS: Dict[str, Dict[str, Any]] = { "name": "gemini-2.5-flash", "provider": "openai", # Изменено на "openai" "model_name": "gemini-2.5-flash", # Добавлено имя модели для LangChain - "apiBase": "https://render-service-gsu7.onrender.com/g/v1beta", + "apiBase": "https://render-service-gsu7.onrender.com/g/v1beta", # "generativelanguage.googleapis.com", # "https://render-service-gsu7.onrender.com/g/v1beta", "apiKey": "AIzaSyDpueKFWVqknVKlQn6TdasLmJ2lvAUiBik", "stream": True, "capabilities": ["vision"], @@ -43,7 +43,7 @@ MODELS: Dict[str, Dict[str, Any]] = { "mistral-small-latest": { "name": "mistral-small-latest", "provider": "mistralai", - "baseUrl": "https://render-service-gsu7.onrender.com/m", + "baseUrl": "https://render-service-gsu7.onrender.com/m", # "api.mistral.ai", # "https://render-service-gsu7.onrender.com/m", "apiKey": "Q0m29fvxBY0Cfdj4sjHaKqccy1NjonLW", "stream": True, "capabilities": ["vision"], diff --git a/app/nodes.py b/app/nodes.py index a744514..b6f6666 100644 --- a/app/nodes.py +++ b/app/nodes.py @@ -143,6 +143,8 @@ def execute_command_node(state: AgentState) -> AgentState: DEFAULT_LLM_NAME = "gemini-2.0-flash" #"gemini-2.5-flash" main_llm = get_llm(DEFAULT_LLM_NAME) +DEFAULT_SUMMARIZATION_LLM_NAME = "gemini-2.0-flash" + def call_llm_node(state: AgentState) -> AgentState: """ diff --git a/app/title_generator.py b/app/title_generator.py new file mode 100644 index 0000000..3558b86 --- /dev/null +++ b/app/title_generator.py @@ -0,0 +1,151 @@ +""" +Асинхронный сервис для генерации заголовков графов и узлов. +Работает в фоновом режиме, обрабатывая очередь элементов без заголовков. +""" + +import threading +import time +from typing import Optional +from graph_history_manager import GraphHistoryManager +from nodes import DEFAULT_SUMMARIZATION_LLM_NAME +from llm_client import get_llm +from langchain_core.messages import SystemMessage, HumanMessage + +class TitleGenerator: + """Сервис для асинхронной генерации заголовков.""" + + def __init__(self, history_manager: GraphHistoryManager): + self.history_manager = history_manager + self.llm = get_llm(DEFAULT_SUMMARIZATION_LLM_NAME) + self.running = False + self.thread: Optional[threading.Thread] = None + + # Системные промпты для генерации заголовков + self.graph_title_prompt = """Создай краткий заголовок (максимум 80 символов) для диалога на основе первого сообщения пользователя. +Заголовок должен отражать основную тему или вопрос. Отвечай только заголовком, без дополнительных объяснений. Ты должен сделать саммери, а не ответить на вопросы, если они есть в сообщении.""" + + self.node_title_prompt = """Создай краткий заголовок (максимум 40 символов) для этого сообщения/действия. +Заголовок должен кратко описывать суть сообщения или действия. Отвечай только заголовком, без дополнительных объяснений. Ты должен сделать саммери, а не ответить на вопросы, если они есть в сообщении.""" + + def start(self): + """Запускает фоновый процесс генерации заголовков.""" + if self.running: + return + + self.running = True + + # Заполняем очередь при старте + self.history_manager.populate_initial_title_queue() + + # Запускаем фоновый поток + self.thread = threading.Thread(target=self._process_queue, daemon=True) + self.thread.start() + print("Сервис генерации заголовков запущен") + + def stop(self): + """Останавливает фоновый процесс.""" + self.running = False + if self.thread: + self.thread.join() + print("Сервис генерации заголовков остановлен") + + def _process_queue(self): + """Основной цикл обработки очереди заголовков.""" + while self.running: + try: + item = self.history_manager.get_next_from_title_queue() + + if item: + if item["item_type"] == "graph": + self._generate_graph_title(item["graph_id"]) + elif item["item_type"] == "node": + self._generate_node_title(item["graph_id"], item["node_id"]) + else: + # Если очередь пуста, ждем немного + time.sleep(5) + + except Exception as e: + print(f"Ошибка при обработке очереди заголовков: {e}") + time.sleep(10) + + def _generate_graph_title(self, graph_id: str): + """Генерирует заголовок для графа.""" + try: + graph_data = self.history_manager.get_graph(graph_id) + if not graph_data: + return + + messages = graph_data.get("messages", []) + if not messages: + return + + # Находим первое пользовательское сообщение + first_user_message = None + for msg in messages: + if msg.get("role") == "user": + first_user_message = msg.get("content", "") + break + + if not first_user_message: + return + + # Генерируем заголовок + llm_messages = [ + SystemMessage(content=self.graph_title_prompt), + HumanMessage(content=first_user_message) + ] + + title = self.llm.invoke(llm_messages) + title = title.strip()[:80] # Ограничиваем длину + + # Сохраняем заголовок + self.history_manager.update_graph_title(graph_id, title) + print(f"Сгенерирован заголовок графа {graph_id}: {title}") + + except Exception as e: + print(f"Ошибка генерации заголовка графа {graph_id}: {e}") + + def _generate_node_title(self, graph_id: str, node_id: str): + """Генерирует заголовок для узла.""" + try: + graph_data = self.history_manager.get_graph(graph_id) + if not graph_data: + return + + # Находим узел по ID + target_node = None + for node in graph_data.get("graph_nodes", []): + if node["id"] == node_id: + target_node = node + break + + if not target_node: + return + + # Получаем содержимое узла + node_data = target_node.get("data", {}) + message = node_data.get("message", {}) + content = message.get("content", "") + + if not content: + # Если нет content, используем label или type + content = node_data.get("label", target_node.get("type", "")) + + if not content: + return + + # Генерируем заголовок + llm_messages = [ + SystemMessage(content=self.node_title_prompt), + HumanMessage(content=content) + ] + + title = self.llm.invoke(llm_messages) + title = title.strip()[:40] # Ограничиваем длину + + # Сохраняем заголовок + self.history_manager.update_node_title(graph_id, node_id, title) + print(f"Сгенерирован заголовок узла {node_id}: {title}") + + except Exception as e: + print(f"Ошибка генерации заголовка узла {node_id}: {e}") \ No newline at end of file diff --git a/graph_history.db b/graph_history.db index e820d3e84fea849603833dc691b8c686f98f82c9..51cd0c51468e330233d28f6aa1409f69a1448307 100644 GIT binary patch literal 462848 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 literal 65536 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