/aichat2/conversations) — это интерфейс диалогов нового поколения и полностью обновлённая версия AI Chat API. На основе лаконичного v1 с управляемыми многоходовыми диалогами он расширяет возможности:
- Мультимодальный пользовательский ввод: напрямую передавайте текст + изображения + файловые блоки через структурированное поле
message, без необходимости косвенного прикрепления черезreferences. - Вызовы инструментов в стиле Agent: встроенный набор инструментов для поиска в интернете, извлечения веб-страниц, чтения файлов и т. д., а также возможность подключать авторизованные пользователем MCP-серверы (Google Drive, Notion, Slack, GitHub и т. д.); модель может самостоятельно вызывать инструменты в несколько раундов в рамках одного запроса для выполнения сложных задач.
- Структурированные потоковые события: через
accept: text/event-streamилиapplication/x-ndjsonможно получать событияtext_delta,tool_use,tool_result,thinking,citation,card,artifactи другие на уровне отдельных токенов, что упрощает отдельный рендеринг соответствующих типов на фронтенде. - Возможность прерывания / возобновления: когда модели требуется дополнительная информация от пользователя, она отправляет событие
ask_user_questionи приостанавливается; при следующем вызове можно передать ответ обратно черезtool_results, чтобы продолжить. - Новые CRUD-действия: используйте поле
actionна том же endpoint для выполненияretrieve/retrieve_batch/update/delete, без дополнительного API управления диалогами. - Постоянно обновляемый список моделей: по умолчанию подключены современные модели, такие как GPT-5.4, Claude Opus 4.8, Claude Sonnet 4.6, Gemini 3.1 Pro, GLM 5.1, DeepSeek V4, Kimi K3 и другие.
model + question (+ опциональные stateful / id / references / preset), чтобы получить JSON-ответ {answer, id}, эквивалентный v1. Поэтому при миграции с /aichat/conversations не нужно переписывать клиент — достаточно заменить путь на /aichat2/conversations.
Если вы сейчас используете /aichat/conversations, старый интерфейс продолжит обслуживаться, и вы можете мигрировать в удобном для вас темпе.
Процесс подачи заявки
Чтобы использовать AI Chat v2 API, сначала получите ваш API Token в консоли Ace Data Cloud и сохраните его для дальнейшего использования.
Если вы ещё не вошли в систему или не зарегистрировались, вы будете автоматически перенаправлены на страницу входа, где вам будет предложено зарегистрироваться и войти; после завершения вы автоматически вернётесь на текущую страницу.
Один API Token позволяет вызывать все сервисы платформы, не нужно подавать отдельную заявку для каждого сервиса. При первом получении предоставляется бесплатный лимит для бесплатного тестирования; при недостатке лимита можно пополнить общий баланс в консоли.
📘 Полная документация: AI Chat v2 API →
Базовое использование
Самый простой способ использования полностью совпадает с v1: передайтеmodel + question и получите {answer, id}.
Пример CURL:
model можно увидеть непосредственно в выпадающем списке панели Try справа; распространённые категории включают:
- OpenAI:
gpt-5.4-mini,gpt-5.4-nano,gpt-5.2-pro,gpt-5.1-all,gpt-5-all,gpt-4.1,gpt-4o,gpt-4o-image,o3,o4-miniи т. д. - Anthropic:
claude-opus-4-8,claude-opus-4-7,claude-opus-4-6,claude-opus-4-5-20251101,claude-sonnet-4-6,claude-sonnet-4-5-20250929,claude-haiku-4-5-20251001и т. д. - Google:
gemini-3.1-pro-preview,gemini-3.1-pro-preview,gemini-3.1-flash-image,gemini-3.1-pro-preview,gemini-2.5-flash-liteи т. д. - xAI:
grok-4и т. д. - DeepSeek:
deepseek-v4-pro,deepseek-v4.1-flash,deepseek-v4-flash,deepseek-v3.2-exp,deepseek-r1-0528и т. д. - Moonshot:
kimi-k3.1-pro,kimi-k3,kimi-k2.6,kimi-k2.5и т. д. - Zhipu:
glm-5.3,glm-5.2,glm-5.1,glm-5,glm-5-turbo,glm-4.7,glm-4.5vи т. д.
Многоходовые диалоги
Как и в v1, передайтеstateful: true, чтобы включить сохранение диалога; API вернёт id; в последующих запросах передавайте этот id, чтобы продолжить диалог, без необходимости самостоятельно поддерживать историю messages.
Первый запрос:
id:
Значениеstatefulпо умолчанию —true; его пропуск эквивалентен явной передачеtrue. Если вы не хотите, чтобы сервер сохранял этот раунд диалога, можно явно установитьstateful: false.
Потоковый ответ
v2 поддерживает два формата потоковой передачи, выбираемых по заголовкуaccept:
Пример NDJSON
text_delta:
Пример SSE
ИспользованиеEventSource в браузере не поддерживает пользовательское тело запроса; рекомендуется использовать fetch + ручной разбор по фрагментам \n\n:
Типы потоковых событий
Для клиентов, которым важен только итоговый ответ, объединение
content всех text_delta эквивалентно answer в режиме application/json.
Мультимодальный ввод
Если пользовательский ввод содержит изображения или файлы, передавайтеmessage (массив) вместо question. Каждый элемент массива является блоком контента:
text— обычный текст, обязательное полеtext.image_url— изображение, обязательное полеimage_url.url.file_url— файл (PDF, CSV, TXT и т. д.), обязательное полеfile_url.url.
Связь с references v1
Для совместимости со старыми клиентами v2 по-прежнему распознаёт поле references: ["https://...", ...]:
- Если суффикс URL —
jpg / jpeg / png / gif / bmp / webp / svg / heic / heif, автоматически преобразуется в блокimage_url; - Другие расширения преобразуются в блок
file_url; - Если одновременно предоставлен
question, он добавляется перед ними как блокtext.
/aichat2/conversations, исходное использование references продолжит работать как обычно.
Если нужен более точный контроль (например, размещать несколько изображений между текстом или если важен порядок), напрямую используйте массив message.
Вызов инструментов и MCP
Основное улучшение v2 заключается в том, что модель может самостоятельно вызывать инструменты для выполнения многошаговых задач, это включено по умолчанию, и клиенту не нужно выполнять какую-либо дополнительную настройку в запросе. Распространённые сценарии:- Пользователь спрашивает: «Помоги мне найти, какие новые выставки недавно проходят в Шанхае» → модель вызывает встроенный web search → упорядочивает результаты в ответ.
- Пользователь спрашивает: «Прочитай этот PDF и затем напиши краткое содержание» → модель вызывает file_read → пишет краткое содержание.
- Пользователь уже авторизовал Google Drive / GitHub / Notion и т. д. в Connections → модель может вызывать соответствующие MCP-инструменты для чтения и записи его данных.
tool_use и tool_result, например:
tool_use / tool_result / card / citation; итоговый вывод модели всё равно передаётся через поток text_delta.
max_turns может ограничивать максимальное число раундов самостоятельного вызова инструментов моделью в этом запросе, диапазон — 1–500, по умолчанию при пропуске — 500. Установка малого значения (например, max_turns: 1) может принудительно задать однократный ответ и запретить любые вызовы инструментов.
Асинхронное выполнение и авторизация без участия пользователя
Если ваш вызов поступает из Webhook предупреждений, CI/CD, системы мониторинга или других фоновых задач, можно установитьasync: true, чтобы интерфейс немедленно вернул ID задачи, а выполнение продолжилось в фоне:
action: retrieve + id для запроса результата беседы; также можно указать callback_url, и после завершения задачи платформа отправит { status, answer, usage, error } методом POST на ваш адрес обратного вызова. callback_url должен использовать http / https и не может напрямую указывать localhost или литеральный адрес частного IP.
У фоновых задач обычно нет человека, который может нажать подтверждение. Если вы хотите, чтобы некоторые Skill или MCP Server выполняли действия отправки, публикации, записи и т. д. в режиме без участия пользователя, явно передайте список предварительной авторизации в теле запроса:
allowed_skills — это slug подключённых Skill; значения в allowed_mcp_servers — это slug подключённых MCP Server. Skill / MCP Server, не включённые в предварительную авторизацию, в режиме без участия пользователя по-прежнему могут только выполнять предварительный просмотр, dry-run или отказываться от выполнения операций записи.
Если требуется более детальный контроль, также можно использовать эквивалентный объект unattended_policy:
--unattended-confirm или соответствующий механизм безопасности; в противном случае он продолжит выполнять dry-run и не будет напрямую выполнять операции записи.
Возобновление приостановленных бесед
Некоторые инструменты заставляют модель «задать пользователю встречный вопрос»; в этот момент модель отправляет событиеask_user_question, а беседа замораживается в состоянии awaiting_user_input:
id, передав ответ обратно через tool_results:
tool_use_id в теле запроса должен полностью совпадать с tool_id на момент приостановки; при несовпадении будет возвращён 400. Когда в запросе одновременно присутствует tool_results, question / message / references будут проигнорированы.
Если пользователь решает отказаться от этого вопроса, просто передайте новый question / message, платформа автоматически пометит приостановленный вызов инструмента как «пропущен пользователем».
Управление беседами (CRUD)
v2 предоставляет облегчённое управление беседами через полеaction в том же endpoint, без необходимости открывать отдельный API.
action: retrieve —— Получение беседы
messages, model, title, tools_used и т. д.).
action: retrieve_batch —— Вывод сводок бесед
{ items: [...], total }. Сводки не содержат messages, поэтому подходят для списка на боковой панели; если пользователь открывает какую-либо беседу, затем используйте action: retrieve, чтобы отдельно получить её полные сообщения.
Необязательные параметры фильтрации: user_id, application_id, model_group, model.
action: update —— Изменение заголовка или перезапись истории
messages, но сервер выполнит строгую проверку schema (обязательно должна быть свёрнутая форма ToolUseContent); при несоответствии будет возвращён код 400. Как правило, рекомендуется использовать это только для изменения title.
action: delete —— Удаление беседы
{ id, success: true }. После удаления восстановление невозможно, подтвердите перед вызовом.
Плавная миграция с v1
Если вы уже используете/aichat/conversations, миграция на v2 почти не требует изменения кода:
- Измените URL с
https://api.acedata.cloud/aichat/conversationsнаhttps://api.acedata.cloud/aichat2/conversations. - Если ранее вы передавали имя модели v1 (например,
gpt-3.5,gpt-4-browsingи т. д.), при переходе на v2 рекомендуется обновиться до современных моделей (например,gpt-5.4,claude-opus-4-8,gemini-3.1-pro-previewи т. д.). - Поля потока NDJSON сохраняют обратную совместимость: каждое событие
text_deltaпо-прежнему содержитdelta_answerиid, поэтому клиентам, которые ранее построчно разбиралиdelta_answer, не нужно ничего менять.
message, SSE, вызов инструментов, CRUD через action) и внедрять их в удобном темпе.
Обработка ошибок
Ответы с ошибками имеют единый формат:400 bad_request: отсутствуют обязательные поля, не совпадаетtool_use_id, schemamessagesнедопустима и т. д.401 invalid_token: заголовокauthorizationуказан неверно.404 not_found: приaction: retrieve / update / deleteбеседа, соответствующаяid, не существует.429 too_many_requests: сработало ограничение скорости.500 chat_error: ошибка вышестоящей LLM или в текущем раундеcompletion_tokens=0(обрабатывается как неиспользованный запрос, плата не взимается).
{"type":"error","message":"..."}, после чего поток сразу завершается.

