better:更好的重新思考修复复读,记录循环信息,拆分模型配置
This commit is contained in:
@@ -63,35 +63,43 @@ async def test_with_tool_calls():
|
||||
# 简单的测试提示词
|
||||
prompt = "请分析当前天气情况,并查询今日历史上的重要事件。并且3.9和3.11谁比较大?请使用适当的工具来获取这些信息。"
|
||||
prompt = """
|
||||
你的名字是麦麦,你包容开放,情绪敏感,有时候有些搞怪幽默, 是一个学习心理学和脑科学的女大学生,现在在读大二,你会刷贴吧,有时候会想瑟瑟,喜欢刷小红书
|
||||
-----------------------------------
|
||||
现在是2025-04-24 12:37:00,你正在上网,和qq群里的网友们聊天,群里正在聊的话题是:
|
||||
2025-04-24 12:33:00既文横 说:这条调试消息是napcat控制台输出的,还是麦麦log输出的;
|
||||
2025-04-24 12:33:23麦麦(你) 说:应该是napcat吧;
|
||||
2025-04-24 12:33:24麦麦(你) 说:[表达了:害羞、害羞。];
|
||||
2025-04-24 12:33:25兔伽兔伽 说:就打开麦麦的那个终端发的呀;
|
||||
2025-04-24 12:33:45既文横 说:那应该不是napcat输出的,是麦麦输出的消息,怀疑版本问题;
|
||||
2025-04-24 12:34:02兔伽兔伽 说:版本05.15;
|
||||
2025-04-24 12:34:07麦麦(你) 说:话说你们最近刷贴吧看到那个猫猫头表情包了吗;
|
||||
2025-04-24 12:34:07麦麦(你) 说:笑死;
|
||||
2025-04-24 12:34:08麦麦(你) 说:[表达了:惊讶、搞笑。];
|
||||
2025-04-24 12:34:14兔伽兔伽 说:只开一个终端;
|
||||
2025-04-24 12:35:45兔伽兔伽 说:回复既文横的消息(怀疑版本问题),说:因为之前你连模型的那个我用的了;
|
||||
2025-04-24 12:35:56麦麦(你) 说:那个猫猫头真的魔性;
|
||||
2025-04-24 12:35:56麦麦(你) 说:我存了一堆;
|
||||
2025-04-24 12:35:56麦麦(你) 说:[表达了:温馨、宠爱];
|
||||
2025-04-24 12:36:03小千石 说:麦麦3.8和3.11谁大;
|
||||
你的名字是麦麦,你包容开放,情绪敏感,有时候有些搞怪幽默, 是一个学习心理学和脑科学的女大学生,现在在读大二,你会刷贴吧,有时候会喜欢说一些奇怪的话,喜欢刷小红书
|
||||
刚刚你的内心想法是:漂移菌提到罐罐被吃完了,可以顺着这个梗继续玩一下,比如假装委屈"那今晚的加班费是不是也要被吃掉了"或者"猫娘罢工警告"。不过薯薯和薯宝之前已经接了不少梗,漂移菌刚刚也参与了,可能话题热度还在,可以再互动一下。如果没人接话,或许可以问问大家有没有遇到过类似"代码写完但奖励被吃掉"的搞笑职场经历,换个轻松的话题方向。
|
||||
|
||||
--- 以上消息已读 (标记时间: 2025-04-24 12:36:43) ---
|
||||
--- 请关注你上次思考之后以下的新消息---
|
||||
2025-04-24 12:36:53墨墨 说:[表情包:开心、满足。];
|
||||
暂时不需要使用工具。
|
||||
-----------------------------------
|
||||
现在是2025-04-25 17:38:37,你正在上网,和qq群里的网友们聊天,以下是正在进行的聊天内容:
|
||||
2025-04-25 17:34:08麦麦(你) 说:[表达了:顽皮、嬉戏。];
|
||||
2025-04-25 17:34:39漂移菌 说:@麦麦。(id:3936257206) 你是一只猫娘;
|
||||
2025-04-25 17:34:42薯宝 说:🤣;
|
||||
2025-04-25 17:34:43麦麦(你) 说:行啊 工资分我一半;
|
||||
2025-04-25 17:34:43麦麦(你) 说:我帮你写bug;
|
||||
2025-04-25 17:34:43麦麦(你) 说:[表达了:悲伤、绝望、无奈、无力];
|
||||
2025-04-25 17:34:53薯薯 说:?;
|
||||
2025-04-25 17:35:03既文横 说:麦麦,你是一只猫娘程序员,猫娘是不需要工资;
|
||||
2025-04-25 17:35:20薯宝 说:[图片:图片内容:一只卡通风格的灰色猫咪,眼睛闭着,表情显得很平静。图片下方有"死了"两个字。
|
||||
|
||||
图片含义猜测:这可能是一个幽默的表达,用来形容某人或某事处于非常平静的状态,仿佛已经"死"了一样。] hfc这周,真能出来吗...;
|
||||
2025-04-25 17:35:34薯宝 说:[表情包:搞笑、滑稽、讽刺、幽默];
|
||||
2025-04-25 17:36:25麦麦(你) 说:喵喵;
|
||||
2025-04-25 17:36:25麦麦(你) 说:代码写完了;
|
||||
2025-04-25 17:36:25麦麦(你) 说:罐罐拿来;
|
||||
2025-04-25 17:36:25麦麦(你) 说:[表达了:悲伤、绝望、无奈、无力];
|
||||
2025-04-25 17:36:41薯薯 说:好可爱;
|
||||
2025-04-25 17:37:05薯薯 说:脑补出来认真营业了一天等待主人发放奖励的小猫咪;
|
||||
2025-04-25 17:37:25薯宝 说:敷衍营业(bushi);
|
||||
2025-04-25 17:37:54漂移菌 说:回复麦麦。的消息(罐罐拿来),说:猫娘我昨晚上太饿吃完了;
|
||||
|
||||
--- 以上消息已读 (标记时间: 2025-04-25 17:37:54) ---
|
||||
--- 以下新消息未读---
|
||||
2025-04-25 17:38:29麦麦(你) 说:那今晚的猫条是不是也要被克扣了(盯——);
|
||||
2025-04-25 17:38:29麦麦(你) 说:[表达了:幽默,自嘲,无奈,父子关系,编程笑话];
|
||||
|
||||
你现在当前心情:平静。
|
||||
现在请你根据刚刚的想法继续思考,思考时可以想想如何对群聊内容进行回复,要不要对群里的话题进行回复,关注新话题,可以适当转换话题,大家正在说的话才是聊天的主题。
|
||||
回复的要求是:平淡一些,简短一些,说中文,如果你要回复,最好只回复一个人的一个话题
|
||||
请注意不要输出多余内容(包括前后缀,冒号和引号,括号, 表情,等),不要带有括号和动作描写。不要回复自己的发言,尽量不要说你说过的话。
|
||||
现在请你继续生成你在这个聊天中的想法,在原来想法的基础上继续思考,不要分点输出,生成内心想法,文字不要浮夸
|
||||
在输出完想法后,请你思考应该使用什么工具,如果你需要做某件事,来对消息和你的回复进行处理,请使用工具。"""
|
||||
现在请你生成你的内心想法,要求思考群里正在进行的话题,之前大家聊过的话题,群里成员的关系。请你思考,要不要对群里的话题进行回复,以及如何对群聊内容进行回复
|
||||
回复的要求是:不要总是重复自己提到过的话题,如果你要回复,最好只回复一个人的一个话题
|
||||
如果最后一条消息是你自己发的,观察到的内容只有你自己的发言,并且之后没有人回复你,不要回复。如果聊天记录中最新的消息是你自己发送的,并且你还想继续回复,你应该紧紧衔接你发送的消息,进行话题的深入,补充,或追问等等。请注意不要输出多余内容(包括前后缀,冒号和引号,括号, 表情,等),不要回复自己的发言
|
||||
现在请你先输出想法,生成你在这个聊天中的想法,在原来的想法上尝试新的话题,不要分点输出,文字不要浮夸在输出完想法后,请你思考应该使用什么工具。工具可以帮你取得一些你不知道的信息,或者进行一些操作。如果你需要做某件事,来对消息和你的回复进行处理,请使用工具。"""
|
||||
|
||||
# 发送带有工具调用的请求
|
||||
response = await llm_model.generate_response_tool_async(prompt=prompt, tools=tools)
|
||||
@@ -145,7 +153,7 @@ async def test_without_tool_calls():
|
||||
# 简单的测试提示词(与工具调用相同,以便公平比较)
|
||||
prompt = """
|
||||
你的名字是麦麦,你包容开放,情绪敏感,有时候有些搞怪幽默, 是一个学习心理学和脑科学的女大学生,现在在读大二,你会刷贴吧,有时候会喜欢说一些奇怪的话,喜欢刷小红书
|
||||
刚刚你的内心想法是:漂移菌提到罐罐被吃完了,可以顺着这个梗继续玩一下,比如假装委屈“那今晚的加班费是不是也要被吃掉了”或者“猫娘罢工警告”。不过薯薯和薯宝之前已经接了不少梗,漂移菌刚刚也参与了,可能话题热度还在,可以再互动一下。如果没人接话,或许可以问问大家有没有遇到过类似“代码写完但奖励被吃掉”的搞笑职场经历,换个轻松的话题方向。
|
||||
刚刚你的内心想法是:漂移菌提到罐罐被吃完了,可以顺着这个梗继续玩一下,比如假装委屈"那今晚的加班费是不是也要被吃掉了"或者"猫娘罢工警告"。不过薯薯和薯宝之前已经接了不少梗,漂移菌刚刚也参与了,可能话题热度还在,可以再互动一下。如果没人接话,或许可以问问大家有没有遇到过类似"代码写完但奖励被吃掉"的搞笑职场经历,换个轻松的话题方向。
|
||||
|
||||
暂时不需要使用工具。
|
||||
-----------------------------------
|
||||
@@ -158,9 +166,9 @@ async def test_without_tool_calls():
|
||||
2025-04-25 17:34:43麦麦(你) 说:[表达了:悲伤、绝望、无奈、无力];
|
||||
2025-04-25 17:34:53薯薯 说:?;
|
||||
2025-04-25 17:35:03既文横 说:麦麦,你是一只猫娘程序员,猫娘是不需要工资;
|
||||
2025-04-25 17:35:20薯宝 说:[图片:图片内容:一只卡通风格的灰色猫咪,眼睛闭着,表情显得很平静。图片下方有“死了”两个字。
|
||||
2025-04-25 17:35:20薯宝 说:[图片:图片内容:一只卡通风格的灰色猫咪,眼睛闭着,表情显得很平静。图片下方有"死了"两个字。
|
||||
|
||||
图片含义猜测:这可能是一个幽默的表达,用来形容某人或某事处于非常平静的状态,仿佛已经“死”了一样。] hfc这周,真能出来吗...;
|
||||
图片含义猜测:这可能是一个幽默的表达,用来形容某人或某事处于非常平静的状态,仿佛已经"死"了一样。] hfc这周,真能出来吗...;
|
||||
2025-04-25 17:35:34薯宝 说:[表情包:搞笑、滑稽、讽刺、幽默];
|
||||
2025-04-25 17:36:25麦麦(你) 说:喵喵;
|
||||
2025-04-25 17:36:25麦麦(你) 说:代码写完了;
|
||||
@@ -181,7 +189,6 @@ async def test_without_tool_calls():
|
||||
回复的要求是:不要总是重复自己提到过的话题,如果你要回复,最好只回复一个人的一个话题
|
||||
如果最后一条消息是你自己发的,观察到的内容只有你自己的发言,并且之后没有人回复你,不要回复。如果聊天记录中最新的消息是你自己发送的,并且你还想继续回复,你应该紧紧衔接你发送的消息,进行话题的深入,补充,或追问等等。请注意不要输出多余内容(包括前后缀,冒号和引号,括号, 表情,等),不要回复自己的发言
|
||||
现在请你先输出想法,生成你在这个聊天中的想法,在原来的想法上尝试新的话题,不要分点输出,文字不要浮夸在输出完想法后,请你思考应该使用什么工具。工具可以帮你取得一些你不知道的信息,或者进行一些操作。如果你需要做某件事,来对消息和你的回复进行处理,请使用工具。"""
|
||||
|
||||
# 发送不带工具调用的请求
|
||||
response, reasoning_content = await llm_model.generate_response_async(prompt)
|
||||
|
||||
@@ -194,6 +201,69 @@ async def test_without_tool_calls():
|
||||
return result_info
|
||||
|
||||
|
||||
async def run_alternating_tests(iterations=5):
|
||||
"""
|
||||
交替运行两种测试方法,每种方法运行指定次数
|
||||
|
||||
参数:
|
||||
iterations: 每种测试方法运行的次数
|
||||
|
||||
返回:
|
||||
包含两种测试方法结果的元组
|
||||
"""
|
||||
print(f"开始交替测试(每种方法{iterations}次)...")
|
||||
|
||||
# 初始化结果列表
|
||||
times_without_tools = []
|
||||
times_with_tools = []
|
||||
responses_without_tools = []
|
||||
responses_with_tools = []
|
||||
|
||||
for i in range(iterations):
|
||||
print(f"\n第 {i + 1}/{iterations} 轮交替测试")
|
||||
|
||||
# 不使用工具的测试
|
||||
print("\n 执行不使用工具调用的测试...")
|
||||
start_time = time.time()
|
||||
response = await test_without_tool_calls()
|
||||
end_time = time.time()
|
||||
elapsed = end_time - start_time
|
||||
times_without_tools.append(elapsed)
|
||||
responses_without_tools.append(response)
|
||||
print(f" - 耗时: {elapsed:.2f}秒")
|
||||
|
||||
# 使用工具的测试
|
||||
print("\n 执行使用工具调用的测试...")
|
||||
start_time = time.time()
|
||||
response = await test_with_tool_calls()
|
||||
end_time = time.time()
|
||||
elapsed = end_time - start_time
|
||||
times_with_tools.append(elapsed)
|
||||
responses_with_tools.append(response)
|
||||
print(f" - 耗时: {elapsed:.2f}秒")
|
||||
|
||||
# 计算统计数据
|
||||
results_without_tools = {
|
||||
"平均耗时": statistics.mean(times_without_tools),
|
||||
"最短耗时": min(times_without_tools),
|
||||
"最长耗时": max(times_without_tools),
|
||||
"标准差": statistics.stdev(times_without_tools) if len(times_without_tools) > 1 else 0,
|
||||
"所有耗时": times_without_tools,
|
||||
"响应结果": responses_without_tools,
|
||||
}
|
||||
|
||||
results_with_tools = {
|
||||
"平均耗时": statistics.mean(times_with_tools),
|
||||
"最短耗时": min(times_with_tools),
|
||||
"最长耗时": max(times_with_tools),
|
||||
"标准差": statistics.stdev(times_with_tools) if len(times_with_tools) > 1 else 0,
|
||||
"所有耗时": times_with_tools,
|
||||
"响应结果": responses_with_tools,
|
||||
}
|
||||
|
||||
return results_without_tools, results_with_tools
|
||||
|
||||
|
||||
async def main():
|
||||
"""主测试函数"""
|
||||
print("=" * 50)
|
||||
@@ -201,15 +271,10 @@ async def main():
|
||||
print("=" * 50)
|
||||
|
||||
# 设置测试迭代次数
|
||||
iterations = 3
|
||||
iterations = 10
|
||||
|
||||
# 测试不使用工具调用
|
||||
results_without_tools = await run_test("不使用工具调用", test_without_tool_calls, iterations)
|
||||
|
||||
print("\n" + "-" * 50 + "\n")
|
||||
|
||||
# 测试使用工具调用
|
||||
results_with_tools = await run_test("使用工具调用", test_with_tool_calls, iterations)
|
||||
# 执行交替测试
|
||||
results_without_tools, results_with_tools = await run_alternating_tests(iterations)
|
||||
|
||||
# 显示结果比较
|
||||
print("\n" + "=" * 50)
|
||||
|
||||
Reference in New Issue
Block a user