AI创想

标题: 【每天一个知识点】LangChain [打印本页]

作者: AA小狮仔    时间: 2 小时前
标题: 【每天一个知识点】LangChain
作者:CSDN博客
“LangChain” 是一个用于构建由大语言模型(LLMs)驱动的可组合、可交互、多工具协作的智能应用开发框架。它不仅能管理 Prompt、上下文、记忆和工具,还支持构建复杂的“多步骤推理”任务流程。
(, 下载次数: 0)



一、LangChain 简介

1. 核心定位

LangChain 旨在把大语言模型作为决策引擎和控制中枢,支持你快速构建像 ChatGPT 插件、智能问答系统、智能体(Agent)等复杂任务应用。
2. 编程语言支持

主要支持 PythonJavaScript/TypeScript 两种语言版本,社区主要以 Python 为主。

二、LangChain 主要组成模块(Python版)

模块作用描述
PromptTemplates提示词模板构建与变量注入,适配不同任务语境
LLMs/ChatModels封装 OpenAI、Anthropic、Cohere 等模型
Chains把多个组件串联起来构成完整流程(如提问 → 搜索 → 回答)
Agents引入“工具调用”能力,通过思考和行动完成任务(如 ReAct Agent)
Tools第三方工具,如搜索引擎、Python 解释器、API 接口
Memory会话记忆,适用于多轮对话场景
Retrievers向量检索组件,支持 RAG 应用
Document Loaders & Text Splitters文档读取与分块,用于知识库构建

三、典型使用场景

1. 文档问答系统(RAG)

2. Agent 多工具智能体

3. 任务编排(Multi-step Reasoning)


四、LangChain 示例代码(RAG 简易文档问答)
  1. from langchain.chains import RetrievalQA
  2. from langchain.chat_models import ChatOpenAI
  3. from langchain.vectorstores import FAISS
  4. from langchain.embeddings import OpenAIEmbeddings
  5. from langchain.document_loaders import TextLoader
  6. from langchain.text_splitter import CharacterTextSplitter
  7. # 加载文档并切分
  8. loader = TextLoader("example.txt")
  9. documents = loader.load()
  10. text_splitter = CharacterTextSplitter(chunk_size=500, chunk_overlap=50)
  11. texts = text_splitter.split_documents(documents)
  12. # 构建向量库
  13. embeddings = OpenAIEmbeddings()
  14. db = FAISS.from_documents(texts, embeddings)
  15. # 构建问答系统
  16. retriever = db.as_retriever()
  17. llm = ChatOpenAI(temperature=0)
  18. qa = RetrievalQA.from_chain_type(llm=llm, retriever=retriever)
  19. # 测试提问
  20. query = "这篇文档讲了什么?"
  21. response = qa.run(query)
  22. print(response)
复制代码

五、LangChain 与智能体系统的关系

特性LangChain 实现方式
工具调用通过 Tools 与 AgentExecutor 完成
思维链推理(Chain of Thought)通过 Chain 的分步提示构建多轮逻辑链
多Agent协同支持 MultiAgentChain 和外部任务调度引擎集成
RAG 问答与向量数据库 + Retriever 高度集成

原文地址:https://blog.csdn.net/dundunmm/article/details/148291753




欢迎光临 AI创想 (http://llms-ai.com/) Powered by Discuz! X3.4