チャット補完の作成 (qwen-mt-turbo)
プロンプトを入力すると、モデルは1つまたは複数の予測される補完(Completion)を返します。また、各位置における代替トークン(Tokens)の確率を返すことも可能です。このAPIは主に、モデルとの対話や機械翻訳などの自然言語処理タスクに使用されます。
エンドポイント情報
- 通信プロトコル: HTTP/HTTPS
- リクエストメソッド:
POST - エンドポイントURL:
https://api.codingplanx.ai/v1/chat/completions
リクエストヘッダー (Headers)
| パラメータ名 | 必須 | データ型 | サンプル値 | 説明 |
|---|---|---|---|---|
| Content-Type | はい | string | application/json | データフォーマット |
| Accept | はい | string | application/json | 期待されるレスポンス形式 |
| Authorization | いいえ | string | Bearer {{YOUR_API_KEY}} | API認証情報 |
リクエストパラメータ (Request Body)
リクエストボディの形式は application/json です。
| パラメータ名 | 必須 | データ型 | 説明 |
|---|---|---|---|
| model | はい | string | 使用するモデルのID。例: qwen-mt-turbo。 |
| messages | はい | array | これまでの会話を含むメッセージのリスト。role と content フィールドを含みます。 |
| ? role | いいえ | string | メッセージ送信者のロール(役割)。例: user、assistant、system。 |
| ? content | いいえ | string | メッセージの内容。 |
| tools | はい | array | モデルが呼び出すことができるツールのリスト。現在はツールとしての関数のみをサポートしています。モデルがJSON入力を生成するための関数リストを提供するために使用されます。 |
| tool_choice | はい | object | モデルがどの関数を呼び出すかを制御します(存在する場合)。none は呼び出さないことを意味し、auto はモデルが自動的に選択することを意味します。{"type": "function", "function": {"name": "my_function"}} のように指定して強制的に呼び出すことも可能です。 |
| temperature | いいえ | integer | サンプリング温度(0〜2の範囲)。高い値(例: 0.8)は出力をよりランダムにし、低い値(例: 0.2)は出力をより集中的で決定論的にします。この値か top_p のいずれかを変更することをお勧めしますが、両方を同時に変更しないでください。 |
| top_p | いいえ | integer | ヌクレアスサンプリング(Top-pサンプリング)パラメータ。0.1は上位10%の確率質量を構成するトークンのみが考慮されることを意味します。この値か temperature のいずれかを変更することをお勧めしますが、両方を同時に変更しないでください。 |
| n | いいえ | integer | 各入力メッセージに対して生成するチャット補完の数。デフォルトは1です。 |
| stream | いいえ | boolean | ストリーミング出力を有効にするかどうか。true の場合、部分的なメッセージの差分が Server-Sent Events (SSE) 形式で送信され、完了時に data: [DONE] が送信されます。デフォルトは false です。 |
| stop | いいえ | string | APIがトークンの生成を停止するシーケンス(最大4つ)。 |
| max_tokens | いいえ | integer | チャット補完で生成される最大トークン数。入力トークンと生成トークンの合計長は、モデルのコンテキスト長によって制限されます。 |
| presence_penalty | いいえ | number | -2.0 から 2.0 の間の数値。正の値は、トークンがこれまでのテキストに出現したかどうかに基づいて新しいトークンにペナルティを与え、モデルが新しいトピックについて話す可能性を高めます。 |
| frequency_penalty | いいえ | number | -2.0 から 2.0 の間の数値。正の値は、これまでのテキストにおける既存の頻度に基づいて新しいトークンにペナルティを与え、モデルが同じ文を繰り返す可能性を低くします。 |
| logit_bias | いいえ | object/null | 指定したトークンが補完に出現する可能性を変更します。トークンIDをバイアス値(-100〜100)にマッピングするJSONオブジェクトを受け入れます。 |
| user | いいえ | string | エンドユーザーを表す一意の識別子。乱用行為の監視と検出に役立ちます。 |
| response_format | いいえ | object | モデルが出力しなければならないフォーマットを指定するオブジェクト。{"type": "json_object"} に設定するとJSONモードが有効になります。注意: 使用する場合、メッセージ内でJSONを生成するようにモデルに指示する必要があります。 |
| seen | いいえ | integer | ベータ版機能。決定論的サンプリングのためのシード(seed)。同じシードとパラメータを使用してリクエストを繰り返すと、同じ結果が返されるはずです。 |
リクエスト例 (機械翻訳のシナリオ)
{
"model": "qwen-mt-turbo",
"messages": [
{
"role": "user",
"content": "看完这个视频我没有笑"
}
],
"translation_options": {
"source_lang": "auto",
"target_lang": "English"
}
}
(注: translation_options は qwen-mt-turbo 翻訳モデル特有の拡張パラメータです)
レスポンスパラメータ (Response Body)
レスポンスフォーマットは application/json です。
| パラメータ名 | データ型 | 説明 |
|---|---|---|
| id | string | チャット補完の一意の識別子。 |
| object | string | オブジェクトタイプ。通常は chat.completion です。 |
| created | integer | 作成時のタイムスタンプ (Unix秒)。 |
| choices | array | 補完の選択肢のリスト。 |
| ? index | integer | リスト内におけるこの選択肢のインデックス。 |
| ? message | object | モデルによって生成されたメッセージオブジェクト。role と content を含みます。 |
| ? finish_reason | string | モデルが生成を停止した理由(例: 正常終了の場合は stop、最大トークン制限に達した場合は length)。 |
| usage | object | 今回のリクエストにおけるトークン消費量の統計。 |
| ? prompt_tokens | integer | プロンプトで消費されたトークン数。 |
| ? completion_tokens | integer | 生成されたコンテンツで消費されたトークン数。 |
| ? total_tokens | integer | 消費されたトークンの合計数。 |
レスポンス例 (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
}
}
よくある質問 (FAQ)
1. qwen-mt-turbo モデルは主にどのようなシナリオで使用されますか?
qwen-mt-turbo は、機械翻訳(Machine Translation)に特化して深く最適化されたモデルです。標準的なChat Completions(チャット補完)APIを使用しますが、翻訳対象のテキストを渡し、ソース言語とターゲット言語を設定することで、非常に高品質な翻訳結果を提供します。
2. タイプライター効果(ストリーミング出力)を実装するにはどうすればよいですか?
リクエストボディで stream パラメータを true に設定します。この場合、APIは完全なJSONレスポンスを一度に返すのではなく、Server-Sent Events (SSE) プロトコルを介してデータチャンク(data chunks)を継続的にプッシュします。コンテンツの生成が完了すると、ストリームの終了を示す data: [DONE] が返されます。
3. 401 Unauthorized エラーが発生するのはなぜですか?
リクエストヘッダーの Authorization フィールドを確認してください。フォーマットが Bearer <あなたの_API_KEY> になっていること(Bearer と API Key の間にスペースが1つあることに注意)、およびその API Key が有効な状態であり、該当モデルを呼び出す権限を持っていることを確認してください。
4. temperature と top_p はどのように設定すべきですか?
どちらのパラメータも、モデル出力のランダム性を制御するために使用されます。公式の推奨としては、どちらか一方のみを変更し、もう一方はデフォルト値のままにすることです。翻訳や質疑応答の結果をより厳密で固定されたものにしたい場合は、temperature を低く(例: 0.1 - 0.2)設定することをお勧めします。より創造的なコンテンツを生成したい場合は、高く(例: 0.8)設定してください。
5. リクエスト例にある translation_options は必須ですか?
これは qwen-mt-turbo などの専用翻訳モデルがサポートする拡張設定であり、ソース言語(source_lang)とターゲット言語(target_lang)を明示的に指定するために使用されます。messages 内の content を通じて自然言語のプロンプトで翻訳を指示することも可能ですが、translation_options を使用することで、翻訳の指示がより明確になり、結果が安定します。翻訳以外の基本的な会話に使用する場合は、このパラメータを渡す必要はありません。