Skip to content
This repository was archived by the owner on Dec 19, 2025. It is now read-only.

Latest commit

 

History

History
65 lines (45 loc) · 2.57 KB

File metadata and controls

65 lines (45 loc) · 2.57 KB

SpbTechRun Backend

Бекенд сервис для городского помощника с использованием FastAPI, GigaChatLLM, MCP и RAG.

Техническое описание

RESTful API для генерации ответа пользователям.

Стек

  • Python 3.12
  • Langchain
  • PostgreSQL
  • ChromaDB
  • RAG
  • GigaChat
  • MCP
  • Docker

Описание REST эндпоинтов

  • GET /health - healthcheck, позволяет проверить, что сервис живой
  • POST /v1/chat - принимает JSON с запросом user_id и message от пользователя. Возвращает reply (ответ пользователю) и user_id (который был в запросе)
  • POST /v1/rag/ingest - принимает на вход список URL для парсинга и обогащения RAG
  • POST /v1/rag/upload - принимает на вход готовые MD/TXT файлы для обогащения ими RAG

Примеры запросов

curl -X POST http://localhost:8000/v1/rag/ingest \
  -H "Content-Type: application/json" \
  -d '{"urls": ["https://example.com/city-service-page"], "source_tag": "city_portal"}'
curl -X POST http://localhost:8000/v1/сhat \
  -H "Content-Type: application/json" \
  -d '{"user_id": 1, "message": "Привет! Как дела?"}'

Промпты

Все промпты, который мы используем в проекте можно найти в директории prompts.

У каждого промпта есть description, который определяет назначение промпта.

Как запустить у себя?

Как я уже говорил - я НЕ рекомендую запускать сервисы по отдельности, так как они зависимы друг от друга

Однако, если вы все же хотите это сделать, то ниже инструкция:

  1. Собрать Docker-образ:

    $ docker build -t spbtechbackend:latest .
  2. Заполнить файл .env.sample

  3. Запустить контейнер с заполненным .env.sample:

    $ docker run --env-file .env.sample -p 8000:8000 spbtechbackend:latest

Еще больше я НЕ рекомендую пытыться запустить его вне Docker-контейнера, так как замучаетесь дружить версии зависимостей между собой