/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-действия: выполняйте
retrieve/retrieve_batch/update/deleteчерез полеactionна том же endpoint, без необходимости в дополнительном 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,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 может ограничивать, сколько раундов модель может самостоятельно вызывать инструменты в данном запросе, верхний предел по умолчанию определяется платформой. Установив небольшое значение (например, max_turns: 1), можно принудительно ограничить ответ одним разом и не разрешать никакие вызовы инструментов.
Асинхронное выполнение и авторизация без присмотра
Если ваш вызов поступает из Webhook оповещений, CI/CD, системы мониторинга или других фоновых задач, можно установитьasync: true, чтобы интерфейс немедленно вернул ID задачи, а выполнение продолжилось в фоне:
action: retrieve + id для запроса результата беседы; также можно предоставить callback_url, и после завершения задачи платформа выполнит POST { status, answer, usage, error } на ваш адрес обратного вызова. 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 предоставляет лёгкое управление диалогами на том же endpoint через полеaction, без необходимости открывать отдельный 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":"..."}, после чего поток сразу завершается.

