Merge branch 'feat-intention-fs' into 'mgx_ops'

fixbug: 修复TL在快速回复中给其他角色发信息的问题

See merge request pub/MetaGPT!313
This commit is contained in:
林义章 2024-08-14 11:36:44 +00:00
commit dd6e658950
2 changed files with 9 additions and 3 deletions

View file

@ -204,3 +204,8 @@ Thought: The request is vague and lacks specifics, requiring clarification on th
Response Category: AMBIGUOUS.
"""
QUICK_RESPONSE_SYSTEM_PROMPT = """
{role_info}
However, you MUST respond to the user message by yourself directly, DON'T ask your team members.
"""

View file

@ -23,6 +23,7 @@ from metagpt.prompts.di.role_zero import (
QUICK_THINK_PROMPT,
QUICK_THINK_EXAMPLES,
QUICK_THINK_SYSTEM_PROMPT,
QUICK_RESPONSE_SYSTEM_PROMPT,
REGENERATE_PROMPT,
ROLE_INSTRUCTION,
SYSTEM_PROMPT,
@ -270,12 +271,12 @@ class RoleZero(Role):
# routing
memory = self.get_memories(k=4) # FIXME: A magic number for two rounds of Q&A
context = self.llm.format_msg(memory + [UserMessage(content=QUICK_THINK_PROMPT)])
intent_result = await self.llm.aask(context, system_msgs=self.format_quick_system_prompt())
intent_result = await self.llm.aask(context, system_msgs=[self.format_quick_system_prompt()])
if "QUICK" in intent_result or "AMBIGUOUS " in intent_result: # llm call with the original context
if "QUICK" in intent_result or "AMBIGUOUS" in intent_result: # llm call with the original context
async with ThoughtReporter(enable_llm_stream=True) as reporter:
await reporter.async_report({"type": "quick"})
answer = await self.llm.aask(self.llm.format_msg(memory))
answer = await self.llm.aask(self.llm.format_msg(memory), system_msgs=[QUICK_RESPONSE_SYSTEM_PROMPT.format(role_info=self._get_prefix())])
elif "SEARCH" in intent_result:
query = "\n".join(str(msg) for msg in memory)
answer = await SearchEnhancedQA().run(query)