47 lines
1.2 KiB
Python
47 lines
1.2 KiB
Python
import os
|
|
import sys
|
|
import json
|
|
from openai import OpenAI
|
|
import time
|
|
|
|
def get_assistant_response(user_message):
|
|
api_key = os.environ.get("OPENAI_API_KEY")
|
|
client = OpenAI(api_key)
|
|
|
|
# Thread erstellen
|
|
thread = client.beta.threads.create()
|
|
|
|
# Nachricht zum Thread hinzufügen
|
|
message = client.beta.threads.messages.create(
|
|
thread_id=thread.id,
|
|
role="user",
|
|
content=user_message
|
|
)
|
|
|
|
# Run mit dem Assistant starten
|
|
run = client.beta.threads.runs.create(
|
|
thread_id=thread.id,
|
|
assistant_id=os.environ.get("OPENAI_ASSISTANT_ID")
|
|
)
|
|
|
|
# Auf Antwort warten
|
|
while True:
|
|
run_status = client.beta.threads.runs.retrieve(
|
|
thread_id=thread.id,
|
|
run_id=run.id
|
|
)
|
|
if run_status.status == 'completed':
|
|
break
|
|
time.sleep(1)
|
|
|
|
# Antwort abrufen
|
|
messages = client.beta.threads.messages.list(thread_id=thread.id)
|
|
assistant_message = messages.data[0].content[0].text.value
|
|
|
|
return {"response": assistant_message}
|
|
|
|
if __name__ == "__main__":
|
|
if len(sys.argv) > 1:
|
|
user_message = sys.argv[1]
|
|
response = get_assistant_response(user_message)
|
|
print(json.dumps(response)) |