Initial SQL-only 1C adapter baseline
This commit is contained in:
@@ -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
|
||||
```
|
||||
Reference in New Issue
Block a user