ChatGPTを使ったチャットボットは面白いけどいちいちメンションするのめんどくさいじゃないですか。普通の人間みたく返信するかどうか本人に考えさせましょ。こんな感じで。
プログラムはこんな。過去の履歴を突っ込んで返信する必要があればYESと返させます。
def should_reply(self, messages):
prompt = ""
for m in messages:
prompt += f"{m['user']}:{m['text']}\n"
prompt += f"\nあなたは{self.bot_id}というチャットAIでこれまでこのように会話をしてきました。会話に返信する必要があると思う場合はYESと答えてください。お礼を言われた場合も返信する必要があるためYESと答えてください。"
answer = get_chatgpt(user_content=prompt, temperature=TEMPERATURE_STRICT)
return "YES" in answer
