/aichat2/conversations) är nästa generations dialoggränssnitt och en omfattande uppgradering av AI Chat API. Det bygger på v1:s enkelhet och hantering av flerdialoger och har utvidgats med:
- Multimodal användarinmatning: Genom det strukturerade
message-fältet kan text + bild + filblock skickas direkt utan att först behöva bifogas indirekt medreferences. - Agent-baserade verktygsanrop: Inbyggda verktyg för nätverksökning, webbsökning, filavläsning med mera, och kan kopplas till användarauktoriserade MCP-servrar (Google Drive, Notion, Slack, GitHub etc.), modellen kan i en enda begäran självständigt anropa verktyg för att slutföra komplexa uppgifter.
- Strukturerade strömmande händelser: Genom
accept: text/event-streamellerapplication/x-ndjsonkan man få token-för-tokentext_delta,tool_use,tool_result,thinking,citation,card,artifactoch andra händelser, vilket underlättar rendering i frontend baserat på motsvarande typ. - Avbrytbar / Återställbar: Modellen kommer att skicka en
ask_user_question-händelse och pausa när den behöver mer information från användaren, nästa anrop kan fortsätta genom att fylla i svaret medtool_results. - Nya CRUD-åtgärder: Genom
action-fältet kan man utföraretrieve/retrieve_batch/update/deletepå samma endpoint, utan behov av extra sessionshanterings-API. - Kontinuerligt uppdaterad modellista: Standardanslutning till GPT-5.4, Claude Opus 4.8, Claude Sonnet 4.6, Gemini 3.1 Pro, GLM 5.1, DeepSeek V4, Kimi K3 och andra moderna modeller.
model + question (+ valfritt stateful / id / references / preset) får man ett {answer, id} JSON-svar som är ekvivalent med v1, så att migrera från /aichat/conversations kräver ingen omskrivning av klienten, man behöver bara byta sökväg till /aichat2/conversations.
Om du för närvarande använder /aichat/conversations, kommer den gamla gränssnittet fortfarande att vara tillgängligt, så att du kan migrera i din egen takt.
Ansökningsprocess
För att använda AI Chat v2 API, börja med att gå till Ace Data Cloud-konsolen för att få din API-token, som du kan spara för framtida bruk.
Om du inte har loggat in eller registrerat dig, kommer du automatiskt att omdirigeras till inloggningssidan där du kan registrera dig och logga in, och efter att ha slutfört detta kommer du automatiskt att återvända till den aktuella sidan.
En API-token räcker för att anropa alla plattformens tjänster, du behöver inte ansöka separat för varje tjänst. Första ansökan ger en gratis kvot, så att du kan prova gratis; när kvoten är slut kan du ladda på allmän balans i konsolen.
📘 Fullständig dokumentation: AI Chat v2 API →
Grundläggande användning
Den enklaste användningen är helt identisk med v1: skickamodel + question för att få {answer, id}.
CURL-exempel:
model-värden kan ses direkt i rullgardinsmenyn i Try-panelen till höger, vanliga kategorier inkluderar:
- 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,gemini-3.1-pro-preview,gemini-3.1-flash-image-preview,gemini-3-pro-preview,gemini-2.5-flash-liteetc. - xAI:
grok-4etc. - DeepSeek:
deepseek-v4-flash,deepseek-v3.2-exp,deepseek-r1-0528etc. - Moonshot:
kimi-k3,kimi-k2.6,kimi-k2.5etc. - Zhipu:
glm-5.1,glm-5,glm-5-turbo,glm-4.7,glm-4.5vetc.
Fleromgångsdialog
Som med v1, skickastateful: true för att aktivera sessionslagring, API:t kommer att returnera ett id; för efterföljande begärningar, ta med id för att fortsätta dialogen utan att själv behöva hantera meddelandehistorik.
Första begäran:
id:
statefulär som standardtrue, att utelämna det är likvärdigt med att uttryckligen angetrue. Om du inte vill att servern ska spara denna konversation kan du uttryckligen ställa instateful: false.
Strömmande svar
v2 stöder två typer av strömmande format, välj enligtaccept-huvudet:
NDJSON Exempel
text_delta:
SSE Exempel
WebbläsarensEventSource stöder inte anpassade begärningskroppar, det rekommenderas att använda fetch + manuellt dela upp med \n\n:
Strömmande händelsetyper
För klienter som bara är intresserade av det slutgiltiga svaret, att sammanfoga alla
text_delta-innehåll ger samma resultat som answer i application/json-läget.
Multimodal inmatning
Om användarens inmatning innehåller bilder eller filer, skickamessage (array) istället för question. Varje element i arrayen är en innehållsblock:
text— Vanlig text, obligatoriskttext-fält.image_url— Bild, obligatorisktimage_url.url.file_url— Fil (PDF, CSV, TXT etc.), obligatorisktfile_url.url.
Förhållandet till v1 references
För att vara kompatibel med gamla klienter, känner v2 fortfarande igen references: ["https://...", ...]-fältet:
- URL-suffixen är
jpg / jpeg / png / gif / bmp / webp / svg / heic / heif, automatiskt omvandlad tillimage_urlblock; - Andra filändelser omvandlas till
file_urlblock; - Om
questionockså tillhandahålls, placera den som etttextblock före.
/aichat2/conversations, den ursprungliga användningen av references fungerar som vanligt.
För mer finjusterad kontroll (till exempel att placera flera bilder mellan text eller där ordningen är viktig) använd direkt message array.
Verktygsanrop och MCP
v2:s kärnförbättring är att modellen kan självständigt anropa verktyg för att slutföra flerstegsuppgifter, detta är som standard aktiverat, utan att klienten behöver göra några extra konfigurationer i begäran. Vanliga scenarier:- Användaren frågar “Hjälp mig att söka efter nya utställningar i Shanghai” → modellen anropar inbyggd webbsökning → organiserar resultaten till ett svar.
- Användaren frågar “Läs den här PDF:en och skriv en sammanfattning” → modellen anropar file_read → skriver sammanfattning.
- Användaren har redan auktoriserat Google Drive / GitHub / Notion etc. i Connections → modellen kan anropa motsvarande MCP-verktyg för att läsa och skriva data.
tool_use och tool_result två typer av händelser, till exempel:
tool_use / tool_result / card / citation dessa typer av händelser, modellen kommer fortfarande att leverera slutgiltigt utdata genom text_delta.
max_turns kan begränsa hur många gånger modellen kan anropa verktyg i denna begäran, standardgränsen bestäms av plattformen. Att sätta den lågt (till exempel max_turns: 1) kan tvinga till ett enda svar, utan att tillåta några verktygsanrop.
Asynkron exekvering och obevakad auktorisering
Om ditt anrop kommer från en varnings Webhook, CI/CD, övervakningssystem eller andra bakgrundsuppgifter, kan du ställa inasync: true för att låta gränssnittet omedelbart returnera uppgifts-ID, medan bakgrunden fortsätter att köra:
action: retrieve + id för att fråga efter sessionens resultat; du kan också tillhandahålla callback_url, så kommer plattformen att POST:a { status, answer, usage, error } till din återkopplingsadress när uppgiften är klar. callback_url måste använda http / https, och får inte direkt ange localhost eller privata IP-litterära adresser.
Bakgrundsuppgifter har vanligtvis ingen som kan klicka för att bekräfta. Om du vill att vissa färdigheter eller MCP-servrar ska utföra sändning, publicering, skrivning etc. i obevakad läge, vänligen ange en förhandsauktoriseringslista i begäran:
allowed_skills är sluggar för anslutna färdigheter; värdena i allowed_mcp_servers är sluggar för anslutna MCP-servrar. Färdigheter / MCP-servrar som inte listas i förhandsauktoriseringen kan fortfarande bara förhandsgranskas, köras i torrkörning eller vägras att utföra skrivoperationer i obevakad läge.
Om du behöver mer detaljerad kontroll kan du också använda det ekvivalenta unattended_policy objektet:
--unattended-confirm eller motsvarande säkerhetsmekanism; annars kommer det att fortsätta i torrkörning och inte direkt utföra skrivoperationer.
Återställning av pausad konversation
Vissa verktyg kan få modellen att “ställa en fråga till användaren”, modellen kommer då att skicka enask_user_question händelse, konversationen fryses i awaiting_user_input status:
id, fyll i svaret genom tool_results:
tool_use_id vara helt identisk med den pausade tool_id; annars returneras 400. När begäran innehåller tool_results, kommer question / message / references att ignoreras.
Om användaren beslutar att ge upp denna fråga, skicka bara en ny question / message så kommer plattformen automatiskt att markera det pausade verktygsanropet som “användaren hoppade över”.
Sessionshantering (CRUD)
v2 erbjuder lättvikts sessionshantering genomaction fältet på samma endpoint, utan behov av att öppna en annan API.
action: retrieve —— Hämta en session
messages historia, model, title, tools_used etc.).
action: retrieve_batch —— Lista samtalsöversikter
{ items: [...], total }. Översikten innehåller inte messages, lämplig för sidofältlista; om användaren klickar på en viss konversation, använd sedan action: retrieve för att hämta dess fullständiga meddelanden.
Valfria filtreringsparametrar: user_id, application_id, model_group, model.
action: update —— Ändra titel eller skriva om historik
messages kan också skickas, men servern kommer att göra strikt schema validering (måste vara i den hopfällda ToolUseContent formen), om det inte uppfyller kraven kommer det att returnera 400. Generellt rekommenderas det att endast användas för att ändra title.
action: delete —— Ta bort en konversation
{ id, success: true }. Efter borttagning kan det inte återställas, vänligen bekräfta innan du anropar.
Smidig migrering från v1
Om du redan använder/aichat/conversations, kräver migreringen till v2 nästan inga kodändringar:
- Ändra URL från
https://api.acedata.cloud/aichat/conversationstillhttps://api.acedata.cloud/aichat2/conversations. - Om du tidigare skickade v1-modellnamn (som
gpt-3.5,gpt-4-browsingetc.), rekommenderas det att uppgradera till moderna modeller (somgpt-5.4,claude-opus-4-8,gemini-3.1-proetc.) vid övergång till v2. - NDJSON-strömmens fält förblir bakåtkompatibla: varje
text_delta-händelse innehåller fortfarandedelta_answerochid, så klienter som tidigare analyseradedelta_answerrad för rad behöver inte ändras.
message, SSE, verktygsanrop, action CRUD) i din egen takt.
Felhantering
Felresponsen är enhetlig:400 bad_request: Saknar obligatoriska fält,tool_use_idmatchar inte,messagesschema är ogiltigt etc.401 invalid_token:authorization-huvudet är felaktigt.404 not_found:action: retrieve / update / deletenäridmotsvarande konversation inte finns.429 too_many_requests: Utlöst hastighetsbegränsning.500 chat_error: Upstream LLM rapporterade ett fel eller denna omgångcompletion_tokens=0(behandlas som icke-använd, kommer inte att debiteras).
{"type":"error","message":"..."} händelse, och strömmen avslutas omedelbart efter.

