/aichat2/conversations) ist eine Dialogschnittstelle der neuen Generation und eine umfassend aktualisierte Version der AI Chat API. Basierend auf der einfachen, gehosteten Mehrfachdialog-Funktion von v1 erweitert sie:
- Multimodale Benutzereingaben: Text- + Bild- + Dateiblöcke direkt über das strukturierte Feld
messageübergeben, ohne sie zuvor indirekt überreferencesanzuhängen. - Agentisierte Tool-Aufrufe: Integriert eine Reihe von Tools wie Internetsuche, Webseitenabruf, Dateilesen usw. und kann vom Benutzer autorisierte MCP-Server (Google Drive, Notion, Slack, GitHub usw.) einbinden. Das Modell kann in einer Anfrage eigenständig mehrere Tool-Aufrufe durchführen, um komplexe Aufgaben abzuschließen.
- Strukturierte Streaming-Ereignisse: Über
accept: text/event-streamoderapplication/x-ndjsonkönnen tokenweise Ereignisse wietext_delta,tool_use,tool_result,thinking,citation,card,artifactusw. abgerufen werden, um sie im Frontend nach Typ getrennt zu rendern. - Unterbrechbar / fortsetzbar: Wenn das Modell zusätzliche Informationen vom Benutzer benötigt, sendet es ein
ask_user_question-Ereignis und pausiert. Beim nächsten Aufruf kann die Antwort übertool_resultszurückgegeben werden, um fortzufahren. - Neue CRUD-Aktionen: Über das Feld
actionkönnen auf demselben Endpointretrieve/retrieve_batch/update/deleteausgeführt werden, ohne dass eine zusätzliche API zur Sitzungsverwaltung erforderlich ist. - Kontinuierlich aktualisierte Modellliste: Standardmäßig integriert mit aktuellen Modellen wie GPT-5.4, Claude Opus 4.8, Claude Sonnet 4.6, Gemini 3.1 Pro, GLM 5.1, DeepSeek V4, Kimi K3 usw.
model + question (+ optional stateful / id / references / preset) übergeben werden, erhalten Sie eine zu v1 gleichwertige {answer, id}-JSON-Antwort. Daher muss beim Wechsel von /aichat/conversations nicht der Client neu geschrieben werden; es genügt, den Pfad zu /aichat2/conversations zu ändern.
Wenn Sie derzeit /aichat/conversations verwenden, bleibt die alte Schnittstelle weiterhin verfügbar, und Sie können in Ihrem eigenen Tempo migrieren.
Antragsprozess
Um die AI Chat v2 API zu verwenden, rufen Sie zunächst die Ace Data Cloud-Konsole auf, um Ihren API-Token zu erhalten und als Reserve aufzubewahren.
Wenn Sie noch nicht angemeldet oder registriert sind, werden Sie automatisch zur Anmeldeseite weitergeleitet, um sich zu registrieren und anzumelden. Danach kehren Sie automatisch zu dieser Seite zurück.
Ein API-Token kann alle Dienste der Plattform aufrufen; es ist nicht erforderlich, für jeden Dienst separat einen Antrag zu stellen. Bei der ersten Beantragung erhalten Sie ein kostenloses Guthaben, das Sie kostenlos ausprobieren können; bei unzureichendem Guthaben können Sie in der Konsole ein allgemeines Guthaben aufladen.
📘 Vollständige Dokumentation: AI Chat v2 API →
Grundlegende Verwendung
Die einfachste Verwendung ist vollständig identisch mit v1:model + question übergeben und {answer, id} erhalten.
CURL-Beispiel:
model können direkt im Dropdown des Try-Panels auf der rechten Seite eingesehen werden. Häufig verwendete Kategorien umfassen:
- 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-miniusw. - 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-20251001usw. - 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-liteusw. - xAI:
grok-4usw. - DeepSeek:
deepseek-v4-pro,deepseek-v4.1-flash,deepseek-v4-flash,deepseek-v3.2-exp,deepseek-r1-0528usw. - Moonshot:
kimi-k3.1-pro,kimi-k3,kimi-k2.6,kimi-k2.5usw. - Zhipu:
glm-5.3,glm-5.2,glm-5.1,glm-5,glm-5-turbo,glm-4.7,glm-4.5vusw.
Mehrfachdialog
Wie bei v1 wird durch die Übergabe vonstateful: true das Speichern der Sitzung aktiviert, und die API gibt eine id zurück; bei nachfolgenden Anfragen genügt es, die id wieder mitzugeben, um den Dialog fortzusetzen, ohne den Nachrichtenverlauf selbst verwalten zu müssen.
Erste Anfrage:
id:
statefulist standardmäßigtrue; das Weglassen entspricht der expliziten Übergabe vontrue. Wenn du nicht möchtest, dass der Server diese Gesprächsrunde speichert, kannst du explizitstateful: falsesetzen.
Streaming-Antworten
v2 unterstützt zwei Streaming-Formate, die über denaccept-Header ausgewählt werden:
NDJSON-Beispiel
text_delta:
SSE-Beispiel
Die Verwendung vonEventSource im Browser unterstützt keine benutzerdefinierten Request-Bodys; es wird empfohlen, fetch + manuelles Parsen nach \n\n-Abschnitten zu verwenden:
Streaming-Ereignistypen
Für Clients, die sich nur für die endgültige Antwort interessieren, entspricht das Zusammenfügen von
content aller text_delta-Ereignisse dem answer im Modus application/json.
Multimodale Eingaben
Wenn die Benutzereingabe Bilder oder Dateien enthält, übergibmessage (ein Array) anstelle von question. Jedes Array-Element ist ein Inhaltsblock:
text— Normaler Text, das Feldtextist erforderlich.image_url— Bild,image_url.urlist erforderlich.file_url— Datei (PDF, CSV, TXT usw.),file_url.urlist erforderlich.
Beziehung zu v1 references
Zur Kompatibilität mit älteren Clients erkennt v2 weiterhin das Feld references: ["https://...", ...]:
- URL-Suffix ist
jpg / jpeg / png / gif / bmp / webp / svg / heic / heif, wird automatisch in einenimage_url-Block umgewandelt; - andere Erweiterungen werden in einen
file_url-Block umgewandelt; - wenn gleichzeitig noch
questionbereitgestellt wird, wird es alstext-Block vorangestellt.
/aichat2/conversations zu ändern, die ursprüngliche Verwendung von references funktioniert wie gewohnt.
Wenn eine präzisere Steuerung benötigt wird (zum Beispiel mehrere Bilder zwischen Texten platzieren oder die Reihenfolge sehr wichtig ist), verwendet direkt das message-Array.
Tool-Aufrufe und MCP
Der Kernverbesserungspunkt von v2 ist, dass das Modell Tools selbstständig aufrufen kann, um mehrstufige Aufgaben abzuschließen, dies ist standardmäßig aktiviert, der Client muss im Request keine zusätzliche Konfiguration vornehmen. Häufige Szenarien:- Der Benutzer fragt „Hilf mir zu suchen, welche neuen Ausstellungen es kürzlich in Shanghai gibt“ → Das Modell ruft die integrierte Websuche auf → Bereitet die Ergebnisse als Antwort auf.
- Der Benutzer fragt „Lies dieses PDF und schreibe dann eine Zusammenfassung“ → Das Modell ruft file_read auf → Schreibt eine Zusammenfassung.
- Der Benutzer hat in Connections Google Drive / GitHub / Notion usw. autorisiert → Das Modell kann die entsprechenden MCP-Tools aufrufen, um deren Daten zu lesen und zu schreiben.
tool_use und tool_result dargestellt, zum Beispiel:
tool_use / tool_result / card / citation, die endgültige Ausgabe des Modells wird weiterhin über text_delta gestreamt.
max_turns kann begrenzen, wie viele Runden das Modell in dieser Anfrage höchstens selbst Tools aufrufen darf, der Bereich liegt bei 1–500, bei Auslassung ist der Standardwert 500. Wenn du es klein setzt (zum Beispiel max_turns: 1), kannst du eine einmalige Antwort erzwingen und keinerlei Tool-Aufrufe erlauben.
Asynchrone Ausführung und unbeaufsichtigte Autorisierung
Wenn dein Aufruf von einem Alarm-Webhook, CI/CD, Überwachungssystem oder einer anderen Hintergrundaufgabe stammt, kannst duasync: true setzen, damit die Schnittstelle sofort die Aufgaben-ID zurückgibt und im Hintergrund weiter ausgeführt wird:
action: retrieve + id verwendet werden, um das Gesprächsergebnis abzufragen; es kann auch callback_url bereitgestellt werden, nach Abschluss der Aufgabe wird die Plattform { status, answer, usage, error } per POST an deine Callback-Adresse senden. callback_url muss http / https verwenden und darf nicht direkt mit localhost oder einer privaten IP-Literaladresse angegeben werden.
Bei Hintergrundaufgaben kann normalerweise niemand zur Bestätigung klicken. Wenn du möchtest, dass bestimmte Skills oder MCP-Server im unbeaufsichtigten Modus Aktionen wie Senden, Veröffentlichen oder Schreiben ausführen, übergib bitte im Request-Body ausdrücklich eine Vorautorisierungsliste:
allowed_skills sind die Slugs verbundener Skills; die Werte in allowed_mcp_servers sind die Slugs verbundener MCP-Server. Nicht in die Vorautorisierung aufgenommene Skills / MCP-Server können im unbeaufsichtigten Modus weiterhin nur Vorschauen anzeigen, dry-run ausführen oder Schreiboperationen ablehnen.
Wenn eine feinere Steuerung benötigt wird, kann auch das äquivalente Objekt unattended_policy verwendet werden:
--unattended-confirm oder den entsprechenden Sicherheitsmechanismus unterstützen; andernfalls bleibt er bei dry-run und führt Schreiboperationen nicht direkt aus.
Pausierte Gespräche fortsetzen
Einige Tools veranlassen das Modell dazu, „den Benutzer rückzufragen“, das Modell sendet dann einask_user_question-Ereignis, und das Gespräch wird im Status awaiting_user_input eingefroren:
id die nächste Anfrage, wobei die Antwort über tool_results zurückübergeben wird:
tool_use_id im Request-Body muss vollständig mit der tool_id zum Zeitpunkt der Pausierung übereinstimmen; bei Nichtübereinstimmung wird 400 zurückgegeben. Wenn im Request gleichzeitig tool_results vorhanden ist, werden question / message / references alle ignoriert.
Wenn der Benutzer beschließt, diese Frage aufzugeben, übergib direkt eine neue question / message, die Plattform markiert den pausierten Tool-Aufruf automatisch als „vom Benutzer übersprungen“.
Gesprächsverwaltung (CRUD)
v2 bietet über das Feldaction auf demselben Endpoint eine leichtgewichtige Gesprächsverwaltung, ohne eine zusätzliche API bereitzustellen.
action: retrieve —— Eine Unterhaltung abrufen
messages-Verlauf, model, title, tools_used usw.).
action: retrieve_batch —— Unterhaltungszusammenfassungen auflisten
{ items: [...], total } zurück. Die Zusammenfassung enthält keine messages, sie eignet sich für Seitenleistenlisten; wenn der Benutzer eine Unterhaltung öffnet, rufen Sie ihre vollständigen Nachrichten anschließend separat mit action: retrieve ab.
Optionale Filterparameter: user_id, application_id, model_group, model.
action: update —— Titel ändern oder Verlauf überschreiben
messages kann ebenfalls übergeben werden, aber der Server führt eine strenge Schema-Validierung durch (es muss die zusammengeführte Form von ToolUseContent sein); bei Abweichungen wird 400 zurückgegeben. Im Allgemeinen wird empfohlen, dies nur zum Ändern von title zu verwenden.
action: delete —— Eine Unterhaltung löschen
{ id, success: true } zurück. Nach dem Löschen kann sie nicht wiederhergestellt werden, bestätigen Sie dies bitte vor dem Aufruf.
Reibungslose Migration von v1
Wenn Sie bereits/aichat/conversations verwenden, erfordert die Migration zu v2 kaum Codeänderungen:
- Ändern Sie die URL von
https://api.acedata.cloud/aichat/conversationszuhttps://api.acedata.cloud/aichat2/conversations. - Wenn Sie zuvor v1-Modellnamen (wie
gpt-3.5,gpt-4-browsingusw.) übergeben haben, wird empfohlen, beim Wechsel zu v2 auf aktuelle Modelle (wiegpt-5.4,claude-opus-4-8,gemini-3.1-pro-previewusw.) zu aktualisieren. - Die Felder des NDJSON-Streams bleiben abwärtskompatibel: Jedes
text_delta-Ereignis enthält weiterhindelta_answerundid, daher müssen Clients, die ursprünglichdelta_answerzeilenweise analysieren, nicht geändert werden.
message, SSE, Tool-Aufrufe, action CRUD) aktivieren und schrittweise vorgehen.
Fehlerbehandlung
Fehlerantworten sind einheitlich wie folgt:400 bad_request: Fehlende Pflichtfelder, nicht übereinstimmendetool_use_id, ungültigesmessages-Schema usw.401 invalid_token: Derauthorization-Header ist nicht korrekt.404 not_found: Die Unterhaltung, die deridbeiaction: retrieve / update / deleteentspricht, existiert nicht.429 too_many_requests: Das Ratenlimit wurde ausgelöst.500 chat_error: Der vorgelagerte LLM hat einen Fehler gemeldet odercompletion_tokens=0in dieser Runde (wird als nicht verbraucht behandelt und nicht berechnet).
{"type":"error","message":"..."}-Ereignis gesendet, woraufhin der Stream unmittelbar endet.

