openai/openai-python
Publicmirrored from https://github.com/openai/openai-pythonAvailable
examples/assistant.py
47lines · modeblame
f6c2aedfMuhammed Al-Dulaimi2 years ago | 1 | import time |
| 2 | | |
2343e630Stainless Bot2 years ago | 3 | import openai |
| 4 | | |
f6c2aedfMuhammed Al-Dulaimi2 years ago | 5 | # gets API Key from environment variable OPENAI_API_KEY |
| 6 | client = openai.OpenAI() | |
| 7 | | |
| 8 | assistant = client.beta.assistants.create( | |
| 9 | name="Math Tutor", | |
| 10 | instructions="You are a personal math tutor. Write and run code to answer math questions.", | |
| 11 | tools=[{"type": "code_interpreter"}], | |
| 12 | model="gpt-4-1106-preview", | |
| 13 | ) | |
| 14 | | |
| 15 | thread = client.beta.threads.create() | |
| 16 | | |
| 17 | message = client.beta.threads.messages.create( | |
| 18 | thread_id=thread.id, | |
| 19 | role="user", | |
2343e630Stainless Bot2 years ago | 20 | content="I need to solve the equation `3x + 11 = 14`. Can you help me?", |
f6c2aedfMuhammed Al-Dulaimi2 years ago | 21 | ) |
| 22 | | |
| 23 | run = client.beta.threads.runs.create( | |
2343e630Stainless Bot2 years ago | 24 | thread_id=thread.id, |
| 25 | assistant_id=assistant.id, | |
| 26 | instructions="Please address the user as Jane Doe. The user has a premium account.", | |
f6c2aedfMuhammed Al-Dulaimi2 years ago | 27 | ) |
| 28 | | |
| 29 | print("checking assistant status. ") | |
| 30 | while True: | |
2343e630Stainless Bot2 years ago | 31 | run = client.beta.threads.runs.retrieve(thread_id=thread.id, run_id=run.id) |
f6c2aedfMuhammed Al-Dulaimi2 years ago | 32 | |
| 33 | if run.status == "completed": | |
| 34 | print("done!") | |
2343e630Stainless Bot2 years ago | 35 | messages = client.beta.threads.messages.list(thread_id=thread.id) |
f6c2aedfMuhammed Al-Dulaimi2 years ago | 36 | |
| 37 | print("messages: ") | |
| 38 | for message in messages: | |
2343e630Stainless Bot2 years ago | 39 | assert message.content[0].type == "text" |
| 40 | print({"role": message.role, "message": message.content[0].text.value}) | |
f6c2aedfMuhammed Al-Dulaimi2 years ago | 41 | |
| 42 | client.beta.assistants.delete(assistant.id) | |
2343e630Stainless Bot2 years ago | 43 | |
f6c2aedfMuhammed Al-Dulaimi2 years ago | 44 | break |
| 45 | else: | |
| 46 | print("in progress...") | |
2343e630Stainless Bot2 years ago | 47 | time.sleep(5) |