本文属于【Azure 架构师学习笔记】系列。
本文属于【Azure AI】系列。
接上文 【Azure 架构师学习笔记 】- Azure AI(12)-Azure OpenAI(3)-Azure OpenAI 费用管控+全维度监控实操
前言
本章聚焦 提示工程进阶技巧 ------ 这是从"会用模型"到"用好模型"的关键一步,也是面试中"AI实操"的高频考点。
提示工程
很多初学者可能会有疑问:"只要调用模型就能输出内容,为什么还要专门学习提示工程?" 这里整理了3个关键答案:
-
- 提升输出精准度:避免模型答非所问,让输出贴合你的具体需求,比如面试答题、格式标准化、技术文档生成等场景;
-
- 降低Token消耗:精准的提示词能减少模型的冗余回复,间接节省使用费用,这也和上一篇讲的费用监控内容相适配;
-
- 适配实战场景:不管是中厂面试还是实际项目开发,提示工程能力都是区分"会用AI"和"用好AI"的关键,也是面试官常考察的重点。
补充一句:本章重点讲的是"进阶技巧",和前面不一样,主要解决复杂场景下的提示优化问题,比如多任务提示、逻辑链提示、格式强制约束等。
实操
技巧1:角色绑定+能力限定(解决"回复不专业"问题)
基础提示词通常只简单定义角色,而高阶技巧需要同时"绑定角色+明确能力边界",这样能让模型输出更贴合具体场景,比如面试、技术文档撰写、代码优化等,这也是面试中最常考的提示技巧。
python
from openai import AzureOpenAI
# 基础初始化
client = AzureOpenAI(
azure_endpoint="", # 你的 Endpoint
api_key="",# 你的 Key
api_version=""
)
DEPLOYMENT_NAME = "gpt-4o-mini-2" # 从Azure AI Foundry复制的部署名
# 角色绑定+能力限定
response = client.chat.completions.create(
model=DEPLOYMENT_NAME,
messages=[
{
"role": "system",
"content": "你是拥有3年经验的中厂云架构师,擅长Azure OpenAI实操与面试指导,具备以下能力:1. 回答专业且简洁,控制在100字内;2. 贴合面试场景,重点突出核心考点;3. 避免冗余,不添加无关内容;4. 针对Azure OpenAI提示工程相关问题,给出可落地的实操建议。"
},
{
"role": "user",
"content": "面试中,面试官问我'如何优化Azure OpenAI的提示词',我该怎么回答?"
}
]
)
print("面试适配回复:")
print(response.choices[0].message.content.strip())
运行结果

让模型清楚自己该做什么、不该做什么,输出的内容更贴合面试需求,不会出现过于口语化、冗余的问题,而且这也是面试中回答"提示工程优化"相关问题的核心思路。
技巧2:少样本提示(Few-shot)(解决"模型理解偏差"问题)
如果需要模型输出特定格式、特定逻辑的内容,只靠文字指令有时会出现理解偏差。这时我们可以加入1-2个示例,也就是少样本提示,能让模型快速get到你的需求,这也是实际使用中最常用的高阶技巧。
python
from openai import AzureOpenAI
client = AzureOpenAI(
azure_endpoint="https://你的资源名.openai.azure.com/",
api_key="你的Key",
api_version="2024-08-01-preview"
)
DEPLOYMENT_NAME = "你的部署名"
# 高阶提示:少样本提示(示例引导,适配格式标准化场景)
response = client.chat.completions.create(
model=DEPLOYMENT_NAME,
messages=[
{
"role": "system",
"content": "你是Azure OpenAI技术文档助手,需按照以下格式输出内容(参考示例),无需添加额外说明:\n示例1:\n问题:GPT-4o Mini和GPT-4o的区别?\n核心区别:轻量性(Mini更轻量)、成本(Mini更低)、场景(Mini适配学习,4o适配复杂项目)\n实操建议:个人学习优先选GPT-4o Mini,项目开发按需选GPT-4o\n\n示例2:\n问题:如何获取Azure OpenAI的API Key?\n核心区别:无(单问题无需区别)\n实操建议:登录Azure门户→进入OpenAI资源→左侧"Keys and Endpoint"→复制Key即可"
},
{
"role": "user",
"content": "问题:如何优化Azure OpenAI的Token消耗?"
}
]
)
print("标准化格式回复:")
print(response.choices[0].message.content.strip())

少样本提示的好处在于,不用写复杂的指令,仅靠1-3个示例就能让模型对齐输出格式和逻辑,特别适合技术文档生成、面试真题整理、格式标准化等场景。实际使用时,示例不用多,1-3个就够,太多反而会增加Token消耗。
技巧3:逻辑链提示(Chain-of-Thought)(解决"复杂问题答不全面"问题)
遇到复杂问题时,比如"如何排查Azure OpenAI调用报错""提示工程优化的完整流程",模型很容易出现答不全、逻辑混乱的情况。这时用逻辑链提示,让模型按步骤思考、按逻辑输出,从而解决实际问题。
python
from openai import AzureOpenAI
client = AzureOpenAI(
azure_endpoint="https://你的资源名.openai.azure.com/",
api_key="你的Key",
api_version="2024-08-01-preview"
)
DEPLOYMENT_NAME = "你的部署名"
# 高阶提示:逻辑链提示(按步骤思考,适配复杂问题)
response = client.chat.completions.create(
model=DEPLOYMENT_NAME,
messages=[
{
"role": "system",
"content": "你是Azure OpenAI实操专家,面对复杂问题时,需按以下逻辑链思考并输出:1. 先明确问题核心需求;2. 拆解问题为2-3个关键步骤;3. 针对每个步骤给出具体实操建议;4. 总结核心要点,确保逻辑清晰、全面无遗漏,语言专业且简洁。"
},
{
"role": "user",
"content": "如何排查Azure OpenAI调用时出现的UnicodeEncodeError编码报错?"
}
]
)
print("逻辑链适配回复:")
print(response.choices[0].message.content.strip())

逻辑链提示能引导模型有条理地思考,输出的内容结构清晰、全面无遗漏。不仅能帮我们解决实际操作中的复杂问题,还能直接作为面试中复杂问题的答题模板,体现你的逻辑思维能力。
技巧4:多任务提示(解决"多次调用效率低"问题)
实际使用中,有时需要模型同时完成多个任务,比如"总结内容+生成面试题+给出答案",如果分多次调用,不仅费时间,还会增加Token消耗。这时用多任务提示,让模型一次完成多个任务,既能提升效率,也能节省费用。
python
from openai import AzureOpenAI
client = AzureOpenAI(
azure_endpoint="https://你的资源名.openai.azure.com/",
api_key="你的Key",
api_version="2024-08-01-preview"
)
DEPLOYMENT_NAME = "你的部署名"
# 高阶提示:多任务提示(一次完成多个任务,节省Token和时间)
response = client.chat.completions.create(
model=DEPLOYMENT_NAME,
messages=[
{
"role": "system",
"content": "你是Azure OpenAI面试辅助助手,需同时完成3个任务,按顺序输出,无需额外冗余内容:1. 总结"Azure OpenAI提示工程高阶技巧"的核心要点(控制在50字内);2. 出1道相关面试题(贴合中厂难度);3. 给出简洁标准答案(控制在80字内)。"
},
{
"role": "user",
"content": "请完成上述3个任务。"
}
]
)
print("多任务输出结果:")
print(response.choices[0].message.content.strip())

多任务提示的核心优势的是减少模型调用次数,间接节省Token消耗,这也和上一篇的费用监控内容相呼应。同时能显著提升操作效率,很适合面试真题整理、技术文档汇总等需要同时完成多个任务的场景。
提示工程常见错误
| 常见错误 | 核心影响 | 解决方案 |
|---|---|---|
| 提示词过于冗长,包含无关内容 | 增加Token消耗,模型抓不住核心需求 | 提示词尽量简洁,只保留"角色+指令+示例(必要时)",删掉无关描述 |
| 少样本示例过多(超过3个) | Token消耗翻倍,模型注意力分散 | 示例控制在1-3个,优先选最贴合需求的示例 |
| 逻辑链提示未拆解步骤,指令模糊 | 模型输出逻辑混乱、答不全面 | 明确拆解2-3个关键步骤,让模型按步骤思考输出 |
| 多任务提示未明确任务顺序和要求 | 模型输出混乱,无法完成所有任务 | 明确任务顺序、输出格式和长度限制,让模型有清晰的执行方向 |
面试实战:提示工程高频真题+标准答题思路
结合本章讲的技巧,我整理了3道中厂面试高频真题,每道题都附上了标准答题思路,大家记下来,面试时可以直接套用,同时也衔接了前序教程的面试考点,帮大家快速备战面试。
真题1:请简述Azure OpenAI提示工程的核心技巧,至少说出2个,并说明其作用。
标准答题思路:核心技巧主要有2个,分别是少样本提示和逻辑链提示。少样本提示的作用是解决模型理解偏差的问题,通过1-3个示例引导模型对齐输出格式和逻辑,提升输出精准度;逻辑链提示的作用是解决复杂问题答不全面的问题,通过拆解步骤,让模型按逻辑思考,输出结构化、全面的内容,适配复杂实操和面试答题场景。
真题2:在Azure OpenAI调用中,如何通过提示工程减少Token消耗?
标准答题思路:核心有3点,一是优化提示词,尽量简洁明了,删掉无关内容,避免冗长;二是使用少样本提示,用示例替代复杂指令,减少提示词的Token消耗;三是使用多任务提示,一次完成多个任务,减少模型调用次数,间接节省Token消耗,同时还可以结合max_tokens参数限制输出长度。
真题3:当模型输出偏离需求时,你会如何优化提示词?
标准答题思路:可以分3步优化,第一步,明确角色与能力边界,让模型贴合具体场景;第二步,加入少样本示例,引导模型对齐输出格式和逻辑;第三步,使用逻辑链提示,拆解需求步骤,让模型按步骤思考,确保输出贴合需求,同时提示词要简洁,减少理解偏差。
小结
本章主要给大家讲解了Azure OpenAI提示工程的4个高阶技巧:
-
- 角色绑定+能力限定:让模型输出更专业、更贴合场景,这也是面试中的高频考点;
-
- 少样本提示:解决模型理解偏差,快速对齐输出格式;
-
- 逻辑链提示:解决复杂问题,输出结构化、全面的内容;
-
- 多任务提示:提升操作效率,节省Token和时间成本。
到这里,大家已经掌握了Azure OpenAI从基础调用、费用监控到提示工程高阶技巧的核心能力,既能高效、精准地使用模型。