From a70c69b6128da1c3b81ef11d6c95ca1427195a6a Mon Sep 17 00:00:00 2001 From: LuoChen Date: Wed, 7 Aug 2024 16:57:18 +0800 Subject: [PATCH] fix: structured_output_adapter --- .../llm/adapters/structured_output_adapter.py | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/src/ai_powered/llm/adapters/structured_output_adapter.py b/src/ai_powered/llm/adapters/structured_output_adapter.py index dd7790d..0f2dbf6 100644 --- a/src/ai_powered/llm/adapters/structured_output_adapter.py +++ b/src/ai_powered/llm/adapters/structured_output_adapter.py @@ -14,12 +14,21 @@ def _param_response_format_maker(self) -> ResponseFormat | openai.NotGiven: "json_schema": { "name": "math_response", #"strict": True if ModelFeature.strict_mode in self.model_features else None, #NOTE: https://platform.openai.com/docs/guides/structured-outputs/supported-schemas - "schema": self.return_schema, + "schema": { + "type": "object", + "properties": { + "result": self.return_schema, + }, + "required": ["result"], + } } } def _response_message_parser(self, response_message: ChatCompletionMessage) -> str: tool_calls = response_message.tool_calls + assert tool_calls is None - assert tool_calls is not None - return tool_calls[0].function.arguments + raw_resp_str = response_message.content + assert raw_resp_str is not None + + return raw_resp_str