vault backup: 2026-04-02 13:59:18

This commit is contained in:
2026-04-02 13:59:19 +03:00
parent 20e1f3fa6c
commit 43e271733b

View File

@@ -0,0 +1,126 @@
# 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 # перезапустить
```