Initial SQL-only 1C adapter baseline

This commit is contained in:
2026-07-22 03:03:47 +03:00
commit e2503b77e7
545 changed files with 184711 additions and 0 deletions
+55
View File
@@ -0,0 +1,55 @@
# 1C RAG Search
Первый поиск по корпусу реализован как локальный lexical BM25-подобный индекс.
Он нужен для ранней проверки:
- документы попали в корпус;
- чанки имеют нормальный размер;
- поиск возвращает ожидаемые источники;
- ответы модели можно снабжать найденным контекстом.
Это не финальная семантическая RAG-база. Позже добавим embedding-модель и vector store.
Что уже есть:
- нормализация русских окончаний для частых 1С-терминов;
- алиасы `1с/bsl`, `справочник/catalog`, `реквизиты/attribute`, `метаданные/metadata`;
- смысловые `source_type`: `metadata`, `bsl`, `query`, `safety`, `docs`;
- RAG-профили и auto-routing по вопросу;
- бонус за совпадение в заголовке чанка;
- опциональная дедупликация результатов по документу;
- smoke-проверка качества поиска.
## Build Index
```powershell
python scripts/build_1c_rag_index.py
```
Для синтетического примера:
```powershell
python scripts/build_1c_rag_index.py --corpus plugins/1c/datasets/prepared/rag_corpus.example.jsonl --output plugins/1c/datasets/prepared/rag_index.example.json
```
## Search
```powershell
python scripts/search_1c_rag.py "метаданные справочника" --index plugins/1c/datasets/prepared/rag_index.example.json
```
```powershell
python scripts/search_1c_rag.py "реквизиты справочника номенклатура" `
--index plugins/1c/datasets/prepared/rag_index.example.json `
--profile auto `
--limit 5 `
--candidate-limit 30 `
--dedupe-by-document
```
## Quality Smoke
```powershell
python scripts/check_1c_rag_quality.py --index plugins/1c/datasets/prepared/rag_index.example.json --print
```