当前位置: 首页 > article >正文

基于Prompt工程优化bot

一、prompt 书写与解析

以原神的可莉为例制作一个游戏搭子

🧑🏻 角色与目标 (Role and Objective)
作者 (Author): chenyu
版本 (Version): 0.1
语言 (Language): 中文 (Chinese)
描述 (Description): 你是游戏《原神》中的角色可莉,是一个小孩子,与用户进行对话。
基于知识库,你需要理解可莉的角色特性,包括她的语言风格、态度、兴趣等,并尽可能地在回复中体现出来。
​
🎯 目标 (Goals)
理解并模仿可莉的语言风格和态度
调用知识库中的冒险故事回答问题
在提到旅行者时,将“旅行者”改成“你”,用户为“旅行者”或者“荣誉骑士”
在问到“可莉的照片”时,调用知识库里的照片并发给用户
​
📒 思考路径 (Guidelines)
1回复应该充满童真和好奇心,语言风格要贴近一个活泼可爱的小孩子。
2保持角色一致性,让用户感受到你真的是可莉。
3调用“知识库”里的冒险故事去回答,一次只调用一个故事。
4提到旅行者时,将“旅行者”改成“你”,用户为“旅行者”或者“荣誉骑士”。
5问到可莉的照片时,调用知识库里的照片,并且直接发给用户。
​
🎨 个性化 (Skills)
1语气 (Tone): 模仿知识库中《和可莉对话的语音》的语气。
2聊天 (Chat): 和用户聊天时,根据知识库的冒险故事去回答。
3会调用知识的图片
​
🔧 约束 (Constraints)
当用户询问故事时,一次只调用一个故事
正确称呼用户为“旅行者”或者“荣誉骑士”
正确处理照片请求,输出图片,不输出文本
​
关键步骤与信息:
1.明确角色与目标

○ 清晰定义模型在对话中的身份和目标。告诉模型它需要扮演哪个角色,以及这个角色的特点和任务。

○ 例如,在 prompt 中,模型需要扮演游戏《原神》中的角色“可莉”,她是一个充满童真、好奇心的小孩子,并且需要与用户进行对话。

2.目标明确

○ 说明模型需要达到的目标,确保输出符合目标。

○ 例如,要求模型模仿可莉的语言风格,展现她的态度,同时需要调用知识库中的冒险故事回答问题。

3.思考路径与约束

○ 提供模型生成输出时需要遵循的逻辑步骤或限制条件。这些约束确保生成内容的连贯性和一致性。

○ 例如, prompt 要求保持角色的一致性,回复时充满童真,一次只调用一个故事,且在提到用户时使用特定的称呼(如“行者”或“荣誉骑士”)。

4.个性化细节

○ 通过设置个性化的细节,让模型的输出更具角色特色。

○ 例如,要求模型模仿可莉的语音语气和用词,保持童真和好奇心。

5.明确的工作流程

○ 指导模型如何执行特定的操作或流程。

○ 例如,prompt 提供了明确的工作流程,包括正确称呼用户、处理照片请求、以及调用知识库中的故事。

6.初始化设置

○ 定义模型如何开始对话或任务。为模型提供一个开场白或默认行为,以确保用户体验的连贯性。

○ 例如,prompt 中定义了可莉会首先欢迎用户并介绍自己。

二、人物类prompt六要素

1.角色身份描述(description)或 角色人设(Character)

清楚指示模型是谁、在做什么。描述 Bot 所扮演的角色或职责、回复风格。

给模型一个身份的设定,如数学老师、编程高手或者是某个特定的npc身份

2. 目标 (Goals)

模型需要完成哪些任务。

3.思考路径 (Guidelines)

设定模型生成内容的逻辑和规则。

描述 Bot 的功能和工作流程,约定 Bot 在不同的场景下如何回答用户问题。

4.个性化技能(Skills)和约束(Constraints)

工具类agent需要强调调用的工具,人物类agent则需要说明语气

让模型的输出更有特色。限制回复范围,请直接告诉 Bot 什么应该回答、什么不应该回答。

5.工作流程 (Workflows)

安排模型的执行流程,一般简单的可以在prompt中体现,涉及到更多流程则需要运用工作流

6. 初始化 (Initialization)

给出执行步骤和对话的开场白。coze中已经将开场白单独出来。

三、不同任务类别对应的prompt

3.1 总结类任务

prompt 示例

“请对以下内容进行简短总结,保留核心要点:<输入文本>”
​
“请总结以下新闻报道中的市场趋势变化:<输入文本>”  
​
“从以下文本中提取出所有关于产品发布日期的相关信息:<输入文本>”
​
“请根据以下三篇文章,生成一段综合性的总结,突出它们的共同观点:<文章1>,<文章2>,<文章3>”
总结类提示的关键技巧**

明确总结类型:指示模型是要生成简短概述、提取关键信息,还是综合多项内容。

聚焦目标:总结提示应指明关注的重点,避免模型偏离主题。

保持简洁:在提示中要求“简洁”和“核心信息”,帮助模型生成紧凑、有效的总结。

3.2 推理类任务

prompt 示例

“请根据以下产品评价的情感类型进行分类(正面、负面或中立):<评价文本>”
​
“请对以下新闻文章的情感进行分类,并判断它是正面、负面或中立:<新闻文本>”
 
“请从以下文本中提取出所有提到的公司名称和相关日期:<文本内容>”
 
“根据以下文本,推断文章的主体是谁,或者什么是主要话题:<文本内容>”
  
“请分析以下市场报告,并总结出当前市场的主要趋势和未来可能的发展方向:<市场报告文本>”

推理类提示的关键技巧

指定分类标准:对于情感分类或信息提取等任务,确保分类或提取的标准明确且不含糊。

提供足够的上下文:推理类任务需要依赖文本中的隐含信息,因此提供足够的上下文信息非常重要。

引导分析过程:对于复杂的分析任务,可以通过提示引导模型逐步展开推理,最终得出结论。

3.3 转换类任务

prompt 示例

“请将以下中文文本翻译为英文:<中文文本>”
​
“请将以下文本翻译为德文、法文和西班牙文:<英文文本>”
 
 “请将以下正式文本改写为非正式语气:<正式文本>”
 
 “请将以下段落改为项目符号列表形式:<段落文本>”
 
 “请检查并修正以下文本中的语法和拼写错误:<文本内容>”

转换类提示的关键技巧

明确转换目标:无论是翻译、语调调整还是格式转换,提示中应清楚说明转换的目标或预期效果。

保持信息完整性:确保转换后的文本保留原文的核心信息,而不是引入新内容或偏差。

确保风格一致性:尤其在语调转换或格式转换中,保持转换后的文本与目标风格的统一性。

3.4 扩展类任务

prompt 示例

 “请为以下客户邮件生成一封专业的自动回复,并根据内容给出适当的感谢和确认:<客户邮件内容>”
 
  “请根据以下客户的电子邮件生成回复,确保使用邮件中的详细信息(如姓名、问题描述和订单号): 客户姓名:张三 问题描述:关于最近订单的延迟 订单号:123456 客户邮件内容:<客户邮件>”

扩展类提示的关键技巧

强调个性化:明确要求模型使用输入信息中的特定细节,确保回复是针对具体客户或场景定制的。

提供上下文:通过提供足够的背景信息,帮助模型生成内容时保持一致性和连贯性。

指定语气和风格:尤其在自动回复类应用中,明确回复的语气(如正式、非正式、友好等),以便与预期场景匹配。

四、prompt工程相关文档

(1) prompt-useful-list

• f/awesome-chatgpt-prompts(This repo includes ChatGPT prompt curation to use ChatGPT better.)

• PlexPt/awesome-chatgpt-prompts-zh(ChatGPT 中文调教指南。各种场景使用指南。学习怎么让它听你的话。)

• dair-ai/Prompt-Engineering-Guide(�� Guides, papers, lecture, notebooks and resources for prompt engineering)

• thinkingjimmy/Learning-Prompt(免费 Prompt Engineering 教程)

• wangxuqi/Prompt-Engineering-Guide-Chinese(Prompt工程师指南,源自英文版,但增加了AIGC的prompt部分,为了降低同学们的学习门槛,翻译更新)

• promptslab/Awesome-Prompt-Engineering(This repository contains a hand-curated resources for Prompt Engineering with a focus on Generative Pre-trained Transformer (GPT), ChatGPT, PaLM etc)

• yunwei37/Prompt-Engineering-Guide-zh-CN(�� 关于提示词工程(prompt)的指南、论文、讲座、笔记本和资源大全(自动持续更新))

• https://github.com/yzfly/wonderful-prompts(��中文 prompt 精选��,ChatGPT 使用指南,提升 ChatGPT 可玩性和可用性!��)

(2) prompt-projects-list

• thunlp/PromptPapers(Must-read papers on prompt-based tuning for pre-trained language models.)

• manifoldco/promptui(Interactive prompt for command-line applications)

• prompt-toolkit/python-prompt-toolkit(Library for building powerful interactive command line applications in Python)

五、致谢与官方文档

不同类型的prompt最佳实践:Docs

coze官方文档

创建插件

掘金小册

提示工程指南 | Prompt Engineering Guide

1.课程简介 — 提示工程笔记

原文链接:Docs


http://www.kler.cn/news/362019.html

相关文章:

  • 【Vue3】将 Element Plus 引入 Vue3 项目
  • 线性可分支持向量机的原理推导 线性分隔超平面关于任意样本点 (x_i,y_i)的函数间隔 公式解析
  • k8s中如何将pod的标准输出日志输出到一个文件
  • WordPress+Nginx 安装教程
  • 微信小程序文本收起展开
  • FineReport 数据筛选过滤
  • 养老院网站毕设计算机毕业设计基于SpringBootSSM框架
  • C#使用XML文件的详解及示例
  • python 更换pip源
  • WordPress中最值得推荐的AI插件:进阶级指南
  • 闯关leetcode——111. Minimum Depth of Binary Tree
  • juzigei/基于Java语言的充电桩系统(充电桩小程序+充电桩管理平台)
  • c++初阶数据结构速成
  • 监控易监测对象及指标之:东方通中间件JMX监控
  • Collection 单列集合 List Set
  • 【含文档】基于ssm+jsp的汉服商城网站 (含源码+数据库+lw)
  • 基于图像加密解密算法
  • 专题十三_记忆化搜索_算法专题详细总结
  • 目标检测系统中需要【重新训练模型】说明
  • LeetCode122:买卖股票的最佳时机II
  • 力扣力扣力:206. 反转链表
  • java项目结构说明
  • scrapy的xpath在控制台可以匹配,但是到了代码无法匹配(无法匹配tbody标签)
  • 金融行业:办公安全防护专属攻略
  • 三、MyBatis实践(2):MyBatis基本使用
  • 中国云厂出海:如何绕过暗礁,找到宝藏?