vault backup: 2026-04-02 13:59:18
This commit is contained in:
126
BPMSoft CRM — RAG поиск по коду.md
Normal file
126
BPMSoft CRM — RAG поиск по коду.md
Normal 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 # перезапустить
|
||||||
|
```
|
||||||
Reference in New Issue
Block a user