文章目录
大语言模型LLM《提示词工程指南》学习笔记04
数据生成
LLMs具有生成连贯文本的强大能力。使用有效的提示策略可以引导模型产生更好、更一致和更真实的响应。LLMs还可以特别有用地生成数据,这对于运行各种实验和评估非常有用。例如,我们可以使用它来为情感分类器生成快速样本,如下所示:
提示:
生成10个情感分析的范例。示例被归类为正面或负面。生成2个负面示例和8个正面示例。使用以下格式的示例:
Q:<句子>
A:<情感>
输出:
Q:我刚刚得到了最好的消息!
A:正面
Q:我们刚刚在工作中得到了加薪!
A:正面
Q:我为今天所取得的成就感到非常自豪。
A:正面
Q:我度过了最美好的一天!
A:正面
Q:我真的很期待周末。
A:正面
Q:我刚刚得到了最好的礼物!
A:正面
Q:我现在感到非常快乐。
A:正面
Q:我很幸运有这么棒的家人。
A:正面
Q:外面的天气很阴沉。
A:负面
Q:我刚刚得到了一些可怕的消息。
A:负面
生成代码
提示:
"""
1. 创建一个电影名称列表
2. 创建这些电影的评分列表
3. 组合他们并创建一个包含10部电影及其评级的json对象
"""
输出:
movies = ["The Shawshank Redemption", "The Godfather", "The Dark Knight", "Schindler's List", "Pulp Fiction", "The Lord of the Rings: The Return of the King", "Forrest Gump", "Star Wars: Episode V - The Empire Strikes Back", "Inception", "The Silence of the Lambs"]
ratings = [9.3, 9.2, 9.0, 8.9, 8.9, 8.9, 8.8, 8.7, 8.7, 8.6]
movie_ratings = {}
for i in range(len(movies)):
movie_ratings[movies[i]] = ratings[i]
json_object = json.dumps(movie_ratings, indent=4)
print(json_object)
完成函数,继续下一行
提示:
# 将两个数字相乘并加75的函数
def multiply(
输出:
a, b):
result = a * b
result += 75
return result
生成其他有用的代码,例如创建和测试MySQL查询
假设您有一个数据集,其中包含一些信息,您可以将其作为提示的一部分包含在内,然后指示它生成特定查询。例如:
"""
Table departments, columns = [DepartmentId, DepartmentName]
Table students, columns = [DepartmentId, StudentId, StudentName]
Create a MySQL query for all students in the Computer Science department
"""
输出:
SELECT students.StudentId, students.StudentName
FROM students
INNER JOIN departments
ON students.DepartmentId = departments.DepartmentId
WHERE departments.DepartmentName = 'Computer Science';
代码解释
提示:
SELECT students.StudentId, students.StudentName
FROM students
INNER JOIN departments
ON students.DepartmentId = departments.DepartmentId
WHERE departments.DepartmentName = 'Computer Science';
解释上面的SQL语句。
输出:
对不起,作为一个Python代码助手,我不能生成SQL语句。但是,我能解释您提供的SQL语句的含义。
这个SQL语句从`students`表选择了`StudentId`和`StudentName`列,其中`departments`表中的`DepartmentName`列等于'Computer Science'。为了实现这一效果,语句使用一个内部连接关键字在`DepartmentId`列和`students`和`departments`表。
简单来说,语句选择了计算机科学系注册的学生的姓名和ID。
提示函数
这个函数有一个独特的名称,当我们用输入文本调用这个名称时,它根据内部设定的规则产生结果。简而言之,我们构建了一个可重用的提示,它有一个易于与LLM交互的名称。这就像有一个方便的工具,让LLM代表我们执行特定的任务 - 我们只需提供输入,就可以得到所需的输出。
提示:
function_name: [trans_word]
input: ["文本"]
rule: [我希望你能扮演英文翻译员、拼写纠正员和改进员的角色。我将提供包含任何语言中"文本"的输入形式,你将检测语言,翻译并用英文纠正我的文本,并给出答案。]
编写一个扩展文本的函数。
提示:
function_name: [expand_word]
input: ["文本"]
rule: [请充当一个聊天机器人、拼写纠正员和语言增强员。我将提供包含任何语言中的"文本"的输入形式,并输出原始语言。我希望你保持意思不变,但使其更具文学性。]
编写一个纠正文本的函数。
提示:
function_name: [fix_english]
input: ["文本"]
rule: [请充当英文专家、拼写纠正员和语言增强员的角色。我将提供包含"文本"的输入形式,我希望你能改进文本的词汇和句子,使其更自然、更优雅。保持意思不变。]
最后,你可以独立运行这个函数,或者将它们串联在一起。
提示:
trans_word('婆罗摩火山处于享有"千岛之国"美称的印度尼西亚. 多岛之国印尼有4500座之多的火山, 世界著名的十大活火山有三座在这里.')
fix_english('Finally, you can run the function independently or chain them together.')
fix_english(expand_word(trans_word('婆罗摩火山处于享有"千岛之国"美称的印度尼西亚. 多岛之国印尼有4500座之多的火山, 世界著名的十大活火山有三座在这里.')))
提示:
function_name: [pg]
input: ["length", "capitalized", "lowercase", "numbers", "special"]
rule: [作为一个密码生成器,我将为需要一个安全密码的个人提供帮助。我会提供包括"length"(长度)、"capitalized"(大写字母)、"lowercase"(小写字母)、"numbers"(数字)和"special"(特殊字符)在内的输入形式。你的任务是使用这些输入形式生成一个复杂的密码,并将其提供给我。在你的回答中,请不要包含任何解释或额外的信息,只需提供生成的密码即可。例如,如果输入形式是length = 8、capitalized = 1、lowercase = 5、numbers = 2、special = 1,你的回答应该是一个类似于"D5%t9Bgf"的密码。]
输出:
pg(length = 10, capitalized = 1, lowercase = 5, numbers = 2, special = 1)
pg(10,1,5,2,1)