I guess a better way is use this:
class Car(BaseModel):
brand: str = Field(description="Brand name, usually same as the company name")
model: str = Field(description="Model Name")
class Cars(BaseModel):
car_list: list[Car]
json_schema = Car.model_json_schema()
completion = client.chat.completions.parse(
model="qwen3-32b-bnb-4bit",
messages=[{"role": "user", "content": "list 10 kinds of famous cars"}],
# extra_body={"structured_outputs": {"json": Cars.model_json_schema()}},
response_format=Cars,
)
print(completion.choices[0].message.content)