/aichat2/conversations) är den nya generationens konversationsgränssnitt och en omfattande uppgraderad version av AI Chat API. Utifrån v1:s enkla, hanterade flerrundskonversationer har det utökats med:
- Multimodala användarinmatningar: Skicka text + bild + filblock direkt via det strukturerade
message-fältet, utan att först indirekt bifoga dem medreferences. - Agentbaserade verktygsanrop: Inbyggd uppsättning verktyg för internetsökning, webbsideshämtning, filläsning med mera, samt möjlighet att ansluta MCP-servrar som användaren har auktoriserat (Google Drive, Notion, Slack, GitHub med flera). Modellen kan självständigt anropa verktyg flera gånger i en och samma begäran för att slutföra komplexa uppgifter.
- Strukturerade strömmande händelser: Via
accept: text/event-streamellerapplication/x-ndjsonkan du få händelser såsomtext_delta,tool_use,tool_result,thinking,citation,cardochartifacttoken för token, vilket underlättar separat rendering i frontend enligt respektive typ. - Avbrytbar / återupptagbar: När modellen behöver att användaren kompletterar information skickar den händelsen
ask_user_questionoch pausas. Vid nästa anrop kan du fylla i svaret viatool_resultsför att fortsätta. - Nya CRUD-åtgärder: Utför
retrieve/retrieve_batch/update/deletevia fältetactionpå samma endpoint, utan behov av ytterligare API:er för konversationshantering. - Kontinuerligt uppdaterad modellista: Ansluter som standard till moderna modeller såsom GPT-5.4, Claude Opus 4.8, Claude Sonnet 4.6, Gemini 3.1 Pro, GLM 5.1, DeepSeek V4 och Kimi K3.
model + question (+ valfria stateful / id / references / preset) för att få ett JSON-svar {answer, id} som motsvarar v1. Därför behöver klienten inte skrivas om vid migrering från /aichat/conversations; byt bara sökvägen till /aichat2/conversations.
Om du för närvarande använder /aichat/conversations kommer det gamla gränssnittet fortfarande att vara i drift, och du kan migrera i din egen takt.
Ansökningsprocess
För att använda AI Chat v2 API, gå först till Ace Data Cloud-konsolen för att hämta din API Token och spara den som reserv.
Om du ännu inte har loggat in eller registrerat dig omdirigeras du automatiskt till inloggningssidan för att registrera dig och logga in. När detta är klart återvänder du automatiskt till den aktuella sidan.
En API Token kan anropa alla plattformens tjänster, utan att du behöver ansöka separat för varje tjänst. Vid första ansökan får du gratis kredit för att kunna prova tjänsten kostnadsfritt; när krediten inte räcker till kan du fylla på det allmänna saldot i konsolen.
📘 Fullständig dokumentation: AI Chat v2 API →
Grundläggande användning
Den enklaste användningen är helt identisk med v1: skickamodel + question och få {answer, id}.
CURL-exempel:
model kan ses direkt i rullgardinsmenyn i Try-panelen till höger. Vanliga kategorier omfattar:
- 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-minimed flera - 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-20251001med flera - 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-litemed flera - xAI:
grok-4med flera - DeepSeek:
deepseek-v4-pro,deepseek-v4.1-flash,deepseek-v4-flash,deepseek-v3.2-exp,deepseek-r1-0528med flera - Moonshot:
kimi-k3,kimi-k2.6,kimi-k2.5med flera - Zhipu:
glm-5.3,glm-5.2,glm-5.1,glm-5,glm-5-turbo,glm-4.7,glm-4.5vmed flera
Flerrundskonversation
Precis som i v1 skickar dustateful: true för att aktivera konversationssparning, och API:t returnerar ett id; i efterföljande begäranden räcker det att skicka tillbaka id för att fortsätta konversationen, utan att själv behöva underhålla historiken för messages.
Första begäran:
id:
statefulär som standardtrue; att utelämna det är likvärdigt med att uttryckligen skickatrue. Om du inte vill att servern ska spara denna samtalsrunda kan du uttryckligen angestateful: false.
Strömmande svar
v2 stöder två strömmande format, som väljs enligtaccept-huvudet:
NDJSON-exempel
text_delta:
SSE-exempel
EventSource i webbläsaren stöder inte anpassade förfrågningskroppar; det rekommenderas att använda fetch + manuell segmentanalys med \n\n:
Typer av strömmande händelser
För klienter som endast bryr sig om det slutliga svaret är det likvärdigt med
answer i läget application/json att sammanfoga content från alla text_delta.
Multimodal inmatning
Om användarens inmatning innehåller bilder eller filer skickar dumessage (en array) i stället för question. Varje element i arrayen är ett innehållsblock:
text— Vanlig text, fältettextär obligatoriskt.image_url— Bild,image_url.urlär obligatoriskt.file_url— Fil (PDF, CSV, TXT osv.),file_url.urlär obligatoriskt.
Relation till v1 references
För kompatibilitet med äldre klienter känner v2 fortfarande igen fältet references: ["https://...", ...]:
- URL-suffixet är
jpg / jpeg / png / gif / bmp / webp / svg / heic / heif, konverteras automatiskt till ettimage_url-block; - Andra filändelser konverteras till ett
file_url-block; - Om
questionockså tillhandahålls, placeras det som etttext-block före.
/aichat2/conversations, så fungerar den ursprungliga användningen av references som vanligt.
Om du behöver mer detaljerad kontroll (till exempel att placera flera bilder mellan texter, eller om ordningen är viktig) använder du direkt arrayen message.
Verktygsanrop och MCP
Den centrala förbättringen i v2 är att modellen självständigt kan anropa verktyg för att slutföra uppgifter i flera steg, detta är aktiverat som standard, och klienten behöver inte göra någon extra konfiguration i begäran. Vanliga scenarier:- Användaren frågar ”Hjälp mig att söka efter vilka nya utställningar som nyligen finns 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 sedan en sammanfattning” → Modellen anropar file_read → Skriver en sammanfattning.
- Användaren har redan auktoriserat Google Drive / GitHub / Notion osv. i Connections → Modellen kan anropa motsvarande MCP-verktyg för att läsa och skriva deras data.
tool_use och tool_result, till exempel:
tool_use / tool_result / card / citation; modellens slutliga utdata strömmas fortfarande ut via text_delta.
max_turns kan begränsa hur många rundor modellen högst får anropa verktyg själv i denna begäran; standardgränsen bestäms av plattformen. Att sätta det lågt (till exempel max_turns: 1) kan tvinga fram ett enstaka svar och inte tillåta några verktygsanrop.
Asynkron körning och obevakad auktorisering
Om ditt anrop kommer från en larm-Webhook, CI/CD, ett övervakningssystem eller andra bakgrundsuppgifter kan du angeasync: true så att gränssnittet omedelbart returnerar ett uppgifts-ID och fortsätter körningen i bakgrunden:
action: retrieve + id för att fråga efter konversationsresultatet; du kan också tillhandahålla callback_url, och när uppgiften är klar POST:ar plattformen { status, answer, usage, error } till din callback-adress. callback_url måste använda http / https och får inte direkt ange localhost eller en literal privat IP-adress.
För bakgrundsuppgifter finns det vanligtvis ingen som kan klicka för att bekräfta. Om du vill att vissa Skills eller MCP Servers ska utföra åtgärder som att skicka, publicera eller skriva i obevakat läge, ska du uttryckligen skicka en lista över förhandsgodkännanden i request body:
allowed_skills är sluggar för anslutna Skills; värdena i allowed_mcp_servers är sluggar för anslutna MCP Servers. Skills / MCP Servers som inte finns med i förhandsgodkännandet kan i obevakat läge fortfarande bara förhandsgranska, köra dry-run eller nekas att utföra skrivåtgärder.
Om mer detaljerad kontroll behövs kan du även använda det likvärdiga objektet unattended_policy:
--unattended-confirm eller motsvarande säkerhetsmekanism; annars fortsätter det med dry-run och utför inte skrivåtgärder direkt.
Återuppta pausade konversationer
Vissa verktyg får modellen att ”ställa en följdfråga till användaren”. Modellen skickar då enask_user_question-händelse, och konversationen fryses i statusen awaiting_user_input:
id genom att återfylla svaret via tool_results:
tool_use_id i request body måste vara helt identiskt med tool_id vid pausen; annars returneras 400. När tool_results finns i begäran samtidigt ignoreras question / message / references.
Om användaren bestämmer sig för att överge denna fråga räcker det att direkt skicka en ny question / message; plattformen markerar automatiskt det pausade verktygsanropet som ”hoppades över av användaren”.
Konversationshantering (CRUD)
v2 erbjuder lättviktig konversationshantering via fältetaction på samma endpoint, utan behov av att öppna ett separat API.
action: retrieve —— Hämta en konversation
messages-historik, model, title, tools_used osv.).
action: retrieve_batch —— Lista konversationssammanfattningar
{ items: [...], total }. Sammanfattningar innehåller inte messages, vilket passar för sidofältslistor; om användaren öppnar en konversation använder du sedan action: retrieve för att separat hämta dess fullständiga meddelanden.
Valfria filterparametrar: user_id, application_id, model_group, model.
action: update —— Ändra titel eller skriv om historik
messages kan också skickas, men servern utför strikt schema-validering (det måste vara i den hopfällda ToolUseContent-formen), och returnerar 400 om det inte uppfyller kraven. Generellt rekommenderas det endast för att ändra title.
action: delete —— Ta bort en konversation
{ id, success: true }. Efter borttagning kan den inte återställas, bekräfta innan du anropar.
Migrera smidigt från v1
Om du redan använder/aichat/conversations kräver migreringen till v2 nästan inga kodändringar:
- Ändra URL:en från
https://api.acedata.cloud/aichat/conversationstillhttps://api.acedata.cloud/aichat2/conversations. - Om du tidigare skickade v1-modellnamn (såsom
gpt-3.5,gpt-4-browsingosv.) rekommenderas det att uppgradera till moderna modeller vid byte till v2 (såsomgpt-5.4,claude-opus-4-8,gemini-3.1-pro-previewosv.). - Fälten i NDJSON-strömmen förblir bakåtkompatibla: varje
text_delta-händelse innehåller fortfarandedelta_answerochid, så klienter som ursprungligen tolkardelta_answerrad för rad behöver inte ändras.
message, SSE, verktygsanrop, action CRUD) och gå vidare i lämplig takt.
Felhantering
Felsvar har ett enhetligt format:400 bad_request: Saknade obligatoriska fält,tool_use_idmatchar inte,messages-schema är ogiltigt osv.401 invalid_token:authorization-huvudet är felaktigt.404 not_found: Konversationen som motsvararidfinns inte vidaction: retrieve / update / delete.429 too_many_requests: Hastighetsbegränsningen har utlösts.500 chat_error: Uppströms-LLM rapporterade ett fel ellercompletion_tokens=0för denna omgång (behandlas som ej förbrukat och debiteras inte).
{"type":"error","message":"..."}, varefter strömmen omedelbart avslutas.

