Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Agentic RAG System

Адаптивная поисково-вычислительная система на базе LangGraph. Система автоматически выбирает между поиском по локальной базе знаний (PDF, EPUB, TXT, DOCX), выполнением вычислений через локальный Python REPL / Wolfram Alpha и механизмами самоисправления ответов (Self-RAG).


Архитектура проекта

Проект построен по модульному принципу чистой архитектуры. Каждый компонент изолирован и может тестироваться независимо:

src/
├── evaluation/                          # Модуль оценки системы
├── generation/                          # Модуль генерации ответов и контроля качества (Self-RAG)
├── graph/                               # Модуль оркестрации LangGraph
├── ingestion/                           # Модуль индексации (загрузка и чанкинг)
├── memory/                              # Модуль управления контекстом и историей сессий
├── query/                               # Модуль обработки и трансформации запросов
├── retrieval/                           # Модуль поиска, фильтрации и реранкинга документов
└── router/                              # Модуль маршрутизации и внешних инструментов

Пайплайн обработки данных

Сырые данные (PDF, DOCX, HTML, arXiv, Web)
    ↓
Парсинг (Nougat / Grobid / Unstructured / ArXiv / WebScraper)
    ↓
Нормализация (MathNormalizer: защита LaTeX, очистка шума)
    ↓
Дедупликация (MinHash / SimHash)
    ↓
Чанкинг (Fixed / Recursive / Semantic / Adaptive / Parent-Child)
    ↓
Обогащение (Keywords → Topic → Difficulty → TheoremLinker)
    ↓
Векторизация (OpenAI / Local / FineTuned / Sparse)
    ↓
Индексация (Flat / Hierarchical / Graph / Hybrid) → Valkey

Пайплайн обработки пользовательского запроса

Пользовательский запрос
    ↓
Препроцессинг (Expander / Transformer / Router / IntentClassifier)
    ↓
Поиск (Vector / FullText / Hybrid / Hierarchical / GraphTraversal) → Valkey
    ↓
Постпроцессинг (Reranker / MetadataFilter / ContextCompressor / Deduplicator)
    ↓
Контекст + Запрос → LLM
    ↓
Генерация (Self-RAG / Vanilla / CoT)
    ↓
Ответ пользователю
    ↓
Оценка (RetrievalMetrics / MathAccuracy / LLMJudge / Latency)

Порядок запуска

# запуск бд
docker run -d --name valkey -p 6379:6379 valkey/valkey:latest

# индексация
uv run python -m scripts.run_ingestion --source data/raw/sample_math.txt --output-index math_rag_v1

# переключение чанкера без изменения кода
uv run python -m scripts.run_ingestion --source data/raw/sample_math.txt ingestion/chunker=fixed

# поиск
uv run python -m scripts.run_search "теорема Лагранжа"

# эксперимент
uv run python -m scripts.run_experiment --matrix config/experiments/chunking_matrix.yaml
uv run python -m scripts.run_evaluation --benchmark data/benchmarks/math_qa.json

Примечание

  • в папке notebooks/ находятся Jupyter-ноутбуки для подбора оптимального размера чанков (experiment_chunking.ipynb) и валидации качества реранкера (experiment_rerank.ipynb).

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages