1. LangChain介绍
官网描述:LangChain is a framework for developing applications powered by language models.(LangChain是一个使用语言模型开发程序的框架)
如果我们想基于语言模型开发自己的应用程序,现阶段最好的解决方案就是使用LangChain。它本质上就是围绕语言模型周边构建的一系列python程序包。比如我们想让ChatGPT在线搜索资料,赋予他读取pdf文档的能力,或者给prompt一定的预设等等,这些都可以使用LangChain来完成。
2. 简单示例 (在线搜索)
测试问题:LangChain和Flowise分别是什么?
我们都知道ChatGPT训练语料截至2021年9月,所以在原版ChatGPT中提问会得到如下回答:
这里简单使用基于SerpAPI搜索服务的示例。当然也可以接入Google或者Bing等其他搜索引擎。首先在当前python环境中安装所需要的包。
然后基于LangChain编写python程序,调用ChatGPT和Serpapi服务同样提问。
得到了联网搜索后的正确结果:
3. Flowise介绍及部署
Flowise是一款开源的图形化构建LangChain程序的工具。地址如下:
首先将仓库Clone到本地:
建议在Linux中部署到docker,先安装docker-compose:
进入项目根目录下的 docker 文件夹
创建 .env 文件并指定 PORT(参考 .env.example)
运行 docker-compose up -d
打开 http://localhost:3000
可以通过 docker-compose stop 停止容器
4. Flowise图形化构建示例
还是刚刚的搜索程序例子,这里使用图形化方式构建:
图形化方式对新手更加友好,但是受限于框架组件数量肯定不如直接使用LangChain功能更丰富,但是完成简单的需求问题不大。而且Flowise还提供一键嵌入其他程序的接口,十分强大。
LangChain十分强大,常见的大语言模型例如llama2、GhatGLM2等等都可以方便地接入。当然它的功能远不止如此。更多功能请查阅文档,我也在探索中。LangChain可视化工具除了Flowise还有LangFlow也用得比较多,可自行使用体验。