OpenAI Assistants APIとThreads
OpenAIが管理するエージェントです。インフラは不要ですが、ベンダーロックインが生じ、オブザーバビリティにも不足があります。
「OpenAI Assistants APIとThreads」はCoddyKit上の無料AI Agentsレッスンです。 これはレッスン3/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはAI Agents学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 AI Agentsコースには全4レッスンが含まれています。
このレッスンの一部はまだ翻訳されておらず、英語で表示されています。
これは何ですか
OpenAI Assistants APIは、管理型のエージェント製品です。アシスタント(モデル + 指示 + ツール)を定義し、ユーザーは「スレッド」(会話)を介して操作します。状態、RAG、コードインタープリター、ファイルストレージはOpenAIが管理します。
2つの大きな魅力
- 組み込みのfile_search — マネージドRAGで、ベクトルDBを運用する必要がありません
- 組み込みのcode_interpreter — サンドボックス化されたPython実行環境です
これらの機能を自前で構築せずに利用したい場合は、Assistantsが迅速です。
Creating an Assistant
from openai import OpenAI
client = OpenAI()
assistant = client.beta.assistants.create(
name='Support Bot',
instructions='You help customers with orders.',
model='gpt-4o-mini',
tools=[{'type': 'file_search'}, {'type': 'code_interpreter'}]
)Threads = Conversations
thread = client.beta.threads.create()
client.beta.threads.messages.create(
thread_id=thread.id,
role='user',
content='Where is my order?'
)
run = client.beta.threads.runs.create(
thread_id=thread.id,
assistant_id=assistant.id
)完了をポーリングする
Runは非同期です。完了するまでポーリングします:
import time
while run.status not in ('completed', 'failed', 'requires_action'):
time.sleep(1)
run = client.beta.threads.runs.retrieve(thread_id=thread.id, run_id=run.id)Function Calling
chat.completionsのツールと同じパターンです。run.status == 'requires_action' の場合は、ツール呼び出しをディスパッチして結果を送信します:
if run.status == 'requires_action':
tool_outputs = []
for tc in run.required_action.submit_tool_outputs.tool_calls:
result = dispatch(tc)
tool_outputs.append({'tool_call_id': tc.id, 'output': json.dumps(result)})
client.beta.threads.runs.submit_tool_outputs(thread_id=thread.id, run_id=run.id, tool_outputs=tool_outputs)File Search (Vector Store)
vector_store = client.beta.vector_stores.create(name='docs')
client.beta.vector_stores.file_batches.upload_and_poll(
vector_store_id=vector_store.id,
files=[open('handbook.pdf', 'rb')]
)
assistant = client.beta.assistants.update(assistant.id, tool_resources={'file_search': {'vector_store_ids': [vector_store.id]}})Code Interpreter
code_interpreterを追加すると、Assistantはサンドボックス化されたPython実行環境を利用できます。データ処理に最適です:
{'type': 'code_interpreter'}Streaming
with client.beta.threads.runs.stream(thread_id=thread.id, assistant_id=assistant.id) as stream:
for event in stream:
print(event)トレードオフ
- + ベクトルストアとサンドボックスのインフラが不要です
- + メモリとスレッド状態を管理してくれます
- + file_searchによる引用が組み込まれています
- - ベンダーロックインが発生します
- - 検索戦略を細かく制御できません
- - 直接chat.completionsを使うよりレイテンシーが高くなります
- - 可観測性がより限定されます
ロードマップ
OpenAIは、Assistantsの後継としてResponses APIを発表しました。Responsesが落ち着くまでAssistantsの導入を見送るチームもあります。
プロトタイプに使用する
50行でドキュメントQAボットを立ち上げるなら、Assistantsに勝るものはなかなかありません。厳格なSLAとカスタム検索が必要な本番環境なら、自前で構築します。
コスト
Assistantsでは次の料金が発生します:
- 通常のトークン料金
- file_search: 1GBあたりの日額ストレージ料金
- code_interpreter: セッション単位の料金
低ボリュームなら安価ですが、大量に使うと費用が積み上がります。
Assistantsに最適な用途
Assistants APIに最も適したユースケースは何でしょうか。
まとめ
Assistantsはマネージド型のエージェント製品です。file_search、code_interpreter、スレッドを備えています。プロトタイプには最適ですが、大規模な本番環境にはあまり向きません。Responses APIにも注目してください。
AI チューターと学ぶ AI Agents — 無料
ブラウザでリアルコードを書いて実行し、24/7 の AI チューターから瞬時にサポートを受け、ウェブまたはアプリで続きから学習できます。
- コース
- 60
- レッスン
- 239
よくある質問
「OpenAI Assistants APIとThreads」レッスンは無料ですか?
はい。「OpenAI Assistants APIとThreads」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、AI Agentsコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 AI Agentsコースには全4レッスンが含まれています。
「OpenAI Assistants APIとThreads」で何を学びますか?
OpenAIが管理するエージェントです。インフラは不要ですが、ベンダーロックインが生じ、オブザーバビリティにも不足があります。 ブラウザで直接実行するハンズオンコードでAI Agentsを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
AI Agentsを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのAI Agentsは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/4です。
「OpenAI Assistants APIとThreads」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このAI Agentsレッスンでコードを書いて実行できますか?
はい。すべてのAI Agentsレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- LangGraphとCrewAIとAutoGen
- 長期稼働エージェント向けのLetta(旧MemGPT)
- OpenAI Assistants APIとThreads
- ユースケースに合ったフレームワークの選択