RAG — это подход, при котором генерация ответа большой языковой модели (LLM) осуществляется на основе данных, полученных в результате поиска во внешних источниках (файлы, базы данных, Интернет и другие источники)
Этот проект представляет собой реализацию этого подхода с помощью фреймворка python FastAPI. В качестве векторной базы данных на проекте используется chromaDb, а основной платформой для общения с LLM выступает Ollama.
Для развертывания проекта локально доступна два варианта: для macOs-подобных и для windows-систем.
Первым делом нужно установить Ollama. По рекомендации от самой Ollama для MacOS рекомендуется установить ее как автономное приложение. Сделать это можно несколькими способами, рекомендую через brew:
brew install ollamaДалее устанавливаем нужную нам модель для RAG:
ollama pull deepseek-r1:8bИ наконец запускаем ее:
ollama run deepseek-r1:8bТеперь займемся Docker-окружением, но для начала создадим и заполним файл .env (однако временно пропустим переменные связанные с Notion):
cp .evn.example .envТеперь запустим Make-команды в следующием порядке:
dev-build-app
dev-startНа этом этапе ваше приложение уже собрано и запущено по хосту указанному вами в .env. Теперь необходимо зарегестрировать интеграцию и вебхук в https://developers.notion.com/, но чтобы воспользоваться функционалом вебхуков, вам необходимо иметь ssl-подпись на сервере, где запущено ваше приложение. Если вы работате локально, то можете воспользоваться следующей командой для запуска ssh-тунеля:
run-tunnelТеперь заполним, брошенные ранее, Notion-переменные в .env.
Готово!
Первым делом запустим 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