REST API · Async · Laravel 13

API-шлюз
к AI‑ассистентам

Отправьте задачу одним HTTP-запросом — получите результат, когда он готов. Текст, файлы, голос, внешние инструменты. Всё асинхронно, всё через API.

Как это работает

Три шага между вашим кодом и ответом AI-ассистента.

1

Отправьте задачу

POST /api/tasks с JWT-токеном из Aist Back. Укажите ассистента, входные данные — текст, файлы или голос. Получите uuid задачи мгновенно.

2

Обработка в фоне

Agent создаёт чат и ход в Aist Back, передаёт конфигурацию ассистента в Aist Core. Если ассистенту нужны внешние инструменты — Agent вызовет их автоматически.

3

Заберите результат

Поллинг: GET /api/tasks/{uuid} — опрашивайте статус, пока задача не завершится.
Webhook: передайте callback_url при создании — Agent сам уведомит вас, как только обработка завершится.

Ваш сервис
AIST Agent
Aist Back
Aist Core
Внешние API

Возможности

Всё необходимое для интеграции AI в ваш продукт.

Асинхронная обработка

Задачи обрабатываются через Redis-очередь с Horizon. Ваш сервер не ждёт — периодически опрашивает статус по uuid.

Текст, файлы, голос

Отправляйте мультимодальные входные данные: текстовые запросы, загруженные файлы и голосовые сообщения в одном запросе.

Внешние инструменты

Ассистент сам вызывает внешние HTTP API во время обработки — получает данные, выполняет действия, возвращает результат в контексте ответа.

Безопасность

RS256 JWT-аутентификация с кэшированием публичного ключа. HMAC-подпись webhook-ов. Автоматический отзыв скомпрометированных токенов.

Контроль нагрузки

Атомарный лимит одновременных задач на пользователя с Redis-блокировкой. Настраивается через переменную окружения.

Выбор модели

Передайте llm_model_id или image_generator_id, чтобы выбрать конкретную модель из конфигурации ассистента.

Horizon и масштабирование

Redis-очередь с Laravel Horizon: авто-масштабирование воркеров, мониторинг, повторные попытки при сбоях с экспоненциальной задержкой.

Экосистема AIST

Ассистенты, модели, документы и инструменты управляются в Aist Back. Agent использует ту же инфраструктуру, что и чат-интерфейс.

Webhook-уведомления

Передайте callback_url — Agent отправит результат на ваш URL сразу по завершении. Укажите callback_secret для подписи запроса через HMAC-SHA256: до 5 попыток с backoff.

Где это пригодится

Agent раскрывает потенциал AI-ассистентов за пределами чат-интерфейса.

Чат-боты в мессенджерах

Подключите Telegram, VK или любой мессенджер. Бот отправляет сообщение пользователя в Agent, поллит статус и пересылает ответ обратно. Все возможности ассистента — включая поиск в интернете, генерацию картинок и работу с документами — доступны прямо в чате.

Автоматизация процессов

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

Встраивание AI в продукт

Добавьте AI-функции в своё мобильное или веб-приложение без сложной инфраструктуры. Agent берёт на себя оркестрацию между вашим приложением, хранилищем ассистентов и AI-движком.

Пакетная обработка

Загрузите пачку файлов или текстов, запустите одного ассистента на все задачи. Лимит одновременных задач защищает систему от перегрузки, а Horizon распределяет нагрузку между воркерами.

Быстрый старт

Два запроса — задача создана и результат получен.

POST /api/tasks
// Создаём задачу
curl -X POST https://llm-agent-dev.aistcorp.com/api/tasks \
  -H "Authorization: Bearer <jwt>" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -d '{
    "assistant_id": 1,
    "input": [
      {
        "type": "text",
        "text": "Проанализируй этот документ"
      }
    ]
  }'
// Ответ:
{ "uuid": "550e8400-...", "status": "pending" }
GET /api/tasks/{uuid}
// Получаем результат
curl https://llm-agent-dev.aistcorp.com/api/tasks/550e8400-... \
  -H "Authorization: Bearer <jwt>" \
  -H "Accept: application/json"
// Ответ:
{
  "uuid": "550e8400-...",
  "status": "completed",
  "output": [
    {
      "type": "text",
      "text": "Анализ документа..."
    }
  ],
  "created_at": "2026-04-16T...",
  "completed_at": "2026-04-16T..."
}

Получение результата через webhook

Передайте callback_url при создании задачи — Agent сам уведомит вас, когда готово. Поллинг не нужен.

POST /api/tasks — с callback_url
// Создаём задачу с webhook
curl -X POST https://llm-agent-dev.aistcorp.com/api/tasks \
  -H "Authorization: Bearer <jwt>" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -d '{
    "assistant_id": 1,
    "callback_url": "https://yourapp.com/hook",
    "callback_secret": "your-secret",
    "input": [{
      "type": "text",
      "text": "Что такое Laravel?"
    }]
  }'
VERIFY Верификация входящего webhook
// Agent пришлёт заголовок:
X-Signature: sha256=abc123...
// Верифицируйте на своём сервере:
$body = file_get_contents('php://input');
$expected = hash_hmac(
    'sha256', $body, $secret
);
// Сравните с X-Signature
hash_equals($expected, $received);
// Тело — тот же формат, что GET /api/tasks/{uuid}
Agent доставляет webhook при любом финальном статусе (completed или failed). До 5 попыток с экспоненциальным backoff: 10 с, 30 с, 60 с, 120 с. Если callback_secret не указан — заголовок X-Signature не отправляется, верификация не требуется.

Форматы входных данных

type: "text"

Текстовый запрос. Основной формат для большинства задач.

type: "file"

Файл, загруженный через POST /api/files. Передаётся по ID.

type: "voice"

Голосовое сообщение. Транскрибируется автоматически перед обработкой.

Архитектура

Agent — мост между вашим кодом и экосистемой AIST.

AIST Agent

API-шлюз. Принимает задачи, ставит в очередь, оркестрирует обработку, возвращает результат. Laravel 13 + Horizon.

Aist Back

Центральный бэкенд. Хранит пользователей, ассистентов, чаты, ходы, модели, документы, инструменты и балансы.

Aist Core

AI-движок. Работает с 40+ моделями от 6 провайдеров. Обрабатывает ходы, выполняет инструменты, стримит ответы.

Aist Chat

Middleware для чат-интерфейса. SSE-стриминг ответов в реальном времени. Работает параллельно с Agent.

Два пути к одному ассистенту

Через Agent (программный)

REST API → Redis-очередь → Aist Back → Aist Core → polling или webhook. Для серверных интеграций, ботов, автоматизации. Асинхронно, без UI.

Через Chat (интерактивный)

Браузер → Aist Chat → Aist Back → Aist Core → SSE-стрим. Для пользовательского чат-интерфейса. В реальном времени, с UI.

Под капотом

Технические детали для тех, кто будет интегрировать.

Параметр Значение
Фреймворк Laravel 13, PHP 8.3
Очередь Redis + Laravel Horizon, очередь tasks
Аутентификация RS256 JWT (публичный ключ из Aist Back)
Webhook-безопасность HMAC-SHA256 на основе APP_KEY
Лимит задач До 5 одновременных на пользователя
Повторные попытки 3 попытки с backoff 5с, 30с
Webhook-доставка До 5 попыток с backoff 10с, 30с, 60с, 120с; подпись X-Signature: HMAC-SHA256
Автоочистка Завершённые задачи удаляются через 30 дней
Тесты Pest 4, feature + unit тесты