64 lines
4.4 KiB
Markdown
64 lines
4.4 KiB
Markdown
# 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 и кастомные инструменты.
|
||
- **Память**: Сохранение состояния графов, что позволяет продолжать диалог с любого места.
|
||
- **Голосовое управление**: Возможность диктовать команды напрямую в микрофон с транскрибацией в реальном времени.
|