让 AIOps Agent 学会查询历史故障
RAG 是什么RAG全称 Retrieval-Augmented Generation检索增强生成。先查询最新的知识如果有合适就基于这些知识回答如果没有再用历史的知识回答RAG 的思路是用户提问的时候先去知识库里捞几条相关文档把这些文档和问题一起拼进 prompt再让 LLM 基于这些事实来回答。相当于给LLM配置了一个内部资料包先看代码结构代码blog/code/├── main.py # 主流程分词检索 prompt 拼装 LLM 调用└── knowledge_base.py # 知识库存放运维文档knowledge_base.py这个文件很简单就是一个 Python 列表每个元素是一条运维文档包含 title 和 content 两个字段docs [{“title”: “Nginx 504 排查手册”,“content”: “Nginx 504 通常表示网关等待上游服务响应超时需要检查 upstream 服务耗时、业务服务日志、数据库慢查询和连接池。”},{“title”: “订单服务历史故障”,“content”: “订单服务曾经因为数据库连接池耗尽导致 /api/orders 接口大量超时最终在 Nginx 中表现为 504。”},# …]在真实生产里这里可以换成从 Confluence、内部 Wiki、Elasticsearch 里拉取的文档甚至是历史故障复盘记录。这个 Demo 用硬编码列表是为了让整个流程零依赖、能直接跑。main.py_tokenize 函数负责把文本拆成 tokendef _tokenize(text: str):text text.lower()tokens re.findall(r[a-z0-9]“, text) # 英文/数字按词切分chinese_parts re.findall(r”[\u4e00-\u9fff], text)for part in chinese_parts:if len(part) 1:tokens.append(part)else:tokens.extend(part[i:i 2] for i in range(len(part) - 1)) # 中文按 2 字片段切return set(tokens)retrieve 函数用关键词命中次数给文档打分取 top_k用集合求交集来算相关度简单粗暴但在小型知识库里够用def retrieve(query: str, top_k: int 2):query_tokens _tokenize(query)results []for doc in docs:text doc[“title”] doc[“content”]doc_tokens _tokenize(text)score len(query_tokens doc_tokens) # 交集大小 相关度if score 0:results.append({…})results.sort(keylambda x: x[“score”], reverseTrue)return results[:top_k]整条 RAG 链路在 main 里串起来用户问题↓retrieve() ← 关键词检索拿 top_k 文档↓build_prompt() ← 把文档 问题拼成 prompt↓call_llm() ← 发给 LLM拿回答↓打印结果以 “订单服务出现大量 504应该怎么排查” 为例跑一遍控制台输出大致如下 检索到的文档 Nginx 504 排查手册score4订单服务历史故障score3 构造出来的 Prompt 你是一个 Kubernetes 运维分析 Agent。…文档标题Nginx 504 排查手册文档内容Nginx 504 通常表示…文档标题订单服务历史故障文档内容订单服务曾经因为数据库连接池耗尽…… LLM 最终回答 根据知识库建议优先排查以下几点检查订单服务数据库连接池是否耗尽历史上曾出现此问题查看 Nginx upstream 日志确认超时节点确认 Pod 实例数和 CPU/内存状态…LLM 的回答里会引用到历史上连接池耗尽这条这就是 RAG 发挥作用的地方——纯靠通用知识是不会提这条的如果匹配的文档有5000字那全部都要塞给llm吗假设有 100 个故障案例文档每个文档 5000 字那就是50w字的全部发给llm不但提高了回答成本回答速度也会大大降低造成了大量浪费如果内容太长放进大模型上下文会浪费 token。并且里面主题太杂内容检索可能不知道这篇文档到底主要讲什么所以文档选取的时候一般选取最相关的top5并且文档需要拆分成更小的chunk类似这种标题订单服务大量 504现象Nginx 出现大量 504upstream_response_time 超过 60sPod CPU/内存正常Redis、MySQL、Kafka 连接正常排查过程查询 Nginx 日志确认是 upstream timeout查询业务日志发现调用三方接口耗时异常查询 PrometheusPod 资源无明显瓶颈查询链路追踪确认耗时集中在 external-api span根因三方接口响应慢导致业务线程阻塞Nginx 等待超时。处理临时调大线程池降级三方接口增加超时控制增加熔断策略关键词504, upstream timeout, external api, thread blocked, nginx这已经是一个完整知识单元现象 → 排查过程 → 根因 → 处理方案chunk和文档有什么关系简单来说完整的文档就相当于一本书一个chunk就是某页或者某一小节查资料时只摘抄相关小节而不是读完整本书和 RAG 用 chunk 逻辑完全一致chunk向量化原始文档切割后的成为不同的chunk通过embedding 模型转换成一段向量而提出的问题也会被转换成一段向量用户问题向量和所有 chunk 向量看哪个最相似最终返回最相似的几个 chunk提交给llm例如chunk订单服务大量 504Pod 正常Redis MySQL 正常最终是三方接口慢导致线程阻塞转换成向量[0.012, -0.233, 0.891, 0.056, …]用户问题订单接口大量 504但是 Pod 和数据库都正常怎么排查也转换成向量[ 0.021564, -0.156489, 0.089451, …]然后向量库会比较两者的向量看哪个最相似返回相似的chunk提交给llm总结一个最简 RAG 只需要三件事知识库、检索函数、拼 prompt 的逻辑RAG 的本质不是让 LLM 变聪明而是内部资料及时喂给它让它回答的更切近内部服务的内容而不是通用的内容RAG需要在海量的文档中搜索出最佳匹配的chunk来给llm提供依据回答问题联系我

相关新闻

abap PI使用函数入参出参作为接口参数

abap PI使用函数入参出参作为接口参数

首先创建一个函数,设置入参和出参格式并设置为远程函数编辑处理逻辑打开ESB 配置连接信息右击下图,导入SAP对象填写SAP账号信息在RFC内找到新创建的函数,可以搜索正常创建SI,入参和出差可以拖动刚才新增的RFC结构到该处&#xff0…

2026/10/17 9:30:02 阅读更多 →
推荐系统的技术债:实验平台和特征管道比模型本身更难维护

推荐系统的技术债:实验平台和特征管道比模型本身更难维护

推荐系统的技术债:实验平台和特征管道比模型本身更难维护 一、模型不是最难的部分——推荐系统的真实瓶颈藏在基础设施里 业界聊推荐系统,80% 的精力花在聊模型——双塔、DIN、DeepFM、多目标优化,各种前沿论文层出不穷。但在生产环境里跑了两…

2026/10/17 0:02:16 阅读更多 →
推荐系统推理服务化:特征抽取和模型推理拆成独立微服务

推荐系统推理服务化:特征抽取和模型推理拆成独立微服务

推荐系统推理服务化:特征抽取和模型推理拆成独立微服务 一、单体推理服务的性能天花板:特征与推理耦合引发的连锁故障 推荐系统上线初期,绝大多数团队的做法是把特征抽取和模型推理塞进同一个服务进程。请求进来 → 查用户画像 → 查物品特征…

2026/10/16 17:12:59 阅读更多 →

最新新闻

基于Unity和Blender的六边形行星生成器:网格、地形与关卡设计全解析

基于Unity和Blender的六边形行星生成器:网格、地形与关卡设计全解析

做太空题材或策略游戏时,程序化生成行星几乎是必答题。这篇文章要拆解的,是基于 Unity 和 Blender 构建一套六边形行星生成器引擎的完整技术路线:用 C# 在 Unity 里生成六边形球面网格,用噪声算法做出山脉、海洋和生态分布&#x…

2026/10/17 9:29:40 阅读更多 →
Unity程序化生成圆角路口网格:从道路中心线到Mesh的完整方案

Unity程序化生成圆角路口网格:从道路中心线到Mesh的完整方案

做交通模拟或者城市场景程序化建模时,最容易让人卡住的往往不是直道,而是路口。直道说白了就是一条拉伸的矩形带,可一到十字路口,两条路交叉处的路面网格要怎么生成,转角要不要带圆弧,贴图方向怎么才不会乱…

2026/10/17 9:29:40 阅读更多 →
产品上线后垃圾邮件防护:从邮箱配置到防爬实战

产品上线后垃圾邮件防护:从邮箱配置到防爬实战

最近在独立开发者社区里,经常能看到这样一句调侃:I launched on Product Hunt and all I got was spam email。翻译过来就是“我在 Product Hunt 上线了产品,结果除了垃圾邮件什么都没得到”。对于把 Product Hunt 当成产品首发阵地的开发者来…

2026/10/17 9:29:40 阅读更多 →
React实现合同文档结构树与双向定位的完整实践

React实现合同文档结构树与双向定位的完整实践

在合同审查这类 ToB 业务里,文档结构树几乎是标配功能。合同不像普通文章,动辄几十页、上百条条款,审査人员需要快速定位到某一条具体约定,或者在水印批注、条款比对时来回跳转。我刚接手一个合同审查项目时,第一版只是…

2026/10/17 9:29:40 阅读更多 →
手机号批量滚动抽奖:原生JS动画实现与避坑指南

手机号批量滚动抽奖:原生JS动画实现与避坑指南

简介:该资源是一份面向网页前端开发者的JavaScript手机号批量滚动抽奖实现代码,适用于年会、活动互动等场景,帮助读者快速搭建随机滚动、不重复中奖的抽奖页面。资料为单个PDF文档,压缩包大小仅56KB,内含完整示例代码与…

2026/10/17 9:29:40 阅读更多 →
WSL+tmux从零配置到实战:打造Windows高效命令行环境

WSL+tmux从零配置到实战:打造Windows高效命令行环境

最近帮朋友把一台Windows系统配成日常开发环境,发现很多人其实对WSL和tmux这两个名字都熟悉,但真正组合起来用的不多。我在Windows 10/11上用WSL跑了挺久,命令行工作从git到批量改文件、编译、挂机跑脚本,基本都搬进了tmux里。这篇…

2026/10/17 9:28:39 阅读更多 →

日新闻

DeepSeek选型与部署:V3/R1、Ollama、API全攻略

DeepSeek选型与部署:V3/R1、Ollama、API全攻略

简介:《DeepSeek使用方法.pdf》是一份面向DeepSeek入门及进阶用户的完整使用指南,重点围绕V3与R1两款模型的能力差异与适用场景展开,帮助读者根据任务类型与成本选择合适的模型。资源共1个PDF文件,压缩包大小约311KB,篇…

2026/10/17 0:00:25 阅读更多 →
200+Deepseek润色指令拆解:从底层原理到场景落地的完整指南

200+Deepseek润色指令拆解:从底层原理到场景落地的完整指南

简介:这是一份聚焦DeepSeek提示词优化的《200Deepseek润色指令》PDF文档,共收录两百余条可直接套用的润色指令,涵盖语法修正、风格统一、逻辑梳理、表达精炼等维度,并针对商务写作、学术论文、广告文案等场景给出差异化建议。文档…

2026/10/17 0:00:25 阅读更多 →
OpenCV轮廓法物体计数系统:轻量、可控、可落地的工业级实现

OpenCV轮廓法物体计数系统:轻量、可控、可落地的工业级实现

简介:本资源是一份基于OpenCV的本科课程设计完整报告,面向计算机视觉初学者、图像处理学习者及高校通信/信息类专业学生,解决物体智能计数与检测结果结构化记录的实际问题。项目覆盖图像预处理、轮廓检测、边界框绘制、轨迹栏交互式参数调节、…

2026/10/17 0:00:25 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/16 21:35:51 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/17 1:44:59 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/16 15:04:24 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

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

2026/10/16 21:54:38 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

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

2026/10/16 3:49:43 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

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

2026/10/16 14:23:36 阅读更多 →