LangChain是一个帮助构建LLM应用的全套工具集。这里涉及到prompt构建、LLM接入、记忆管理、工具调用、RAG、智能体开发等模块。
为什么使用LangChain?
-
LLMs现有问题
- 无法连接网络,模型本身的数据有截止日期(比如截止到2023年Q4)
- 无法导入私有数据,即不能进行私有化定制
- 不同模型API不同,切换模型时学习成本高。
-
LangChain优势
- LangChain可以帮助大模型去联网,调用Google等搜索引擎的API去搜寻最新数据,然后返回给用户,解决了现有数据不是最新数据问题。
- LangChain可以基于RAG架构开发可服务于特定业务的模型,解决私有化定制问题。
- 使用LangChain可以以统一、规范的方式进行调用,有更好的移植性。
LangChain架构
往小了来说,LangChain可以分为LangChain、LangGroup和LangSmith。
-
LangChain
- 构成应用程序认知架构的chains,Agents,Retrieval Strategies等
-
LangGrough
- LangGraph可以看做基于LangChain的api的进一步封装,能够协调多个Chain、Agent、Tools完成更复杂的任务,实现更高级的功能。
- 在实现多个智能体之间交互的功能时比较有优势
-
LangSmith
- 提供了6大功能,涉及Debugging(调试)、Playground(沙盒)、Prompt Management(提示管理)、Annotation(注释)、Testing(测试)、Monitoring(监控)等。与LangChain无缝集成,帮助你从原型阶段过渡到生产阶段。
- 相当于汽车的表盘,用来检测数据(汽车当前的状态)
-
LangServer
- 将LangChain的可运行项和链部署为REST API,使得它们可以通过网络进行调用。同时支持高并发,稳定性好
- 比如不同语言去调用LangChain就需要通过LangServer
在LangChain当中,最有前途的两个模块就是:LangGraph,LangSmith。
LangChain能做RAG,其它的一些框架也能做,而且做的也不错,比如Llamalndex。所以这时候LangChain要在Agent这块发力,那就需要LangGraph。而LangSmith,在做运维、监控这块有较大优势。
本人还是初学者,文档也还在持续更新中...
有任何错误的地方欢迎大家指出(๑•̀ㅂ•́)و✧