阿里雲百鍊支援通過API調用大模型,涵蓋OpenAI相容介面、DashScope SDK等接入方式。
本文以千問為例,引導您完成大模型API調用。您將瞭解到:
運行成功後您將會看到輸出結果:
運行後您將會看到對應的輸出結果:
調用大模型API後報錯
A:該報錯是因為您使用子業務空間的API Key,子業務空間無法訪問預設業務空間的應用或模型。使用子空間API Key需由主帳號管理員為對應子空間開通模型授權(如本文使用
- 如何擷取 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系統
- macOS系統
- Windows系統
- 添加永久性環境變數
- 添加臨時性環境變數
如果您希望API Key環境變數在目前使用者的所有新會話中生效,可以添加永久性環境變數。也可以手動修改
- 執行以下命令來將環境變數設定追加到
~/.bashrc檔案中。
Copy
# 用您的阿里雲百鍊API Key代替YOUR_DASHSCOPE_API_KEY
echo "export DASHSCOPE_API_KEY='YOUR_DASHSCOPE_API_KEY'" >> ~/.bashrc
~/.bashrc檔案。手動修改
手動修改
執行以下命令,開啟在設定檔中添加以下內容。在nano編輯器中,按Ctrl + X,接著按Y,再按Enter以儲存並關閉檔案。
~/.bashrc檔案。Copy
nano ~/.bashrc
Copy
# 用您的阿里雲百鍊API Key代替YOUR_DASHSCOPE_API_KEY
export DASHSCOPE_API_KEY="YOUR_DASHSCOPE_API_KEY"
- 執行以下命令,使變更生效。
Copy
source ~/.bashrc
- 重新開啟一個終端視窗,運行以下命令檢查環境變數是否生效。
Copy
echo $DASHSCOPE_API_KEY
如果您僅希望在當前會話中使用該環境變數,可以添加臨時性環境變數。
- 執行以下命令。
Copy
# 用您的阿里雲百鍊API Key代替YOUR_DASHSCOPE_API_KEY
export DASHSCOPE_API_KEY="YOUR_DASHSCOPE_API_KEY"
- 執行以下命令,驗證該環境變數是否生效。
Copy
echo $DASHSCOPE_API_KEY
- 添加永久性環境變數
- 添加臨時性環境變數
如果您希望API Key環境變數在目前使用者的所有新會話中生效,可以添加永久性環境變數。
- 在終端中執行以下命令,查看預設Shell類型。
Copy
echo $SHELL
-
根據預設Shell類型進行操作。
- Zsh
- Bash
- 執行以下命令來將環境變數設定追加到
~/.zshrc檔案中。
也可以手動修改Copy# 用您的阿里雲百鍊API Key代替YOUR_DASHSCOPE_API_KEY echo "export DASHSCOPE_API_KEY='YOUR_DASHSCOPE_API_KEY'" >> ~/.zshrc~/.zshrc檔案。手動修改
執行以下命令,開啟Shell設定檔。在設定檔中添加以下內容。Copynano ~/.zshrc在nano編輯器中,按Ctrl + X,接著按Y,再按Enter以儲存並關閉檔案。Copy# 用您的阿里雲百鍊API Key代替YOUR_DASHSCOPE_API_KEY export DASHSCOPE_API_KEY="YOUR_DASHSCOPE_API_KEY"- 執行以下命令,使變更生效。
Copysource ~/.zshrc- 重新開啟一個終端視窗,運行以下命令檢查環境變數是否生效。
Copyecho $DASHSCOPE_API_KEY- 執行以下命令來將環境變數設定追加到
~/.bash_profile檔案中。
也可以手動修改Copy# 用您的阿里雲百鍊API Key代替YOUR_DASHSCOPE_API_KEY echo "export DASHSCOPE_API_KEY='YOUR_DASHSCOPE_API_KEY'" >> ~/.bash_profile~/.bash_profile檔案。手動修改
執行以下命令,開啟Shell設定檔。在設定檔中添加以下內容。Copynano ~/.bash_profile在nano編輯器中,按Ctrl + X,接著按Y,再按Enter以儲存並關閉檔案。Copy# 用您的阿里雲百鍊API Key代替YOUR_DASHSCOPE_API_KEY export DASHSCOPE_API_KEY="YOUR_DASHSCOPE_API_KEY"- 執行以下命令,使變更生效。
Copysource ~/.bash_profile- 重新開啟一個終端視窗,運行以下命令檢查環境變數是否生效。
Copyecho $DASHSCOPE_API_KEY
如果您僅希望在當前會話中使用該環境變數,可以添加臨時性環境變數。
以下命令適用於 Zsh 和 Bash。
- 執行以下命令。
Copy
# 用您的阿里雲百鍊API Key代替YOUR_DASHSCOPE_API_KEY
export DASHSCOPE_API_KEY="YOUR_DASHSCOPE_API_KEY"
- 執行以下命令,驗證該環境變數是否生效。
Copy
echo $DASHSCOPE_API_KEY
在Windows系統中,您可以通過系統屬性、CMD或PowerShell配置環境變數。
- 系統屬性
- CMD
- PowerShell
- 此方式配置的環境變數永久生效。
- 修改系統內容變數需具備管理員權限。
- 配置環境變數後不會立即影響已經開啟的命令視窗、IDE或其他正在啟動並執行應用程式。您需要重新啟動這些程式或者開啟新的命令列使環境變數生效。
-
在Windows系統案頭中按
Win+Q鍵,在搜尋方塊中搜尋編輯系統內容變數,單擊開啟系統屬性介面。 -
在系統屬性視窗,單擊环境变量,然後在系統變數地區下單擊新建,变量名填入
DASHSCOPE_API_KEY,變數值填入您的DashScope API Key。 - 依次單擊三個視窗的确定,關閉系統屬性配置頁面,完成環境變數配置。
-
開啟CMD(命令提示字元)視窗或Windows PowerShell視窗,執行如下命令檢查環境變數是否生效。
- CMD查詢命令:
Copy
echo %DASHSCOPE_API_KEY%
Copy
Microsoft Windows [版本 10.0.19045.5371]
(c) Microsoft Corporation。著作權所有,並保留一切權利。
C:\Windows\system32>echo %DASHSCOPE_API_KEY%
sk-ee166797fe40xxx
C:\Windows\system32>
- Windows PowerShell查詢命令:
Copy
echo $env:DASHSCOPE_API_KEY
Copy
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>
- 添加永久性環境變數
- 添加臨時性環境變數
如果您希望API Key環境變數在目前使用者的所有新會話中生效,可以按如下操作。
- 在CMD中運行以下命令。
Copy
# 用您的阿里雲百鍊API Key代替YOUR_DASHSCOPE_API_KEY
setx DASHSCOPE_API_KEY "YOUR_DASHSCOPE_API_KEY"
- 開啟一個新的CMD視窗。
- 在新的CMD視窗運行以下命令,檢查環境變數是否生效。
Copy
echo %DASHSCOPE_API_KEY%
如果您僅希望在當前會話中使用該環境變數,可以在CMD中運行以下命令。您可以在當前會話運行以下命令檢查環境變數是否生效。
Copy
REM 用您的阿里雲百鍊API Key代替YOUR_DASHSCOPE_API_KEY
set DASHSCOPE_API_KEY=YOUR_DASHSCOPE_API_KEY
Copy
echo %DASHSCOPE_API_KEY%
- 添加永久性環境變數
- 添加臨時性環境變數
如果您希望API Key環境變數在目前使用者的所有新會話中生效,可以按如下操作。
- 在PowerShell中運行以下命令。
Copy
# 用您的阿里雲百鍊API Key代替YOUR_DASHSCOPE_API_KEY
[Environment]::SetEnvironmentVariable("DASHSCOPE_API_KEY", "YOUR_DASHSCOPE_API_KEY", [EnvironmentVariableTarget]::User)
- 開啟一個新的PowerShell視窗。
- 在新的PowerShell視窗運行以下命令,檢查環境變數是否生效。
Copy
echo $env:DASHSCOPE_API_KEY
如果您僅希望在當前會話中使用該環境變數,可以在PowerShell中運行以下命令。您可以在當前會話運行以下命令檢查環境變數是否生效。
Copy
# 用您的阿里雲百鍊API Key代替YOUR_DASHSCOPE_API_KEY
$env:DASHSCOPE_API_KEY = "YOUR_DASHSCOPE_API_KEY"
Copy
echo $env:DASHSCOPE_API_KEY
選擇開發語言
選擇您熟悉的語言或工具,用於調用大模型API。- Python
- Node.js
- Java
- curl
- 其它語言
步驟 1:配置Python環境
檢查您的Python版本
檢查您的Python版本
您的Python需要為3.8或以上版本,請您參考安裝Python進行安裝。您可以在終端中輸入以下命令查看當前計算環境是否安裝了Python和pip:以Windows的CMD為例:如果返回結果如下,則使用
Copy
python -V
pip --version
Copy
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系統
- Linux、macOS系統
- 請確認是否已參考安裝Python,在您的計算環境中安裝Python,並將python.exe添加至環境變數PATH中。 安裝 Python 3.13.2 時,在安裝嚮導底部勾選Add python.exe to PATH,將 Python 添加到系統內容變數,然後單擊Install Now完成安裝。
- 如果已安裝了Python並添加了環境變數,仍報此錯,請關閉當前終端,重新開啟一個新的終端視窗,再進行嘗試。
- 請確認是否已參考安裝Python,在您的計算環境中安裝的Python。
-
如果已安裝Python後,仍報此錯,請輸入
which python pip命令查詢系統中是否有python、pip。- 如果返回如下結果,請關閉當前串連終端,重新開啟一個新的終端視窗,再進行嘗試。
Copy
/usr/bin/python
/usr/bin/pip
- 如果返回如下結果,則再次輸入
which python3 pip3查詢。
Copy
/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查詢版本。Copy
/usr/bin/python3
/usr/bin/pip3
配置虛擬環境(可選)
配置虛擬環境(可選)
如果您的Python已安裝完成,可以建立一個虛擬環境來安裝OpenAI Python SDK或DashScope Python SDK,這可以協助您避免與其它專案發生依賴衝突。如果您使用macOS或者Linux系統,請運行以下命令來啟用虛擬環境:
- 建立虛擬環境 您可以運行以下命令,建立一個命名為.venv的虛擬環境:
Copy
# 如果運行失敗,您可以將python替換成python3再運行
python -m venv .venv
- 啟用虛擬環境 若您使用Windows系統,請運行以下命令來啟用虛擬環境:
Copy
.venv\Scripts\activate
Copy
source .venv/bin/activate
安裝 OpenAI Python SDK或DashScope Python SDK
安裝 OpenAI Python SDK或DashScope Python SDK
您可以通過OpenAI的Python SDK或DashScope的Python SDK來調用阿里雲百鍊平台上的模型。
- 安裝 OpenAI Python SDK
- 安裝 DashScope Python SDK
通過運行以下命令安裝或升級 OpenAI Python SDK:當終端出現
Copy
# 如果運行失敗,您可以將pip替換成pip3再運行
pip install -U openai
Successfully installed ... openai-x.x.x的提示後,表示您已經成功安裝OpenAI Python SDK。通過運行以下命令安裝或升級 DashScope Python SDK:當終端出現
Copy
# 如果運行失敗,您可以將pip替換成pip3再運行
pip install -U dashscope
Successfully installed ... dashscope-x.x.x的提示後,表示您已經成功安裝DashScope Python SDK。步驟 2:調用大模型API
- OpenAI Python SDK
- DashScope Python SDK
如果您安裝完成了Python以及OpenAI的Python SDK,可以參考以下步驟發送您的API請求。使用美國(維吉尼亞)地區時,接入網域名稱為
- 建立一個檔案,命名為
hello_qwen.py。 - 將以下代碼複製到
hello_qwen.py中並儲存。
Copy
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。Copy
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,則需在檔案名稱前指定具體檔案路徑。
Copy
我是阿里雲開發的一款超大規模語言模型,我叫千問。
如果您安裝完成了Python以及DashScope的Python SDK,可以參考以下步驟發送您的API請求。
- 建立一個檔案,命名為
hello_qwen.py。 - 將以下代碼複製到
hello_qwen.py中並儲存。
Copy
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檔案所在目錄執行,如果想要在任意位置執行,請在檔案名稱前指定具體檔案路徑。
Copy
我是來自阿里雲的大規模語言模型,我叫千問。
步驟 1:配置Node.js環境
檢查Node.js安裝狀態
檢查Node.js安裝狀態
您可以在終端中輸入以下命令查看當前計算環境是否安裝了Node.js和npm:以Windows的CMD為例:這將列印出您當前Node.js 版本。如果您的環境中沒有Node.js,請訪問Node.js官網進行下載。
Copy
node -v
npm -v
Copy
C:\Users\Administrator>node -v
v22.14.0
C:\Users\Administrator>npm -v
10.9.2
安裝模型調用SDK
安裝模型調用SDK
您可以在終端運行以下命令:當終端出現
Copy
npm install --save openai
# 或者
yarn add openai
如果安裝失敗,您可以通過配置鏡像源的方法來完成安裝,如:配置鏡像源後,您可以重新運行安裝SDK的命令。
Copy
npm config set registry https://registry.npmmirror.com/
added xx package in xxs的提示後,表示您已經成功安裝OpenAI SDK。您可以使用npm list openai查詢具體版本資訊。步驟 2:調用大模型API
- 建立一個
hello_qwen.mjs檔案。 - 將以下代碼複製到檔案中。
Copy
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請求:
Copy
node hello_qwen.mjs
- 本樣本使用的運行命令需在
hello_qwen.mjs檔案所在目錄執行,如果想要在任意位置執行,請在檔案名稱前指定具體檔案路徑。 - 請確保已在
hello_qwen.mjs檔案所在目錄中安裝了SDK,如果SDK與檔案不在同一目錄下,則會報錯Cannot find package 'openai' imported from xxx。
Copy
我是來自阿里雲的語言模型,我叫千問。
步驟 1:配置Java環境
檢查您的Java版本
檢查您的Java版本
您可以在終端運行以下命令:以Windows的CMD為例:為了使用DashScope Java SDK,您的Java需要在Java 8或以上版本。您可以查看列印資訊中的第一行確認Java版本,例如列印資訊:
Copy
java -version
# (可選)如果使用maven管理和構建java專案,還需確保maven已正確安裝到您的開發環境中
mvn --version
Copy
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
openjdk version "16.0.1" 2021-04-20表明當前Java版本為Java 16。如果您當前計算環境沒有Java,或版本低於Java 8,請前往Java下載進行下載與安裝。安裝模型調用SDK
安裝模型調用SDK
如果您的環境中已安裝Java,請安裝DashScope Java SDK。SDK的版本請參考:DashScope Java SDK。執行以下命令來添加 Java SDK 依賴,並將 以Windows的IDEA整合式開發環境為例:build.gradle 完整檔案樣本:執行構建命令後,終端輸出結果:
the-latest-version 替換為最新的版本號碼。- XML
- Gradle
- 開啟您的Maven專案的
pom.xml檔案。 - 在
<dependencies>標籤內添加以下依賴資訊。
Copy
<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到您的專案中。
Copy
<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>
Copy
~\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專案的
build.gradle檔案。 - 在
dependencies塊內添加以下依賴資訊。
Copy
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到您的專案中。
Copy
./gradlew build --refresh-dependencies
Copy
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()
}
Copy
~/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。Copy
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);
}
}
Copy
我是阿里雲開發的一款超大規模語言模型,我叫千問。
您可以通過OpenAI相容的HTTP方式或DashScope的HTTP方式來調用阿里雲百鍊平台上的模型。模型列表請參考:選擇模型。
若沒有配置環境變數,請用阿里雲百鍊API Key將:-H "Authorization: Bearer $DASHSCOPE_API_KEY" \ 換為:-H "Authorization: Bearer sk-xxx" \ 。
- OpenAI相容-HTTP
- DashScope-HTTP
程式碼範例中的URL以新加坡地區為例,調用時請將{WorkspaceId}替換為真實的業務空間ID。如果使用華北2(北京)地區的模型,需要將URL替換為
發送API請求後,可以得到以下回複:
https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/compatible-mode/v1/chat/completions。您可以運行以下命令發送API請求:Windows
Windows
Copy
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
Linux/macOS
Copy
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": "你是誰?"
}
]
}'
Copy
{
"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"
}
程式碼範例中的URL以“新加坡”地區為例,調用時請將{WorkspaceId}替換為真實的業務空間ID:
發送API請求後,可以得到以下回複:
- 如果使用“美國(維吉尼亞)”地區的模型,需要將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。
Windows
Windows
Copy
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
Linux/macOS
Copy
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"
}
}'
Copy
{
"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"
}
調用大模型API
Copy
package 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)
}
API參考
常見問題
調用大模型API後報錯Model.AccessDenied,如何處理?
A:該報錯是因為您使用子業務空間的API Key,子業務空間無法訪問預設業務空間的應用或模型。使用子空間API Key需由主帳號管理員為對應子空間開通模型授權(如本文使用qwen3.8-max模型)。詳細操作步驟請參見設定模型調用許可權。
下一步
查看更多模型 | 範例程式碼以 qwen3.8-max 模型為例,阿里雲百鍊還支援其他千問模型,支援的模型以及對應的API參考文檔請參見選擇模型。 |
瞭解進階用法 | 範例程式碼僅完成了簡單問答,如果您想瞭解千問 API 的更多用法,如流式輸出、結構化輸出、Function Calling等,請參見概述目錄。 |
線上體驗大模型 | |
調用自訓練模型 | 如果您在百鍊平台部署了自訓練模型,調用時需使用模型部署頁面產生的模型 code 作為 |