AI创想

标题: LangChain 入门学习 [打印本页]

作者: niandihuo    时间: 4 天前
标题: LangChain 入门学习
作者:CSDN博客
文章目录


从零开始学习LangChain:新手入门全指南

一、什么是LangChain?

1. 核心定义

LangChain是一个开源框架,专为开发"由大语言模型(LLMs)驱动的应用"设计。简单说,它就像一个"桥梁",能让GPT-4、Claude等模型:
2. 用类比理解LangChain

官方文档里有个很形象的比喻:LangChain相当于数据库领域的JDBC
3. 核心组件(3大模块)

LangChain的功能通过以下三个核心组件实现:
二、为什么要用LangChain?

对于新手来说,LangChain的核心价值在于:
三、安装与环境配置

1. 基础安装

首先通过pip安装核心库:
  1. # 安装LangChain核心框架
  2. pip install langchain
  3. # 安装OpenAI集成(如果用GPT模型)
  4. pip install langchain-openai
复制代码
2. LangSmith配置(必学工具)

LangSmith是LangChain官方的开发平台,用于调试、测试大模型应用,强烈建议新手使用
步骤如下:
LangSmith的免费版包含:
四、核心功能与基础用法

1. 模型调用(Models)

用统一接口调用不同大模型,以OpenAI的GPT-4为例:
  1. # 导入OpenAI模型包装器from langchain_openai import ChatOpenAI
  2. # 初始化模型(需要OpenAI API Key)
  3. os.environ["OPENAI_API_KEY"]="你的OpenAI密钥"
  4. model = ChatOpenAI(
  5.     model="gpt-4",# 模型名称
  6.     temperature=0.7# 创造性参数(0-1,值越高回答越灵活))# 调用模型生成文本
  7. response = model.invoke("用一句话介绍LangChain")print(response.content)
复制代码
参数说明:
2. 提示词模板(Prompt Templates)

避免重复编写提示词,动态插入变量:
  1. from langchain.prompts import PromptTemplate
  2. # 定义模板(用{变量名}作为占位符)
  3. template ="请将以下内容翻译成{language}:{text}"
  4. prompt = PromptTemplate(
  5.     input_variables=["language","text"],# 声明变量
  6.     template=template
  7. )# 生成具体提示词
  8. formatted_prompt = prompt.format(
  9.     language="英语",
  10.     text="我要去上课了,不能和你聊天了。")# 调用模型
  11. response = model.invoke(formatted_prompt)print(response.content)# 输出:"I have to go to class and can't chat with you."
复制代码
3. 链(Chains):组合组件

用LLMChain将提示词模板和模型组合:
  1. from langchain.chains import LLMChain
  2. # 创建链(连接提示词模板和模型)
  3. chain = LLMChain(prompt=prompt, llm=model)# 直接运行链(自动处理格式和调用)
  4. response = chain.run({"language":"法语","text":"我要去上课了,不能和你聊天了。"})print(response)# 输出法语翻译结果
复制代码
4. 代理(Agents):让模型自主决策

Agent能让模型根据需求调用工具(如搜索引擎、计算器)。以简单数学计算为例:
  1. # 安装必要库
  2. pip install langchain-tools
  3. from langchain.agents import initialize_agent, AgentType
  4. from langchain.tools import CalculatorTool
  5. # 初始化工具(这里用计算器工具)
  6. tools =[CalculatorTool()]# 创建代理
  7. agent = initialize_agent(
  8.     tools,
  9.     model,
  10.     agent=AgentType.CHAT_ZERO_SHOT_REACT_DESCRIPTION,# 常用代理类型
  11.     verbose=True# 显示思考过程)# 让代理解决问题
  12. response = agent.run("3的平方加上5的立方等于多少?")print(response)# 输出:134(3²+5³=9+125=134)
复制代码
AgentType.CHAT_ZERO_SHOT_REACT_DESCRIPTION的特点:
5. 向量存储与检索(VectorStores)

用于处理文档数据,实现"检索增强生成(RAG)",步骤如下:
五、实战案例:构建RAG对话机器人

RAG(检索增强生成)是LangChain最常用的场景,能让机器人基于特定文档回答问题。完整流程如下:
代码示例(整合版):
  1. # 1. 加载文档
  2. loader = PyPDFLoader("课程笔记.pdf")
  3. documents = loader.load()# 2. 分割文本
  4. text_splitter = RecursiveCharacterTextSplitter(chunk_size=1000, chunk_overlap=200)
  5. splits = text_splitter.split_documents(documents)# 3. 存储向量
  6. vectorstore = Chroma.from_documents(splits, OpenAIEmbeddings())
  7. retriever = vectorstore.as_retriever()# 4. 创建问答链
  8. qa_chain = RetrievalQA.from_chain_type(
  9.     llm=model,
  10.     chain_type="stuff",
  11.     retriever=retriever,
  12.     return_source_documents=True# 返回引用的文档)# 5. 提问并获取答案
  13. result = qa_chain({"query":"课程中提到的LangChain核心组件有哪些?"})print("答案:", result["result"])print("引用文档:",[doc.metadata for doc in result["source_documents"]])
复制代码
六、总结与学习建议

1. 核心知识点回顾

2. 新手学习路径

3. 推荐资源

希望这篇指南能帮你快速入门LangChain!如果有任何问题,欢迎在评论区交流~

原文地址:https://blog.csdn.net/TTKunn/article/details/150288247




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