ChatGPTのGPTsのような高いカスタマイズ性のあるアシスタントを簡単に構築できる「Assistants API」に、突如として無料かつオープンソースのOpenAI公式サンプルアプリ「Assistants API Quickstart」が登場した。
これは、OpenAIの公式Github上に公開されたもので、非常にシンプルなインストール手順で、GPT-4 Turboとのチャット、ファイル読み込み、Pythonコードの実行、外部APIの呼び出しが可能な高性能AIアシスタントを、自分のPC・Mac上に召喚できる便利なツールだ。
ChatGPT Plusの月20ドルのサブスク料金を払わなければ利用できないCode InterpreterやカスタムGPTsのような機能が、APIの格安の従量課金で利用できるようになるので、プログラミング知識のないユーザーにとってもメリットがある。
GPT-4 TurboのAPI利用料金は、1,000トークン(=超ざっくり日本語1000文字)の入力は0.01ドル、出力は0.03ドルだ。
通常のチャットのやり取りくらいだと、1往復0.5〜3円くらいで済むであろうから、サブスクで月20ドル(月3,000円超)を支払うよりは、APIで従量課金にした方が、多くのライトユーザーは安価に済む。
本記事では、公開されたばかりの「Assistants API Quickstart」を、自分のPC・Mac上で動かす手順を、プログラミング知識ゼロのユーザーでも再現できるように、丁寧に解説していく。
Assistants APIって何?GPTsと何が違う?
OpenAIのAssistants APIは、開発者が高度なAIアシスタントを構築するための強力なツールだ。
これを使えば、通常のChatGPTをさらに強化し、追加の文書やデータベースを知識とし、外部のツールも呼び出せるカスタマイズされたチャットボットAIを、比較的簡単に作ることができる。
ところで、ChatGPTの課金ユーザーであれば、アップロードしたファイルの読み込みや、特別なインストラクションが可能な、「GPTs」と呼ばれるカスタムチャットボットを作ることができる。
GPTsを作るのには、技術的知識は不要で、ChatGPTに月20ドルを払ってさえいれば、プロンプトに従ってGPTsを作るだけでよい。
Assistants APIが備えている機能も、基本的にはGPTsに近い。Assistants APIならではの利点は、GPTsと似たような機能を備えながら、ChatGPTから離れ、ローカルPC/MacやWebサイト、アプリなどに埋め込むことができる、という点だ。
ただし、よりカスタマイズ性が高く高機能な分、Assistants APIを使うには、プログラミングの知識が必要だ。
そのため従来、プログラミングの知識がなければ、Assistants APIを利用する機会はほぼなかったかもしれない。
その点、「Assistants API Quickstart」は、プログラミングの知識がなくても一応使えるほどにインストールから起動までの手順が簡略化されているので、より多くのユーザーが、Assistants APIの力を体験することができるようになったと言えよう。
もちろん、ヘビーユーザーがQuickstartのサンプルコードを元にどんどん機能をプログラミングで書き足していけば、さらに高機能なアプリを構築することもできる。
Assistants API Quickstart のインストール手順解説
Quickstartを起動するまでには、Macの「ターミナル」アプリを使って、色々とコマンドを打ち込んでいく必要がある。
プログラミング経験がなく、ターミナルでのコマンドに慣れていない人は、分かりにくく感じるかもしれないが、やること自体はシンプルなので、以下の解説を読んで自分のMac上で再現してみて欲しい。
Githubからのフォルダダウンロード
まずは、「ターミナル」アプリを開く。
起動直後から、コマンドを入力する画面になっているはずなので、そこに以下のコマンドをコピペする。
これは、Githubというソースコードの共有サイトから、Assistants API Quickstartの公開されているコードを、丸ごと自分のMacのホームフォルダ内にクローン(コピーしてダウンロード)してくるコマンドである。
git clone https://github.com/openai/openai-assistants-quickstart.git
すると、一気にファイルのダウンロードが進行し、”100% done”と表示されたら再びコマンド入力待ちに戻る。
そこでls
(List)コマンドを打ち込むと、現在のディレクトリ(=ホームフォルダ)下にある全てのフォルダ・ファイルのリストを取得できる。
先ほどのgit clone
コマンドで、ネット上にあるフォルダをホームディレクトリにダウンロードしてきたので、openai-assistants-quickstart
というフォルダが新たに一覧に加わっているのが分かる。
普段プログラミングをしないユーザーにとっては、ターミナルの画面でフォルダ一覧を見ると見慣れないかもしれないが、要するにFinderのホームフォルダを開いた時のフォルダ一覧と同じものだ。
実際、Finderでホームフォルダを開くと、「openai-assistants-quickstart」というフォルダが新設されていることが分かる。
ダウンロードが完了したので、次にインストール〜起動のステップに進む。
OpenAI APIキーの作成と設定
Quickstartのインストールの前に、OpenAIのAPIキーを作成して、環境変数として設定しておく必要がある。
OpenAIのAPIページで、「Create new secret key」をクリックして、分かりやすく「assistants-sample」などと名前をつけておく。表示されたAPIキーは一度しか表示されないので、コピーして記録しておく。
当サイトで過去にOpenAIのAPIキーの作り方を詳しく解説しているので、初心者はそちらも参照してほしい。
APIキーを環境変数として設定する方法は、VS CodeやCursorなどのテキストエディタ(プログラミングを行う用のテキスト編集ソフト)があった方が分かりやすい。
前の手順でダウンロードして作成した「openai-assistants-quickstart」フォルダを、テキストエディタで開くと、.env.example
という隠しファイルがある。
これを開いて、中にあるOPENAI_API_KEY=""
という部分に、先ほど作成した自分のAPIキーを入力して、上書き保存する。
そして、.env.example
ファイルの名前を変更し、.env
にする。
これによって、自分のAPIキーが、環境変数として呼び出せるようになり、次の手順で起動するクイックスタートアプリ上で、自分のAPIキーを使ったAssistantsが動作するようになる。
Assistants API Quickstartのインストール
再びターミナルを開き、今度はcd
(=Change Directory)コマンドで、openai-assistants-quickstart
フォルダの中に移動する。
cd openai-assistants-quickstart
フォルダ内で、Node.jsのパッケージ管理システムであるnpm
のコマンドを使って、Quickstartの起動のために必要なパッケージをインストールする必要がある。
とは言っても手順は簡単で、以下の1行のコマンドを打ち込むだけだ。
npm install
ただし、そもそもnpmを導入していない場合、このコマンドを実行しようとしてもエラーが出て実行できない。
その場合、以下の手順で、まずはHomebrewとNode.jsのインストールが先に必要になる。
npmコマンドが使えない場合:HomebrewとNode.jsの導入
Homebrewは、MacOS用のパッケージマネージャーで、ターミナル上でシンプルなコマンド(brew
コマンド)を使って、様々なパッケージをインストールできる便利なツールだ。
特にプログラミングをする場合には、頻繁に活躍してくれることが多い。
デフォルトでは入っていないので、まずはHomebrewが自分のMacにインストールされているかを確認する。
ターミナルを開いて、以下のコマンドを打ち込んでみる。
brew --version
Homebrewがインストールされていたら、バージョンが表示されるはずだが、表示されなければHomebrewのインストールから始める。
Homebrewを導入するには、公式サイトにある以下のインストール用のコマンドをターミナルに1行打ち込むだけで良い。
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Homebrewインストールが完了した後、ターミナルに「Next Step」という太字で、必ず実行が必要なコマンドが表示されるので、これをコピーして、ターミナルにペースト・実行する。
これは「PATHを通す」ためのコマンドで、brew
コマンドを使ってパッケージインストールができるようにするために必須の手順だ。
以上でHomebrewが使えるようになったら、今度はそのHomebrewを使ってNode.jsをインストールする。
Node.jsは、正しくHomebrewが導入できていれば、以下のbrew
コマンド一発でインストールができるはずだ。
brew install node
Node.jsもインストールできたら、あとは先ほど紹介したように、openai-assistants-quickstart
フォルダの中で、npm install
コマンドを実行すれば良い。
Assistants API Quickstart の起動
以上の手順でダウンロード&インストールが完了したら、cd
コマンドでopenai-assistants-quickstart
フォルダに入った上で、以下の起動コマンドを打ち込む。
npm run dev
すると、以下のようにQuickstartアプリが起動し、ブラウザで以下のURLにアクセスすることで、Quickstartが利用できるようになる。
http://localhost:3000
GPTsが自分のPC上で実現!Assistants API Quickstart で出来ること
http://localhost:3000
にアクセスすると、以下のようなAssistantを新規で作成する画面が表示される。
いわばChatGPT Plusで新しいカスタムGPTを作成するようなものである。
「Create Assistant」ボタンをクリックすると、以下のようにアシスタントのIDが生成されるので、これをコピーする。
VS CodeやCursorなどのテキストエディタで、再びopenai-assistants-quickstart
フォルダを開き、/app
フォルダの中にあるassistant-config.ts
というファイルの中に、ここで生成されたアシスタントIDをペーストして上書き保存する。
assistant-config.ts
を上書き保存すると、その瞬間にブラウザの画面が以下のように切り替わるはずだ。
チャット、ファイルサーチ、関数呼び出し、その全てを使ったサンプルアプリを起動することができる。
ChatGPTライクのAPIを利用したチャット:Basic chat
「Basic chat」は、ChatGPTのようなチャットUIで、APIを使ったチャットが可能な機能である。
Assistants APIは、Pythonの実行環境であるCode Interpreterも備えているので、チャットの会話の中で計算などを依頼して、実行結果を教えてもらうこともできる。
あくまでサンプルアプリなので、過去のチャットスレッド履歴の機能や、画像のアップロード機能などが実装されていないため、通常のChatGPTよりは随分シンプルな画面だが、ChatGPTの課金版でしか利用できないGPT-4 Turboとのチャットが可能になっている。
外部のAPIを呼び出せる:Function calling
「Function calling」は、AIアシスタントが外部の関数を呼び出せるようにする機能だ。これにより、アシスタントは単なる会話を超えて、他のソフトウェアやサービスと連携できるようになる。
例えば、ユーザーが「東京の天気を教えて」と尋ねたとする。
Function callingを使えば、アシスタントが外部の天気予報APIを呼び出して、最新の情報を取得し、ユーザーに伝えてくれる。
外部APIであれば何でも呼び出せるので、Googleカレンダーへの予定の追加、メールの送信、データベースの検索など、様々なタスクを自動化できる。
実際に、「東京の天気は?」と聞いてみると、東京の天気を回答してくれた。
PDFファイルやデータに基づき回答してくれる:File search
File searchは、PDFファイルの文書や、ExcelやCSVやJSON形式のデータファイルを提供すると、それらのファイルの中身を「知識」として活用し、回答の生成時にファイルを踏まえた回答をしてくれる。
『政治学と因果推論』という本をスキャンしPDF化したデータを添付して、「第10章を要約して下さい」と指示すると、ちゃんと実際の本の内容を参照して、第10章の要約を行なってくれた。
これを活用すれば、大量にある社内マニュアル類をアップロードして総務チャットボットとして使ったり、自分が勉強中の参考書をアップロードして質問してみたり、通常のChatGPTよりもプラスアルファの知識を備えたAIを作ることができる。
全てのAssistants APIの機能を1画面で試す:All
サンプルアプリの「All」を開いてみると、以上のようなAssitants APIの機能を全て実装したチャットボットとの会話が可能である。
まず、読み込ませたナレッジファイルである『政治学と因果推論』の著者プロフィールを尋ね、File Searchによる回答を得たら、今度は著者が務める大学の天気予報を聞いて、Function Callingの結果を表示し、さらに気温の計算についてCode InterpreterでPythonコードを実行させる・・・という一連の流れが、単一のチャット画面で実行できる。
あくまでサンプルアプリなので、著者の情報を聞いて天気を聞いて・・・というやりとりは相互にあまり関係がないが、Function callingやFile searchに追加機能をどんどん足していけば、もっと高度なアプリを作ることも可能だ。
Assistants APIのカスタマイズ・可能性は無限大
Assistants APIが備えているチャット、Function calling、File search、Code Interpreterと、Quickstartサンプルのような美麗なユーザーインターフェースを組み合わせれば、さまざまな実用例が想定できる。
例えば、社内の文書やマニュアルなどをアップロードし、Assistants APIの検索機能を使って必要な情報をすぐに見つけられる特別な知識を備えたChatGPT風アシスタント。
もしくは、プログラミング言語の入門書のPDFファイルを複数読み込んで、自分が勉強中のプログラミング言語の解説や、コードのデバッグなどを手伝ってくれるティーチングアシスタント。
WebサイトやWebアプリに埋め込めば、顧客からの問い合わせに24時間365日自動で対応し、関数呼び出し機能を使って自社のAPIから情報を取得し、的確な回答を提供するカスタマーサポートチャットボットも実現できる。
Code Interpreterも備えているので、自然言語でデータ分析のリクエストを受け付け、必要な処理を行ってレポートを作成などということも可能かもしれない。
Assistants APIを活用すれば、様々な分野で付加価値の高いAIアプリケーションを開発できる。開発スキルがある人であれば、Quickstartにどんどん機能を足していき、アイデア次第で、ここから幅広いアプリが開発できるだろう。
なお、Quickstartで設定したアシスタントは、OpenAIのWebサイト上からも確認できる。
OpenAIのプラットフォームの「Assistants」メニューから、Quickstart起動時に最初に表されたアシスタントIDごとに、インストラクション、ファイル、利用できる関数やツールを設定することができる。
ChatGPTのGPTsを作る画面に非常に近い形で、プラットフォーム側からアシスタントの設定を変更することも可能だ。
開発用サンプルだが従量課金でGPT-4 Turboを使えるメリットも
今回公開されたAssistants API Quickstartは、その名の通り、Assistants APIをアプリやWebサービスなどに実装する際の、クイックスタートサンプルとして作られたものだ。
デフォルトではFunction callingで呼び出せるのはお天気APIだけであるし、これをもっと便利にして行きたい場合は、自分で関数を定義し、機能を増やしていく必要がある。
コーディングをしていく土台が提供されていることで、ちょっとした機能を追加して自社の社内専用のアシスタントを作る、といったプロジェクトを始めるのが、以前より楽になることは確かだ。
一方で、開発スキル・経験のない初心者にとっては、デフォルトの機能で遊ぶことしかできない。
機能拡張しようとするとどうしてもコードを書く必要があるので、非エンジニアユーザーにとっては、確実にChatGPT Plusを月20ドルで契約して、カスタムGPTsを作った方が楽だろう。
とはいえ、非エンジニアのユーザーにとっても、これを使えば、ChatGPT Plusに登録しなくても、APIキーによる従量課金制でチャットができるという大きなメリットはある。
デフォルトでは、アシスタントを新規作成すると、GPT-4 Turboモデルを使ったアシスタントが作成される設定になっているので、ChatGPT Plusの月額20ドルを支払わずとも、最新のGPT-4 Turboとのチャットが利用できるわけだ。
簡単なインストール作業で、PDFファイルやCSVファイルの読み込みや、Code Interpreter(Pythonコードの実行)機能まで備えた高性能なチャットボットが、非常に低価格で利用できるのだから、ありがたい話だ。
当サイトで過去に紹介しているChatbotUIやOpen WebUIを使えば、OpenAIのAPIキーを使って、GPT-4 Turboとチャットをすることは可能だが、インストール作業が面倒だったり、Code Interpreterが使えなかったりと、一長一短ある。
それぞれのツールの利点・欠点を踏まえて、月額20ドルのChatGPT PlusとGPTsを使うのか、Assistants API QuickstartでサクッとGPT-4とチャットするのか、ChatbotUIやOpen WebUIを頑張ってインストールしてよりChatGPTの画面に近い使い心地でGPT-4やClaude 3 Opusを使うのか、どれを選ぶか検討してみよう。
Assistants API使用後はファイルの削除を忘れずに
Assistants APIにアップロードしたファイルは、OpenAIのクラウド上に存在し、1GBあたり1日0.2ドルのストレージコストがかかる。同じファイルを複数のアシスタントに読み込ませた場合、さらにそのアシスタントの数がコストに掛けられる。
したがって、繰り返し使用するわけではなく、お試しをするだけであれば、無駄なストレージコストが発生することを防ぐために、こまめにファイルは削除しておくべきである。
OpenAIのプラットフォームにログインして、「Storage」メニューを確認すると、Assistants API Quickstartで利用したファイルが保管されているので、これを削除しておくようにする。