Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

42 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RAG-приложение

Содержание

О проекте

Приложение позволяет загружать PDF-документы, извлекать из них текст (включая сканы через OCR), преобразовывать текст в векторные представления и использовать локальную языковую модель (LLM) для ответов на вопросы с контекстом из загруженных документов.

Основные возможности:

  • Многопользовательская система с авторизацией
  • Графический интерфейс на базе Flet
  • Разделение документов по коллекциям
  • Сохранение истории диалогов
  • Автоматическое дополнение запросов контекстом из документов (RAG)

Запуск на Linux Ubuntu/Debian

Установка сторонних компонентов

  1. Синхронизировать информацию об обновлении пакетов программ:
sudo apt-get update
  1. Установить Python
sudo apt-get install -y python3 python3-venv
  1. Установить инструменты для работы с файлами
sudo apt-get install -y tesseract-ocr tesseract-ocr-rus tesseract-ocr-eng poppler-utils curl zstd git
  1. Установить Ollama для запуска LLM:
curl -fsSL https://ollama.com/install.sh | sh
  1. Загрузить подходящуюю модель LLM, например:
ollama pull llama3.2

Список доступных моделей можно поссмотреть на официальном сайте.

Запуск кода

  1. Склонировать репозиторий
git clone https://github.com/AlinaStudyPM/7_semester_coursework.git
cd 7_semester_coursework
  1. Создать виртуальное окружение для проекта и запустить его:
python3 -m venv .venv
source .venv/bin/activate

Замечание: для выхода из виртуального окружения используется команда deactivate. Для повторного запуска окружения достаточно команды source .venv/bin/activate.

  1. Установить зависимости
pip install -e .
  1. Запустить приложение в нужном режиме:
    • Десктопный: rag-desktop
    • Браузерны: rag-web

Запуск на Windows

 Установка сторонних компонентов

  1. Установить Python. Некоторые библиотеки могут не работать с последней версией Python 3.14, поэтому рекомендуется установить Python 3.12. Это можно сделать при помощи официального установщика (выбрать строку таблицы Windows installer (64-bit), а не install manager). При необходимости нужно добавить Python в системные переменные (если это не произошло по умолчанию):
$env:Path="$env:LOCALAPPDATA\Programs\Python\Python312;$env:Path"
  1. Установить менеджер пакетов Scoop для более простой установки других компонентов:
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
irm get.scoop.sh | iex
  1. Установить git, а также Poppler и Tesseract для OCR (распознавания текста из документов):
scoop install git poppler tesseract
  1. Установить необходимые языки для Tesseract. Для этого необходимо перейти в репозиторий, и скачать файлы eng.traineddata и rus.traineddataдля английского и русского языков соответственно. После поместить их в папку ~\scoop\apps\tesseract\current\tessdata. После этого команда tesseract --list-langs должна показать в терминале eng и rus.
  2. Установить Ollama для запуска LLM.
irm https://ollama.com/install.ps1 | iex
  1. Загрузить подходящуюю модель LLM, например:
ollama pull llama3.2  

Список доступных моделей можно поссмотреть на официальном сайте.

Запуск кода

  1. Склонировать репозиторий
git clone https://github.com/AlinaStudyPM/7_semester_coursework.git
cd 7_semester_coursework
  1. Создать виртуальное окружение для проекта и запустить его:
python -m venv .venv
.venv\Scripts\activate

Замечание: для выхода из виртуального окружения используется команда deactivate. Для повторного запуска окружения достаточно команды .venv\Scripts\activate.

  1. Установить зависимости
pip install -e .
  1. Запустить приложение в нужном режиме:
    • Десктопный: rag-desktop
    • Браузерны: rag-web

Конфигурация

  1. Настройки по умолчанию указаны в файле .env.example. При желании можно создать файл .env с собственными настройками.
  2. Системный промпт хранится в config/system_prompt.txt, его можно отредактировать.
  3. Модели LLM автоматически подтягиваются из Ollama. При желании загрузить новые используйте приложение Ollama. Например:
ollama pull llama3.2

Зависимости

Системные пакеты

Эти пакеты необходимо установить вручную согласно инструкции.

Пакет Назначение
ollama Фреймворк для запуска LLM
tesseract-ocr OCR-движок
tesseract-ocr-rus Русский язык для OCR
tesseract-ocr-eng Английский язык для OCR
poppler-utils Работа с PDF

Python-пакеты

Этих пакеты перечислены в pyproject.toml и устанавливаются в виртуальном окружении автоматически при выполнении команды pip install -e ..

Пакет Назначение
flet UI-фреймворк
chromadb Векторная БД
ollama Python-клиент для Ollama
langchain-text-splitters Разделение текста
requests HTTP-запросы
pdfplumber Извлечение из PDF
pdf2image PDF → изображения
pytesseract OCR
tiktoken Токенизация
bcrypt Хеширование паролей
python-dotenv Переменные окружения

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages