Разработчик встраиваемых систем. SaaS-сервис для автоматических ответов через ChatGPT, интегрированный с JivoSite (Дистанционная работа)

Бюджет не указан

Задание: Разработчик встраиваемых систем. SaaS-сервис для автоматических ответов через ChatGPT, интегрированный с JivoSite (Дистанционная работа)

Краткое описание Необходимо разработать веб-сервис, где клиент (например, владелец сайта или менеджер компании) сможет: Самостоятельно создавать GPT-ассистентов через удобный интерфейс. Настраивать их поведение (обучение, стиль ответов, доступ к данным). Интегрировать бота в JivoChat, чтобы он общался с клиентами на сайте. Сервис должен быть максимально простым для пользователя, но при этом гибким в настройках. БРИФ: SaaS-сервис для автоматических ответов через ChatGPT, интегрированный с JivoSite Цель Разработать масштабируемый backend + UI, который: принимает сообщения от JivoSite через webhook, обрабатывает их с помощью OpenAI GPT-4o, возвращает ответы обратно в Jivo API, поддерживает гибкие настройки на уровне клиентов и ботов, ведёт учёт токенов и баланса, реализует базовую финансовую модель. ️ Техническая архитектура Поток данных: Jivo → Webhook Receiver (Go) Webhook → Kafka (топик from_jivo) Consumer (Go): Проверка лимитов и баланса Получение / создание GPT thread Запрос к OpenAI Подсчёт токенов (локально, через tiktoken) Запись ответа в Kafka to_jivo Consumer → Jivo API (отправка ответа) Баланс клиента уменьшается на сумму запроса (в рублях) ️ Интерфейсы Интерфейс клиента (Vue): Личный кабинет с авторизацией (логин/пароль) Список ботов Создание/редактирование бота: Температура System prompt Модель (GPT-4o) Контекст (N сообщений) Max tokens в ответе API токен Jivo / webhook URL Статус: активен / остановлен Баланс клиента (в рублях) Кнопка пополнить баланс (интеграция с внешними платёжками позже) История транзакций и usage по токенам ️ Интерфейс модератора (Vue): Авторизация (с ролью администратора) Поиск клиентов Просмотр и редактирование: Профиля клиента Списка ботов Баланса Лимитов Ручное пополнение счёта клиента Просмотр логов сообщений (в т.ч. ошибки OpenAI/Jivo) Аналитика по токенам, чартам Авторизация Email + пароль (JWT) Роли: admin, client Возможность добавления пользователей вручную (через базу или invite-ссылку) Учёт токенов и биллинг Подсчёт токенов: Используется локальный расчёт через tiktoken по каждому GPT-запросу. Подсчитываются: входящие токены (system prompt + история + сообщение) токены ответа Списание: Токены переводятся в рубли по внутреннему курсу (например, 1000 токенов = 1.5 руб). Баланс уменьшается после успешного ответа от OpenAI. Баланс: У клиента есть поле balance (в рублях). При 0 — бот не отвечает. Админ может вручную пополнить. Клиент может инициировать пополнение через кнопку. База данных (PostgreSQL) Таблицы: users: id, email, password_hash, role clients: id, name, owner_user_id, balance, created_at bots: id, client_id, name, settings (jsonb) messages: id, bot_id, text, role, tokens, created_at transactions: id, client_id, amount, type (debit/credit), comment, created_at Backend стек (Go) Компонент Технология Язык Go Web Framework chi или echo LLM-интеграция github.com/sashabaranov/go-openai Kafka from_jivo, to_jivo Redis кэш лимитов, токенов, threadID Auth JWT (go-jose, или аналог) Очередь Kafka или Redis Streams (в dev/solo можно in-memory) Логика FSM внутри consumer-воркера БД PostgreSQL (через GORM или sqlc) Хранилище логов stdout + Loki / ELK Мониторинг Prometheus + Grafana Frontend стек (Vue) Раздел Функциональность Логин / регистрация JWT-аутентификация Клиентская панель Настройка ботов, просмотр токенов, баланс Модераторская панель Доступ ко всем клиентам, ручные правки, просмотр usage Компоненты UI Vuetify или Naive UI Взаимодействие REST API или gRPC-gateway Возможности масштабирования Консьюмеры можно запускать в N экземплярах (CPU-bound) Jivo может работать с тысячами сообщений / минуту через Kafka Redis кеширует состояние, threadID, usage Можно легко переключиться на облачный биллинг (Stripe / ЮKassa)