01-从第一性原理理解RAG-企业知识库为什么不能只依赖大模型
📅 2026/7/30 9:34:02
👁️ 次浏览
从第一性原理理解 RAG为什么企业知识库不能只依赖大模型系列从零构建企业 RAG 知识库第 1 篇1. 先拆开企业问答的真实需求企业并不是只需要一段“像答案的话”而是需要答案基于组织允许访问的资料资料更新后不必重新训练整个模型回答能说明来自哪份文档没有证据时拒绝猜测不同用户只能看到自己有权访问的数据。大模型的核心能力是根据输入 Token 和训练中学到的统计规律预测后续 Token。模型参数不是企业数据库也不会自动知道刚更新的制度更不能天然理解当前登录用户的数据权限。2. RAG 的第一性结构RAGRetrieval-Augmented Generation检索增强生成把任务拆成两个阶段Retrieval从外部知识中找出与问题相关、且用户有权访问的证据 Generation把问题和证据交给模型生成受证据约束的回答因此RAG 不是某个产品名称也不等于“向量数据库”。只要系统在生成之前检索外部资料并把结果用于约束回答就具备 RAG 的基本结构。3. 最小数据模型fromdataclassesimportdataclassdataclass(frozenTrue)classChunk:可检索的最小证据单元。chunk_id:strdocument_id:strtenant_id:strtext:strsource_title:strdataclass(frozenTrue)classSearchContext:权限信息必须来自可信登录会话。tenant_id:strallowed_document_ids:frozenset[str]tenant_id和allowed_document_ids不能由模型填写也不能从用户问题中推断。4. 先用确定性检索理解闭环下面不是生产级搜索而是一个可运行的关键词重合检索器。它帮助我们看清必须先过滤权限再计算相关性。importredefterms(text:str)-set[str]:教学分词提取英文单词、数字和连续中文字符。returnset(re.findall(r[A-Za-z0-9_]|[\u4e00-\u9fff],text.lower()))defretrieve(question:str,chunks:list[Chunk],context:SearchContext,top_k:int3,)-list[Chunk]:ifnotquestion.strip():raiseValueError(问题不能为空)ifnot1top_k20:raiseValueError(top_k 必须在 1 到 20 之间)query_termsterms(question)scored:list[tuple[int,str,Chunk]][]forchunkinchunks:# 权限过滤必须发生在候选进入结果之前ifchunk.tenant_id!context.tenant_id:continueifchunk.document_idnotincontext.allowed_document_ids:continuescorelen(query_termsterms(chunk.text))ifscore0:# chunk_id 作为稳定排序键保证测试结果可复现scored.append((-score,chunk.chunk_id,chunk))scored.sort()return[item[2]foriteminscored[:top_k]]5. 没有证据时必须拒答defbuild_grounded_prompt(question:str,evidence:list[Chunk])-str:ifnotevidence:return现有授权资料中没有足够证据请不要猜测。context_text\n\n.join(f[{item.chunk_id}] 来源{item.source_title}\n{item.text}foriteminevidence)returnf 你是企业知识库助手。 只能根据 evidence 回答不得使用无法从证据确认的事实。 回答中的关键结论必须引用对应 chunk_id。 证据冲突时说明冲突证据不足时回答“现有资料无法确认”。 evidence{context_text}/evidence question{question.strip()}/question .strip()Prompt 约束不能保证模型永远不幻觉最终还需要输出校验、评测和人工审核。6. 可复验测试deftest_permission_filter_happens_before_retrieval()-None:chunks[Chunk(c1,d1,tenant-a,退款期限为七天,A 租户制度),Chunk(c2,d2,tenant-b,退款期限为三十天,B 租户制度),]contextSearchContext(tenant-a,frozenset({d1}))resultretrieve(退款期限,chunks,context)assert[item.chunk_idforiteminresult][c1]assert三十天notinbuild_grounded_prompt(退款期限,result)deftest_no_evidence_refuses_to_guess()-None:promptbuild_grounded_prompt(董事长手机号是什么,[])assert不要猜测inprompt7. RAG 能解决什么不能解决什么RAG 能改善私有知识接入知识更新速度回答溯源一部分事实性幻觉查询前的数据权限过滤。RAG 不能自动保证检索一定召回正确文档文档本身没有错误或冲突模型一定忠实使用证据用户一定有权查看检索结果所有问题都适合用知识库回答。8. 对抗性审查文档内容同样是不可信数据可能包含 Prompt Injection权限过滤应在检索阶段完成不能生成后再删除不把整个企业文档库塞进上下文证据必须保留文档、页码或段落等来源元数据知识更新后要使旧索引和缓存失效高风险答案需要人工确认。9. 总结RAG 的本质不是“给大模型加数据库”而是把知识事实从模型参数中分离出来检索系统负责找到授权证据生成模型负责基于证据表达。企业知识库的可靠性来自两部分共同受控。
文章目录一、以前用AI写代码,纯纯单方面打工1.1 普通AI和Agent,差距到底多大二、亲手落地三个自研Agent,直接盘活团队开发流程2.1 一号工具:PR自动审查Agent,拯救所有人Code Review时间2.2 二号工具:API文档…
📅 2026/7/30 9:34:02
1. 项目概述:AI驱动的学术写作革命 这个名为"书匠策AI"的工具正在学术圈掀起一场静默革命。作为一名在科研领域摸爬滚打十年的"老油条",我亲眼见证了无数研究生为了一篇符合期刊要求的论文熬夜爆肝的惨状。直到上个月参加学术会议时…
📅 2026/7/30 9:34:02
1. 现代终端安全防护体系解析 在当今企业安全架构中,终端检测与响应(EDR)和主机入侵检测系统(HIDS)已成为防御体系的核心组件。这些系统通过多层次的监控手段,包括实时内存扫描、进程行为分析、API调用追踪…
📅 2026/7/30 9:34:02
你是不是也遇到过这种崩溃时刻?甲方拿着图纸催进度,你对着AutoCAD里密密麻麻的桩位图发呆。手动算承台内力?那简直是自虐。手算容易出错,电算软件又太贵或者操作反人类,最后熬到凌晨三点,发际线后移两厘米,结果发现剪力计算少了一个系数,还得重头再来。这种痛苦,干过岩…
📅 2026/7/30 21:42:43
1. 项目概述"代码随想录算法训练营|day 8"是一个面向程序员的算法提升训练项目。作为系列课程的第八天内容,它延续了该训练营一贯的"每日一练"特色,通过精心设计的算法题目帮助学员系统性地提升编程能力。这个训练营最大的特点是采用…
📅 2026/7/30 21:42:43
如何用CaImAn实现钙成像数据的快速运动校正?专家教程 【免费下载链接】CaImAn Computational toolbox for large scale Calcium Imaging Analysis, including movie handling, motion correction, source extraction, spike deconvolution and result visualization…
📅 2026/7/30 21:42:32
robinhood-node期权交易完全指南:从理论到实践的完整路径 【免费下载链接】robinhood-node :chart_with_upwards_trend: NodeJS client for Robinhood Trading :fire: 项目地址: https://gitcode.com/gh_mirrors/ro/robinhood-node
robinhood-node是一个强大…
📅 2026/7/30 21:42:23
题目:1373:鱼塘钓鱼(fishing)
题目描述
有N个鱼塘排成一排(N<100),每个鱼塘中有一定数量的鱼,例如:N5时,如下表:
鱼塘编号每1分钟能钓到的鱼的数量&…
📅 2026/7/30 21:42:22
聊天机器人、AI助手、AI智能体到底有什么区别?搞懂这层才算真正入门基于规则或简单模型的问答系统,主要用于FAQ检索和客服首轮分流,比如“怎么退货”“营业时间”这类高频标准问题。遇到超出预设范围的问题,它只能说“这个我不太清…
📅 2026/7/30 21:42:18
本文关键词:geo2是共价化合物哎,说实话,每次看到化学题里那些弯弯绕绕的电子式,我就头大。特别是遇到那种非要让你判断是离子还是共价的,心里就发毛。今天咱不整那些虚头巴脑的定义,就聊聊二氧化硅,也就是大家常说的硅石、石英,很多人会误写成geo2,虽然化学式不对,但…
📅 2026/7/30 0:00:24
B4557 [GESP202606 四级] 扫雷 https://www.luogu.com.cn/problem/B4557 中国计算机学会(CCF)2026年6月C四级讲解——扫雷 https://www.bilibili.com/video/BV1MCMg6AEXR/ B4557 [GESP202606 四级] 扫雷 https://www.bilibili.com/video/BV1ZKTj6ZEVh/ 2…
📅 2026/7/30 0:00:26
Windows驱动存储终极清理工具:DriverStoreExplorer完全指南 【免费下载链接】DriverStoreExplorer Driver Store Explorer 项目地址: https://gitcode.com/gh_mirrors/dr/DriverStoreExplorer
您是否曾因Windows系统盘空间不足而烦恼?是否遇到过设…
📅 2026/7/30 0:00:26
更多请点击:
https://codechina.net
第一章:AI帮助理解数学概念 人工智能正以前所未有的方式重塑数学学习的路径。通过自然语言处理与符号计算的深度融合,AI不仅能解析抽象定义,还能将定理、证明和几何直觉转化为可交互、可验证的…
📅 2026/7/30 1:16:07
1. 项目背景与核心价值去年参与的一个短剧项目让我深刻体会到传统创作流程的痛点:编剧团队花了三周打磨剧本,角色设计反复修改了七版,最后成片时又因为演员档期问题不得不临时调整分镜。这种低效的创作模式在快节奏的内容行业越来越难以为继。…
📅 2026/7/30 1:16:07
remix-i18next TypeScript类型安全实践:确保翻译键与类型定义同步 【免费下载链接】remix-i18next The easiest way to translate your React Router framework mode apps 项目地址: https://gitcode.com/gh_mirrors/re/remix-i18next
在开发多语言应用时&am…
📅 2026/7/30 1:16:07
目录
第一步:选对模板,省心一半
第二步:打开扫码点餐功能
开启功能按钮
桌台管理与桌码生成
第三步:个性化设计,打造品牌感
调整点餐页面
设置点餐规则 你还在让顾客站着排队点餐吗?2025年ÿ…
📅 2026/7/30 7:16:27
在业务中快速构建一个能理解私有文档、准确回答专业问题的智能助手,是很多开发团队面临的共同挑战。传统方案往往需要从零开始搭建复杂的 RAG(检索增强生成)系统,涉及文档解析、向量化、检索、大模型调用等多个环节,整…
📅 2026/7/30 17:17:14
FAE放射组学分析工具:医学影像特征探索的完整解决方案 【免费下载链接】FAE FeAture Explorer 项目地址: https://gitcode.com/gh_mirrors/fae/FAE
你是否曾经面对海量医学影像数据感到无从下手?想要从CT、MRI等影像中提取有价值的定量特征&#…
📅 2026/7/30 5:16:22