70 lines
4.9 KiB
Markdown
70 lines
4.9 KiB
Markdown
# 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 для доступа к метаданным файлов и поиску.
|