跳到主要内容

Universe Prompt 工程指南

高质量的 Prompt(提示词)是释放大语言模型潜力的关键。本指南将帮助您掌握 Prompt 工程的核心原则与实用技巧,通过 Universe API 获得更精准、更可靠的生成结果。


什么是 Prompt 工程

Prompt 工程是指通过精心设计和优化输入给大语言模型的文本指令,引导模型生成符合预期的高质量输出的技术与方法论。一个好的 Prompt 就像一份精确的需求文档——描述越清晰,模型的"交付"就越到位。

Prompt 工程并非一次性工作,而是一个设计 → 测试 → 迭代优化的持续过程。建议您从小规模测试开始,逐步完善 Prompt 结构,直到输出稳定满足业务需求。


核心原则

无论您的应用场景如何,以下四条原则是编写高质量 Prompt 的基础:

原则说明关键要点
清晰明确用简洁的语言准确描述您的需求,避免模糊和歧义。说清楚"要什么"和"不要什么",越具体越好。
提供上下文给予模型足够的背景信息,帮助其理解任务场景。包含领域知识、用户画像、输出格式要求等。
设定边界明确输出范围,防止模型"自由发挥"偏离主题。限定字数、格式、语言风格和内容禁区。
迭代优化没有完美的初版 Prompt,持续测试和调整是关键。记录每次修改及其效果,形成可复用的 Prompt 模板。

System Prompt 设计

System Prompt 是每次对话中优先级最高的指令,用于定义模型的角色、行为模式和输出规范。一个设计良好的 System Prompt 能显著提升输出的一致性和可控性。

基本结构

一个完整的 System Prompt 通常包含以下要素:

角色定义:你是谁?(如:资深法律顾问、Python 开发专家)
任务目标:你需要完成什么?(如:审查合同条款、生成单元测试)
输出规范:输出格式、语言、风格、长度等要求
约束条件:不能做什么?(如:不编造数据、不超出知识范围)

示例

基础版

你是一个专业的客服助手,负责回答用户关于产品使用的问题。
请用简洁友好的语气回复,回答长度不超过 200 字。

进阶版

# 角色
你是"小宇",Universe API 平台的官方智能客服。

# 职责
- 解答用户关于 API 调用、模型选择、计费规则等技术问题
- 引导用户查阅相关文档,必要时提供操作步骤

# 回复规范
- 语言:中文
- 语气:专业、友好、耐心
- 格式:使用 Markdown,关键步骤使用有序列表
- 长度:优先简洁回答,复杂问题分段说明

# 约束
- 仅回答与 Universe API 平台相关的问题
- 不确定的信息请明确告知用户并建议联系技术支持
- 不编造 API 端点、参数名或价格数据

最佳实践

  • 角色越具体越好:与其说"你是一个助手",不如说"你是一位拥有 10 年经验的数据分析师,擅长用通俗语言解读复杂数据"。
  • 用正面指令代替负面指令:"请用简洁的语言回答"比"不要用冗长的语言回答"更有效。
  • 分模块组织:使用标题(#)、列表(-)等结构化方式组织 System Prompt,模型理解更准确。
  • 定期更新:随着业务变化和产品迭代,及时更新 System Prompt 中的角色定义和约束条件。

Prompt 编写技巧

1. 提供具体细节,避免模糊指令

模型无法"猜"出您的真实意图。在 Prompt 中补充具体的背景信息、约束条件和期望输出,能大幅提升结果质量。

反面示例

帮我写一篇文章。

正面示例

请撰写一篇面向技术团队负责人的博客文章,主题为"如何在企业内部推广 AI API 的使用"。
要求:
- 字数:800-1200 字
- 风格:专业但不枯燥,适当使用类比
- 结构:引言 → 痛点分析 → 解决方案(3 个步骤) → 总结
- 包含至少 1 个实际案例或场景描述

2. 使用分隔符区分指令与内容

当 Prompt 中同时包含操作指令和待处理的内容时,使用分隔符(如 """---<tag> 等)将二者明确区分,可以防止模型混淆指令与输入。

请将以下用户评论翻译为英文,并判断情感倾向(正面/中性/负面)。

用户评论:
"""
这个 API 接口响应速度很快,文档也写得很清楚,就是错误提示信息可以更友好一些。
"""

输出格式:
{"translation": "...", "sentiment": "..."}

3. 思维链提示(Chain of Thought)

对于需要推理、计算或分析的复杂问题,引导模型"逐步思考"可以显著提高准确率。

基础用法:在 Prompt 末尾加入引导语。

请分析以下 SQL 查询的性能瓶颈并给出优化建议。
在回答前,请先逐步分析查询的执行逻辑,再得出结论。

进阶用法:指定推理框架。

请按以下步骤分析这份市场报告:
1. 提取报告中的核心数据点
2. 识别数据之间的关联和趋势
3. 评估潜在的风险和机会
4. 基于以上分析,给出 3 条可执行的建议

4. 少样本学习(Few-shot Learning)

通过提供输入输出示例,让模型理解您期望的回答模式和风格。通常提供 2-3 个高质量示例即可获得良好效果。

请将以下产品描述改写为适合社交媒体发布的短文案风格。

示例 1:
输入:这款蓝牙耳机采用主动降噪技术,续航时间长达 30 小时,支持多设备切换。
输出:通勤路上的静音神器!30 小时超长续航,降噪一开世界安静,多设备随心切换~

示例 2:
输入:该云服务器支持弹性扩容,按需计费,提供 99.99% 的可用性保障。
输出:业务高峰不怕流量暴涨!按需弹性扩容,用多少付多少,99.99% 稳如磐石。

现在请改写:
输入:Universe API 提供多款大语言模型,支持按 token 计费,最低仅需 2 元/百万 tokens。
输出:

5. 指定输出格式

明确告知模型您期望的输出格式,尤其在需要结构化数据(JSON、表格、Markdown 等)用于下游系统处理时。

请分析以下文本中的关键实体,以 JSON 数组格式输出。
每个实体包含 name(名称)、type(类型:人名/地名/组织/产品)和 description(简要描述)三个字段。

文本:"""
马云在杭州创立了阿里巴巴集团,旗下产品包括淘宝、天猫和阿里云等。
"""

小贴士:如果对 JSON 格式有严格要求,建议在 System Prompt 中补充"请确保输出为合法的 JSON 格式,不要包含 Markdown 代码块标记",减少解析错误。

6. 控制输出长度与风格

虽然模型无法精确计算字数,但您可以通过描述性指令大致控制输出篇幅。

期望效果推荐写法
简短回答"请用一句话回答" 或 "用 50 字以内概括"
中等篇幅"请用 2-3 个段落详细说明"
长文本"请撰写一篇 800-1000 字的完整文章"
列表形式"请以有序列表形式列出 5 个要点"

复杂任务分解策略

大语言模型在处理单一、明确的任务时表现最佳。面对复杂需求,将其拆解为多个简单子任务并串联执行,能显著降低错误率,提升输出的可靠性。

策略一:多轮对话拆解

将一个复杂需求拆分为多个对话轮次,每轮聚焦一个子任务。

# 第一轮:意图识别
用户输入:"我想查一下上个月的销售数据,如果下滑的话帮我分析原因"
请判断用户的核心意图,输出 JSON:{"primary_intent": "...", "secondary_intent": "..."}

# 第二轮:数据查询(基于第一轮结果)
根据意图"查询上月销售数据",生成对应的 SQL 查询语句。

# 第三轮:原因分析(基于第二轮结果)
销售数据显示环比下降 12%,请从市场、产品、运营三个维度分析可能原因。

策略二:长文档分段处理

当文档长度超过模型上下文窗口时,采用分步归纳策略:

第一步:逐章节摘要
→ 对文档每个章节生成独立摘要

第二步:合并摘要
→ 将所有章节摘要组合,提炼核心观点

第三步:最终输出
→ 基于合并摘要生成结构化的总结报告

策略三:Map-Reduce 模式

适用于需要跨多个文档进行信息整合的场景:

Map 阶段:分别对每份文档提取关键信息(如结论、数据点、风险项)
Reduce 阶段:将所有文档的提取结果汇总,去重合并后生成统一报告

高级技巧

角色扮演与专业视角

让模型站在特定专业角色的视角思考问题,能获得更有深度和专业性的输出。

你是一位资深的代码审查员(Code Reviewer),拥有 15 年 Python 开发经验。
请审查以下代码,重点关注:
1. 潜在的 Bug 和边界条件
2. 性能优化空间
3. 代码可读性和可维护性
4. 安全隐患
请以审查报告的形式输出,每个问题标注严重程度(Critical / Major / Minor)。

自我验证与纠错

引导模型在输出前进行自我检查,减少错误和遗漏。

请完成以下数学证明。在得出结论后,请回头检查每一步推理是否存在逻辑漏洞。
如果发现错误,请修正后重新给出最终结论。

模板化 Prompt

对于重复性任务,将 Prompt 抽象为模板,用变量占位符替换动态内容,便于批量调用。

请将以下{source_language}文本翻译为{target_language}。

要求:
- 保持原文的段落结构
- 专业术语参照{domain}领域的通用译法
- 语气风格:{tone}

待翻译内容:
"""
{content}
"""

在实际调用时,通过代码替换 {source_language}{target_language} 等变量即可复用同一套 Prompt。


参数调优建议

除了 Prompt 本身,API 调用参数也会影响输出效果。以下是常用参数的调优建议:

参数作用推荐设置
temperature控制输出的随机性。值越高,输出越多样;值越低,输出越确定。事实问答/代码生成:0.0-0.3;创意写作:0.7-1.0;日常对话:0.5-0.7
top_p核采样,仅从概率最高的 token 中采样。与 temperature 二选一调整。需要精确输出时设低(如 0.1),需要多样性时设高(如 0.9)
max_tokens限制模型输出的最大 token 数。根据期望输出长度设置,避免输出被截断或过于冗长
frequency_penalty降低已出现 token 的重复概率。需要避免重复内容时适当调高(如 0.5-1.0)
presence_penalty降低已讨论话题的重复概率,鼓励引入新话题。需要多样性讨论时适当调高(如 0.5-1.0)

注意:temperature 和 top_p 通常只需调整其中一个。同时调整两者可能导致输出行为难以预测。


常见问题与避坑指南

问题可能原因解决方案
模型输出不稳定,每次结果差异大temperature 设置过高,或 Prompt 不够明确降低 temperature,增加具体约束和示例
模型"幻觉"(编造不存在的信息)缺乏知识边界约束在 System Prompt 中明确"不确定时请如实说明";使用 RAG 提供可靠知识源
输出格式不符合预期未指定格式或指定方式不够明确提供明确的格式模板和示例输出;使用 JSON Mode 强制结构化输出
长对话中模型"忘记"早期内容超出上下文窗口限制定期总结对话内容;使用分段处理策略;选择上下文窗口更大的模型
模型拒绝执行合理请求触发了安全策略或角色限制调整措辞避免歧义;在 System Prompt 中明确授权模型处理该类任务
输出被截断不完整max_tokens 设置过小适当调大 max_tokens 参数;将长输出任务拆分为多次请求

Prompt 模板速查表

以下是常见应用场景的 Prompt 模板,可直接复制修改使用:

文本分类

请对以下文本进行分类。
类别选项:{category_list}
仅输出类别名称,不需要解释原因。

文本:"""{input_text}"""

信息提取

从以下文本中提取所有{entity_type},以 JSON 数组格式输出。
每个实体包含 name 和 context(出现的上下文)两个字段。

文本:"""{input_text}"""

内容摘要

请为以下内容生成摘要,字数控制在{word_count}字以内。
要求:保留核心观点和关键数据,语言精炼,不添加原文中没有的信息。

内容:"""{input_text}"""

代码生成

请使用{language}编写一个函数,实现以下功能:
{function_description}

要求:
- 包含完整的类型注解和文档注释
- 处理常见的边界条件(如空输入、异常值)
- 附带 2-3 个使用示例

多轮对话系统

# System Prompt
你是{assistant_name},{role_description}。

# 对话规范
- 每次回复只回答一个核心问题
- 如需追问,每次最多提出 1 个问题
- 引用信息时说明来源

# 当前对话上下文
{conversation_history}

更多资源