# LLM Agent Backend Бэкенд-сервер на Python для обеспечения работы интеллектуального агента в Obsidian. Использует LangGraph для управления логикой рассуждений и Flask для взаимодействия с плагином. ## Структура проекта ├── llm-agent-backend/ # Корневая директория бэкенда │ ├── app/ # Исходный код приложения │ │ ├── api.py # Flask сервер, HTTP эндпоинты и WebSocket (SocketIO) │ │ ├── run.py # Точка входа для запуска приложения │ │ ├── workflows.py # Определение графов LangGraph и логики потоков │ │ ├── react_agent.py # Реализация ReAct (Reasoning and Acting) агента │ │ ├── llm_client.py # Клиент для работы с моделями (OpenAI, Google, Mistral) │ │ ├── mcp_tools.py # Интеграция с Model Context Protocol (MCP) инструментами │ │ ├── graph_history_manager.py # Управление историей диалогов и состоянием графов в SQLite │ │ ├── voice_service.py # Сервис распознавания речи (Vosk) │ │ ├── title_generator.py # Генерация названий для чатов на основе контекста │ │ ├── heartbeat_monitor.py # Мониторинг активности и состояния подключения │ │ ├── models.py # Описание структур данных и схем │ │ └── services.py # Вспомогательные сервисы │ ├── docs/ # Техническая документация и скриншоты настроек │ ├── env/ # Виртуальное окружение Python (venv) │ ├── build.bat # Скрипт сборки проекта │ ├── requirements.txt # Список зависимостей Python │ ├── run-llm-backend.bat # Батник для быстрого запуска сервера │ └── graph_history.db # БД SQLite с историей графов и сообщений ## Основные технологии - **Python 3.11+** - **LangChain / LangGraph**: Управление состоянием агента и цепочками рассуждений. - **Flask / Flask-SocketIO**: API и real-time взаимодействие с Obsidian. - **Vosk / SoundDevice**: Локальное распознавание речи. - **SQLite**: Хранение истории взаимодействий. ## Установка 1. Убедитесь, что установлен Python 3.11. 2. Создайте виртуальное окружение в папке `env`: ```bash python -m venv env ``` 3. Активируйте окружение и установите зависимости: ```bash env\Scripts\activate pip install -r requirements.txt ``` ## Запуск ### Вариант 1: Через батник (рекомендуется) Запустите `run-llm-backend.bat` из корня проекта. ### Вариант 2: Вручную из терминала ```bash python app/run.py ``` Сервер будет доступен по адресу: `http://localhost:5000` ## Ключевые возможности - **Двустороннее общение**: Агент может инициировать запросы к Obsidian (через API плагина). - **Инструменты (Tools)**: Поддержка вызова функций через MCP и кастомные инструменты. - **Память**: Сохранение состояния графов, что позволяет продолжать диалог с любого места. - **Голосовое управление**: Возможность диктовать команды напрямую в микрофон с транскрибацией в реальном времени.