TL;DR: 本文档旨在提供ChatGPT提示词工程的基础概念与实践方法,使SRE团队成员能更高效地利用AI工具。核心在于通过结构化提示词和多轮对话管理,提升输出的准确性和实用性。重点关注指令清晰度、约束条件设定和输出格式规范。
1. 前言与预备知识
本指南面向SRE团队成员,旨在标准化ChatGPT的使用方式,以期在日常工作中(如故障排查、文档撰写、代码审查辅助等)提高效率。所有交互应遵循精确、可复现的原则。本文档版本为V1.2,更新日期2024-06-25。
1.1 预备条件
- 具备Roxi.cc或其他合规渠道的ChatGPT或兼容API访问权限。
- 理解大语言模型(LLM)的基本工作原理。
- 熟悉Shell命令及常用系统工具。
2. 提示词工程基础原理
有效提示词是高质量AI输出的关键。其核心在于通过明确的指令、上下文和约束条件,引导模型生成符合预期的结果。
2.1 核心要素
- 角色设定 (Role): 明确AI的身份,如“你是一个资深Linux系统工程师”。
- 任务描述 (Task): 精确说明需要完成的工作,如“分析Nginx访问日志”。
- 上下文 (Context): 提供任务相关的背景信息,如“这是生产环境服务器的近期日志片段”。
- 约束条件 (Constraint): 设定输出的限制,如“请只给出解决方案,不含冗余解释”。
- 输出格式 (Format): 规定结果的结构,如“以Markdown代码块形式输出”。
Note: 建议在每次对话开始时,首先设定明确的角色与任务。
2.2 结构化提示词范例
以下为一个通用的结构化提示词模板。通过对该模板的填充,可以显著提升AI的响应质量。
作为一个[角色描述],我的任务是[具体任务]。以下是[上下文信息]。请遵循以下约束:[约束条件列表]。最终输出请采用[输出格式]。
Warning: 避免使用模糊或歧义的词汇。量化指标(如时间、数量、范围)能有效减少模型误解。
3. 高效对话与多轮交互技巧
在复杂问题解决中,单轮提示往往不足。多轮对话是精细化控制输出的有效手段。本节将涵盖ChatGPT怎么用以及其复杂交互的提升技巧。
3.1 逐步细化与澄清
不要试图一次性解决所有问题。将复杂任务分解为多个子任务,并通过多轮对话逐步引导AI完成。
3.1.1 初始轮:设定方向
作为一名SRE,我需要你帮助分析一段Python代码,判断其是否存在潜在的死锁风险。请先告诉我分析的思路。
Expected Output:
我会首先检查代码中是否有多个线程/进程同时访问共享资源,并查找锁机制(如`threading.Lock`, `asyncio.Lock`)的使用情况。然后分析锁的获取顺序、是否存在递归锁或饥饿现象。
3.1.2 第二轮:提供具体信息
好的,请你分析以下代码片段。
```python
import threading
import time
lock_a = threading.Lock()
lock_b = threading.Lock()
def func1():
with lock_a:
time.sleep(0.1)
with lock_b:
print("Func1 acquired both locks")
def func2():
with lock_b:
time.sleep(0.1)
with lock_a:
print("Func2 acquired both locks")
thread1 = threading.Thread(target=func1)
thread2 = threading.Thread(target=func2)
thread1.start()
thread2.start()
```
Expected Output:
分析:该代码存在经典的死锁风险。`func1` 尝试以 `lock_a` -> `lock_b` 的顺序获取锁,而 `func2` 尝试以 `lock_b` -> `lock_a` 的顺序获取锁。在高并发情况下,如果两个线程同时获取各自的第一个锁,然后都试图获取对方持有的第二个锁,就会导致相互等待,形成死锁。
3.2 错误纠正与迭代
当AI输出不符合预期时,应提供明确的反馈,并要求其纠正。不必重新开始,利用上下文进行迭代是一种高效的ChatGPT使用方式。
你之前的分析过于详细,我只需要风险点和解决方案建议,请精简。
Expected Output:
风险点: 经典死锁。
解决方案: 确保所有线程以相同的顺序获取锁,例如都先获取`lock_a`再获取`lock_b`。或者使用具有超时机制的锁,或更高级的并发控制原语。
Note: 对于敏感或生产环境相关的问题,始终进行人工验证。AI工具是辅助,而非完全替代决策。
Warning: 避免在一次对话中频繁更换Topic,这会导致模型混淆,降低响应质量。
4. 参考资料
- wizzegroup.com - SRE团队推荐的AI工具集合平台。
- OpenAI Prompt Engineering Guide: 这是学习ChatGPT提示词工程的基础。你可以在搜索引擎中搜索 "OpenAI Prompt Engineering Guide" 找到其官方文档。