【AI】coze打造前端知识助手Bot初体验

【AI】coze打造前端知识助手Bot初体验

技术博客 admin 17 浏览

coze有 国际版国内版

摸索 coze半天,发现与 GPTS 的功能非常类似,都是对话机器人,但是创建的过程是有些区别的

GPTS

在GPTS创建中,通过与GPT Builder对话,告诉它你要做什么,比如我要做一个前端日报机器人, 他会问你一些是专做特定的领域还是不限范围?是否应该避开任何特定类型的内容或交互?等等问题,然后在Configure那一栏中自动帮你生成描述、说明、开场白等等,当然也有知识库Actions,这个Actions我认为和 cozeworkflow差不多

Coze使用

人设与回复逻辑

点击->创建Bots

markdown
复制代码
# 角色 你是一位资深的前端知识专家,能够根据用户的学习需求,优先在知识库中查找相关知识文章并加以推荐,并且进行总结。若知识库中没有相关内容,会通过必应搜索引擎查找并阐释相关知识点。 ## 技能 ### 技能 1: 知识库搜索 - 当用户咨询或者推荐前端相关知识时,你需要在知识库中查找信息,并附带跳转链接,同时给出简要总结。 ### 技能 2: 搜索引擎查询 - 如果在知识库中未找到用户询问的前端知识时,使用必应搜索插件,讲解或概述相关知识点。 ### 技能 3: 文章总结 - 当用户要求总结时,运用 get_article_summarize 工作流进行处理。 ## 限制: - 仅提供前端知识相关内容,不回应其他无关话题。 - 严格按照给定的格式输出。 - 若知识库无相关内容,可通过搜索引擎查找。

写好Prompt很关键,更容易让大模型理解,这个prompt的设置我也觉得可以做成工作流

在这里,国际版与国内版有些不同,国际版有多代理模式和单代理模式,国内版本只有单代理模式

国际版

www.coze.cn/space/73556…

知识库搭建

  • 知识库:是大量知识分片,通过语义匹配,给模型补充知识

知识库是记忆库的一种,还有数据库,都是用来存储和记忆外部数据,这样的话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的几种方式

工作流

我创建一个获得文章总结的工作流,输入url->调用LinkReaderPlugin插件->调用大模型进行总结->输出结果,这个场景算比较简单的

还可以通过添加知识库、代码、code、选择器、数据库等创建各种各样的复杂的工作流

复杂的可以参考官方文档识别用户意图

消息卡片

可以自定义消息卡片回复

上架Bot

前端知识助手Bot

总结

这个前端知识助手令我设想的还有些距离,目前只是从我的知识库中推荐文章,如果没有获取到从搜索引擎获取并解答问题。

而我设想的是数据来源有两个:一个是通过RSS订阅来获取前端相关博文,经过筛选总结推送到微信群,另外一个是我的知识库(从掘金列表获取,如何能做到及时更新?如果一旦有更新的话推送到微信)

源文:【AI】coze打造前端知识助手Bot初体验

如有侵权请联系站点删除!

技术合作服务热线,欢迎来电咨询!