main
 1#!/usr/bin/env -S poetry run python
 2
 3import asyncio
 4
 5from openai import OpenAI, AsyncOpenAI
 6
 7# This script assumes you have the OPENAI_API_KEY environment variable set to a valid OpenAI API key.
 8#
 9# You can run this script from the root directory like so:
10# `python examples/streaming.py`
11
12
13def sync_main() -> None:
14    client = OpenAI()
15    response = client.completions.create(
16        model="gpt-3.5-turbo-instruct",
17        prompt="1,2,3,",
18        max_tokens=5,
19        temperature=0,
20        stream=True,
21    )
22
23    # You can manually control iteration over the response
24    first = next(response)
25    print(f"got response data: {first.to_json()}")
26
27    # Or you could automatically iterate through all of data.
28    # Note that the for loop will not exit until *all* of the data has been processed.
29    for data in response:
30        print(data.to_json())
31
32
33async def async_main() -> None:
34    client = AsyncOpenAI()
35    response = await client.completions.create(
36        model="gpt-3.5-turbo-instruct",
37        prompt="1,2,3,",
38        max_tokens=5,
39        temperature=0,
40        stream=True,
41    )
42
43    # You can manually control iteration over the response.
44    # In Python 3.10+ you can also use the `await anext(response)` builtin instead
45    first = await response.__anext__()
46    print(f"got response data: {first.to_json()}")
47
48    # Or you could automatically iterate through all of data.
49    # Note that the for loop will not exit until *all* of the data has been processed.
50    async for data in response:
51        print(data.to_json())
52
53
54sync_main()
55
56asyncio.run(async_main())