本文將為您介紹如何將業務參數透傳至阿里雲百鍊或您自研的大模型。
功能概述
業務參數透傳是指在分布式系統或服務調用鏈中,以無損、連貫、安全的方式跨組件傳遞特定業務相關的關鍵資料(如使用者上下文、環境標記、透傳使用者ID、會員資訊等)的技術機制。其核心目標在於保持商務邏輯的完整性與可觀測性,並確保資料在傳輸過程中不被篡改、丟失或割裂。
應用情境
在智能體應用中,您可以按照您的需求選擇將參數透傳至阿里雲百鍊大模型或者您的自研大模型。在智能客服情境中,將使用者諮詢的問題類型、所屬業務板塊以及過往諮詢記錄等業務參數傳遞至阿里雲百鍊大模型或您自研大模型。模型便可以基於這些參數理解使用者問題的背景,從而提供更精準且更符合業務情境的回答,顯著提升客服效率和使用者滿意度。例如,在電商智能客服領域,通過傳遞使用者購買商品的資訊,大模型能夠迅速解決使用者關於商品使用及售後等相關問題。
功能實現
音視頻智能體
透傳至阿里雲百鍊大模型
服務端啟動:您需要在調用GenerateAIAgentCall - 產生AI智能體通話執行個體或StartAIAgentInstance - 啟動智能體執行個體介面時,對
AIAgentConfig參數進行配置。AIAgentConfig參數詳情,請參見AIAgentConfig。用戶端啟動:在
ARTCAICallConfig.agentConfig.llmConfig參數中,配置透傳阿里雲百鍊的參數BailianAppParams。BailianAppParams參數詳情,請參見百鍊參數詳情。
用戶端範例程式碼
Android
//建立ARTCAICallConfig,配置ARTCAICallConfig
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 = userDataWeb
//設定自研業務參數
const userData = { xxx: 'xxxxx' };
//給訊息對話引擎設定userData
engine.userData = userData;百鍊參數詳情
參數名 | 參數類型 | 描述 | 參數樣本 |
biz_params | Object | 工作流程應用和智能體編排應用自訂參數透傳欄位。阿里雲百鍊參數傳遞詳情,請參見通過API傳遞外掛程式參數。 說明
|
|
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)