Skip to main content
文本產生

指定首碼續寫(Partial Mode)

在代碼補全、文本續寫等情境中,需要模型從已有的文本片段(首碼)開始繼續產生。Partial Mode 可提供精確控制能力,確保模型輸出的內容緊密銜接提供的首碼,提升產生結果的準確性與可控性。

使用方式

需在messages 數組中將最後一條訊息的 role 設定為 assistant,並在其 content 中提供首碼,在此訊息中設定參數 "partial": truemessages格式如下:
[
    {
        "role": "user",
        "content": "請補全這個斐波那契函數,勿添加其它內容"
    },
    {
        "role": "assistant",
        "content": "def calculate_fibonacci(n):\n    if n <= 1:\n        return n\n    else:\n",
        "partial": true
    }
]
模型會以首碼內容為起點開始產生。

支援的模型

  • 文本產生模型
    • 千問Max(非思考模式):Qwen3.8-Max系列、Qwen3.7-Max系列、Qwen3.6-Max系列、Qwen3-Max系列、Qwen-Max系列
    • 千問Plus(非思考模式):Qwen3.7-Plus系列、Qwen3.6-Plus系列、Qwen3.5-Plus系列、Qwen-Plus系列
    • 千問Flash(非思考模式):Qwen3.7-Flash系列、Qwen3.6-Flash系列、Qwen3.5-Flash系列、Qwen-Flash系列
    • 千問Coder:Qwen3-Coder系列、Qwen2.5-Coder系列
    • 千問Turbo(非思考模式):Qwen-Turbo系列
    • Qwen3.6開源系列(非思考模式)
    • Qwen3.5開源系列(非思考模式)
    • Qwen3開源系列(非思考模式)
    • Qwen2.5開源系列
  • 多模態模型
    • 千問VL:Qwen3-VL-Plus系列、Qwen3-VL-Flash系列、Qwen-VL-Max系列、Qwen-VL-Plus系列
    • Qwen3-VL 開源系列(非思考模式)

快速開始

前提條件

擷取API Key配置API Key到環境變數。如果通過 OpenAI SDK 或 DashScope SDK 進行調用,需要安裝SDK。如果您是子業務空間的成員,請確保超級管理員已為該業務空間進行 模型授權操作
暫不支援 DashScope Java SDK。

範例程式碼

代碼補全是 Partial Mode 的核心應用情境。以下樣本示範如何補全一個 Python 函數。
  • OpenAI相容
  • DashScope
  • Python
  • Node.js
  • curl
import os
from openai import OpenAI

# 1. 初始化用戶端
client = OpenAI(
    # 各地區的API Key不同。擷取API Key:https://www.alibabacloud.com/help/zh/model-studio/get-api-key
    # 如果您沒有配置環境變數,請在此處用您的API Key進行替換
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    # 以下為新加坡地區URL,調用時請將 {WorkspaceId} 替換為您的百鍊業務空間ID,各地區的URL不同。
    base_url="https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1",
)
# 2. 定義需要補全的代碼首碼
prefix = """def calculate_fibonacci(n):
    if n <= 1:
        return n
    else:
"""

# 3. 發起 Partial Mode 請求
# 注意:messages 數組的最後一條訊息 role 為 "assistant",並包含 "partial": True
completion = client.chat.completions.create(
    model="qwen3.8-max",
    messages=[
        {"role": "user", "content": "請補全這個斐波那契函數,勿添加其它內容"},
        {"role": "assistant", "content": prefix, "partial": True},
    ],
)

# 4. 手動拼接首碼和模型產生的內容
generated_code = completion.choices[0].message.content
complete_code = prefix + generated_code

print(complete_code)

返回結果

def calculate_fibonacci(n):
    if n <= 1:
        return n
    else:
        return calculate_fibonacci(n-1) + calculate_fibonacci(n-2)

使用樣本

傳入圖片或視頻

千問VL模型支援在輸入映像、視頻資料時進行首碼續寫,可應用於產品介紹、社交媒體內容創作、新聞稿產生、創意文案等情境。
  • OpenAI相容
  • DashScope
  • Python
  • Node.js
  • curl
import os
from openai import OpenAI

client = OpenAI(
    # 若沒有配置環境變數,請用阿里雲百鍊API Key將下行替換為:api_key="sk-xxx",
    # 各地區的API Key不同。擷取API Key:https://www.alibabacloud.com/help/zh/model-studio/get-api-key
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    # 以下為新加坡地區URL,調用時請將 {WorkspaceId} 替換為您的百鍊業務空間ID,各地區的URL不同。
    base_url="https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1"
)

completion = client.chat.completions.create(
    model="qwen3-vl-plus",
    messages=[
        {
            "role": "user",
            "content": [
                {
                    "type": "image_url",
                    "image_url": {
                        "url": "https://img.alicdn.com/imgextra/i3/O1CN01zFX2Bs1Q0f9pESgPC_!!6000000001914-2-tps-450-450.png"
                    },
                },
                {"type": "text", "text": "我要發社交媒體,請幫我想一下文案。"},
            ],
        },
        {
            "role": "assistant",
            "content": "今天發現了一家寶藏咖啡館",
            "partial": True,
        },
    ],
)
print(completion.choices[0].message.content)

返回結果

,這款提拉米蘇簡直是味蕾的享受!每一口都能感受到咖啡與奶油的完美融合,幸福感爆棚~ #美食分享 #提拉米蘇 #咖啡時光

希望你喜歡這個文案!如果有任何修改需求,請隨時告訴我。

基於不完整輸出進行續寫

如果max_tokens參數設定過小,大模型可能返回不完整的內容。可使用 Partial Mode 對不完整的內容續寫,使其語義完整。
  • OpenAI相容
  • DashScope
  • Python
  • Node.js
import os
from openai import OpenAI

client = OpenAI(
    # 各地區的API Key不同。擷取API Key:https://www.alibabacloud.com/help/zh/model-studio/get-api-key
    # 如果您沒有配置環境變數,請在此處用您的API Key進行替換
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    # 以下為新加坡地區URL,調用時請將 {WorkspaceId} 替換為您的百鍊業務空間ID,各地區的URL不同。
    base_url="https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1",
)

def chat_completion(messages,max_tokens=None):
    response = client.chat.completions.create(
        model="qwen-plus",
        messages=messages,
        max_tokens=max_tokens
    )
    print(f"###停止產生原因:{response.choices[0].finish_reason}")

    return response.choices[0].message.content

# 使用樣本
messages = [{"role": "user", "content": "請寫一個短篇科幻故事"}]

# 第一輪調用,設定max_tokens為40
first_content = chat_completion(messages, max_tokens=40)
print(first_content)
# 將第一輪的響應加入到assistant message,並設定partial=True
messages.append({"role": "assistant", "content": first_content, "partial": True})

# 第二輪調用
second_content = chat_completion(messages)
print("###完整內容:")
print(first_content+second_content)

返回結果

停止產生原因為length表示觸發了max_tokens的限制;停止產生原因為stop表示大模型產生自然結束,或觸發了stop參數。
###停止產生原因:length
**《記憶的盡頭》**

在遙遠的未來,地球早已不再適合人類居住。大氣層被汙染,海洋乾涸,城市變成了廢墟。人類被迫遷移到一顆名為“
###停止產生原因:stop
###完整內容:
**《記憶的盡頭》**

在遙遠的未來,地球早已不再適合人類居住。大氣層被汙染,海洋乾涸,城市變成了廢墟。人類被迫遷移到一顆名為“伊甸星”的宜居星球,那裡有蔚藍的天空、清新的空氣和無盡的資源。

然而,伊甸星並非真正的天堂。它沒有人類的歷史,沒有過去,也沒有記憶。

......

**“如果我們忘記了自己是誰,我們還算是人類嗎?”**

——完——

計費說明

根據請求的輸入 Token 和輸出 Token 計費。首碼部分作為輸入 Token。

錯誤碼

如果模型調用失敗並返回報錯資訊,請參見錯誤碼進行解決。
Token Plan
模型體驗
用量統計與效能監控
資產中心
服務支援