摸索 coze
半天,发现与 GPTS
的功能非常类似,都是对话机器人,但是创建的过程是有些区别的
GPTS
在GPTS创建中,通过与GPT Builder
对话,告诉它你要做什么,比如我要做一个前端日报机器人, 他会问你一些是专做特定的领域还是不限范围?是否应该避开任何特定类型的内容或交互?等等问题,然后在Configure
那一栏中自动帮你生成描述、说明、开场白等等,当然也有知识库
和Actions
,这个Actions
我认为和 coze
的workflow
差不多
Coze使用
人设与回复逻辑
点击->创建Bots
markdown复制代码
# 角色
你是一位资深的前端知识专家,能够根据用户的学习需求,优先在知识库中查找相关知识文章并加以推荐,并且进行总结。若知识库中没有相关内容,会通过必应搜索引擎查找并阐释相关知识点。
## 技能
### 技能 1: 知识库搜索
- 当用户咨询或者推荐前端相关知识时,你需要在知识库中查找信息,并附带跳转链接,同时给出简要总结。
### 技能 2: 搜索引擎查询
- 如果在知识库中未找到用户询问的前端知识时,使用必应搜索插件,讲解或概述相关知识点。
### 技能 3: 文章总结
- 当用户要求总结时,运用 get_article_summarize 工作流进行处理。
## 限制:
- 仅提供前端知识相关内容,不回应其他无关话题。
- 严格按照给定的格式输出。
- 若知识库无相关内容,可通过搜索引擎查找。
写好Prompt很关键,更容易让大模型理解,这个prompt的设置我也觉得可以做成工作流
在这里,国际版与国内版有些不同,国际版有多代理模式和单代理模式,国内版本只有单代理模式
国际版
知识库搭建
- 知识库:是大量知识分片,通过语义匹配,给模型补充知识
知识库是记忆库的一种,还有数据库,都是用来存储和记忆外部数据,这样的话Bot就可以精准地回复。由于数据库我还没有接触,这里按下不表。
知识库创建
来创建一个知识库,可以【选文本格式】和【表格格式】
文本格式
表格格式
手动亲测
我分别是了【文本格式】的【在线数据】,【表格格式】的【本地文档】。 在线数据有手动采集和自动采集,自动采集只需要输入一个url即可,但是我觉得效果不太如人意,添加方式选择【批量添加】好些
文本格式的在线数据
- 自动采集
缺点是采集的内容过少,并且有些内容并不是我想要的
- 手动采集
根据文档推荐的插件Coze Scraper, 同样不满足效果,缺点是不可以采集全部,不可以滚动采集
表格格式的本地文档
这是我利用另外一个插件 Easy Scraper
,将文章所有的列表采集下来,然后下载csv到本地,整理下字段上传到知识库。
从图中可以看到,可以滚动,可以下载
于是我创建了自己的知识库,但是这引发一个新的问题,就是怎么同步更新?
自动调用与按需调用
- 自动调用: 每轮对话将自动从所有关联的知识库中进行召回
- 按需调用:需要调用
RecallKnowledge
方法,以便于Bot根据特定或者全部知识库的内容回复用户
在实际测试中,按需调用没有达到我想要的效果,可能是我的Bot不适合这个,因为我的需求是先从知识库中查找,没有再调用“必应搜索”
插件
插件是一个工具集,一个插件内可以包含一个或多个工具(API)
官网介绍了四种方式创建插件,我用的是第二种,比如我要获取掘金用户文章列表
js复制代码
// 基于Node.js获取掘金用户文章列表
import { Args } from '@/runtime';
import { Input, Output } from "@/typings/get_article_list/get_article_list";
const axios = require('axios');
async function fetchArticleInfos(userId) {
const requestBody = {
user_id: userId,
sort_type: 2
};
try {
const response = await axios.post('https://api.juejin.cn/content_api/v1/article/query_list', requestBody);
return response.data;
} catch (error) {
throw error;
}
}
export async function handler({ input, logger }: Args<Input>): Promise<Output> {
const userId = input.user_id;
try {
const result = await fetchArticleInfos(userId);
return { message: JSON.stringify(result) };
} catch (error) {
return { error: error.message };
}
};
测试结果
官网介绍的几种方式都是基于API,获取API的几种方式
- 免费开源接口:bilibili-API-collect
- 付费接口: 聚合数据等
- 自己搭建服务
工作流
我创建一个获得文章总结的工作流,输入url->调用LinkReaderPlugin插件->调用大模型进行总结->输出结果,这个场景算比较简单的
还可以通过添加知识库、代码、code、选择器、数据库等创建各种各样的复杂的工作流
复杂的可以参考官方文档识别用户意图
消息卡片
可以自定义消息卡片回复
上架Bot
总结
这个前端知识助手令我设想的还有些距离,目前只是从我的知识库中推荐文章,如果没有获取到从搜索引擎获取并解答问题。
而我设想的是数据来源有两个:一个是通过RSS订阅来获取前端相关博文,经过筛选总结推送到微信群,另外一个是我的知识库(从掘金列表获取,如何能做到及时更新?如果一旦有更新的话推送到微信)
如有侵权请联系站点删除!
技术合作服务热线,欢迎来电咨询!