Russian_AI_QA / README.md
Futyn-Maker's picture
Upload folder using huggingface_hub
6b83723 verified

A newer version of the Gradio SDK is available: 6.12.0

Upgrade
metadata
title: Russian_AI_QA
emoji: 🤖
colorFrom: blue
colorTo: purple
sdk: gradio
sdk_version: 5.23.0
app_file: app.py
pinned: false

RAG-система: Национальная стратегия развития ИИ в России

Описание

Система ответов на вопросы (RAG) по документу «Национальная стратегия развития искусственного интеллекта на период до 2030 года» (с изменениями 2024 г.).

Стек: Python, LangChain, ChromaDB, Google Gemini API, Gradio

Быстрый старт

1. Установка зависимостей

pip install -r requirements.txt

2. Настройка окружения

Скопируйте .env.example в .env и укажите ваш API-ключ Google Gemini:

cp .env.example .env
# Отредактируйте .env — впишите GOOGLE_API_KEY

Получить ключ можно на https://aistudio.google.com/apikey

3. Запуск приложения

python app.py

При первом запуске система автоматически:

  • Извлечёт текст из PDF-документов в папке raw_data/
  • Разобьёт текст на смысловые фрагменты (по пунктам документа)
  • Рассчитает эмбеддинги и проиндексирует их в ChromaDB

При повторных запусках используется уже готовая база.

Интерфейс будет доступен по адресу: http://localhost:7860

4. Параметры запуска

python app.py --top-k 5 --temperature 0.1 --port 7860 --share
  • --top-k — количество извлекаемых фрагментов (по умолчанию 10)
  • --temperature — температура генерации (по умолчанию 0.1)
  • --share — создать публичную ссылку через Gradio

5. Запуск без интерфейса (пакетная обработка)

python rag.py "Ваш вопрос здесь"

Деплой на HuggingFace Spaces

gradio deploy

Команда в интерактивном режиме спросит название Space, видимость и загрузит файлы автоматически.

Важно: После деплоя добавьте API-ключ через Settings → Secrets на странице Space: имя секрета — GOOGLE_API_KEY.

Структура проекта

├── raw_data/              # Исходные PDF-документы
├── chroma_db/             # Векторная база (создаётся автоматически)
├── evaluation/
│   ├── test_set.xlsx      # Тестовые вопросы
│   └── evaluate.py        # Скрипт оценки Ragas
├── config.py              # Конфигурация из переменных окружения
├── ingest.py              # Парсинг PDF, чанкинг, индексация
├── rag.py                 # Ядро RAG-пайплайна
├── app.py                 # Gradio-интерфейс
├── prompt_template.txt    # Системный промпт (редактируемый)
├── requirements.txt       # Зависимости
├── .env.example           # Шаблон переменных окружения
└── README.md