Загрузка данных


Техническое задание на разработку API-интеграции чат-ботов для сайта med.mackrof.ru
1. Общая информация
Название проекта: API-интеграция двух чат-ботов (Терапевт и Ветеринар) для сайта med.mackrof.ru Платформы: Серверная версия + Telegram-бот Цель: Интеграция двух готовых чат-ботов в сайт через API, без использования виджета. Боты работают на сервере и доступны как через сайт, так и через Telegram.
2. Основные требования к API
2.1. Функциональные требования
●	API должно обеспечивать связь между сайтом med.mackrof.ru и двумя серверными чат-ботами:
○	Бот-терапевт (для медицинских консультаций людей)
○	Бот-ветеринар (для консультаций по здоровью животных)
●	Должен быть реализован единый API-эндпоинт для отправки и получения сообщений от обоих ботов.
●	Запросы с сайта должны передаваться в API, которое направляет их нужному боту в зависимости от контекста.
●	Telegram-бот должен использовать тот же API, чтобы работать на одном движке с сайтом.
●	Логирование всех запросов и ответов.
●	Обработка ошибок и возврат статусов HTTP.
2.2. Входные данные (Запросы к API)
●	Метод: POST
●	URL: https://api.med.mackrof.ru/chatbot
●	Заголовки:
○	Content-Type: application/json
○	Authorization: Bearer {API_KEY}
●	Тело запроса (JSON):
{
  "session_id": "{уникальный ID сессии}",
  "platform": "web" | "telegram",
  "user_id": "{ID пользователя}",
  "bot_type": "therapist" | "veterinarian",
  "message": "{Текст вопроса}"
}
2.3. Выходные данные (Ответ от API)
●	Формат: JSON
●	Структура ответа:
{
  "session_id": "{уникальный ID сессии}",
  "user_id": "{ID пользователя}",
  "bot_type": "therapist" | "veterinarian",
  "message": "{Ответ от бота}",
  "status": "success"
}
●	Ошибки API:
{
  "status": "error",
  "message": "Ошибка обработки запроса"
}
3. Логика работы API
1.	Пользователь отправляет запрос через сайт или Telegram-бот.
2.	Запрос передается API, где анализируется параметр bot_type.
3.	API направляет запрос нужному боту (терапевту или ветеринару).
4.	Бот формирует ответ и передает его обратно в API.
5.	API отправляет ответ пользователю (на сайт или в Telegram).
6.	Логирование всех взаимодействий сохраняется на сервере.
4. Безопасность
●	Использование JWT-токенов для авторизации запросов.
●	Ограничение запросов по IP (Rate Limiting).
●	Шифрование данных (TLS 1.2+).
5. Тестирование и развертывание
●	Этап 1: Разработка и тестирование API на тестовом сервере.
●	Этап 2: Интеграция API с обоими ботами (терапевтом и ветеринаром).
●	Этап 3: Тестирование корректной маршрутизации запросов к нужному боту.
●	Этап 4: Развертывание и настройка логирования.
6. Сроки выполнения
●	Разработка API и тестирование – 12 дней.
●	Интеграция с Telegram и сайтом – 5 дней.
●	Отладка, логирование, финальное тестирование – 5 дней.
●	Общий срок: 22 дня.

БОТ 1
В соответствии с Договором Исполнитель обязуется оказать, а Заказчик принять и оплатить следующие Услуги:
разработка, наполнение и развертывание веб-бота и Telegram-бота для консультаций на сайте Заказчика и в мессенджере Telegram (далее – Услуги).
Подробное описание Услуг:
Веб-бот:
Создание бота для размещения на сайте Заказчика.
Функционал включает:
Проведение терапевтических консультаций.
Запись пользователей на приём.
Предоставление ссылок на покупку рекомендованных товаров.
Навигацию по сайту.
Telegram-бот:
Создание Telegram-бота, который дублирует функции веб-бота.
Telegram-бот создается на аккаунте, зарегистрированном Заказчиком через BotFather.
Технические требования:
Платформа и сервер для работы веб-бота выбираются Исполнителем по своему усмотрению.
Для Telegram-бота используются библиотеки aiogram или pyTelegramBotAPI.
Базы данных для хранения информации: PostgreSQL/MySQL.
Сервер: постоянный доступ к интернету.
Интеграция с GPT через предоставленные Заказчиком API-ключи.
Необходимые материалы от Заказчика:
API-ключи для работы с GPT.
Учётные данные для серверов (или оплата аренды сервера).
Телефонные номера и аккаунты Telegram Premium для работы бота.
Материалы и сценарии для обучения бота (включая типовые запросы, ответы, данные для рекомендаций).
Срок предоставления материалов Заказчиком:
Заказчик обязуется предоставить все необходимые материалы, указанные в п. 4, в течение 5 (пяти) рабочих дней с момента подписания настоящего Приложения.
Исполнитель вправе приостановить выполнение работ до получения всех необходимых данных.
Исполнитель обязуется обучить Заказчика работе с ботами:
Предоставление обучающей видеоинструкции.
Консультации по настройке функционала.
Все вопросы и уточнения, касающиеся выполнения работ, ведутся через переписку по электронной почте:
Исполнитель: artemdemdoff@yandex.ru
Заказчик: __________.




2. Сроки выполнения
Срок оказания Услуг по данному Приложению составляет 1 (один) месяц с момента оплаты авансовой части.

3. Гарантии и защита
Исполнитель гарантирует выполнение всех заявленных функций бота, описанных в Приложении, в течение срока, указанного в договоре.
Исполнитель обязуется исправлять любые ошибки, обнаруженные в работе бота, в течение 3 (трёх) рабочих дней с момента получения уведомления от Заказчика.
Период предоставления бесплатной технической поддержки для исправления ошибок составляет 1 (один) месяц с даты передачи бота Заказчику.
Исправление ошибок, возникших из-за изменений, внесённых Заказчиком самостоятельно или третьими лицами, в рамках гарантийных обязательств не осуществляется.
Исполнитель оставляет за собой право предлагать услуги дополнительной поддержки и модификации бота на условиях, согласованных с Заказчиком.

4. Конфиденциальность и безопасность данных
Стороны обязуются сохранять конфиденциальность всей информации, переданной в ходе выполнения настоящего Приложения, и не разглашать её третьим лицам без предварительного письменного согласия другой стороны.
Все данные и доступы, переданные в рамках настоящего Приложения, должны использоваться исключительно для выполнения обязательств по договору.
В случае утечки данных стороны обязуются уведомить друг друга в течение 24 часов.

5. Описание функционала (Техническое задание)
Основной функционал веб-бота:
Проведение консультаций.
Запись на приём с уведомлением Заказчика.
Предоставление рекомендаций и ссылок на покупку товаров.
Помощь с навигацией по сайту.
Основной функционал Telegram-бота:
Ответы на вопросы пользователей.
Предоставление рекомендаций и ссылок.
Напоминания о записи на приём.
Технические требования:
Язык программирования: Python.
База данных: PostgreSQL/MySQL.
Веб-бот: Flask/Django.
Telegram-бот: библиотеки aiogram или pyTelegramBotAPI.
Сервер: постоянный доступ к интернету.
.