Assistants APIでretrievalをStreamlitで使ってみる
OpenAIのAssistants APIでretrievalをStreamlitで使ってみました。
今回は、メモ程度にコードを残しておきますので、丁寧な手順とはなっていないです。
アシスタントにリクエストを投げてから実行されるまでに時間がかかるので、決めうちの30秒のsleepを入れています。
ここのところで、論理的には合っているがなぜ動かないのかを調べていて手間取りました。
app.py本体は以下です。
import streamlit as st
from openai import OpenAI
import os
import time
st.title('AssistantAPI')
os.environ["OPENAI_API_KEY"] = "sk-xxxxxxxxxxxxxxxxxxxxxxxxxx"
client = OpenAI()
file = client.files.create(
file=open("test.txt", "rb"),
purpose="assistants"
)
assistant = client.beta.assistants.create(
instructions="You are excellent chatbot",
model="gpt-4-1106-preview",
tools=[{"type": "retrieval"}],
file_ids=[file.id]
)
thread = client.beta.threads.create()
user_question = st.text_input("ユーザーの質問を入力してください")
message = client.beta.threads.messages.create(
thread_id=thread.id,
role="user",
content=user_question
)
run = client.beta.threads.runs.create(
thread_id=thread.id,
assistant_id=assistant.id,
)
run = client.beta.threads.runs.retrieve(
thread_id=thread.id,
run_id=run.id
)
time.sleep(30)
print(run.status)
messages = client.beta.threads.messages.list(
thread_id=thread.id,
order="asc"
)
for message in messages:
st.write(f"回答: {message.content[0].text.value}")
sk-xxxxにはOpenAIのAPIキーを入力し、別途、requirements.txtには、streamlit、openaiを記載してインストールをすれば使えます。
また、test.txtはapp.pyと同じフォルダに配置します。
このtest.txtには、Assistant APIに調べさせたいマニュアルや文章を入れておきましょう。
この記事が気に入ったらサポートをしてみませんか?