简单 RAG 入门(01)

致远OA公文管理模块相关操作 致远oa协同办公系统 公文管理模板 相关操作 阅读详情

简单 RAG 入门

本文是 refine-rag 系列教程的第一篇,带你体验一下 RAG 的简单流程。
本文所有代码都在:https://github.com/zonezoen/refine-rag

前言

在学习 RAG 之前,我们先来对比一下 RAG 和 AI Agent 的概念,只有先了解这些概念,才能继续往前推进。

什么是RAG

简单来说就是允许你查阅书本,再来回答问题。

标准一点来说(也是简化过的):

  1. 整理原始文档,比如:pdf、word、excel、ppt 等
  2. 把整理好的文档内容进行清洗、切块
  3. 把切块好的数据向量化,并存储到向量数据库中
  4. 用户问一个问题
  5. 把这个问题的字符串向量化
  6. 然后根据【问题向量】去向量数据库查找相似的知识点
  7. 把查到的知识和问题一起传递给大模型
  8. 大模型根据查到的知识点来回答问题
    当然了,这个流程也是简化过的,不过不用在意,这个只是便于你理解这个概念。

还有你需要知道的是:RAG 可以解决一些时效性的问题和幻觉问题。相比 Fing-turning 微调,RAG 更节省成本,而且数据可以溯源,可以知道相关的知识点源自哪个文档。

或许看这个流程图或许会更直观一点
请添加图片描述

什么是AI Agent

如果把 RAG 比作是查知识库,那么 AI Agent 就是可以执行具体任务的助手。主要包括这几个特点:

  1. 规划:规划步骤,比如说买机票可以先查日期,再查天气,然后买机票
  2. 记忆:可以记住聊天上下文
  3. 工具使用:可以决定使用查天气的 API 还是执行一段 Python 代码
  4. 执行:规划好之后,可以执行具体的任务,并根据结果来执行下一步任务

主流RAG框架

目前主流的 RAG 框架有 LlamaIndex、langchain、Dify 等,我这边选择前面两个来做个示例:

大模型也分别选了 千问和 DeepSeek 来做展示:

环境准备

1. Python 环境要求
  • Python 3.8 或更高版本(推荐 3.10+)
  • 建议使用虚拟环境
2. 安装依赖包

LlamaIndex 示例所需依赖:

pip install llama-index
pip install llama-index-llms-dashscope
pip install llama-index-embeddings-dashscope
pip install dashscope
pip install python-dotenv

LangChain 示例所需依赖:

pip install langchain
pip install langchain-community
pip install langchain-huggingface
pip install langchain-deepseek
pip install langchain-text-splitters
pip install python-dotenv
pip install sentence-transformers  # HuggingFace embeddings 依赖

一键安装所有依赖:

pip install llama-index llama-index-llms-dashscope llama-index-embeddings-dashscope \
            dashscope langchain langchain-community langchain-huggingface \
            langchain-deepseek langchain-text-splitters python-dotenv sentence-transformers
3. API Key 配置

本文所有代码都在:https://github.com/zonezoen/refine-rag
创建 .env 文件,放到项目根目录:

# DeepSeek API 配置
DEEPSEEK_API_KEY=sk-xxx
# 千问
DASHSCOPE_API_KEY=sk-yyy

如何获取 API Key:

  • DeepSeek: https://platform.deepseek.com/
  • 千问(DashScope): https://dashscope.aliyun.com/

LlamaIndex 示例(千问)

文件名: 01_LlamaIndex.py

import os
from llama_index.llms.dashscope import DashScope, DashScopeGenerationModels
from llama_index.embeddings.dashscope import DashScopeEmbedding
from llama_index.core import VectorStoreIndex, SimpleDirectoryReader, Settings

from dotenv import load_dotenv

os.environ['USER_AGENT'] = 'my-rag-app/1.0'
load_dotenv()
DATA_DIR = "./data"

# 1. 配置 LLM
Settings.llm = DashScope(
    model_name=DashScopeGenerationModels.QWEN_MAX,
    api_key=os.getenv("DASHSCOPE_API_KEY")
)

# 2. 设置嵌入模型
Settings.embed_model = DashScopeEmbedding(
    model_name='text-embedding-v2',
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    timeout=60,  # 增加超时时间
    max_retries=5  # 增加重试次数
)

# 3. 加载与索引
if not os.path.exists(DATA_DIR):
    print(f"错误:未找到路径 {DATA_DIR}")
else:
    # 建议直接使用绝对路径,避免相对路径带来的困扰
    print("正在加载文档...")
    documents = SimpleDirectoryReader(DATA_DIR).load_data()

    print("正在创建索引(此步涉及 Embedding 接口调用)...")
    index = VectorStoreIndex.from_documents(documents)

    # 4. 查询
    query_engine = index.as_query_engine()

    print("正在提问...")
    response = query_engine.query("2026春运时间是什么时候?")
    print(f"AI 回答结果:\n{response}")

运行方式:

python 01_LlamaIndex.py

运行结果:

正在加载文档...
正在创建索引(此步涉及 Embedding 接口调用)...
正在提问...
AI 回答结果:
2026年春运的时间是从2月2日至3月13日。

LangChain 示例(DeepSeek)

文件名: 02_LangChain_DeepSeek.py

import os
from dotenv import load_dotenv

os.environ['USER_AGENT'] = 'my-rag-app/1.0'
load_dotenv()

# 1. 加载数据
from langchain_community.document_loaders import TextLoader

# 随便复制一些即时新闻放到 txt 文件中,例如:https://baike.baidu.com/item/2026%E5%B9%B4%E6%98%A5%E8%BF%90/66941026?fromModule=home_hotspot
loader = TextLoader(
    file_path="data/a.txt",
    encoding="utf-8"  # 如果是中文文件,确保使用 utf-8 编码
)

docs = loader.load()

# 2. 文档分块
from langchain_text_splitters import RecursiveCharacterTextSplitter

text_splitter = RecursiveCharacterTextSplitter(chunk_size=1000, chunk_overlap=200)
all_splits = text_splitter.split_documents(docs)

# 3. 设置嵌入模型
# 使用本地 HuggingFace 模型(推荐,免费且稳定),可能需要科学网络
from langchain_huggingface import HuggingFaceEmbeddings

embeddings = HuggingFaceEmbeddings(
    model_name="BAAI/bge-small-zh-v1.5",  # 中文模型
    model_kwargs={'device': 'cpu'},
    encode_kwargs={'normalize_embeddings': True}
)

# 4. 存到向量数据库中,为了方便测试,这里使用内存数据库
from langchain_core.vectorstores import InMemoryVectorStore

vector_store = InMemoryVectorStore(embeddings)
vector_store.add_documents(all_splits)

# 5. 构建用户查询,针对前面的即时新闻提问
question = "2026春运时间是什么时候?"

# 6. 在向量数据库中搜索最相似的文档
retrived_docs = vector_store.similarity_search(question, k=3)
docs_content = "\n\n".join(doc.page_content for doc in retrived_docs)

# 7. 构建提示模板
from langchain_core.prompts import ChatPromptTemplate

prompt = ChatPromptTemplate.from_template(
    """
    基于以下上下文回答问题。如果没有结果,就说没有找到对应信息。
                上下文: {context}
                问题: {question}
                回答:
    """
)

# 8. 把结果和问题都发给大模型,生成答案
from langchain_deepseek import ChatDeepSeek

llm = ChatDeepSeek(
    model="deepseek-chat",  # DeepSeek API 支持的模型名称
    temperature=0.7,  # 随机性
    max_tokens=2048,  # 最大输出长度
    api_key=os.getenv("DEEPSEEK_API_KEY")  # 从环境变量加载API key
)

answer = llm.invoke(prompt.format(question=question, context=docs_content))
print(answer.content)  # 只打印回答内容

运行方式:

python 02_LangChain_DeepSeek.py

运行结果:

2026年春运时间为2026年2月2日至2026年3月13日。

学习路径

  1. 简易RAG 学习
  2. LCEL 语法学习
  3. LangChain 读取数据
    1. LangChain 读取文本数据
    2. LangChain 读取图片数据
    3. LangChain 读取 PDF 数据
    4. LangChain 读取表格数据
  4. 文本切块
  5. 向量嵌入
  6. 向量存储
  7. 检索前处理
  8. 索引优化
  9. 检索后处理
  10. 响应生成
  11. 系统评估

项目地址

本文所有代码示例都在 GitHub 开源:

https://github.com/zonezoen/refine-rag

欢迎 Star 和 Fork,一起学习 RAG 技术!

2025华为od机试真题B卷【版本管理】Python实现 在 软件版本管理中,版本号由点分割的数字组成,例如 1.2.3 和 2.8。现在,你需要编写一个函数,计算两个版本号之间的可用版本号个数。这里的可用版本号指的是所有满足 version1<x<version2的版本号x的个数。若 version1 >=version2 返回0., 阅读详情

相关推荐

【FPGA】Verilog代码实现温湿度传感器DHT11

#今天也是咸鱼的一天~ 因为参加Robei 杯 是要做一个机器人,先不说这个机器人具体怎么机器法,但是和外界互通的传感器肯定少不了,通过获取外界环境数据,进行处理,然后做出各种各样的功能。 先来讲个简单的模块,温湿度传感器DHT11。 DHT11介绍 DHT11是一款价格便宜,易于使用的温度湿度测量二合一传感器。它具有超小体积、极低功耗的特点。它使用单根总线与单片机进行双向的串行数据传输,信号传...

Ninquelote的博客 9163

RAG技术终极对决!18种RAG技术实战对比:从简单RAG到自适应RAG全面解析

本文是对一篇测试18种RAG技术的英文文章的翻译整理,文章从不同维度展示了RAG实现思路,全部使用基础库而非框架构建,非常适合作为理解RAG技术的入门教程。

Langchain的博客 716

Python金融数据获取工具库之baostock使用详解

在金融数据分析和量化交易中,获取准确及时的市场数据是非常重要的。baostock是一个专门为中国股市数据提供支持的 Python 库,它提供了免费的股票数据接口,用户可以方便地获取股票、指数、基金等各种金融数据。本文将详细介绍baostock库,包括其安装方法、主要特性、基本和高级功能,以及实际应用场景,帮助全面了解并掌握该库的使用。

Rocky006的博客 5345

[LLM-RAG] Task01:初识RAG(理论与简单实践)

摘要:RAG(检索增强生成)通过在LLM生成前检索外部知识库来提升输出准确性与时效性。其核心流程包括数据准备、索引构建、查询检索和生成集成四个步骤,使用工具如LangChain和LlamaIndex。RAG能解决静态知识局限、减轻幻觉现象,具有准确性高、实时性强、成本效益好等优势。实践案例展示了不同分块策略对检索效果的影响,最终生成的回答能精准融合检索内容。RAG通过增强上下文信息输入,显著提升了语言模型的专业领域表现。

qdabuliuq的博客 913

STM32CubeMX、keil、simulink联合开发MCU教程

一、整体思路 利用Matlab的simulink搭建模型生成C代码,通过stm32cubemx生成工程,最后在KEIL或者IAR等工具里面编译生成代码下载至MCU中执行。 本文以流水灯建立模型和简单使用定时器为例进行演示。 二、开发环境 1、安装Matlab Matlab版本建议在2013B以上,本文使用Matlab 2016a。 2、安装STM32硬件支持包 下载地址(https://www.stmcu.org.cn/document/detail/index/id-216053) 安装完成后重启MAT

tzlaa的博客 7736

Ubuntu20.04下Intel AX201网卡驱动安装全攻略:从内核升级到固件更新

本文详细介绍了在Ubuntu 20.04系统上解决Intel AX201无线网卡驱动问题的完整方案。针对戴尔游匣G15等新硬件,通过升级内核至HWE版本、从官方仓库获取最新固件文件,并调整BIOS设置,彻底解决Wi-Fi无法识别或连接不稳定的问题,为开发者提供了一套从诊断到修复的实践指南。

gpt4scribbler的博客 690

RAG入门 Task01 手搓一个土的掉渣的RAG

datawhale AI 共学。

weixin_72250436的博客 945

告别TwinCAT:手把手教你用IgH EtherCAT Master在LinuxCNC上搭建实时运动控制平台

本文详细介绍了如何利用IgH EtherCAT Master和LinuxCNC搭建开源实时运动控制平台,替代商业软件TwinCAT。通过分步指南,包括实时Linux环境配置、EtherCAT主站安装、LinuxCNC集成及多轴同步控制实现,帮助开发者构建高性能、低成本的工业自动化解决方案。

weixin_42641741的博客 401

18种RAG技术实战对比:从简单到自适应RAG,零基础入门大模型检索增强生成

本文对18种RAG技术进行了全面测试和对比,从简单的固定大小分块到复杂的自适应RAG。通过使用基础库而非框架构建,文章展示了各种RAG实现思路。测试结果表明,自适应RAG(0.86分)表现最佳,能够根据查询类型动态选择检索策略;分层索引(0.84)、融合RAG(0.83)和CRAG(0.824)也表现出色。文章特别适合作为RAG技术的入门教程,帮助读者理解不同技术的优缺点及应用场景。

Androiddddd的博客 1130

Qt —— 百度离线地图 - 加载百度离线地图、及地图上绘图(附:源码)

Qt —— 加载百度离线地图、及简单绘图(附源码)

1063

【Claude Code 源码解析教程】总体大纲

本教程旨在深入解析 Anthropic Claude Code 项目的源码架构和实现细节。Claude Code 是一个基于 TypeScript + Bun 构建的 AI 编程助手 CLI 工具,代号 "Tengu",具有复杂的多模块架构和丰富的功能特性。本教程基于Claude Code 的源码分析来生成,将帮助您全面掌握 Claude Code 的源码架构和实现细节,为开发类似 AI 编程助手工具奠定坚实基础。

rengang66的博客 387

《Advanced RAG》-01-朴素RAG存在的问题

文章阐述了RAG技术如何通过整合外部知识源来提升大型语言模型(LLM)的性能,使其能够产生更精确、上下文感知的回应,并减少幻觉现象。自2023年以来,RAG已成为基于LLM的系统中最流行的架构,许多产品依赖此技术。然而,RAG在信息检索、上下文整合等方面存在问题。

静愚AGI 1658

2025华为杯第二十二届中国研究生数学建模竞赛D题:低空湍流监测及最优航路规划 - 完整解题分析+完整MATLAB源码!(下篇)

🎓 本文收录于 《滚雪球学数学建模》专栏,本专栏专注于从零基础出发,带你循序渐进掌握数学建模的核心方法与思维路径。通过“滚雪球式”学习法,从最简单的生活化案例到经典建模工具,再到省赛、国赛真题实战演练,逐步积累知识与技能,帮助你搭建完整的建模体系。无论你是刚接触建模的新生,还是希望提升科研与竞赛能力的学者与工程师,本专栏都将为你提供一条清晰、高效、可实操的建模成长路线,助力你快速进阶,突破难点,迈向数学建模竞赛与实际应用的更高峰 🚀!

**My Coding Family** 1623

从 0 开始搞定 RAG 应用系列(第一篇):构建简单 RAG

大家都知道 LLM 的能做的事情很多,但是有一些工作它是无法做到的,那就是领域知识和最新的知识。领域知识一般指企业里面私有化的数据,因为这部分的知识 LLM 是无法获取和知道的。LLM 训练的数据是基于比较老的数据 ,然而最新的信息它也无法知道,这部分的数据一般的情况是基于 RAG 来实现(目前可以联网的 LLM 也是基于 RAG 实现的)。RAG,即检索增强生成(Retrieval-Augmented Generation),是一种结合了信息检索技术与语言生成模型的人工智能技术。

m0_63171455的博客 2067

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

000:简单 RAG 入门

还有你需要知道的是:RAG 可以解决一些时效性的问题和幻觉问题。相比 Fing-turning 微调,RAG 更节省成本,而且数据可以溯源,可以知道相关的知识点源自哪个文档。在学习 RAG 之前,我们先来对比一下 RAG 和 AI Agent 的概念,只有先了解这些概念,才能继续往前推进。当然了,这个流程也是简化过的,不过不用在意,这个只是便于你理解这个概念。执行:规划好之后,可以执行具体的任务,并根据结果来执行下一步任务。规划:规划步骤,比如说买机票可以先查日期,再查天气,然后买机票。

zone_的博客 398

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

大模型rag技术,什么是RAG?大模型入门到精通,收藏这篇就够了

RAG(Retrieval-Augmented Generation)即检索增强生成,为大模型提供了从特定数据源检索到的信息,以此来修正和补充生成的答案。

Python_0011的博客 7566

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

简单 RAG 入门

如果把 RAG 比作是查知识库,那么 AI Agent 就是可以执行具体任务的助手。规划:规划步骤,比如说买机票可以先查日期,再查天气,然后买机票记忆:可以记住聊天上下文工具使用:可以决定使用查天气的 API 还是执行一段 Python 代码执行:规划好之后,可以执行具体的任务,并根据结果来执行下一步任务。

yf362hKr5的博客 244

如何快速入门RAG:all-rag-techniques基础教程

检索增强生成(RAG)技术是当前提升大语言模型准确性的热门方法,而all-rag-techniques项目汇集了多种RAG实现方案,为初学者提供了完整的RAG学习路径。本教程将带你快速掌握RAG的核心概念和实用技巧。 ## 🎯 什么是RAG技术? RAG(Retrieval-Augmented Generation)检索增强生成技术通过结合外部知识库来增强大模型的生成能力,有效解决了模型幻觉

gitblog_00066的博客 827

智能体式RAG详解:从RAG到Agentic RAG的进阶之路!

智能体式RAG是将AI智能体能力融入检索增强生成的前沿方法,通过在检索步骤中添加智能体实现规划、决策、工具使用和反思功能。系统可采用单智能体或多智能体架构,前者简单易管理,后者适合复杂工作流。这种结合使RAG能够处理更复杂的查询,为构建下一代智能应用提供坚实基础。

2301_80239908的博客 692

RAG 01:讨论未经优化的 RAG 系统存在的问题与挑战

检索增强生成(Retrieval Augmented Generation,RAG)是通过整合来自外部知识源的额外信息来改进大语言模型(Large Language Models,LLMs)应用能力的一种技术。这种技术能够帮助 LLMs 产生更精确和更能感知上下文的回复,同时也能减轻幻觉现象。

DEVELOPERAA的博客 987

RAG进阶之路Advanced RAG, Graph RAG 以及Agentic RAG

大型语言模型(LLM)彻底改变了人工智能领域。从撰写文章到总结研究,它们以前所未有的方式模仿人类语言。但在这智能表象之下,潜藏着一个顽固缺陷:LLM的能力受限于训练数据。它们不知道昨天发生的事,有时甚至会凭空捏造信息。那么我们如何解决这个问题?检索增强生成(RAG)——这个框架通过将外部知识检索与语言生成相结合,赋予LLM实时获取信息的能力。但RAG技术本身也在进化:从最初简单的关键词检索,如今已发展为驱动自主智能体AI系统的核心力量。

2401_85373898的博客 1045

【RAG全栈课程】Task01:解锁RAG

摘要:本文全面介绍了检索增强生成(RAG)技术,包括其核心原理、应用优势和实践方法。RAG通过结合大语言模型与外部知识检索机制,有效解决了模型"幻觉"问题,提升了回答准确性和时效性。文章详细阐述了RAG的技术架构、开发框架(LangChain、LlamaIndex)和向量数据库选择(Milvus、FAISS等),并提供了从环境配置到实际构建RAG系统的完整教程。RAG技术已在企业知识问答、智能客服等领域广泛应用,成为提升大模型可靠性的重要解决方案。

woyych的博客 877

检索增强生成(RAG)基础入门

文章介绍了检索增强生成(RAG)技术,它通过结合大模型与外部数据,解决数据安全、成本、领域知识等落地问题。RAG架构包括数据入库、查询处理、多模式检索和内容生成模块,可应用于金融、医疗等多个领域的生成任务。后文重点推介了一套AI大模型学习资源包,包含视频教程、学习路线、电子书籍等资料,由业内专家整理,适合不同基础的学习者。资料强调实战导向,旨在帮助学员掌握核心技术并实现职业转型。最后提供了免费获取方式,承诺资源完全免费共享。

2401_84204207的博客 976

落地RAG系列:RAG入门及RAG面临的挑战和解决方案!!

2023年,RAG(检索增强生成)成为大模型人工智能系统中的主流架构,其性能、检索效率和准确性成为研究重点。RAG通过整合外部知识源,提升大语言模型(LLMs)的生成准确性和可信度,尤其适用于知识密集型任务。RAG的核心优势在于解决LLMs的幻觉问题、知识缺乏问题、数据安全问题和可信度问题。与微调大模型相比,RAG更适合数据频繁变动、需要出处、对幻觉敏感以及节省GPU成本的场景。RAG分为索引和检索两个阶段:索引阶段将内容解析、分割并向量化存储;检索阶段将用户提问向量化,从向量数据库中检索相似信息并作为上下

xiangxueerfei的博客 752

从 0 开始搞定 RAG 应用系列(第1篇):构建简单 RAG

LLM 已经从最初的研究性转变为实际应用性,尤其在今年各大 LLM 厂商都在研究 LLM 的商业化落地方案。而在各种商业化场景中个人觉得最具有使用价值和最能体现 LLM 的商业化场景就是 RAG 的使用。

DEVELOPERAA的博客 947
上一篇: 什么是MCP?MCP服务端代码实例初体验
下一篇: 准备写一个LangChain系列的RAG教程
zone7_
博客等级 码龄10年 144粉丝 133原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值