背景
聊天机器人正在变成我们bukehuoque的工具,改变了如今的工作方式。甚至有人开玩笑说2023web开发者做的helloworld项目不再是todolist了而是ai聊天机器人,但是它还是被认为具有很高的开发门槛,被认为只有开发者才能构建出应用。但本文将教你如何无需编写任何代码创建自己的聊天机器人,在几分钟内训练任何网站数据,提供的思路和方法也适用于处理其他数据和其他场景。
langchain介绍
随着openai的发布,大型语言模型(largelanguagemodel即llm)正在成为一种变革性技术而席卷了世界,使开发人员能够构建他们以前无法构建的应用程序,但是单独使用这些llm往往不足以创建一个真正强大的应用程序,但是当可以将它们与其他计算或知识来源相结合时,就有真的价值了。langchain旨在帮助开发人员充分利用llm的全部潜力,用于广泛的应用程序。langchain围绕将不同组件“链接”在一起的核心概念构建,简化了与gpt-3、gpt-4等llm合作的过程,使得我们可以轻松实现聊天机器人、生成式问答、文本摘要等功能。
在这里你可以看到目前langchain已经集成的模块
高兴的是,langchain不仅有python版本,还提供了js/ts版本。
flowise介绍
flowise是基于️langchainjs构建的可免费供商业和个人使用的免费开源项目,它有着一个非常易用的图形用户界面,旨在让人们轻松地可视化和构建llm应用程序,也就是nocode开发llm应用。类似的工具比这个还早的有langflow,但是因为flowise它有着好看的ui界面以及这个项目就是js开发的,因此我选择flowise。举个例子,下面的应用程序展示了一个基本的翻译机器人,同时也演示了如何格式化提示值,而实现下面这个你只需要简单拖拽就可以完成。
而本文要构建网站聊天机器人,本质上和很常见的与已有pdf或者doc文档对话原理是一致的,这里引用一篇文章的示例图片
本质上原理大致是:
•将源文件切成多个文本片段,创建**embeddings**然后存到向量数据库
•将用户提问也创建**embeddings**,将它和上一步创建好的向量对比,通过相近搜索找到相关的文本片段,它的特点是能发现文本相关性,比如汽车和公路
•把问题和历史聊天还有相关片段一起发送给**llm**它便能从中总结出回答