Чат-бот для студентов на базе LLM и FastAPI.
Для управления зависимостями в проекте используется uv.
- Установите
uv, если он ещё не установлен. - Склонируйте репозиторий.
- Установите зависимости:
uv sync
- Создайте файл
.envв корне проекта или задайте переменную окружения:OPENAI_API_KEY=your_api_key_here
- Настройки моделей, ролей и шаблонов находятся в
config.yml.
Для запуска сервера используйте команду:
uv run fastapi devПосле запуска доступны:
- API:
http://127.0.0.1:8000 - Swagger UI:
http://127.0.0.1:8000/docs - Demo UI:
http://127.0.0.1:8000/demo
Для быстрой локальной проверки через TestClient:
uv run python main.pyЭндпоинт принимает application/x-www-form-urlencoded и возвращает JSON.
Поля формы:
role:math_tutorилиhistory_tutortemplate:tutor_quick_answerилиtutor_full_answerquestion: вопрос пользователяthread_id: опциональный ID диалога; если передавать один и тот же, агент продолжит разговор
Пример запроса:
curl -X POST "http://127.0.0.1:8000/ask" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "role=math_tutor" \
-d "template=tutor_quick_answer" \
-d "question=Что такое число Пи?" \
-d "thread_id=lesson-1"Пример ответа:
{
"content": "Ответ агента",
"formula_solved": false,
"thread_id": "lesson-1"
}formula_solved показывает, использовал ли агент инструмент решения формулы.
Возвращает простую HTML-страницу для ручного тестирования чата.