认识LangChain
LangChain是一个开源框架,用于快速开发部署由LLM驱动的应用。LangChain使LLM不仅可以处理文本,还能够在更广泛的环境中进行操作和响应,从而扩展LLM的应用范围。如果把LLM比作CPU,那么LangChain类似于传感器。
LangChain特点和目标
- 标准组件接口:各种大模型及相关组件数量不断增加,导致需要大量时间学习和使用不同厂商的API。LangChain为关键组件提供标准接口,降低大模型使用的门槛,并能方便切换不同的厂商。
- 编排:将多个组件和模型高效连接起来以完成任务的需求日益增长。编排对于构建此类应用至关重要。
- 可观测性和评估:随着应用变得更加复杂,理解其内部运行情况也变得越来越困难。可观测性和评估能够帮助开发人员监控他们的应用程序。
LangChain重要组成
- Models(模型):包装器可连接大型语言模型,如 GPT-4、Hugging Face 及 Ollama 提供的模型。
- Prompt Templates(提示模板):提示模板避免硬编码文本输入,可动态插入用户输入并发送给LLM。
- Chains(链):将多个组件组合,解决特定任务,构建完整语言模型应用程序。
- Tools(工具):使语言模型能与外部 API 交互。
- Embedding 嵌入与向量存储 VectorStore:数据表示和检索手段,为模型提供语言理解基础。
基于LangChain开发应用
下面以知识问答应用来介绍基于大语言模型开发的流程
- 输入部分:用户提出Question。
- 中间处理部分:问题进入由 “prompt”(提示词)和 “vector model”(相似度搜索,一般是向量模型用于检索相关信息 )组成。通过提示词和检索相关信息来为后续大模型处理提供更准确的输入,然后调用LangChain 中的LLMs。
- 输出部分:经过处理后输出 “Answer /Action”,也就是给出答案或者执行相应动作,同时还能调用 “Tool”,表明在必要时可以借助外部工具辅助回答。
LangChain生态
LangGraph
LangGraph是开源框架,专注于构建、管理基于大语言模型应用的框架,能以可视化方式设计和编排LLM 工作流 。
LangSmith
LangSmith是一个平台,用于跟踪、评估和监控大语言模型应用的平台。并支持提示词管理。
结束
LangChain可以快速切换不同的LLM和向量数据库等组件。LangChain提供高阶能力,比如工具调用和流式输出。LangChain、LangSmith 和 LangGraph 可以协同构建具有复杂流程的大语言模型应用产品。
参考
LangChain教程 | langchain 文件加载器使用教程 | Document Loaders全集_langchain csvloader-CSDN博客