全部產品
Search
文件中心

Alibaba Cloud Model Studio:completions 介面

更新時間:Nov 11, 2025

Completions 介面專為文本補全情境設計,適合代碼補全、內容續寫等情境。

說明

本文檔僅適用於中國大陸版(北京地區),需使用中國(北京)地區的API Key

支援的模型

當前支援 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 Key配置API Key到環境變數(準備下線,併入配置 API Key)。如果通過 OpenAI SDK 調用,需要安裝SDK

開始使用

您可以通過 Completions 介面實現文本補全,當前支援以下兩種文本補全情境:

  1. 通過給定的首碼產生後續內容;

  2. 通過給定的首碼與尾碼產生中間內容;

暫不支援通過給定的尾碼產生首碼內容。

快速開始

您可以在首碼中傳入函數的名稱、輸入參數、使用說明等資訊,Completions 介面將返回產生的程式碼。

提示詞模板為:

<|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|>寫一個python的快速排序函數,def quick_sort(arr):<|fim_suffix|>",
)

print(completion.choices[0].text)
import OpenAI from "openai";

const openai = new OpenAI(
    {
        // 若沒有配置環境變數,請用阿里雲百鍊API Key將下行替換為: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|>寫一個python的快速排序函數,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|>寫一個python的快速排序函數,def quick_sort(arr):<|fim_suffix|>"
}'

根據首碼和尾碼產生中間內容

Completions 介面支援通過您給定的首碼與尾碼產生中間內容,您可以在首碼中傳入函數的名稱、輸入參數、使用說明等資訊,在尾碼中傳入函數的返回參數等資訊,Completions 介面將返回產生的程式碼。

提示詞模板為:

<|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

本次請求返回的最大 Token 數。

max_tokens 的設定不會影響大模型的產生過程,如果模型產生的 Token 數超過max_tokens,本次請求會返回截斷後的內容。

temperature

float

採樣溫度,控制模型產生文本的多樣性。

temperature越高,產生的文本更多樣,反之,產生的文本更確定。

取值範圍: [0, 2.0)。

由於temperature與top_p均可以控制產生文本的多樣性,因此建議您只設定其中一個值。

top_p

float

核採樣的機率閾值,控制模型產生文本的多樣性。

top_p越高,產生的文本更多樣。反之,產生的文本更確定。

取值範圍:(0,1.0]

由於temperature與top_p均可以控制產生文本的多樣性,因此建議您只設定其中一個值。

stream

boolean

是否流式輸出回複。參數值:

  • false(預設值):模型產生完所有內容後一次性返回結果。

  • true:邊產生邊輸出,即每產生一部分內容就立即輸出一個片段(chunk)。

stream_options

object

當啟用流式輸出時,可通過將本參數設定為{"include_usage": true},在輸出的最後一行顯示所使用的Token數。

stop

string 或 array

當模型產生的文本即將包含stop參數中指定的字串或token_id時,將自動停止產生。

您可以在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

當前固定為null

created

integer

本次請求被建立時的時間戳記。

model

string

本次請求使用的模型名稱。

system_fingerprint

string

該參數當前固定為null

object

string

物件類型,始終為 "text_completion"

usage

object

本次請求的使用統計資訊。

usage.prompt_tokens

integer

prompt 轉換為 Token 的數量。

usage.completion_tokens

integer

choices[0].text 轉換為 Token 的數量。

usage.total_tokens

integer

usage.prompt_tokensusage.completion_tokens 的總和。

錯誤碼

如果模型調用失敗並返回報錯資訊,請參見錯誤資訊進行解決。