Completions API は、コード補完やコンテンツの続きの生成などのテキスト補完シナリオ向けに設計されています。
このドキュメントは、中国 (北京) リージョンにのみ適用されます。モデルを使用するには、中国 (北京) リージョンの API キー を使用する必要があります。
サポートされているモデル
現在、次の Qwen Coder モデルがサポートされています:
qwen2.5-coder-0.5b-instruct, qwen2.5-coder-1.5b-instruct, qwen2.5-coder-3b-instruct, qwen2.5-coder-7b-instruct, qwen2.5-coder-14b-instruct, qwen2.5-coder-32b-instruct, qwen-coder-turbo-0919, qwen-coder-turbo-latest, qwen-coder-turbo
前提条件
API キーを取得し、API キーを環境変数として設定している必要があります。OpenAI SDK を使用する場合は、SDK をインストールする必要があります。
使用方法
Completions API を使用してテキスト補完を行うことができます。次のシナリオがサポートされています:
指定されたプレフィックスから続くテキストを生成します。
指定されたプレフィックスとサフィックスに基づいて中間コンテンツを生成します。
この API は、指定されたサフィックスの前にコンテンツを生成することはサポートしていません。
使用方法
関数名、入力パラメーター、使用方法などの情報をプレフィックスで渡すことができます。Completions API は生成されたコードを返します。
プロンプトテンプレートは次のとおりです:
<|fim_prefix|>{prefix_content}<|fim_suffix|>テンプレートでは、{prefix_content} は指定するプレフィックスです。
import os
from openai import OpenAI
client = OpenAI(
base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
api_key=os.getenv("DASHSCOPE_API_KEY")
)
completion = client.completions.create(
model="qwen2.5-coder-32b-instruct",
prompt="<|fim_prefix|>Write a Python quick sort function, def quick_sort(arr):<|fim_suffix|>",
)
print(completion.choices[0].text)import OpenAI from "openai";
const openai = new OpenAI(
{
// 環境変数を設定していない場合は、次の行を Model Studio API キーに置き換えてください: apiKey: "sk-xxx",
apiKey: process.env.DASHSCOPE_API_KEY,
baseURL: "https://dashscope.aliyuncs.com/compatible-mode/v1"
}
);
async function main() {
const completion = await openai.completions.create({
model: "qwen2.5-coder-32b-instruct",
prompt: "<|fim_prefix|>Write a Python quick sort function, def quick_sort(arr):<|fim_suffix|>",
});
console.log(completion.choices[0].text)
}
main();curl -X POST https://dashscope.aliyuncs.com/compatible-mode/v1/completions \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "qwen2.5-coder-32b-instruct",
"prompt": "<|fim_prefix|>Write a Python quick sort function, def quick_sort(arr):<|fim_suffix|>"
}'プレフィックスとサフィックスに基づく中間コンテンツの生成
Completions API を使用すると、指定されたプレフィックスとサフィックスに基づいて中間コンテンツを生成できます。関数名、入力パラメーター、使用方法などの情報をプレフィックスで渡し、関数の戻りパラメーターなどの情報をサフィックスで渡すことができます。Completions API は生成されたコードを返します。
プロンプトテンプレートは次のとおりです:
<|fim_prefix|>{prefix_content}<|fim_suffix|>{suffix_content}<|fim_middle|>テンプレートでは、{prefix_content} はプレフィックスで、{suffix_content} はサフィックスです。
import os
from openai import OpenAI
client = OpenAI(
base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
api_key=os.getenv("DASHSCOPE_API_KEY")
)
prefix_content = f"""def reverse_words_with_special_chars(s):
'''
文字列内の各単語を逆順にします (アルファベット以外の文字の位置は保持)。単語の順序は維持されます。
例:
reverse_words_with_special_chars("Hello, world!") -> "olleH, dlrow!"
パラメーター:
s (str): 入力文字列 (句読点を含む場合があります)。
戻り値:
str: 単語は逆順にされ、アルファベット以外の文字は元の位置に保持された処理済み文字列。
'''
"""
suffix_content = "return result"
completion = client.completions.create(
model="qwen2.5-coder-32b-instruct",
prompt=f"<|fim_prefix|>{prefix_content}<|fim_suffix|>{suffix_content}<|fim_middle|>",
)
print(completion.choices[0].text)import OpenAI from 'openai';
const client = new OpenAI({
baseURL: "https://dashscope.aliyuncs.com/compatible-mode/v1",
apiKey: process.env.DASHSCOPE_API_KEY
});
const prefixContent = `def reverse_words_with_special_chars(s):
'''
文字列内の各単語を逆順にします (アルファベット以外の文字の位置は保持)。単語の順序は維持されます。
例:
reverse_words_with_special_chars("Hello, world!") -> "olleH, dlrow!"
パラメーター:
s (str): 入力文字列 (句読点を含む場合があります)。
戻り値:
str: 単語は逆順にされ、アルファベット以外の文字は元の位置に保持された処理済み文字列。
'''
`;
const suffixContent = "return result";
async function main() {
const completion = await client.completions.create({
model: "qwen2.5-coder-32b-instruct",
prompt: `<|fim_prefix|>${prefixContent}<|fim_suffix|>${suffixContent}<|fim_middle|>`
});
console.log(completion.choices[0].text);
}
main();curl -X POST https://dashscope.aliyuncs.com/compatible-mode/v1/completions \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "qwen2.5-coder-32b-instruct",
"prompt": "<|fim_prefix|>def reverse_words_with_special_chars(s):\n\"\"\"\n文字列内の各単語を逆順にします (アルファベット以外の文字の位置は保持)。単語の順序は維持されます。\n 例:\n reverse_words_with_special_chars(\"Hello, world!\") -> \"olleH, dlrow!\"\n パラメーター:\n s (str): 入力文字列 (句読点を含む場合があります)。\n 戻り値:\n str: 単語は逆順にされ、アルファベット以外の文字は元の位置に保持された処理済み文字列。\n\"\"\"\n<|fim_suffix|>return result<|fim_middle|>"
}'リクエストとレスポンスのパラメーター
リクエストパラメーター
パラメーター | タイプ | 必須 | 説明 |
model | string | はい | 呼び出すモデルの名前。 |
prompt | string | はい | 補完を生成するためのプロンプト。 |
max_tokens | integer | いいえ | レスポンスで返すトークンの最大数。
|
temperature | float | いいえ | サンプリング温度。生成されるテキストの多様性をコントロールします。 温度の値が高いほど、生成されるテキストの多様性が高くなります。温度の値が低いほど、生成されるテキストの決定性が高くなります。 有効な値: [0, 2.0)。 「temperature」と「top_p」はどちらもテキストの多様性をコントロールするため、どちらか一方のみを設定してください。 |
top_p | float | いいえ | 核サンプリングの確率のしきい値。生成されるテキストの多様性をコントロールします。 top_p の値が高いほど、生成されるテキストの多様性が高くなります。top_p の値が低いほど、生成されるテキストの決定性が高くなります。 有効な値: (0, 1.0]。 「temperature」と「top_p」はどちらもテキストの多様性をコントロールするため、どちらか一方のみを設定してください。 |
stream | boolean | いいえ | レスポンスにストリーミング出力を使用するかどうかを指定します。有効な値:
|
stream_options | object | いいえ | ストリーミング出力が有効な場合、このパラメーターを |
stop | string or array | いいえ | モデルは、「stop」パラメーターで指定された文字列または 不要なコンテンツをフィルターで除外するために停止シーケンスを指定します。 |
seed | integer | いいえ | 「seed」パラメーターを設定すると、テキスト生成プロセスがより決定論的になります。これは通常、モデルが実行ごとに一貫した結果を生成するようにするために使用されます。 一貫した結果を得るには、各モデル呼び出しで指定するのと同じ「seed」値を渡し、他のパラメーターは変更しないようにします。そうすると、モデルは同じ結果を返そうとします。 有効な値: 0 から 231-1。 |
presence_penalty | float | いいえ | 生成されるテキスト内のコンテンツの繰り返し度合いをコントロールします。 有効な値: [-2.0, 2.0]。正の値は繰り返しを減らし、負の値は繰り返しを増やします。 |
レスポンスパラメーター
パラメーター | タイプ | 説明 |
id | string | 呼び出しの一意の識別子。 |
choices | array | モデルから生成されたコンテンツの配列。 |
choices[0].text | string | リクエストに対して生成されたコンテンツ。 |
choices[0].finish_reason | string | モデルがコンテンツの生成を停止した理由。 |
choices[0].index | integer | 配列内の現在の要素のインデックス。値は常に 0 です。 |
choices[0].logprobs | object | このパラメーターは常に空です。 |
created | integer | リクエストが作成されたときの UNIX タイムスタンプ。 |
model | string | リクエストに使用されたモデルの名前。 |
system_fingerprint | string | このパラメーターは常に空です。 |
object | string | オブジェクトタイプ。常に |
usage | object | リクエストの使用状況の統計。 |
usage.prompt_tokens | integer |
|
usage.completion_tokens | integer |
|
usage.total_tokens | integer |
|
エラーコード
呼び出しが失敗した場合は、「エラーメッセージ」を参照してトラブルシューティングを行ってください。