| old/src | ||
| src | ||
| .editorconfig | ||
| .eslintignore | ||
| .eslintrc | ||
| .gitignore | ||
| .npmrc | ||
| .prettierrc | ||
| AGENTS.md | ||
| Compile.md | ||
| esbuild.config.mjs | ||
| LICENSE | ||
| main.ts | ||
| mainBasic.ts | ||
| package-lock.json | ||
| package.json | ||
| README-Basic.md | ||
| Readme.md | ||
| tsconfig.json | ||
| version-bump.mjs | ||
| versions.json | ||
Запрос
Хочу перенести всё это в Obsidian, сделав его плагином (для личного пользования). ПРи этом в средней колонке, где граф отображаетс яштатный обсидиана или замтеки - тм будет react-flow граф с историей взаимдействия (деревом диалогов), где можно быстро будет попросить сгенерировать картинки и одновременно сразу нагенерить в разных ветках , например, локации и персонажей нескольких для НРИ (однорвременно запустить друг за другом запросы в разных ветках и пусть обрабатываются) впараллельно, я на графе всё увижу). А сам чат чтобы вёлся справа в колонк, гнде теги , бэклинки, проперти или Copilot помощник из известного плагина. сначала скажи можно ли перенести и чтобы бы ты посоветовал (пока без кода), может , предлоишь что-то улучшить? Да, граф в пространстве, где новые заметки открываются, он просто открывается там, в новом табе, где новые заметикти открываются ли графы обсидианы. Сделай перенос. Пусть бэкенд, как есть, а фронт перенеси полностью
LLM Agent для Obsidian
Плагин Obsidian для работы с LLM агентом, включающий граф диалогов и интерфейс чата с поддержкой слеш-команд.
Структура проекта
ttrpg-obsidian-vault/
├── .obsidian/
│ └── plugins/
│ └── llm-agent-plugin/
│ ├── main.js
│ ├── manifest.json
│ ├── styles.css
│ └── src/
│ ├── views/
│ │ ├── GraphView.js
│ │ └── ChatView.js
│ ├── components/
│ │ ├── ChatPanel.js
│ │ ├── CommandInput.js
│ │ ├── GraphPanel.js
│ │ └── HistoryPanel.js
│ └── utils/
│ └── EventBus.js
├── llm-agent-backend/ # Backend на Python
│ ├── env/ # Виртуальное окружение Python
│ ├── app/ # Код приложения
│ │ ├── api.py
│ │ ├── workflows.py
│ │ └── ...
│ ├── requirements.txt
│ └── run.py # Точка входа
└── env/
Установка и запуск
1. Настройка Backend
-
Перейдите в папку backend:
cd llm-agent-backend -
Активируйте виртуальное окружение:
# Windows env\Scripts\activate # Linux/macOS source env/bin/activate -
Установите зависимости:
pip install -r requirements.txt -
Запустите backend сервер:
python run.pyBackend будет доступен на
http://localhost:5000
2. Установка плагина в Obsidian
-
Автоматическая установка (если плагин уже находится в правильной папке):
- Откройте Obsidian с этим хранилищем
- Перейдите в Настройки → Плагины сообщества
- Включите "Небезопасные плагины" (если требуется)
- Найдите "LLM Agent" в списке установленных плагинов
- Включите плагин
-
Ручная установка (если нужно скопировать файлы):
# Убедитесь, что файлы плагина находятся в: .obsidian/plugins/llm-agent-plugin/ ├── main.js ├── manifest.json ├── styles.css └── src/
3. Использование
-
Запуск интерфейса:
- Нажмите иконку 🧠 в левой панели Obsidian
- Или используйте команду "Открыть граф диалогов LLM Agent" (Ctrl+P)
-
Доступные слеш-команды:
/help- Список доступных команд/imagine [промпт]- Генерация изображений/analyze [url] [промпт]- Анализ изображения/subtitles_meet- Получение субтитров Google Meet/subtitles_teams- Получение субтитров MS Teams/summarize- Суммаризация истории диалога/chat- Обычный диалог с LLM
-
Работа с графом:
- Граф отображается в центральной области Obsidian
- Чат и история - в правой боковой панели
- Кликайте по узлам графа для навигации по веткам диалога
- Используйте "Новый чат" для создания нового диалога
Конфигурация
Backend API URL
По умолчанию плагин использует http://localhost:5000/api. Для изменения:
- Откройте файл
.obsidian/plugins/llm-agent-plugin/main.js - Найдите строку:
const DEFAULT_SETTINGS = { apiBaseUrl: 'http://localhost:5000/api' }; - Измените URL на нужный
LLM модели
Конфигурация моделей находится в backend/llm-agent-backend/app/llm_client.py:
MODELS = {
"gemini-2.5-flash": {
"apiBase": "https://your-api-endpoint.com",
"apiKey": "your-api-key",
# ...
}
}
Устранение неполадок
Backend не запускается
- Проверьте, что виртуальное окружение активировано
- Убедитесь, что все зависимости установлены:
pip install flask flask-cors langgraph langchain-core requests - Проверьте порт 5000 - он должен быть свободен
Плагин не появляется в Obsidian
- Убедитесь, что файлы находятся в правильной папке:
.obsidian/plugins/llm-agent-plugin/main.js - Проверьте, что включены "Плагины сообщества" в настройках
- Перезапустите Obsidian
Ошибки подключения к API
- Убедитесь, что backend запущен на порту 5000
- Проверьте консоль разработчика в Obsidian (Ctrl+Shift+I)
- Проверьте настройки CORS в
backend/llm-agent-backend/app/api.py
Граф не отображается
- Текущая версия использует упрощенную визуализацию
- Для полноценного React Flow потребуется дополнительная настройка bundler'а
Разработка
Структура кода плагина
main.js- Основной класс плагинаsrc/views/- Views для Obsidian (GraphView, ChatView)src/components/- React-like компонентыsrc/utils/- Утилиты (EventBus)
Отладка
- Откройте консоль разработчика в Obsidian (Ctrl+Shift+I)
- Логи плагина доступны в консоли
- Backend логи выводятся в терминал где запущен сервер
Добавление новых команд
- Добавьте команду в
backend/llm-agent-backend/app/nodes.pyвCommandManager - Создайте соответствующий узел обработки
- Обновите маршрутизацию в
workflows.py
API Documentation
Основные эндпоинты
POST /api/chat- Отправка сообщенияGET /api/graphs- Список всех графовGET /api/graphs/{id}- Данные конкретного графаDELETE /api/graphs/{id}- Удаление графаGET /api/messages/{graph_id}/{node_id}- Сообщения от корня до узла
Лицензия
Для личного использования.
**`backend/llm-agent-backend/requirements.txt`:**
```txt
flask==2.3.3
flask-cors==4.0.0
langgraph==0.0.40
langchain-core==0.1.45
requests==2.31.0
sqlite3
openai==1.3.0
backend/llm-agent-backend/run.py:
"""
Точка входа для запуска LLM Agent backend сервера.
Запускает Flask приложение с настройками для разработки.
"""
import os
import sys
# Добавляем папку app в Python path
sys.path.insert(0, os.path.join(os.path.dirname(__file__), 'app'))
from api import app2
if __name__ == "__main__":
print("🚀 Запуск LLM Agent Backend сервера...")
print("📍 API будет доступно на: http://localhost:5000/api")
print("📊 Список графов: http://localhost:5000/api/graphs")
print("💬 Чат эндпоинт: http://localhost:5000/api/chat")
print("\n⚠️ Для остановки нажмите Ctrl+C\n")
app2.run(
debug=True,
port=5000,
host='localhost'
)
backend/llm-agent-backend/app/__init__.py:
# Пустой файл для создания Python пакета
Быстрый старт:
-
Запуск backend:
cd backend/llm-agent-backend env\Scripts\activate # Windows python run.py -
Запуск Obsidian:
- Откройте хранилище в Obsidian
- Включите плагин "LLM Agent" в настройках
- Нажмите иконку 🧠 в левой панели
-
Проверка работы:
- В правой панели должна появиться история диалогов
- В центре - область для графа
- Отправьте сообщение
/helpдля проверки
Важно: Backend должен быть запущен перед использованием плагина. При первом запуске может потребоваться установка дополнительных зависимостей.