本文介绍了Agentic RAG,一种无需向量化检索的轻量级方案,通过结构化内存数据库实现高效检索和生成。文章以餐厅智能推荐系统为例,详细阐述了Agentic RAG的理论基础和实现过程,展示了其技术降本、灵活扩展和敏捷验证的核心价值,适合中小规模数据业务场景和快速验证想法的团队参考。

传统RAG(检索增强生成)依赖向量化检索,流程复杂且资源消耗大。而Agentic RAG提供了一种更轻量的替代方案——无需向量化,仅需结构化内存数据库即可实现高效检索+生成。

<图片源于:LLM大模型>

Agentic RAG在传统RAG流程的基础上加入了一个重要角色——Agent(智能体)。它不仅能检索,还能根据任务动态选择工具、拆解问题、调用外部API,甚至多轮迭代优化结果。这意味着它可以:

  • 不依赖大型向量数据库
  • 根据不同任务,走不同的推理路线
  • 对数据源和API灵活切换

本期给大家分享的是由和鲸社区创作者 @StarTap 分享的Agentic RAG 全面教程:从理论到实战项目中的餐厅智能推荐系统,就是一个典型例子。

创作者主页:https://www.heywhale.com/u/5ed64b

项目指路:https://www.heywhale.com/u/745b40

🌟推荐理由:

项目中不仅清晰说明了Agentic RAG的理论基础(包含技术架构、工作原理以及与传统RAG的区别),还用极简的实现方式,构建了一个基于Agentic RAG思路的餐厅推荐系统,而且完全无需向量化,检索逻辑清晰、执行效率高,十分适合中小规模数据的业务场景。对于需要快速验证想法、构建轻量级智能推荐功能的团队来说,这将是一个很好的参考案例。

👈左滑查看更多项目内容

系统设计思路

整个系统的核心逻辑非常直接:

  • 用户用自然语言描述需求(人数、人均价格、菜系)
  • 系统从内存数据库中筛选符合条件的餐厅
  • 用大模型包装检索结果,生成友好、准确的中文回复

关键在于:数据检索是纯Python条件过滤,不需要向量化

知识源准备

项目中用了一个简化的餐厅数据集,每条数据包含:

  • 餐厅名称、分店名称、地址
  • 联系电话
  • 人均消费
  • 菜系类型编码
  • 适合人数

数据示例(Python表示):

restaurants = [
{"shopType": 10,"shopName": "居民楼火锅","branchName": "万松园店","address": "万松小区","phoneNo": "17771857933","phoneNo2": "18871569657","avgPrice": 50,"suitableFor": 3
},
{"shopType": 10,"shopName": "重庆老火锅","branchName": "江汉路店","address": "江汉路步行街","phoneNo": "13800138000","avgPrice": 60,"suitableFor": 4
}
]

核心实现

1、检索函数

它的工作很直接:按菜系、人数、人均价格范围过滤餐厅。价格范围放宽到 ±20%,增加匹配灵活性。

def query_restaurants(numOfPeople: int, avgOfAmount: int, cuisine_type: str) -> list:
results = []
type_code = CUISINE_TYPE_MAP.get(cuisine_type, None)if type_code is None:return []for restaurant in restaurants:if restaurant['shopType'] != type_code:continue
if restaurant['suitableFor'] < numOfPeople:continue
if not (0.8 * avgOfAmount <= restaurant['avgPrice'] <= 1.2 * avgOfAmount):continue
results.append(restaurant)return results

2、参数抽取

通过正则匹配从用户输入中抽取关键信息,比如“3个人”“人均50”“重庆火锅”等。

def extract_query_params(user_input: str):import re
num_match = re.search(r'(\d+)\s*人', user_input)
numOfPeople = int(num_match.group(1)) if num_match else 2
avg_match = re.search(r'人均(\d+)', user_input)
avgOfAmount = int(avg_match.group(1)) if avg_match else 50
cuisine_type = None
for k in CUISINE_TYPE_MAP.keys():if k in user_input:
cuisine_type = kbreak
if not cuisine_type:
cuisine_type = list(CUISINE_TYPE_MAP.keys())[0]return numOfPeople, avgOfAmount, cuisine_type

3、大模型API调用

这里的亮点是流式输出,让推荐结果像聊天一样即时出现。

from openai import OpenAI
from dotenv import load_dotenv
import os
def run_agentic_rag():
load_dotenv()print("欢迎使用 Agentic RAG 餐厅推荐系统(无需向量化)!\n")while True:
user_input = input("请输入您的需求:")if user_input.strip().lower() == 'q':break
numOfPeople, avgOfAmount, cuisine_type = extract_query_params(user_input)
results = query_restaurants(numOfPeople, avgOfAmount, cuisine_type)if results:
r = results[0]
answer = f"按您的要求,我找到了{r['shopName']}({r['branchName']}),位于{r['address']},电话是{r['phoneNo']},是一家{cuisine_type},人均消费{r['avgPrice']}元,适合{r['suitableFor']}个人用餐。"else:
answer = "没有找到符合条件的餐厅。"
system_prompt = "你是餐饮推荐专家,请根据用户需求和检索到的结果,生成简洁、友好、准确的中文回复。"
messages = [
{"role": "system", "content": system_prompt},
{"role": "user", "content": f"用户需求:{user_input}\n检索结果:{answer}"}
]
client = OpenAI(
api_key="api_key",
base_url="https://aistudio.baidu.com/llm/lmapi/v3",
)
completion = client.chat.completions.create(
model="deepseek-r1",
messages=messages,
stream=True,
)for chunk in completion:if len(chunk.choices) > 0:if hasattr(chunk.choices[0].delta, 'reasoning_content') and chunk.choices[0].delta.reasoning_content:print(chunk.choices[0].delta.reasoning_content, end="", flush=True)else:print(chunk.choices[0].delta.content, end="", flush=True)print()

⚠️由于openai版本原因,在fork项目时,需手动升级安装最新版openai

通过这个轻量级的餐厅推荐系统案例,我们可以看到Agentic RAG的核心价值

  1. 技术降本:用结构化数据+条件检索替代向量化,节省算力与存储开销,尤其适合中小规模场景。
  2. 灵活扩展:通过修改数据源或检索逻辑,可快速适配酒店推荐、活动匹配等同类需求。
  3. 敏捷验证:无需复杂基础设施,一个Python脚本即可验证智能推荐的核心流程。

🚗项目直通车:

  • 小程序:Agentic RAG全面教程:从理论到实战
  • 网页:https://www.heywhale.com/u/745b40(复制到浏览器打开)

如何学习大模型 AI ?

由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。

但是具体到个人,只能说是:

“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。

这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。

我在一线科技企业深耕十二载,见证过太多因技术卡位而跃迁的案例。那些率先拥抱 AI 的同事,早已在效率与薪资上形成代际优势,我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在大模型的学习中的很多困惑。我们整理出这套 AI 大模型突围资料包

  • ✅ 从零到一的 AI 学习路径图
  • ✅ 大模型调优实战手册(附医疗/金融等大厂真实案例)
  • ✅ 百度/阿里专家闭门录播课
  • ✅ 大模型当下最新行业报告
  • ✅ 真实大厂面试真题
  • ✅ 2026 最新岗位需求图谱

所有资料 ⚡️ ,朋友们如果有需要 《AI大模型入门+进阶学习资源包》下方扫码获取~
在这里插入图片描述

① 全套AI大模型应用开发视频教程

(包含提示工程、RAG、LangChain、Agent、模型微调与部署、DeepSeek等技术点)
在这里插入图片描述

② 大模型系统化学习路线

作为学习AI大模型技术的新手,方向至关重要。 正确的学习路线可以为你节省时间,少走弯路;方向不对,努力白费。这里我给大家准备了一份最科学最系统的学习成长路线图和学习规划,带你从零基础入门到精通!
在这里插入图片描述

③ 大模型学习书籍&文档

学习AI大模型离不开书籍文档,我精选了一系列大模型技术的书籍和学习文档(电子版),它们由领域内的顶尖专家撰写,内容全面、深入、详尽,为你学习大模型提供坚实的理论基础。
在这里插入图片描述

④ AI大模型最新行业报告

2025最新行业报告,针对不同行业的现状、趋势、问题、机会等进行系统地调研和评估,以了解哪些行业更适合引入大模型的技术和应用,以及在哪些方面可以发挥大模型的优势。
在这里插入图片描述

⑤ 大模型项目实战&配套源码

学以致用,在项目实战中检验和巩固你所学到的知识,同时为你找工作就业和职业发展打下坚实的基础。
在这里插入图片描述

⑥ 大模型大厂面试真题

面试不仅是技术的较量,更需要充分的准备。在你已经掌握了大模型技术之后,就需要开始准备面试,我精心整理了一份大模型面试题库,涵盖当前面试中可能遇到的各种技术问题,让你在面试中游刃有余

图片

以上资料如何领取?

在这里插入图片描述

为什么大家都在学大模型?

最近科技巨头英特尔宣布裁员2万人,传统岗位不断缩减,但AI相关技术岗疯狂扩招,有3-5年经验,大厂薪资就能给到50K*20薪!

图片

不出1年,“有AI项目经验”将成为投递简历的门槛。

风口之下,与其像“温水煮青蛙”一样坐等被行业淘汰,不如先人一步,掌握AI大模型原理+应用技术+项目实操经验,“顺风”翻盘!
在这里插入图片描述
在这里插入图片描述

这些资料真的有用吗?

这份资料由我和鲁为民博士(北京清华大学学士和美国加州理工学院博士)共同整理,现任上海殷泊信息科技CEO,其创立的MoPaaS云平台获Forrester全球’强劲表现者’认证,服务航天科工、国家电网等1000+企业,以第一作者在IEEE Transactions发表论文50+篇,获NASA JPL火星探测系统强化学习专利等35项中美专利。本套AI大模型课程由清华大学-加州理工双料博士、吴文俊人工智能奖得主鲁为民教授领衔研发。

资料内容涵盖了从入门到进阶的各类视频教程和实战项目,无论你是小白还是有些技术基础的技术人员,这份资料都绝对能帮助你提升薪资待遇,转行大模型岗位。
在这里插入图片描述
在这里插入图片描述

以上全套大模型资料如何领取?

在这里插入图片描述

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐