Update app.py
Browse files
app.py
CHANGED
|
@@ -55,6 +55,7 @@ class SpyAgent(BasicAgent):
|
|
| 55 |
prompt.append('\n请用以下格式回答:')
|
| 56 |
prompt.append('平民词:[词语或"未知"/"信息不足"]')
|
| 57 |
prompt.append('卧底词:[词语或"未知"/"信息不足"]')
|
|
|
|
| 58 |
prompt.append('分析理由:[简要分析发言中的线索和推理过程]')
|
| 59 |
|
| 60 |
analysis_result = self.llm_caller(''.join(prompt))
|
|
@@ -87,7 +88,16 @@ class SpyAgent(BasicAgent):
|
|
| 87 |
reasoning = reason_match.group(1).strip()
|
| 88 |
# 保存分析理由供下一轮使用
|
| 89 |
self.memory.set_variable('word_analysis_reasoning', reasoning)
|
| 90 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 91 |
return civilian_word, spy_word
|
| 92 |
def process_speak(self, name, speak):
|
| 93 |
prompt = []
|
|
|
|
| 55 |
prompt.append('\n请用以下格式回答:')
|
| 56 |
prompt.append('平民词:[词语或"未知"/"信息不足"]')
|
| 57 |
prompt.append('卧底词:[词语或"未知"/"信息不足"]')
|
| 58 |
+
prompt.append('可疑玩家:[玩家名字或"未知"]') # 新增这行
|
| 59 |
prompt.append('分析理由:[简要分析发言中的线索和推理过程]')
|
| 60 |
|
| 61 |
analysis_result = self.llm_caller(''.join(prompt))
|
|
|
|
| 88 |
reasoning = reason_match.group(1).strip()
|
| 89 |
# 保存分析理由供下一轮使用
|
| 90 |
self.memory.set_variable('word_analysis_reasoning', reasoning)
|
| 91 |
+
# 提取可疑玩家
|
| 92 |
+
suspect_match = re.search(r'可疑玩家[::]\s*(.+?)(?:\n|$)', analysis_result)
|
| 93 |
+
if suspect_match:
|
| 94 |
+
suspect = suspect_match.group(1).strip()
|
| 95 |
+
if not any(pattern in suspect.lower() for pattern in ["未知", "不清楚", "无法确定", "不确定", "信息不足"]):
|
| 96 |
+
for player in speak_history.keys():
|
| 97 |
+
if player in suspect and player != self.memory.load_variable('name'):
|
| 98 |
+
self.memory.set_variable('spy_player', player)
|
| 99 |
+
logger.info(f"集成分析识别可疑卧底: '{player}'")
|
| 100 |
+
break
|
| 101 |
return civilian_word, spy_word
|
| 102 |
def process_speak(self, name, speak):
|
| 103 |
prompt = []
|