diff --git a/llm/default_plugins/openai_models.py b/llm/default_plugins/openai_models.py index 48abb23..e37067a 100644 --- a/llm/default_plugins/openai_models.py +++ b/llm/default_plugins/openai_models.py @@ -527,7 +527,7 @@ class _Shared: messages.append( {"role": "assistant", "content": prev_response.text_or_raise()} ) - tool_calls = prev_response.tool_calls() + tool_calls = prev_response.tool_calls_or_raise() if tool_calls: messages.append( { diff --git a/llm/models.py b/llm/models.py index b165113..f6365f5 100644 --- a/llm/models.py +++ b/llm/models.py @@ -722,6 +722,9 @@ class Response(_BaseResponse): self._force() return self._tool_calls + def tool_calls_or_raise(self) -> str: + return self.tool_calls() + def json(self) -> Optional[Dict[str, Any]]: self._force() return self.response_json @@ -872,6 +875,11 @@ class AsyncResponse(_BaseResponse): await self._force() return self._tool_calls + def tool_calls_or_raise(self) -> str: + if not self._done: + raise ValueError("Response not yet awaited") + return self.tool_calls() + async def json(self) -> Optional[Dict[str, Any]]: await self._force() return self.response_json