Prompt Engineering实战-构建“哄哄模拟器”

目录

一 背景

二 “哄哄模拟器”的Prompt

Prompt 的典型构成

三 操作步骤

3.1 创建对话

3.2 游戏测试


一 背景

前几天《AI 大模型全栈工程师》第二节课讲了“Prompt Engineering,提示工程”,里面提到一些prompt相关的技巧,原则,并拿“哄哄模拟器”举例。因此想着使用Hulu Al来实战下。

想要体验原始产品请移步: 哄哄模拟器Web版 – 你的AI对象生气了,快哄哄TA (greatdk.com)

二 “哄哄模拟器”的Prompt

此Prompt 来源于: 要写一个哄哄模拟器的... - @宝玉xp的微博 - 微博 (weibo.com)

## Goal
现在你的对象很生气,你需要做出一些选择来哄她开心,但是你的对象是个很难哄的人,你需要尽可能的说正确的话来哄 ta 开心,否则你的对象会更加生气,直到你的对象原谅值达到 100,否则你就会被对象甩掉,游戏结束。

## Rules
- 第一次用户会提供一个对象生气的理由,如果没有提供则随机生成一个理由,然后开始游戏
- 每次根据用户的回复,生成对象的回复,回复的内容包括心情和数值。
- 初始原谅值为 20,每次交互会增加或者减少原谅值,直到原谅值达到 100,游戏通关,原谅值为 0 则

### Prompt Engineering 的深度解析 Prompt Engineering 是一种通过设计和优化输入提示(Prompt)来引导大型语言模型(LLM)生成期望输出的技术。其核心在于利用明确的指令、上下文信息、角色设定以及示例,提升模型在特定任务中的表现。与传统的模型微调不同,Prompt Engineering 不需要修改模型的参数,而是通过调整输入的方式实现目标,具有高效、灵活和可迁移性强的特点[^1]。 Prompt 在 LLM 应用中扮演着“接口”的角色,它决定了模型如何理解任务并生成响应。一个精心设计的 Prompt 可以显著提高模型的准确性、一致性以及生成内容的相关性。例如,在构建聊天机器人时,合理的角色设定和上下文引导可以增强对话的连贯性和自然度;在编程辅助中,清晰的问题描述和格式要求能够帮助模型更准确地生成代码片段[^2]。 Prompt Engineering 的关键要素包括: - **明确的任务描述**:清晰说明用户的需求,避免模糊或歧义。 - **上下文提供**:为模型提供足够的背景信息,使其能更好地理解任务。 - **示例展示**:通过具体的输入输出示例,引导模型生成符合预期的结果。 - **角色定义**:指定模型的角色(如“专家”、“助手”等),影响其语气和表达方式。 - **结构化输入**:使用模板或分段格式,提高模型对输入的理解能力。 ### 构建有效的评估指标 为了衡量 Prompt Engineering 的效果,必须建立一套科学且可量化的评估体系。以下是几个关键维度及其对应的评估指标: #### 1. 准确性(Accuracy) 评估模型生成内容是否准确满足用户需求。可以通过以下方式进行量化: - **任务完成率**:生成结果是否解决了用户提出的问题。 - **事实正确性**:生成内容是否包含错误的事实或逻辑矛盾。 - **关键词匹配度**:生成文本是否包含用户问题中的关键术语或概念。 #### 2. 相关性(Relevance) 衡量生成内容与用户请求之间的相关程度。常用指标包括: - **语义相似度**:使用 BERTScore 或 BLEU 等方法计算生成文本与参考答案之间的相似性。 - **主题一致性**:判断生成内容是否围绕用户问题的核心主题展开。 #### 3. 连贯性(Coherence) 评估生成文本内部逻辑是否通顺、结构是否合理。可通过以下方式衡量: - **句子间逻辑连贯性评分**:由人工评审打分,评价段落之间的过渡是否自然。 - **语法正确性**:使用语言模型检测语法错误的数量。 #### 4. 多样性(Diversity) 衡量模型在相同 Prompt 下生成不同但合理回答的能力。适用于创意类任务,如写作、故事生成等。指标包括: - **n-gram 重复率**:统计生成文本中重复出现的 n-gram 比例。 - **多样性指数**:基于生成结果的词频分布计算多样性得分。 #### 5. 响应时间(Latency) 评估 Prompt 设计是否影响模型推理效率。指标包括: - **平均响应时间**:记录模型从接收到 Prompt 到输出结果的时间。 - **吞吐量**:单位时间内处理的 Prompt 数量。 #### 6. 用户满意度(User Satisfaction) 最终评估应结合用户反馈,确保技术指标与实际体验一致。可采用问卷调查、A/B 测试等方式收集数据。 --- ### 示例:Prompt 效果对比实验 ```python import openai def evaluate_prompt(prompt): response = openai.Completion.create( engine="text-davinci-003", prompt=prompt, max_tokens=150 ) return response.choices[0].text.strip() # 示例 Prompt 对比 prompt1 = "请解释什么是量子计算?" prompt2 = "你是一位物理教授,请向一位高中生解释什么是量子计算,并举例说明。" result1 = evaluate_prompt(prompt1) result2 = evaluate_prompt(prompt2) print("Prompt 1 结果:\n", result1) print("\nPrompt 2 结果:\n", result2) ``` 上述代码展示了如何通过 API 调用模型并比较两个不同 Prompt 的输出效果。随后可以根据上述评估指标分析哪个 Prompt 更优。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

coffee_baba

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值