大模型应用之使用LangChain实现RAG

【大模型RAG实战】基于LangChain实现RAG应用 大模型应用开发框架LangChain被开发者广泛应用。接下来介绍LangChain中与RAG相关的组件,并利用LangChain构建一个可视化的大模型RAG应用,用于回答指定PDF中的相关问题。 阅读详情

LangChain介绍

2022年10月LangChain由 Lson Chase 创建,LangChain围绕 LLMs(大语言模型)建立,为各种 LLMs 实现通用接口,简化 LLMs 相关开发,方便开发者快速构建复杂的 LLMs 应用。

LangChain 是一个用于开发大语言模型(LLM)相关应用的 Python 第三方库,它是一个 集大成者/主力框架,提供了构建复杂LLM应用所需的各种功能组件和API。核心目标是让开发者能够便捷地调用 LLM 的全部能力。后续学习与开发 RAG(检索增强生成) 应用的主力框架。

环境设置

pip install langchain langchain-community langchain-ollama dashscope chromadb -i https://pypi.tuna.tsinghua.edu.cn/simple
  • langchain:LangChain 框架的核心主包,提供了基础架构和核心组件。

  • langchain-community: 社区支持包,集成了大量第三方模型、工具和功能,极大地扩展了 LangChain 的能力

  • langchain-ollama: 专门用于支持调用 Ollama 框架托管部署的本地大语言模型

  • dashscope: 阿里云 通义千问 大模型的官方 Python SDK。用于通过 LangChain 调用阿里云的模型服务。

  • chromadb: LangChain 兼容多种向量数据库如chromadb,用于实现文档的存储、检索与分析,这是构建 RAG 应用的关键组件

RAG介绍

RAG主要针对大语言模型固有的以下四个关键问题:

  • 领域知识缺乏:LLM的训练数据主要来自公开的互联网和开源数据集,缺乏特定领域(如企业、专业)的私有知识。

  • 知识过时:模型训练完成后知识即固化,无法自动更新,导致信息滞后。

  • 幻觉问题:模型可能生成看似合理但实际错误或虚构的信息。

  • 安全与可控性:难以控制模型生成内容的范围和准确性。

RAG通过引入外部知识检索,RAG能够:

  • 补充领域知识和私有数据

  • 整合实时数据

  • 减少生成的不确定性(缓解幻觉)

  • 增强数据安全与可控性

  • 无需重新训练模型,相比微调(Fine-tuning),RAG只需更新知识库,成本更低,效率更高

RAG 标准流程由索引(Indexing)、检索(Retriever)和生成(Generation)三个核心阶段组成。

  • 索引阶段

    ,通过处理多种来源多种格式的文档提取其中文本,将其切分为标准长度的文本块(chunk),并进行嵌入向量化(embedding),向量存储在向量数据库(vector database)中。

    • 加载文件

    • 内容提取

    • 文本分割,形成 chunk

    • 文本向量化

    • 存向量数据库

  • 检索阶段

    用户输入的查询(query)被转化为向量表示,通过相似度匹配从向量数据库中检索出最相关的文本块。

    • query 向量化

    • 在文本向量中匹配出与问句向量相似的 top_k 个

  • 生成阶段

    ,检索到的相关文本与原始查询共同构成提示词(Prompt),输入大语言模型(LLM),生成精确且具备上下文关联的回答。

    • 匹配出的文本作为上下文和问题一起添加到 prompt 中

    • 提交给 LLM 生成答案:

简单来说,RAG分两条线:离线流程、在线流程

基础调用阿里云通义千问大模型

1、介绍

LangChain模型组件集成了多种模型,并为所有模型提供统一的精简接口。目前支持以下三类模型:

  • LLMs(大语言模型):技术范畴统称,基于大参数量、海量文本训练的Transformer架构模型。主要理解和生成自然语言。服务于文本生成场景。

  • Chat Models(聊天模型):专为对话场景优化的LLMs。模拟人类对话的轮次交互。主要服务于聊天场景。

  • Text Embeddings Models(文本嵌入模型):接收文本输入,输出文本的向量表示。

阿里云通义千问系列主要来源于langchain_community包。

  • 常用大模型下载库:

    • Hugging Face: https://huggingface.co/models

    • ModelScope: https://modelscope.cn/models

2、调用LLMs示例

LangChain 调用阿里云通义千问示例

from langchain_community.llms.tongyi import Tongyi
# 实例化模型llm = Tongyi(model='qwen-max')
# 模型推理res = llm.invoke("帮我讲个笑话吧")print(res)

通过 langchain_ollama 包导入 OllamaLLM 类,即可调用本地已启动的 Ollama 模型。

(确保 Ollama 服务已启动。已提前通过 Ollama 下载好需要使用的模型。)

from langchain_ollama import OllamaLLM
# 实例化模型,指定模型名称(例如:"qwen3:4b")model = OllamaLLM(model="qwen3:4b")
# 通过 invoke 方法调用模型res = model.invoke(input="你是谁呀能做什么?")print(res)

3、调用聊天模型示例

在聊天模型中,消息通常分为以下三种类型,使用时需按约定传入对应的值:

消息类型说明对应 OpenAI 库中的角色
AIMessageAI 输出的消息,即模型对问题的回答或生成的响应。assistant 角色
HumanMessage用户向模型发送的提示信息,例如问题、指令等。user 角色
SystemMessage用于设定模型的上下文环境、角色或任务背景,如系统指令、角色扮演设定、输出格式要求等。system 角色

通义千问示例

from langchain_community.chat_models.tongyi import ChatTongyifrom langchain_core.messages import HumanMessage, SystemMessage, AIMessage
# 使用聊天模型model = ChatTongyi(model="qwen3-max")
messages = [    SystemMessage(content="你是一个边塞诗人"),    HumanMessage(content="写一首唐诗"),    AIMessage(content="锄禾日当午,汗滴禾下土,谁知盘中餐,粒粒皆辛苦。"),    HumanMessage(content="按照你上一个回复的格式,在写一首唐诗")]
res = model.stream(input=messages)
for chunk in res:    print(chunk.content, end="",flush=True)

ollama本地调用示例

from langchain_community.chat_models.ollama import ChatOllamafrom langchain_core.messages import HumanMessage, SystemMessage, AIMessage
# 使用聊天模型model = ChatOllama(model="qwen3:4b")
messages = [    SystemMessage(content="你是一个边塞诗人"),    HumanMessage(content="写一首唐诗"),    AIMessage(content="锄禾日当午,汗滴禾下土,谁知盘中餐,粒粒皆辛苦。"),    HumanMessage(content="按照你上一个回复的格式,在写一首唐诗")]
res = model.stream(input=messages)
for chunk in res:    print(chunk.content, end="",flush=True)

4、调用文本嵌入模型

Embeddings Models 嵌入模型的特点:将字符串作为输入,返回一个浮点数的列表(向量)。在 NLP 中,Embedding 的作用就是将数据进行文本向量化。

调用阿里​​​​​​​

from langchain_community.embeddings import DashScopeEmbeddings
# 通过阿里的DashScopeEmbeddings默认使用text-embeddings-v1 文本嵌入模型model = DashScopeEmbeddings()
# 文本向量化print(model.embed_query("在哪里"))# 批量文本向量化print(model.embed_documents(["你好","吃什么饭"]))

调用本地Ollama​​​​​​​

from langchain_ollama import OllamaEmbeddings
# 通过阿里的DashScopeEmbeddings默认使用text-embeddings-v1 文本嵌入模型model = OllamaEmbeddings(model="qwen3-embedding:0.6b")
# 文本向量化print(model.embed_query("在哪里"))# 批量文本向量化print(model.embed_documents(["你好","吃什么饭"]))

提示词prompt

1、zero-shot的提示词

提示词优化在模型应用中非常重要,LangChain提供了PromptTemplate类,用来协助优化提示词。

PromptTemplate 表示提示词模板,可以构建一个自定义的基础提示词模板,支持变量的注入,最终生成所需的提示词。​​​​​​​

from langchain_community.llms.tongyi import Tongyifrom langchain_core.prompts import PromptTemplate
# 没有任何提示,即zero-shot思想prompt_template = PromptTemplate.from_template(    "我到邻居姓{lastname},刚生了{gender},你帮我起个名字")
# 因为Tongyi属于llms包下的需要使用大语言模型,不能用其他类型模型如聊天模型qwen3-maxmodel = Tongyi(model="qwen-max")
# 填充提示词模板,像LLM模型提问# template_format = prompt_template.format(lastname="张", gender="女儿")# res = model.invoke(input=template_format)# print(res)

# 通过框架里的链式写法,(注意:字符串无法加入链式写法)chain = prompt_template | modelres = chain.invoke({"lastname": "张", "gender": "女儿"})print(res)

2、few-shot的提示词

FewShotPromptTemplate: 支持基于模板注入任意数量的示例信息。​​​​​​​

from langchain_community.llms.tongyi import Tongyifrom langchain_core.prompts import PromptTemplate, FewShotPromptTemplate
# 示例的模板example_template = PromptTemplate.from_template("单词: {word},反义词: {antonym}")
# 示例的动态数据注入,要求是list内部套字典examples_data = [    {"word": "大", "antonym": "小"},    {"word": "上", "antonym": "下"}]
few_shot_template = FewShotPromptTemplate(    example_prompt=example_template,  # 示例数据的模板    examples=examples_data,           # 示例的数据(用来注入动态数据的),list内套字典    prefix="告知我单词的反义词,我提供如下的示例:",      # 示例之前的提示词    suffix="基于前面的示例告知我,{input_word}的反义词是?",  # 示例之后的提示词    input_variables=['input_word']    # 声明在前缀或后缀中所需注入的变量名)
# 生成最终提示词prompt_text = few_shot_template.invoke(input={"input_word": "左"}).to_string()print(prompt_text)
tongyi = Tongyi(model="qwen-max")print(tongyi.invoke(input(prompt_text)))

3、历史会话的提示词

ChatPromptTemplate: 支持注入任意数量的历史会话信息。​​​​​​​

from langchain_community.chat_models import ChatTongyifrom langchain_core.prompts import ChatPromptTemplate, MessagesPlaceholder
# 获取历史提示词history_chat = [    ("human", "请来一首唐诗"),    ("ai", "白日依山尽,黄河入海流。欲穷千里目,更上一层楼。"),    ("human", "请再来一首唐诗"),    ("ai", "锄禾日当午,汗滴禾下土,谁知盘中餐,粒粒皆辛苦。"),]chat_message = ChatPromptTemplate.from_messages(    [        ("system", "你是一个边塞诗人,可以作诗"),        MessagesPlaceholder("history_chat"),        ("human", "请再来一首唐诗"),    ])prompt_txt = chat_message.invoke({"history_chat": history_chat}).to_string()
# 提问AItongyi = ChatTongyi(model="qwen3-max")res = tongyi.invoke(prompt_txt)print(res.content)

Chain链式调用

「将组件串联,上一个组件的输出作为下一个组件的输入」是 LangChain 链(尤其是 | 管道链)的核心工作原理,这也是链式调用的核心价值:实现数据的自动化流转与组件的协同工作,如下。

chain = prompt_template | model

核心前提:即Runnable子类对象才能入链(以及Callable、Mapping接口子类对象也可加入(后续了解用的不多))。我们目前所学习到的组件,均是Runnable接口的子类,如下类的继承关系:

from langchain_community.chat_models import ChatTongyifrom langchain_core.prompts import ChatPromptTemplate, MessagesPlaceholderfrom langchain_core.runnables import RunnableSerializable
chat_prompt_template = ChatPromptTemplate.from_messages([    ("system", "你是一个边塞诗人,可以作诗。"),    MessagesPlaceholder("history"),    ("human", "请再来一首唐诗"),])
history_data = [    ("human", "你来写一个唐诗"),    ("ai", "床前明月光,疑是地上霜。举头望明月,低头思故乡"),    ("human", "好诗再来一个"),    ("ai", "锄禾日当午,汗滴禾下土。谁知盘中餐,粒粒皆辛苦")]
model = ChatTongyi(model="qwen3-max")
# 组成链,要求每一个组件都是Runnable接口的子类chain: RunnableSerializable = chat_prompt_template | model
# 通过链去调用invoke或stream# res = chain.invoke({"history": history_data})# print(res.content)
for chunk in chain.stream({"history": history_data}):    print(chunk.content,end="",flush= True)
  • 通过 | 链接提示词模板对象和模型对象

  • 返回值 chain 对象是 RunnableSerializable对象

    • 是 Runnable接口的直接子类

    • 也是绝大多数组件的父类

  • 通过 invoke或stream进行阻塞执行或流式执行

组成的链在执行上有 | 上一个组件的输出作为下一个组件的输入的特性。所以有如下执行流程:

最后

从0到1!大模型(LLM)最全学习路线图,建议收藏!

想入门大模型(LLM)却不知道从哪开始? 我根据最新的技术栈和我自己的经历&理解,帮大家整理了一份LLM学习路线图,涵盖从理论基础到落地应用的全流程!拒绝焦虑,按图索骥~~

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

基于LangChain-Chatchat实现的RAG-本地知识库的问答应用[1]-最新版快速实践并部署(检索增强生成RAG大模型) 阅读详情

相关推荐

【AI大模型应用开发】【LangChain系列】实战案例5:用LangChain实现灵活的Agents+RAG,该查时查,不该查时就别查

如何优化这个过程,让我们的RAG程序在必要时才去检索,不必要时,直接使用大模型原有数据来回答呢?本文我们一起来学习下。本文我们将使用 LangChain 的 Agents 模块来将 Retriever 当作工具,让大模型在有必要时才去使用它。

同学小张的博客 2814

LangChain 安装

LangChain是由Harrison Chase于2022年10月创建的大语言模型(LLMs)开发框架。它通过标准化接口将LLMs组件链接起来,简化复杂应用的开发流程。安装时需加载核心包(langchain)、社区支持包(langchain-community)、本地模型调用包(langchain-ollama)、阿里云SDK(dashscope)及向量数据库(chromadb)。该框架不提供LLMs本身,而是专注于构建通用接口,降低开发者使用LLMs的难度。

webMinStudent的博客 281

【大模型入门】LangChain超详细教程(基础知识 + RAG实战项目 + Agent实战项目)

本文摘要: 本文详细介绍了LangChain框架的安装配置、核心功能及实际应用案例。主要内容包括: LangChain安装与配置 通过pip安装核心包及扩展组件 API密钥环境变量配置方法 系统环境验证步骤 RAG检索增强生成技术 完整工作流程:索引构建→检索→增强→生成 向量数据库原理与应用 本地知识库更新方案(含MD5去重) LangChain核心组件 大语言模型调用(阿里云/本地Ollama) 提示词模板设计(通用/少样本/聊天) Chain链式编程实现复杂流程 会话记忆管理(临时/长期存储) 实战项

weixin_61639349的博客 2458

LangChain:RAG开发

另外没有api_key是因为系统环境配置了,这是为了安全,如果没有配置,就在model前面加上api_key然后输入的密钥就行。:通过处理多种来源多种格式的文档提取其中文本,将其切分为标准长度的文本块,并进行嵌入向量化,向量存储再向量数据库中。在我们用的时候,ai回答我们的时候总是直接把整个语句给我们了,如果语句过长用户就会等较长的时间,体验感较差。在我们用网页版的豆包和Deepseek的时候它们是慢慢的给我们回复的,这就是流式输出。

c____shen的博客 447

Python实战:ERA5风场数据区域提取与风向合成可视化全流程解析

本文详细解析了使用Python处理ERA5风场数据的完整流程,包括NC文件读取、特定区域数据提取、u/v分量合成风向风速的计算,以及利用Matplotlib进行风场时空演变可视化。内容涵盖从环境搭建、数据获取到高级绘图与性能优化的实战经验,为气象数据分析、风能评估及气候研究提供了一套清晰、可操作的技术指南。

swift5iosmith的博客 299

SpringBoot文件上传实战:MultipartFile重复读取的3种方法(附避坑指南)

本文详细介绍了SpringBoot中处理MultipartFile重复读取的3种实用方法,包括字节数组缓存法、临时文件法和流重置法,并提供了避坑指南和性能优化技巧。特别适合需要多次读取上传文件内容的开发者,帮助解决InputStream流只能读取一次的问题。

weixin_28710999的博客 396

大模型应用之使用LangChain实现RAG(一)

大模型应用之使用LangChain实现RAG(一)

778

badusb详细制作教程(两种方式实现远控)

badusb是一种几乎可以突破任何杀毒软件和防火墙的设备,堪称渗透测试利器 文章目录前言一、什么是badusb?二,badusb的优点三,badusb是如何攻击的?badusb原理HID攻击漏洞产生原因三、准备步骤1.设备2,编辑器的安装与设置四,编写代码(重点)第一种: SEToolkit + badusb实现PowerShell注入攻击第二种:Cobalt Strike + badusb 实现PowerShell注入攻击五,烧录六,badusb有多强大攻击场景总结 BadUSB是《黑客军团》中

Ghost_system的博客 1万+

大模型RAG实战 | 基于LangChain实现RAG应用

OpenAI于2022年11月30日发布的ChatGPT几乎颠覆了现有的NLP范式, 使NLP算法的日常工作和技术栈都发生了一定的改变。最受关注的两个 落地方向分别为RAG(Retrieval-Augmented Generation,检索增强生 成)和Agent。

老皮的博客 996

GNSS/INS松组合导航实战:如何用卡尔曼滤波提升定位精度(附MATLAB代码)

本文深入探讨了GNSS/INS松组合导航的工程实践,详细阐述了如何利用卡尔曼滤波算法融合卫星与惯性数据以提升定位精度。内容涵盖从仿真环境搭建、误差状态卡尔曼滤波器(ESKF)设计,到状态与观测方程实现、噪声参数调试及常见问题排查的全过程,并提供了可直接运行的MATLAB代码,为开发高精度、鲁棒的组合导航系统提供实战指南。

weixin_29057163的博客 161

如何编译RustDesk(Unbuntu 和Android版本)

备注:官方文档上,一边都是基于sciter,这个在后面已经不建议使用了,但是依然可以编译刚开始的时候看官方的文档,涉及的东西比较多,也搞的一头雾水,通过B站上一个视频,可以通过CI/CD来编译,以及act本地试试(最终放弃,大概需要下载大几十G的容器下来)。最终总算明确了方向,可以用自动化流水线来编译。直接看CI/CD的脚本文件文件在.github/workflows目录下,重点研究 bridge.yml 和flutter-build.yml 这两个文件。

lvronglee的专栏 2547

LangChain大模型应用开发:基于RAG实现文档问答

大家好,博主又来给大家分享知识了。随着大模型应用的不断发展,很多开发者都在探索如何更好地利用相关工具进行开发。那么这次给大家分享的内容是使用进行大模型应用开发中的基于实现文档问答的功能。好了,我们直接进入正题。

老赵爱学习的博客 1779

3分钟搞懂欧式距离变换(EDT):从暴力算法到Felzenszwalb的演进史

本文系统梳理了欧式距离变换(EDT)从暴力算法到高效线性算法的演进历程。重点解析了光栅扫描算法和Felzenszwalb算法的核心思想与实现,并探讨了其在机器人路径规划中生成欧几里得符号距离场(ESDF)的关键应用,为开发者提供了清晰的算法选型与实战指南。

fern8的博客 974

大模型应用开发LangChain4j RAG实战实现向量存储的两种方案

LangChain4j 是一个用于构建和操作语言模型(LLM)应用的 Java 框架。通过实际的项目功能案例,看LangChain4j如何提高你开发AI应用的工程能力,帮助你逐步掌握该框架的核心概念和高级功能。AI专栏软件环境。

Python单行客的博客 980

YOLO11数据增强中的色彩空间变换:HSV、YUV等增强技术的原理、实现与参数调优全解析

摘要 本文介绍了色彩空间的基本概念及其在数据增强中的应用,重点分析了HSV色彩空间的原理与特性。色彩空间作为颜色表示的数学模型,在计算机视觉中具有重要作用,RGB、HSV、YUV等常用色彩空间各有特点。数据增强中的色彩变换能提升模型鲁棒性、缓解数据不平衡并防止过拟合。HSV色彩空间将颜色分为色调(H)、饱和度(S)和明度(V)三个独立分量,更符合人类视觉感知,便于针对性调整图像属性。文章详细阐述了HSV与RGB的转换公式,为YOLO11等目标检测框架的数据增强提供了理论基础。

本博客聚焦 YOLOv11 全流程落地,涵盖架构优化、数据集处理、训练技巧与多场景部署,兼及国产数据库、Java 开发与 AI 模型应用,内容兼顾理论与工程实践,为开发者提供系统干货,助力高效提升技术能力。 285

C++ PCL点云处理实战专栏

工业级点云处理技术学习资源,涵盖电力、建筑、隧道等领域的实战案例。内容分为三阶段:代码原理(算法认知)、动态库(项目验证)和完整代码(定制开发)。

weixin_45196569的博客 1116

大模型应用:LangChain基于RAG实现文档问答

大语言模型所实现的最强大应用之一是复杂的问答(Q&A)聊天机器人。这些应用能够回答关于特定源信息的问题。这些应用使用一种称为检索增强生成(RAG)的技术。

2401_85373691的博客 935

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

基于LangChain-Chatchat实现的本地知识库的问答应用-快速上手(检索增强生成(RAG)大模型)

依托于本项目支持的开源 LLM 与 Embedding 模型,本项目可实现全部使用开源模型离线私有部署。与此同时,本项目也支持 OpenAI GPT API 的调用,并将在后续持续扩充对各类模型及模型 API 的接入。本项目实现原理如下图所示,过程包括加载文件 -> 读取文本 -> 文本分割 -> 文本向量化 -> 问句向量化 -> 在文本向量中匹配出与问句向量最相似的top k个 -> 匹配出的文本作为上下文和问题一起添加到prompt中 -> 提交给LLM生成回答。

2401_84204413的博客 1097

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

大模型从入门到精通——基于智谱AI和LangChain实现RAG应用(二)

Streamlit 是一个开源框架,用于快速构建和部署数据应用程序。它特别适用于数据科学家和机器学习工程师,无需前端开发经验就可以创建交互式应用。

swpucwf的博客 1326

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

大模型学习应用 2:快速上手大模型基于langchain实现RAG检索应用

快速上手大模型基于langchain实现RAG检索应用 - 项目作业。

qq_33489955的博客 1198

【AI大模型应用开发】实战5:LangChain实现灵活的Agents+RAG

目前为止,我们实现的RAG练习中,答案都是全部来源于检索到的文本内容。而检索过程可能在某些情况下是不需要的。如何优化这个过程,让我们的RAG程序在必要时才去检索,不必要时,直接使用大模型原有数据来回答呢?本文我们一起来学习下。本文我们将使用 LangChain 的 Agents 模块来将 Retriever 当作工具,让大模型在有必要时才去使用它。

2401_84495872的博客 1607

AI大模型初步应用-基于langchain框架实现RAG的实战项目,详解代码实现

本项目演示了基于langchain框架下的检索增强生成(Retrieval-Augmented Generation, RAG)的方法。通过文本文件预处理及分割,生成文档片段。将每个文档片段使用句子嵌入模型转换为高维向量,并存储在向量数据库 Chroma 中。针对用户输入的问题,在向量数据库中进行相似度检索,获取最相关的文档片段作为上下文。结合预定义的提示词模板和自定义大语言模型生成最终答案。

微学AI的博客 974

大模型从入门到精通——基于智谱AI和LangChain实现RAG应用(一)

ZhipuAILLM_call_llm_type通过插入特定的上下文和问题来生成提示,适用于自然语言处理模型。它确保模型生成的回答简洁明确,并在回答结束时添加template = """使用以下上下文来回答最后的问题。如果你不知道答案,就说你不知道,不要试图编造答案。最多使用三句话。尽量使答案简明扼要。{context}问题: {question}"""

swpucwf的博客 2453

大模型应用之使用LangChain实现RAG(二)智能客服

智能客服rag

511
上一篇: 深度学习:卷积神经网络的结构
下一篇: 最近在折腾RAG+Agent,附企业级架构图!
程序员_大白
博客等级 码龄5年 1万+粉丝 4001原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值