From bb4ba2644c75c30a4afaf78dc8848bfd3f98805e Mon Sep 17 00:00:00 2001 From: dimitrievgs Date: Tue, 16 Sep 2025 00:14:14 +0300 Subject: [PATCH] changing graph state via atomic changes instead of changing whole graph, ids via uuid --- AsyncTask.md | 196 ++++++++++++++++++++++ app/graph_history_manager.py | 303 ++++++++++++++++++++--------------- app/nodes.py | 50 +++--- app/workflows.py | 37 +++-- graph_history.db | Bin 565248 -> 65536 bytes 5 files changed, 423 insertions(+), 163 deletions(-) create mode 100644 AsyncTask.md diff --git a/AsyncTask.md b/AsyncTask.md new file mode 100644 index 0000000..9ee94a9 --- /dev/null +++ b/AsyncTask.md @@ -0,0 +1,196 @@ +Отличная идея! Гарантировать уникальность `id` узлов и ребер является критически важным для целостности графа. SQLite с `PRIMARY KEY` и `INSERT OR IGNORE` прекрасно с этим справляется, автоматически пропуская попытки вставить уже существующие записи. Если нам не нужна строгая последовательность `id`, а только их уникальность, то это работает очень хорошо. + +Что касается `_get_max_graph_id`, ты прав. Если мы создаём `id` как `graph_1`, `graph_2` и так далее, то `_get_max_graph_id` работает как способ получения **следующего свободного числового суффикса** для нового графа. При этом совершенно неважно, в каком порядке графы были *добавлены* или *изменены* в БД. Важно, что каждый новый граф получит уникальный ID. + +### Детальное ТЗ для изменений + +**Цель:** Обеспечить целостность и конкурентную работу с графами в многопоточной среде Flask, используя SQLite. Предотвратить состояние гонки, гарантировать уникальность ID узлов/ребер и атомарность операций. + +**Основные изменения:** + +1. **Изменение модели хранения графа в БД:** + * Вместо хранения `graph_nodes` и `graph_edges` как JSON-строк в одной строке таблицы `graphs`, будет создано 3 таблицы: + * `graphs`: Основная таблица для информации о графе (`id`, `current_node_id`). + * `graph_nodes_data`: Для хранения каждого узла графа как отдельной записи (`graph_id`, `node_id`, `node_type`, `node_data_json`). + * `graph_edges_data`: Для хранения каждого ребра графа как отдельной записи (`graph_id`, `edge_id`, `source_node_id`, `target_node_id`). + * Это позволит инкрементально добавлять узлы и ребра без перезаписи всего графа целиком. + +2. **Обработка конкуренции:** + * **Удаление `threading.Lock()`:** Мы не будем использовать мьютекс Python для блокировки всего `GraphHistoryManager`. Вместо этого мы будем полагаться на встроенные механизмы конкурентной обработки SQLite и атомарности транзакций. + * **Транзакции:** Все операции по модификации графа (добавление узлов, ребер, обновление `current_node_id`) будут обернуты в одну SQLite транзакцию. Это гарантирует, что либо все изменения будут применены, либо ни одно. + * **`INSERT OR IGNORE`:** В операциях добавления узлов и ребер будет использоваться `INSERT OR IGNORE`. Это важно: если два конкурирующих запроса попытаются добавить один и тот же новый узел/ребро (с одинаковым `id`), первый запрос успешно его добавит, а второй будет проигнорирован без ошибки. Это предотвращает "Invalid ID" ошибки при инкрементальном добавлении. + * **Timeout для подключения SQLite:** Увеличение таймаута при подключении к SQLite (`timeout=5.0`) даст другим потокам больше времени на освобождение блокировки файлов БД при пиковых нагрузках, избегая `sqlite3.OperationalError: database is locked`. + +3. **Генерация ID:** + * `_get_max_graph_id` будет использоваться только для генерации нового уникального `graph_id`, если он не предоставлен вызывающим кодом (т.е. создание нового графа). + * В `nodes.py` генерация `node_id` будет опираться на `UUID`, чтобы гарантировать уникальность без необходимости глобального отслеживания. Это критично, поскольку разные потоки могут одновременно генерировать узлы для разных веток. + +4. **`run_agent` логика:** + * `run_agent` будет загружать полный граф (все узлы и ребра) из `GraphHistoryManager` в начале. + * После выполнения LangGraph, `run_agent` будет сравнивать `final_state.graph_nodes` и `final_state.graph_edges` с исходными загруженными данными, чтобы определить *только новые* узлы и ребра, которые нужно сохранить. + * Затем `graph_history_manager.save_graph_changes` будет вызван с этим списком новых узлов/ребер и новым `current_node_id`. + +**Файлы для изменения:** + +1. `app/graph_history_manager.py` +2. `app/workflows.py` +3. `app/nodes.py` + +--- + +Хорошо, полностью согласен с переходом на UUID для генерации ID графов, узлов и ребер. Это упрощает логику, исключает необходимость в `_get_max_graph_id` и гарантирует глобальную уникальность ID без дополнительных сложностей с нумерацией. + +### Детальное ТЗ для изменений (Обновленное) + +**Цель:** Обеспечить целостность и конкурентную работу с графами в многопоточной среде Flask, используя SQLite. Предотвратить состояние гонки, гарантировать уникальность ID узлов/ребер через UUID и атомарность операций. + +**Основные изменения:** + +1. **Генерация ID с использованием UUID:** + * Все ID для графов (`graph_id`), узлов (`node_id`) и ребер (`edge_id`) будут генерироваться с использованием `uuid.uuid4().hex`. + * Это исключает необходимость в методе `_get_max_graph_id`. + +2. **Изменение модели хранения графа в БД:** (Остается как в предыдущем ТЗ) + * 3 таблицы: `graphs`, `graph_nodes_data`, `graph_edges_data`. + * Инкрементальное добавление узлов и ребер без перезаписи всего графа. + +3. **Обработка конкуренции:** (Остается как в предыдущем ТЗ) + * Удаление `threading.Lock()` из `GraphHistoryManager`. + * Все операции по модификации графа в `save_graph_changes` будут обернуты в одну SQLite транзакцию. + * Использование `INSERT OR IGNORE` для узлов и ребер. + * Timeout при подключении к SQLite (`timeout=5.0`). + +4. **`run_agent` логика:** (Остается как в предыдущем ТЗ) + * `run_agent` будет загружать полный граф (все узлы и ребра) из `GraphHistoryManager` в начале. + * После выполнения LangGraph, `run_agent` будет сравнивать `final_state.graph_nodes` и `final_state.graph_edges` с исходными загруженными данными, чтобы определить *только новые* узлы и ребра, которые нужно сохранить. + * Затем `graph_history_manager.save_graph_changes` будет вызван с этим списком новых узлов/ребер и новым `current_node_id`. + +**Файлы для изменения:** + +1. `app/graph_history_manager.py` +2. `app/workflows.py` +3. `app/nodes.py` + +--- + +### ТЗ для `app/graph_history_manager.py` + +**Цель:** Адаптировать менеджер истории графов для работы с UUID и обеспечить надежное инкрементальное хранение и конкурентный доступ. + +**Изменения:** + +1. **Импорты:** + * Удалить `threading`. + +2. **Удаление `_get_max_graph_id`:** + * Полностью удалить этот метод, так как ID будут генерироваться с помощью UUID. + +3. **Метод `save_graph_changes`:** + * **Генерация `graph_id`**: Если `existing_graph_id` равен `None`, новый `graph_id` генерируется внутри метода с использованием `uuid.uuid4().hex`. + * Пример: `graph_id = uuid.uuid4().hex` + * Логика сохранения остальных изменений остаётся прежней (использование `INSERT OR IGNORE`, транзакции). + * Важно: В `INSERT OR IGNORE INTO graphs (id) VALUES (?)` теперь просто используем сгенерированный или переданный `graph_id`. + +4. **Методы `_add_graph_edge` и `_add_graph_node`:** + * Эти методы должны использовать `INSERT OR IGNORE` для добавления узлов и ребер. Это гарантирует, что если узел или ребро с таким `(graph_id, node_id)` или `(graph_id, edge_id)` уже существует из-за конкурентной операции, попытка вставки будет проигнорирована без ошибки. + * Предполагается, что `node["id"]` и `edge["id"]` уже должны быть UUID, сгенерированными на этапе создания узла/ребра. + * **Внимание для `_add_graph_edge`**: SQL-запрос `FOREIGN KEY` требует, чтобы узлы `source_node_id` и `target_node_id` уже существовали. Если для `INSERT OR IGNORE` возникнет нарушение `FOREIGN KEY`, он все равно выдаст ошибку `IntegrityError`. Нужно убедиться, что узлы всегда добавляются *до* ребер, которые на них ссылаются, что обеспечивается логикой в `workflows.py`. Если мы будем использовать `executescript` как в предыдущем примере, то нужно убедиться, что синтаксис верен для `INSERT OR IGNORE`. Простой `cursor.execute` с `INSERT OR IGNORE` также должен работать, если узлы гарантированно существуют. + + Пример `_add_graph_edge` с `cursor.execute`: + ```python + def _add_graph_edge(self, conn, graph_id: str, edge: Dict[str, Any]): + 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"]) + ) + ``` + Этот вариант предпочтительнее `executescript`, так как он более читаем и безопасен от SQL-инъекций. + +--- + +### ТЗ для `app/workflows.py` + +**Цель:** Адаптировать логику запуска агента для работы с UUID и инкрементального сохранения изменений в графе. + +**Изменения:** + +1. **Импорты:** + * Добавить `import uuid`. + * Удалить `GraphUpdateConflictError` из импортов, так как этот exception больше не используется прямой логикой `run_agent`. + +2. **Метод `run_agent`:** + * **Загрузка графа:** `loaded_graph_data` будет содержать `graph_nodes` и `graph_edges`. + * **Отслеживание исходного состояния:** После загрузки графа, перед вызовом `app.invoke`, необходимо сохранить текущие `graph_nodes` и `graph_edges` из `initial_state` (которые были загружены из БД). Это нужно, чтобы потом определить, какие узлы/ребра являются *новыми*. + * Пример: + ```python + original_nodes_ids = {node['id'] for node in initial_state.graph_nodes} + original_edges_ids = {edge['id'] for edge in initial_state.graph_edges} + ``` + * **Генерация `graph_id` при создании нового графа:** Если `existing_graph_id` равен `None`, то `graph_id` должен быть сгенерирован здесь, до `app.invoke`, и передан в `initial_state`. + * Пример: + ```python + if existing_graph_id is None: + new_graph_id = uuid.uuid4().hex + # Также может быть полезно добавить его в initial_state, если AgentState это поддерживает + # initial_state.graph_id = new_graph_id + ``` + (Или просто передавать `None` в `save_graph_changes` и пусть генерация там происходит). + * **Определение новых узлов и ребер для сохранения:** После получения `final_state` из `app.invoke`: + * Проитерировать `final_state.graph_nodes` и собрать те, `id` которых нет в `original_nodes_ids`. Это будут `newly_added_nodes`. + * Аналогично для `final_state.graph_edges` и `original_edges_ids`, чтобы получить `newly_added_edges`. + * **Вызов `graph_history_manager.save_graph_changes`:** + * Вызвать `save_graph_changes` с `existing_graph_id` (или сгенерированным `new_graph_id` если он новый), `newly_added_nodes`, `newly_added_edges` и `final_state.current_node_id`. + * Пример: + ```python + final_graph_id = existing_graph_id or new_graph_id # если new_graph_id был сгенерирован ранее + graph_id_after_save = graph_history_manager.save_graph_changes( + final_graph_id, newly_added_nodes, newly_added_edges, final_state.current_node_id + ) + ``` + * **Обновление ID в `response_data`**: Убедиться, что `response_data["graph_id"]` содержит актуальный `graph_id_after_save`. + +--- + +### ТЗ для `app/nodes.py` + +**Цель:** Модифицировать генерацию ID узлов и ребер на UUID. + +**Изменения:** + +1. **Импорты:** + * Добавить `import uuid`. + +2. **Генерация `node_id`:** + * Во всех функциях узлов (`parse_command_node`, `call_llm_node`, `generate_images_node`, `analyze_image_node`, `get_meet_subtitles_node`, `get_teams_subtitles_node`, `summarize_history_node`, `handle_error_node`, `help_node`) заменить строки типа `f"llm_{len(state.graph_nodes) + 1}"` на `uuid.uuid4().hex`. + * Это обеспечит уникальность `node_id` каждого нового узла. + +3. **Генерация `edge_id`:** + * При создании ребер (например, `f"e{state.parent_node_id}-{user_node_id}"`) также заменять на `uuid.uuid4().hex`. + * Пример: + ```python + edge_id = uuid.uuid4().hex + state.graph_edges.append({ + "id": edge_id, + "source": state.parent_node_id, + "target": user_node_id + }) + ``` + +--- + +**По поводу фронтенда:** + +**Да, фронтенд, скорее всего, придется менять.** + +Причина в том, что теперь бэкенд ожидает, что вы можете отправить `parent_node_id` в запросах к `/api/chat`. Если ваш фронтенд не был разработан с учетом "продолжения" чата с определенного узла (т.е. просто отправлял `message` и `graph_id`), то теперь ему нужно будет: + +1. **Отслеживать `current_node_id`:** После каждого ответа от бэкенда (`response.graph_visualization_data.current_node_id` или `response.messages[-1].node_id`), фронтенду нужно будет сохранять этот `node_id`. +2. **Отправлять `parent_node_id`:** Когда пользователь хочет продолжить чат с какого-либо узла (например, нажав на него или просто отправляя новый запрос после получения ответа), фронтенд должен будет включать этот `current_node_id` (или `node_id` того узла, с которого он хочет продолжить) в качестве `parent_node_id` в Payload POST-запроса к `/api/chat`. + +Если фронтенд отправляет только `message` и `graph_id`, и вы хотите простой линейный диалог, где новый ответ всегда продолжается с последнего сгенерированного узла, то `parent_node_id` можно не отправлять, и бэкенд будет продолжать с `current_node_id`, который он хранит для `graph_id`. Однако, если вы хотите реализовать возможность "ответить на конкретное сообщение/узел", то `parent_node_id` необходим. + +**Резюме:** + +* **`api.py`:** Нужны изменения, как показано выше. +* **Фронтенд:** Потенциально требует изменений для использования новой функциональности `parent_node_id` и более гибкого управления историей чата/графом. \ No newline at end of file diff --git a/app/graph_history_manager.py b/app/graph_history_manager.py index 6ec81c0..416d0ba 100644 --- a/app/graph_history_manager.py +++ b/app/graph_history_manager.py @@ -1,135 +1,183 @@ -""" -Этот модуль управляет сохранением и извлечением истории графов -запросов, используя SQLite базу данных для хранения данных. -""" - +# отключаем 40-ка строчное ограничение для этого файла +# ----------------------------------------------- Imports ------------------------------------------------------------ from typing import Dict, Any, List, Optional - import json - import sqlite3 +import uuid # Для генерации UUID +# ----------------------------------------------- Exceptions ------------------------------------------------------------ +class GraphUpdateConflictError(Exception): + """Исключение возникает при конфликте обновления графа.""" + pass +# ----------------------------------------------- GraphHistoryManager ------------------------------------------------------------ class GraphHistoryManager: """ Менеджер для хранения истории графов запросов в SQLite. + Использует отдельные таблицы для узлов и ребер для инкрементального обновления. + Обеспечивает конкурентный доступ к разным графам, полагаясь на транзакционность SQLite. """ def __init__(self, db_path="graph_history.db"): self.db_path = db_path - self._create_table(self._get_connection()) # Создаем таблицу при инициализации + self._create_tables() + # ----------------------------------------------- Internal Methods ------------------------------------------------------------ def _get_connection(self): - """Получает соединение с базой данных.""" - return sqlite3.connect(self.db_path) + """ + Получает соединение с базой данных. + Устанавливаем таймаут для ожидания блокировки базы данных при конкурентной записи. + """ + return sqlite3.connect(self.db_path, timeout=5.0) # Увеличил таймаут до 5 секунд - def _create_table(self, conn): - """Создает таблицу для хранения графов, если она не существует.""" + def _create_tables(self): + """Создает таблицы для хранения графов, если они не существуют.""" + with self._get_connection() as conn: + cursor = conn.cursor() + cursor.execute(""" + CREATE TABLE IF NOT EXISTS graphs ( + id TEXT PRIMARY KEY, + current_node_id TEXT DEFAULT NULL, + timestamp DATETIME DEFAULT CURRENT_TIMESTAMP -- Добавляем метку времени для сортировки + ) + """) + cursor.execute(""" + CREATE TABLE IF NOT EXISTS graph_nodes_data ( + graph_id TEXT NOT NULL, + node_id TEXT NOT NULL, + node_type TEXT NOT NULL, + node_data TEXT NOT NULL, -- JSON-строка для 'data' из узла + PRIMARY KEY (graph_id, node_id), + FOREIGN KEY (graph_id) REFERENCES graphs (id) ON DELETE CASCADE + ) + """) + cursor.execute(""" + CREATE TABLE IF NOT EXISTS graph_edges_data ( + graph_id TEXT NOT NULL, + edge_id TEXT NOT NULL, + source_node_id TEXT NOT NULL, + target_node_id TEXT NOT NULL, + PRIMARY KEY (graph_id, edge_id), + FOREIGN KEY (graph_id) REFERENCES graphs (id) ON DELETE CASCADE, + FOREIGN KEY (source_node_id) REFERENCES graph_nodes_data (node_id) ON DELETE CASCADE, + FOREIGN KEY (target_node_id) REFERENCES graph_nodes_data (node_id) ON DELETE CASCADE + ) + """) + conn.commit() + + # _get_max_graph_id - удален, так как используем UUID для graph_id + + # ----------------------------------------------- Graph Node/Edge Access Helpers ------------------------------------------------------------ + def _get_graph_nodes(self, conn, graph_id: str) -> List[Dict[str, Any]]: + """Извлекает все узлы для заданного графа.""" cursor = conn.cursor() - cursor.execute(""" - CREATE TABLE IF NOT EXISTS graphs ( - id TEXT PRIMARY KEY, - graph_nodes TEXT, - graph_edges TEXT, - current_node_id TEXT - ) - """) - conn.commit() + cursor.execute("SELECT node_id, node_type, node_data FROM graph_nodes_data WHERE graph_id = ?", (graph_id,)) + nodes = [] + for node_id, node_type, node_data_json in cursor.fetchall(): + nodes.append({ + "id": node_id, + "type": node_type, + "data": json.loads(node_data_json) + }) + return nodes - def _get_max_graph_id(self, conn): - """Получает максимальный ID графа из базы данных.""" + 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,)) + edges = [] + for edge_id, source, target in cursor.fetchall(): + 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): + """Обновляет current_node_id для графа.""" + cursor = conn.cursor() + 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( - "SELECT MAX(CAST(SUBSTR(id, 7) AS INTEGER)) FROM graphs WHERE id LIKE 'graph_%'" + "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"])) ) - result = cursor.fetchone()[0] - return result if result is not None else 0 - # ---------------------------------------------------- public methods ---------------------------------------------------------------- - def save_graph(self, graph_data: Any) -> str: - """ - Сохраняет или обновляет данные графа в базе данных и возвращает ID. - Не сохраняет полную историю сообщений, только структуру графа. - """ - conn = self._get_connection() + def _add_graph_edge(self, conn, graph_id: str, edge: Dict[str, Any]): + """Добавляет новое ребро в граф. Использует INSERT OR IGNORE для избежания конфликтов.""" cursor = conn.cursor() - try: - graph_id = graph_data.get("id") - if not graph_id: - max_graph_id = self._get_max_graph_id(conn) - next_graph_id = max_graph_id + 1 - graph_id = f"graph_{next_graph_id}" - graph_data["id"] = graph_id + 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"]) + ) - # Преобразуем структуры данных в JSON-строки для хранения в SQLite - graph_nodes_json = json.dumps(graph_data.get("graph_nodes", [])) - graph_edges_json = json.dumps(graph_data.get("graph_edges", [])) - current_node_id = graph_data.get("current_node_id", "") + # ----------------------------------------------- Public Methods ------------------------------------------------------------ + 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: + """ + Сохраняет *изменения* в граф в базе данных. + Добавляет новые узлы и ребра и обновляет current_node_id. + Операции проводятся в рамках одной транзакции. + Конфликты при добавлении существующих узлов/ребер игнорируются. + Если graph_id пуст, генерируется новый UUID для графа. + """ + if not graph_id: + 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,)) + + # Добавляем новые узлы + for node in new_nodes: + self._add_graph_node(conn, graph_id, node) - # Проверяем, существует ли уже запись с таким ID - cursor.execute("SELECT id FROM graphs WHERE id = ?", (graph_id, )) - existing_record = cursor.fetchone() + # Добавляем новые ребра + for edge in new_edges: + self._add_graph_edge(conn, graph_id, edge) - if existing_record: - # Обновляем существующую запись - cursor.execute( - """ - UPDATE graphs SET - graph_nodes = ?, - graph_edges = ?, - current_node_id = ? - WHERE id = ? - """, (graph_nodes_json, graph_edges_json, - current_node_id, graph_id)) - else: - # Вставляем новую запись - cursor.execute( - """ - INSERT INTO graphs (id, graph_nodes, graph_edges, current_node_id) - VALUES (?, ?, ?, ?) - """, (graph_id, graph_nodes_json, - graph_edges_json, current_node_id)) + # Обновляем current_node_id - это атомарное изменение в рамках транзакции + self._update_graph_current_node_id(conn, graph_id, current_node_id) - conn.commit() - print(f"Граф сохранен/обновлен: {graph_id}") - return graph_id - finally: - conn.close() + conn.commit() # Фиксируем все изменения + print(f"Изменения графа {graph_id} сохранены.") + return graph_id + except sqlite3.OperationalError as e: + conn.rollback() # Откатываем транзакцию при ошибке (например, DB Locked) + print(f"Ошибка блокировки SQLite при сохранении изменений графа {graph_id}: {e}") + raise + except Exception as e: + 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]]: """ Получает данные графа по ID из базы данных. - Динамически вычисляет 'messages' до 'target_node_id'. - Если target_node_id не указан, используется current_node_id из БД. """ - conn = self._get_connection() - cursor = conn.cursor() - try: - cursor.execute( - "SELECT graph_nodes, graph_edges, current_node_id FROM graphs WHERE id = ?", - (graph_id, )) + with self._get_connection() as conn: + cursor = conn.cursor() + cursor.execute("SELECT current_node_id FROM graphs WHERE id = ?", (graph_id,)) result = cursor.fetchone() if result: - graph_nodes_json, graph_edges_json, db_current_node_id = result + db_current_node_id = result[0] - # Преобразуем JSON-строки обратно в структуры данных Python - graph_nodes = json.loads(graph_nodes_json) - graph_edges = json.loads(graph_edges_json) + # Получаем все узлы и ребра + graph_nodes = self._get_graph_nodes(conn, graph_id) + graph_edges = self._get_graph_edges(conn, graph_id) resolved_current_node_id = target_node_id if target_node_id else db_current_node_id - # Если нет узлов, значит граф пуст или некорректен - if not graph_nodes: - return { - "id": graph_id, - "messages": [], - "graph_nodes": [], - "graph_edges": [], - "current_node_id": resolved_current_node_id - } - - # Динамически собираем сообщения messages = self.get_messages_from_root_to_node( {"graph_nodes": graph_nodes, "graph_edges": graph_edges}, resolved_current_node_id @@ -137,31 +185,27 @@ class GraphHistoryManager: return { "id": graph_id, - "messages": messages, # Здесь будут вычисленные сообщения - "graph_nodes": graph_nodes, - "graph_edges": graph_edges, + "messages": messages, + "graph_nodes": graph_nodes, + "graph_edges": graph_edges, "current_node_id": resolved_current_node_id } else: return None - finally: - conn.close() def get_all_graphs_summary(self) -> List[Dict[str, str]]: """ - Возвращает краткий список всех сохраненных графов. - Первое сообщение извлекается путем построения пути к current_node_id - и взятия первого сообщения. + Возвращает краткий список всех сохраненных графов, отсортированных по дате добавления. """ - conn = self._get_connection() - cursor = conn.cursor() - try: - cursor.execute("SELECT id, graph_nodes, graph_edges, current_node_id FROM graphs") + with self._get_connection() as conn: + cursor = conn.cursor() + # Сортируем по timestamp по убыванию, чтобы самые новые были сверху + cursor.execute("SELECT id, current_node_id FROM graphs ORDER BY timestamp DESC") graphs_data = cursor.fetchall() summaries = [] - for gid, nodes_json, edges_json, current_node_id in graphs_data: - graph_nodes = json.loads(nodes_json) - graph_edges = json.loads(edges_json) + 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( @@ -171,21 +215,18 @@ class GraphHistoryManager: 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": # Если не нашли пользовательского, берем первое ассистента - first_message_content = full_messages[0].get("content", "No content") + if first_message_content == "No content" and full_messages: + first_message_content = full_messages[0].get("content", "No content") summaries.append({ "id": gid, "first_message": first_message_content }) return summaries - finally: - conn.close() def get_messages_from_root_to_node( self, graph_data: Dict[str, Any], @@ -202,19 +243,15 @@ class GraphHistoryManager: # Создаем словарь для быстрого поиска родительских узлов parent_map = {edge['target']: edge['source'] for edge in edges} - # Функция для рекурсивного подъема по дереву до корневого узла def get_path_to_root(node_id: str) -> List[str]: path = [node_id] current = node_id while current in parent_map: current = parent_map[current] path.append(current) - return path[::-1] # Инвертируем, чтобы получить путь от корня + return path[::-1] - # Получаем путь от корня до целевого узла path_to_target = get_path_to_root(target_node_id) - - # Собираем сообщения, соответствующие узлам в пути. # Сообщения теперь хранятся в 'data' каждого узла при создании. messages_for_path = [] @@ -222,7 +259,6 @@ class GraphHistoryManager: node = node_map.get(node_id) if node and 'message' in node.get('data', {}): # Проверяем наличие поля 'message' original_message = node['data']['message'] - # Извлекаем 'role', 'content' и добавляем 'type' из node['type'] messages_for_path.append({ "role": original_message.get("role", "unknown"), "type": node.get("type", "unknown"), # Используем 'type' узла @@ -232,16 +268,19 @@ class GraphHistoryManager: return messages_for_path + def delete_graph(self, graph_id: str) -> bool: - """Удаляет граф из базы данных.""" - conn = self._get_connection() - cursor = conn.cursor() - try: - cursor.execute("DELETE FROM graphs WHERE id = ?", (graph_id, )) - conn.commit() - return cursor.rowcount > 0 # Возвращает True, если была удалена хотя бы одна строка - except Exception as e: - print(f"Ошибка при удалении графа: {e}") - return False - finally: - conn.close() + """ + Удаляет граф из базы данных. + Благодаря CASCADE, удалит также все узлы и ребра, связанные с этим графом. + """ + with self._get_connection() as conn: + cursor = conn.cursor() + try: + 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 diff --git a/app/nodes.py b/app/nodes.py index 3f694e4..3d6c988 100644 --- a/app/nodes.py +++ b/app/nodes.py @@ -11,6 +11,7 @@ from services import ImageGenerationService, SubtitleService, ImageAnalysisServi from models import AgentState from typing import Dict, Any, Optional +import uuid # Добавлено для генерации UUID class CommandManager: @@ -74,8 +75,8 @@ def parse_command_node(state: AgentState) -> AgentState: print("Выполняется узел: parse_command_node") user_input = state.input.strip() - # Создаем ID для узла пользователя - user_node_id = f"user_{len(state.graph_nodes) + 1}" + # Создаем ID для узла пользователя с помощью UUID + user_node_id = str(uuid.uuid4()) # Добавляем узел пользователя в граф для фронтенда с полным текстом сообщения state.graph_nodes.append({ @@ -89,8 +90,9 @@ def parse_command_node(state: AgentState) -> AgentState: # Добавляем ребро к новому узлу, если есть родительский узел if state.parent_node_id: + edge_id = str(uuid.uuid4()) state.graph_edges.append({ - "id": f"e{state.parent_node_id}-{user_node_id}", + "id": edge_id, "source": state.parent_node_id, "target": user_node_id }) @@ -160,7 +162,7 @@ def call_llm_node(state: AgentState) -> AgentState: response = main_llm.invoke(messages_for_llm) - llm_node_id = f"llm_{len(state.graph_nodes) + 1}" + llm_node_id = str(uuid.uuid4()) # Добавляем узел LLM в граф для фронтенда с полным текстом ответа state.graph_nodes.append({ @@ -171,8 +173,9 @@ def call_llm_node(state: AgentState) -> AgentState: "message": {"role": "assistant", "content": response, "node_id": llm_node_id} # Сохраняем сообщение здесь } }) + edge_id = str(uuid.uuid4()) state.graph_edges.append({ - "id": f"e{state.parent_node_id}-{llm_node_id}", + "id": edge_id, "source": state.parent_node_id, "target": llm_node_id }) @@ -224,7 +227,7 @@ def generate_images_node(state: AgentState) -> AgentState: response_text = f"Сгенерировано {len(urls)} изображений:\n{image_markdown}" state.llm_response = response_text - img_gen_node_id = f"img_gen_{len(state.graph_nodes) + 1}" + img_gen_node_id = str(uuid.uuid4()) # Добавляем узел генерации изображений в граф state.graph_nodes.append({ "id": img_gen_node_id, @@ -235,8 +238,9 @@ def generate_images_node(state: AgentState) -> AgentState: "message": {"role": "assistant", "content": response_text, "node_id": img_gen_node_id} } }) + edge_id = str(uuid.uuid4()) state.graph_edges.append({ - "id": f"e{state.parent_node_id}-{img_gen_node_id}", + "id": edge_id, "source": state.parent_node_id, "target": img_gen_node_id }) @@ -285,7 +289,7 @@ def analyze_image_node(state: AgentState) -> AgentState: response_text = f"Результат анализа изображения '{image_url}': {analysis_result}" state.llm_response = response_text - img_analysis_node_id = f"img_analysis_{len(state.graph_nodes) + 1}" + img_analysis_node_id = str(uuid.uuid4()) # Добавляем узел анализа изображения в граф state.graph_nodes.append({ "id": img_analysis_node_id, @@ -296,8 +300,9 @@ def analyze_image_node(state: AgentState) -> AgentState: "message": {"role": "assistant", "content": response_text, "node_id": img_analysis_node_id} } }) + edge_id = str(uuid.uuid4()) state.graph_edges.append({ - "id": f"e{state.parent_node_id}-{img_analysis_node_id}", + "id": edge_id, "source": state.parent_node_id, "target": img_analysis_node_id }) @@ -334,7 +339,7 @@ def get_meet_subtitles_node(state: AgentState) -> AgentState: response_text = f"Текущие субтитры из Google Meet: {subtitles}" state.llm_response = response_text - meet_subtitles_node_id = f"meet_subtitles_{len(state.graph_nodes) + 1}" + meet_subtitles_node_id = str(uuid.uuid4()) # Добавляем узел субтитров Meet в граф state.graph_nodes.append({ "id": meet_subtitles_node_id, @@ -345,8 +350,9 @@ def get_meet_subtitles_node(state: AgentState) -> AgentState: "message": {"role": "assistant", "content": response_text, "node_id": meet_subtitles_node_id} } }) + edge_id = str(uuid.uuid4()) state.graph_edges.append({ - "id": f"e{state.parent_node_id}-{meet_subtitles_node_id}", + "id": edge_id, "source": state.parent_node_id, "target": meet_subtitles_node_id }) @@ -380,7 +386,7 @@ def get_teams_subtitles_node(state: AgentState) -> AgentState: response_text = f"Текущие субтитры из MS Teams: {subtitles}" state.llm_response = response_text - teams_subtitles_node_id = f"teams_subtitles_{len(state.graph_nodes) + 1}" + teams_subtitles_node_id = str(uuid.uuid4()) # Добавляем узел субтитров Teams в граф state.graph_nodes.append({ "id": teams_subtitles_node_id, @@ -391,8 +397,9 @@ def get_teams_subtitles_node(state: AgentState) -> AgentState: "message": {"role": "assistant", "content": response_text, "node_id": teams_subtitles_node_id} } }) + edge_id = str(uuid.uuid4()) state.graph_edges.append({ - "id": f"e{state.parent_node_id}-{teams_subtitles_node_id}", + "id": edge_id, "source": state.parent_node_id, "target": teams_subtitles_node_id }) @@ -432,7 +439,7 @@ def summarize_history_node(state: AgentState) -> AgentState: response_text = f"История диалога суммирована:\n{summarized_text}" state.llm_response = response_text - summary_node_id = f"summary_{len(state.graph_nodes) + 1}" + summary_node_id = str(uuid.uuid4()) # Добавляем узел суммаризации в граф state.graph_nodes.append({ "id": summary_node_id, @@ -443,8 +450,9 @@ def summarize_history_node(state: AgentState) -> AgentState: "message": {"role": "assistant", "content": response_text, "node_id": summary_node_id} } }) + edge_id = str(uuid.uuid4()) state.graph_edges.append({ - "id": f"e{state.parent_node_id}-{summary_node_id}", + "id": edge_id, "source": state.parent_node_id, "target": summary_node_id }) @@ -474,7 +482,7 @@ def handle_error_node(state: AgentState) -> AgentState: print(f"Выполняется узел: handle_error_node. Ошибка: {state.error}") state.llm_response = state.error - error_node_id = f"error_{len(state.graph_nodes) + 1}" + error_node_id = str(uuid.uuid4()) # Добавляем узел ошибки в граф state.graph_nodes.append({ "id": error_node_id, @@ -485,8 +493,9 @@ def handle_error_node(state: AgentState) -> AgentState: "message": {"role": "assistant", "content": state.llm_response, "node_id": error_node_id} } }) + edge_id = str(uuid.uuid4()) state.graph_edges.append({ - "id": f"e{state.parent_node_id}-{error_node_id}", + "id": edge_id, "source": state.parent_node_id, "target": error_node_id }) @@ -514,7 +523,7 @@ def help_node(state: AgentState) -> AgentState: help_text += f"/{cmd}: {info['description']}\n" state.llm_response = help_text - help_node_id = f"help_{len(state.graph_nodes) + 1}" + help_node_id = str(uuid.uuid4()) # Добавляем узел справки в граф state.graph_nodes.append({ "id": help_node_id, @@ -525,8 +534,9 @@ def help_node(state: AgentState) -> AgentState: "message": {"role": "assistant", "content": state.llm_response, "node_id": help_node_id} } }) + edge_id = str(uuid.uuid4()) state.graph_edges.append({ - "id": f"e{state.parent_node_id}-{help_node_id}", + "id": edge_id, "source": state.parent_node_id, "target": help_node_id }) @@ -540,4 +550,4 @@ def help_node(state: AgentState) -> AgentState: "node_id": help_node_id }) - return state + return state \ No newline at end of file diff --git a/app/workflows.py b/app/workflows.py index 46e5339..4a8745f 100644 --- a/app/workflows.py +++ b/app/workflows.py @@ -4,11 +4,12 @@ и переходами между узлами обработки. """ -from typing import Dict, Any, Optional +from typing import Dict, Any, Optional, Set from langgraph.graph import StateGraph, END from graph_history_manager import GraphHistoryManager from models import AgentState from nodes import parse_command_node, execute_command_node, call_llm_node, generate_images_node, analyze_image_node, get_meet_subtitles_node, get_teams_subtitles_node, summarize_history_node, handle_error_node, help_node +import uuid # Добавлено для генерации UUID # --- LangGraph: Построение графа --- graph_history_manager = GraphHistoryManager() @@ -100,6 +101,10 @@ def run_agent(user_input: str, # ---------------------------------------------------- Initial State Setup ---------------------------------------------------------------- initial_state = AgentState(input=user_input, parent_node_id=parent_node_id) + + # Сохраняем исходные ID узлов и ребер для определения новых после выполнения графа + original_node_ids: Set[str] = set() + original_edge_ids: Set[str] = set() # Если есть существующий ID графа, загружаем его историю и структуру loaded_graph_data = None @@ -115,6 +120,10 @@ def run_agent(user_input: str, initial_state.graph_nodes = loaded_graph_data.get("graph_nodes", []) initial_state.graph_edges = loaded_graph_data.get("graph_edges", []) + # Сохраняем ID загруженных узлов и ребер + original_node_ids = {node['id'] for node in initial_state.graph_nodes} + original_edge_ids = {edge['id'] for edge in initial_state.graph_edges} + # Устанавливаем parent_node_id для нового входного узла # Если parent_node_id был передан в запросе, используем его, # иначе берем current_node_id из загруженного графа. @@ -123,6 +132,10 @@ def run_agent(user_input: str, # История чата для текущего раунда работы LLM формируется из загруженных сообщений. initial_state.temporary_chat_history = loaded_graph_data.get("messages", []) + # Определяем graph_id, который будет использоваться для сохранения. + # Если существующий ID не передан, GraphHistoryManager сгенерирует новый. + graph_id_to_save = existing_graph_id + # ---------------------------------------------------- run_agent ---------------------------------------------------------------- # Запускаем граф @@ -130,23 +143,25 @@ def run_agent(user_input: str, final_state = AgentState(**result) # ---------------------------------------------------- Save Graph ---------------------------------------------------------------- + # Определяем новые узлы и ребра для сохранения + newly_added_nodes = [node for node in final_state.graph_nodes if node['id'] not in original_node_ids] + newly_added_edges = [edge for edge in final_state.graph_edges if edge['id'] not in original_edge_ids] + # Сохраняем обновленное состояние графа. # Обратите внимание: chat_history больше не сохраняется напрямую, # она является частью данных узлов в graph_nodes. - graph_data_to_save = { - "id": existing_graph_id, # Используем существующий ID или он будет сгенерирован - # менеджером истории при первом сохранении - "graph_nodes": final_state.graph_nodes, - "graph_edges": final_state.graph_edges, - "current_node_id": final_state.current_node_id - } - new_graph_id = graph_history_manager.save_graph(graph_data_to_save) + final_graph_id = graph_history_manager.save_graph_changes( + graph_id_to_save, + newly_added_nodes, + newly_added_edges, + final_state.current_node_id + ) # ---------------------------------------------------- prepare response ---------------------------------------------------------------- # Для `messages` в `response_data` используем `final_state.temporary_chat_history`, # так как она отражает только сообщения текущей ветки, добавленные в ходе этого выполнения. response_data = { - "graph_id": new_graph_id, + "graph_id": final_graph_id, "messages": final_state.temporary_chat_history, "llm_response": final_state.llm_response, "image_urls": final_state.image_urls, @@ -160,4 +175,4 @@ def run_agent(user_input: str, "current_node_id": final_state.current_node_id } } - return response_data + return response_data \ No newline at end of file diff --git a/graph_history.db b/graph_history.db index 45037c056ff70f1c9db5dbc3d8f0821f9fb4d649..e820d3e84fea849603833dc691b8c686f98f82c9 100644 GIT binary patch literal 65536 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