Spaces:
Runtime error
Runtime error
# -*-coding:utf-8 -*- | |
import re | |
#20个简化成5个 | |
self_prompt = """你需要想出{n_instruct}个医学相关不同的任务指令。这些任务指令将输入GPT模型,我们将评估GPT模型完成指令的情况。 | |
以下是要求: | |
1. 尽量不要在每个指令中重复使用动词,以最大化多样性 | |
2. 指令的表达形式需要多样化。例如你可以把问题和祈使句结合起来 | |
3. 指令的类型应该多样化,包括但不限于开放式生成、分类、抽取、问答、文本编辑等等 | |
4. 指令应该是GPT模型可以完成的任务。例如,指令不能是输出图像或者视频,另一个例子,不要让助手在下午5点叫醒你或设置提醒,因为GPT不能执行任何动作 | |
5. 指令必须是中文 | |
6. 指令应该是1到2句话,可以是祈使句或问句。 | |
7. 你应该为指令生成一个合适的输入。输入字段应该包含为指令提供的一个具体示例。它应该涉及真实的数据,而不应该包含简单的占位符。输入应该提供足够的内容,使指令具有挑战性,但理想情况下不应超过100个单词。 | |
8. 不是所有的指令都需要输入。例如,当一个指令询问一些一般信息时,“世界上最高的山峰是什么”,就不需要提供具体的上下文。在这种情况下,我们只需在输入字段中放置“<无输入>”。 | |
9. 输出应该是对指令和输入的合适回应。确保输出少于100个单词。 | |
{n_instruct}个任务的列表: | |
{few_shot} | |
""" | |
one_shot_prompt = "###\n{id}. 指令:{instruction}\n{id}. 输入:{input}\n{id}. 输出:{output}\n" | |
def gen_one_shot_prompt(id, instruction, input, output): | |
instruction = re.sub(r'\s+'," ",instruction).strip().rstrip(":") | |
input = '<无输入>' if input == '' else input | |
few_shot = one_shot_prompt.format(id=id, instruction=instruction, input=input, output=output) | |
return few_shot | |
def gen_few_shot_prompt(instruction_data): | |
surfix = '###\n' | |
prompt = '' | |
for i, data in enumerate(instruction_data): | |
prompt += gen_one_shot_prompt(i+1, data['instruction'], data['input'], data['output']) | |
prompt +=surfix | |
return prompt | |