Skip to main content
文本產生

概述

文本產生模型根據自然語言提示詞(Prompt)產生連貫、上下文相關的文本,支援聊天機器人、內容創作、文檔摘要和代碼產生等情境。

文本產生模型所需的輸入可以是簡單的關鍵詞、一句話概述或更複雜的多步驟指令和上下文資訊。常見應用情境:
  • 內容創作:產生新聞文章、商品介紹及短視頻指令碼。
  • 客戶服務:構建全天候自動應答的聊天機器人,解答常見問題。
  • 文本翻譯:支援多語言之間的快速精準翻譯。
  • 摘要提煉:從長文、報告及郵件中提取關鍵資訊。
  • 法律文檔編寫:產生合約範本、法律意見書的基礎架構。

核心概念

文本產生模型的輸入為提示詞(Prompt),它由一個或多個訊息(Message)對象構成。每條訊息由角色(Role)和內容(Content)組成,具體為:
  • 系統訊息(System Message):設定模型的角色定位、管理辦法或特定任務指令。若不指定,預設為"You are a helpful assistant"。
  • 使用者訊息(User Message):使用者向模型提出的問題、指令或輸入內容。
  • 助手訊息(Assistant Message):模型的回複內容。在多輪對話中,傳入歷史助手訊息以維持上下文。
調用模型時,需構造一個由上述訊息對象構成的數組messages。一個典型的請求通常由一條定義管理辦法的 system 訊息和一條使用者提出的 user 訊息組成。
system 訊息是可選的,但建議設定。明確模型的角色定位和行為約束,有助於獲得更一致、可預測的輸出。
[
    {"role": "system", "content": "你是一個有協助的助手,需要提供精準、高效且富有洞察力的回應,隨時準備協助使用者處理各種任務與問題。"},
    {"role": "user", "content": "你是誰?"}
]
輸出的響應對象中會包含模型回複的assistant訊息。
{
    "role": "assistant",
    "content": "你好!我是Qwen,是阿里巴巴集團旗下的通義實驗室自主研發的超大規模語言模型。我可以協助你回答問題、創作文字、進行邏輯推理、編程等。我能夠理解並產生多種語言,支援多輪對話和複雜任務處理。如果你有任何需要協助的地方,儘管告訴我!"
}

快速開始

API 使用前提:已擷取與配置 API Key並完成配置API Key到環境變數。如果通過SDK調用,需要安裝 OpenAI 或 DashScope SDK。樣本接入地址中的 {WorkspaceId} 為業務空間 ID,擷取方式請參見選擇地區、服務部署範圍和接入網域名稱
  • OpenAI相容-Chat Completions API
  • OpenAI相容-Responses API
  • DashScope
  • Python
  • Java
  • Node.js
  • Go
  • C#(HTTP)
  • PHP(HTTP)
  • curl
import os
from openai import OpenAI

try:
    client = OpenAI(
        # 各地區的API Key不同。擷取API Key:https://www.alibabacloud.com/help/zh/model-studio/get-api-key
        # 若沒有配置環境變數,請用阿里雲百鍊API Key將下行替換為:api_key="sk-xxx",
        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.8-max",
        messages=[
            {"role": "system", "content": "You are a helpful assistant."},
            {"role": "user", "content": "你是誰?"},
        ],
    )
    print(completion.choices[0].message.content)
    # 如需查看完整響應,請取消下列注釋
    # print(completion.model_dump_json())
except Exception as e:
    print(f"錯誤資訊:{e}")
    print("請參考文檔:https://www.alibabacloud.com/help/zh/model-studio/error-code")

返回結果

我是千問,阿里巴巴集團旗下的通義實驗室自主研發的超大規模語言模型。我可以協助你回答問題、創作文字,比如寫故事、寫公文、寫郵件、寫劇本、邏輯推理、編程等等,還能表達觀點,玩遊戲等。如果你有任何問題或需要協助,歡迎隨時告訴我!

映像、視頻資料處理

多模態模型支援處理映像、視頻等非文本資料,可用於視覺問答、事件檢測等任務。其調用方式與純文字模型主要有以下不同:
  • 使用者訊息(user message)的構造方式:多模態模型的使用者訊息不僅包含文本,還包含圖片、音頻等多模態資訊。
  • DashScope SDK介面:使用 DashScope Python SDK時,需調用 MultiModalConversation 介面;使用DashScope Java SDK時,需調用 MultiModalConversation 類。
圖片、視頻檔案限制請參見 映像與視頻理解
  • OpenAI相容-Chat Completions API
  • DashScope
  • Python
  • Node.js
  • curl
from openai import OpenAI
import os

client = OpenAI(
    # 各地區的API Key不同。擷取API Key:https://www.alibabacloud.com/help/zh/model-studio/get-api-key
    # 若沒有配置環境變數,請用百鍊API Key將下行替換為:api_key="sk-xxx"
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    # 以下為新加坡地區URL,調用時請將{WorkspaceId}替換為真實的業務空間ID,各地區的URL不同。
    base_url="https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1"
)
messages = [
    {
        "role": "user",
        "content": [
            {
                "type": "image_url",
                "image_url": {
                    "url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20251031/ownrof/f26d201b1e3f4e62ab4a1fc82dd5c9bb.png"
                },
            },
            {"type": "text", "text": "請問圖片展現了有哪些商品?"},
        ],
    }
]
completion = client.chat.completions.create(
    model="qwen3.6-plus",
    messages=messages,
)
print(completion.choices[0].message.content)

非同步呼叫模型

調用非同步介面,可有效提升高並發請求的處理效率。
  • OpenAI相容-Chat Completions API
  • DashScope
Python
import os
import asyncio
from openai import AsyncOpenAI
import platform

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

# 定義非同步工作清單
async def task(question):
    print(f"發送問題: {question}")
    response = await client.chat.completions.create(
        messages=[
            {"role": "user", "content": question}
        ],
        model="qwen-plus",  # 模型列表:https://www.alibabacloud.com/help/zh/model-studio/getting-started/models
    )
    print(f"模型回複: {response.choices[0].message.content}")

# 主非同步函數
async def main():
    questions = ["你是誰?", "你會什嗎?", "天氣怎麼樣?"]
    tasks = [task(q) for q in questions]
    await asyncio.gather(*tasks)

if __name__ == '__main__':
    # 設定事件迴圈策略
    if platform.system() == 'Windows':
        asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy())
    # 運行主協程
    asyncio.run(main(), debug=False)

返回結果
由於調用是非同步,響應的返回順序可能與樣本不同。
發送問題: 你是誰?
發送問題: 你會什嗎?
發送問題: 天氣怎麼樣?
模型回複: 你好!我是千問,阿里巴巴集團旗下的通義實驗室自主研發的超大規模語言模型。我可以協助你回答問題、創作文字,比如寫故事、寫公文、寫郵件、寫劇本、邏輯推理、編程等等,還能表達觀點,玩遊戲等。如果你有任何問題或需要協助,歡迎隨時告訴我!
模型回複: 您好!我目前無法即時擷取天氣資訊。您可以告訴我您所在的城市或地區,我會儘力為您提供一些通用的天氣建議或資訊。或者您也可以使用天氣應用查看即時天氣情況。
模型回複: 我會很多技能,比如:

1. **回答問題**:無論是學術問題、生活常識還是專業知識,我都可以嘗試幫你解答。
2. **創作文字**:我可以寫故事、公文、郵件、劇本等各類文本。
3. **邏輯推理**:我可以協助你解決一些邏輯推理問題,比如數學題、謎語等。
4. **編程**:我可以提供編程協助,包括代碼編寫、調試和最佳化。
5. **多語言支援**:我支援多種語言,包括但不限於中文、英文、法語、西班牙語等。
6. **觀點表達**:我可以為你提供一些觀點和建議,協助你做出決策。
7. **玩遊戲**:我們可以一起玩文字遊戲,比如猜謎語、成語接龍等。

如果你有任何具體的需求或問題,歡迎告訴我,我會儘力協助你!

應用於生產環境

構建高品質的上下文

向大模型直接輸入大量未經處理資料,會因上下文容量的限制導致成本增加與效果下降。上下文工程(Context Engineering)通過動態載入精準知識,顯著提升產生品質與效率。核心技術包括:
  • 提示詞工程(Prompt Engineering):通過設計和最佳化文本指令(Prompt),可以更精確地引導模型,使其輸出更符合預期的結果。若想瞭解更多,可參考文生文Prompt指南頁面。
  • 檢索增強產生(RAG):適用於需要模型依據外部知識庫(例如產品文檔或技術手冊)來回答問題的情境。
  • 工具調用(Tool):允許模型擷取即時資訊(如查詢天氣、路況)或完成特定操作(如調用API、發送郵件)。
  • 記憶機制(Memory):為模型建立長短期記憶,使其能夠理解連續對話的歷史資訊。

控制回複多樣性

temperaturetop_p用於控制產生文本的多樣性。數值越高,內容越多樣,數值越低,內容越確定。為準確評估參數效果,建議每次只調整一個。
  • temperature:範圍 [0, 2)。側重調整隨機性。
  • top_p:範圍 (0, 1]。通過機率閾值過濾回複。
以下樣本將展示不同參數設定對產生內容的影響。輸入提示詞為:“寫一個三句話的短故事,主角是一隻貓和一束陽光。”
  • 高多樣性(樣本temperature=0.9):適用於需要創意、想象力和新穎表達的情境,如創意寫作、頭腦風暴或市場營銷文案。
陽光斜斜地切進窗檯,橘貓躡手躡腳走近那塊發光的方磚,絨毛瞬間被染成熔化的蜜糖。
它伸出前爪輕拍光斑,卻像踩進溫熱的池水般陷了進去,整片陽光順著肉墊汩汩漫上脊背。
午後忽然變得很重——貓兒蜷在流動的金砂裡,聽見時光在呼嚕聲中輕輕融化。
  • 高確定性(樣本temperature=0.1):適用於要求內容準確、嚴謹和可預測的情境,如事實問答、代碼產生或法律文本。
午後,一隻老貓蜷在窗檯,數著光斑打盹。
陽光輕輕躍過它斑駁的脊背,像在翻閱一本舊相簿。
塵埃浮起又落下,彷彿時光低語:你曾年輕,我也熾熱。
temperature
  • temperature 越高,Token 機率分布變得更平坦(即高機率 Token 的機率降低,低機率 Token 的機率上升),使得模型在選擇下一個 Token 時更加隨機。
  • temperature 越低,Token 機率分布變得更陡峭(即高機率 Token 被選取的機率更高,低機率 Token 的機率更低),使得模型更傾向於選擇高機率的少數 Token。
top_ptop_p 採樣是指從最高機率(最核心)的 Token 集合中進行採樣。它將所有可能的下一個 Token 按機率從高到低排序,然後從機率最高的 Token 開始累加機率,直至機率總和達到閾值(例如80%,即 top_p=0.8),最後從這些機率最高、機率總和達到閾值的 Token 中隨機播放一個用於輸出。
  • top_p 越高,考慮的 Token 越多,因此產生的文本更多樣。
  • top_p 越低,考慮的 Token 越少,因此產生的文本更集中和確定。
# 不同情境的推薦參數配置
SCENARIO_CONFIGS = {
    # 創造性寫作
    "creative_writing": {
        "temperature": 0.9,
        "top_p": 0.95
    },
    # 代碼產生
    "code_generation": {
        "temperature": 0.2,
        "top_p": 0.8
    },
    # 事實性問答
    "factual_qa": {
        "temperature": 0.1,
        "top_p": 0.7
    },
    # 翻譯
    "translation": {
        "temperature": 0.3,
        "top_p": 0.8
    }
}

# OpenAI使用樣本
# completion = client.chat.completions.create(
#     model="qwen-plus",
#     messages=[{"role": "user", "content": "寫一首關於月亮的詩"}],
#     **SCENARIO_CONFIGS["creative_writing"]
# )
# DashScope使用樣本
# response = Generation.call(
#     # 若沒有配置環境變數,請用阿里雲百鍊API Key將下行替換為:api_key = "sk-xxx",
#     api_key=os.getenv("DASHSCOPE_API_KEY"),
#     model="qwen-plus",
#     messages=[{"role": "user", "content": "寫一個判斷輸入n是否是質數的python函數,不要輸出非代碼內容"}],
#     result_format="message",
#     **SCENARIO_CONFIGS["code_generation"]
# )

更多功能

上文介紹了基礎的互動方式。針對更複雜的情境,可參考:
  • 多輪對話:適用於追問、資訊採集等需要連續交流的情境。
  • 流式輸出:適用於聊天機器人、即時代碼產生等需要即時響應的情境,可以提升使用者體驗,並避免因回應時間過長導致的逾時。
  • 深度思考:適用於複雜推理、策略分析等需要更高品質、更具條理的深度回答的情境。
  • 結構化輸出:當需要模型按穩定的JSON格式回複,以便於程式調用或資料解析時使用。
  • 首碼續寫:適用於代碼補全、長文寫作等需要模型接續已有文本的情境。

API 參考

模型調用的完整參數列表,請參考 OpenAI 相容API參考DashScope API參考

常見問題

Q:為什麼輸入Token數比我發送的文本Token數多?

A:在處理對話時,系統會使用對話模板(Chat Template)對輸入的原始文本進行封裝,添加角色標識、訊息邊界等控制標記。這些由系統添加的標記同樣會計入Token。 例如,向qwen3.8-max發送訊息{"role": "user", "content": "你好"},“你好” 在分詞(Tokenize)後僅對應 1 個 Token,但系統處理時,實際輸入完整文本為<|im_start|>user\n你好<|im_end|>\n<|im_start|>assistant\n<think>,分詞後總Token數會增加到11個。

Q:千問API為何無法分析網頁連結?

A:千問API本身不具備直接存取網頁連結的能力。您可以通過Function Calling功能,或結合 Python 的 Beautiful Soup 等網頁抓取工具提取網頁內容後傳入模型。

Q:網頁端千問和千問API的回複為什麼不一致?

A:網頁端千問在千問API的基礎上做了額外的工程最佳化,因此可以達到解析網頁、連網搜尋、畫圖、製作 PPT等功能,這些本身並不屬於大模型API的能力,可以通過Function Calling功能最佳化模型的效果。

Q:模型能直接產生 Word、Excel、PDF 或 PPT 格式的檔案嗎?

A:不能。阿里雲百鍊的文本產生模型僅輸出純文字內容。您需要通過代碼或使用第三方庫將文本轉換為所需格式。
Token Plan
模型體驗
用量統計與效能監控
資產中心
服務支援
概述 - Alibaba Cloud Model Studio