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记住之前的对话内容
相关推荐
青衫码上行1 小时前
如何接入AI大模型
java·人工智能·ai·langchain·ai编程
创意岛1 小时前
AI时代,你的品牌在城市发展中“被消失”了吗?
人工智能·python
吃好睡好便好1 小时前
在Matlab中绘制圆锥三维曲面图
开发语言·人工智能·学习·算法·matlab·信息可视化
沪漂阿龙1 小时前
AI大模型面试题:数据处理与特征工程详解——特征工程、缺失值、标准化、归一化、特征选择、数据不平衡、数据泄漏一次讲透
人工智能·机器学习
CORNERSTONE3651 小时前
如何理解工业软件 PLM、ERP、MES 的边界?
大数据·人工智能·plm·产品全生命周期管理
AI前沿资讯1 小时前
一站式 AI 3D 创作首选:V2Fun—— 直连 Unity + 多人动捕双核心,重塑轻量化生产管线
人工智能·3d·unity
小袁说公考1 小时前
2026广东公考培训标杆深度解析:广东粉笔——科技赋能本土,领跑粤考赛道
大数据·人工智能·经验分享·笔记·科技·其他
victory04311 小时前
DeepSeek-R1:通过强化学习激励大语言模型的推理能力 技术报告中文翻译
人工智能·语言模型·自然语言处理
MediaTea1 小时前
AI 术语通俗词典:交叉验证法
人工智能