LangChain + RAG 实战(三):构建第一个 RAG Chain
创作者Yardon |GitHubgithub.com/YardonYan |版本v1.0 |LCELLangChain 的链式语法LCELLangChain Expression Language让链式调用变得像搭积木fromlangchain.promptsimportChatPromptTemplatefromlangchain.schemaimportStrOutputParser promptChatPromptTemplate.from_template(用{language}写一个{task}的函数)chainprompt|llm|StrOutputParser()resultchain.invoke({language:Python,task:计算 Fibonacci 数列})检索增强生成 (RAG) Chainfromlangchain.chainsimportcreate_retrieval_chainfromlangchain.chains.combine_documentsimportcreate_stuff_documents_chain# RAG promptpromptChatPromptTemplate.from_template( 基于以下上下文回答用户的问题。如果上下文中没有相关信息请如实说不知道。 上下文\n{context}\n 问题{input} 回答 )doc_chaincreate_stuff_documents_chain(llm,prompt)rag_chaincreate_retrieval_chain(retriever,doc_chain)resultrag_chain.invoke({input:useEffect 的依赖数组是什么意思})print(result[answer])带来源引用的 RAGresultrag_chain.invoke({input:React Hooks 的类型})print(result[answer])print(\n--- 参考来源 ---)fori,docinenumerate(result[context],1):print(f[{i}]{doc.metadata.get(source,未知来源)})Streamlit 快速搭一个 RAG 界面importstreamlitasst# 加载向量数据库缓存避免每次刷新重建st.cache_resourcedefget_vectordb():returnChroma(persist_directory./chroma_db,embedding_functionembeddings)# 构建 RAGst.title( 企业知识库问答)questionst.text_input(输入你的问题...)ifquestion:withst.spinner(搜索中...):resultrag_chain.invoke({input:question})st.markdown(f**答案**{result[answer]})st.write(---)fori,docinenumerate(result[context],1):st.caption(f[{i}] 来源:{doc.metadata.get(source,?)})本章小结概念要点LCELcreate_retrieval_chain检索生成的完整 RAG 管道Streamlit15 分钟搭一个 RAG UI创作者Yardon | 个人网站GlimmerAI.top 本章是「LangChain RAG 实战」系列的第 3 章。 欢迎大家来观看

相关新闻

AI 替代传统 GUI:基于 MCP 的 OBCloud 工作流(10)

AI 替代传统 GUI:基于 MCP 的 OBCloud 工作流(10)

作为一名与数据库密切相关且经验丰富的开发人员,在定位问题时,通常需要查看 OceanBase 实例。在 OB Cloud 控制台中,用户可以查看 OceanBase 实例、租户、节点以及代理等信息。此外,控制台提供了多达几十甚至上百项的监控指标&…

2026/7/1 1:01:51阅读更多 →
Kinovea开源视频分析软件:从动作捕捉到精准测量的完整解决方案

Kinovea开源视频分析软件:从动作捕捉到精准测量的完整解决方案

Kinovea开源视频分析软件:从动作捕捉到精准测量的完整解决方案 【免费下载链接】Kinovea Video solution for sport analysis. Capture, inspect, compare, annotate and measure technical performances. 项目地址: https://gitcode.com/gh_mirrors/ki/Kinovea …

2026/7/1 0:56:50阅读更多 →
Dism++终极指南:Windows系统清理与备份的完整解决方案

Dism++终极指南:Windows系统清理与备份的完整解决方案

Dism终极指南:Windows系统清理与备份的完整解决方案 【免费下载链接】Dism-Multi-language Dism Multi-language Support & BUG Report 项目地址: https://gitcode.com/gh_mirrors/di/Dism-Multi-language Dism是一款免费开源的Windows系统维护工具&…

2026/7/1 0:56:50阅读更多 →
关于 QImage 加载本地大图片的崩溃问题

关于 QImage 加载本地大图片的崩溃问题

问题查找 QImage reloadImg; reloadImg.load(fileName);代码运行在 load 时崩溃,下面我们来看一下,load 函数做了什么事情,为什么会崩溃。 bool QImage::load(const QString &fileName, const char* format) {QImage image QImageRead…

2026/7/1 2:11:58阅读更多 →
[SampleTexture2DArray节点]原理解析与实际应用

[SampleTexture2DArray节点]原理解析与实际应用

在 Shader Graph 中使用 Sample Texture 2D Array 节点时,您需要提供 UV 坐标来确定采样位置,同时可以通过采样器状态节点来定义纹理的过滤方式和环绕模式。节点的核心特性是索引输入端口,它决定了从纹理数组中选取哪个具体的纹理进行采样。 …

2026/7/1 2:11:58阅读更多 →
为什么我们需要关注线程?

为什么我们需要关注线程?

在多核处理器成为主流的今天,我们手中的手机、电脑甚至智能家居设备都拥有多个计算核心。这意味着,如果我们的程序只能在一个核心上运行,就相当于让其他核心"闲置",无法充分发挥硬件性能。想象一下,一个餐厅…

2026/7/1 2:11:58阅读更多 →
tpshop商城Web项目实战:从业务测试到缺陷管理全流程(功能测试)

tpshop商城Web项目实战:从业务测试到缺陷管理全流程(功能测试)

Web项目实战——tpshop商城 一、项目介绍 1.1项目是什么 Tpshop商城地址:https://hmshop-test.itheima.net/ Tpshop商城,类 似于淘宝、京东类的(B2C)电子商务平台,主要为线上用户提供优质便捷的购物服务。 前台地址…

2026/7/1 2:11:58阅读更多 →
最大6个层次结构的标题

最大6个层次结构的标题

# 标题一 ## 标题二 ### 标题三 ...... ###### 标题六 标题一 标题二 标题三 ...... 标题六 设置文本样式 语法例子输出** **或者__ __**粗体**粗体* *或者_ _*斜体*斜体~~ ~~~~删除线~~删除线** ** 和 * ***粗体*斜体*字**粗体斜体字(粗体嵌套斜体)* * 和 ** ***斜体**粗…

2026/7/1 2:11:58阅读更多 →
2026 在上海如何找一家专业又靠谱的小程序定制开发公司

2026 在上海如何找一家专业又靠谱的小程序定制开发公司

现在上海做线下门店、小型商贸、本地服务、初创线上平台的老板基本都有做小程序的想法,不管是门店点餐、线上商城、预约服务还是商户入驻平台,小程序都是低成本拉私域、做线上成交的工具,但很多人第一次接触定制开发,很容易踩各种…

2026/7/1 2:06:57阅读更多 →
AI Coding 六个月真实ROI账本:产品经理的血泪教训,研发的冷静忠告

AI Coding 六个月真实ROI账本:产品经理的血泪教训,研发的冷静忠告

6个月前的2025年12月,Boris Cherny 公开宣布自己卸载了 IDE。一时间,Vibe Coding 成了全行业最热的话题。6个月后,当我们回过头来拉一份真实账本,发现事情远没有"一句话生成一个App"那么浪漫。本文从产品经理和研发两个…

2026/6/30 4:03:30阅读更多 →
审计来了,数据权限全开——审计走了,怎么确保权限全部关掉?

审计来了,数据权限全开——审计走了,怎么确保权限全部关掉?

引言:审计结束三个月了,审计员的权限还没关某城商行每年按照监管要求开展至少一次数据安全审计。审计期间,内审部门需要抽样检查各类业务数据——交易流水、客户信息、员工操作日志、权限配置记录。这些数据分布在不同系统中,审计…

2026/6/30 4:36:27阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/1 0:01:44阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/1 0:01:44阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/1 0:01:44阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/1 0:01:44阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/1 0:01:44阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/1 0:01:44阅读更多 →