我们团队积累了好几年的运维文档:故障复盘、架构变更记录、上线 checklists、各种中间件的配置最佳实践……分散在 Confluence、飞书文档和 Markdown 仓库里。
这些文档的价值很大,但问题也很明显:没人看。
新人来了不知道去搜什么;老人遇到问题想查个以前踩过的坑,但"我记得好像在哪看到过"——然后花了半小时翻文档,最后还是去问同事了。
我的想法很直接:把这些文档喂给大模型,做一个运维问答机器人。
第一次尝试:文档切碎丢进去
from langchain.text_splitter import MarkdownHeaderTextSplitterfrom langchain_community.vectorstores import Chromafrom langchain_community.embeddings import OpenAIEmbeddings
class OpsKnowledgeBase: def __init__(self, docs_dir: str): self.docs_dir = docs_dir self.embeddings = OpenAIEmbeddings(model="text-embedding-ada-002") self.vector_store = None self._load_documents()
def _load_documents(self): all_chunks = [] for root, dirs, files in os.walk(self.docs_dir): for f in files: if not f.endswith('.md'): continue with open(os.path.join(root, f), 'r', encoding='utf-8') as fp: content = fp.read() splitter = MarkdownHeaderTextSplitter( headers_to_split_on=[("#", "h1"), ("##", "h2")] ) all_chunks.extend(splitter.split_text(content))
self.vector_store = Chroma.from_documents( documents=all_chunks, embedding=self.embeddings)
看起来没问题,但一用就发现各种翻车。
翻车现场
翻车 1:问到具体的配置参数,答案张冠李戴
用户问:“Nginx 的 keepalive_timeout 应该设多少?”
知识库里有两份文档:一份说 65 秒(给 Web 前端用的),一份说 300 秒(给内网反向代理用的)。语义搜索把两个都找到了,LLM 把 65 秒和 300 秒混在一起回答。
教训:不加场景标签的文档,检索出来也是噪音。
翻车 2:新旧版本冲突
知识库里同时存在"K8s 1.20 迁移记录"和"K8s 1.26 升级文档",关于 Ingress 的配置方式完全不一样。用户问 Ingress 的问题,旧版本的文档优先级更高,LLM 给了过时的答案。
教训:没有版本标记,知识库就是时间的垃圾场。
翻车 3:检索到错误片段
有一篇踩坑记录,里面记录了某个错误的配置方式以及后来怎么改的。用户问配置方法,检索到了"踩坑"部分,LLM 把错误的配置当成了正确答案。
教训:文档里的反例如果不标注,会被 LLM 当成正例学习。
第二次尝试:结构化知识库
1. 给文档加上元数据
class KnowledgeDocument: def __init__(self, filepath: str): self.filepath = filepath self.metadata = self._parse_metadata()
def _parse_metadata(self) -> dict: # 文档格式:YAML front matter # --- # title: Nginx 配置最佳实践 # tags: [nginx, 配置, 性能优化] # version: v2.1 # deprecated: false # --- with open(self.filepath, 'r', encoding='utf-8') as f: content = f.read() if content.startswith('---'): parts = content.split('---', 2) metadata = {} for line in parts[1].strip().split('/n'): if ':' in line: k, v = line.split(':', 1) metadata[k.strip()] = v.strip().strip("'/"") return metadata return {}
2. 检索时做两轮过滤
class ImprovedRAG: def query(self, question: str, context: dict = None) -> str: # 第一轮:向量检索 TOP20 docs = self.vector_store.similarity_search(question, k=20)
# 第二轮:元数据过滤 filtered = [] for doc in docs: m = doc.metadata if m.get('deprecated') == 'true': continue filtered.append(doc)
context_docs = filtered[:5] # ... 拼接后给 LLM
3. 回答时标注置信度
def generate_answer(self, question: str, docs: list) -> str: if not docs: return "知识库中未找到相关信息"
avg_score = sum(d.metadata.get('relevance_score', 0.5) for d in docs) / len(docs)
if avg_score < 0.4: disclaimer = "以下信息仅供参考:" elif avg_score < 0.7: disclaimer = "以下信息可能部分相关,建议结合实际验证:" else: disclaimer = "根据知识库记录:"
answer = self._llm_answer(question, docs) return f"{disclaimer}/n{answer}"
做完之后的感受
折腾了一圈,准确率从第一版的 60% 提升到了 85% 以上。
但我最大的感受是:RAG 的瓶颈从来不在 LLM 和 Embedding,而在知识库本身。
如果你文档里写的都是"大概、可能、也许"这种模糊描述,或者同一个问题在不同文档里互相矛盾,再好的检索也救不了。
在做 RAG 之前,先做一件事:给你的知识库做一次数据治理。该删的删、该更新的更新、该打标签的打上标签。这个过程枯燥但必要——因为 LLM 只会在你给的数据上工作,它不会自己变出正确答案。
🚀 如果你想系统学习 AIOps,推荐这个课程👇

51CTO 明星讲师授课:崔皓(前惠普中国系统架构师、20年IT经验)& 韩先超(K8s架构师、50万+学员)
课程内容:
- 1AI 大模型开启智能运维新时代
- 2AI 智能解析慢查询:自动诊断 SQL 并给出优化方案
- 3自动化巡检实战:Dify + Prometheus + DeepSeek
- 4AIOps 闭环实践:基于大模型的对话式运维(OpenClaw + 微信 + Jenkins)
- 5DeepSeek + RAG:构建 K8s 智能故障分析平台
- 6企业级 AI 助手:实时分析 EFK 错误日志
- 7智能运维新范式:AI 故障预测与决策辅助
- 8零基础也能入门!用 AI 智能体实现运维智能化
🔗 点击文末「阅读原文」立即报名(微信后台已配置:https://edu.51cto.com/surl=CFqX11)
这里给大家精心整理了一份全面的AI大模型学习资源,包括:AI大模型全套学习路线图(从入门到实战)、精品AI大模型学习书籍手册、视频教程、实战学习、面试题等,资料免费分享!
👇👇扫码免费领取全部内容👇👇

1. 成长路线图&学习规划
要学习一门新的技术,作为新手一定要先学习成长路线图,方向不对,努力白费。
这里,我们为新手和想要进一步提升的专业人士准备了一份详细的学习成长路线图和规划。可以说是最科学最系统的学习成长路线。

2. 大模型经典PDF书籍
书籍和学习文档资料是学习大模型过程中必不可少的,我们精选了一系列深入探讨大模型技术的书籍和学习文档,它们由领域内的顶尖专家撰写,内容全面、深入、详尽,为你学习大模型提供坚实的理论基础。(书籍含电子版PDF)

3. 大模型视频教程
对于很多自学或者没有基础的同学来说,书籍这些纯文字类的学习教材会觉得比较晦涩难以理解,因此,我们提供了丰富的大模型视频教程,以动态、形象的方式展示技术概念,帮助你更快、更轻松地掌握核心知识。

4. 2026行业报告
行业分析主要包括对不同行业的现状、趋势、问题、机会等进行系统地调研和评估,以了解哪些行业更适合引入大模型的技术和应用,以及在哪些方面可以发挥大模型的优势。

5. 大模型项目实战
学以致用 ,当你的理论知识积累到一定程度,就需要通过项目实战,在实际操作中检验和巩固你所学到的知识,同时为你找工作和职业发展打下坚实的基础。

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

7. 资料领取:全套内容免费抱走,学 AI 不用再找第二份
不管你是 0 基础想入门 AI 大模型,还是有基础想冲刺大厂、了解行业趋势,这份资料都能满足你!
现在只需按照提示操作,就能免费领取:
👇👇扫码免费领取全部内容👇👇

1365



被折叠的 条评论
为什么被折叠?



