[](https://hamel.dev/blog/posts/prompt/#cb4-1)from pydantic import BaseModel, Field [](https://hamel.dev/blog/posts/prompt/#cb4-2)from guardrails import Guard [](https://hamel.dev/blog/posts/prompt/#cb4-3)import openai [](https://hamel.dev/blog/posts/prompt/#cb4-4) [](https://hamel.dev/blog/posts/prompt/#cb4-5)class Pet(BaseModel): [](https://hamel.dev/blog/posts/prompt/#cb4-6) pet_type: str = Field(description="Species of pet") [](https://hamel.dev/blog/posts/prompt/#cb4-7) name: str = Field(description="a unique pet name") [](https://hamel.dev/blog/posts/prompt/#cb4-8) [](https://hamel.dev/blog/posts/prompt/#cb4-9)prompt = """ [](https://hamel.dev/blog/posts/prompt/#cb4-10) What kind of pet should I get and what should I name it? [](https://hamel.dev/blog/posts/prompt/#cb4-11) [](https://hamel.dev/blog/posts/prompt/#cb4-12) ${gr.complete_json_suffix_v2} [](https://hamel.dev/blog/posts/prompt/#cb4-13)""" [](https://hamel.dev/blog/posts/prompt/#cb4-14)guard = Guard.from_pydantic(output_class=Pet, prompt=prompt) [](https://hamel.dev/blog/posts/prompt/#cb4-15) [](https://hamel.dev/blog/posts/prompt/#cb4-16)validated_output, *rest = guard( [](https://hamel.dev/blog/posts/prompt/#cb4-17) llm_api=openai.completions.create, [](https://hamel.dev/blog/posts/prompt/#cb4-18) engine="gpt-3.5-turbo-instruct" [](https://hamel.dev/blog/posts/prompt/#cb4-19)) [](https://hamel.dev/blog/posts/prompt/#cb4-20) [](https://hamel.dev/blog/posts/prompt/#cb4-21)print(f"{validated_output}")