LangChain

目录

  • [一、LangChain 到底是啥?](#一、LangChain 到底是啥?)
  • 二、环境准备
    • [1. 前提](#1. 前提)
    • [2. 安装依赖](#2. 安装依赖)
    • [3. 拿到大模型 API Key](#3. 拿到大模型 API Key)
  • 三、让LangChain调用大模型
  • 四、核心语法详解
    • [1. LLM / ChatModel(大模型核心)](#1. LLM / ChatModel(大模型核心))
    • [2. Loader(文档加载器)](#2. Loader(文档加载器))
    • [3. Vectorstore/Index(向量索引)](#3. Vectorstore/Index(向量索引))
    • [4. Chain(链)](#4. Chain(链))
    • [5. Memory(记忆)](#5. Memory(记忆))
  • [五、实战Demo:RAG检索 + 带记忆对话](#五、实战Demo:RAG检索 + 带记忆对话)
    • [1. 准备工作](#1. 准备工作)
    • [2. 完整代码](#2. 完整代码)
  • 六、3个核心概念

一、LangChain 到底是啥?

LangChain是一个用于开发由大型语言模型(llm)支持的应用程序的框架。

大模型(比如通义千问、ChatGLM、文心一言)本身只会聊天、写文案、回答问题,但它做不了这些事:

  • 读你电脑里的 PDF/Word/文本文件
  • 联网查最新新闻、天气
  • 连数据库查数据
  • 按固定步骤自动执行任务

LangChain 就是一个「连接器+脚手架」

把大模型和各种工具(文件、网络、数据库、代码)绑在一起,让AI变成能干活的实用工具,而不是只会聊天的机器人。

二、环境准备

1. 前提

电脑装了 Python 3.8+(没有就先装Python)

2. 安装依赖

打开终端/CMD,复制运行:

bash 复制代码
# 安装核心包
pip install langchain

# 安装国产大模型包(用通义千问举例,免费好用)
pip install dashscope

3. 拿到大模型 API Key

阿里云通义千问为例:

  1. 去阿里云百炼平台注册
  2. 创建API-KEY
  3. 复制保存好你的 DASHSCOPE_API_KEY

三、让LangChain调用大模型

python 复制代码
import os
from langchain.llms import Tongyi

# 填入你的API Key
os.environ["DASHSCOPE_API_KEY"] = "你的key"

# 初始化大模型
llm = Tongyi(model_name="qwen-turbo")

# 提问
question = "用一句话介绍LangChain"
answer = llm(question)

# 输出结果
print(answer)

四、核心语法详解

所有LangChain代码都是这5个组件拼出来的:

1. LLM / ChatModel(大模型核心)

作用 :对接大模型(通义、ChatGPT、文心一言),是AI的「大脑」
核心语法

python 复制代码
# 1. 导入模型类
from langchain.llms import 模型名

# 2. 初始化模型(固定写法)
llm = 模型名(参数)

# 3. 调用模型(两种写法通用)
# 写法1:直接传文本
llm("你的问题")
# 写法2:predict方法
llm.predict("你的问题")

关键词llm 是所有代码的基础,代表AI大脑

2. Loader(文档加载器)

作用 :读取本地文件(txt/pdf/word)、网页、数据库,是AI的「眼睛」
核心语法

python 复制代码
# 1. 导入加载器(不同文件用不同Loader)
from langchain.document_loaders import TextLoader  # 读txt
# from langchain.document_loaders import PyPDFLoader  # 读pdf

# 2. 初始化加载器(传文件路径)
loader = TextLoader("文件路径", encoding="utf-8")

# 3. 加载文档(底层方法,无需手动写)
# loader.load()

关键词loader = 读文件,所有RAG代码第一步必用

3. Vectorstore/Index(向量索引)

作用 :把文档转成AI能检索的格式,是RAG的「检索库」
核心语法

python 复制代码
# 1. 导入索引创建器
from langchain.indexes import VectorstoreIndexCreator

# 2. 从加载器创建索引(固定写法)
index = VectorstoreIndexCreator().from_loaders([loader])

# 3. 检索提问
index.query("你的问题", llm=大脑)

关键词index = 检索本地文档,RAG核心

4. Chain(链)

作用 :把「大脑+检索+记忆」串起来,是AI的「工作流」
核心语法

python 复制代码
# 1. 导入链
from langchain.chains import ConversationChain

# 2. 初始化链(传大脑+记忆)
chain = ConversationChain(llm=llm, memory=记忆)

# 3. 执行链
chain.predict(input="内容")

关键词chain = 执行任务的流水线,所有自动化功能都靠它

5. Memory(记忆)

作用 :让AI记住对话历史,是AI的「记性」
核心语法

python 复制代码
# 1. 导入记忆类
from langchain.memory import ConversationBufferMemory

# 2. 初始化记忆
memory = ConversationBufferMemory()

关键词memory = 对话记忆,配合Chain使用

五、实战Demo:RAG检索 + 带记忆对话

最具代表性 :同时集成 LLM大模型 + Loader文件加载 + Vectorstore向量检索 + Memory对话记忆 + Chain链式调用
核心功能:基于本地文档问答 + 永久记住对话历史,是企业级AI应用的基础原型

1. 准备工作

新建 info.txt 文件,写入个人信息:

复制代码
我的名字是李华
今年28岁
职业是软件工程师
居住在上海
爱好是摄影、旅行、看书

2. 完整代码

python 复制代码
import os
from langchain.llms import Tongyi
from langchain.document_loaders import TextLoader
from langchain.indexes import VectorstoreIndexCreator
from langchain.memory import ConversationBufferMemory
from langchain.chains import RetrievalQA
from langchain.chains import ConversationalRetrievalChain

# 配置API Key
os.environ["DASHSCOPE_API_KEY"] = "你的key"

# ===================== 1. 初始化核心组件 =====================
# 初始化AI大脑(LLM语法)
llm = Tongyi(model_name="qwen-turbo")
# 初始化对话记忆(Memory语法)
memory = ConversationBufferMemory(memory_key="chat_history", return_messages=True)

# ===================== 2. 加载并构建本地文档检索库 =====================
# 读取本地文件(Loader语法)
loader = TextLoader("info.txt", encoding="utf-8")
# 创建向量索引(Vectorstore语法)
index = VectorstoreIndexCreator().from_loaders([loader])
# 获取检索器(RAG核心组件)
retriever = index.vectorstore.as_retriever()

# ===================== 3. 构建综合对话链(Chain语法) =====================
# 融合:检索 + 记忆 + 大模型 = 终极对话链
qa_chain = ConversationalRetrievalChain.from_llm(
    llm=llm,
    retriever=retriever,
    memory=memory
)

# ===================== 4. 开始对话测试 =====================
# 问题1:查询文档内容
print("问题1:我的名字和职业是什么?")
result1 = qa_chain({"question": "我的名字和职业是什么?"})
print("AI回答:", result1["answer"], "\n")

# 问题2:基于记忆+文档追问(AI会记住上下文)
print("问题2:我居住在哪里?爱好是什么?")
result2 = qa_chain({"question": "我居住在哪里?爱好是什么?"})
print("AI回答:", result2["answer"], "\n")

# 问题3:自由对话(验证记忆功能)
print("问题3:刚才你都知道了我的哪些信息?")
result3 = qa_chain({"question": "刚才你都知道了我的哪些信息?"})
print("AI回答:", result3["answer"])

六、3个核心概念

  1. Loader(加载器):读文件、PDF、网页的工具
  2. Chain(链):把「大模型+步骤+工具」串起来
  3. Memory(记忆):让AI记住之前的对话内容
相关推荐
Cloud云卷云舒几秒前
云卷云舒:HaishanDB的AI原生能力主要应用场景
数据库·人工智能·ai-native·haishandb·移动云长期记忆
梦梦代码精几秒前
开源AI应用平台BuildingAI解析:插件化架构、应用市场与热门案例
人工智能·机器学习·docker·开源
半个落月15 分钟前
用 LangChain 连接远程 MCP:从工具发现到多轮调用闭环
人工智能·后端·node.js
码上解惑25 分钟前
从模型接入到应用运行:智能体开发平台的整体架构设计
人工智能·agent·智能体·spring ai
湘美书院--湘美谈教育29 分钟前
湘美谈教育湘美书院大湘西文学系列:AI时代的武侠小说怎么写
大数据·人工智能·深度学习·机器学习·生活
Geoking.36 分钟前
JSON vs JSONL:从数据格式到 AI Agent 的工程实践
人工智能·深度学习·json
饼干哥哥37 分钟前
腾讯会议出AI同传了?这下跨境人开会不用担心哑巴英语了
人工智能·性能优化·腾讯
亲爱的译官.38 分钟前
实测|告别手持翻译设备,AR眼镜能否解决跨语言沟通痛点?
人工智能·ar·亲爱的翻译官·翻译设备
Nturmoils1 小时前
把工具变成可发现能力:鸿蒙端动态能力注册表实践
人工智能
ZGIS智博创享1 小时前
矿产数智化专题连载③ | 深挖AI智能找矿内核:以传统成矿理论为根基,算法赋能隐伏矿体突破
人工智能·知识图谱·ai算法·ai找矿·地质找矿逻辑