LangChain整体架构设计

76 阅读2分钟

LangChain是一个帮助构建LLM应用的全套工具集。这里涉及到prompt构建、LLM接入、记忆管理、工具调用、RAG、智能体开发等模块。

为什么使用LangChain?

  • LLMs现有问题

    • 无法连接网络,模型本身的数据有截止日期(比如截止到2023年Q4)
    • 无法导入私有数据,即不能进行私有化定制
    • 不同模型API不同,切换模型时学习成本高。
  • LangChain优势

    • LangChain可以帮助大模型去联网,调用Google等搜索引擎的API去搜寻最新数据,然后返回给用户,解决了现有数据不是最新数据问题。
    • LangChain可以基于RAG架构开发可服务于特定业务的模型,解决私有化定制问题。
    • 使用LangChain可以以统一、规范的方式进行调用,有更好的移植性。

LangChain架构

往小了来说,LangChain可以分为LangChain、LangGroup和LangSmith。

image.png

  • 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,在做运维、监控这块有较大优势。


本人还是初学者,文档也还在持续更新中...

有任何错误的地方欢迎大家指出(๑•̀ㅂ•́)و✧