相容OpenAI需要資訊
BASE_URL
BASE_URL表示模型服務的網路訪問點或地址。通過該地址,您可以訪問服務提供的功能或資料。在Web服務或API的使用中,BASE_URL通常對應於服務的具體操作或資源的URL。當您使用OpenAI相容介面來使用阿里雲百鍊模型服務時,需要配置BASE_URL。
- 當您通過OpenAI SDK或其他OpenAI相容的SDK調用時,需要配置的BASE_URL如下:
- 當您通過HTTP請求調用時,需要配置的完整訪問endpoint如下:
調用失敗排查:通過 OpenAI 相容介面調用時,如遇到 404、401、403 或串連失敗等錯誤,請依次檢查以下配置:
跨地區調用
百鍊 API Key 按地區綁定。調用某個地區的 base_url 時,必須使用在同一地區建立的 API Key;使用其他地區的 API Key 調用該地區 endpoint 會被鑒權拒絕。
該規則適用於所有提供 endpoint 的地區,包括華北2(北京)、美國(維吉尼亞)、新加坡和日本(東京),以及中國香港。請在所調用 endpoint 對應地區的控制台中建立 API Key。
使用北京地區 API Key 調用維吉尼亞地區 endpoint 時,返回 HTTP 401,錯誤資訊為 Incorrect API key provided,錯誤碼為 invalid_api_key。該錯誤表示 API Key 與 endpoint 所屬地區不匹配,而非 API Key 失效或許可權不足。
支援的模型列表
支援的模型:Qwen 大語言模型(商業版、開源版)、Qwen-VL、Qwen-Coder、Qwen-Omni、Qwen-Math、DeepSeek、Kimi、GLM、MiniMax。
三方直供模型僅在中國站的華北2(北京)地區可用,調用前需先在百鍊控制台開通對應服務(以 SiliconFlow DeepSeek 為例:搜尋 deepseek → 找到 SiliconFlow DeepSeek 模型卡片 → 單擊立即開通 → 確認授權)。
Qwen-Audio不支援OpenAI相容協議,僅支援DashScope協議。
通過OpenAI SDK調用
前提條件
- 請確保您的電腦上安裝了Python環境。
- 請安裝最新版OpenAI SDK。
- 您需要開通阿里雲百鍊模型服務並獲得API-KEY,詳情請參考:擷取與配置 API Key。
- 我們推薦您將API-KEY配置到環境變數中以降低API-KEY的泄露風險,配置方法可參考配置API Key到環境變數。您也可以在代碼中配置API-KEY,但是泄露風險會提高。
- 請選擇您需要使用的模型:支援的模型列表。
使用方式
您可以參考以下樣本來使用OpenAI SDK訪問百鍊服務上的千問模型。
非流式調用樣本
流式調用樣本
function call樣本
此處以天氣查詢工具與時間查詢工具為例,向您展示通過OpenAI介面相容實現function call的功能。範例程式碼可以實現多輪工具調用。
輸入參數配置
輸入參數與OpenAI的介面參數對齊,當前已支援的參數如下:
| 參數 | 類型 | 預設值 | 說明 |
|---|---|---|---|
| model | string | 使用者使用model參數指明對應的模型,可選的模型請見支援的模型列表。 | |
| messages | array | 使用者與模型的對話歷史。array中的每個元素形式為{"role":角色, "content": 內容}。角色當前可選值:system、user、assistant,其中,僅messages[0]中支援role為system,一般情況下,user和assistant需要交替出現,且messages中最後一個元素的role必須為user。 | |
| top_p(可選) | float | 產生過程中的核採樣方法機率閾值,例如,取值為0.8時,僅保留機率加起來大於等於0.8的最可能token的最小集合作為候選集。取值範圍為(0,1.0),取值越大,產生的隨機性越高;取值越小,產生的確定性越高。 | |
| temperature(可選) | float | 用於控制模型回複的隨機性和多樣性。具體來說,temperature值控制了產生文本時對每個候選詞的機率分布進行平滑的程度。較高的temperature值會降低機率分布的峰值,使得更多的低機率詞被選擇,產生結果更加多樣化;而較低的temperature值則會增強機率分布的峰值,使得高機率詞更容易被選擇,產生結果更加確定。取值範圍: [0, 2),不建議取值為0,無意義。 | |
| presence_penalty(可選) | float | 使用者控制模型產生時整個序列中的重複度。提高presence_penalty時可以降低模型產生的重複度,取值範圍[-2.0, 2.0]。 目前僅在千問商業模型和qwen1.5及以後的開源模型上支援該參數。 | |
| n(可選) | integer | 1 | 產生響應的個數,取值範圍是1-4。對於需要產生多個響應的情境(如創意寫作、廣告文案等),可以設定較大的 n 值。設定較大的 n 值不會增加輸入 Token 消耗,會增加輸出 Token 的消耗。 當前僅支援 qwen-plus 模型,且在傳入 tools 參數時固定為1。 |
| max_tokens(可選) | integer | 指定模型可產生的最大token個數。例如模型最大輸出長度為2k,您可以設定為1k,防止模型輸出過長的內容。不同的模型有不同的輸出上限,具體請參見模型列表。 | |
| seed(可選) | integer | 產生時使用的隨機數種子,用於控制模型產生內容的隨機性。seed支援無符號64位整數。 | |
| stream(可選) | boolean | False | 用於控制是否使用流式輸出。當以stream模式輸出結果時,介面返回結果為generator,需要通過迭代擷取結果,每次輸出為當前產生的增量序列。 |
| stop(可選) | string or array | None | stop參數用於實現內容產生過程的精確控制,在模型產生的內容即將包含指定的字串或token_id時自動停止。stop可以為string類型或array類型。
|
| tools(可選) | array | None | 用於指定可供模型調用的工具庫,一次function call流程模型會從中選擇其中一個工具。tools中每一個tool的結構如下:
tools暫時無法與stream=True同時使用。 |
| stream_options(可選) | object | None | 該參數用於配置在流式輸出時是否展示使用的token數目。只有當stream為True的時候該參數才會啟用生效。若您需要統計流式輸出模式下的token數目,可將該參數配置為stream_options={"include_usage":True}。 |
返回參數說明
返回參數 | 資料類型 | 說明 | 備忘 |
|---|---|---|---|
id | string | 系統產生的標識本次調用的id。 | 無 |
model | string | 本次調用的模型名。 | 無 |
system_fingerprint | string | 模型運行時使用的配置版本,當前暫時不支援,返回為空白字串“”。 | 無 |
choices | array | 模型產生內容的詳情。 | 無 |
choices[i].finish_reason | string | 有三種情況:
| |
choices[i].message | object | 模型輸出的訊息。 | |
choices[i].message.role | string | 模型的角色,固定為assistant。 | |
choices[i].message.content | string | 模型產生的文本。 | |
choices[i].index | integer | 產生的結果序列編號,預設為0。 | |
created | integer | 當前產生結果的時間戳記(s)。 | 無 |
usage | object | 計量資訊,表示本次請求所消耗的token資料。 | 無 |
usage.prompt_tokens | integer | 使用者輸入文本轉換成token後的長度。 | 無 |
usage.completion_tokens | integer | 模型產生回複轉換為token後的長度。 | 無 |
usage.total_tokens | integer | usage.prompt_tokens與usage.completion_tokens的總和。 | 無 |
通過langchain_openai SDK調用
前提條件
- 請確保您的電腦上安裝了Python環境。
- 通過運行以下命令安裝langchain_openai SDK。
- 您需要開通阿里雲百鍊模型服務並獲得API-KEY,詳情請參考:擷取與配置 API Key。
- 我們推薦您將API-KEY配置到環境變數中以降低API-KEY的泄露風險,詳情可參考配置API Key到環境變數。您也可以在代碼中配置API-KEY,但是泄露風險會提高。
- 請選擇您需要使用的模型:支援的模型列表。
使用方式
您可以參考以下樣本來通過langchain_openai SDK使用阿里雲百鍊的千問模型。
非流式輸出
非流式輸出使用invoke方法實現,請參考以下範例程式碼:
流式輸出
流式輸出使用stream方法實現,無需在參數中配置stream參數。
通過HTTP介面調用
您可以通過HTTP介面來調用阿里雲百鍊服務,獲得與通過HTTP介面調用OpenAI服務相同結構的返回結果。
前提條件
- 您需要開通阿里雲百鍊模型服務並獲得API-KEY,詳情請參考:擷取與配置 API Key。
- 我們推薦您將API-KEY配置到環境變數中以降低API-KEY的泄露風險,配置方法可參考配置API Key到環境變數。您也可以在代碼中配置API-KEY,但是泄露風險會提高。
提交介面調用
請求樣本
以下樣本展示通過cURL命令來調用API的指令碼。
非流式輸出
流式輸出
如果您需要使用流式輸出,請在請求體中指定stream參數為true。
異常響應樣本
在訪問請求出錯的情況下,輸出的結果中會通過 code 和 message 指明出錯原因。
第三方用戶端配置
除 SDK 與 HTTP 直接調用外,您還可以在支援 OpenAI 相容協議的第三方大模型用戶端中接入阿里雲百鍊。以智譜用戶端為例,按以下步驟填寫配置後即可發起模型調用:
- 在用戶端的服務商設定中選擇自訂服務商。
-
Base URL:填寫本文“相容OpenAI需要資訊”中 BASE_URL 部分所在地區對應的 OpenAI SDK 形式地址,即以
/compatible-mode/v1結尾、不含/chat/completions的地址。各地區的 Base URL 不同,需與 API Key 所屬地區保持一致。 例如,新加坡地區填寫https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1。其中,{WorkspaceId}為您的業務空間 ID,可在阿里雲百鍊控制台的業務空間詳情頁面查看。原https://dashscope.aliyuncs.com網域名稱仍可正常使用,但建議優先使用業務空間專屬網域名稱。 - API Key:填寫對應地區的百鍊 API Key。您可以在百鍊控制台API Key管理頁面建立並擷取 API Key。
-
模型名稱:填寫支援 OpenAI 相容協議的大語言模型名稱。可選模型以本文“相容OpenAI需要資訊”中支援的模型列表部分為準;例如
qwen3-vl-32b-thinking僅作為模型名稱樣本,不表示免費額度承諾。 - 儲存配置後發起一次對話,驗證第三方用戶端是否可以正常調用模型。
error.message 為 current user api does not support http call、error.type 為 invalid_request_error,說明當前填寫的模型不支援通過 OpenAI 相容介面進行 HTTP 調用。請更換為支援的模型列表中的模型後重試,例如不要使用已確認不支援該調用方式的 qvq-max。
狀態代碼說明
錯誤碼 | 說明 |
|---|---|
400 - Invalid Request Error | 輸入請求錯誤,細節請參見具體報錯資訊。 |
401 - Invalid API-key provided | API key不正確。 |
429 - Rate limit reached for requests | QPS、QPM等超限。 |
429 - You exceeded your current quota, please check your plan and billing details | 額度超限或者欠費。 |
500 - The server had an error while processing your request | 服務端錯誤。 |
503 - The engine is currently overloaded, please try again later | 服務端負載過高,可重試。 |