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()
20id = None
21
22with client.responses.create(
23    input="solve 8x + 31 = 2",
24    model="gpt-4o-2024-08-06",
25    background=True,
26    stream=True,
27) as stream:
28    for event in stream:
29        if event.type == "response.created":
30            id = event.response.id
31        if "output_text" in event.type:
32            rich.print(event)
33        if event.sequence_number == 10:
34            break
35
36print("Interrupted. Continuing...")
37
38assert id is not None
39with client.responses.retrieve(
40    response_id=id,
41    stream=True,
42    starting_after=10,
43) as stream:
44    for event in stream:
45        if "output_text" in event.type:
46            rich.print(event)