Задание: Веб-программист. Говорящие аватары‑философы AI (Дистанционная работа)
1. Цель и задачи
Цель: Создать веб‑сервис, позволяющий пользователю в реальном времени общаться с «аватарами» философов (Эпиктет, Аристотель, Марк Аврелий и др.) через голосовые сообщения и получать от них видео‑ответы с синхронизацией речи и анимацией лица (HeyGen).
Ключевые задачи:
* Приём аудио‑запросов от пользователя
* Распознавание речи (STT → текст)
* Поисковый модуль: извлечение контекста из корпуса текстов философа
* Генерация ответа через LLM (RAG: retrieval‑augmented generation)
* Синтез речи (TTS)
* Генерация видео‑аватара через HeyGen API
* Отправка видео пользователю в веб‑чат
2. Архитектура системы
flowchart LR
Client[Клиент (React/NextJS)]
STT[STT‑сервис (Whisper)]
VecDB[Векторная БД (Pinecone/Weaviate)]
Agent[Agent (Django API + LangChain)]
TTS[TTS‑сервис (ElevenLabs/Azure)]
HeyGen[HeyGen‑Proxy]
Queue[Очередь (RabbitMQ/Redis Streams)]
WS[WebSocket‑сервер]
Client -->|аудио| STT
STT -->|текст| Agent
Agent -->|запрос контекста| VecDB
VecDB --> Agent
Agent -->|ответ текст| TTS
TTS --> Agent
Agent -->|audio+avatarID| HeyGen
HeyGen --> Agent
Agent -->|видео| Client
Agent -.-> Queue
Queue -.-> Agent
Agent <--> WS
3. Основные компоненты и технологии
Компонент Технологии / сервисы
Бэкенд API & Agent Python, Django, Django REST Framework, LangChain/LlamaIndex
Векторная БД Pinecone / Weaviate / Qdrant + OpenAI Embeddings API
STT (Speech‑to‑Text) OpenAI Whisper API или локально развёрнутый Whisper
TTS (Text‑to‑Speech) ElevenLabs / Azure Cognitive Services / Google Cloud TTS
Интеграция HeyGen официальное HeyGen REST API (+ свой прокси‑контейнер)
Очереди и асинхронность RabbitMQ или Redis Streams + Celery или custom workers
WebSocket‑сервер Django Channels или отдельный Node.js с Socket.IO
Фронтенд ReactJS, NextJS, WebRTC (для записи аудио), Vercel deployment
Контейнеризация и деплой Docker, Docker Compose, DigitalOcean Droplet, Vercel
Хранение сессий и кэш Redis
Мониторинг Prometheus + Grafana
Безопасность Nginx (TLS), JWT для внутренних сервисов, rate‑limit
4. Функциональные требования
1. Регистрация и сессии
* Каждый пользователь получает уникальный ID сессии.
* Возможность переключаться между разными философами.
2. Запись и отправка аудио
* UI‑компонент для записи (WebRTC) или загрузки файла.
* Отправка на STT‑сервис.
3. Распознавание речи
* Точность распознавания не ниже 95%.
* Поддержка русского и английского языков.
4. Поиск контекста
* Индексация минимум 1 000–5 000 цитат и текстов для каждого философа.
* Время отклика ≤ 300 ms.
5. Генерация ответа
* Ответы в стиле выбранного философа (тон, цитаты).
* Ограничение длины ответа — до 200 слов.
6. Синтез речи и видео‑аватар
* Время конвертации TTS ≤ 1 s.
* Генерация видео в HeyGen ≤ 3 s.
* Сохранение видео‑ответов в S3‑like хранилище или DigitalOcean Spaces.
7. Front‑end
* Отображение видео и текста ответа.
* Индикация процесса (загрузка, обработка, готово).
8. Логи и метрики
* Логирование всех этапов (STT, поиск, LLM, TTS, HeyGen).
* Сбор метрик задержек, ошибок, нагрузок.
5. Нефункциональные требования
* Производительность:
* Обработка одного запроса end‑to‑end ≤ 6 s.
* Масштабируемость:
* Возможность горизонтального масштабирования каждого микросервиса.
* Надёжность:
* Автоматический перезапуск контейнеров при падении.
* Очереди гарантируют доставку сообщений.
* Безопасность:
* TLS‑шифрование для всех HTTP/WebSocket соединений.
* Защита API ключей (Vault или переменные окружения).
6. Требования к программисту
Позиция: Full‑stack разработчик / DevOps инженер (microservices)
Обязательные навыки:
* Backend:
* Python 3.8+, Django, Django REST Framework
* Опыт работы с LangChain или LlamaIndex (RAG)
* Знание OpenAI API (GPT, Embeddings), Whisper API
* Celery / RabbitMQ или Redis Streams
* PostgreSQL, Redis
* Frontend:
* ReactJS, NextJS
* WebRTC (или опыт интеграции аудио‑записи в браузере)
* Опыт работы с WebSocket (Django Channels или Socket.IO)
* Инфраструктура:
* Docker, Docker Compose, базовое понимание Kubernetes
* DigitalOcean Droplet, Vercel (CI/CD)
* Nginx + TLS
* Опыт деплоя и мониторинга микросервисов (Prometheus, Grafana)
* Векторные БД:
* Pinecone, Weaviate или Qdrant
* OpenAI Embeddings API
Пожалуйста, пришлите примеры ваших работ, в частности проекты по интеграции с OpenAI и ChatGPT, а также тексты в GPT Wrappers. Расскажите, как вы видите наш проект: в какие сроки сможете его реализовать и какова будет стоимость. Уточните, работаете ли вы как частный специалист или в составе команды, и достаточно ли у вас квалификации для выполнения этой задачи. Жду ваши примеры, коммерческое предложение, сроки и бюджет.