Собственный проект GuardLabs Контент синтетический Движок отвечает вживую

LLM-платформа AskOracle: потоковый ответ, три языка, внутренний счёт и резерв провайдеров

Инженерный стенд. Мы построили эту платформу целиком — от бэкенда на Flask до биллинга и мультиязычного фронта — и оставили её как витрину четырёх вещей, которые чаще всего просят в заказах на AI-сервисы.

Честно, что это. AskOracle — наш собственный продукт, а не работа для заказчика. Персонаж «оракула» и все тексты предсказаний — художественный, синтетический контент: это не совет и не прогноз, а нагрузка, на которой видно работу движка. Как продукт проект закрыт 30.08.2026; стенд оставлен ради инженерной части. Никакие данные пользователей здесь не показываются.

1. Живой потоковый ответ и три языка

Нажмите — вопрос уйдёт на наш работающий бэкенд, ответ модели пойдёт словами по мере генерации (Server-Sent Events, без буферизации на nginx). Кнопки ниже переключают язык стенда и задают движку язык ответа: базовое правило платформы «отвечать на языке вопроса» они усиливают отдельной инструкцией в системном промпте — так ответ не сваливается в чужой язык на коротких или смешанных вопросах.

Баланс: 10 ◆  ·  списание 1 ◆ за запрос
Ответ появится здесь.
первый символ: всего: кусков потока: символов:

2. Внутренний счёт за запрос

Кошелёк с внутренней валютой: каждый вопрос списывает 1 ◆, пополнение идёт начислениями (покупка, реферал, ежедневный бонус), каждое движение пишется отдельной строкой в журнал — баланс всегда можно пересобрать из истории.

1 ◆
списание за вопрос
2
раздельных кармана: заработанное и купленное
4
источника начислений: покупка, реферал, стрик, ваучер
append-only
журнал операций crystal_ledger

Счётчик на этой странице живёт в браузере и просто повторяет боевую механику. В работающей платформе баланс и журнал лежат в PostgreSQL, списание идёт транзакцией на стороне сервера, и при нехватке средств запрос до модели не доходит вообще.

3. Несколько провайдеров с резервом

Одна модель — одна точка отказа: кончилась квота или провайдер лёг, и сервис молчит. Здесь запрос идёт по цепочке: ключи перебираются по очереди, при лимите или ошибке подхватывает следующий, последним стоит другой поставщик целиком. Пользователь этого не видит — поток просто продолжается.

1
Groq · ключ 1…5
openai/gpt-oss-120b, потоковый режим. Пустые ключи отсеиваются на старте, платный пробуется последним.
рабочий
2
DeepSeek
Выключен 30.08.2026: аккаунт отвечал отказом, а гарантированно неудачная попытка только добавляла задержку перед реальным резервом.
отключён
3
Google Gemini
Последний рубеж. Бесплатный тариф, 20 запросов в сутки на модель — держится именно как аварийный, а не как основной.
резерв

Правило, которое мы вынесли отсюда в другие проекты: лучше ответ от запасного поставщика, чем честное «сервис недоступен». И наоборот — заведомо мёртвое звено из цепочки надо вынимать, иначе оно съедает секунды на каждом запросе.

Что внутри платформы

СлойКак сделано
БэкендPython / Flask под gunicorn, systemd-юнит с автоперезапуском и лимитом памяти
ДанныеPostgreSQL, 34 таблицы: пользователи, кошелёк и журнал операций, заказы, комнаты, реферальная механика, кэш предсказаний, антифрод
Потоковая отдачаSSE, proxy_buffering off + X-Accel-Buffering: no — иначе nginx копит ответ и «стриминг» превращается в паузу
ЯзыкиСвой словарь ru / en / es на весь интерфейс; язык ответа модели идёт за языком вопроса
ЗащитаОграничение частоты на запрос (10/мин, 60/час), лимит одновременных соединений с IP, антифрод-проверки, страница обслуживания на 502/503/504
ГолосОтдельный маршрут синтеза речи со своим лимитом
Совместные комнатыОбщая сессия по ссылке: несколько человек видят один и тот же поток ответов
Стенд GuardLabs. Ответы генерирует живая языковая модель, персонаж и тексты — вымысел, к реальности отношения не имеют и советом не являются. Проект AskOracle закрыт как продукт 30.08.2026 — страница оставлена как инженерный кейс.
Нужен такой же стриминг, мультиязычность, внутренний биллинг или отказоустойчивая цепочка моделей в вашем сервисе — напишите нам.