Zenn
🧠

OpenAI の 新しいAPI "Responses API" について

2025/03/15に公開
2

執筆日

2025/03/15

概要

今週火曜日(2025/03/11)にOpenAIから、新しいAPIの発表がありました。既存のChat APIによるシンプルな会話と、エージェント構築のためのAssistants APIの機能を統合してより使いやすく進化させたResponses APIです。先日GPT-4.5が発表されたところでしたがそちらは高級モデルで、API利用してシステム構築目的に使うには少し……という感じでした。一方こちらは、同日に発表されたAgent SDKと合わせて最近のLLMのエージェント化の潮流に乗っていてシステム開発を更に便利にするのに重要な新機能であると感じました。
https://openai.com/index/new-tools-for-building-agents/

既存APIとの置き換えについて

リリース内容の引用

What this means for existing APIs
(中略)
Chat Completions API⁠: (中略)the Responses API is a superset⁠(opens in a new window) of Chat Completions with the same great performance, so for new integrations, we recommend starting with the Responses API.
(中略)
Assistants API⁠: (中略) We’re working to achieve full feature parity between the Assistants and the Responses API, including support for Assistant-like and Thread-like objects, and the Code Interpreter tool. Once this is complete, we plan to formally announce the deprecation of the Assistants API with a target sunset date in mid-2026.

Chat API

Chat Completionsでできることはできる上で更に追加の機能が使えるため、新しく始める場合はReaponses APIを使うことを推奨しています。Chat APIも継続して提供されるようなので、簡単なチャットやり取りであれば無理に既存のシステムを書き換える必要はなさそうです。

Assistants API

こちらについてはいくつかの機能がまだResponses APIに実装されていませんが、それらの実装が完了次第2026年の中盤ごろには廃止されるようです。Responses APIで既に使える機能のみで作られたシステムであれば早めに置き換えを始めておいた方が良さそうです。

チャットボット開発をしたことがある方は、一度はchat.compeletions.createを書いたことがあると思いますし、各検索エンジンやLLMにOpenAIのAPIの使い方を聞けばこちらが返ってきてしまいますが、今後はResponse APIで書き始めるようにしたいですね。

python

ライブラリの更新

すでにopenaiのライブラリをインストールしている人はバージョン1.66.0以上のアップグレードが必要です。

pip install -U openai

2025/03/12の1.66.0からResponses APIについての記述があります。
https://pypi.org/project/openai/#history

Azure OpenAI

なお、AzureOpenAIAPIは、執筆日時点で最新preview版ですら2025-01-01-previewで止まってしまっているため……使えませんでした。そのため以降コードの解説については最小限にさせていただきます、無念。またAPI更新が来たら検証結果等の記事を出して、こちらにもリンクを追記させていただきます。
適当なapi_versionでresponses APIを叩こうとするといつものエラーが出ます。

APIバージョンが間違っているときにも出るエラー
openai.NotFoundError: Error code: 404 - {'error': {'code': '404', 'message': 'Resource not found'}}

Microsoftの発表をよく読んだら最後に"in the coming weeks."と書いてありました。

ドキュメントの見方

今までのOpenAI Platformでapi-modeを指定するとChat APIとResponses APIを切り替えられます

# Chat API
https://platform.openai.com/docs/quickstart?api-mode=chat
# Responses API
https://platform.openai.com/docs/quickstart?api-mode=responses

簡単なコードの違い

  • システム・ユーザーメッセージをワンライナーで簡単に書くことができます
    • 複数やり取りを順に入力したい場合はinputにChat APIと同じように辞書リストで渡せばいいようです。
    • Chat APIの方もいつの間にかシステムメッセージのrolesystemからdeveloperに変わっていました。いつから……?
  • outputで出力全体を見られますが、テキストだけならoutput_textで簡単に取得できます
create_difference.py
from openai import OpenAI
client = OpenAI()

# Chat API
completion = client.chat.completions.create(
    model="gpt-4o",
    messages=[
        {
            "role": "developer",
            "content": "質問は英語で来るが、回答は日本語ですること"
        },
        {
            "role": "user",
            "content": "Write a one-sentence bedtime story about a unicorn."
        }
    ]
)
print(completion.choices[0].message.content)

# Responses API
response = client.responses.create(
    model="gpt-4o",
    instructions="質問は英語で来るが、回答は日本語ですること",
    input="Write a one-sentence bedtime story about a unicorn."
)
print(response.output_text) 

built-in機能

単純な回答生成ではなく追加の機能拡張を行うためのものです。以前紹介したfunction callingだけでなく、組み込みで関数記述をせずに使うことができるものもあります。

使用できる機能

  • Web検索
  • ファイル検索
  • コンピュータ操作
  • function calling

https://platform.openai.com/docs/guides/tools?api-mode=responses

コード例

use_builtin.py
from openai import OpenAI
client = OpenAI()

tools = <built-in 機能> # 次のコードブロックに各々の機能のtoolsの書き方

response = client.responses.create(
    model="gpt-4o",
    tools=tools,
    input="What was a positive news story from today?"
)

print(response.output_text)
toolsの書き方例
# Web検索
tools = [{"type": "web_search_preview"}] # Chat APIにも追加されてましたがいつから……?
# ファイル検索(事前にクライアント上にベクターストアを作成する必要があります)
tools=[{
    "type": "file_search",
    "vector_store_ids": ["<vector_store_id>"],
    "max_num_results": 2
}]
# コンピュータ使用
# tools以外にも詳細なオプション設定が必要なため省略

補足

  • ファイル検索の詳細
    • 軽く見た感じclientにファイルを登録しているんですが、アップロードするわけではない?
    • ファイル上限: プロジェクトで合計100GB、10,000ファイルまで。1ファイルは512MBまで
    • 検索方法: セマンティック・ベクトル検索が採用されており、他の検索サービスを実装せずに使える点はかなり便利そうです
    • 利用時のトークンや使用料については書いてないので何ともブラックボックスな点が多く調査が必要そうです

https://platform.openai.com/docs/guides/tools-file-search

  • コンピュータ使用の詳細

https://platform.openai.com/docs/guides/tools-computer-use
いっつも思うのですがAIにコンピュータ操作をさせたい需要って難しい(少なくとも企業向けPJとしてはあんまり?)興味という点では、AIだけが操作するミニコンピュータを用意して音声で操作指示をするデバイスを作るとか面白そうだなと思います。

まとめ

Responses APIはAssitants APIでテストされていたアシスタント機能をChat APIに統合して処理を最適化したもの、という認識でよさそうです。メッセージの書き方や出力確認が簡略化できるところはかなり好印象でした。Web検索機能についてはChatGPTで使っていたものがようやくAPIでも簡単に使えるようになるということで、これを使ったシステム開発には特に期待しています。(設定で特定ドメインのURLのみを検索対象にするとかできるといいなあ……)
今後もResponses APIのbuilt-in機能を初めとした機能拡張が楽しみです。

2
ヘッドウォータース

Discussion

ログインするとコメントできます