跳到主要内容

通过 SDK 调用

当前 cloudbase sdk 中内置了 ai 模块,可以通过该模块调用 Agent ,实现与 Agent 的对话。

在调用 Agent 之前,我们需要进行 SDK 初始化。请参考「SDK 初始化」进行操作。

完成 SDK 初始化后,就可以调用 SDK,实现与 Agent 的交互了:

首先,查看已有的 Agent 列表:

const list = await ai.bot.list({ pageNumber: 1, pageSize: 10 });
console.log(list);

在返回的 Agent 列表中,会展示 Agent 的 id、名称、设定等信息。在大部分 Agent 接口中,都是通过 Agent id 来指定要与哪个 Agent 进行交互。

接下来,我们将与选中的 Agent 进行对话:

const res = await ai.bot.sendMessage({
botId: "botId-xxx", // 填入 Agent id
msg: "你好",
});

for await (let str of res.textStream) {
console.log(str);
}

通过简洁的流式接口,我们完成了和 Agent 的对话交互。

除了简单的对话之外,我们还提供了其他非常有用的 Agent 接口。完整使用示例如下:

使用示例

与 Agent 对话

提示

该接口为流式调用。

const res = await ai.bot.sendMessage({
botId: "botId-xxx",
msg: "给我一个成语。",
});

for await (let str of res.textStream) {
console.log(str);
}
// 当然
// 可以
// !
// 这里
// 有一个
// 成语
// :
//
//
// **
// 画
// 蛇
// 添
// 足
// **
//
//
// 这个
// 成语
// 的意思
// 是指
// 画
// 蛇
// 时
// 给
// 蛇
// 添
// 上
// 脚
// ,
// 后
// 比喻
// 做了
// 多余
// 的事
// ,
// 非
// 但
// 无
// 益
// ,
// 反
// 而不
// 合适
// ,
// 也
// 比喻
// 虚构
// 事实
// ,
// 无
// 中
// 生
// 有
// 。

参考文档:Bot.sendMessage()

查看 Agent

const res = await ai.bot.get({ botId: "botId-xxx" });
console.log(res);
// {
// "botId": "bot-809d4ad1",
// "name": "智能体",
// "agentSetting": "这是一个智能体",
// "introduction": "简介",
// "welcomeMessage": "欢迎欢迎",
// "avatar": "http://xxx.avatar.image",
// "background": "http://xxx.avatar.image",
// "isNeedRecommend": false,
// "knowledgeBase": [
// ""
// ],
// "initQuestions": [
// "请问有什么可以帮你的嘛?"
// ],
// "enable": true,
// "type": "text",
// "tags": [
// ""
// ]
// }

参考文档:Bot.get()

查看与 Agent 的聊天记录

const res = await ai.bot.getChatRecords({
botId: "botId-xxx",
pageNumber: 1,
pageSize: 10,
sort: "asc",
});
// {
// "recordList": [
// {
// "botId": "bot-809d4ad1",
// "recordId": "record-96617446",
// "role": "user",
// "content": "你好",
// "conversation": "r3Hjz3qgms3UG7z9lwSYbA",
// "type": "text",
// "triggerSrc": "TCB"
// },
// {
// "botId": "bot-809d4ad1",
// "recordId": "record-632906dd",
// "role": "assistant",
// "content": "您好!看起来您可能遇到了一些技术问题,或者只是想打个招呼。无论哪种情况,我都在这里为您提供帮助。如果您有任何具体的问题或需要协助,请随时告诉我!",
// "conversation": "r3Hjz3qgms3UG7z9lwSYbA",
// "type": "text",
// "triggerSrc": "TCB"
// }
// ],
// "total": 2
// }

参考文档:Bot.getChatRecords()

对某一条聊天记录进行反馈

await ai.bot.sendFeedback({
userFeedback: {
botId: "botId-xxx",
recordId: "recordId-xxx",
comment: "我觉得你回答的很好",
rating: 5,
tags: ["切题"],
aiAnswer: "李白是伟大的唐朝诗人。",
input: "一句话介绍李白。",
type: "upvote",
},
});

参考文档:Bot.sendFeedback()

查看反馈记录

await ai.bot.getFeedBack({
botId: "botId-xxx",
});
// {
// "feedbackList": [
// {
// "comment": "dawd",
// "botId": "bot-809d4ad1",
// "aiAnswer": "ababa",
// "createTime": "2024-09-10T07:03:45.000Z",
// "input": "你不好",
// "rating": 3,
// "sender": "r3Hjz3qgms3UG7z9lwSYbA",
// "tags": [],
// "type": "downvote"
// },
// {
// "comment": "dwajoidaw",
// "botId": "bot-809d4ad1",
// "aiAnswer": "ababa",
// "createTime": "2024-09-10T07:06:43.000Z",
// "input": "你不好",
// "rating": 2,
// "sender": "r3Hjz3qgms3UG7z9lwSYbA",
// "tags": [],
// "type": "downvote"
// }
// ],
// "total": 2
// }

参考文档:Bot.getFeedBack()

获取 Agent 推荐问题

提示

该接口为流式调用。

const res = await ai.bot.getRecommendQuestions({
botId: "botId-xxx",
history: [{ content: "李白是谁", role: "user" }],
msg: "你好",
agentSetting: "",
introduction: "",
name: "",
});

for await (let str of res.textStream) {
console.log(str);
}
// 你是
// 做什么
// 的
//
// 你能
// 提供
// 哪些
// 服务
//
// 怎么
// 使用
// 你的
// 功能

参考文档:Bot.getRecommendQuestions()

查看 Agent 列表

const list = await ai.bot.list({ pageNumber: 1, pageSize: 10 });
console.log(list);
// {
// "botList": [
// {
// "botId": "bot-c033e89e",
// "name": "智能体",
// "agentSetting": "这是一个智能体",
// "introduction": "简介",
// "welcomeMessage": "欢迎欢迎",
// "avatar": "http://xxx.avatar.image",
// "background": "http://xxx.avatar.image",
// "isNeedRecommend": false,
// "knowledgeBase": [
// ""
// ],
// "initQuestions": [
// "请问有什么可以帮你的嘛?"
// ],
// "enable": true,
// "type": "text",
// "tags": [
// ""
// ]
// }
// ],
// "total": 1
// }

参考文档:Bot.list()

API 参考

详见参考文档 | AI SDK