EORA_APIBot представляет собой телеграм бота (pyTelegramBotApi
), отличающего кота от хлеба. Чтобы принять решение бот ведет диалог с пользователями, задавая ему вопросы. На основе ответов пользователя бот принимает решение. Бот прошел тестирование автоматическое(unittest
) и ручное тестирование. К боту прилагается асинхронный backend-сервис(FastAPI
) для хранения всей переписки пользователей с ботом. На этот сервис от бота отправляется(requests
) каждое сообщение. Переписка доступна для чтения, редактирования и удаления. Управление базой данных реализуется посредством ORM(SQLAlchemy
).База данных - SQLite
. Бот доступен по адресу: BreadOrCatbot
В ходе создания проекта применялись различные инстументы и технологии. Они представлены ниже:
Объектом сервиса и базы данных выступает сообщение(TGMessage). Он имеет следующий вид:
{
"id": 0,
"chat_id": 0,
"task": "string"
}
Объект имеет три поля: идентификатор сообщения(id), идентификатор диалога(chat_id) и текст сообщения(text). Работа с объектами осуществляется по следующим эндпоинтам:
Method | HTTP request | Description |
---|---|---|
[/create_message] | POST /tgmessage | Добавление нового сообщения. |
[/read_message] | GET /tgmessage/{id} | Извлечение сообщения по ID . |
[/update_message] | PUT /tgmessage/{id} | Редактирование сообщения по ID . |
[/delete_message] | DELETE /tgmessage/{id} | Удаление поста по ID . |
[/tgmessages] | GET read_message_list | Извлечение всех сообщений списком. |
Исчерпывающую информацию по работе API можно получить после запуска по адресу http://127.0.0.1:8000/docs Документация на основе Swagger, в соответствии со стандартом OpenAPI .
- Клонируете репозиторий
git clone https://github.com/XanderMoroz/EORA_APIBot.git
- Уставливаете, распаковываете и активируете виртуальное окружение (virtual environment)
pip install virtualenv
python -m venv env
.\env\Scripts\activate
- Уставливаете зависимости проекта. Их всего 4 (fastapi, telebot, sqlalchemy, requests). Можно вручную или командой:
pip install fastapi sqlalchemy telebot requests
- Запускаете API:
uvicorn main:app --reload
- Открываете второй терминал для запуска параллельного процесса. Переходите в директроию "telebot" и запускаете бота(CatOrBreadBot.py):
cd telebot
python CatOrBreadBot.py
- Общайтесь с ботом и наблюдайте работу сервиса. Наслаждайтесь результатом)
MaffinWare
- XanderMoroz - Все работы