AI 实战:手把手教你运用「纽扣/coze」来建立个人blog知识库
前言
从 2022 年的 OpenAI 的ChatGPT3.5发布,AI 技术迅速火遍全宇宙。全人类开端都在评论 AI 技术的未来和人类自己的未来。比方“AI 是否能够替代人类”、“AI 终究是什么?”、“AI是否能增加每个人的失业风险”、“安全与隐私问题怎么平衡”、“AI 是否会导致社会的不平等问题加剧?”等等的话题。
2023 年是能够说是 AI 技术的开展元年。许多有才能的公司都在做自己的 LLM,文心一言、Qwen、云雀言语大模型、Genimi、天工大模型、混元大模型、ChatGLM2、Llama2、GPT-4,GPT-3.5、百川大模型等。
这么多的大模型在这一年的时刻里边在不断的进化,不断的提高各自模型的才能。从开端单一的谈天对话方式不断进化为多模态的方式,文生图、图生文、图生图等模型的才能越来越强。尤其是在编码才能方面给咱们程序员供给了许多的协助。
在如今 AI 火爆的时代,作为程序员的咱们怎么运用 AI 技术来给咱们供给协助?比方:学习、提高技术、作业、日子等等的方面。这个问题是咱们值得考虑的一个问题。关于这个国际的大部分人来说 AI 技术其实便是一个东西,AI 技术在未来必定会给咱们的日子供给许多便捷性,就好比第二次工业革命相同,它淘汰了许多个别体力劳动者,取而代之的是许多工业企业。相同现在也相同许多企业已经在考虑 运用AI 技术在自己的企业赋能。那作为个人的咱们怎么运用 AI 技术来提高咱们的作业和日子功率能?
主题
接下来咱们就探究怎么运用 纽扣/coze 来构建一个自己的个人blog知识库。
纽扣是新一代一站式 AI Bot 开发渠道。不管你是否有编程根底,都能够在纽扣渠道上快速建立基于 AI 模型的各类问答 Bot,从处理简略的问答到处理复杂逻辑的对话。并且你能够将建立的 Bot 发布到各类社交渠道和通讯软件上,让更多的用户与你建立的 Bot 谈天。www.coze.cn/
功用架构设计
纽扣/coze 是一个 LLM 的应用开发东西,他内置了许多自己的东西,能够供给给开发者直接运用。并且他还供给了自定义相关插件的功用,那么咱们就能够结合他的自定义的才能扩展出许多的才能,然后能够构建咱们自己的应用程序。
纽扣/coze 的功用特点:
插件
- 内置插件
- 自定义插件
数据源
- 内容上传
- URL 获取在线网页内容
- API JSON 数据
- 自定义数据集
持久化
- 数据库
- 知识库
作业流
运用作业流能够无缝的将自己的事务逻辑与相关的东西集相结合,然后构建强大的事务才能。
下面是运用纽扣来建立自己的blog知识库的功用设计图:
前提
本文只要是将自己的 blog 网站的内容作为知识库的数据源来构建自己的知识库。所以假如你想构建自己自己的博客知识库就首先需求有一个博客网站。假如你本地有许多的文本内容相同能够构建自己的知识库,不过需求略微做个改换就行。本文首要便是供给个思路,仅做参阅,供给思路。
装备插件东西
search_keywords插件东西的首要功用便是依据履行一个 博客内容API 恳求。回来的内容需求一个 json 的数据,由于需求将search_keywords插件东西在作业流中解析运用。
装备插件东西比较简略,跟着提示一直构建就行。
在第三步:装备输出参数运用“主动解析”即可。
第四步:调试与校验完成后,显现调试经过即可保存。最后回到首页点击发布。
我这儿恳求 API 不需求恳求参数,所认为空,咱们依据自己的情况装备即可。
装备作业流
作业流的功用便是将一些东西集或许是另外的一些作业流串起来,创联每个步骤的数据输入以及输出,使功用满意自己的事务逻辑的流程。
咱们在空间(个人/团队)里边点击作业流,进入作业流装备页面中创立自己的作业流。
这儿面有一个姓名是 keywords_search的作业流:
作业流的节点装备以及功用如下:
咱们装备了 4 个节点,下面别离阐明一下每个节点的作用:
开端节点:
开端节点是作业流的默许节点,咱们能够装备输入参数以及参数的数据类型。这儿咱们装备一个 query:string
的参数供给关键字的查找。
search_keywords节点:
search_keywords节点便是咱们上面装备的插件,用来获取咱们 API 的内容。这儿插件能够在作业流的左侧插件列表中找到。插件列表供给了系统内置的插件和自定义的插件。
代码节点:
代码节点的功用是将 start节点的 query
参数与search_keywords节点回来的参数data
作为输入的参数数据,并对 data
的数据做过滤,并将过滤后的数据回来。
-
input
参数:引证开端节点的 query 参数的值。 -
seach_result
参数:引证search_keywords节点回来的数据值。
咱们编写代码来过滤数据:
async function main({ params }: Args): Promise<Output> {
const regex = new RegExp(params.input, 'i');
let ret = [];
for (let item of params.search_result) {
// let item = params.search_result[idx]
var data = {
"content": "",
"date": "",
"permalink": "",
"summary": "",
"title": ""
}
if (regex.test(item.title)) {
data.content = item.content
data.date = item.date
data.permalink = "https://fm126.top"+item.permalink
data.summary = item.summary
data.title = item.title
ret.push(data)
}
}
return ret
}
- 装备回来值中参数名称以及数据类型,供给模型答复时分卡片内容的展现装备。
完毕节点:
这个节点是作业流的默许完毕节点,这儿咱们只需求装备他的输入参数引证的是代码节点回来的参数 ret
即可。
调试作业流:
装备完成后咱们能够试用行咱们装备的作业流,点击试运行,输入query
参数的值,提交后检查运行成果。
这儿清晰的能够看到每一步的输入参数和输出参数。
这儿有一点需求注意的便是:咱们自定义的插件的回来的数据必定需求有个字段名称,否则这儿装备参数引证的时分会报错“节点参数校验失败”。
知识库构建:
纽扣/coze 的知识库功用支撑上传外部数据(例如本地文件、实时在线数据),经过向量查找来检索最相关的内容以答复用户的问题,这能够协助你的 Bot 更精确地答复问题。
咱们将自己的网站或许 blog 网站的内容导入知识库,经过知识库的主动更新才能,让 Bot 协助你搜集最新数据。当 Bot 运用了这个知识库后,你就能够拥有一个专属领域的 Bot。
一个知识库中可增加一个或多个单元,用于存储外部数据。每个单元可包含多个分段,分段是一条独立的信息或特定的内容块。上传到知识库中的内容会被分割成多个分段,然后经过向量召回,召回最相关的分段,协助模型提高答复的准确性。
咱们创立自己的知识库:blog知识库
创立好知识库后,点击新增单元,并挑选导入文件的办法,这儿咱们挑选在线数据来导入博客的页面内容。
点击保存后会主动创立单元,并对数据进行分段。
如此咱们能够将所需求的页面内容来构建知识库。
创立Bot
点击 bot 页面 > 创立 bot > 填写名称+介绍 > 完毕
Prompt 提示词编列
装备人设与回复逻辑:
人设与回复逻辑:是一种自然言语指令,告诉大言语模型(LLM)履行什么使命。建立 Bot 的第一步就编写提示词,为 Bot 设定身份和方针。Bot 会依据大言语模型对人物设定和回复逻辑的了解,来呼应用户问题。因而提示编写的越清晰明确,Bot 的回复也会越符合预期。
参阅编写主张: www.coze.cn/docs/guides…
咱们输入一段自然言语,比方:
# 角色
你是一位知识库帮手,能够提取、总结、剖析和解释内容,并以通俗易懂的言语答复相关问题。
## 技术
### 技术 1: 知识库获取数据
1. 从知识库中查找并提取相关内容。
2. 对知识库中的内容做总结。
3. 假如用户输入的内容格局为“q=keyword”,需求提取等号后边的内容并去除空格,并调用“keywords_search”作业流来查找内容。
4. 用户输入的内容格局为"s=keyword"时,不要调用“知识库”和“keywords_search”作业流来查找内容,你需求提取等号后边的内容并调用“必应查找”插件来查找成果。
### 技术 2: 查找引擎
1. 假如没有找到任何内容输出:“暂未找到相关内容,是否运用查找引擎查找内容?”,当用户输入“是”或许“是的”或许“yes”等必定答复的情况下调用“必应查找”插件来获取相关内容。
## 约束
- 所输出的内容必须依照给定的格局进行组织,不能偏离结构要求。
- 在运用特定编程言语提取数据时,必须解释所运用的逻辑和办法,不能仅仅给出代码。
- 未找到内容时不要输出卡片数据。
- 只会输出知识库中已有内容, 不在知识库中的内容, 需求经过东西去了解。
- 输出的内容请符号文档衔接。
- 请运用 Markdown 的 ^^ 方式阐明引证来源。
然后运用优化东西来优化 Prompt
:
东西编列
技术区域有 3 部分的装备:
- 技术:插件、作业流
- 回忆:知识库、数据库
- 高档:开场白、用户问题主张、音色
插件装备
咱们挑选“必应查找”插件来供给网络查找。咱们的 prompt的有一条指令 4. 用户输入的内容格局为"s=keyword"时,不要调用“知识库”和“keywords_search”作业流来查找内容,你需求提取等号后边的内容并调用“必应查找”插件来查找成果。
来履行必应查找插件获取内容。
装备卡片数据绑定:
这儿面能够装备卡片的款式,卡片需求绑定的数据源等
作业流装备
作业流装备中增加上面装备的作业流 keywords_search
,并装备卡片的款式,卡片需求绑定的数据源等。
知识库
只要咱们上面装备过知识库,这儿就会主动绑定咱们预先装备好的blog知识库
。相同这儿能够增加多个知识库来供给Bot 运用。
数据库
咱们这儿没用到数据库,所以不需求装备。
高档装备
-
开场白案牍装备:
你好,我是一名知识库帮手,能够为你供给各种信息和答案。不管你需求什么协助,我都会极力答复你的问题。
-
开场白预置问题:
请问知识库中有关于golang主题的信息吗?
帮我总结一下知识库中涉及到的关键技术点。
运用技巧:q=keyword 用来关键字查找知识库关键字, s=keyword调用查找引擎来获取内容
-
用户问题主张:运用默许装备
-
音色:选用自己喜爱的。
高档装备里边相关案牍能够依据自己的实践情况装备,以上仅为参阅。或许能够在自己的运用进程中不断的微调,让大模型更能了解咱们的意图。
预览与调试
装备完成后就能够在 预览与调试
看到bot 根本的姿态:
咱们能够在预览区域测验咱们的 Bot 的才能,Bot 的实践表现,假如不符合预期,依据 Bot 的方针,剖析不符合预期的原因,并不断调整和优化回复prompt逻辑。
发布Bot
Bot修改好后,假如他的实践表现符合咱们的预期,咱们既能够发布 Bot,纽扣/coze支撑发布 Bot 到如图所示的渠道。
具体相关装备能够参阅官方文档: www.coze.cn/docs/guides…
总结
整体来说运用纽扣/coze来建立自己的知识库还是很便利的,经过插件东西,文档上传/拉去形成知识库,然后经过作业流将东西串联起来。
比较耗费时刻的地便利是 prompt 人设与回复逻辑的调整。在运用的进程中会遇到比较难以了解的答复和不统一的答复:比方
- 一个问题问多次,每次回复的距离比较大,有的能够找到知识库中的内容来答复,而有的答复提示未找到相关内容。
- 履行 q=keyword 和 s=keyword 有的时分能够正确履行,但是大多数的时分还是不能了解。
演示:
结束:
邀请你加入我的 Coze 纽扣团队,一同建立 AI Bot:demo007x‘s blog www.coze.cn/invite/VF78…
bot ID: 7335819782228377640