# LLM Agent Plugin для Obsidian Интеграция LLM (Large Language Models) в Obsidian с визуализацией диалогов в виде графа и интерактивным чатом. ## Структура проекта ```text llm-agent-plugin/ ├── src/ │ ├── components/ # React-компоненты интерфейса │ │ ├── models/ # Модели данных для компонентов │ │ ├── ChatPanel.ts # Панель основного чата │ │ ├── GraphPanel.ts # Панель визуализации графа (React Flow) │ │ ├── HistoryPanel.ts # Панель истории сообщений │ │ └── VoicePanel.ts # Компонент голосового управления │ ├── views/ # Представления (Views) Obsidian │ │ ├── ChatView.ts # Правая панель чата │ │ └── GraphView.ts # Центральная панель графа │ ├── utils/ # Вспомогательные утилиты и сервисы │ │ ├── WebSocketService.ts # Связь с Python бэкендом │ │ ├── EventBus.ts # Шина событий для обмена данными │ │ ├── fileUtils.ts # Инструменты работы с файлами vault │ │ └── VaultQueryHandler.ts # Поиск и фильтрация данных в Obsidian │ ├── references/ # Система упоминаний и связей │ │ ├── AutocompleteManager.ts # Логика выпадающего списка │ │ ├── ReferenceParser.ts # Парсинг [[ссылок]] в сообщениях │ │ └── TemplateEngine.ts # Генерация контента по шаблонам │ ├── modals/ # Всплывающие окна │ │ └── GraphSettingsModal.ts # Настройки визуализации │ ├── constants.ts # Глобальные константы и настройки │ ├── types/ # TypeScript определения и интерфейсы │ ├── css/ # Стили компонентов │ ├── json/ # Конфигурационные JSON файлы │ └── docs/ # Техническая документация и спецификации ├── main.ts # Точка входа: инициализация плагина и команд ├── mainBasic.ts # Упрощенная версия плагина ├── package.json # Зависимости и скрипты сборки (npm) ├── esbuild.config.mjs # Конфигурация сборщика esbuild └── manifest.json # Манифест плагина Obsidian ``` ## Установка 1. **Предварительные требования**: - Установленный [Node.js](https://nodejs.org/) (рекомендуется LTS). - Запущенный [LLM Backend](https://github.com/user/llm-agent-backend) (по умолчанию на порту 5000). 2. **Сборка**: ```bash npm install # Установка зависимостей npm run build # Сборка проекта (создает main.js) ``` 3. **Активация в Obsidian**: - Поместите папку `llm-agent-plugin` в `.obsidian/plugins/` вашего хранилища. - В настройках Obsidian ("Community Plugins") включите "LLM Agent". ## Использование - **Граф диалогов**: Открывается через иконку 🧠 на левой панели. Позволяет видеть ветвление мыслей LLM. - **Интерактивный чат**: Находится в правой боковой панели. Поддерживает слеш-команды (`/imagine`, `/analyze`). - **Система ссылок**: Используйте `[[название заметки]]` в чате для передачи контекста ваших файлов в LLM. - **Голосовой ввод**: Нажмите иконку микрофона для диктовки сообщений. ## Технические особенности - **Связь**: Использует WebSocket для real-time обновления графа и стриминга ответов. - **UI**: Построен на базе React и React Flow для отрисовки сложных структур графов. - **Интеграция**: Глубокая интеграция с API Obsidian для доступа к метаданным файлов и поиску.