/aichat2/conversations) é a nova geração da interface de conversação e uma versão totalmente atualizada da AI Chat API. Com base na simplicidade e no gerenciamento de conversas com múltiplas rodadas da v1, ela expande:
- Entrada de usuário multimodal: envie diretamente blocos de texto + imagens + arquivos pelo campo estruturado
message, sem precisar anexá-los indiretamente primeiro usandoreferences. - Chamada de ferramentas com Agent: inclui um conjunto de ferramentas como pesquisa online, extração de páginas da web e leitura de arquivos, e permite montar servidores MCP autorizados pelo usuário (Google Drive, Notion, Slack, GitHub etc.). O modelo pode chamar ferramentas autonomamente em múltiplas rodadas dentro de uma única solicitação para concluir tarefas complexas.
- Eventos estruturados de streaming: por meio de
accept: text/event-streamouapplication/x-ndjson, é possível obter eventos comotext_delta,tool_use,tool_result,thinking,citation,cardeartifact, token por token, facilitando a renderização separada de cada tipo no frontend. - Interrompível / recuperável: quando o modelo precisar que o usuário forneça informações adicionais, ele emitirá um evento
ask_user_questione pausará. Na próxima chamada, basta preencher a resposta por meio detool_resultspara continuar. - Novas ações CRUD: conclua
retrieve/retrieve_batch/update/deletepor meio do campoactionno mesmo endpoint, sem necessidade de uma API adicional de gerenciamento de conversas. - Lista de modelos continuamente atualizada: integra por padrão modelos contemporâneos como GPT-5.4, Claude Opus 4.8, Claude Sonnet 4.6, Gemini 3.1 Pro, GLM 5.1, DeepSeek V4, Kimi K3 etc.
model + question (+ opcionalmente stateful / id / references / preset) para obter uma resposta JSON {answer, id} equivalente à v1. Portanto, ao migrar de /aichat/conversations, não é necessário reescrever o cliente; basta alterar o caminho para /aichat2/conversations.
Se você estiver usando atualmente /aichat/conversations, a interface antiga continuará em serviço, e você pode migrar no seu próprio ritmo.
Processo de solicitação
Para usar a AI Chat v2 API, primeiro obtenha seu API Token no console Ace Data Cloud e guarde-o para uso posterior.
Se você ainda não tiver feito login ou se registrado, será redirecionado automaticamente para a página de login, onde será convidado a se registrar e entrar. Após a conclusão, você retornará automaticamente à página atual.
Um único API Token pode chamar todos os serviços da plataforma, sem necessidade de solicitar um separadamente para cada serviço. A primeira solicitação concede créditos gratuitos para uma experiência sem custo; quando os créditos forem insuficientes, você poderá recarregar saldo universal no console.
📘 Documentação completa: AI Chat v2 API →
Uso básico
O uso mais simples é exatamente igual ao da v1: enviemodel + question e obtenha {answer, id}.
Exemplo CURL:
model podem ser vistos diretamente no menu suspenso do painel Try à direita, e as categorias comuns incluem:
- 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-minietc. - 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-20251001etc. - 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-liteetc. - xAI:
grok-4etc. - DeepSeek:
deepseek-v4-pro、deepseek-v4.1-flash、deepseek-v4-flash、deepseek-v3.2-exp、deepseek-r1-0528etc. - Moonshot:
kimi-k3.1-pro、kimi-k3、kimi-k2.6、kimi-k2.5etc. - Zhipu:
glm-5.3、glm-5.2、glm-5.1、glm-5、glm-5-turbo、glm-4.7、glm-4.5vetc.
Conversa com múltiplas rodadas
Assim como na v1, enviestateful: true para ativar o salvamento da conversa. A API retornará um id; basta incluir o id nas solicitações posteriores para continuar a conversa, sem precisar manter o histórico de mensagens por conta própria.
Primeira solicitação:
id:
statefulétruepor padrão; omiti-lo é equivalente a passar explicitamentetrue. Se você não quiser que o servidor salve esta rodada de conversa, pode definir explicitamentestateful: false.
Resposta em fluxo
A v2 oferece suporte a dois formatos de fluxo, selecionados de acordo com o cabeçalhoaccept:
Exemplo de NDJSON
text_delta:
Exemplo de SSE
No navegador, o uso deEventSource não oferece suporte a corpos de solicitação personalizados; recomenda-se usar fetch + análise manual por fatias de \n\n:
Tipos de eventos em fluxo
Para clientes que se preocupam apenas com a resposta final, concatenar o
content de todos os text_delta é equivalente a answer no modo application/json.
Entrada multimodal
Se a entrada do usuário incluir imagens ou arquivos, passemessage (um array) em vez de question. Cada elemento do array é um bloco de conteúdo:
text— Texto comum, o campotexté obrigatório.image_url— Imagem,image_url.urlé obrigatório.file_url— Arquivo (PDF, CSV, TXT etc.),file_url.urlé obrigatório.
Relação com references da v1
Para compatibilidade com clientes antigos, a v2 ainda reconhece o campo references: ["https://...", ...]:
- Sufixos de URL
jpg / jpeg / png / gif / bmp / webp / svg / heic / heifsão automaticamente convertidos em blocosimage_url; - Outras extensões são convertidas em blocos
file_url; - Se
questiontambém for fornecido, ele será colocado antes como um blocotext.
/aichat2/conversations, e o uso original de references continuará funcionando normalmente.
Se precisar de um controle mais refinado (por exemplo, colocar várias imagens entre textos, ou quando a ordem for muito importante), use diretamente o array message.
Chamada de ferramentas e MCP
O principal aprimoramento da v2 é que o modelo pode chamar ferramentas de forma autônoma para concluir tarefas em várias etapas, isso é ativado por padrão, não sendo necessária nenhuma configuração adicional pelo cliente na requisição. Cenários comuns:- O usuário pergunta: “Pesquise para mim quais exposições novas existem recentemente em Xangai” → o modelo chama a busca web integrada → organiza os resultados em uma resposta.
- O usuário pergunta: “Leia este PDF e depois escreva um resumo” → o modelo chama file_read → escreve o resumo.
- O usuário já autorizou Google Drive / GitHub / Notion etc. em Connections → o modelo pode chamar as ferramentas MCP correspondentes para ler e gravar seus dados.
tool_use e tool_result, por exemplo:
tool_use / tool_result / card / citation; a saída final do modelo continuará sendo transmitida por text_delta.
max_turns pode limitar o número máximo de rodadas em que o modelo chama ferramentas por conta própria nesta requisição, com intervalo de 1–500 e padrão de 500 quando omitido. Defini-lo como um valor pequeno (por exemplo, max_turns: 1) pode forçar uma resposta única e não permitir nenhuma chamada de ferramenta.
Execução assíncrona e autorização não supervisionada
Se sua chamada vier de Webhooks de alerta, CI/CD, sistemas de monitoramento ou outras tarefas em segundo plano, você pode definirasync: true para fazer a interface retornar imediatamente o ID da tarefa e continuar a execução em segundo plano:
action: retrieve + id para consultar o resultado da conversa; também é possível fornecer callback_url, e após a conclusão da tarefa a plataforma enviará por POST { status, answer, usage, error } ao seu endereço de callback. callback_url deve usar http / https e não pode preencher diretamente localhost ou um endereço IP privado literal.
Em geral, não há ninguém que possa clicar para confirmar em tarefas em segundo plano. Se desejar que determinados Skills ou MCP Servers executem ações como envio, publicação e gravação no modo não supervisionado, transmita explicitamente uma lista de pré-autorização no corpo da requisição:
allowed_skills são os slugs dos Skills conectados; os valores em allowed_mcp_servers são os slugs dos MCP Servers conectados. Skills / MCP Servers não incluídos na pré-autorização ainda só podem visualizar, fazer dry-run ou recusar a execução de operações de gravação no modo não supervisionado.
Se for necessário um controle mais detalhado, também é possível usar o objeto equivalente unattended_policy:
--unattended-confirm ou ao mecanismo de segurança correspondente; caso contrário, ele continuará em dry-run e não executará diretamente operações de gravação.
Retomar conversas pausadas
Algumas ferramentas fazem o modelo “perguntar de volta ao usuário”; nesse momento, o modelo emitirá um eventoask_user_question, e a conversa ficará congelada no estado awaiting_user_input:
id, preenchendo a resposta por meio de tool_results:
tool_use_id no corpo da requisição deve ser exatamente igual ao tool_id no momento da pausa; caso seja diferente, será retornado 400. Quando tool_results existir simultaneamente na requisição, question / message / references serão todos ignorados.
Se o usuário decidir abandonar essa pergunta, basta transmitir um novo question / message, e a plataforma marcará automaticamente a chamada de ferramenta pausada como “ignorada pelo usuário”.
Gerenciamento de conversas (CRUD)
A v2 fornece gerenciamento leve de conversas no mesmo endpoint por meio do campoaction, sem necessidade de abrir outra API.
action: retrieve —— Recuperar uma conversa
messages, model, title, tools_used etc.).
action: retrieve_batch —— Listar resumos de conversas
{ items: [...], total }. Os resumos não incluem messages, sendo adequados para listas de barra lateral; se o usuário abrir uma conversa, use então action: retrieve para recuperar separadamente suas mensagens completas.
Parâmetros de filtro opcionais: user_id, application_id, model_group, model.
action: update —— Alterar o título ou reescrever o histórico
messages também pode ser enviado, mas o servidor realizará uma validação rigorosa do schema (deve estar no formato ToolUseContent recolhido); caso não esteja em conformidade, retornará 400. Em geral, recomenda-se usá-lo apenas para alterar o title.
action: delete —— Excluir uma conversa
{ id, success: true }. Após a exclusão, não será possível recuperar a conversa; confirme antes de chamar.
Migração tranquila a partir da v1
Se você já estiver usando/aichat/conversations, a migração para a v2 quase não requer alterações no código:
- Altere a URL de
https://api.acedata.cloud/aichat/conversationsparahttps://api.acedata.cloud/aichat2/conversations. - Se você anteriormente passava nomes de modelos v1 (como
gpt-3.5,gpt-4-browsingetc.), ao mudar para a v2 é recomendável atualizar para modelos contemporâneos (comogpt-5.4,claude-opus-4-8,gemini-3.1-pro-previewetc.). - Os campos do fluxo NDJSON permanecem compatíveis com versões anteriores: cada evento
text_deltaainda incluidelta_answereid, portanto os clientes que originalmente analisavamdelta_answerlinha a linha não precisam ser alterados.
message multimodal, SSE, chamadas de ferramentas, CRUD de action) e avançar no seu próprio ritmo.
Tratamento de erros
As respostas de erro são padronizadas como:400 bad_request: campos obrigatórios ausentes,tool_use_idnão corresponde, schema demessagesinválido etc.401 invalid_token: o cabeçalhoauthorizationestá incorreto.404 not_found: a conversa correspondente aoidnão existe ao usaraction: retrieve / update / delete.429 too_many_requests: o limite de taxa foi acionado.500 chat_error: erro do LLM upstream oucompletion_tokens=0nesta rodada (tratado como não consumido, sem cobrança).
{"type":"error","message":"..."}, e o fluxo será encerrado logo em seguida.

