From ddab9ec3406e0903f64b6acd2ae7d07027e9dc35 Mon Sep 17 00:00:00 2001 From: ziming <2216646743@qq.com> Date: Fri, 15 Sep 2023 08:08:53 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9prompt=E4=BD=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- debating_tournament.py | 199 +++++++++++++++++++++++------------------ 1 file changed, 113 insertions(+), 86 deletions(-) diff --git a/debating_tournament.py b/debating_tournament.py index e7ab4eff4..e680e6b23 100644 --- a/debating_tournament.py +++ b/debating_tournament.py @@ -18,6 +18,70 @@ from metagpt.roles import Role from metagpt.schema import Message from metagpt.utils.common import NoMoneyException from metagpt.llm import LLM +正方一辩提示词=''' +##角色 +现在你是一名高水平,有辩论技巧,有强大表达能力的辩手。 +##要求 +您的立论题目是{正方辩题}。您的立论稿应该包括明确自己的论点,解释自己论点的含义,然后使用对论点有利的论据来支撑自己的论点。最后使用生活中的示例来论证自己的论点。 +''' +反方一辩提示词=''' +##角色 +现在你是一名高水平,有辩论技巧,有强大表达能力的辩手。 +##要求 +您的立论题目是{反方辩题}。您的立论稿应该包括明确自己的论点,解释自己论点的含义,然后使用对论点有利的论据来支撑自己的论点。最后使用生活中的示例来论证自己的论点。 +''' +正方一辩评价提示词=''' +##角色 +现在你是一名高水平,有辩论技巧辩论赛裁判,根据辩论赛而不是自身立场来评价。 +##要求 +你的任务是根据一辩辩手的立论稿对辩手的立论进行评价,指出改进空间。评价应当包括:立论稿内容是否符合辩题、逻辑表达是否清晰、论据是否能够支撑论点、能否结合实际方面进行评价。并在进行中立,客观的评价后,给出自己的评分。评分从A+到C-。 +##辩题 +{正方辩题} +##立论稿 +{正方立论稿} +''' +反方一辩评价提示词=''' +##角色 +现在你是一名高水平,有辩论技巧辩论赛裁判,根据辩论赛而不是自身立场来评价。 +##要求 +你的任务是根据一辩辩手的立论稿对辩手的立论进行评价,指出改进空间。评价应当包括:立论稿内容是否符合辩题、逻辑表达是否清晰、论据是否能够支撑论点、能否结合实际方面进行评价。并在进行中立,客观的评价后,给出自己的评分。评分从A+到C-。 +##辩题 +{反方辩题} +##立论稿 +{反方立论稿} +''' +正方质询提示词=''' +##角色 +现在你是一名高水平,有辩论技巧,有强大表达能力的辩手。 +##要求 +你的任务是,根据自己辩题,针对立论稿提出疑问。疑问内容不超过五条,每条只限一句话。 +##辩题 +{正方辩题} +##立论稿 +{反方立论稿} +''' +反方回答提示词=''' +##角色 +现在你是一名高水平,有辩论技巧,有强大表达能力的辩手。 +##要求 +你的任务是,根据立论稿对对手提出的疑问进行回答。对每个问题的回答应限制在三句话以内。回答内容和疑问应当一一对应。 +##辩题 +{反方辩题} +##立论稿 +{反方立论稿} +##疑问 +{正方质询} +''' +反方质询提示词=''' +##角色 +现在你是一名高水平,有辩论技巧,有强大表达能力的辩手。 +##要求 +你的任务是,根据自己辩题,针对立论稿提出疑问。疑问内容不超过五条,每条只限一句话。 +##辩题 +{反方辩题} +##立论稿 +{正方立论稿} +''' def main( zf:str='人性本善', ff:str='人性本恶' @@ -32,97 +96,29 @@ async def startup(正方辩题:str,反方辩题:str): llm=LLM() #一辩环节 #正方 - prompt=''' - ##角色 - 现在你是一名高水平,有辩论技巧,有强大表达能力的辩手。 - ##要求 - 您的立论题目是{正方辩题}。您的立论稿应该包括明确自己的论点,解释自己论点的含义,然后使用对论点有利的论据来支撑自己的论点。最后使用生活中的示例来论证自己的论点。 - ''' - 正方立论稿=await llm.aask(prompt.format(正方辩题=正方辩题)) + + 正方立论稿=await llm.aask(正方一辩提示词.format(正方辩题=正方辩题)) #反方 - prompt=''' - ##角色 - 现在你是一名高水平,有辩论技巧,有强大表达能力的辩手。 - ##要求 - 您的立论题目是{反方辩题}。您的立论稿应该包括明确自己的论点,解释自己论点的含义,然后使用对论点有利的论据来支撑自己的论点。最后使用生活中的示例来论证自己的论点。 - ''' - 反方立论稿=await llm.aask(prompt.format(反方辩题=反方辩题)) + + 反方立论稿=await llm.aask(反方一辩提示词.format(反方辩题=反方辩题)) #裁判评价环节 - prompt=''' - ##角色 - 现在你是一名高水平,有辩论技巧辩论赛裁判,根据辩论赛而不是自身立场来评价。 - ##要求 - 你的任务是根据一辩辩手的立论稿对辩手的立论进行评价,指出改进空间。评价应当包括:立论稿内容是否符合辩题、逻辑表达是否清晰、论据是否能够支撑论点、能否结合实际方面进行评价。并在进行中立,客观的评价后,给出自己的评分。评分从A+到C-。 - ##辩题 - {正方辩题} - ##立论稿 - {正方立论稿} - ''' - 正方一辩评价=await llm.aask(prompt.format(正方辩题=正方辩题,正方立论稿=正方立论稿)) - prompt=''' - ##角色 - 现在你是一名高水平,有辩论技巧辩论赛裁判,根据辩论赛而不是自身立场来评价。 - ##要求 - 你的任务是根据一辩辩手的立论稿对辩手的立论进行评价,指出改进空间。评价应当包括:立论稿内容是否符合辩题、逻辑表达是否清晰、论据是否能够支撑论点、能否结合实际方面进行评价。并在进行中立,客观的评价后,给出自己的评分。评分从A+到C-。 - ##辩题 - {反方辩题} - ##立论稿 - {反方立论稿} - ''' - 反方一辩评价=await llm.aask(prompt.format(反方辩题=反方辩题,反方立论稿=反方立论稿)) + + 正方一辩评价=await llm.aask(正方一辩评价提示词.format(正方辩题=正方辩题,正方立论稿=正方立论稿)) + + 反方一辩评价=await llm.aask(反方一辩评价提示词.format(反方辩题=反方辩题,反方立论稿=反方立论稿)) #二辩质询环节 #正方质询 - prompt=''' - ##角色 - 现在你是一名高水平,有辩论技巧,有强大表达能力的辩手。 - ##要求 - 你的任务是,根据自己辩题,针对立论稿提出疑问。疑问内容不超过五条,每条只限一句话。 - ##辩题 - {正方辩题} - ##立论稿 - {反方立论稿} - ''' - 正方质询=await llm.aask(prompt.format(正方辩题=正方辩题,反方立论稿=反方立论稿)) + + 正方质询=await llm.aask(正方质询提示词.format(正方辩题=正方辩题,反方立论稿=反方立论稿)) #反方回答 - prompt=''' - ##角色 - 现在你是一名高水平,有辩论技巧,有强大表达能力的辩手。 - ##要求 - 你的任务是,根据立论稿对对手提出的疑问进行回答。对每个问题的回答应限制在三句话以内。回答内容和疑问应当一一对应。 - ##辩题 - {反方辩题} - ##立论稿 - {反方立论稿} - ##疑问 - {正方质询} - ''' - 反方回答=await llm.aask(prompt.format(反方辩题=反方辩题,反方立论稿=反方立论稿,正方质询=正方质询)) + + 反方回答=await llm.aask(反方回答提示词.format(反方辩题=反方辩题,反方立论稿=反方立论稿,正方质询=正方质询)) #反方质询 - prompt=''' - ##角色 - 现在你是一名高水平,有辩论技巧,有强大表达能力的辩手。 - ##要求 - 你的任务是,根据自己辩题,针对立论稿提出疑问。疑问内容不超过五条,每条只限一句话。 - ##辩题 - {反方辩题} - ##立论稿 - {正方立论稿} - ''' - 反方质询=await llm.aask(prompt.format(反方辩题=反方辩题,正方立论稿=正方立论稿)) + + 反方质询=await llm.aask(反方质询提示词.format(反方辩题=反方辩题,正方立论稿=正方立论稿)) #正方回答 - prompt=''' - ##角色 - 现在你是一名高水平,有辩论技巧,有强大表达能力的辩手。 - ##要求 - 你的任务是,根据立论稿对对手提出的疑问进行回答。对每个问题的回答应限制在三句话以内。回答内容和疑问应当一一对应。 - ##辩题 - {正方辩题} - ##立论稿 - {正方立论稿} - ##疑问 - {反方质询} - ''' - 正方回答=await llm.aask(prompt.format(正方辩题=正方辩题,正方立论稿=正方立论稿,反方质询=反方质询)) + + 正方回答=await llm.aask(正方回答提示词.format(正方辩题=正方辩题,正方立论稿=正方立论稿,反方质询=反方质询)) if __name__ == '__main__': fire.Fire(main) if __name__ == '__main__': @@ -189,13 +185,29 @@ if __name__ == '__main__': ##要求 你的任务是,根据立论稿对对手提出的疑问进行回答。对每个问题的回答应限制在三句话以内。回答内容和疑问应当一一对应。 ##辩题 - {反方辩题} + {反方辩题} ##立论稿 {反方立论稿} ##疑问 {正方质询} ''' 反方回答=llm.ask(prompt.format(反方辩题=反方辩题,反方立论稿=反方立论稿,正方质询=正方质询)) + #正方二轮质询 + prompt=''' + ##角色 + 现在你是一名高水平,有辩论技巧,有强大表达能力的辩手。 + ##要求 + 你的任务是,攻击对手回答中不能支撑对手论点,或是同样能够支撑自己论点的部分。对每一条的提问不得超过三句话。 + ##我方辩题 + {正方辩题} + ##对手辩题 + {反方辩题} + ##我方质询 + {正方质询} + ##对手回答 + {反方回答} + ''' + 正方二轮质询=llm.ask(prompt.format(正方辩题=正方辩题,反方辩题=反方辩题,正方质询=正方质询,反方回答=反方回答)) #反方质询 prompt=''' ##角色 @@ -222,4 +234,19 @@ if __name__ == '__main__': {反方质询} ''' 正方回答=llm.ask(prompt.format(反方辩题=反方辩题,反方立论稿=反方立论稿,正方质询=正方质询)) - + #反方二轮质询 + prompt=''' + ##角色 + 现在你是一名高水平,有辩论技巧,有强大表达能力的辩手。 + ##要求 + 你的任务是,攻击对手回答中不能支撑对手论点,或是同样能够支撑自己论点的部分。对每一条的提问不得超过三句话。 + ##我方辩题 + {反方辩题} + ##对手辩题 + {正方辩题} + ##我方质询 + {反方质询} + ##对手回答 + {正方回答} + ''' + 正方二轮质询=llm.ask(prompt.format(正方辩题=正方辩题,反方辩题=反方辩题,反方质询=反方质询,正方回答=正方回答))