前言
刚翻开了久未翻开的简书文章,我发现距离我上次完结的《Rasa对话体系踩坑记》已曩昔近五年。那时候我家小棉袄还未出生。记得在那个时期,任务型对话体系是干流,相关概念如NLU(自然言语理解)、tracker(跟踪器)、action(动作)和story(故事)等等,这些名词已深化人心,Rasa成为这个范畴最具代表性的结构。
然而,到了2022年末,ChatGPT的面世彻底改变了这个格局。这款大言语模型的推出让人震惊,感到前所未有的振奋。随后的半年,一批新的大言语模型相继面世,包含GPT-4、Google的Bard、百度的文心一言和讯飞的星火大模型等等,它们共同营造出大言语模型的繁荣景象。与此同时,基于大言语模型的垂直范畴也催生了新的开发概念——Prompt开发。在Prompt开发范畴的结构中,Langchain最具代表性。
因此,我开启了一个全新的系列,以Langchain为核心,共享我探究这个结构的经验,就像“摸着石头过河”一样。
Langchain-Chatbot
连续传统,代码传送门:Langchain-Chatbot。
在深化介绍之前,我们先了解一下Langchain。
Langchain是一个用于开发由言语模型驱动的应用程序的结构。它为开发人员供给了一种标准的接口,使他们能够创建超出单个大言语模型(LLM)调用的调用序列。Langchain的核心在于环绕LLMs构建的结构,能够用于谈天机器人、生成式问答、摘要等。Langchain供给了许多工具和模块,包含模型(model)、提示(prompt)、链(chain)、代理(agent)、记忆(memory)等。
这个Langchain-Chatbot项目的方针是完成一个AI占卜功用。下面是简单的效果展现:
项目设计思路如下:
- 首要下载《周易》等占卜相关的书籍,将其放入docs文件夹中。然后经过
OpenAIEmbeddings
将文本转化为向量化(Embedding),并经过FAISS进行索引存储。你也能够挑选Pinecone、ElasticSearch、Annoy、Chroma等其他工具进行向量存储。 - 用户提出的问题将运用VectorStore作为先验常识,再结合LLM进行回答。在这个项目中,我运用了OpenAI的
gpt-3.5-turbo
模型作为示例。
结束语
这篇文章主要是对曩昔的回顾以及Langchain的简单介绍。在接下来的文章中,我将从以下几个方面共享实战经验:
- 建立UI前端并对接谈天服务
- 完成谈天服务的agent
- 完成memory以及其作用
- 对谈天服务的prompt进行改写和调试
- 完成stream流式传输及前端WebSocket的完成
- UI的修改和服务的布置