main
 1from typing import List
 2
 3import rich
 4from pydantic import BaseModel
 5
 6from openai import OpenAI
 7
 8
 9class Step(BaseModel):
10    explanation: str
11    output: str
12
13
14class MathResponse(BaseModel):
15    steps: List[Step]
16    final_answer: str
17
18
19client = OpenAI()
20
21with client.responses.stream(
22    input="solve 8x + 31 = 2",
23    model="gpt-4o-2024-08-06",
24    text_format=MathResponse,
25) as stream:
26    for event in stream:
27        if "output_text" in event.type:
28            rich.print(event)
29
30rich.print(stream.get_final_response())