Files
llm/plugins/1c/rag/README.search.md

2.1 KiB
Raw Permalink Blame History

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

python scripts/build_1c_rag_index.py

Для синтетического примера:

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
python scripts/search_1c_rag.py "метаданные справочника" --index plugins/1c/datasets/prepared/rag_index.example.json
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

python scripts/check_1c_rag_quality.py --index plugins/1c/datasets/prepared/rag_index.example.json --print