请求体 | 单轮对话Python请求示例 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='YOUR_APP_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)
Java请求示例 // 建议dashscope SDK的版本 >= 2.12.0
import com.alibaba.dashscope.app.*;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.InputRequiredException;
import com.alibaba.dashscope.exception.NoApiKeyException;
public class Main {
static {
Constants.baseHttpApiUrl="https://dashscope-intl.aliyuncs.com/api/v1";
}
public static void appCall()
throws ApiException, NoApiKeyException, InputRequiredException {
ApplicationParam param = ApplicationParam.builder()
// 若没有配置环境变量,可用百炼API Key将下行替换为:.apiKey("sk-xxx")。但不建议在生产环境中直接将API Key硬编码到代码中,以减少API Key泄露风险。
.apiKey(System.getenv("DASHSCOPE_API_KEY"))
.appId("YOUR_APP_ID")
.prompt("你是谁?")
.build();
Application application = new Application();
ApplicationResult result = application.call(param);
System.out.printf("text: %s\n",
result.getOutput().getText());
}
public static void main(String[] args) {
try {
appCall();
} catch (ApiException | NoApiKeyException | InputRequiredException e) {
System.err.println("message:"+e.getMessage());
System.out.println("请参考文档:https://www.alibabacloud.com/help/zh/model-studio/developer-reference/error-code");
}
System.exit(0);
}
}
HTTP请求示例 curl -X POST https://dashscope-intl.aliyuncs.com/api/v1/apps/YOUR_APP_ID/completion \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
"input": {
"prompt": "你是谁?"
},
"parameters": {},
"debug": {}
}'
YOUR_APP_ID替换为实际的应用 ID。 多轮对话Python请求示例 import os
from http import HTTPStatus
from dashscope import Application
import dashscope
dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
def call_with_session():
response = Application.call(
# 若没有配置环境变量,可用百炼API Key将下行替换为:api_key="sk-xxx"。但不建议在生产环境中直接将API Key硬编码到代码中,以减少API Key泄露风险。
api_key=os.getenv("DASHSCOPE_API_KEY"),
app_id='YOUR_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')
return response
responseNext = Application.call(
# 若没有配置环境变量,可用百炼API Key将下行替换为:api_key="sk-xxx"。但不建议在生产环境中直接将API Key硬编码到代码中,以减少API Key泄露风险。
api_key=os.getenv("DASHSCOPE_API_KEY"),
app_id='YOUR_APP_ID', # 替换为实际的应用 ID
prompt='你有什么技能?',
session_id=response.output.session_id) # 上一轮response的session_id
if responseNext.status_code != HTTPStatus.OK:
print(f'request_id={responseNext.request_id}')
print(f'code={responseNext.status_code}')
print(f'message={responseNext.message}')
print(f'请参考文档:https://www.alibabacloud.com/help/zh/model-studio/developer-reference/error-code')
else:
print('%s\n session_id=%s\n' % (responseNext.output.text, responseNext.output.session_id))
# print('%s\n' % (response.usage))
if __name__ == '__main__':
call_with_session()
Java请求示例 import com.alibaba.dashscope.app.*;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.InputRequiredException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import java.util.Arrays;
import java.util.List;
public class Main {
static {
Constants.baseHttpApiUrl="https://dashscope-intl.aliyuncs.com/api/v1";
}
public static void callWithSession()
throws ApiException, NoApiKeyException, InputRequiredException {
ApplicationParam param = ApplicationParam.builder()
// 若没有配置环境变量,可用百炼API Key将下行替换为:.apiKey("sk-xxx")。但不建议在生产环境中直接将API Key硬编码到代码中,以减少API Key泄露风险。
.apiKey(System.getenv("DASHSCOPE_API_KEY"))
// 替换为实际的应用 ID
.appId("YOUR_APP_ID")
.prompt("你是谁?")
.build();
Application application = new Application();
ApplicationResult result = application.call(param);
param.setSessionId(result.getOutput().getSessionId());
param.setPrompt("你有什么技能?");
result = application.call(param);
System.out.printf("%s\n, session_id: %s\n",
result.getOutput().getText(), result.getOutput().getSessionId());
}
public static void main(String[] args) {
try {
callWithSession();
} catch (ApiException | NoApiKeyException | InputRequiredException e) {
System.out.printf("Exception: %s", e.getMessage());
System.out.println("请参考文档:https://www.alibabacloud.com/help/zh/model-studio/developer-reference/error-code");
}
System.exit(0);
}
}
HTTPcurl请求示例(上一轮对话) curl -X POST https://dashscope-intl.aliyuncs.com/api/v1/apps/YOUR_APP_ID/completion \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
"input": {
"prompt": "你是谁?"
},
"parameters": {},
"debug": {}
}'
请求示例(下一轮对话) curl -X POST https://dashscope-intl.aliyuncs.com/api/v1/apps/YOUR_APP_ID/completion \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
"input": {
"prompt": "你有什么技能?",
"session_id":"4f8ef7233dc641aba496cb201fa59f8c"
},
"parameters": {},
"debug": {}
}'
YOUR_APP_ID替换为实际的应用 ID。下一轮对话的输入参数session_id 字段值替换为实际上一轮对话返回的session_id值。 目前仅智能体应用和对话型工作流应用支持多轮对话功能。 自定义参数透传Python请求示例 import os
from http import HTTPStatus
# 建议dashscope SDK 的版本 >= 1.14.0
from dashscope import Application
import dashscope
dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
biz_params = {
# 智能体应用的自定义插件输入参数透传,自定义的插件ID替换{your_plugin_code}
"user_defined_params": {
"{your_plugin_code}": {
"article_index": 2}}}
response = Application.call(
# 若没有配置环境变量,可用百炼API Key将下行替换为:api_key="sk-xxx"。但不建议在生产环境中直接将API Key硬编码到代码中,以减少API Key泄露风险。
api_key=os.getenv("DASHSCOPE_API_KEY"),
app_id='YOUR_APP_ID',
prompt='寝室公约内容',
biz_params=biz_params)
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('%s\n' % (response.output.text)) # 处理只输出文本text
# print('%s\n' % (response.usage))
Java请求示例 import com.alibaba.dashscope.app.*;
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 {
static {
Constants.baseHttpApiUrl="https://dashscope-intl.aliyuncs.com/api/v1";
}
public static void appCall() throws NoApiKeyException, InputRequiredException {
String bizParams =
// 智能体应用的自定义插件输入参数透传,自定义的插件ID替换{your_plugin_code}
"{\"user_defined_params\":{\"{your_plugin_code}\":{\"article_index\":2}}}";
ApplicationParam param = ApplicationParam.builder()
// 若没有配置环境变量,可用百炼API Key将下行替换为:.apiKey("sk-xxx")。但不建议在生产环境中直接将API Key硬编码到代码中,以减少API Key泄露风险。
.apiKey(System.getenv("DASHSCOPE_API_KEY"))
.appId("YOUR_APP_ID")
.prompt("寝室公约内容")
.bizParams(JsonUtils.parse(bizParams))
.build();
Application application = new Application();
ApplicationResult result = application.call(param);
System.out.printf("%s\n",
result.getOutput().getText());
}
public static void main(String[] args) {
try {
appCall();
} catch (ApiException | NoApiKeyException | InputRequiredException e) {
System.out.printf("Exception: %s", e.getMessage());
System.out.println("请参考文档:https://www.alibabacloud.com/help/zh/model-studio/developer-reference/error-code");
}
System.exit(0);
}
}
HTTPcurl请求示例 curl -X POST https://dashscope-intl.aliyuncs.com/api/v1/apps/YOUR_APP_ID/completion \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
"input": {
"prompt": "寝室公约内容",
"biz_params":
{
"user_defined_params":
{
"{your_plugin_code}":
{
"article_index": 2
}
}
}
},
"parameters": {},
"debug":{}
}'
YOUR_APP_ID替换为实际的应用 ID。 流式输出Python请求示例 import os
from http import HTTPStatus
from dashscope import Application
import dashscope
dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
responses = Application.call(
# 若没有配置环境变量,可用百炼API Key将下行替换为:api_key="sk-xxx"。但不建议在生产环境中直接将API Key硬编码到代码中,以减少API Key泄露风险。
api_key=os.getenv("DASHSCOPE_API_KEY"),
app_id='YOUR_APP_ID',
prompt='你是谁?',
stream=True, # 流式输出
incremental_output=True) # 增量输出
for response in responses:
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(f'{response.output.text}\n') # 处理只输出文本text
Java请求示例 // 建议dashscope SDK的版本 >= 2.15.0
import com.alibaba.dashscope.app.*;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.InputRequiredException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import io.reactivex.Flowable;// 流式输出
// 智能体应用调用实现流式输出结果
public class Main {
static {
Constants.baseHttpApiUrl="https://dashscope-intl.aliyuncs.com/api/v1";
}
public static void streamCall() throws NoApiKeyException, InputRequiredException {
ApplicationParam param = ApplicationParam.builder()
// 若没有配置环境变量,可用百炼API Key将下行替换为:.apiKey("sk-xxx")。但不建议在生产环境中直接将API Key硬编码到代码中,以减少API Key泄露风险。
.apiKey(System.getenv("DASHSCOPE_API_KEY"))
// 替换为实际的应用 ID
.appId("YOUR_APP_ID")
.prompt("你是谁?")
// 增量输出
.incrementalOutput(true)
.build();
Application application = new Application();
// .streamCall():流式输出内容
Flowable<ApplicationResult> result = application.streamCall(param);
result.blockingForEach(data -> {
System.out.printf("%s\n",
data.getOutput().getText());
});
}
public static void main(String[] args) {
try {
streamCall();
} catch (ApiException | NoApiKeyException | InputRequiredException e) {
System.out.printf("Exception: %s", e.getMessage());
System.out.println("请参考文档:https://www.alibabacloud.com/help/zh/model-studio/developer-reference/error-code");
}
System.exit(0);
}
}
HTTPcurl请求示例 curl -X POST https://dashscope-intl.aliyuncs.com/api/v1/apps/YOUR_APP_ID/completion \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header 'Content-Type: application/json' \
--header 'X-DashScope-SSE: enable' \
--data '{
"input": {
"prompt": "你是谁?"
},
"parameters": {
"incremental_output":true
},
"debug": {}
}'
YOUR_APP_ID替换为实际的应用 ID。 知识库过滤curl请求示例 curl -X POST https://dashscope-intl.aliyuncs.com/api/v1/apps/{YOUR_APP_ID}/completion \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
"input": {
"prompt": "请帮我推荐一款3000元以下的手机"
},
"parameters": {
"rag_options" : {
"pipeline_ids":["YOUR_PIPELINE_ID1"]}
},
"debug": {}
}'
YOUR_APP_ID替换为实际的应用 ID,YOUR_PIPELINE_ID1替换为指定的知识库ID。 |
app_id string 必选 应用的标识。在我的应用页面的应用卡片上可以获取应用ID。 Java SDK中为appId,通过HTTP调用时,请将 app_id 放入 URL 中。 |
|
prompt string 必选 输入当前期望应用执行的指令prompt ,用来指导应用生成回复。 暂不支持传入文件。如果应用使用的是Qwen-Long模型,应用调用方法与其他模型一致。 通过HTTP调用时,请将 prompt 放入 input 对象中。 |
session_id string 可选 历史对话的唯一标识。如果您需要进行多轮对话,请将上一轮对话返回的session_id 作为下一轮对话的参数。当传入session_id 后,将在云端存储对话历史,调用应用会自动携带存储的对话历史。 目前仅智能体应用和对话型工作流应用支持多轮对话功能。 Java SDK中为setSessionId。通过HTTP调用时,请将 session_id 放入 input 对象中。 |
workspace string 可选 业务空间标识。调用子业务空间的应用时需传递workspace 标识,调用默认业务空间的应用时无需传递workspace 。 在子业务空间里,点击我的应用页面的应用卡片上的调用,即可在应用API代码中获取子业务空间的workspace 标识,具体请参考获取Workspace ID。 通过HTTP调用时,请指定Header中的 X-DashScope-WorkSpace。 |
stream boolean 可选 是否流式输出回复。参数值: Java SDK中为streamCall。通过HTTP调用时,请指定Header中的 X-DashScope-SSE 为 enable。 |
incremental_output boolean 可选 在流式输出模式下是否开启增量输出。参数值: false(默认值):每次输出当前已经生成的整个序列,最终输出为完整结果。 I
I like
I like apple
I like apple.
true:增量输出,即后续输出内容不包含已输出的内容。您需要实时地逐个读取这些片段以获得完整的结果。 I
like
apple
.
Java SDK中为incrementalOutput。通过HTTP调用时,请将incremental_output放入parameters对象中。
|
|
biz_params object 可选 Java SDK中为bizParams,通过HTTP调用时,请将 biz_params 放入 input 对象中。 |
has_thoughts boolean 可选 是否输出插件调用或知识检索的过程信息,默认值False。调用时设置此参数为True |
image_list Array 可选 输入的图片链接列表。 当智能体应用关联结构化知识库时,支持通过image_list 参数传递图片链接。此时,如果知识库包含图片索引,系统会先将输入图片转为向量并检索到相关记录,然后将这些记录与提问一起提供给大模型。 "image_list" : ["https://example.com/images/example.jpg"]
#这是一个虚构的URL,请替换为实际存在的图片URL
可以是多个,每个图片链接之间通过英文逗号分隔。 Java SDK中为images。通过HTTP调用时,请将 image_list 放入 input 对象中。 |
rag_options Array 可选 用于设定知识库检索的范围,例如对指定的知识库或文档进行检索。详细用法和规则请参见应用调用文档。 Java SDK中为ragOptions。通过HTTP调用时,请将 rag_options 放入 parameters 对象中。 属性 pipeline_ids Array 必选 知识库ID,传入该参数将对指定知识库内所有文档进行检索。 此参数为调用时必填字段,如果在控制台应用中配置了知识库则调用时可以不传。 在知识索引页面可以获取知识库ID,也可以使用CreateIndex接口返回的Data.Id 。 知识库ID上限5个,每个ID之间用英文逗号分隔,例如["知识库ID1", "知识库ID2"]。如果知识库ID传入多于5个,只生效前5个。 Java SDK中为pipelineIds。 file_ids Array 可选 非结构文档ID,传入该参数将对指定非结构化文档进行检索。 在数据管理页面的文档列表中可以获取文档ID,也可以使用AddFile接口返回的文档ID。 传入文档ID时,还需要传入文档所属的知识库ID才会生效。文档ID上限100个,每个ID之间用英文逗号分隔,例如["文档ID1", "文档ID2"]。 Java SDK中为fileIds。 metadata_filter Object 可选 非结构化文档的元数据,传入该参数将对具备该元数据的非结构化文档进行检索。 在知识索引页面,进入某个知识库后可以查看非结构化文档的元数据(Meta信息)。在创建非结构化知识库时可以设置元数据。调用ListChunks接口可获取指定文档的所有文本切片的详细信息。 传入元数据时,还需要传入所属的知识库ID才会生效。 Java SDK中为metadataFilter。 tags Array 可选 非结构化文档的标签,传入该参数将对具备该标签的非结构化文档进行检索。 在数据管理页面,可以查看非结构化文档的标签。也可以通过DescribeFile接口获取文档标签。 可以是多个tag,每个tag之间用英文逗号分隔,例如["标签1", "标签2"]。 |
|
|
|