Unverified Commit af770b8e authored by pks's avatar pks Committed by GitHub
Browse files

[Bugfix] Fix AttributeError when passing StructuredOutputsParams to CompletionRequest (#35237)


Signed-off-by: default avatarPatrick Simianer <patrick@lilt.com>
parent 2ff3e436
...@@ -555,8 +555,16 @@ class ChatCompletionRequest(OpenAIBaseModel): ...@@ -555,8 +555,16 @@ class ChatCompletionRequest(OpenAIBaseModel):
return data return data
structured_outputs_kwargs = data["structured_outputs"] structured_outputs_kwargs = data["structured_outputs"]
# structured_outputs may arrive as a dict (from JSON/raw kwargs) or
# as a StructuredOutputsParams dataclass instance.
is_dataclass = isinstance(structured_outputs_kwargs, StructuredOutputsParams)
count = sum( count = sum(
structured_outputs_kwargs.get(k) is not None (
getattr(structured_outputs_kwargs, k, None)
if is_dataclass
else structured_outputs_kwargs.get(k)
)
is not None
for k in ("json", "regex", "choice") for k in ("json", "regex", "choice")
) )
# you can only use one kind of constraints for structured outputs # you can only use one kind of constraints for structured outputs
......
...@@ -320,8 +320,16 @@ class CompletionRequest(OpenAIBaseModel): ...@@ -320,8 +320,16 @@ class CompletionRequest(OpenAIBaseModel):
return data return data
structured_outputs_kwargs = data["structured_outputs"] structured_outputs_kwargs = data["structured_outputs"]
# structured_outputs may arrive as a dict (from JSON/raw kwargs) or
# as a StructuredOutputsParams dataclass instance.
is_dataclass = isinstance(structured_outputs_kwargs, StructuredOutputsParams)
count = sum( count = sum(
structured_outputs_kwargs.get(k) is not None (
getattr(structured_outputs_kwargs, k, None)
if is_dataclass
else structured_outputs_kwargs.get(k)
)
is not None
for k in ("json", "regex", "choice") for k in ("json", "regex", "choice")
) )
if count > 1: if count > 1:
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment