本文将为您介绍如何将业务参数透传至阿里云百炼或您自研的大模型。
功能概述
业务参数透传是指在分布式系统或服务调用链中,以无损、连贯、安全的方式跨组件传递特定业务相关的关键数据(如用户上下文、环境标记、透传用户ID、会员信息等)的技术机制。其核心目标在于保持业务逻辑的完整性与可观测性,并确保数据在传输过程中不被篡改、丢失或割裂。
应用场景
在智能体应用中,您可以按照您的需求选择将参数透传至阿里云百炼大模型或者您的自研大模型。在智能客服场景中,将用户咨询的问题类型、所属业务板块以及过往咨询记录等业务参数传递至阿里云百炼大模型或您自研大模型。模型便可以基于这些参数理解用户问题的背景,从而提供更精准且更符合业务场景的回答,显著提升客服效率和用户满意度。例如,在电商智能客服领域,通过传递用户购买商品的信息,大模型能够迅速解决用户关于商品使用及售后等相关问题。
功能实现
音视频智能体
透传至阿里云百炼大模型
服务端启动:您需要在调用GenerateAIAgentCall - 生成AI智能体通话实例或StartAIAgentInstance - 启动智能体实例接口时,对
AIAgentConfig
参数进行配置。AIAgentConfig
参数详情,请参见AIAgentConfig。客户端启动:
AIAgentConfig
参数中,透传阿里云百炼的参数是BailianAppParams
。您需要将配置后的BailianAppParams
参数转为JSON字符串传入TemplateConfig
。BailianAppParams
参数详情,请参见百炼参数详情。
客户端示例代码
Android
//创建ARTCAICallConfig,配置ARTCAICallAgentTemplateConfig
ARTCAICallEngine.ARTCAICallConfig artcaiCallConfig = new ARTCAICallEngine.ARTCAICallConfig();
//配置agentConfig的bailianAppParams参数,是一个json string
artcaiCallConfig.agentConfig.llmConfig.bailianAppParams = "XXX";
//省略发起通话流程
iOS
//配置agentConfig的bailianAppParams参数
let agentConfig = ARTCAICallAgentConfig() // 创建ARTCAICallAgentConfig对象
agentConfig.llmConfig.bailianAppParams = ["xxx", "xxxx"]
//省略发起通话流程
...
Web
//配置agentConfig的aiAgentBailianAppParams参数
const agentConfig = new AICallAgentConfig(); // 创建ARTCAICallAgentConfig对象
agentConfig.llmConfig.bailianAppParams = {
// 配置bailianAppParams参数
};
//省略发起通话流程
透传至自研大模型
服务端启动:您需要在调用GenerateAIAgentCall - 生成AI智能体通话实例或StartAIAgentInstance - 启动智能体实例接口时,对userData参数进行配置。
客户端启动:您需要在启动智能体时,设置userData属性。
启动智能体后,如何获取您透传的自定义的userData数据,请参见自研LLM标准接口。
客户端示例代码
Android
ARTCAICallEngine.ARTCAICallConfig artcaiCallConfig = new ARTCAICallEngine.ARTCAICallConfig(); // 创建ARTCAICallConfig,可以参考使用指南文档
artcaiCallConfig.userData = "{\"xxx\": \"xxx\"}" // 设置模型业务参数
... // 根据业务需要设置其他参数
engine.init(artcaiCallConfig); // 初始化引擎
engine.call(token); // 发起呼叫
iOS
let callConfig = ARTCAICallConfig() // 创建ARTCAICallConfig,可以参考使用指南文档
callConfig.userData = ["xxx": "xxxx"] // 设置模型业务参数
... // 根据业务需要设置其他参数
self.engine.call(config: callConfig) // 发起呼叫
Web
const callConfig = {
// 创建AICallConfig,可以参考使用指南文档
};
callConfig.userData = JSON.stringify({xxx: 'xxx'})
// 发起呼叫
engine.callWithConfig(callConfig);
消息对话智能体
透传至阿里云百炼大模型
调用
AICallKit SDK
提供的接口配置业务参数时,首先要确保已经正确引入了AICallKit SDK
库。ARTCAIChatTemplateConfig
是用于创建消息对话模板配置的类,其中bailianParam
参数是一个 JSON 字符串,它包含了要透传给阿里云百炼模型的业务参数。ARTCAIChatEngine
是用于管理消息对话的引擎类,通过setTemplateConfig
方法将配置好的templateConfig
设置到引擎中,这样在后续与阿里云百炼模型交互时,就会带上透传的业务参数。
示例代码
Android
//阿里云百炼应用中心参数,是一个jsonString
String bailianParam = "XXX";
//创建消息对话的TemplateConfig参数
ARTCAIChatEngine.ARTCAIChatTemplateConfig templateConfig= new ARTCAIChatEngine.ARTCAIChatTemplateConfig(bailianParam, "");
//设置消息对话配置的参数项,mChatEngine是ARTCAIChatEngine对象
mChatEngine.setTemplateConfig(templateConfig);
iOS
//创建消息对话的TemplateConfig参数
let templateConfig = ARTCAIChatTemplateConfig()
//设置阿里云百炼应用中心参数
templateConfig.bailianAppParams = ["xxx":"xxxxx"]
//给消息对话引擎设置templateConfig
self.engine.templateConfig = templateConfig
Web
const engine = new AIChatEngine();
//创建消息对话的TemplateConfig参数
const templateConfig = new AIChatTemplateConfig();
//设置阿里云百炼应用中心参数
templateConfig.bailianAppParams = {
xxx: 'xxxxx',
};
//给消息对话引擎设置templateConfig
engine.templateConfig = templateConfig;
透传至自研大模型
您需要调用
AICallKit SDK
的setUserData
方法,将业务参数透传至自研大模型,在此之前您同样要先确保 SDK 库已正确引入。userData
参数也是一个 JSON 字符串,它包含了要透传给自研大模型的业务参数。通过
mChatEngine.setUserData()
方法将业务参数设置到消息对话引擎中,实现参数透传。
示例代码
Android
//自研业务参数,是一个jsonString
String userData = "XXX";
//设置消息对话配置的参数项,mChatEngine是ARTCAIChatEngine对象
mChatEngine.setUserData(userData);
iOS
//设置自研业务参数
let userData = ["xxx":"xxxxx"]
//给消息对话引擎设置userData
self.engine.userData = userData
Web
//设置自研业务参数
const userData = { xxx: 'xxxxx' };
//给消息对话引擎设置userData
engine.userData = userData;
百炼参数详情
参数名 | 参数类型 | 描述 | 参数示例 |
biz_params | Object | 工作流应用和智能体编排应用自定义参数透传字段。阿里云百炼参数传递详情,请参见应用的参数传递。 说明
|
|
memory_id | String | 用于指向长期记忆的唯一标识符。此参数能够有效地保存和调用历史信息。 | YOUR_MEMORY_ID |
image_list | Array | 关联图片链接列表,能够提供与当前操作相关的视觉信息。 | ["https://example.com/images/example.jpg"] |
rag_options | Object | 知识库检索配置,用于指定智能体从知识库中检索信息时的具体选项。 | |
| Array | 知识库ID,用以识别和调用特定的知识库。 | ["知识库ID1", "知识库ID2"] |
| Array | 非结构文档ID,用于指定需要处理的非结构化文档。 | ["文档ID1", "文档ID2"] |
| Object | 非结构化文档的元数据,用于过滤和找到特定的文档。 | { "name": "张三" } |
| Object | 用于过滤结构化文档的列名及其对应的值。 | { "key1": "value1", "key2": "value2" } |
| Array | 非结构化文档的标签,方便进行分类和检索。 | ["标签1", "标签2"] |
更多详情,请参见阿里云百炼应用。参数示例如下:
阿里云百炼插件传参
aliyunBailianParamsJson = {
"biz_params": {
"user_defined_params":
{
"your_plugin_id":
{
"article_index": 2
}
}
},
"memory_id": "your_memory_id",
"image_list": [
"https://your_image_url" # 示例图片链接
],
"rag_options": {
"pipeline_ids": [
"your_id", # 替换为实际知识库ID
],
"file_ids": [
"文档ID1", # 替换为实际文档ID
"文档ID2" # 替换为实际文档ID
],
"metadata_filter": {
"name": "张三" # 替换为所需的元数据过滤条件
},
"structured_filter": {
"key1": "value1", # 示例过滤条件
"key2": "value2" # 示例过滤条件
},
"tags": [
"标签1", # 替换为实际标签
"标签2" # 替换为实际标签
]
}
}
bailianParams = json.dumps(aliyunBailianParamsJson)
阿里云百炼工作流传参
aliyunBailianParamsJson = {
"biz_params": {
"key1": "value1"
},
"memory_id": "your_memory_id",
"image_list": [
"https://your_image_url" # 示例图片链接
],
"rag_options": {
"pipeline_ids": [
"your_id", # 替换为实际知识库ID
],
"file_ids": [
"文档ID1", # 替换为实际文档ID
"文档ID2" # 替换为实际文档ID
],
"metadata_filter": {
"name": "张三" # 替换为所需的元数据过滤条件
},
"structured_filter": {
"key1": "value1", # 示例过滤条件
"key2": "value2" # 示例过滤条件
},
"tags": [
"标签1", # 替换为实际标签
"标签2" # 替换为实际标签
]
}
}
bailianParams = json.dumps(aliyunBailianParamsJson)