Appearance
集成Coze国际版
创建智能体
访问扣子主页 填写自己的智能体信息,这里可以自定义,想填写什么就填写什么就行。
编排智能体
创建好了之后就需要去编排这个智能体,我仅仅填写了一小部分的人设与回复逻辑,然后就让 AI 润色了一下,设置技能,例如开场白和预置问题。
为智能体添加技能
如果模型能力可以基本覆盖智能体的功能,则只需要为智能体编写提示词即可。但是如果你为智能体设计的功能无法仅通过模型能力完成,则需要为智能体添加技能,拓展它的能力边界。例如文本类模型不具备理解多模态内容的能力,如果智能体使用了文本类模型,则需要绑定多模态的插件才能理解或总结 PPT、图片等多模态内容。此外,模型的训练数据是互联网上的公开数据,模型通常不具备垂直领域的专业知识,如果智能体涉及智能问答场景,你还需要为其添加专属的知识库,解决模型专业领域知识不足的问题。
例如夸夸机器人,模型能力基本可以实现我们预期的效果。但如果你希望为夸夸机器人添加更多技能,例如遇到模型无法回答的问题时,通过搜索引擎查找答案,那么可以为智能体添加一个谷歌搜索插件,以防用户不能访问google,我们还可以加一个必应插件。
- 在编排页面的技能区域,单击Plugins功能对应的 + 图标。
- 在添加插件页面,搜索search,然后单击Add。
修改人设与回复逻辑,指示智能体使用谷歌搜索插件来回答自己不确定的问题。否则,智能体可能不会按照预期调用该工具,在左侧提示词侧输入“{”就会让你选择插件
另外,你还可以为智能体添加开场白、用户问题建议、背景图片等功能,增强对话体验。例如为智能体添加一张背景图片,使对话过程更沉浸。
添加工作流
场景描述
大模型本身并不具备文件读取和解析的能力,无法直接处理文件字节流。对于支持工具调用(Function calling)的模型,扣子提供插件功能来帮助大模型调用外部工具 API,拓展大模型的能力边界。扣子插件商店提供海量官方插件和第三方插件,例如链接读取插件可以将链接对应的文件内容解析为纯文本传递给大模型。
本文介绍如何使用链接读取插件节点搭建一个用于解析 PDF 文件的工作流。
可解析的文件类型取决于插件能力,你可以在链接读取插件的详情页中查看插件最新的支持文件类型列表。目前插件可解析包括 PDF、Word、Excel 等常见格式的文件,也可以解析在线网页地址。
效果示例
搭建一个解析 PDF 的工作流,并将其绑定智能体之后,在调试区域发送一个 PDF 文件,并发送你的问题,智能体会自动调用工作流,并根据解析后的文件内容回答你的问题。
工作流设计
本文构建的示例工作流节点概览如下图所示。在该工作流中:
- 开始节点接收用户指定的文件和对应的问题(query)。
- 插件节点调用链接读取插件
LinkReader
工具,将文件内容解析为纯文本。 - 大模型节点根据解析后的文本,回答用户的问题。
核心节点
工作流各个核心节点的配置方式如下:
节点名称 | 说明 | 示例 |
---|---|---|
开始节点 | 开始节点用于接收用户设置的变量,并将变量传递给后续节点。 在开始节点定义以下变量,并为变量设置描述: pdf:待解析的 PDF 文件,File 格式。 query:用户的问题,String 格式。 | |
插件节点 | 添加一个插件节点,插件工具选择链接读取插件的 LinkReader 工具。通过插件节点运行链接读取插件,获取搜索结果。 定义输入变量 url,在参数值区域引用开始节点的 pdf 变量,表示解析 pdf 变量传入的文件。 注意,节点会标红提示你 pdf 的变量格式和 url 变量的格式要求不一致,此处可忽略,扣子会将用户在开始节点上传的文件自动转为 String 格式的链接,并传递给LinkReader ,所以实际传入的变量格式是符合要求的。 文件解析的结果会作为输出变量 pdf_content ,便于后续节点使用。 | ![]() |
大模型节点 | 通过用户提示词将问题和文件解析结果输入给大模型,大模型会自动总结文件信息,并生成对应的回复。 节点设置如下: 输入:定义以下输入变量。 pdf_content :文件解析结果,引用插件节点的输出变量 pdf_content 。 query :用户的问题,引用开始节点的变量 query。 用户提示词:{{pdf_content}} {{query}} 。 其他配置维持默认配置即可。 | |
结束节点 | 结束节点用于输出大模型节点针对文件解析结果生成的回复。设置方式如下: 模式:返回文本 输出变量:定义变量 output,引用大模型节点的输出变量 output。 回答内容:设置为 {{output}} 。 |
编排完成后点击右上角Publish
发布即可。
授权智能体
勾选对 Agent as API 和 Web SDK 进行授权即可
安装智能体
授权完成后,点击安装
嵌入智能体
由于安装时,是添加到<body>
中,而大多博客都没办法直接嵌入,所以编写一个 vue组件
通过#layout-bottom
插槽传递,如果想要拖拽,不超出视口等功能可以查看GitHub
- sdkurl,bot_id是上面点击安装后出现的
- title是对话框顶部的标题
- botAccessToken从官网获取
vue
<script setup>
import { onMounted } from "vue";
import secureInfo from "../secureInfo";
onMounted(() => {
const sdkUrl = "https://sf-cdn.coze.com/obj/unpkg-va/flow-platform/chat-app-sdk/1.2.0-beta.6/libs/oversea/index.js";
const externalScript = document.createElement("script");
externalScript.src = sdkUrl;
externalScript.type = "text/javascript";
externalScript.onload = () => {
if (window.CozeWebSDK && window.CozeWebSDK.WebChatClient) {
new window.CozeWebSDK.WebChatClient({
config: {
bot_id: secureInfo.botId, //你的bot_id
},
auth: {
type: "token",
token: secureInfo.botAccessToken, //你的accessToken
onRefreshToken: () => secureInfo.botAccessToken, //你的accessToken
},
ui:{
chatBot: {
title: "博客问答助手",
uploadable: true,
// width: 500, //对话框宽度
el: undefined,
isNeedAddNewConversation: true,
isNeedFunctionCallMessage: true,
isNeedQuote: true,
onHide: () => { //关闭对话框回调
// todo...
},
onShow: () => { //打开对话框回调
// todo...
},
},
conversations: { isNeed: true },
footer: {
isShow: true,
expressionText: 'Powered by {{name}} 拖拽顶部移动对话框',
linkvars: {
name: {
text: 'liyao52033',
link: 'https://xiaoying.org.cn'
}
}
},
}
});
}
};
document.body.appendChild(externalScript);
});
</script>
<template></template>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
注册组件
在docs\.vitepress\theme\index.ts
中注册组件
vue
import Theme from "vitepress-theme-base-teek"
import { h } from "vue";
import Coze from "./components/Coze.vue";
export default {
extends: Theme,
Layout() {
return h(Theme.Layout, null, {
'liyao-layout-bottom': () => h(Coze) //相当于vitepress的layout-bottom插槽
})
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13