
AIを知りたい
OpenAIのAssistants APIって普通のChat Completions APIと何が違うんですか?

AIエンジニア
大きな違いは状態管理とツール実行をAPI側が行ってくれることです。会話の履歴管理やファイル検索、コード実行をOpenAI側で自動的に処理してくれます。

AIを知りたい
自分で管理しなくていいんですか?

AIエンジニア
そうです!Chat Completionsでは会話履歴やツール呼び出しを自分で管理する必要がありますが、Assistants APIではそれらをOpenAIのサーバーが管理してくれます。
Assistants APIとは
OpenAI Assistants APIとは、AIアシスタントの構築を簡素化するAPIです。スレッド(会話履歴)管理、ファイル検索(RAG)、コード実行、関数呼び出しなどの機能を提供し、開発者はビジネスロジックに集中できます。
Assistants APIの基本概念

AIを知りたい
Assistants APIの基本的な仕組みを教えてください!

AIエンジニア
4つの重要な概念があります。
| 概念 | 説明 | 役割 |
|---|---|---|
| Assistant | AIアシスタントの定義 | モデル・ツール・指示の設定 |
| Thread | 会話スレッド | メッセージ履歴の管理 |
| Message | 個別のメッセージ | ユーザーとAIの発言 |
| Run | 実行リクエスト | Assistantにスレッドを処理させる |
Assistants APIの実装方法

AIを知りたい
実際のコードを見せてください!

AIエンジニア
Python SDKを使った実装例です。
from openai import OpenAI
client = OpenAI()
# 1. Assistantの作成
assistant = client.beta.assistants.create(
name="データ分析アシスタント",
instructions="あなたはデータ分析の専門家です。",
model="gpt-4o",
tools=[
{"type": "code_interpreter"},
{"type": "file_search"}
]
)
# 2. スレッドの作成
thread = client.beta.threads.create()
# 3. メッセージの追加
message = client.beta.threads.messages.create(
thread_id=thread.id,
role="user",
content="売上データを分析してトレンドを教えてください"
)
# 4. 実行(ストリーミング)
with client.beta.threads.runs.stream(
thread_id=thread.id,
assistant_id=assistant.id,
) as stream:
for text in stream.text_deltas:
print(text, end="", flush=True)
ファイル検索(RAG)の実装

AIを知りたい
ファイルを渡して質問に答えさせることもできるんですか?

AIエンジニア
はい!File Search機能でRAGが簡単に実装できます。PDFやテキストファイルをアップロードするだけです。
# ベクトルストアの作成
vector_store = client.beta.vector_stores.create(
name="社内ドキュメント"
)
# ファイルのアップロード
file = client.files.create(
file=open("manual.pdf", "rb"),
purpose="assistants"
)
# ベクトルストアにファイルを追加
client.beta.vector_stores.files.create(
vector_store_id=vector_store.id,
file_id=file.id
)
# Assistantにベクトルストアを紐付け
assistant = client.beta.assistants.update(
assistant.id,
tool_resources={
"file_search": {
"vector_store_ids": [vector_store.id]
}
}
)
Chat Completions API vs Assistants API

AIを知りたい
結局どっちを使えばいいんですか?

AIエンジニア
用途によって使い分けましょう。
| 観点 | Chat Completions | Assistants API |
|---|---|---|
| 会話管理 | 自前で実装 | API側で管理 |
| ファイル検索 | 自前でRAG構築 | File Search組み込み |
| コード実行 | 非対応 | Code Interpreter対応 |
| 柔軟性 | 高い | 中程度 |
| コスト | トークンのみ | トークン+ストレージ |
| おすすめ | シンプルなチャット | 複雑なアシスタント、RAG |

AIを知りたい
用途に合わせて選べばいいんですね!

AIエンジニア
その通りです。会話の状態管理やRAGが必要ならAssistants API、シンプルなAPI呼び出しならChat Completionsを選びましょう。まずはPlaygroundで試してみるのがおすすめですよ!
