Anthropic SDK + Pydantic
from pydantic import BaseModel
class Recipe(BaseModel):
name: str
ingredients: list[str]
steps: list[str]
response = client.messages.create(
model='claude-sonnet-4-7',
tools=[{
'name': 'extract_recipe',
'input_schema': Recipe.model_json_schema()
}],
tool_choice={'type': 'tool', 'name': 'extract_recipe'},
messages=[...]
)
recipe = Recipe(**response.content[0].input)tool_choice 강제로 무조건 구조화된 응답 받음