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())