AI和运维的故事


AIOps 与大模型知识指南

AIOps 的实现离不开现在大模型的大力发展,所以要做 AIOps 相关的业务,就需要了解并使用大模型相关知识。本次内容将从以下6个章节介绍大模型相关的知识:

Prompt Engineering
Chat Completions、Memory、JSON Mode
Function Calling
Fine-tuning
检索增强生成(RAG、Graph RAG)
本地部署常见的开源模型


Prompt Engineering

Prompt简介

Prompt Engineering 是指通过设计、优化输入给 AI 模型的“提示词”(Prompt),来引导模型生成更准确、有用或创意性输出的技术。它是一门结合语言理解、任务建模与人机交互的艺术与科学。

尽管现在的大模型具备强大的自然语言理解和生成能力,但它的行为高度依赖输入的提示词(Prompt),所以 Prompt 决定着大模型的输出质量。

当用户输入 Prompt,大模型接受到的其实是一个个 Token,这是为什么呢?在大模型中,Token 是模型处理文本的基本单位,人类是通过文本来理解内容,而大模型是通过 Token 来理解内容。它可以是一个单词、标点符号、数字,甚至是一个子词(subword)。不同模型对 Token 的划分方式略有不同,但总体上可以理解为:把一段文字切分成一小块一小块的“单元”就是 Token 。

比如,当用户输入 "Hello, world!",会被拆分为以下几个 Token(以 GPT 模型为例):“Hello”、“,”、” world”、“!”,所以一共是 4 个 token。当大模型接收 Token 后,会根据这些 Token 进行推理生成新的 Token,最后再把这些 Token 转换成人类可读的文本输出。

Tips:
每个模型都有最大上下文长度限制(比如 GPT-3.5 是 4096 tokens,GPT-4 可达 32768 tokens),包括你的 Prompt + 输出内容都不能超过这个限制。另外,目前商用大模型的Token免费额度都有限,如果设计的Prompt不合理,就会产生额外的费用,我们可以看看Prompt中的哪些内容对Token的数量有实质的影响。

类型 影响程度 说明
文字长度 ⬆️ 高 内容越长,Token 越多
标点符号 ⬆️ 中 逗号、句号、引号等都会单独算作Token
专业术语/生僻词 ⬆️ 中 某些模型可能将其拆成多个Token
语言种类 ⬆️ 中 英语通常比中文Token更少
编程语言 ⬆️ 高 特殊符号多,Token数量上升快

所以,我们在设计Prompt的时候要记住 并非输入的越多,回答的就越好 。要记住设计 Prompt 的几个核心原则:

具体描述,避免模糊:不说 “不要遗漏重点”,而是明确 “请突出 XX、XX 两个关键信息”;
排序重要事项:如果有多个需求,按优先级说明,比如 “首先分析日志错误,其次统计出现频率,最后给出解决方案”;
使用标准格式:比如用 Markdown 的标题、列表等结构,让模型输出更规整,例如 “请用 ### 问题原因、### 解决步骤的格式整理结果”;
拆解任务,给出思路:复杂问题分步骤引导,比如 “先分析错误类型,再匹配历史案例,最后生成修复建议”。


Prompt的开发模式:Zero-shot 和 Few-shot

日常工作中,常用的Prompt编写模式是 Zero-shot 和 Few-shot。

Zero-shot 模式是纯自然的描述任务,不提供具体的例子,比如仅说明识别用户意图可能涉及查询日志、指标或运维操作。
Few-shot 模式在自然语言任务描述之外,提供参考例子,如给出三个示例,以增强大模型的推理准确性。

由于 Few-shot 模式会给大模型提供例子,这能使大模型回答的更加精准, 所以在日常使用中,我们优先采用 Few-shot 模式。但是,对于处理逻辑性比较强的任务时,单纯 Few-shot 不太够用,这时候就要引入 思维链(Chain of Thought)。


Chain of Thought

思维链是一种技巧,旨在让大模型在给出答案前进行逐步思考,并在每一步提供解释,以增强答案的解释性和提高推理的准确性。

一个典型的 CoT Prompt 包括以下几个部分:

问题描述
明确要求分步思考
示例演示(可选)
最终要求输出答案

示例Prompt:

问题:小明有 5 个苹果,吃了 2 个,又买了 3 个。他现在有多少个苹果?

请一步步思考这个问题,并写出你的推理过程,最后给出答案。

大模型可能的回答是:

小明最开始有 5 个苹果。
他吃了 2 个,剩下 5 – 2 = 3 个。
他又买了 3 个,所以现在有 3 + 3 = 6 个苹果。
答:小明现在有 6 个苹果。

在运维场景中,可以把专家知识库中的内容加入到系统提示语中,让大模型扮演运维专家的角色,优先以提供的知识库而非自身训练的内容回答问题,这种基于特定知识库进行问题解答可以提升回答的准确性和专业性。


Prompt 分片

Prompt 分片是指将原始 Prompt 切分为多个小块(chunks),然后分别处理这些小块内容,并最终整合输出结果的一种策略。

场景:

输入文本太长,超过模型最大 Token 数限制。
需要对文档、文章、日志等内容进行摘要、分析、问答操作。
提高模型对长文本的理解和处理能力。

流程:

拆分:将长文本按一定规则拆分成多个chunk。
处理:对每个chunk进行单独运行Prompt,生成中间结果。
整合:将所有中间结果合并,生成最终的输出。

分片方式:

分片方法 描述 适用场景
固定长度分片 每个 chunk 固定长度 文本较长且结构不敏感的任务
基于语义分片 按句子、段落、章节等 需保留逻辑结构的任务(论文、合同等)
滑动窗口分片 前后chunk有重叠防丢失 关键信息可能跨chunk出现的场景
向量化分片 用向量匹配最相关chunk RAG、智能检索、问答系统

注意事项:

信息丢失风险。
Token 成本增加。
一致性问题。


Chat Completions、Memory、JSON Mode

Chat Completions

Chat Completions(聊天补全) 是现代大语言模型(如 OpenAI 的 GPT-3.5、GPT-4、通义千问、Claude 等)提供的一种 API 接口,专门用于处理多轮对话任务。

输入:消息列表,包含角色、内容等
输出:模型的回复

// 输入示例
{
            
  "model": "gpt-3.5-turbo",
  "messages": [
    {
            "role": "system", "content": "你是一个翻译助手,擅长中英文互译。"},
    {
            "role": "user", "content": "请将以下中文翻译成英文:'人工智能是未来的关键技术之一。'"},
    {
            "role": "assistant", "content": "'Artificial intelligence is one of the key technologies of the future.'"},
    {
            "role": "user", "content": "谢谢!"}
  ],
  "temperature": 0.7
}
// 输出示例
{
            
  "choices": [
    {
            
      "message": {
            
        "role": "assistant",
        "content": "不客气!如果你还有需要翻译的内容,请随时告诉我。"
      }
    }
  ]
}

有三大角色:

system:系统指令,设定 AI 行为、身份或任务规则。
user:用户输入,代表用户说的话或提问。
assistant:模型输出,即 AI 的回答。

实现例子(Python代码,使用OpenAI API)
from openai import OpenAI

client = OpenAI(api_key="sk-xxxx", base_url="https://api.siliconflow.cn/v1")

completion = client.chat.completions.create(
    model="deepseek-ai/DeepSeek-R1-0528-Qwen3-8B",
    messages=[
        {
            "role": "system", "content": "你是一个运维专家,你可以帮忙解决专业的技术运维问题"},
        {
            "role": "user", "content": "如何在Ubuntu上安装Python3,请用一句话总结"}
    ]
)

print(completion.choices[0].message.content)

若要让模型“记忆”历史内容,就要把所有历史消息都带上每次请求的 messages 参数。


LangChain Memory

在处理大模型记忆的时候,直接管理上下文较为复杂,因为大模型由于Token的限制无法记住所有的对话,这里就可以引入 LangChain 这种长期记忆的管理方法。

类型 描述 是否持久化
ConversationBufferMemory 缓冲记忆,顺序存储全部消息
ConversationBufferWindowMemory 保留最近N条对话
ConversationTokenBufferMemory Token长度限制的历史
ConversationSummaryMemory 自动摘要历史对话
ConversationKGMemory 提取实体和关系做知识图谱
RedisChatMessageHistory 到 Redis/DB 持久存储
典型使用方式

ConversationBufferMemory …(省略具体代码)
推荐用 LangGraph 高级实现,对多用户/会话支持更好


JSON Mode

要求模型稳定输出 JSON 格式,方便程序自动扩展。

示例:

from openai import OpenAI

client = OpenAI(base_url="https://api.siliconflow.cn/v1", api_key="sk-xxxx")

response = client.chat.completions.create(
    model="deepseek-ai/DeepSeek-R1-0528-Qwen3-8B",
    response_format={
            "type": "json_object"},
    messages=[
        {
            "role": "system", "content": '你现在是一个 JSON 对象提取专家,请参考我的JSON定义输出JSON对象,示例:{"service_name":"","action":""},其中action可以是 get_log,restart,delete'},
        {
            "role": "user", "content": "帮我重启pay服务"}
    ]
)
print(response.choices[0].message.content)

输出:{"service_name":"pay","action":"restart"}


Function Calling

Function Calling(函数调用) 是大型语言模型(LLM)的一项能力,允许模型根据用户的自然语言输入,识别并调用预定义的工具或 API 函数 ,从而执行特定任务。

与外部系统交互
执行计算或数据查询
生成结构化的输出供后续处理

示例(OpenAI Function Calling)
(Python代码略,详见原文)

模型识别工具,生成调用参数
开发者解析参数并调用实际函数
把结果作为对话历史继续投喂模型,实现多轮自动响应


Fine-tuning

Fine-tuning(微调) 是在预训练语言模型的基础上,结合特定领域或任务,用自有数据再训一轮,从而获得更优的表现。适合在对结果风格、专业领域表现、规则遵守有更高要求时使用。

流程:

准备原始数据(如日志内容及其优先级标注)
转成JSONL 格式
上传数据到模型平台,发起微调任务
用微调后模型进行推理


检索增强生成(RAG、Graph RAG)

RAG(Retrieval-Augmented Generation)

结合信息检索与生成,模型回复时可以动态查阅外部知识库,提高准确性。

步骤

索引:文档加载→拆分→向量化→存储
检索与生成:实时检索相关分片,作为上下文交互 LLM

Graph RAG

把文档拆解成实体和关系形成知识图谱,结合图数据库做推理。
可以回答涉及关系与结构的问题。


本地部署常见的开源模型

为保障数据安全、降低使用成本,本地部署大模型成为越来越多企业的选择。

Ollama
LM Studio
FastChat
Open WebUI

过程简要

安装工具
拉取需要的模型
(可选)自定义 System Prompt
用 API/WebUI 调用本地推理


总结

本文围绕 AIOps 智能运维 与 大语言模型(LLM) 的结合展开,介绍了 Prompt Engineering、Function Calling、RAG、Graph RAG、本地模型部署等关键技术的应用方式,并通过实际示例展示了如何将这些技术用于日志分析、故障定位、智能问答和自动化运维场景。

我们看到,Prompt 是引导模型输出的核心工具,而Function Calling 和 Memory 机制 则让模型具备了“执行能力”和“记忆能力”。RAG 和 Graph RAG 的引入,使得系统能够在不微调模型的前提下,灵活接入企业知识库,提升回答的准确性与逻辑性。此外,为保障数据安全、降低使用成本,本地部署开源模型 成为越来越多企业的选择。Ollama、FastChat、Text Generation WebUI 等工具,使得本地推理变得简单高效。


© 版权声明
THE END
如果内容对您有所帮助,就支持一下吧!
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容