😺
OpenAIライブラリのざっくりした使い方
説明しないこと
- OpenAI の APIKEY の取得方法
- Python の環境構築
- JupyterNotebook の環境構築
仕組み
- 準備
- クライアント作成
- アシスタント作成
- スレッド作成
- 実行
- ユーザーメッセージの追加(質問)
- 回答生成
- 結果をテキストファイルに出力して閲覧
使い方
それぞれのコードブロックを Notebook のコードセルと同じように分けて配置する。
最初の3つのセルを実行後、質問のたびにうしろ2つを実行し、質問を行う。
スレッドの作成を実行し直すことで、会話をリセットできる。
ソースコード
クライアントの作成
from openai import OpenAI
client = OpenAI(api_key="sk-・・・")
アシスタントの作成
assistant = client.beta.assistants.create(
# アシスタントの定義?
instructions="""
あなたは優秀なプログラマーです。サービス開発のお手伝いをしてください。
""",
model="gpt-4-1106-preview",
)
assistant_id = assistant.id
スレッドの作成
thread = client.beta.threads.create()
thread_id = thread.id
質問と回答生成
# ユーザーメッセージの追加
message = client.beta.threads.messages.create(
thread_id=thread_id, role="user", content=input("質問を入力してください")
)
run = client.beta.threads.runs.create(
thread_id=thread_id,
assistant_id=assistant_id,
)
回答を確認して、テキストファイルに書き込み
# スレッドのメッセージリストの確認
# スレッドとアシスタントのIDを利用して、一意になるようにしている
result_file = f"{thread_id}_{assistant_id}.md"
messages = client.beta.threads.messages.list(thread_id=thread_id)
messages_list = [message for message in messages]
# ファイルの初期化
with open(result_file, "w") as file:
file.truncate(0)
# ファイルを書き込みモードで開く
with open(result_file, 'w') as file:
# IDの情報をファイルに書き込む
file.write(f'Thread_ID:{thread_id}\n\n')
file.write(f'Assistant_ID:{assistant_id}\n\n')
file.write('----\n')
for message in reversed(messages_list):
# メッセージの情報をファイルに書き込む
file.write(f'{message.role}:{message.content[0].text.value}\n\n')
Discussion