# 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) ```bash docker start qdrant ``` > Контейнер настроен на `restart=always` — стартует автоматически вместе с Docker. ### Запустить веб-интерфейс поиска ```bash python C:\Work\BPMSoft\crm\.rag\search_server.py ``` Открыть в браузере: `http://localhost:8765` ### Инкрементальное обновление индекса (только изменённые файлы) ```bash python C:\Work\BPMSoft\crm\.rag\index_incremental.py ``` Запускать после изменения/добавления файлов в проекте. Работает быстро — обрабатывает только изменённые файлы. ### Полная переиндексация (редко, при крупных изменениях) ```bash 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 или по пути | ### Регистрация вручную (если слетела) ```bash claude mcp add --transport stdio crm-rag -- cmd /c python C:\Work\BPMSoft\crm\.rag\mcp_server.py ``` ### Проверить статус ```bash 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 ```bash pip install qdrant-client tree-sitter tree-sitter-c-sharp tree-sitter-javascript requests fastapi uvicorn mcp ``` --- ## Управление Docker контейнером ```bash docker ps | grep qdrant # статус docker stop qdrant # остановить docker start qdrant # запустить docker logs qdrant # логи docker restart qdrant # перезапустить ```