在提示词工程中,角色设定、任务分解和输出格式控制是三个关键技巧,它们能够显著提升AI输出的质量和可用性。本文将深入探讨这三个技巧的原理、应用场景和最佳实践,帮助你设计出更加精准有效的提示词。

角色设定(Role Assignment)

为什么需要角色设定?

角色设定能够为AI提供明确的身份定位,影响其回答的专业度、语气和视角。

角色设定

专业视角

语言风格

知识深度

回答方式

提升专业性

符合场景

适配受众

优化体验

class RoleAssignment:
    """
    角色设定详解
    """
    
    def __init__(self):
        self.benefits = {
            '提升专业性': '让AI以专家身份回答,提供更专业的见解',
            '控制语气风格': '匹配特定场景的沟通方式',
            '调整知识深度': '根据受众调整解释的详细程度',
            '增强一致性': '保持整个对话的角色一致性',
            '提高可信度': '明确的角色定位增加用户信任'
        }
    
    def show_comparison(self):
        """展示有无角色设定的对比"""
        print("角色设定效果对比")
        print("=" * 80)
        
        comparisons = [
            {
                'task': '健康咨询',
                'without_role': {
                    'prompt': '我最近总是失眠,怎么办?',
                    'output': '失眠可能是压力大或作息不规律导致的。建议早睡早起,睡前不要玩手机。'
                },
                'with_role': {
                    'prompt': '''你是一位有15年临床经验的睡眠医学专家。
请以专业但易懂的方式回答患者问题。

患者:我最近总是失眠,怎么办?''',
                    'output': '''作为睡眠医学专家,我建议从以下几个方面评估:

1. **睡眠卫生评估**
   - 入睡时间和起床时间是否规律?
   - 睡前2小时是否有蓝光暴露(手机、电脑)?
   - 卧室环境(温度、光线、噪音)是否适宜?

2. **可能的原因**
   - 心理因素:焦虑、压力、抑郁
   - 生理因素:疼痛、呼吸问题
   - 行为因素:咖啡因摄入、运动时间

3. **初步建议**
   - 建立固定的睡眠时间表
   - 睡前1小时进行放松活动
   - 避免午后摄入咖啡因

4. **就医建议**
   如果失眠持续超过3周,建议到睡眠门诊进行专业评估,可能需要进行睡眠监测。

注意:以上建议不能替代面诊,请根据实际情况就医。'''
                },
                'improvement': '专业性提升,结构化回答,包含评估和建议'
            }
        ]
        
        for comp in comparisons:
            print(f"\n任务: {comp['task']}")
            print(f"\n❌ 无角色设定:")
            print(f"   提示词: {comp['without_role']['prompt']}")
            print(f"   输出: {comp['without_role']['output']}")
            print(f"\n✅ 有角色设定:")
            print(f"   提示词: {comp['with_role']['prompt']}")
            print(f"   输出: {comp['with_role']['output']}")
            print(f"\n💡 改进: {comp['improvement']}")
            print("-" * 80)

role = RoleAssignment()
role.show_comparison()

角色类型与应用场景

class RoleTypes:
    """
    角色类型分类
    """
    
    def __init__(self):
        self.role_categories = {
            '专业角色': {
                'examples': ['医生', '律师', '工程师', '分析师', '教师', '顾问'],
                'use_cases': ['专业咨询', '技术问题', '行业分析'],
                'key_elements': ['专业背景', '经验年限', '专长领域']
            },
            '创意角色': {
                'examples': ['作家', '诗人', '编剧', '设计师', '艺术家'],
                'use_cases': ['内容创作', '创意生成', '艺术指导'],
                'key_elements': ['创作风格', '擅长类型', '代表作品']
            },
            '服务角色': {
                'examples': ['客服', '助理', '教练', '导师', '顾问'],
                'use_cases': ['客户服务', '任务协助', '指导培训'],
                'key_elements': ['服务态度', '沟通方式', '解决能力']
            },
            '特定风格': {
                'examples': ['苏格拉底式导师', '严格的评审', '友好的伙伴', '批判性思考者'],
                'use_cases': ['教学引导', '批判性分析', '头脑风暴'],
                'key_elements': ['思维方式', '互动风格', '反馈方式']
            }
        }
    
    def show_role_templates(self):
        """展示角色模板"""
        print("\n\n角色设定模板")
        print("=" * 80)
        
        templates = {
            '专业专家模板': '''你是一位{领域}专家,拥有{X}年的{具体方向}经验。

专业背景:
- 教育背景:{学历和专业}
- 工作经历:{主要经历}
- 专长领域:{具体专长}

回答风格:
- 专业但易懂
- 结构化清晰
- 提供实用建议
- 必要时引用权威来源

请回答以下问题:{问题}''',

            '创意创作者模板': '''你是一位{创作类型}创作者,风格{风格描述}。

创作特点:
- 代表作品:{作品示例}
- 擅长主题:{主题列表}
- 创作手法:{手法描述}

创作要求:
- 保持{风格}风格
- 注重{重点要素}
- 目标受众:{受众描述}

请创作:{创作任务}''',

            '服务助手模板': '''你是一位{服务类型}助手,致力于{服务目标}。

服务特点:
- 态度:{态度描述}
- 沟通方式:{沟通风格}
- 核心能力:{能力列表}

服务原则:
- {原则1}
- {原则2}
- {原则3}

请协助:{任务描述}''',

            '教学导师模板': '''你是一位{学科}导师,采用{教学方法}教学法。

教学特点:
- 目标学生:{学生群体}
- 教学风格:{风格描述}
- 核心理念:{教学理念}

教学方法:
- 使用{方法1}
- 结合{方法2}
- 强调{重点}

请讲解:{教学内容}'''
        }
        
        for template_name, template in templates.items():
            print(f"\n{template_name}:")
            print(template)
            print("-" * 60)

role_types = RoleTypes()
role_types.show_role_templates()

角色设定最佳实践

class RoleBestPractices:
    """
    角色设定最佳实践
    """
    
    def show_practices(self):
        """展示最佳实践"""
        print("\n\n角色设定最佳实践")
        print("=" * 80)
        
        practices = [
            {
                'principle': '1. 具体而非笼统',
                'bad': '你是一个专家',
                'good': '你是一位有10年经验的Python后端开发专家,专注于高并发系统设计',
                'reason': '具体的角色定位让AI更清楚如何回答'
            },
            {
                'principle': '2. 包含关键属性',
                'bad': '你是一位医生',
                'good': '你是一位儿科医生,有15年临床经验,擅长儿童常见病诊断,沟通风格温和耐心',
                'reason': '关键属性(专科、经验、专长、风格)影响回答质量'
            },
            {
                'principle': '3. 明确回答方式',
                'bad': '你是一位老师',
                'good': '你是一位数学老师,擅长用生活化的例子解释抽象概念,回答时先给结论,再解释原理',
                'reason': '明确的回答方式确保输出符合期望'
            },
            {
                'principle': '4. 设定约束条件',
                'bad': '你是一位律师',
                'good': '你是一位公司法律师,回答时必须:1)引用具体法条 2)说明法律风险 3)提供合规建议 4)使用非专业人士能理解的语言',
                'reason': '约束条件确保回答的完整性和规范性'
            },
            {
                'principle': '5. 考虑目标受众',
                'bad': '解释量子计算',
                'good': '你是一位物理学教授,向高中生解释量子计算。使用通俗语言,避免复杂公式,多用类比',
                'reason': '受众定位影响解释的深度和方式'
            }
        ]
        
        for practice in practices:
            print(f"\n{practice['principle']}")
            print(f"  ❌ 不好: {practice['bad']}")
            print(f"  ✅ 更好: {practice['good']}")
            print(f"  💡 原因: {practice['reason']}")

practices = RoleBestPractices()
practices.show_practices()

任务分解(Task Decomposition)

为什么需要任务分解?

复杂任务直接执行容易出错或遗漏,分解为子任务能提高完成质量。

class TaskDecomposition:
    """
    任务分解详解
    """
    
    def __init__(self):
        self.benefits = [
            '降低任务复杂度',
            '提高完成质量',
            '减少错误和遗漏',
            '便于调试和优化',
            '提升可控性'
        ]
    
    def show_decomposition_examples(self):
        """展示任务分解示例"""
        print("\n\n任务分解示例")
        print("=" * 80)
        
        examples = [
            {
                'complex_task': '写一篇产品评测文章',
                'direct_prompt': '写一篇关于iPhone 15 Pro的评测文章',
                'decomposed_prompt': '''请按以下步骤完成iPhone 15 Pro评测文章:

步骤1:产品概述(200字)
- 发布时间和定位
- 主要升级点
- 目标用户群

步骤2:外观设计评测(300字)
- 材质和工艺
- 尺寸和重量
- 颜色选择
- 手感体验

步骤3:性能测试(400字)
- A17 Pro芯片性能
- 游戏表现
- 发热控制
- 续航测试

步骤4:相机系统评测(400字)
- 主摄表现
- 长焦和超广角
- 夜景模式
- 视频拍摄

步骤5:使用体验(300字)
- iOS 17新特性
- 日常使用感受
- 优缺点总结

步骤6:购买建议(200字)
- 适合人群
- 性价比分析
- 与竞品对比

总字数:约1800字
语气:客观专业,有数据支撑''',
                'improvement': '结构清晰,每部分有明确要求,不易遗漏'
            },
            {
                'complex_task': '代码审查',
                'direct_prompt': '审查这段代码',
                'decomposed_prompt': '''请按以下维度审查代码:

维度1:功能正确性
- 是否实现了预期功能?
- 是否有逻辑错误?
- 边界条件是否处理?

维度2:代码质量
- 命名是否清晰?
- 是否符合编码规范?
- 是否有重复代码?
- 注释是否充分?

维度3:性能
- 时间复杂度如何?
- 空间复杂度如何?
- 是否有性能瓶颈?

维度4:安全性
- 是否有安全漏洞?
- 输入验证是否充分?
- 是否有SQL注入风险?

维度5:可维护性
- 代码结构是否清晰?
- 是否易于扩展?
- 是否有技术债务?

每个维度给出:
1. 评分(1-10分)
2. 具体问题
3. 改进建议
4. 优化代码示例(如需要)

代码:[代码内容]''',
                'improvement': '审查全面,有明确的评估标准'
            }
        ]
        
        for ex in examples:
            print(f"\n复杂任务: {ex['complex_task']}")
            print(f"\n❌ 直接提示:")
            print(f"   {ex['direct_prompt']}")
            print(f"\n✅ 分解后的提示:")
            for line in ex['decomposed_prompt'].split('\n'):
                print(f"   {line}")
            print(f"\n💡 改进: {ex['improvement']}")
            print("-" * 80)

task_decomp = TaskDecomposition()
task_decomp.show_decomposition_examples()

任务分解方法

class DecompositionMethods:
    """
    任务分解方法
    """
    
    def show_methods(self):
        """展示分解方法"""
        print("\n\n任务分解方法")
        print("=" * 80)
        
        methods = {
            '顺序分解': {
                'description': '按时间或流程顺序分解',
                'suitable_for': '有明确先后顺序的任务',
                'example': '''任务:制作一个网站

步骤1:需求分析
步骤2:设计原型
步骤3:前端开发
步骤4:后端开发
步骤5:测试
步骤6:部署上线'''
            },
            
            '维度分解': {
                'description': '按不同评估维度分解',
                'suitable_for': '分析、评估类任务',
                'example': '''任务:评估一个商业计划

维度1:市场分析
维度2:竞争分析
维度3:财务预测
维度4:风险评估
维度5:团队能力'''
            },
            
            '层级分解': {
                'description': '从宏观到微观逐层分解',
                'suitable_for': '复杂的系统性任务',
                'example': '''任务:优化网站性能

第一层:识别问题领域
- 前端性能
- 后端性能
- 数据库性能

第二层:前端性能细分
- 资源加载
- 渲染优化
- 交互响应

第三层:资源加载细分
- 图片优化
- JS/CSS压缩
- CDN配置'''
            },
            
            '并行分解': {
                'description': '分解为可并行执行的子任务',
                'suitable_for': '独立的多个子任务',
                'example': '''任务:准备产品发布

并行任务1:技术准备
- 代码审查
- 性能测试
- 安全检查

并行任务2:市场准备
- 宣传材料
- 媒体联系
- 社交媒体

并行任务3:运营准备
- 客服培训
- 文档准备
- 监控配置'''
            }
        }
        
        for method, info in methods.items():
            print(f"\n{method}")
            print(f"  描述: {info['description']}")
            print(f"  适用: {info['suitable_for']}")
            print(f"\n  示例:")
            for line in info['example'].split('\n'):
                print(f"    {line}")
            print("-" * 60)

methods = DecompositionMethods()
methods.show_methods()

任务分解模板

def task_decomposition_templates():
    """任务分解模板"""
    print("\n\n任务分解模板")
    print("=" * 80)
    
    templates = {
        '分析类任务': '''请按以下框架分析{分析对象}:

第一部分:背景与现状
- 基本情况
- 历史发展
- 当前状态

第二部分:深入分析
- 优势(Strengths)
- 劣势(Weaknesses)
- 机会(Opportunities)
- 威胁(Threats)

第三部分:数据支撑
- 关键指标
- 对比数据
- 趋势分析

第四部分:结论与建议
- 核心发现
- 行动建议
- 风险提示''',

        '创作类任务': '''请按以下步骤创作{创作内容}:

步骤1:构思阶段
- 确定主题和核心信息
- 明确目标受众
- 设定创作风格

步骤2:大纲设计
- 开头:如何吸引注意
- 主体:核心内容结构
- 结尾:如何收尾

步骤3:内容创作
- 按大纲逐部分创作
- 注意过渡和连贯
- 保持风格一致

步骤4:优化润色
- 检查逻辑
- 优化表达
- 调整节奏''',

        '问题解决类': '''请按以下步骤解决{问题}:

步骤1:问题定义
- 明确问题是什么
- 问题的影响范围
- 问题的紧急程度

步骤2:原因分析
- 可能的原因列表
- 根本原因识别
- 因果关系分析

步骤3:方案设计
- 列出可能的解决方案
- 评估每个方案的优缺点
- 选择最优方案

步骤4:实施计划
- 具体行动步骤
- 所需资源
- 时间安排

步骤5:效果评估
- 评估标准
- 监控指标
- 调整机制''',

        '学习类任务': '''请按以下步骤学习{学习内容}:

步骤1:概览理解
- 这是什么?
- 为什么重要?
- 应用场景

步骤2:核心概念
- 关键概念列表
- 概念之间的关系
- 重点难点

步骤3:详细讲解
- 逐个概念深入
- 使用类比和示例
- 常见误区

步骤4:实践应用
- 实际案例
- 动手练习
- 常见问题

步骤5:总结巩固
- 知识点总结
- 学习路径建议
- 进阶资源'''
    }
    
    for template_name, template in templates.items():
        print(f"\n{template_name}:")
        print(template)
        print("-" * 60)

task_decomposition_templates()

输出格式控制(Output Format Control)

为什么需要格式控制?

明确的输出格式让结果更易读、易用、易处理。

class OutputFormatControl:
    """
    输出格式控制详解
    """
    
    def __init__(self):
        self.format_types = {
            '结构化格式': ['JSON', 'XML', 'YAML', 'CSV'],
            '文档格式': ['Markdown', 'HTML', 'LaTeX'],
            '表格格式': ['表格', '列表', '树形结构'],
            '代码格式': ['函数', '类', '配置文件'],
            '对话格式': ['问答', '对话', '脚本']
        }
    
    def show_format_examples(self):
        """展示格式控制示例"""
        print("\n\n输出格式控制示例")
        print("=" * 80)
        
        examples = [
            {
                'task': '信息提取',
                'without_format': {
                    'prompt': '从文本中提取人物信息',
                    'output': '张三,35岁,软件工程师,在北京工作,邮箱是zhangsan@example.com'
                },
                'with_format': {
                    'prompt': '''从文本中提取人物信息,以JSON格式输出:

{
  "name": "姓名",
  "age": 年龄(数字),
  "occupation": "职业",
  "location": "工作地点",
  "contact": {
    "email": "邮箱",
    "phone": "电话"
  }
}

文本:[输入文本]''',
                    'output': '''{
  "name": "张三",
  "age": 35,
  "occupation": "软件工程师",
  "location": "北京",
  "contact": {
    "email": "zhangsan@example.com",
    "phone": null
  }
}'''
                },
                'benefit': 'JSON格式可直接被程序解析使用'
            },
            {
                'task': '步骤说明',
                'without_format': {
                    'prompt': '说明如何做咖啡',
                    'output': '首先准备咖啡豆和热水,然后研磨咖啡豆,接着冲泡,最后享用。'
                },
                'with_format': {
                    'prompt': '''说明如何做咖啡,按以下格式输出:

## 所需材料
- 材料1(数量)
- 材料2(数量)

## 所需工具
- 工具1
- 工具2

## 制作步骤
1. 步骤1(详细说明)
2. 步骤2(详细说明)

## 注意事项
- 注意点1
- 注意点2

## 预计时间
总计:X分钟''',
                    'output': '''## 所需材料
- 咖啡豆(15-20克)
- 热水(250毫升,90-95°C)
- 糖/奶(可选)

## 所需工具
- 咖啡研磨机
- 手冲壶
- 滤纸和滤杯
- 咖啡杯

## 制作步骤
1. 研磨咖啡豆至中等粗细(约30秒)
2. 将滤纸放入滤杯,用热水润湿
3. 倒入咖啡粉,轻轻摇平
4. 第一次注水(30ml),闷蒸30秒
5. 分3次注入剩余热水,每次间隔30秒
6. 等待滤完(约2-3分钟)

## 注意事项
- 水温不要超过95°C,避免过度萃取
- 研磨粗细影响口感,可根据喜好调整
- 冲泡时间控制在3-4分钟

## 预计时间
总计:5-6分钟'''
                },
                'benefit': '结构清晰,易于遵循和理解'
            }
        ]
        
        for ex in examples:
            print(f"\n任务: {ex['task']}")
            print(f"\n❌ 无格式控制:")
            print(f"   提示词: {ex['without_format']['prompt']}")
            print(f"   输出: {ex['without_format']['output']}")
            print(f"\n✅ 有格式控制:")
            print(f"   提示词: {ex['with_format']['prompt']}")
            print(f"   输出: {ex['with_format']['output']}")
            print(f"\n💡 优势: {ex['benefit']}")
            print("-" * 80)

format_control = OutputFormatControl()
format_control.show_format_examples()

常用输出格式模板

class FormatTemplates:
    """
    常用输出格式模板
    """
    
    def show_templates(self):
        """展示格式模板"""
        print("\n\n常用输出格式模板")
        print("=" * 80)
        
        templates = {
            'JSON格式': {
                'description': '适合结构化数据,便于程序处理',
                'template': '''{
  "key1": "value1",
  "key2": 123,
  "key3": ["item1", "item2"],
  "key4": {
    "nested_key": "nested_value"
  },
  "key5": true
}''',
                'use_case': '数据提取、API响应、配置文件'
            },
            
            'Markdown表格': {
                'description': '适合数据对比和展示',
                'template': '''| 列1 | 列2 | 列3 | 列4 |
|-----|-----|-----|-----|
| 值1 | 值2 | 值3 | 值4 |
| 值5 | 值6 | 值7 | 值8 |''',
                'use_case': '数据对比、性能测试结果、特性对比'
            },
            
            'Markdown列表': {
                'description': '适合层级信息和要点列举',
                'template': '''## 一级标题

### 二级标题1
- 要点1
- 要点2
  - 子要点2.1
  - 子要点2.2
- 要点3

### 二级标题2
1. 步骤1
2. 步骤2
3. 步骤3''',
                'use_case': '文档、教程、总结、大纲'
            },
            
            '代码块格式': {
                'description': '适合代码展示',
                'template': '''```python
def function_name(param1, param2):
    """
    函数说明
    
    Args:
        param1: 参数1说明
        param2: 参数2说明
    
    Returns:
        返回值说明
    """
    # 实现代码
    result = param1 + param2
    return result
```''',
                'use_case': '代码示例、技术文档、教程'
            },
            
            '问答格式': {
                'description': '适合FAQ和对话',
                'template': '''Q1: 问题1
A1: 回答1

Q2: 问题2
A2: 回答2

Q3: 问题3
A3: 回答3''',
                'use_case': 'FAQ、面试问答、学习笔记'
            },
            
            '分析报告格式': {
                'description': '适合分析和报告',
                'template': '''# 标题

## 执行摘要
[核心发现和建议]

## 背景
[背景信息]

## 分析方法
[使用的方法]

## 主要发现
### 发现1
[详细说明]

### 发现2
[详细说明]

## 数据支撑
[图表和数据]

## 结论与建议
[结论和行动建议]

## 附录
[补充信息]''',
                'use_case': '商业分析、技术报告、研究报告'
            }
        }
        
        for format_name, info in templates.items():
            print(f"\n{format_name}")
            print(f"  描述: {info['description']}")
            print(f"  适用场景: {info['use_case']}")
            print(f"\n  模板:")
            for line in info['template'].split('\n'):
                print(f"    {line}")
            print("-" * 60)

templates = FormatTemplates()
templates.show_templates()

格式控制技巧

class FormatControlTips:
    """
    格式控制技巧
    """
    
    def show_tips(self):
        """展示技巧"""
        print("\n\n格式控制技巧")
        print("=" * 80)
        
        tips = [
            {
                'tip': '1. 提供完整的格式示例',
                'bad': '以JSON格式输出',
                'good': '''以JSON格式输出,格式如下:
{
  "name": "姓名",
  "age": 年龄,
  "skills": ["技能1", "技能2"]
}''',
                'reason': '完整示例避免格式错误'
            },
            {
                'tip': '2. 明确数据类型',
                'bad': '输出年龄',
                'good': '输出年龄(整数类型,如果未知则为null)',
                'reason': '明确类型避免格式不一致'
            },
            {
                'tip': '3. 使用分隔符',
                'bad': '输出结果',
                'good': '''输出结果,格式:
---开始---
[结果内容]
---结束---''',
                'reason': '分隔符便于提取和解析'
            },
            {
                'tip': '4. 指定字段顺序',
                'bad': '输出用户信息',
                'good': '输出用户信息,顺序:姓名、年龄、职业、邮箱',
                'reason': '固定顺序便于处理'
            },
            {
                'tip': '5. 处理特殊情况',
                'bad': '提取邮箱',
                'good': '提取邮箱,如果文本中没有邮箱,输出"未找到"',
                'reason': '明确特殊情况的处理方式'
            },
            {
                'tip': '6. 限制输出长度',
                'bad': '总结文章',
                'good': '用3-5句话总结文章(每句不超过30字)',
                'reason': '控制输出长度符合需求'
            }
        ]
        
        for tip_info in tips:
            print(f"\n{tip_info['tip']}")
            print(f"  ❌ 不好: {tip_info['bad']}")
            print(f"  ✅ 更好: {tip_info['good']}")
            print(f"  💡 原因: {tip_info['reason']}")

tips = FormatControlTips()
tips.show_tips()

三者结合的综合应用

class CombinedApplication:
    """
    角色设定、任务分解、格式控制的综合应用
    """
    
    def show_comprehensive_example(self):
        """展示综合示例"""
        print("\n\n综合应用示例")
        print("=" * 80)
        
        example = '''
任务:为电商平台生成产品分析报告

【角色设定】
你是一位资深的电商数据分析师,拥有8年的电商行业经验,擅长从用户行为数据中挖掘商业洞察。

专业背景:
- 曾在阿里巴巴、京东等大型电商平台工作
- 精通数据分析工具和方法
- 擅长将数据转化为商业建议

分析风格:
- 数据驱动,结论明确
- 注重实用性和可操作性
- 使用可视化辅助说明

【任务分解】
请按以下步骤完成产品分析报告:

步骤1:数据概览(200字)
- 分析时间范围
- 数据来源说明
- 关键指标概览

步骤2:销售表现分析(400字)
- 销售额趋势
- 订单量变化
- 客单价分析
- 同比/环比对比

步骤3:用户行为分析(400字)
- 流量来源分布
- 转化率分析
- 用户画像
- 复购率

步骤4:产品竞争力分析(300字)
- 价格竞争力
- 评价分析
- 与竞品对比
- 优势和劣势

步骤5:问题识别(200字)
- 主要问题列表
- 问题影响评估
- 根本原因分析

步骤6:优化建议(300字)
- 短期行动建议(1个月内)
- 中期优化方向(3个月内)
- 长期战略建议
- 预期效果

【输出格式】
请按以下Markdown格式输出:

# 产品分析报告:[产品名称]

## 执行摘要
[3-5句话概括核心发现和建议]

## 1. 数据概览
- **分析周期**:YYYY-MM-DD 至 YYYY-MM-DD
- **数据来源**:[来源]
- **核心指标**:
  - 总销售额:¥XXX
  - 总订单量:XXX
  - 平均客单价:¥XXX

## 2. 销售表现分析

### 2.1 销售趋势
[分析内容]

| 指标 | 本期 | 上期 | 同比 | 环比 |
|------|------|------|------|------|
| 销售额 | | | | |
| 订单量 | | | | |
| 客单价 | | | | |

### 2.2 关键发现
- 发现1
- 发现2

## 3. 用户行为分析

### 3.1 流量分析
[分析内容]

### 3.2 转化分析
[分析内容]

### 3.3 用户画像
- 年龄分布:
- 地域分布:
- 消费偏好:

## 4. 产品竞争力分析

### 4.1 价格竞争力
[分析内容]

### 4.2 用户评价
- 好评率:XX%
- 主要好评点:
- 主要差评点:

### 4.3 竞品对比
| 维度 | 本产品 | 竞品A | 竞品B |
|------|--------|-------|-------|
| 价格 | | | |
| 评分 | | | |
| 销量 | | | |

## 5. 问题识别

### 问题1:[问题描述]
- **影响程度**:高/中/低
- **根本原因**:[分析]

### 问题2:[问题描述]
- **影响程度**:高/中/低
- **根本原因**:[分析]

## 6. 优化建议

### 6.1 短期行动(1个月内)
1. 建议1
   - 具体措施:
   - 预期效果:
   - 所需资源:

2. 建议2
   - 具体措施:
   - 预期效果:
   - 所需资源:

### 6.2 中期优化(3个月内)
[建议内容]

### 6.3 长期战略
[建议内容]

## 7. 总结
[总结核心观点和下一步行动]

---
**报告生成时间**:YYYY-MM-DD
**分析师**:[姓名]

【输入数据】
[实际的产品数据]
'''
        
        print(example)
        
        print("\n\n这个综合示例的特点:")
        features = [
            '✓ 角色设定:明确了分析师的专业背景和分析风格',
            '✓ 任务分解:将复杂的分析任务分解为6个清晰的步骤',
            '✓ 格式控制:使用Markdown格式,包含表格、列表、层级结构',
            '✓ 结构清晰:每个部分都有明确的要求和字数限制',
            '✓ 可操作性:输出结果可直接使用,无需二次整理'
        ]
        
        for feature in features:
            print(f"  {feature}")

combined = CombinedApplication()
combined.show_comprehensive_example()

实战技巧总结

class PracticalSummary:
    """
    实战技巧总结
    """
    
    def show_summary(self):
        """展示总结"""
        print("\n\n实战技巧总结")
        print("=" * 80)
        
        summary = {
            '角色设定技巧': [
                '具体明确:包含专业、经验、专长',
                '匹配场景:角色要符合任务需求',
                '设定风格:明确沟通方式和语气',
                '考虑受众:根据目标用户调整',
                '添加约束:规范回答的方式和内容'
            ],
            '任务分解技巧': [
                '选对方法:顺序、维度、层级、并行',
                '粒度适中:不要太粗也不要太细',
                '逻辑清晰:步骤之间关系明确',
                '可执行性:每个子任务都可独立完成',
                '完整性:覆盖所有必要方面'
            ],
            '格式控制技巧': [
                '提供示例:完整的格式示例',
                '明确类型:指定数据类型',
                '使用分隔符:便于提取和解析',
                '处理边界:说明特殊情况处理',
                '验证输出:确保格式符合要求'
            ],
            '组合使用技巧': [
                '先设定角色,确定专业视角',
                '再分解任务,明确执行步骤',
                '最后控制格式,规范输出结构',
                '三者配合,相互补充',
                '持续迭代,不断优化'
            ]
        }
        
        for category, tips in summary.items():
            print(f"\n{category}:")
            for tip in tips:
                print(f"  ✓ {tip}")
    
    def show_checklist(self):
        """展示检查清单"""
        print("\n\n提示词设计检查清单")
        print("=" * 80)
        
        checklist = {
            '角色设定': [
                '☐ 是否明确了角色的专业背景?',
                '☐ 是否说明了经验和专长?',
                '☐ 是否设定了回答风格?',
                '☐ 是否考虑了目标受众?',
                '☐ 是否添加了必要约束?'
            ],
            '任务分解': [
                '☐ 是否选择了合适的分解方法?',
                '☐ 是否覆盖了所有必要步骤?',
                '☐ 步骤之间的逻辑是否清晰?',
                '☐ 每个步骤是否可执行?',
                '☐ 是否有明确的完成标准?'
            ],
            '格式控制': [
                '☐ 是否提供了完整的格式示例?',
                '☐ 是否明确了数据类型?',
                '☐ 是否说明了特殊情况处理?',
                '☐ 格式是否便于后续使用?',
                '☐ 是否有验证机制?'
            ]
        }
        
        for category, items in checklist.items():
            print(f"\n{category}:")
            for item in items:
                print(f"  {item}")

summary = PracticalSummary()
summary.show_summary()
summary.show_checklist()

总结

本文深入探讨了提示词工程的三大关键技巧:

1. 角色设定

  • 核心价值:提供专业视角和风格定位
  • 关键要素:专业背景、经验、专长、风格
  • 应用场景:专业咨询、创意创作、服务协助

2. 任务分解

  • 核心价值:降低复杂度,提高完成质量
  • 分解方法:顺序、维度、层级、并行
  • 应用场景:复杂分析、系统设计、项目规划

3. 输出格式控制

  • 核心价值:规范输出,便于使用和处理
  • 常用格式:JSON、Markdown、表格、代码
  • 应用场景:数据提取、文档生成、报告输出

最佳实践

  1. 根据任务特点选择合适的技巧
  2. 三者结合使用效果最佳
  3. 持续测试和优化
  4. 建立自己的模板库

掌握这三大技巧,你就能设计出高质量、高效率的提示词。在下一篇文章中,我们将提供20个实用的提示词模板,涵盖各种常见场景,让你可以直接使用和改编。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐