Spaces:
Runtime error
Runtime error
shigeru saito
commited on
Commit
·
c9a66e4
1
Parent(s):
07a5f9a
すべてのメッセージを出力するように修正。
Browse files
app.py
CHANGED
|
@@ -13,12 +13,23 @@ assistant_id = os.getenv('OPENAI_ASSISTANT_ID')
|
|
| 13 |
|
| 14 |
import json
|
| 15 |
|
| 16 |
-
|
| 17 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 18 |
|
| 19 |
-
|
| 20 |
-
assistant = client.beta.assistants.retrieve(assistant_id)
|
| 21 |
-
print(assistant)
|
| 22 |
|
| 23 |
"### Step 2: Create a Thread ###"
|
| 24 |
empty_thread = client.beta.threads.create()
|
|
@@ -64,7 +75,7 @@ def assistant_response(prompt):
|
|
| 64 |
run = wait_on_run(run, thread)
|
| 65 |
print(run)
|
| 66 |
|
| 67 |
-
print("### Step 8: Retrieve the
|
| 68 |
messages = client.beta.threads.messages.list(
|
| 69 |
thread_id=thread.id
|
| 70 |
)
|
|
@@ -72,15 +83,33 @@ def assistant_response(prompt):
|
|
| 72 |
messages_str = json.dumps(messages.dict(), indent=2)
|
| 73 |
print(codecs.decode(messages_str, 'unicode-escape'))
|
| 74 |
|
| 75 |
-
|
| 76 |
-
|
| 77 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 78 |
|
| 79 |
# Gradio インターフェースの設定
|
| 80 |
iface = gr.Interface(
|
|
|
|
|
|
|
| 81 |
fn=assistant_response,
|
| 82 |
inputs=gr.Textbox(lines=2, placeholder="Enter your prompt here..."),
|
| 83 |
-
outputs=
|
| 84 |
)
|
| 85 |
|
| 86 |
# アプリケーションの起動
|
|
|
|
| 13 |
|
| 14 |
import json
|
| 15 |
|
| 16 |
+
assistant = None
|
| 17 |
+
client = openai.OpenAI()
|
| 18 |
+
|
| 19 |
+
print("### Step 1: Get the Assistant's ID ###")
|
| 20 |
+
assistant = client.beta.assistants.retrieve(assistant_id)
|
| 21 |
+
print(assistant)
|
| 22 |
+
assistant_name = assistant.name
|
| 23 |
+
assistant_description = assistant.description
|
| 24 |
+
assistant_model = assistant.model
|
| 25 |
+
assistant_tools = assistant.tools
|
| 26 |
+
assistant_file_ids = assistant.file_ids
|
| 27 |
+
|
| 28 |
+
if assistant_description is None:
|
| 29 |
+
|
| 30 |
+
assistant_description += f"このアシスタントは、OpenAI APIで {assistant_model} を使用して作成されました。"
|
| 31 |
|
| 32 |
+
def assistant_response(prompt):
|
|
|
|
|
|
|
| 33 |
|
| 34 |
"### Step 2: Create a Thread ###"
|
| 35 |
empty_thread = client.beta.threads.create()
|
|
|
|
| 75 |
run = wait_on_run(run, thread)
|
| 76 |
print(run)
|
| 77 |
|
| 78 |
+
print("### Step 8: Retrieve the Messages ###")
|
| 79 |
messages = client.beta.threads.messages.list(
|
| 80 |
thread_id=thread.id
|
| 81 |
)
|
|
|
|
| 83 |
messages_str = json.dumps(messages.dict(), indent=2)
|
| 84 |
print(codecs.decode(messages_str, 'unicode-escape'))
|
| 85 |
|
| 86 |
+
print("### Step 9: Retrieve the Assistant's Response ###")
|
| 87 |
+
answers = []
|
| 88 |
+
for message in messages.data:
|
| 89 |
+
if message.role == "assistant":
|
| 90 |
+
if message.content[0].type == "text":
|
| 91 |
+
answers.append(message.content[0].text.value + "\n\n")
|
| 92 |
+
else:
|
| 93 |
+
answers.append("Content is not text.\n\n")
|
| 94 |
+
elif message.role == "user":
|
| 95 |
+
break
|
| 96 |
+
|
| 97 |
+
# answersを逆順にする
|
| 98 |
+
answers.reverse()
|
| 99 |
+
|
| 100 |
+
return "".join(answers)
|
| 101 |
+
|
| 102 |
+
|
| 103 |
+
title = "OpenAPI Assistant API: " + assistant_name
|
| 104 |
+
description = assistant_description
|
| 105 |
|
| 106 |
# Gradio インターフェースの設定
|
| 107 |
iface = gr.Interface(
|
| 108 |
+
title=title,
|
| 109 |
+
description=description,
|
| 110 |
fn=assistant_response,
|
| 111 |
inputs=gr.Textbox(lines=2, placeholder="Enter your prompt here..."),
|
| 112 |
+
outputs=gr.Textbox(),
|
| 113 |
)
|
| 114 |
|
| 115 |
# アプリケーションの起動
|