新闻详情

新闻详情

首页 / 资讯中心 / 详情

秋招agent八股文(3)

发布时间:2026/9/29 9:56:46来源:尧图网络
秋招agent八股文(3)
用最通俗易懂的方式来理解RAG那就是从数据库查资料把查到的资料拿出来然后写进Prompt里面最后交给LLM。一、RAG到底在做什么RAG是Retrieval-Augmented Generation通常译为“检索增强生成”。我的理解是先从外部资料中检索与问题相关的内容再把这些内容连同问题交给生成模型。外部资料是回答是提供的上下文不需要把这几条重新训练进模型参数。二、实现最简RAG项目环境准备##powershell## mkdir rag_practice cd rag_practice notepad rag.py创建文件夹并且进入然后创建一个Python的记事本脚本只要你本地电脑中已经有Python就足够了不需要再设置虚拟环境因为接下来这段代码不需要安装其他Python的包只需要Python自带的内容就可以完成了。三、项目代码第一步建库人工构造 3 条文档片段手动标注 id、关键词元数据直接生成可用的文档列表。documents [ { id: D1, keywords: [RAG, 检索增强生成], text: RAG 先检索相关资料再让模型根据资料回答问题。, }, { id: D2, keywords: [切分, 分块], text: 文本切分是把长文档拆成小段方便找到相关内容。, }, { id: D3, keywords: [Agent, 智能体], text: Agent 可以根据任务决定调用哪个工具。, }, ] print(f已准备 {len(documents)} 条资料)这是极简内容在完整项目中这段内容模拟建库建立企业级数据库需要下列流程1、文档加载统一输出结构文本可能来自不同类型的文件2、文本清洗和结构化解析去除水印、空行、乱码、统一编码等真实文件存在大量噪声3、文本切分解决检索匹配问题块太大→检索匹配不准块太小→上下文语义断裂4、元数据增强记录重要数据检索时可做元数据过滤比如只搜某份文件、某类主题回答时可溯源到具体页码建库时候Embedding模型建库时 D1 的 text → Embedding 模型 → 向量 v1 D2 的 text → Embedding 模型 → 向量 v2 D3 的 text → Embedding 模型 → 向量 v3 提问时 “怎样让模型先查资料再回答” → Embedding 模型 → 问题向量 q → 比较 q 与 v1、v2、v3 的相似度 → 取回最相关资料的原文第二步接受用户问题这段代码接收用户输入的问题去除空格并将内容转变为小写。question input(请输入问题).strip() normalized_question question.lower()在真实项目中用户内容可能来自网页聊天框或者接口请求可能还需要将问题处理为向量。第三步检索相关内容这里实现的是手工标签的词面匹配没有计算相关性分数。retrieved_docs [] for document in documents: for keyword in document[keywords]: if keyword.lower() in normalized_question: retrieved_docs.append(document) break在真实项目中用 Embedding 模型把每个片段转换成向量并让向量与原文、来源保持关联。所以Embedding模型的职责是帮助找经过处理向量数据库中的关联向量。第四步查看检索结果处理空结果打印命中了哪些资料便于检查检索是否符合预期。若一条也没找到就结束程序避免把空资料交给模型。print(f检索到 {len(retrieved_docs)} 条资料) for document in retrieved_docs: print(f[{document[id]}] {document[text]}) if not retrieved_docs: print(没有检索到相关资料暂不生成回答。) raise SystemExit第五步把资料整理成上下文把每条命中资料的编号和原文放在一起再用换行符连接。最终的context就是准备提供给模型的参考资料。context_lines [] for document in retrieved_docs: context_lines.append(f[{document[id]}] {document[text]}) context \n.join(context_lines)系统可能取回多个片段连同文件名、页码等来源一起整理。同时需要控制资料长度、减少重复内容避免把大量无关片段放进模型输入。第六步构造Prompt把回答要求、检索资料和用户问题放在同一个 Prompt 中。原本模型只看到问题现在还能看到我们检索出的资料。prompt f请只根据下面的资料回答问题。 如果资料不足请回答“资料不足无法回答”。 回答后标出所用资料编号例如 [D1]。 资料 {context} 问题{question} 回答所以我们总结一下用最通俗易懂的方式来理解RAG那就是从数据库查资料把查到的资料拿出来然后写进Prompt里面最后交给LLM。写进Prompt、写进Prompt、写进Prompt重要的东西说三遍最重要的地方就是把内容写进Prompt也可以说是写进提示词工程中。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

本地 AI 智能体 OpenClaw 配置教程,简化环境搭建流程 2026/9/29 9:56:40

本地 AI 智能体 OpenClaw 配置教程,简化环境搭建流程

OpenClaw Windows 部署实操|搭建本地 AI 智能体,简化办公自动化配置 核心亮点:可视化操作|自动配置运行环境|内置全部依赖组件|支持自然语言下达任务|28 万 Tokens 额度 Windows 版本 3.1.0 下载…

阅读更多 →
OpenClaw 到底不安全在哪?把 Skill、shell、powershell 风险讲透,也别自己吓自己 2026/9/29 9:56:40

OpenClaw 到底不安全在哪?把 Skill、shell、powershell 风险讲透,也别自己吓自己

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
异构OCR+大模型推理中枢:老旧笔记本离线部署实战 2026/9/29 9:56:40

异构OCR+大模型推理中枢:老旧笔记本离线部署实战

1. 项目概述:为什么一个“异构OCR大模型推理中枢”的本地部署值得花两周时间折腾我去年底在给一家做票据自动化处理的客户做技术咨询时,被问到一个问题:“你们能不能让一台带核显的老笔记本,既识别发票上的手写金额,又…

阅读更多 →
Flowable工作流集成LLM作为原生节点的工程实践 2026/9/29 9:56:40

Flowable工作流集成LLM作为原生节点的工程实践

1. 项目概述:让工作流真正“思考”起来Flowable 工作流引擎在企业级业务系统中跑了十几年,它像一台精密的瑞士钟表——每个节点准时触发、每条连线严丝合缝、每个审批环节有据可查。但问题来了:当流程走到“客户投诉分析”这一步,…

阅读更多 →
Android Monkey测试实战:从命令参数到崩溃定位的稳定性测试全解析 2026/9/29 9:56:40

Android Monkey测试实战:从命令参数到崩溃定位的稳定性测试全解析

做App稳定性测试这些年,Monkey测试始终是我心里最朴素也最实用的一件武器。很多新人觉得它不过是一条adb shell monkey命令,随机乱点一通,能跑出崩溃就算完事。可真到了线上用户反馈“打开就闪退”、评分区一片一星的时候,回头复盘…

阅读更多 →
速通redis基础 2026/9/29 9:56:20

速通redis基础

认识Nosql了解redis安装redis这里安装是在Linux中安装,提供两种方法,一种就是自己手动配置redis,另一种就是通过ailiyun 的yum在线仓库直接下载,不用下载gcc这个编译器方法一:第一步:先装 epel 扩展源&…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉