4.9 KiB
4.9 KiB
LLM Agent Plugin для Obsidian
Интеграция LLM (Large Language Models) в Obsidian с визуализацией диалогов в виде графа и интерактивным чатом.
Структура проекта
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
Установка
-
Предварительные требования:
- Установленный Node.js (рекомендуется LTS).
- Запущенный LLM Backend (по умолчанию на порту 5000).
-
Сборка:
npm install # Установка зависимостей npm run build # Сборка проекта (создает main.js) -
Активация в Obsidian:
- Поместите папку
llm-agent-pluginв.obsidian/plugins/вашего хранилища. - В настройках Obsidian ("Community Plugins") включите "LLM Agent".
- Поместите папку
Использование
- Граф диалогов: Открывается через иконку 🧠 на левой панели. Позволяет видеть ветвление мыслей LLM.
- Интерактивный чат: Находится в правой боковой панели. Поддерживает слеш-команды (
/imagine,/analyze). - Система ссылок: Используйте
[[название заметки]]в чате для передачи контекста ваших файлов в LLM. - Голосовой ввод: Нажмите иконку микрофона для диктовки сообщений.
Технические особенности
- Связь: Использует WebSocket для real-time обновления графа и стриминга ответов.
- UI: Построен на базе React и React Flow для отрисовки сложных структур графов.
- Интеграция: Глубокая интеграция с API Obsidian для доступа к метаданным файлов и поиску.