本文主要介紹如何調用指定的業務空間的模型。
通常情況下,通過主賬號的API Key調用模型中心的模型時,不需要傳遞業務空間ID。只有當使用子賬號的API Key調用模型時,需要通過某個業務空間進行模型的調用,才需要傳遞業務空間ID。
注:通過子賬號在默認業務空間下生成的API Key,可以訪問默認業務空間,也可以調用默認業務空間的模型和應用。
前提條件
已開通百煉服務并獲取API Key: 獲取API Key。
已創建業務空間并獲取業務空間ID:如何使用業務空間。
已授權子賬號業務空間權限:RAM子賬號使用方式和授權操作。
已授權子業務空間的模型調用權限:授權子業務空間模型調用。
調用示例
SDK調用示例
以下示例展示了調用RAG檢索增強應用進行企業知識庫問答的代碼。
說明
需要使用您的API Key替換示例中的YOUR_API_KEY,使用業務空間ID替換示例中的YOUR_WORKSPACE,代碼才能正常運行。請參考獲取業務空間 ID獲取業務空間ID。
python sdk version: dashscope>=1.17.0
java sdk version: >=2.12.0
設置API Key
export DASHSCOPE_API_KEY=YOUR_API_KEY
代碼示例
以下示例通過代碼調用子空間的模型。
import os
import dashscope
messages = [
{'role': 'system', 'content': 'You are a helpful assistant.'},
{'role': 'user', 'content': '你是誰?'}
]
response = dashscope.Generation.call(
# 若沒有配置環境變量,請用百煉API Key將下行替換為:api_key="sk-xxx",
api_key=os.getenv('DASHSCOPE_API_KEY'),
model="qwen-plus",
messages=messages,
result_format='message',
workspace='YOUR_WORKSPACE'
)
print(response)
// 建議dashscope SDK的版本 >= 2.12.0
import java.util.Arrays;
import java.lang.System;
import com.alibaba.dashscope.aigc.generation.Generation;
import com.alibaba.dashscope.aigc.generation.GenerationParam;
import com.alibaba.dashscope.aigc.generation.GenerationResult;
import com.alibaba.dashscope.common.Message;
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.utils.JsonUtils;
public class Main {
public static GenerationResult callWithMessage() throws ApiException, NoApiKeyException, InputRequiredException {
Generation gen = new Generation();
Message systemMsg = Message.builder()
.role(Role.SYSTEM.getValue())
.content("You are a helpful assistant.")
.build();
Message userMsg = Message.builder()
.role(Role.USER.getValue())
.content("你是誰?")
.build();
GenerationParam param = GenerationParam.builder()
// 若沒有配置環境變量,請用百煉API Key將下行替換為:.apiKey("sk-xxx")
.apiKey(System.getenv("DASHSCOPE_API_KEY"))
.model("qwen-plus")
.workspace("YOUR_WORKSPACE")
.messages(Arrays.asList(systemMsg, userMsg))
.resultFormat(GenerationParam.ResultFormat.MESSAGE)
.build();
return gen.call(param);
}
public static void main(String[] args) {
try {
GenerationResult result = callWithMessage();
System.out.println(JsonUtils.toJson(result));
} catch (ApiException | NoApiKeyException | InputRequiredException e) {
// 使用日志框架記錄異常信息
System.err.println("An error occurred while calling the generation service: " + e.getMessage());
}
System.exit(0);
}
}
API請求示例(SSE關閉)
以下示例展示通過CURL命令來調用子空間的模型的腳本。
需要使用您的API Key替換示例中的YOUR_API_KEY,使用業務空間ID替換示例中的YOUR_WORKSPACE,代碼才能正常運行。請參考獲取業務空間 ID獲取業務空間ID。
curl --location 'https://dashscope.aliyuncs.com/api/v1/services/aigc/text-generation/generation' \
--header 'Authorization: Bearer {YOUR_API_KEY}' \
--header 'Content-Type: application/json' \
--header 'X-DashScope-WorkSpace: {YOUR_WORKSPACE}' \
--data '{
"model": "qwen-turbo",
"input":{
"messages":[
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "如何做炒西紅柿雞蛋?"
}
]
},
"parameters": {
}
}'
API請求示例(SSE開啟)
以下示例展示通過CURL命令來調用子空間的模型的腳本。
需要使用您的API Key替換示例中的YOUR_API_KEY,使用業務空間ID替換示例中的YOUR_WORKSPACE,代碼才能正常運行。請參考獲取業務空間 ID獲取業務空間ID。
curl --location 'https://dashscope.aliyuncs.com/api/v1/services/aigc/text-generation/generation' \
--header 'Authorization: Bearer {YOUR_API_KEY}' \
--header 'Content-Type: application/json' \
--header 'X-DashScope-WorkSpace: {YOUR_WORKSPACE}' \
--header 'X-DashScope-SSE: enable' \
--data '{
"model": "qwen-turbo",
"input":{
"messages":[
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "如何做炒西紅柿雞蛋?"
}
]
},
"parameters": {
}
}'