4.6 KiB
4.6 KiB
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 # перезапустить