Skip to content

Commit 80ea9b8

Browse files
committed
docs: update instructor streaming cookbook
1 parent 09ef98b commit 80ea9b8

File tree

1 file changed

+46
-28
lines changed

1 file changed

+46
-28
lines changed

cookbook/instructor/instructor_streaming.py

Lines changed: 46 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -3,61 +3,79 @@
33
import instructor
44
from dotenv import load_dotenv
55
from openai import AsyncOpenAI
6+
import anthropic
7+
from pydantic import BaseModel
68

7-
from parea import Parea
9+
from parea import Parea, trace
810

911
load_dotenv()
1012

11-
client = AsyncOpenAI()
13+
oai_aclient = AsyncOpenAI()
14+
ant_client = anthropic.AsyncClient()
1215

1316
p = Parea(api_key=os.getenv("PAREA_API_KEY"))
14-
p.wrap_openai_client(client, "instructor")
15-
16-
client = instructor.from_openai(client)
1717

18+
p.wrap_openai_client(oai_aclient, 'instructor')
19+
p.wrap_anthropic_client(ant_client)
1820

19-
from pydantic import BaseModel
21+
oai_aclient = instructor.from_openai(oai_aclient)
22+
ant_client = instructor.from_anthropic(ant_client)
2023

2124

2225
class UserDetail(BaseModel):
2326
name: str
24-
age: int
27+
age: str
2528

2629

27-
async def main():
28-
user = client.completions.create_partial(
29-
model="gpt-3.5-turbo",
30+
@trace
31+
async def ainner_main():
32+
user = oai_aclient.completions.create_partial(
33+
model="gpt-4o-mini",
3034
max_tokens=1024,
3135
max_retries=3,
3236
messages=[
3337
{
3438
"role": "user",
35-
"content": "Please crea a user",
39+
"content": "Please create a user",
3640
}
3741
],
3842
response_model=UserDetail,
3943
)
40-
# print(user)
41-
async for u in user:
44+
return user
45+
46+
47+
async def amain():
48+
resp = await ainner_main()
49+
async for u in resp:
4250
print(u)
4351

44-
# user2 = client.completions.create_partial(
45-
# model="gpt-3.5-turbo",
46-
# max_tokens=1024,
47-
# max_retries=3,
48-
# messages=[
49-
# {
50-
# "role": "user",
51-
# "content": "Please crea a user",
52-
# }
53-
# ],
54-
# response_model=UserDetail,
55-
# )
56-
# async for u in user2:
57-
# print(u)
52+
53+
@trace
54+
def inner_main():
55+
user = ant_client.completions.create_partial(
56+
model="claude-3-5-sonnet-20240620",
57+
max_tokens=1024,
58+
max_retries=3,
59+
messages=[
60+
{
61+
"role": "user",
62+
"content": "Please create a user",
63+
}
64+
],
65+
response_model=UserDetail,
66+
)
67+
return user
68+
69+
70+
def main():
71+
resp = inner_main()
72+
for u in resp:
73+
print(u)
5874

5975

6076
if __name__ == "__main__":
6177
import asyncio
6278

63-
asyncio.run(main())
79+
asyncio.run(amain())
80+
81+
main()

0 commit comments

Comments
 (0)