Erstellen einer Chat-Vervollständigung (qwen-mt-turbo)
Basierend auf einem Prompt gibt das Modell eine oder mehrere vorhergesagte Vervollständigungen (Completions) zurück und kann optional die Wahrscheinlichkeiten für alternative Tokens an jeder Position liefern. Diese Schnittstelle (API) wird hauptsächlich für die Konversation mit dem Modell sowie für die Verarbeitung von NLP-Aufgaben wie maschineller Übersetzung verwendet.
Offizielle Referenzdokumentation: Alibaba Cloud Bailian - Maschinelles Übersetzungsmodell
Schnittstelleninformationen (API Info)
- Protokoll: HTTP/HTTPS
- HTTP-Methode:
POST - Endpunkt (URL):
https://api.codingplanx.ai/v1/chat/completions
Request-Header (Headers)
| Parametername | Erforderlich | Typ | Beispielwert | Beschreibung |
|---|---|---|---|---|
| Content-Type | Ja | string | application/json | Datenformat |
| Accept | Ja | string | application/json | Erwartetes Antwortformat |
| Authorization | Nein | string | Bearer {{YOUR_API_KEY}} | API-Authentifizierungsnachweis (Credential) |
Request-Parameter (Request Body)
Das Format des Request-Bodys ist application/json.
| Parametername | Erforderlich | Typ | Beschreibung |
|---|---|---|---|
| model | Ja | string | Die ID des zu verwendenden Modells. Beispiel: qwen-mt-turbo. |
| messages | Ja | array | Eine Liste von Nachrichten, die die bisherige Konversation umfassen. Enthält die Felder role und content. |
| ? role | Nein | string | Die Rolle des Absenders der Nachricht, z. B. user, assistant oder system. |
| ? content | Nein | string | Der Inhalt der Nachricht. |
| tools | Ja | array | Eine Liste von Tools, die das Modell aufrufen kann. Derzeit werden nur Funktionen als Tools unterstützt. Dient zur Bereitstellung einer Liste von Funktionen, für die das Modell JSON-Eingaben generieren kann. |
| tool_choice | Ja | object | Steuert, welche Funktion das Modell aufruft (falls vorhanden). none bedeutet, dass keine aufgerufen wird, auto bedeutet, dass das Modell selbst entscheidet. Kann auch durch {"type": "function", "function": {"name": "my_function"}} erzwungen werden. |
| temperature | Nein | integer | Sampling-Temperatur, zwischen 0 und 2. Höhere Werte (wie 0.8) machen die Ausgabe zufälliger, niedrigere Werte (wie 0.2) machen sie fokussierter und deterministischer. Es wird empfohlen, entweder diesen Wert oder top_p zu ändern, aber nicht beide gleichzeitig. |
| top_p | Nein | integer | Nucleus-Sampling-Parameter. 0.1 bedeutet, dass nur die Tokens berücksichtigt werden, die die obersten 10 % der Wahrscheinlichkeitsmasse ausmachen. Es wird empfohlen, entweder diesen Wert oder temperature zu ändern, aber nicht beide gleichzeitig. |
| n | Nein | integer | Wie viele Chat-Vervollständigungsoptionen für jede Eingabenachricht generiert werden sollen. Standardwert ist 1. |
| stream | Nein | boolean | Ob Streaming-Ausgabe aktiviert werden soll. Wenn true, werden partielle Nachrichten-Deltas als Server-Sent Events (SSE) gesendet, und bei Abschluss wird data: [DONE] gesendet. Standardwert ist false. |
| stop | Nein | string | Sequenzen (bis zu 4), bei denen die API die Generierung weiterer Tokens stoppt. |
| max_tokens | Nein | integer | Die maximale Anzahl von Tokens, die in der Chat-Vervollständigung generiert werden sollen. Die Gesamtlänge von Eingabe- und generierten Tokens ist durch die Kontextlänge des Modells begrenzt. |
| presence_penalty | Nein | number | Zahl zwischen -2.0 und 2.0. Positive Werte bestrafen neue Tokens basierend darauf, ob sie bereits im Text vorhanden sind, was die Wahrscheinlichkeit erhöht, dass das Modell neue Themen anspricht. |
| frequency_penalty | Nein | number | Zahl zwischen -2.0 und 2.0. Positive Werte bestrafen neue Tokens basierend auf ihrer bisherigen Häufigkeit im Text, was die Wahrscheinlichkeit verringert, dass das Modell dieselben Zeilen wiederholt. |
| logit_bias | Nein | object/null | Ändert die Wahrscheinlichkeit, dass bestimmte Tokens in der Vervollständigung erscheinen. Akzeptiert ein JSON-Objekt, das Token-IDs auf Bias-Werte (-100 bis 100) abbildet. |
| user | Nein | string | Ein eindeutiger Identifikator für Ihren Endbenutzer, der helfen kann, Missbrauch zu überwachen und zu erkennen. |
| response_format | Nein | object | Ein Objekt, das das Format spezifiziert, das das Modell ausgeben muss. {"type": "json_object"} aktiviert den JSON-Modus. Hinweis: Bei Verwendung muss das Modell in der Nachricht explizit angewiesen werden, JSON zu generieren. |
| seed | Nein | integer | (Im Original als seen bezeichnet) Beta-Funktion. Ein Seed für deterministisches Sampling. Wiederholte Anfragen mit demselben Seed und denselben Parametern sollten das gleiche Ergebnis liefern. |
Request-Beispiel (Szenario: Maschinelle Übersetzung)
{
"model": "qwen-mt-turbo",
"messages": [
{
"role": "user",
"content": "看完这个视频我没有笑"
}
],
"translation_options": {
"source_lang": "auto",
"target_lang": "English"
}
}
(Hinweis: translation_options ist ein spezifischer Erweiterungsparameter für das Übersetzungsmodell qwen-mt-turbo)
Response-Parameter (Response Body)
Das Rückgabeformat ist application/json.
| Parametername | Typ | Beschreibung |
|---|---|---|
| id | string | Eindeutiger Identifikator für die Chat-Vervollständigung. |
| object | string | Objekttyp, normalerweise chat.completion. |
| created | integer | Zeitstempel der Erstellung (Unix-Sekunden). |
| choices | array | Liste der Vervollständigungsoptionen. |
| ? index | integer | Der Index dieser Option in der Liste. |
| ? message | object | Das vom Modell generierte Nachrichtenobjekt. Enthält role und content. |
| ? finish_reason | string | Der Grund, warum das Modell die Generierung gestoppt hat (z. B. stop für normales Ende, length bei Erreichen des maximalen Token-Limits). |
| usage | object | Statistiken zum Token-Verbrauch für diese Anfrage. |
| ? prompt_tokens | integer | Anzahl der vom Prompt verbrauchten Tokens. |
| ? completion_tokens | integer | Anzahl der von der generierten Antwort verbrauchten Tokens. |
| ? total_tokens | integer | Gesamtzahl der verbrauchten Tokens. |
Response-Beispiel (200 OK)
{
"id": "chatcmpl-123",
"object": "chat.completion",
"created": 1677652288,
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "\r
\r
Hello there, how may I assist you today?"
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 9,
"completion_tokens": 12,
"total_tokens": 21
}
}
Häufig gestellte Fragen (FAQs)
1. Für welche Szenarien wird das Modell qwen-mt-turbo hauptsächlich verwendet?
qwen-mt-turbo ist ein tiefgreifend für die maschinelle Übersetzung (Machine Translation) optimiertes Modell. Obwohl es die Standard-Schnittstelle für Chat-Vervollständigungen (Chat Completions) verwendet, kann es durch die Übergabe des zu übersetzenden Textes und die Konfiguration von Ausgangs- und Zielsprache extrem hochwertige Übersetzungsergebnisse liefern.
2. Wie realisiere ich den Schreibmaschinen-Effekt (Streaming-Ausgabe)?
Setzen Sie den Parameter stream im Request-Body auf true. In diesem Fall gibt die API nicht die vollständige JSON-Antwort auf einmal zurück, sondern pusht kontinuierlich Datenblöcke (Data Chunks) über das Server-Sent Events (SSE) Protokoll. Wenn die Inhaltsgenerierung abgeschlossen ist, wird data: [DONE] zurückgegeben, um das Ende des Streams zu markieren.
3. Warum erhalte ich den Fehler 401 Unauthorized?
Bitte überprüfen Sie das Feld Authorization in den Request-Headern. Stellen Sie sicher, dass das Format Bearer <IHR_API_KEY> lautet (beachten Sie das Leerzeichen zwischen Bearer und dem API-Key) und dass dieser API-Key gültig ist sowie die Berechtigung zum Aufruf dieses Modells besitzt.
4. Wie sollten temperature und top_p konfiguriert werden?
Beide Parameter dienen zur Steuerung der Zufälligkeit der Modellausgabe. Es wird offiziell empfohlen, nur einen davon zu ändern und den anderen auf dem Standardwert zu belassen. Wenn Sie möchten, dass die Übersetzungs- oder Q&A-Ergebnisse präziser und deterministischer sind, wird empfohlen, temperature zu senken (z. B. 0.1 - 0.2); wenn Sie kreativere Inhalte generieren möchten, können Sie den Wert erhöhen (z. B. 0.8).
5. Ist translation_options im Request-Beispiel zwingend erforderlich?
Dies ist eine erweiterte Konfiguration, die von speziellen Übersetzungsmodellen wie qwen-mt-turbo unterstützt wird, um die Ausgangssprache (source_lang) und die Zielsprache (target_lang) explizit anzugeben. Obwohl Sie das Modell auch durch natürliche Sprache über content in den messages zur Übersetzung anweisen können, macht die Verwendung von translation_options die Übersetzungsanweisungen klarer und die Ergebnisse stabiler. Für grundlegende, nicht übersetzungsbezogene Konversationen muss dieser Parameter nicht übergeben werden.