OpenAI Assistants APIとは何か
2023年11月に公開されたOpenAI Assistants APIについて、GPTsやLangChainとの違いについてまとめました。
OpenAI Assistants APIでできること
Assistants APIは、アシスタントボットを作成するためのAPIです。以下のような機能が用意されています。
機能リスト
ファイル参照
コード実行
ファンクション呼び出し
会話履歴の保存
プロンプト保存
機能名とのマッピング
上記機能をAssistants APIでの機能名とマッピングすると以下のようになります。
なお、プログラムを組んでAPIを叩かなくても、OpenAIのサイト上から手軽にアシスタントの作成やテスト実行が可能です。
端的にいえば、Assistants APIは同時期に発表されたGPTsの「カスタムGPTをAPIで作成できるもの」です。
GPTsとの違い
GPTsはWebサービスとしての「ChatGPT」に新しく搭載された機能(利用にはChatGPT Plus契約が必要)です。
GPTsの特長
事前にInstructionsを設定できるので、毎回プロンプトで指示を出さなくて済む
Web参照、画像生成、コード生成機能を簡単に追加できる
外部APIの呼び出しが可能
これまで個別に提供されていたWeb参照、画像生成、Plungins、Code Interpreter、Function Callingなどの機能が使いやすく統合されたサービスとなっています。
比較: Assistants API vs GPTs
では、Assistants APIとGPTsの違いについて見ていきます。
前提としてWebサービスとAPIという違いはありますが、機能的にはほぼ同等と言えます。
ただし、Web BrowsingやDALL-Eの機能そのものはAssistants APIで提供されているわけではないので、Functions + 専用APIを用意する必要があります。
LangChainとの違い
OpenAI Assistants APIのようにLLMをエージェント化する方法は、これまでLangChainなどのライブラリを使って実装することが一般的でした。
そこで、LangChainとの違いについても見ていきます。
LangChainのメリット
様々なToolsが用意されている
様々なツールがコミュニティ上で提供されていて、簡単に機能を追加できます。
一方Assistants APIのFunctionsは、ファンクションの呼び出しを行うだけであり機能そのものは独自に用意する必要があります。
OpenAI以外のモデルを使うことができる
HuggingFaceと連携してHuggingFaceに登録済みのLLMを利用可能です。
LangChainのデメリット
肥大化したライブラリ
豊富すぎる機能のためライブラリが肥大化、複雑化している印象です。
速すぎる開発サイクル
頻繁に仕様変更があり、業務で使う場合は互換性維持に苦労するかもしれません。
ベクターストアの準備
テキスト参照機能を実現するにはベクターストアが必要となるため、以下のような課題が発生します。
アプリケーションの実装上の手間
データの読み込みにかかるオーバーヘッド
マルチテナント環境でのデータ同期問題
まとめ
以上、OpenAI Assistants APIについて、GPTsやLangChainとの違いについてまとめてみました。
Assistants APIを利用することで、カスタマイズしたボットアプリケーションを手軽に構築できるので、仕事でもプライベートでも色々と試していきたいと思います。
なお、本記事執筆時点(2024年1月)でこのAPIはまだβ版なので仕様については今後変更される可能性があります。
Header Photo by Unsplash Andrew Neel