56 lines
2.1 KiB
Markdown
56 lines
2.1 KiB
Markdown
# 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
|
||
```
|