前言
从 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 有的时候可以正确执行,但是大多数的时候还是不能理解。
程序员为什么要学大模型?
大模型时代,火爆出圈的LLM大模型让程序员们开始重新评估自己的本领。 “AI会取代那些行业
?”“谁的饭碗又将不保了?
”等问题热议不断。
事实上,抢你饭碗的不是AI,而是会利用AI的人。
继科大讯飞、阿里、华为
等巨头公司发布AI产品后,很多中小企业也陆续进场!超高年薪,挖掘AI大模型人才! 如今大厂老板们,也更倾向于会AI的人,普通程序员,还有应对的机会吗?
与其焦虑……
不如成为「掌握AI工具的技术人
」,毕竟AI时代,谁先尝试,谁就能占得先机!
但是LLM相关的内容很多,现在网上的老课程老教材关于LLM又太少。所以现在小白入门就只能靠自学,学习成本和门槛很高。
针对所有自学遇到困难的同学们,我帮大家系统梳理大模型学习脉络,将这份 LLM大模型资料
分享出来:包括LLM大模型书籍、640套大模型行业报告、LLM大模型学习视频、LLM大模型学习路线、开源大模型学习教程
等, 😝有需要的小伙伴,可以 扫描下方二维码领取🆓↓↓↓
一、LLM大模型经典书籍
AI大模型已经成为了当今科技领域的一大热点,那以下这些大模型书籍就是非常不错的学习资源。
二、640套LLM大模型报告合集
这套包含640份报告的合集,涵盖了大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。(几乎涵盖所有行业)
三、LLM大模型系列视频教程
四、LLM大模型开源教程(LLaLA/Meta/chatglm/chatgpt)
LLM大模型学习路线 ↓
阶段1:AI大模型时代的基础理解
-
目标:了解AI大模型的基本概念、发展历程和核心原理。
-
内容:
- L1.1 人工智能简述与大模型起源
- L1.2 大模型与通用人工智能
- L1.3 GPT模型的发展历程
- L1.4 模型工程
- L1.4.1 知识大模型
- L1.4.2 生产大模型
- L1.4.3 模型工程方法论
- L1.4.4 模型工程实践
- L1.5 GPT应用案例
阶段2:AI大模型API应用开发工程
-
目标:掌握AI大模型API的使用和开发,以及相关的编程技能。
-
内容:
- L2.1 API接口
- L2.1.1 OpenAI API接口
- L2.1.2 Python接口接入
- L2.1.3 BOT工具类框架
- L2.1.4 代码示例
- L2.2 Prompt框架
- L2.3 流水线工程
- L2.4 总结与展望
阶段3:AI大模型应用架构实践
-
目标:深入理解AI大模型的应用架构,并能够进行私有化部署。
-
内容:
- L3.1 Agent模型框架
- L3.2 MetaGPT
- L3.3 ChatGLM
- L3.4 LLAMA
- L3.5 其他大模型介绍
阶段4:AI大模型私有化部署
-
目标:掌握多种AI大模型的私有化部署,包括多模态和特定领域模型。
-
内容:
- L4.1 模型私有化部署概述
- L4.2 模型私有化部署的关键技术
- L4.3 模型私有化部署的实施步骤
- L4.4 模型私有化部署的应用场景
这份 LLM大模型资料
包括LLM大模型书籍、640套大模型行业报告、LLM大模型学习视频、LLM大模型学习路线、开源大模型学习教程
等, 😝有需要的小伙伴,可以 扫描下方二维码领取🆓↓↓↓