阿里雲百鍊支援通過API調用大模型,涵蓋OpenAI相容介面、DashScope SDK等接入方式。
本文以千問為例,引導您完成大模型API調用。您將瞭解到:
- 如何擷取 API Key
- 如何配置本地開發環境
- 如何調用千問 API
帳號設定
-
註冊帳號:若無阿里雲帳號,需首先註冊。
如遇問題,請參見註冊阿里雲帳號。
-
開通阿里雲百鍊:使用阿里雲主帳號前往阿里雲百鍊大模型服務平台,閱讀並同意協議後,將自動開通阿里雲百鍊,如果未彈出服務合約,則表示您已經開通。
-
擷取API Key:前往API Key頁面,單擊创建API Key,即可通過API KEY調用大模型。
建立 API Key 時無需選擇模型,調用時通過請求體中的
model參數指定要調用的模型(例如model="qwen-plus"),可用模型請參見模型列表。如需限制該 API Key 可調用的模型範圍,建立時選擇自訂許可權,並開啟訪問模型範圍開關,開啟後該 API Key 僅能調用已選擇的模型。 -
擷取業務空間ID:使用華北2(北京)、新加坡、日本(東京)、德國(法蘭克福)或中國香港地區的模型時,需在Base URL中填入業務空間ID(WorkspaceId),可在業務空間管理頁面中查看。使用美國(維吉尼亞)地區的模型時,不支援業務空間專屬網域名稱,Base URL中無需填入業務空間ID(WorkspaceId),直接使用
{WorkspaceId}.us-east-1.maas.aliyuncs.com作為接入網域名稱。
配置API Key到環境變數
建議您把API Key配置到環境變數,避免在代碼裡顯式地配置API Key,降低泄露風險。
配置步驟
Linux系統
添加永久性環境變數
如果您希望API Key環境變數在目前使用者的所有新會話中生效,可以添加永久性環境變數。
- 執行以下命令來將環境變數設定追加到
~/.bashrc檔案中。
# 用您的阿里雲百鍊API Key代替YOUR_DASHSCOPE_API_KEY
echo "export DASHSCOPE_API_KEY='YOUR_DASHSCOPE_API_KEY'" >> ~/.bashrc
也可以手動修改~/.bashrc檔案。
手動修改
執行以下命令,開啟~/.bashrc檔案。
nano ~/.bashrc
在設定檔中添加以下內容。
# 用您的阿里雲百鍊API Key代替YOUR_DASHSCOPE_API_KEY
export DASHSCOPE_API_KEY="YOUR_DASHSCOPE_API_KEY"
在nano編輯器中,按Ctrl + X,接著按Y,再按Enter以儲存並關閉檔案。
- 執行以下命令,使變更生效。
source ~/.bashrc
- 重新開啟一個終端視窗,運行以下命令檢查環境變數是否生效。
echo $DASHSCOPE_API_KEY
添加臨時性環境變數
如果您僅希望在當前會話中使用該環境變數,可以添加臨時性環境變數。
- 執行以下命令。
# 用您的阿里雲百鍊API Key代替YOUR_DASHSCOPE_API_KEY
export DASHSCOPE_API_KEY="YOUR_DASHSCOPE_API_KEY"
- 執行以下命令,驗證該環境變數是否生效。
echo $DASHSCOPE_API_KEY
macOS系統
添加永久性環境變數
如果您希望API Key環境變數在目前使用者的所有新會話中生效,可以添加永久性環境變數。
- 在終端中執行以下命令,查看預設Shell類型。
echo $SHELL
-
根據預設Shell類型進行操作。
Zsh
- 執行以下命令來將環境變數設定追加到
~/.zshrc檔案中。
# 用您的阿里雲百鍊API Key代替YOUR_DASHSCOPE_API_KEY echo "export DASHSCOPE_API_KEY='YOUR_DASHSCOPE_API_KEY'" >> ~/.zshrc也可以手動修改
~/.zshrc檔案。手動修改
執行以下命令,開啟Shell設定檔。
nano ~/.zshrc在設定檔中添加以下內容。
# 用您的阿里雲百鍊API Key代替YOUR_DASHSCOPE_API_KEY export DASHSCOPE_API_KEY="YOUR_DASHSCOPE_API_KEY"在nano編輯器中,按Ctrl + X,接著按Y,再按Enter以儲存並關閉檔案。
- 執行以下命令,使變更生效。
source ~/.zshrc- 重新開啟一個終端視窗,運行以下命令檢查環境變數是否生效。
echo $DASHSCOPE_API_KEYBash
- 執行以下命令來將環境變數設定追加到
~/.bash_profile檔案中。
# 用您的阿里雲百鍊API Key代替YOUR_DASHSCOPE_API_KEY echo "export DASHSCOPE_API_KEY='YOUR_DASHSCOPE_API_KEY'" >> ~/.bash_profile也可以手動修改
~/.bash_profile檔案。手動修改
執行以下命令,開啟Shell設定檔。
nano ~/.bash_profile在設定檔中添加以下內容。
# 用您的阿里雲百鍊API Key代替YOUR_DASHSCOPE_API_KEY export DASHSCOPE_API_KEY="YOUR_DASHSCOPE_API_KEY"在nano編輯器中,按Ctrl + X,接著按Y,再按Enter以儲存並關閉檔案。
- 執行以下命令,使變更生效。
source ~/.bash_profile- 重新開啟一個終端視窗,運行以下命令檢查環境變數是否生效。
echo $DASHSCOPE_API_KEY - 執行以下命令來將環境變數設定追加到
添加臨時性環境變數
如果您僅希望在當前會話中使用該環境變數,可以添加臨時性環境變數。
以下命令適用於 Zsh 和 Bash。
- 執行以下命令。
# 用您的阿里雲百鍊API Key代替YOUR_DASHSCOPE_API_KEY
export DASHSCOPE_API_KEY="YOUR_DASHSCOPE_API_KEY"
- 執行以下命令,驗證該環境變數是否生效。
echo $DASHSCOPE_API_KEY
Windows系統
在Windows系統中,您可以通過系統屬性、CMD或PowerShell配置環境變數。
系統屬性
說明
- 此方式配置的環境變數永久生效。
- 修改系統內容變數需具備管理員權限。
- 配置環境變數後不會立即影響已經開啟的命令視窗、IDE或其他正在啟動並執行應用程式。您需要重新啟動這些程式或者開啟新的命令列使環境變數生效。
-
在Windows系統案頭中按
Win+Q鍵,在搜尋方塊中搜尋編輯系統內容變數,單擊開啟系統屬性介面。 -
在系統屬性視窗,單擊环境变量,然後在系統變數地區下單擊新建,变量名填入
DASHSCOPE_API_KEY,變數值填入您的DashScope API Key。 -
依次單擊三個視窗的确定,關閉系統屬性配置頁面,完成環境變數配置。
-
開啟CMD(命令提示字元)視窗或Windows PowerShell視窗,執行如下命令檢查環境變數是否生效。
- CMD查詢命令:
echo %DASHSCOPE_API_KEY%
Microsoft Windows [版本 10.0.19045.5371]
(c) Microsoft Corporation。著作權所有,並保留一切權利。
C:\Windows\system32>echo %DASHSCOPE_API_KEY%
sk-ee166797fe40xxx
C:\Windows\system32>
- Windows PowerShell查詢命令:
echo $env:DASHSCOPE_API_KEY
Windows PowerShell
著作權 (C) Microsoft Corporation。著作權所有,並保留一切權利。
嘗試新的跨平台 PowerShell https://aka.ms/pscore6
PS C:\Windows\system32> echo $env:DASHSCOPE_API_KEY
sk-ee166797fe40xxx
PS C:\Windows\system32>
CMD
添加永久性環境變數
如果您希望API Key環境變數在目前使用者的所有新會話中生效,可以按如下操作。
- 在CMD中運行以下命令。
# 用您的阿里雲百鍊API Key代替YOUR_DASHSCOPE_API_KEY
setx DASHSCOPE_API_KEY "YOUR_DASHSCOPE_API_KEY"
- 開啟一個新的CMD視窗。
- 在新的CMD視窗運行以下命令,檢查環境變數是否生效。
echo %DASHSCOPE_API_KEY%
添加臨時性環境變數
如果您僅希望在當前會話中使用該環境變數,可以在CMD中運行以下命令。
REM 用您的阿里雲百鍊API Key代替YOUR_DASHSCOPE_API_KEY
set DASHSCOPE_API_KEY=YOUR_DASHSCOPE_API_KEY
您可以在當前會話運行以下命令檢查環境變數是否生效。
echo %DASHSCOPE_API_KEY%
PowerShell
添加永久性環境變數
如果您希望API Key環境變數在目前使用者的所有新會話中生效,可以按如下操作。
- 在PowerShell中運行以下命令。
# 用您的阿里雲百鍊API Key代替YOUR_DASHSCOPE_API_KEY
[Environment]::SetEnvironmentVariable("DASHSCOPE_API_KEY", "YOUR_DASHSCOPE_API_KEY", [EnvironmentVariableTarget]::User)
- 開啟一個新的PowerShell視窗。
- 在新的PowerShell視窗運行以下命令,檢查環境變數是否生效。
echo $env:DASHSCOPE_API_KEY
添加臨時性環境變數
如果您僅希望在當前會話中使用該環境變數,可以在PowerShell中運行以下命令。
# 用您的阿里雲百鍊API Key代替YOUR_DASHSCOPE_API_KEY
$env:DASHSCOPE_API_KEY = "YOUR_DASHSCOPE_API_KEY"
您可以在當前會話運行以下命令檢查環境變數是否生效。
echo $env:DASHSCOPE_API_KEY
選擇開發語言
選擇您熟悉的語言或工具,用於調用大模型API。
Python
步驟 1:配置Python環境
檢查您的Python版本
您的Python需要為3.8或以上版本,請您參考安裝Python進行安裝。
您可以在終端中輸入以下命令查看當前計算環境是否安裝了Python和pip:
python -V
pip --version
以Windows的CMD為例:
C:\Users\Administrator>python -V
Python 3.13.2
C:\Users\Administrator>pip --version
pip 24.3.1 from C:\Users\Administrator\AppData\Local\Programs\Python\Python313\Lib\site-packages\pip (python 3.13)
常見問題
Q:執行python -V、pip --version報錯:
'python' 不是內部或外部命令,也不是可啟動並執行程式或批次檔。'pip' 不是內部或外部命令,也不是可啟動並執行程式或批次檔。-bash: python: command not found-bash: pip: command not found
解決辦法如下:
Windows系統
-
請確認是否已參考安裝Python,在您的計算環境中安裝Python,並將python.exe添加至環境變數PATH中。
安裝 Python 3.13.2 時,在安裝嚮導底部勾選Add python.exe to PATH,將 Python 添加到系統內容變數,然後單擊Install Now完成安裝。
-
如果已安裝了Python並添加了環境變數,仍報此錯,請關閉當前終端,重新開啟一個新的終端視窗,再進行嘗試。
Linux、macOS系統
-
請確認是否已參考安裝Python,在您的計算環境中安裝的Python。
-
如果已安裝Python後,仍報此錯,請輸入
which python pip命令查詢系統中是否有python、pip。- 如果返回如下結果,請關閉當前串連終端,重新開啟一個新的終端視窗,再進行嘗試。
/usr/bin/python
/usr/bin/pip
- 如果返回如下結果,則再次輸入
which python3 pip3查詢。
/usr/bin/which: no python in (/root/.local/bin:/root/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin)
/usr/bin/which: no pip in (/root/.local/bin:/root/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin)
如果返回結果如下,則使用python3 -V、pip3 --version查詢版本。
/usr/bin/python3
/usr/bin/pip3
配置虛擬環境(可選)
如果您的Python已安裝完成,可以建立一個虛擬環境來安裝OpenAI Python SDK或DashScope Python SDK,這可以協助您避免與其它專案發生依賴衝突。
-
建立虛擬環境
您可以運行以下命令,建立一個命名為.venv的虛擬環境:
# 如果運行失敗,您可以將python替換成python3再運行
python -m venv .venv
-
啟用虛擬環境
若您使用Windows系統,請運行以下命令來啟用虛擬環境:
.venv\Scripts\activate
如果您使用macOS或者Linux系統,請運行以下命令來啟用虛擬環境:
source .venv/bin/activate
安裝 OpenAI Python SDK或DashScope Python SDK
您可以通過OpenAI的Python SDK或DashScope的Python SDK來調用阿里雲百鍊平台上的模型。
安裝 OpenAI Python SDK
通過運行以下命令安裝或升級 OpenAI Python SDK:
# 如果運行失敗,您可以將pip替換成pip3再運行
pip install -U openai
當終端出現Successfully installed ... openai-x.x.x的提示後,表示您已經成功安裝OpenAI Python SDK。
安裝 DashScope Python SDK
通過運行以下命令安裝或升級 DashScope Python SDK:
# 如果運行失敗,您可以將pip替換成pip3再運行
pip install -U dashscope
當終端出現Successfully installed ... dashscope-x.x.x的提示後,表示您已經成功安裝DashScope Python SDK。
步驟 2:調用大模型API
OpenAI Python SDK
如果您安裝完成了Python以及OpenAI的Python SDK,可以參考以下步驟發送您的API請求。
- 建立一個檔案,命名為
hello_qwen.py。 - 將以下代碼複製到
hello_qwen.py中並儲存。
import os
from openai import OpenAI
try:
client = OpenAI(
# 若沒有配置環境變數,請用阿里雲百鍊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)
except Exception as e:
print(f"錯誤資訊:{e}")
print("請參考文檔:https://www.alibabacloud.com/help/model-studio/developer-reference/error-code")
使用美國(維吉尼亞)地區時,接入網域名稱為{WorkspaceId}.us-east-1.maas.aliyuncs.com,與華北2(北京)、新加坡地區的格式相同。新加坡、美國(維吉尼亞)與華北2(北京)的 API Key 按地區隔離,不可跨地區使用。
調用時請將{WorkspaceId}替換為真實的業務空間ID。
import os
from openai import OpenAI
try:
client = OpenAI(
# 若沒有配置環境變數,請用阿里雲百鍊API Key將下行替換為: api_key="sk-xxx",
api_key=os.getenv("DASHSCOPE_API_KEY"),
# 以下為美國(維吉尼亞)地區URL,調用時請將{WorkspaceId}替換為真實的業務空間ID,各地區的URL不同。
base_url="https://{WorkspaceId}.us-east-1.maas.aliyuncs.com/compatible-mode/v1",
)
completion = client.chat.completions.create(
model="qwen3.8-max", # 模型列表: https://www.alibabacloud.com/help/model-studio/getting-started/models
messages=[
{'role': 'system', 'content': 'You are a helpful assistant.'},
{'role': 'user', 'content': '你是誰?'}
]
)
print(completion.choices[0].message.content)
except Exception as e:
print(f"錯誤資訊:{e}")
print("請參考文檔:https://www.alibabacloud.com/help/model-studio/developer-reference/error-code")
-
通過命令列運行
python hello_qwen.py或python3 hello_qwen.py。若提示
No such file or directory,則需在檔案名稱前指定具體檔案路徑。運行後您將會看到輸出結果:
我是阿里雲開發的一款超大規模語言模型,我叫千問。
DashScope Python SDK
如果您安裝完成了Python以及DashScope的Python SDK,可以參考以下步驟發送您的API請求。
- 建立一個檔案,命名為
hello_qwen.py。 - 將以下代碼複製到
hello_qwen.py中並儲存。
import os
from dashscope import MultiModalConversation
import dashscope
# 以下為新加坡地區URL,調用時請將{WorkspaceId}替換為真實的業務空間ID,各地區的URL不同。
dashscope.base_http_api_url = 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1'
messages = [
{'role': 'system', 'content': [{'text': 'You are a helpful assistant.'}]},
{'role': 'user', 'content': [{'text': '你是誰?'}]}
]
response = MultiModalConversation.call(
# 若沒有配置環境變數,請用阿里雲百鍊API Key將下行替換為: api_key = "sk-xxx",
api_key=os.getenv("DASHSCOPE_API_KEY"),
model="qwen3.8-max",
messages=messages,
)
if response.status_code == 200:
print(response.output.choices[0].message.content[0]["text"])
else:
print(f"HTTP返回碼:{response.status_code}")
print(f"錯誤碼:{response.code}")
print(f"錯誤資訊:{response.message}")
print("請參考文檔:https://www.alibabacloud.com/help/model-studio/developer-reference/error-code")
-
通過命令列運行
python hello_qwen.py或python3 hello_qwen.py。說明本樣本使用的運行命令需在Python檔案所在目錄執行,如果想要在任意位置執行,請在檔案名稱前指定具體檔案路徑。
運行後您將會看到輸出結果:
我是來自阿里雲的大規模語言模型,我叫千問。
Node.js
步驟 1:配置Node.js環境
檢查Node.js安裝狀態
您可以在終端中輸入以下命令查看當前計算環境是否安裝了Node.js和npm:
node -v
npm -v
以Windows的CMD為例:
C:\Users\Administrator>node -v
v22.14.0
C:\Users\Administrator>npm -v
10.9.2
這將列印出您當前Node.js 版本。如果您的環境中沒有Node.js,請訪問Node.js官網進行下載。
安裝模型調用SDK
您可以在終端運行以下命令:
npm install --save openai
# 或者
yarn add openai
說明如果安裝失敗,您可以通過配置鏡像源的方法來完成安裝,如:
npm config set registry https://registry.npmmirror.com/
配置鏡像源後,您可以重新運行安裝SDK的命令。
當終端出現added xx package in xxs的提示後,表示您已經成功安裝OpenAI SDK。您可以使用npm list openai查詢具體版本資訊。
步驟 2:調用大模型API
- 建立一個
hello_qwen.mjs檔案。 - 將以下代碼複製到檔案中。
import OpenAI from "openai";
try {
const openai = new OpenAI(
{
// 若沒有配置環境變數,請用阿里雲百鍊API Key將下行替換為: apiKey: "sk-xxx",
apiKey: process.env.DASHSCOPE_API_KEY,
// 以下為新加坡地區URL,調用時請將{WorkspaceId}替換為真實的業務空間ID,各地區的URL不同。
baseURL: "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1"
}
);
const completion = await openai.chat.completions.create({
model: "qwen3.8-max",
messages: [
{ role: "system", content: "You are a helpful assistant." },
{ role: "user", content: "你是誰?" }
],
});
console.log(completion.choices[0].message.content);
} catch (error) {
console.log(`錯誤資訊:${error}`);
console.log("請參考文檔:https://www.alibabacloud.com/help/model-studio/developer-reference/error-code");
}
- 通過命令列運行以下命令來發送API請求:
node hello_qwen.mjs
說明
- 本樣本使用的運行命令需在
hello_qwen.mjs檔案所在目錄執行,如果想要在任意位置執行,請在檔案名稱前指定具體檔案路徑。 - 請確保已在
hello_qwen.mjs檔案所在目錄中安裝了SDK,如果SDK與檔案不在同一目錄下,則會報錯Cannot find package 'openai' imported from xxx。
運行成功後您將會看到輸出結果:
我是來自阿里雲的語言模型,我叫千問。
Java
步驟 1:配置Java環境
檢查您的Java版本
您可以在終端運行以下命令:
java -version
# (可選)如果使用maven管理和構建java專案,還需確保maven已正確安裝到您的開發環境中
mvn --version
以Windows的CMD為例:
C:\Users\Administrator>java --version
java 23.0.2 2025-01-21
Java(TM) SE Runtime Environment (build 23.0.2+7-58)
Java HotSpot(TM) 64-Bit Server VM (build 23.0.2+7-58, mixed mode, sharing)
C:\Users\Administrator>mvn --version
Apache Maven 3.9.9 (8e8579a9e76f7d015ee5ec7bfcdc97d260186937)
Maven home: C:\Program Files\apache-maven-3.9.9
Java version: 23.0.2
為了使用DashScope Java SDK,您的Java需要在Java 8或以上版本。您可以查看列印資訊中的第一行確認Java版本,例如列印資訊:openjdk version "16.0.1" 2021-04-20表明當前Java版本為Java 16。如果您當前計算環境沒有Java,或版本低於Java 8,請前往Java下載進行下載與安裝。
安裝模型調用SDK
如果您的環境中已安裝Java,請安裝DashScope Java SDK。SDK的版本請參考:DashScope Java SDK。執行以下命令來添加 Java SDK 依賴,並將 the-latest-version 替換為最新的版本號碼。
XML
- 開啟您的Maven專案的
pom.xml檔案。 - 在
<dependencies>標籤內添加以下依賴資訊。
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>dashscope-sdk-java</artifactId>
<!-- 請將 'the-latest-version' 替換為最新版本號碼:https://mvnrepository.com/artifact/com.alibaba/dashscope-sdk-java -->
<version>the-latest-version</version>
</dependency>
- 儲存
pom.xml檔案。 - 使用Maven命令(如
mvn compile或mvn clean install)來更新專案依賴,這樣Maven會自動下載並添加DashScope Java SDK到您的專案中。
以Windows的IDEA整合式開發環境為例:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema ...
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>dashscope-sdk-java</artifactId>
<!-- 請將 'the-latest-version' 替換為最新版本號碼:https://mvnrepository.com/artifact/com.alibaba... -->
<version>2.18.2</version>
</dependency>
</dependencies>
</project>
~\Desktop\test_project
mvn compile
[INFO] Scanning for projects...
[INFO]
[INFO] ----------------------< org.example:test_project >----------------------
[INFO] Building test_project 1.0-SNAPSHOT
[INFO] from pom.xml
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- resources:3.3.1:resources (default-resources) @ test_project ---
[INFO] skip non existing resourceDirectory C:\Users\Administrator\Desktop\test_project\src\main\resources
[INFO]
[INFO] --- compiler:3.13.0:compile (default-compile) @ test_project ---
[INFO] Nothing to compile - all classes are up to date.
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.627 s
[INFO] Finished at: 2025-02-17T13:15:30+08:00
[INFO] ------------------------------------------------------------------------
Gradle
- 開啟您的Gradle專案的
build.gradle檔案。 - 在
dependencies塊內添加以下依賴資訊。
dependencies {
// 請將 'the-latest-version' 替換為最新版本號碼:https://mvnrepository.com/artifact/com.alibaba/dashscope-sdk-java
implementation group: 'com.alibaba', name: 'dashscope-sdk-java', version: 'the-latest-version'
}
- 儲存
build.gradle檔案。 - 在命令列中,切換到您的專案根目錄,執行以下Gradle命令來更新專案依賴。這將會自動下載並添加DashScope Java SDK到您的專案中。
./gradlew build --refresh-dependencies
以Windows的IDEA整合式開發環境為例:
build.gradle 完整檔案樣本:
group = 'org.example'
version = '1.0-SNAPSHOT'
repositories {
mavenCentral()
}
dependencies {
implementation 'org.apache.groovy:groovy:4.0.14'
testImplementation platform('org.junit:junit-bom:5.10.0')
testImplementation 'org.junit.jupiter:junit-jupiter'
implementation group: 'com.alibaba', name: 'dashscope-sdk-java', version: '2.18.2'
}
test {
useJUnitPlatform()
}
執行構建命令後,終端輸出結果:
~/Desktop/test_project
./gradlew build --refresh-dependencies
Welcome to Gradle 8.10!
Here are the highlights of this release:
- Support for Java 23
- Faster configuration cache
- Better configuration cache reports
For more details see https://docs.gradle.org/8.10/release-notes.html
BUILD SUCCESSFUL in 7m 51s
2 actionable tasks: 2 executed
步驟 2:調用大模型API
您可以運行以下代碼來調用大模型API。
import java.util.Arrays;
import java.lang.System;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversation;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversationParam;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversationResult;
import com.alibaba.dashscope.common.MultiModalMessage;
import java.util.Collections;
import com.alibaba.dashscope.common.Role;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.InputRequiredException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.exception.UploadFileException;
import com.alibaba.dashscope.utils.Constants;
public class Main {
static {Constants.baseHttpApiUrl="https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1";}
public static MultiModalConversationResult callWithMessage() throws ApiException, NoApiKeyException, InputRequiredException, UploadFileException {
MultiModalConversation conv = new MultiModalConversation();
MultiModalMessage systemMsg = MultiModalMessage.builder()
.role(Role.SYSTEM.getValue())
.content(Arrays.asList(Collections.singletonMap("text", "You are a helpful assistant.")))
.build();
MultiModalMessage userMsg = MultiModalMessage.builder()
.role(Role.USER.getValue())
.content(Arrays.asList(Collections.singletonMap("text", "你是誰?")))
.build();
MultiModalConversationParam param = MultiModalConversationParam.builder()
// 若沒有配置環境變數,請用阿里雲百鍊API Key將下行替換為: .apiKey("sk-xxx")
.apiKey(System.getenv("DASHSCOPE_API_KEY"))
// 模型列表:https://www.alibabacloud.com/help/model-studio/getting-started/models
.model("qwen3.8-max")
.messages(Arrays.asList(systemMsg, userMsg))
.build();
return conv.call(param);
}
public static void main(String[] args) {
try {
MultiModalConversationResult result = callWithMessage();
System.out.println(result.getOutput().getChoices().get(0).getMessage().getContent().get(0).get("text"));
} catch (ApiException | NoApiKeyException | InputRequiredException | UploadFileException e) {
System.err.println("錯誤資訊:"+e.getMessage());
System.out.println("請參考文檔:https://www.alibabacloud.com/help/model-studio/developer-reference/error-code");
}
System.exit(0);
}
}
運行後您將會看到對應的輸出結果:
我是阿里雲開發的一款超大規模語言模型,我叫千問。
curl
您可以通過OpenAI相容的HTTP方式或DashScope的HTTP方式來調用阿里雲百鍊平台上的模型。模型列表請參考:選擇模型。
說明若沒有配置環境變數,請用阿里雲百鍊API Key將:-H "Authorization: Bearer $DASHSCOPE_API_KEY" \ 換為:-H "Authorization: Bearer sk-xxx" \ 。
OpenAI相容-HTTP
程式碼範例中的URL以新加坡地區為例,調用時請將{WorkspaceId}替換為真實的業務空間ID。如果使用華北2(北京)地區的模型,需要將URL替換為https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/compatible-mode/v1/chat/completions。
您可以運行以下命令發送API請求:
Windows
curl -X POST "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1/chat/completions" ^
-H "Authorization: Bearer %DASHSCOPE_API_KEY%" ^
-H "Content-Type: application/json" ^
-d "{
\"model\": \"qwen3.8-max\",
\"messages\": [
{
\"role\": \"system\",
\"content\": \"You are a helpful assistant.\"
},
{
\"role\": \"user\",
\"content\": \"你是誰?\"
}
]
}"
Linux/macOS
curl -X POST https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1/chat/completions \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "qwen3.8-max",
"messages": [
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "你是誰?"
}
]
}'
發送API請求後,可以得到以下回複:
{
"choices": [
{
"message": {
"role": "assistant",
"content": "我是來自阿里雲的大規模語言模型,我叫千問。"
},
"finish_reason": "stop",
"index": 0,
"logprobs": null
}
],
"object": "chat.completion",
"usage": {
"prompt_tokens": 22,
"completion_tokens": 16,
"total_tokens": 38
},
"created": 1728353155,
"system_fingerprint": null,
"model": "qwen3.8-max",
"id": "chatcmpl-39799876-eda8-9527-9e14-2214d641cf9a"
}
DashScope-HTTP
程式碼範例中的URL以“新加坡”地區為例,調用時請將{WorkspaceId}替換為真實的業務空間ID:
- 如果使用“美國(維吉尼亞)”地區的模型,需要將URL替換為
https://{WorkspaceId}.us-east-1.maas.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation。 - 如果使用“華北2(北京)”地區的模型,需要將URL替換為
https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation,請將WorkspaceId替換為業務空間ID。 - 如果使用“日本(東京)”地區的模型,需要將URL替換為
https://{WorkspaceId}.ap-northeast-1.maas.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation,請將WorkspaceId替換為業務空間ID。
您可以運行以下命令發送API請求:
Windows
curl -X POST "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation" ^
-H "Authorization: Bearer %DASHSCOPE_API_KEY%" ^
-H "Content-Type: application/json" ^
-d "{
\"model\": \"qwen3.8-max\",
\"input\": {
\"messages\": [
{
\"role\": \"system\",
\"content\": [{\"text\": \"You are a helpful assistant.\"}]
},
{
\"role\": \"user\",
\"content\": [{\"text\": \"你是誰?\"}]
}
]
},
\"parameters\": {
\"result_format\": \"message\"
}
}"
Linux/macOS
curl -X POST https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "qwen3.8-max",
"input":{
"messages":[
{
"role": "system",
"content": [{"text": "You are a helpful assistant."}]
},
{
"role": "user",
"content": [{"text": "你是誰?"}]
}
]
},
"parameters": {
"result_format":"message"
}
}'
發送API請求後,可以得到以下回複:
{
"output": {
"choices": [
{
"finish_reason": "stop",
"message": {
"role": "assistant",
"content": "我是來自阿里雲的大規模語言模型,我叫千問。"
}
}
]
},
"usage": {
"total_tokens": 38,
"output_tokens": 16,
"input_tokens": 22
},
"request_id": "87f776d7-3c82-9d39-b238-d1ad38c9b6a9"
}
其它語言
調用大模型APIpackage main
import (
"bytes"
"encoding/json"
"fmt"
"io"
"log"
"net/http"
"os"
)
type Message struct {
Role string `json:"role"`
Content string `json:"content"`
}
type RequestBody struct {
Model string `json:"model"`
Messages []Message `json:"messages"`
}
func main() {
// 建立 HTTP 用戶端
client := &http.Client{}
// 構建請求體
requestBody := RequestBody{
// 模型列表:https://www.alibabacloud.com/help/model-studio/getting-started/models
Model: "qwen3.8-max",
Messages: []Message{
{
Role: "system",
Content: "You are a helpful assistant.",
},
{
Role: "user",
Content: "你是誰?",
},
},
}
jsonData, err := json.Marshal(requestBody)
if err != nil {
log.Fatal(err)
}
// 以下為新加坡地區URL,調用時請將{WorkspaceId}替換為真實的業務空間ID,各地區的URL不同。
req, err := http.NewRequest("POST", "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1/chat/completions", bytes.NewBuffer(jsonData))
if err != nil {
log.Fatal(err)
}
// 佈建要求頭
// 若沒有配置環境變數,請用阿里雲百鍊API Key將下行替換為:apiKey := "sk-xxx"
apiKey := os.Getenv("DASHSCOPE_API_KEY")
req.Header.Set("Authorization", "Bearer "+apiKey)
req.Header.Set("Content-Type", "application/json")
// 發送請求
resp, err := client.Do(req)
if err != nil {
log.Fatal(err)
}
defer resp.Body.Close()
// 讀取響應體
bodyText, err := io.ReadAll(resp.Body)
if err != nil {
log.Fatal(err)
}
// 列印響應內容
fmt.Printf("%s\n", bodyText)
}
<?php
// 以下為新加坡地區URL,調用時請將{WorkspaceId}替換為真實的業務空間ID,各地區的URL不同。
$url = 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1/chat/completions';
// 若沒有配置環境變數,請用阿里雲百鍊API Key將下行替換為: $apiKey = "sk-xxx";
$apiKey = getenv('DASHSCOPE_API_KEY');
// 佈建要求頭
$headers = [
'Authorization: Bearer '.$apiKey,
'Content-Type: application/json'
];
// 佈建要求體
$data = [
"model" => "qwen3.8-max",
"messages" => [
[
"role" => "system",
"content" => "You are a helpful assistant."
],
[
"role" => "user",
"content" => "你是誰?"
]
]
];
// 初始化cURL會話
$ch = curl_init();
// 設定cURL選項
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
// 執行cURL會話
$response = curl_exec($ch);
// 檢查是否有錯誤發生
if (curl_errno($ch)) {
echo 'Curl error: ' . curl_error($ch);
}
// 關閉cURL資源
curl_close($ch);
// 輸出響應結果
echo $response;
?>
using System.Net.Http.Headers;
using System.Text;
class Program
{
private static readonly HttpClient httpClient = new HttpClient();
static async Task Main(string[] args)
{
// 若沒有配置環境變數,請用阿里雲百鍊API Key將下行替換為: string? apiKey = "sk-xxx";
string? apiKey = Environment.GetEnvironmentVariable("DASHSCOPE_API_KEY");
if (string.IsNullOrEmpty(apiKey))
{
Console.WriteLine("API Key 未設定。請確保環境變數 'DASHSCOPE_API_KEY' 已設定。");
return;
}
// 以下為新加坡地區URL,調用時請將{WorkspaceId}替換為真實的業務空間ID,各地區的URL不同。
string url = "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1/chat/completions";
// 模型列表:https://www.alibabacloud.com/help/model-studio/getting-started/models
string jsonContent = @"{
""model"": ""qwen3.8-max"",
""messages"": [
{
""role"": ""system"",
""content"": ""You are a helpful assistant.""
},
{
""role"": ""user"",
""content"": ""你是誰?""
}
]
}";
// 發送請求並擷取響應
string result = await SendPostRequestAsync(url, jsonContent, apiKey);
// 輸出結果
Console.WriteLine(result);
}
private static async Task<string> SendPostRequestAsync(string url, string jsonContent, string apiKey)
{
using (var content = new StringContent(jsonContent, Encoding.UTF8, "application/json"))
{
// 佈建要求頭
httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", apiKey);
httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
// 發送請求並擷取響應
HttpResponseMessage response = await httpClient.PostAsync(url, content);
// 處理響應
if (response.IsSuccessStatusCode)
{
return await response.Content.ReadAsStringAsync();
}
else
{
return $"請求失敗: {response.StatusCode}";
}
}
}
}
API參考
常見問題
調用大模型API後報錯Model.AccessDenied,如何處理?
A:該報錯是因為您使用子業務空間的API Key,子業務空間無法訪問預設業務空間的應用或模型。使用子空間API Key需由主帳號管理員為對應子空間開通模型授權(如本文使用qwen3.8-max模型)。詳細操作步驟請參見設定模型調用許可權。
下一步
查看更多模型 | 範例程式碼以 qwen3.8-max 模型為例,阿里雲百鍊還支援其他千問模型,支援的模型以及對應的API參考文檔請參見選擇模型。 |
瞭解進階用法 | 範例程式碼僅完成了簡單問答,如果您想瞭解千問 API 的更多用法,如流式輸出、結構化輸出、Function Calling等,請參見概述目錄。 |
線上體驗大模型 | |
調用自訓練模型 | 如果您在百鍊平台部署了自訓練模型,調用時需使用模型部署頁面產生的模型 code 作為 |