Files
obsidian/BPMSoft CRM — RAG поиск по коду.md

4.7 KiB
Raw Permalink Blame History

BPMSoft CRM — RAG поиск по коду

Семантический поиск по кодовой базе проекта C:\Work\BPMSoft\crm. Стек: Qdrant (векторная БД) + Ollama nomic-embed-text (эмбеддинги) + MCP сервер для Claude Code + веб-интерфейс.


Инфраструктура

Компонент Адрес Описание
Qdrant http://localhost:6333 Векторная БД, Docker
Qdrant Dashboard http://localhost:6333/dashboard Веб-интерфейс Qdrant
Ollama http://localhost:11434 Локальные эмбеддинги
Веб-поиск http://localhost:8765 Интерфейс поиска по коду

Файлы проекта: C:\Work\BPMSoft\crm\.rag\


Команды

Запустить Qdrant (Docker)

docker start qdrant

Контейнер настроен на restart=always — стартует автоматически вместе с Docker.

Запустить веб-интерфейс поиска

python C:\Work\BPMSoft\crm\.rag\search_server.py

Открыть в браузере: http://localhost:8765

Инкрементальное обновление индекса (только изменённые файлы)

python C:\Work\BPMSoft\crm\.rag\index_incremental.py

Запускать после изменения/добавления файлов в проекте. Работает быстро — обрабатывает только изменённые файлы.

Полная переиндексация (редко, при крупных изменениях)

python C:\Work\BPMSoft\crm\.rag\index_codebase.py --reindex

Занимает несколько часов — пересоздаёт всю коллекцию с нуля.


Что индексируется

C# (BPMSoft.Configuration)

  • Методы, конструкторы → тип method
  • Классы, структуры → тип class / struct
  • Интерфейсы → тип interface
  • Enum'ы → тип enum
  • XML doc-комментарии включены в контекст

JavaScript (BPMSoft.Configuration)

  • ExtJS BPMSoft схемы (/Schemas/*.js) → тип extjs_schema
  • Методы внутри схем → тип extjs_method
  • Mixins схем → тип extjs_mixins
  • Angular/src файлы (/Files/src/js/) → function, js_class, js_method
  • Autogenerated JS платформы (/Autogenerated/Src/)

Исключено из индекса

  • SvnPackages/ — SVN пакеты
  • node_modules/, bin/, obj/, dist/
  • *.min.js — минифицированные файлы
  • Angular build cache /.nx/

MCP сервер для Claude Code

Зарегистрирован автоматически. Доступные инструменты:

Инструмент Описание
search_codebase Семантический поиск по запросу
find_symbol Поиск класса/метода по имени
find_in_namespace Все символы в namespace или по пути

Регистрация вручную (если слетела)

claude mcp add --transport stdio crm-rag -- cmd /c python C:\Work\BPMSoft\crm\.rag\mcp_server.py

Проверить статус

claude mcp list

Файлы

C:\Work\BPMSoft\crm\.rag\
├── index_codebase.py       # Полная индексация
├── index_incremental.py    # Инкрементальное обновление
├── mcp_server.py           # MCP сервер для Claude Code
├── search_server.py        # Веб-сервер поиска (FastAPI)
├── search_ui.html          # Интерфейс поиска
├── file_hashes.json        # Хеши файлов для инкрементальной индексации
└── qdrant_storage/         # Данные Qdrant (Docker volume)

Зависимости Python

pip install qdrant-client tree-sitter tree-sitter-c-sharp tree-sitter-javascript requests fastapi uvicorn mcp

Управление Docker контейнером

docker ps | grep qdrant          # статус
docker stop qdrant               # остановить
docker start qdrant              # запустить
docker logs qdrant               # логи
docker restart qdrant            # перезапустить