[Искусственный интеллект · Интеграция LLM · Автоматизация]
AI-ассистент и контекстная автоматизация
AI-компоненты внутри платформы, которые понимают запросы пользователей в контексте, в то время как детерминированные правила бэкенда проверяют критичные операции и обеспечивают их безопасность.
01Обзор проекта
Ассистент позволяет пользователям общаться с платформой на естественном языке. Он подключён к реальному состоянию приложения, поэтому ответы учитывают настройки, сигналы и историю пользователя, а не являются общим текстом.
Главная идея — разделение ответственности: языковая модель работает с языком и гибкими запросами, а бэкенд и детерминированные правила решают, что на самом деле произойдёт.
02Инженерная задача
LLM гибкие, но их правильность не гарантирована. В продукте, который затрагивает торговые настройки и состояние аккаунта, модель никогда не должна быть единственным барьером между запросом и действием.
- A
Получать нужный контекст для каждого запроса из состояния приложения.
- B
Превращать ответы модели в структурированные данные, которые можно проверить.
- C
Блокировать действия, не прошедшие проверку, независимо от формулировки запроса.
- D
Наблюдать за поведением AI в продакшене, чтобы находить и исправлять типичные сбои.
03Архитектура решения
Наведите или нажмите на этап.
Запрос пользователя
Сообщение на естественном языке из Mini App или чата Telegram.
LLM → язык и контекст · Бэкенд → состояние и операции · Правила → лимиты и защита · Мониторинг → поведение и диагностика
04Основные компоненты
- 01
Сервис ассистента
Интеграция с LLM API, формирование запросов и обработка ответов.
- 02
Сборщик контекста
Собирает для каждого запроса нужное состояние приложения и память диалога.
- 03
Проверка ответов
Разбирает структурированные ответы и отклоняет всё, что не соответствует ожидаемой схеме.
- 04
Слой правил
Детерминированные проверки, защищающие критичные параметры и операции.
- 05
Маршрутизатор действий
Сопоставляет проверенные намерения с операциями бэкенда.
- 06
AI-мониторинг
Логи и анализ AI-процессов для выявления неожиданного поведения.
05Технологический стек
AI
- OpenAI API
- Structured outputs
- Context & memory
Бэкенд
- Python
- Rules engine
- Application state
Эксплуатация
- Logging
- Workflow analysis
06Интерактивная демонстрация
Симуляция обработки запроса
ИллюстрацияИллюстративная симуляция. Ответы заранее заданы — модель не вызывается, production-промпты не показываются.
Выберите запрос
- 01Запрос пользователя
- 02Получение контекста
- 03Обработка AI
- 04Структурная проверка
- 05Действие бэкенда
- 06Ответ пользователю
Полученный контекст
- —
Ответ модели · структура
—
Проверка и действие
Диалог
07Инженерные решения
- 01
Гибрид по замыслу
AI интерпретирует, правила решают. Это сохраняет пользу ассистента, не позволяя ему обходить бизнес-логику.
- 02
Схемы на границе
Ответ модели считается недоверенным входом и проверяется так же, как ответ любого внешнего API.
- 03
Контекст отбирается, а не сваливается
Модели передаётся только релевантное состояние — ответы точнее, а стоимость предсказуема.
- 04
Наблюдаемый AI
AI-процессы логируются и разбираются так же, как любой другой production-компонент.
08Надёжность и тестирование
- Проверка по схеме каждого структурированного ответа модели.
- Запасные ответы, если модель не ответила или вернула некорректные данные.
- Проверки правил, работающие независимо от модели.
- Разбор залогированных диалогов для поиска типичных сбоев.
09Пример кода
from dataclasses import dataclass
ALLOWED_INTENTS = {"show_signals", "update_language", "explain_signal"}
SUPPORTED_LANGUAGES = {"en", "pl", "uk", "ru"}
@dataclass
class Intent:
name: str
params: dict
def guard(intent: Intent) -> Intent:
"""Model output is untrusted input. Validate before acting."""
if intent.name not in ALLOWED_INTENTS:
raise ValueError(f"intent '{intent.name}' is not permitted")
if intent.name == "update_language":
lang = intent.params.get("language")
if lang not in SUPPORTED_LANGUAGES:
raise ValueError(f"unsupported language: {lang!r}")
return intentИллюстрация Иллюстративный инженерный пример — проверка предложенного моделью намерения перед выполнением.
Исходный код продукта закрыт. Примеры показывают инженерный подход, а не внутреннюю логику. Больше — в Engineering Lab.
10Возможное развитие
- Наборы оценочных запросов, прогоняемые после изменения промпта или модели.
- Аналитика по намерениям, показывающая, где пользователям сложно.
- Tool-calling для более широкого набора безопасных проверенных операций.