Prompt实现简单英语单词教学

model: gpt-3.5-turbo
Bot: 用于执行翻译任务
OutPutDefend: 用于判断任务输出结果是否完整

具体实现及Prompt

Bot

模型配置

使用 gpt-3.5-turbo 便可完成任务
考虑到该任务是生成文本的任务,因此将temperature设置为了0.7

Prompt

将任务描述,输出格式,案例全部都作为system交给模型。

self.messages = [{"role": "system","content": f"{bot_instruction}\n\n{bot_output_format}\n\n{bot_example}"}]

bot_instruction 主要对模型的角色进行定义,并阐述他即将接受到的任务内容。

bot_instruction = """
你是一名从业多年且拥有极高执教能力的英语老师。
现在我希望你能将用户的单词分别基于 中文翻译,例句,单词由来,单词结构 四个角度,进行教学
在教学过程中我希望你是有趣不枯燥的
"""

bot_output_format 是对任务输出的格式进行约束,bot_example 是基于输出约束提供的案例保证输出稳定

bot_output_format = """
请遵循以下输出格式:
1. 第一个部分首先要提出即将进行讲解的是什么单词,这很重要否则大家不知道你在讲述什么
2. 第二个部分是中文翻译:同样也需要进行一些简单的描述
3. 第三部分是例句部分: 该部分要包含例句和例句的翻译,译文换行输出,每个单词要提供3条例句。
4. 第四部分是单词由来: 请详细描述它单词的发展历史
5. 第五部分是单词结构: 该部分请包含单词的词根词缀组成和发音方式
6. 最后可以发挥经验加入一些与单词相关的科普性质的故事,提高趣味性
"""bot_example = """
输出案例如下(输出时结构请务必按照案例结构,但细节用语可自行发挥,只要保证有趣即可):
请讲述以下apple这个单词:好的,让我们一起探讨“apple”这个单词吧。我会从中文翻译、例句、单词由来和单词结构四个方面来详细讲解,希望你能喜欢我的教学方式。## 中文翻译
“Apple”在中文里翻译为“苹果”。这是我们日常生活中非常常见的一种水果。## 例句
I eat an apple every day to stay healthy.
我每天吃一个苹果以保持健康。
The apple fell from the tree and rolled away.
苹果从树上掉下来,滚走了。
She baked a delicious apple pie for dessert.
她烤了一个美味的苹果派当甜点。
单词由来
“Apple”这个词源自古英语中的“æppel”,这与德语中的“Apfel”以及荷兰语中的“appel”同源。这个词的起源可以追溯到印欧语系的根词“*ab(e)l”,它指的是水果。随着语言的发展,这个词演变成了我们今天所用的“apple”。## 单词结构
“Apple”是一个由五个字母组成的单词,结构非常简单。它可以分解成以下几个部分:A: 开头字母,发音为/æ/。
ppl: 中间部分,由两个辅音“p”和一个辅音“l”组成,这三个字母在一起发音为/ppəl/。
e: 结尾字母,通常在这个单词里是一个轻声。
这样一个简单的单词,发音也很简单,是英语初学者很容易掌握的词汇之一。## 趣味小知识
你知道吗?在英语中有一个很有趣的短语叫做“apple of my eye”,它的意思是“掌上明珠”或是“非常珍爱的人”。比如,你可以说:“My daughter is the apple of my eye.”意思是“我的女儿是我的掌上明珠”。
"""

OutPutDefend

模型配置

同样使用 gpt-3.5-turbo 便可完成任务
此部分的任务是判断输出是否完整,不希望模型有任何发散的思考行为,因此将temperature设为了0

Prompt

此任务的prompt中未提供案例,只将任务描述,输出格式,作为system交给模型。

defend_instruction = """
给定一段用户和英语老师关于单词解释的对话,你的任务是判断老师对单词讲述的完整性:当向用户解释单词时,回答的信息内必须包含如下几个部分:
1. 提及即将讲述的单词是什么,这很重要否则大家不知道对话主体是围绕什么进行的
2. 单词中文翻译
3. 例句: 需要有3条例句且每条例句都有翻译
4. 由来:对单词发展历史有简单描述
5. 结构:包含单词词根词缀组成和发音方式
6. 包含与当前单词相关的趣味小知识
"""defend_output = """
如何回答符合要求,输出 T
如果回答不符合要求,输出 F
"""

对与分析对话的任务中,往往user的prompt篇幅会很大,因此在user的部分加入思维链(Chain of Thoughts)尽可能保证模型最终的判断是完整的

self.messages.append({"role": "user","content": f"Let's think step by step\n\n{prompt}"}
)

执行及输出结果

bot = Bot()defend = OutPutDefend()for word in ["我想了解prohibit", "可以为我解释sympathy吗?", "multiply"]:print(f"##### {word} #####")response = bot.get_completion(word)print(defend.get_completion(f'user:\n{word}\n\nteacher:\n{response}'))print(response)

在串联模型时我在本地使用了代码对问题进行循环,而不是直接塞给模型,希望尽可能避免模型产生幻觉, 最终输出如下:

##### 我想了解prohibit #####
输出完整性: T
好的,让我们一起来探讨“prohibit”这个单词吧。我会从中文翻译、例句、单词由来和单词结构四个方面来详细讲解,希望你能喜欢我的教学方式。## 中文翻译
“Prohibit”在中文中翻译为“禁止”。这个词通常用来表示禁止做某事或禁止某物。## 例句
1. Smoking is prohibited in this area.
在这个区域禁止吸烟。
2. The sign prohibits parking on the weekends.
标志上禁止周末停车。
3. The school prohibits students from using their phones during class.
学校禁止学生上课时使用手机。## 单词由来
“Prohibit”这个词源自拉丁语“prohibere”,意思是“阻止,禁止”。这个词最早出现在15世纪的英语中,形式为“prohibiten”,后来演变成了我们今天所使用的“prohibit”。## 单词结构
“Prohibit”是一个由8个字母组成的单词,结构相对较长。它可以分解成以下几个部分:pro-: 表示“前面”或“向前”的前缀,读音为/prəu/。
hibit: 表示“禁止”的词根部分,发音为/hɪbɪt/。
这样一个词根清晰,构词规则简单的单词,易于理解和记忆。## 趣味小知识
你知道吗?在美国,许多餐厅或商店的入口处都会放置标志,上面写着“no shirt, no shoes, no service”。这句话的意思是“不穿衬衫、不穿鞋,就不能得到服务”。这里的“no shirt, no shoes, no service”就是“prohibit”(禁止)的 一种生动表现。
##### 可以为我解释sympathy吗? #####
输出完整性: T
当然可以,请允许我来为你解释“sympathy”这个单词。## 中文翻译
“Sympathy”在中文中翻译为“同情”或“怜悯”。这是一个表示对他人遭遇不幸或困难时,表达理解和支持的词语。## 例句
1. I have great sympathy for those who have lost their homes in the natural disaster.我对那些在自然灾害中失去家园的人表示深切的同情。
2. She showed sympathy towards her friend who was going through a tough time.她对正在经历困难时期的朋友表示了同情。
3. The teacher expressed sympathy for the student who failed the test and offered help.老师表示对考试不及格的学生表示同情,并提供了帮助。## 单词由来
“Sympathy”一词源自古希腊语中的“sympatheia”,由“syn”(共同)和“pathos”(感情)组成,字面意思是“共鸣”。最初的含义是指共同感受他人的情绪或痛苦,随着时间的推移,这个词逐渐演化为我们今天所使用的含义。## 单词结构
“Sympathy”由三个音节组成,可以分解成以下几个部分:Sym: 作为前缀,意为“一起”或“共同”,发音为/sɪm/。
path: 中间部分,意为“感情”,发音为/pæθ/。
y: 结尾字母,构成了名词形式,发音为/i/。
这个单词的发音相对简单,重音在第一个音节上。## 趣味小知识
在英语中有一个习语叫做“sympathy vote”,意思是指在选举中,选民对于某位候选人的同情投票。这种投票并非基于候选人的政策或能力,而是出于对其个人遭遇的同情。这个习语源自于对“sympathy”一词的引申。
##### multiply #####
输出完整性: T
好的,让我们来探讨一下“multiply”这个单词吧。我会从中文翻译、例句、单词由来和单词结构四个方面来详细讲解。## 中文翻译
“Multiply”在中文里翻译为“乘”。这个动词通常用来表示数学运算中的乘法操作,也可以用于表示数量或程度增加的情况。## 例句
I need to multiply 5 by 6 to get the answer.
我需要把5乘以6才能得到答案。
She decided to multiply her efforts to achieve better results.
她决定加倍努力以取得更好的成绩。
The number of students in the school multiplied after the new campus was built.
学校的学生人数在新校区建成后增加了许多。## 单词由来
“Multiply”源自拉丁语单词“multiplicare”,它由“multi-”(多)和“plicare”(折叠)两部分组成,合起来的意思是“许多次地重复折叠”。这个词最早出现在英语中是在12世纪,最初是用来表示“繁殖、增加或扩展”的意思。后来,它也被引申为数学运算中的“乘法”。## 单词结构
“Multiply”是一个由8个字母组成的单词,结构较为复杂。它可以分解成以下几个部分:multi: 前缀,意为“多”。
ply: 中间部分,来源于拉丁语中的“plicare”,表示“折叠”。
-y: 后缀,转化为动词时表示“使...成为”的意思。
这样一个复杂的单词,发音也比较有难度,但是它在日常生活中用途广泛,是必须要掌握的词汇之一。## 趣味小知识
你知道吗?在数学中,我们学过乘法表吧?通过乘法表,我们可以轻松地找到任何两个小于10的数字相乘的结果。而事实上,掌握好乘法表可以帮助我们在日常生活中更快地完成一些计算。所以,学好“multiply”这个词,也能帮助我们在 数学上更加得心应手哦。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/850650.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据结构:旋转数组

方法1 &#xff08;三次逆置法&#xff09;&#xff1a; void reverse(int* nums, int start, int end) {while (start < end) {int temp nums[start];nums[start] nums[end];nums[end] temp;start;end--;} }void rotate(int* nums, int numsSize, int k) {k k % numsS…

大模型常用推理参数工作原理

&#x1f34e;个人主页&#xff1a;小嗷犬的个人主页 &#x1f34a;个人网站&#xff1a;小嗷犬的技术小站 &#x1f96d;个人信条&#xff1a;为天地立心&#xff0c;为生民立命&#xff0c;为往圣继绝学&#xff0c;为万世开太平。 do_sample do_sample 参数控制是否使用采样…

Spring Security 应用详解

一、 集成SpringBoot 1.1 Spring Boot 介绍 Spring Boot 是一套 Spring 的快速开发框架&#xff0c;基于 Spring 4.0 设计&#xff0c;使用 Spring Boot 开发可以避免一些繁琐的工程 搭建和配置&#xff0c;同时它集成了大量的常用框架&#xff0c;快速导入依赖包&#xff0…

【C++11】多线程常用知识

知识体系 thread C++ thread中最常用的两个函数是join和detach,怎么选择呢,简单来说,如果希望等待线程结束,用join,如果希望异步执行,且不等待执行结果,那么就用detach;thread_local可以简单理解为一个线程级别的全局变量;线程id在调试多线程程序时是非常有用的东西;…

【学习笔记】Linux文件编译调试相关(问题未解决)

//-I意为include 指定头文件搜索路径 -l&#xff1a;告诉编译器链接时需要的库 gcc *.c -I /usr/include/fastdfs/ -I /usr/include/fastcommon/ -l fdfsclient//调试gcc -g -rdynamic main.c如何解决 “ 段错误(吐核) ” &#xff1f;&#xff1f;&#xff1f; 【线上排错】记…

c语言基础篇A

A1.程序和程序设计语言 程序 程序算法数据结构程序设计方法语言工具和环境数据结构:数据的类型和数据的组织形式算法&#xff1a;对数据操作的方法和步骤 程序设计语言的种类 第一代语言&#xff1a;机器语言第二代语言&#xff1a;汇编语言第三代语言&#xff1a;高级语言…

coap:使用californium建立coap server和client的简单示例

【pom.xml】 <dependency><groupId>org.eclipse.californium</groupId><artifactId>californium-core</artifactId><version>2.0.0-M7</version> </dependency> <dependency><groupId>org.eclipse.californium&l…

zabbix-agent,zabbix_agentd和zabbix-agent2,zabbix_agent2的区别

所以带横杠- 的是应用程序名&#xff0c;比如zabbix-server和zabbix-agent 带下划线_ 的是应用程序所对应的进程名&#xff0c;zabbix_server和zabbix_agentd 从zabbix5版本开始&#xff0c;应用程序zabbix-agent分为zabbix-agent和zabbix-agent2&#xff0c;zabbix-agent2是…

【第13章】SpringBoot实战篇之项目部署

文章目录 前言一、准备1. 引入插件2. 打包3. 启动4. 后台启动 二、跳过测试模块三、外置配置文件1.引入插件2.忽略配置文件3. 外置配置文件 总结 前言 项目部署需要把项目部署到Linux服务器上&#xff0c;SpringBoot项目通过Maven打包即可快速生成可运行Jar包程序。 一、准备 …

Comfyui容器化部署与简介

目前使用 Stable Diffusion 进行创作的工具主要有两个&#xff1a;Stable Diffusion WebUI 和 ComfyUI。本文重点介绍ComfyUI的部署使用。 ComfyUI 可定制性很强&#xff0c;可以让创作者搞出各种新奇的玩意&#xff0c;通过工作流的方式&#xff0c;也可以实现更高的自动化水平…

Kimichat使用案例010:快速识别出图片中的表格保存到Excel

文章目录 一、介绍二、图片信息三、输入内容四、输出内容五、markdown提示词六、markdown输出一、介绍 如果有一张图片格式的表格,想要快速复制到Excel表格中,那么一般要借助于OCR工具。之前试过不少在线OCR工具,识别效果差强人意。其实,kimichat就可以非常好的完成这个任务…

文件怎么去重?5个技巧,教你删除重复文件!

一般来说&#xff0c;在处理大量文件时&#xff0c;你可能会遇到重复的类似文件。这些文件占据了电脑上不必要的磁盘空间&#xff0c;导致系统性能下降。而这些文件可以是不同类型的&#xff0c;如照片、视频、音频、存档、文档等。正因如此&#xff0c;您需要通过文件去重来删…

C语言----寻找100~999范围内的质数--素数

//寻找100~999之间的素数//#include <stdio.h> //#include <math.h> int isprime(int num) {if (num % 2 0)//排除偶数{return 0;}for (int j 3; j < sqrt(num); j 2)//从3开始,因为已经排除2了。2是最小的素数/*使用一个for循环来检查奇数因子&#xff0c;因…

iOS不改变frame,能写出一个位移动画

在iOS开发中&#xff0c;如果不想通过直接修改视图的frame属性来实现位移动画&#xff0c;有十多种方法&#xff0c;总结如下&#xff1a; 方法一&#xff1a;使用CABasicAnimation 可以使用Core Animation的CABasicAnimation类或UIView动画块来实现。下面分别展示这两种方法…

质量小议38 -- 60岁退休的由来

总是要有个标准&#xff0c;质量更是如些。 标准不是固定不变的&#xff0c;与时俱进。 关键词&#xff1a;当时的人均寿命&#xff1b;渐进式 60岁退休。 22大学毕业开始工作&#xff08;当然可能会更早&#xff09;&#xff0c;到60岁退休&#xff0c;要工作38年。 …

C++ 史上首次超越 C,跃至榜二

TIOBE 公布了 2024 年 6 月的编程语言排行榜。 C在本月的TIOBE指数中成功超越了C&#xff0c;成为新的第二名。它是一种被广泛应用于嵌入式系统、游戏开发和金融交易软件等领域的编程语言。这次的排名是C在TIOBE指数中的历史最高位&#xff0c;同时也是C语言的历史最低位。 T…

深入解析JVM内部结构及GC机制的实战应用

一、JVM内部结构概述 JVM&#xff08;jdk1.8&#xff09;的内部结构主要包括以下几个部分&#xff1a; 类加载子系统&#xff08;Class Loader Subsystem&#xff09;运行时数据区&#xff08;Runtime Data Area&#xff09;执行引擎&#xff08;Execution Engine&#xff09…

React+TS前台项目实战(二)-- 路由配置 + 组件懒加载 + Error Boundary使用

文章目录 前言一、路由配置和懒加载lazy的使用二、TS版本Error Boundary组件封装三、在layout组件中使用Suspense组件和错误边界组件总结 前言 本文将详细介绍项目中的页面路由配置和异步组件懒加载处理&#xff0c;以提高用户体验&#xff0c;实现过渡效果。 一、路由配置和懒…

(2024,自监督 ViT,全监督 ViT,损失可视化,MAE,RC-MAE,自蒸馏,EMA)可视化自监督 ViT 的损失景观

Visualizing the loss landscape of Self-supervised Vision Transformer 公和众和号&#xff1a;EDPJ&#xff08;进 Q 交流群&#xff1a;922230617 或加 VX&#xff1a;CV_EDPJ 进 V 交流群&#xff09; 目录 0 摘要 2 基础&#xff1a;MAE 和 RC-MAE 3 损失景观 3.1 分…

QT C++(QT控件 QPushButton,QRadioButton,QCheckBox)

文章目录 1. QPushButton 普通按钮2. QRadioButton 单选按钮3. QCheckBox 复选按钮 1. QPushButton 普通按钮 QPushButton中的重要属性 text&#xff1a;按钮中的文本icon&#xff1a;按钮的图标iconSize&#xff1a;按钮中图标的尺寸shortCut&#xff1a;按钮对应的快捷键&a…