Skip to main content
應用調用

應用 DashScope API 參考

本文介紹 DashScope API 呼叫阿里雲百鍊應用( 智能体 、 工作流 )的輸入與輸出參數,並提供典型情境下的調用樣本。

本文檔僅適用於國際版(新加坡地區)。
相關指南 請參閱應用調用

前置準備

開始前,請確保您已完成以下操作:
  1. 建立應用:前往應用管理建立阿里雲百鍊應用並擷取應用 ID;
  2. 擷取 API Key:通過密鑰管理擷取,並配置API Key到環境變數
  3. 安裝SDK(可選):若使用 SDK 調用,請安裝相應語言的DashScope SDK

調用方式

  • HTTP 介面調用 請求地址:POST https://dashscope-intl.aliyuncs.com/api/v1/apps/APP_ID/completion
    其中 APP_ID 需替換為您的實際應用 ID
  • SDK 調用 Python/Java SDK:本文已預設配置正確的 endpoint 自訂 endpoint:可通過 base_url 參數配置

請求體

app_idstring(必選)應用標識。可在應用管理頁面的應用卡片上擷取應用 ID。
Java SDK中為 appId。通過 HTTP 調用時,請將實際的應用 ID 放入 URL中,替換APP_ID
promptstring(必選)使用者的輸入指令,用於指導應用產生回複。
通過 HTTP 調用時,請將 prompt放入 input對象中。
session_idstring (可選)歷史對話標識。傳入session_id時,請求將自動攜帶雲端儲存的對話歷史。此時必須傳遞prompt該 ID 在連續 1 小時內無任何請求後將自動失效。
Java SDK 中為 setSessionId。通過 HTTP 調用時,請將 session_id放入 input對象中。
messagesarray(可選)傳遞給大模型的上下文,按對話順序排列。當使用messages參數實現多輪對話時,無需傳遞promptsession_id若同時傳入session_idmessages,則大模型優先使用messages中的內容,忽略session_idprompt
通過HTTP調用時,請將 messages 放入 input 對象中。
使用該參數,Python Dashscope SDK的版本至少應為1.20.14,Java Dashscope SDK的版本至少應為2.17.0。

訊息類型

System Messageobject(可選)系統訊息,用於設定大模型的角色、語氣、任務目標或約束條件等。一般放在messages數組的第一位。
contentstring(必選)系統指令,用於明確模型的角色、行為規範、回答風格和任務約束等。rolestring(必選)系統訊息的角色,固定為system
User Messageobject(必選)使用者訊息,用於向模型傳遞問題、指令或上下文等。
contentstring(必選)訊息內容。
textstring(必選)輸入的文本。
rolestring(必選)使用者訊息的角色,固定為user
Assistant Messageobject(可選)模型的回複。通常用於在多輪對話中作為上下文回傳給模型。
contentstring(必選)模型回複的常值內容。rolestring(必選)助手訊息的角色,固定為assistant
workspace string (可選)業務空間標識。相關文檔:擷取Workspace ID僅調用子業務空間的應用時需傳遞workspace ID
通過 HTTP 調用時,請指定Header中的 X-DashScope-WorkSpace
stream boolean(可選) 預設值為 False是否以流式輸出方式回複。推薦設定為True,可提升閱讀體驗並降低逾時風險。參數值:
  • False(預設):模型產生全部內容後一次性返回;
  • True(推薦):邊產生邊輸出,每產生一部分內容即返回一個資料區塊(chunk)。需即時逐個讀取這些塊以拼接完整回複。
通過Java SDK實現流式輸出請通過streamCall介面調用;通過HTTP實現流式輸出請在Header中指定X-DashScope-SSEenable
incremental_output boolean(可選)預設值為 False在流式輸出模式下是否開啟增量輸出。推薦設定為True,可提升閱讀體驗。參數值:
  • False(預設):每次輸出當前已經產生的整個序列,最後一次輸出為產生的完整結果。
I
I like
I like apple
I like apple.
  • True(推薦):增量輸出,即後續輸出內容不包含已輸出的內容。需要即時地逐個讀取這些片段以獲得完整的結果。
I
like
apple
.
Java SDK中為incrementalOutput*。*通過HTTP調用時,請將incremental_output放入parameters對象中。
flow_stream_mode string(可選)預設值為full_thoughts工作流应用的流式輸出模式。參數值:
  • message_format(推薦): message欄位輸出指定節點(流程输出節點或结束節點)的結果。
    在控制台應用中開啟目標節點的流式输出開關,即可流式返回結果;未開啟時,一次性返回該節點的最終結果。
    Java SDK 中為FlowStreamMode.MESSAGE_FORMAT
  • full_thoughts(預設): thoughts欄位輸出所有節點的結果。
    使用此模式時,必須同時將 has_thoughts 參數設定為 True
    Java SDK 中為FlowStreamMode.FULL_THOUGHTS
  • agent_format text欄位輸出指定節點(大模型節點或結束節點)的結果。 在控制台應用中開啟目標節點的结果返回開關,即可流式返回結果。
    請勿在並行節點上使用此模式,可能導致內容混雜。請確保開啟開關的節點有明確的執行順序。
    Java SDK 中為FlowStreamMode.AGENT_FORMAT
Python SDK 版本至少為1.24.0,Java SDK 版本至少為2.21.0。通過HTTP調用時,請將flow_stream_mode放入parameters對象中。
biz_paramsobject (可選)應用通過自訂變數、節點或外掛程式傳遞參數時,使用該欄位進行傳遞。
Java SDK 中為 bizParams。通過HTTP調用時,請將 biz_params放入 input對象中。
工作流应用開始節點的自訂變數直接傳遞,樣本:
biz_params = {"city": "杭州"}
智能体应用通過以下欄位傳遞提示詞變數或外掛程式變數參數:

屬性

user_defined_params object (可選)表示自訂外掛程式參數資訊。一個應用內添加的外掛程式不可重複,且上限 10 個。

屬性

tool_idstring (可選)外掛程式 ID,可在外掛程式卡片上擷取。${plugin_params}string(可選)對象最內側包含的多個索引值對。每個索引值對錶示使用者自訂的待傳遞參數名及其指定值。如:
"article_index": 2
使用步驟:
  1. 在應用內關聯指定外掛程式,並发布應用。
  2. API調用通過此參數傳遞外掛程式資訊。
可提供多個索引值對,其中每個鍵為外掛程式的 TOOL_ID,值為該外掛程式所需的參數對象。樣本:
"user_defined_params": {
        "<TOOL_ID>": {
            "article_index": 2},
        "<TOOL_ID>": {
            "article_index": 8}
        }
user_defined_tokens object(可選)表示自訂外掛程式的使用者級鑒權資訊。一個應用內添加的外掛程式不可重複,且上限 10 個。

屬性

tool_idstring (可選)外掛程式 ID,可在外掛程式卡片中擷取。通過<TOOL_ID>欄位傳遞。user_token string (可選)傳遞該外掛程式需要的使用者鑒權資訊,如實際DASHSCOPE_API_KEY的值。
使用步驟:
  1. 在應用內關聯指定外掛程式,並发布應用。
  2. API調用通過此參數傳遞外掛程式使用者級鑒權資訊。
可提供多個索引值對,其中每個鍵為外掛程式的 TOOL_ID,值為user_token 對象。
has_thoughts boolean (可選)預設值為 False是否輸出外掛程式調用、知識檢索的過程,在thoughts欄位中查看。參數值:
  • True:輸出。
  • False(預設):不輸出。
Java SDK 中為 hasThoughts。通過 HTTP 調用時,請將 has_thoughts放入 parameters對象中。
rag_options object (可選)用於配置與檢索相關的參數。包括但不限於對指定的知識庫或文檔進行檢索。
智能体应用支援此參數。
Java SDK 中為 ragOptions。通過HTTP調用時,請將 rag_options放入 parameters對象中。

屬性

pipeline_ids array必選)包含一個或多個知識庫 ID 的列表。上限5個。檢索指定知識庫內的所有文檔。擷取方式:
  • 知識庫頁面擷取知識庫 ID;
  • 或通過CreateIndex介面(僅支援非結構化知識庫)返回的Data.Id
Java SDK 中為pipelineIds
file_idsarray(可選)包含一個或多個非結構化文檔 ID 的列表。上限5個。檢索指定知識庫內的非結構化文檔。傳入文檔 ID 時,必須同時在 pipeline_ids 欄位中傳入這些文檔所屬的知識庫 ID。擷取方式:
Java SDK 中為 fileIds
metadata_filterobject (可選)用於篩選非結構化文檔的中繼資料。通過指定一個或多個索引值對,檢索指定知識庫內具備該中繼資料的非結構化文檔。使用前提:傳入中繼資料時,必須同時在 pipeline_ids 欄位中傳入這些中繼資料所屬的知識庫 ID。查看方式:
  • 訪問知識庫頁面,單擊知識庫卡片的查看详情Meta信息查看。
  • 或通過ListChunks介面擷取。
該對象由一個或多個索引值對組成:
  • 鍵 (Key):String 類型,代表中繼資料的名稱。
  • 值 (Value):
    • 單一值匹配:值為一個 String,表示只檢索該欄位值完全等於此字串的文檔。
      • 樣本: "author": "John.Doe"
    • 多值“或”匹配:值為一個 Array (數組) 或 List (列表),包含多個 String。這表示檢索該欄位值匹配數組中任意一個值的文檔(邏輯為 OR)。
      • 樣本: "source": ["internal_wiki", "public_docs"]
組合邏輯:
不同鍵之間為“與”(AND) 邏輯。例如,"author": "John.Doe", "source": ["internal_wiki", "public_docs"] 表示篩選出作者是 "John.Doe" 並且來源是 "internal_wiki" 或 "public_docs" 的文檔。

Java SDK 中為 metadataFilter
tags array (可選)包含一個或多個非結構化文檔標籤的列表。檢索具備該標籤的非結構化文檔。查看方式:
  • 單輪對話
  • 多輪對話
  • 傳遞 參數
  • 流式輸出
  • 檢索知識庫
  • Python
  • Java
  • HTTP
請求樣本
import os
from http import HTTPStatus
from dashscope import Application
import dashscope
dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
response = Application.call(
    # 若沒有配置環境變數,可用百鍊API Key將下行替換為:api_key="sk-xxx"。但不建議在生產環境中直接將API Key寫入程式碼到代碼中,以減少API Key泄露風險。
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    app_id='APP_ID',# 替換為實際的應用 ID
    prompt='你是誰?')

if response.status_code != HTTPStatus.OK:
    print(f'request_id={response.request_id}')
    print(f'code={response.status_code}')
    print(f'message={response.message}')
    print(f'請參考文檔:https://www.alibabacloud.com/help/zh/model-studio/developer-reference/error-code')
else:
    print(response.output.text)

響應對象

status_code string返回的狀態代碼。200表示請求成功,否則表示請求失敗。請求失敗可通過code擷取錯誤碼、message擷取錯誤詳細資料。
Java SDK不會返回該參數。調用失敗會拋出異常,異常資訊為status_codemessage的內容。
request_id string本次調用的唯一識別碼。
Java SDK返回參數為requestId
code string表示錯誤碼,調用成功時為空白值。
只有Python SDK返回該參數。
message string表示錯誤詳細資料,請求成功則忽略。
只有Python SDK返回該參數。
output object調用結果資訊。

output屬性

text string模型產生的回複內容。finish_reason string完成原因。stop為自然結束(遇預設標記),null為強制中斷(如達到最大長度限制或手動停止)。session_idstring目前的交談的唯一標識。在後續請求中傳入,可攜帶歷史對話記錄。thoughtsarray調用時將has_thoughts參數設定為True,即可在thoughts中查看外掛程式調用、知識檢索的過程,或深度思考模型的思考過程。
thought string模型的思考過程。當在控制台智能体应用中選擇了深度思考模型,並成功發布應用後,若在 API 呼叫時將 has_thoughts 參數設為 True,則模型的思考過程將在此欄位中返回。reasoningContentstring模型的思考過程。當在控制台工作流应用中選擇了深度思考模型,並成功發布應用後,若在 API 呼叫時將 has_thoughts 參數設為 True,則模型的思考過程將在此欄位中返回。action_type string大模型返回的執行步驟類型。如API表示執行API外掛程式、agentRag表示執行知識檢索、reasoning表示執行深度思考模型的思考過程。action_name string執行的action名稱,如知識檢索、API外掛程式、思考過程。action string執行的步驟。action_input_stream string入參的流式結果。action_input string外掛程式的輸入參數。observation string檢索或外掛程式的過程。
doc_references array檢索的召迴文檔中被模型引用的文檔資訊。在百鍊控制台的智能体应用內,開啟展示回答来源開關並发布應用,doc_references才可能包含有效資訊。
index_id string模型引用的召迴文檔索引,如[1]。title string模型引用的文本切片標題。doc_id string模型引用的文檔ID。doc_name string模型引用的文檔名。text string模型引用的具體常值內容。biz_id string模型引用的業務關聯標識。images array模型引用的圖片URL列表。
usage object表示本次請求使用的資料資訊。

usage屬性

modelsarray本次調用的模型資訊。
model_id string本次應用調用到的模型 ID。input_tokens integer使用者輸入文本轉換成Token後的長度。output_tokens integer模型產生回複轉換為Token後的長度。
單輪對話響應樣本
{
    "output": {
        "finish_reason": "stop",
        "session_id": "6105c965c31b40958a43dc93c28c7a59",
        "text": "我是千問,由阿里雲開發的AI助手。我被設計用來回答各種問題、提供資訊和與使用者進行對話。有什麼我可以協助你的嗎?"
    },
    "usage": {
        "models": [
            {
                "output_tokens": 36,
                "model_id": "qwen-plus",
                "input_tokens": 74
            }
        ]
    },
    "request_id": "f97ee37d-0f9c-9b93-b6bf-bd263a232bf9"
}
指定知識庫響應樣本調用應用知識庫功能時,想要輸出召迴文檔中被模型引用的文檔資訊,可在百鍊控制台的智能体应用內,單擊检索配置,開啟展示回答来源開關,发布應用。
{
    "text": "根據您的預算,我推薦您考慮百鍊 Zephyr Z9。這款手機輕巧便攜,擁有6.4英寸1080 x 2340像素的螢幕,搭配128GB儲存與6GB RAM,非常適合日常使用<ref>[1]</ref>。此外,它還配備了4000mAh電池以及30倍數字變焦鏡頭,能夠捕捉遠處細節,價格區間在2499-2799元之間,完全符合您的預算需求<ref>[1]</ref>。",
    "finish_reason": "stop",
    "session_id": "6c1d47fa5eca46b2ad0668c04ccfbf13",
    "thoughts": null,
    "doc_references": [
        {
            "index_id": "1",
            "title": "百鍊手機產品介紹",
            "doc_id": "file_7c0e9abee4f142f386e488c9baa9cf38_10317360",
            "doc_name": "百鍊系列手機產品介紹",
            "doc_url": null,
            "text": "【文檔名】:百鍊系列手機產品介紹\n【標題】:百鍊手機產品介紹\n【本文】:參考售價:5999- 6499。百鍊 Ace Ultra ——遊戲玩家之選:配備 6.67英寸 1080 x 2400像素螢幕,內建 10GB RAM與 256GB儲存,確保遊戲運行絲滑無阻。百鍊 Ace Ultra ——遊戲玩家之選:配備 6.67英寸 1080 x 2400像素螢幕,內建 10GB RAM與 256GB儲存,確保遊戲運行絲滑無阻。5500mAh電池搭配液冷散熱系統,長時間遊戲也能保持冷靜。高動態雙擴音器,沈浸式音效升級遊戲體驗。參考售價:3999- 4299。百鍊 Zephyr Z9 ——輕薄便攜的藝術:輕巧的 6.4英寸 1080 x 2340像素設計,搭配 128GB儲存與 6GB RAM,日常使用遊刃有餘。4000mAh電池確保一天無憂,30倍數字變焦鏡頭捕捉遠處細節,輕薄而不失強大。參考售價:2499- 2799。百鍊 Flex Fold+ ——摺疊屏新紀元:集創新與奢華於一身,主屏 7.6英寸 1800 x 2400像素與外屏 4.7英寸 1080 x 2400像素,多角度自由懸停設計,滿足不同情境需求。512GB儲存、12GB RAM,加之 4700mAh電池與 UTG超薄柔性玻璃,開啟摺疊屏時代新篇章。此外,這款手機還支援雙卡雙待、衛星通話,協助您在世界各地都能暢聯通話。參考零售價:9999- 10999。\n",
            "biz_id": null,
            "images": [

            ],
            "page_number": [
                0]
        }]
}
異常響應樣本在訪問請求出錯的情況下,輸出的結果中會通過 code 和 message 指明錯誤原因。此處展示未傳入正確API-KEY的異常響應樣本。
request_id=1d14958f-0498-91a3-9e15-be477971967b,
code=401,
message=Invalid API-key provided.

QPM限制

單應用預設QPM(每分鐘請求數)為15000。

錯誤碼

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