shkedambus/coursework

Python

0

11 commits

updated Apr 18, 2025

See the code

README

Чат бот для анализа текстовых инструкций

Проект представляет собой Telegram-бота для анализа PDF-документов, реализующего Retrieval-Augmented Generation (RAG) - подход к генерации ответов на основе пользовательских документов.

Возможности

  • Загружать PDF-файлы с Google Drive и напрямую.
  • Создавать эмбеддинги и сохранять их в векторную базу данных Qdrant.
  • Отвечать на вопросы пользователя с учётом содержимого загруженных документов.
  • Генерировать краткие выжимки к текстам.
  • Просматривать список загруженных PDF-файлов и выборочно очищать базу данных.

Архитектура

Система состоит из четырёх микросервисов:

  • bot - Telegram-бот на aiogram, обрабатывающий взаимодействие с пользователями.
  • retriever - сервис эмбеддингов, работающий на CPU, использует модель gte-Qwen2-1.5B-instruct.
  • generator - генеративный сервис, использующий модель RussianNLP/FRED-T5-Summarizer, работает на GPU.
  • qdrant - векторная база данных.

Между сервисами используется REST API. Все взаимодействия происходят через HTTP-запросы с использованием httpx.AsyncClient.

Стек используемых технологий

  • Python - основной язык проекта
  • Aiogram: современный асинхронный фреймворк для Telegram-ботов.
  • Docker / Docker Compose: контейнеризация.
  • Qdrant: высокопроизводительное векторное хранилище.
  • AI-модели: Qwen (эмбеддинги), FRED-T5 (суммаризация).
  • Pydantic + FastAPI: создание и проверка входящих данных для HTTP-запросов.

Исследование моделей

Перед выбором финальной архитектуры был проведён сравнительный анализ 16 моделей суммаризации (см. research/).

По итогам тестов на датасетах XLSum и Russian Scientific Articles по метрикам ROUGE, BLEU, BERTScore, лучшей моделью стала RussianNLP/FRED-T5-Summarizer.

shkedambus/coursework

Python

0

11 commits

updated Apr 18, 2025

See the code

README

Чат бот для анализа текстовых инструкций

Проект представляет собой Telegram-бота для анализа PDF-документов, реализующего Retrieval-Augmented Generation (RAG) - подход к генерации ответов на основе пользовательских документов.

Возможности

  • Загружать PDF-файлы с Google Drive и напрямую.
  • Создавать эмбеддинги и сохранять их в векторную базу данных Qdrant.
  • Отвечать на вопросы пользователя с учётом содержимого загруженных документов.
  • Генерировать краткие выжимки к текстам.
  • Просматривать список загруженных PDF-файлов и выборочно очищать базу данных.

Архитектура

Система состоит из четырёх микросервисов:

  • bot - Telegram-бот на aiogram, обрабатывающий взаимодействие с пользователями.
  • retriever - сервис эмбеддингов, работающий на CPU, использует модель gte-Qwen2-1.5B-instruct.
  • generator - генеративный сервис, использующий модель RussianNLP/FRED-T5-Summarizer, работает на GPU.
  • qdrant - векторная база данных.

Между сервисами используется REST API. Все взаимодействия происходят через HTTP-запросы с использованием httpx.AsyncClient.

Стек используемых технологий

  • Python - основной язык проекта
  • Aiogram: современный асинхронный фреймворк для Telegram-ботов.
  • Docker / Docker Compose: контейнеризация.
  • Qdrant: высокопроизводительное векторное хранилище.
  • AI-модели: Qwen (эмбеддинги), FRED-T5 (суммаризация).
  • Pydantic + FastAPI: создание и проверка входящих данных для HTTP-запросов.

Исследование моделей

Перед выбором финальной архитектуры был проведён сравнительный анализ 16 моделей суммаризации (см. research/).

По итогам тестов на датасетах XLSum и Russian Scientific Articles по метрикам ROUGE, BLEU, BERTScore, лучшей моделью стала RussianNLP/FRED-T5-Summarizer.