将用户信息透传百炼或自研模型

本文将为您介绍如何将业务参数透传至阿里云百炼或您自研的大模型。

功能概述

业务参数透传是指在分布式系统或服务调用链中,以无损、连贯、安全的方式跨组件传递特定业务相关的关键数据(如用户上下文、环境标记、透传用户ID、会员信息等)的技术机制。其核心目标在于保持业务逻辑的完整性与可观测性,并确保数据在传输过程中不被篡改、丢失或割裂。

应用场景

在智能体应用中,您可以按照您的需求选择将参数透传至阿里云百炼大模型或者您的自研大模型。在智能客服场景中,将用户咨询的问题类型、所属业务板块以及过往咨询记录等业务参数传递至阿里云百炼大模型或您自研大模型。模型便可以基于这些参数理解用户问题的背景,从而提供更精准且更符合业务场景的回答,显著提升客服效率和用户满意度。例如,在电商智能客服领域,通过传递用户购买商品的信息,大模型能够迅速解决用户关于商品使用及售后等相关问题。

功能实现

音视频智能体

透传至阿里云百炼大模型

客户端示例代码

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参数
};

//省略发起通话流程

透传至自研大模型

启动智能体后,如何获取您透传的自定义的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);

消息对话智能体

透传至阿里云百炼大模型

  1. 调用 AICallKit SDK 提供的接口配置业务参数时,首先要确保已经正确引入了 AICallKit SDK 库。

  2. ARTCAIChatTemplateConfig 是用于创建消息对话模板配置的类,其中 bailianParam 参数是一个 JSON 字符串,它包含了要透传给阿里云百炼模型的业务参数。

  3. 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;

透传至自研大模型

  1. 您需要调用 AICallKit SDKsetUserData 方法,将业务参数透传至自研大模型,在此之前您同样要先确保 SDK 库已正确引入。

  2. userData 参数也是一个 JSON 字符串,它包含了要透传给自研大模型的业务参数。

  3. 通过 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

工作流应用和智能体编排应用自定义参数透传字段。阿里云百炼参数传递详情,请参见应用的参数传递

说明
  • 阿里云会额外传入智能体实例相关参数,您无需再次传入:

    • instanceId:AI实时互动智能体实例Id

    • channelId:AI实时互动RTC房间号

  • 在向阿里云百炼插件传递参数时,使用user_defined_params进行参数传递(阿里云百炼工作流无需该参数)。

  • 阿里云百炼插件

{
 "user_defined_params": {
 "city":"杭州"
 }
}
  • 阿里云百炼工作流

{
 "city":"杭州"
}

memory_id

String

用于指向长期记忆的唯一标识符。此参数能够有效地保存和调用历史信息。

YOUR_MEMORY_ID

image_list

Array

关联图片链接列表,能够提供与当前操作相关的视觉信息。

["https://example.com/images/example.jpg"]

rag_options

Object

知识库检索配置,用于指定智能体从知识库中检索信息时的具体选项。

  • pipeline_ids

Array

知识库ID,用以识别和调用特定的知识库。

["知识库ID1", "知识库ID2"]

  • file_ids

Array

非结构文档ID,用于指定需要处理的非结构化文档。

["文档ID1", "文档ID2"]

  • metadata_filter

Object

非结构化文档的元数据,用于过滤和找到特定的文档。

{

"name": "张三"

}

  • structured_filter

Object

用于过滤结构化文档的列名及其对应的值。

{

"key1": "value1",

"key2": "value2"

}

  • tags

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)