大模型学习·第40天:LangChain框架入门——从RAG原理到模型调用的统一接口

一、LangChain是什么?

LangChain 是一个 LLM 应用开发框架,核心理念是为各种大模型实现通用接口,把相关组件"链接"在一起,简化开发难度。

LangChain 不开发大模型,而是大模型的"连接器"。

功能 说明
Prompts 优化提示词
Models 调用各类模型(云端+本地)
History 管理会话历史记录
Indexes 管理和分析文档
Chains 构建功能的执行链条
Agent 构建智能体
bash 复制代码
pip install langchain langchain-community langchain-ollama dashscope chromadb -i https://pypi.tuna.tsinghua.edu.cn/simple

二、RAG(检索增强生成)

RAG = 检索技术 + LLM提示,为大模型提供从特定数据源检索到的信息,修正和补充生成的答案。

为什么需要RAG?

  • 大模型知识不是实时的,训练好后不具备自动更新能力
  • 大模型缺乏领域知识,无法覆盖高度专业化的内容
  • 存在幻觉问题,会生成看似合理但实际错误的信息
  • 数据安全性问题

RAG标准流程:

阶段 作用
索引 加载文档 → 文本分割成chunk → 向量化 → 存入向量数据库
检索 用户query向量化 → 在向量库中匹配相似文本
生成 匹配文本作为上下文 + 问题 → 提交给LLM生成答案

RAG核心价值:解决知识时效性问题,降低模型幻觉,无需重新训练模型。

三、向量

向量就是文本的"数学身份证"------把文字语义转成一串固定长度的数字,让计算机能"看懂"文字并做相似度计算。

  • 文本嵌入模型(如 text-embedding-v1)将文本映射为固定长度的数字序列
  • 余弦相似度衡量两个向量方向是否一致,夹角越小越相似
  • 向量维度越多,语义匹配越精准,但计算压力也越大。1536维是比较好的选择

四、LangChain 模型调用

LLMs(大语言模型):

python 复制代码
# 阿里云千问
from langchain_community.llms.tongyi import Tongyi
llm = Tongyi(model='qwen-max')
res = llm.invoke("帮我讲个笑话吧")

# Ollama本地模型
from langchain_ollama import OllamaLLM
model = OllamaLLM(model='qwen3:4b')
for chunk in model.stream("帮我讲个笑话吧"):
    print(chunk, end="", flush=True)

聊天模型(对话场景):

python 复制代码
from langchain_community.chat_models.tongyi import ChatTongyi
from langchain_core.messages import HumanMessage, AIMessage, SystemMessage

chat = ChatTongyi(model="qwen3-max")
messages = [
    SystemMessage(content="你是一个边塞诗人"),
    HumanMessage(content="写一首唐诗"),
]
for chunk in chat.stream(input=messages):
    print(chunk.content, end="", flush=True)

消息类型 :SystemMessage(角色设定)、HumanMessage(用户输入)、AIMessage(AI回答)。简写形式用二元元组 ("system", "内容") 支持变量占位,运行时动态填充。

嵌入模型(文本向量化):

python 复制代码
from langchain_community.embeddings import DashScopeEmbeddings
model = DashScopeEmbeddings()
model.embed_query("我喜欢你")      # 单次转换
model.embed_documents(['a', 'b'])  # 批量转换

五、LangChain模型API速查表

方式 LLMs 聊天模型 嵌入模型
阿里云千问 from langchain_community.llms.tongyi import Tongyi from langchain_community.chat_models.tongyi import ChatTongyi from langchain_community.embeddings import DashScopeEmbeddings
Ollama本地 from langchain_ollama import OllamaLLM from langchain_ollama import ChatOllama from langchain_ollama import OllamaEmbeddings
调用方法 invoke(批量) / stream(流式) 同上 embed_query(单次) / embed_documents(批量)

六、提示词模板

python 复制代码
from langchain_core.prompts import PromptTemplate

prompt_template = PromptTemplate.from_template(
    "我的邻居姓{lastname},刚生了{gender},你帮我起个名字"
)
prompt_text = prompt_template.format(lastname="张", gender="女儿")

使用 Template 模板在大型工程中更容易做标准化管理,且支持 LangChain 框架的链式调用(Runnable接口)。后续还会学习 FewShotPromptTemplate 和 ChatPromptTemplate。

今日核心总结

  1. LangChain:LLM应用开发框架,把模型、提示词、记忆、检索等组件"链接"在一起
  2. RAG = 检索 + LLM提示:解决大模型知识滞后和幻觉问题,三步走:索引→检索→生成
  3. 向量是文本的数学身份证:把语义转成数字序列,用余弦相似度做语义匹配
  4. 三类模型API:LLMs(文本生成)、聊天模型(对话)、嵌入模型(文本向量化)
  5. PromptTemplate:提示词模板化,支持变量注入和链式调用
相关推荐
蒸蒸yyyyzwd1 小时前
后端相关学习笔记。
笔记·学习
吴凡wudianmei2 小时前
从0搭AI Agent(六):什么时候该把任务拆给多个 Agent
langchain·llm·ai编程
旖旎夜光2 小时前
【C++ 基础入门】C++ 多态(上):虚函数、重写、override/final 与抽象类
开发语言·c++·笔记·学习
大草原的小灰灰3 小时前
LLM应用的标准开发框架LangChain(八)- 中间件
python·中间件·langchain
the局外人3 小时前
LangChain ToolRuntime 入门:context、state 与 store 的实际用法
后端·langchain·agent
橙橙笔记4 小时前
QT的学习第四部分
linux·qt·学习·音视频
叼烟扛炮5 小时前
Linux 学习笔记(五十四):内网穿透实战——用 frp 让外网访问你的私人电脑
linux·服务器·网络·笔记·学习
在猴站学算法5 小时前
(《统计学习方法》(第2版) 李航)第2章 感知机算法
学习·算法·机器学习·统计学习
旖旎夜光5 小时前
【C++ 基础入门】C++ 继承(上):概念、切片、隐藏、默认成员函数与友元
c++·笔记·学习
Godspeed Zhao5 小时前
从零开始学AI24——无监督学习之K均值
学习·机器学习