mirror of
https://github.com/microsoft/autogen.git
synced 2025-08-20 06:31:54 +00:00
check ledger formatting (#327)
* check ledger formatting * format file * format file * rename agent metadata field 'name'-->'type' --------- Co-authored-by: Enhao Zhang <t-enhaozhang@microsoft.com>
This commit is contained in:
parent
33649c3e08
commit
91e55d8a16
@ -148,12 +148,13 @@ class LedgerOrchestrator(BaseOrchestrator):
|
|||||||
team_description = await self._get_team_description()
|
team_description = await self._get_team_description()
|
||||||
names = await self._get_team_names()
|
names = await self._get_team_names()
|
||||||
ledger_prompt = self._get_ledger_prompt(self.task_str, team_description, names)
|
ledger_prompt = self._get_ledger_prompt(self.task_str, team_description, names)
|
||||||
ledger_user_message = UserMessage(content=ledger_prompt, source=self.metadata["type"])
|
|
||||||
|
ledger_user_messages: List[LLMMessage] = [UserMessage(content=ledger_prompt, source=self.metadata["type"])]
|
||||||
|
|
||||||
assert max_json_retries > 0
|
assert max_json_retries > 0
|
||||||
for _ in range(max_json_retries):
|
for _ in range(max_json_retries):
|
||||||
ledger_response = await self._model_client.create(
|
ledger_response = await self._model_client.create(
|
||||||
self._system_messages + self._chat_history + [ledger_user_message],
|
self._system_messages + self._chat_history + ledger_user_messages,
|
||||||
json_output=True,
|
json_output=True,
|
||||||
)
|
)
|
||||||
ledger_str = ledger_response.content
|
ledger_str = ledger_response.content
|
||||||
@ -161,6 +162,31 @@ class LedgerOrchestrator(BaseOrchestrator):
|
|||||||
try:
|
try:
|
||||||
assert isinstance(ledger_str, str)
|
assert isinstance(ledger_str, str)
|
||||||
ledger_dict: Dict[str, Any] = json.loads(ledger_str)
|
ledger_dict: Dict[str, Any] = json.loads(ledger_str)
|
||||||
|
required_keys = [
|
||||||
|
"next_speaker",
|
||||||
|
"instruction_or_question",
|
||||||
|
"is_request_satisfied",
|
||||||
|
"is_in_loop",
|
||||||
|
"is_progress_being_made",
|
||||||
|
]
|
||||||
|
key_error = False
|
||||||
|
for key in required_keys:
|
||||||
|
if key not in ledger_dict:
|
||||||
|
ledger_user_messages.append(AssistantMessage(content=ledger_str, source="self"))
|
||||||
|
ledger_user_messages.append(
|
||||||
|
UserMessage(content=f"KeyError: '{key}'", source=self.metadata["type"])
|
||||||
|
)
|
||||||
|
key_error = True
|
||||||
|
break
|
||||||
|
if "answer" not in ledger_dict[key]:
|
||||||
|
ledger_user_messages.append(AssistantMessage(content=ledger_str, source="self"))
|
||||||
|
ledger_user_messages.append(
|
||||||
|
UserMessage(content=f"KeyError: '{key}.answer'", source=self.metadata["type"])
|
||||||
|
)
|
||||||
|
key_error = True
|
||||||
|
break
|
||||||
|
if key_error:
|
||||||
|
continue
|
||||||
return ledger_dict
|
return ledger_dict
|
||||||
except json.JSONDecodeError as e:
|
except json.JSONDecodeError as e:
|
||||||
logger.info(
|
logger.info(
|
||||||
|
Loading…
x
Reference in New Issue
Block a user