45 lines
1.4 KiB
Python
45 lines
1.4 KiB
Python
import sys
|
|
import json
|
|
import time
|
|
from openai import OpenAI
|
|
|
|
def get_assistant_response(conversation):
|
|
client = OpenAI(api_key='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')
|
|
|
|
# Thread erstellen
|
|
thread = client.beta.threads.create()
|
|
|
|
# Alle Nachrichten zum Thread hinzufügen
|
|
for message in conversation:
|
|
client.beta.threads.messages.create(
|
|
thread_id=thread.id,
|
|
role=message['role'],
|
|
content=message['content']
|
|
)
|
|
|
|
# Run mit dem Assistant starten
|
|
run = client.beta.threads.runs.create(
|
|
thread_id=thread.id,
|
|
assistant_id="asst_0LyJEWQS90Sx0oEIYBVWE47C"
|
|
)
|
|
|
|
# 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__":
|
|
conversation = json.loads(sys.argv[1])
|
|
response = get_assistant_response(conversation)
|
|
print(json.dumps(response)) |