Skip to content

RAG service on Python FastApi with Ollama and ChromaDB.

Notifications You must be signed in to change notification settings

Skiqa/FastAPI-RAG

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FastAPI-RAG

RAG — это подход, при котором генерация ответа большой языковой модели (LLM) осуществляется на основе данных, полученных в результате поиска во внешних источниках (файлы, базы данных, Интернет и другие источники)

Этот проект представляет собой реализацию этого подхода с помощью фреймворка python FastAPI. В качестве векторной базы данных на проекте используется chromaDb, а основной платформой для общения с LLM выступает Ollama.

Для развертывания проекта локально доступна два варианта: для macOs-подобных и для windows-систем.

MacOS

Ollama

Первым делом нужно установить Ollama. По рекомендации от самой Ollama для MacOS рекомендуется установить ее как автономное приложение. Сделать это можно несколькими способами, рекомендую через brew:

brew install ollama

Далее устанавливаем нужную нам модель для RAG:

ollama pull deepseek-r1:8b

И наконец запускаем ее:

ollama run deepseek-r1:8b

Docker

Теперь займемся Docker-окружением, но для начала создадим и заполним файл .env (однако временно пропустим переменные связанные с Notion):

cp .evn.example .env

Теперь запустим Make-команды в следующием порядке:

dev-build-app
dev-start

На этом этапе ваше приложение уже собрано и запущено по хосту указанному вами в .env. Теперь необходимо зарегестрировать интеграцию и вебхук в https://developers.notion.com/, но чтобы воспользоваться функционалом вебхуков, вам необходимо иметь ssl-подпись на сервере, где запущено ваше приложение. Если вы работате локально, то можете воспользоваться следующей командой для запуска ssh-тунеля:

run-tunnel

Теперь заполним, брошенные ранее, Notion-переменные в .env.

Готово!

Windows

Docker

Первым делом запустим Docker-окружением, но для начала создадим и заполним файл .env (однако временно пропустим переменные связанные с Notion)

copy .evn.example .env

Теперь поднимем Docker-окружением:

docker compose -f dev-win.compose.yml up -d

На этом этапе ваше приложение уже собрано и запущено по хосту указанному вами в .env. Теперь необходимо зарегестрировать интеграцию и вебхук в https://developers.notion.com/, но чтобы воспользоваться функционалом вебхуков, вам необходимо иметь ssl-подпись на сервере, где запущено ваше приложение. Если вы работате локально, то можете воспользоваться следующей командой для запуска ssh-тунеля:

docker run --net=host -it pinggy/pinggy -p 443 -R0:localhost:$(APP_PORT) -L4300:localhost:4300 a.pinggy.io

About

RAG service on Python FastApi with Ollama and ChromaDB.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published