OpenAIの新機能 Assistants APIの動作をPlaygroundで試してみよう

2023.11.07

OpenAI DevDay で発表された主要な新機能にAssistants APIというのもがありました。

これはまだベータ版ですが、APIを利用することにより独自のアプリケーション内でAIアシスタントを構築できる というものです。

特定の指示に従ったり、追加の知識を活用したり、モデルやツールと相互作用してさまざまなタスクを実行したりできる、目的に応じたAIアシスタントの作成を可能にすると説明されていて、 使用例は、自然言語ベースのデータ分析アプリ、コーディングアシスタント、AI搭載のバケーションプランナー、音声制御DJ、スマートなビジュアルキャンバスなど多岐にわたるとのことです。

独自のアプリケーション内でAIアシスタントを構築 ということなので、実際に組み込む際はコーディングが必要ですが、OpenAIのPlaygroundで作成から実行までを試せるのでちょっと遊んでみます。

assistantの作成

Playground にアクセスすると、

assistantを作成し、実際に実行できるような画面になっていますので、早速Createボタンをおして作成してみます。

  • Name
    • assistantの名称です。
  • Instructions
    • assistantの役割、どういうことをしてもらうのかを指示します
  • Models
    • ChhatGPTのベースのモデルを選択します
  • Tools
    • Assistants APIが現在対応している連携ツールです。これらを使用して回答を得ることができるようになります。
    • Code Interpreter, Retrieval, and Function calling の3つが提供されています。
    • Code Interpreter, RetrievalではFileをアップロードしてその情報も使えるようになります。

Code Interpreterで試す

Assistants APIでのCode Interpreterに関するドキュメント

では、ドキュメントに記載されている例をPlaygroundで試してみます。

コードインタープリターツールを有効にして、個人的な数学の家庭教師であるアシスタントを作成します。

無課金勢のためGPT-4がありませんが、課金勢であれば利用できます。

せっかくなのであらたに追加されたgpt-3.5-turbo-1106を使ってみます。

Toolsの部分はCode Interpreterの部分のトグルをオンにします。

Saveボタンを押すと作成されるので、実際にやり取りを試すことができるよになります。

では作成したアシスタントをつかってみます、。

ドキュメントの例を実行してみます。

pythonのコードと、解を答えてくれました。

別の式を与えてみる。

解の公式を使うやつです。結果は、

これもこたえてくれう!

Retrievalで試す(作成時にエラーした)

同様のエラーに遭遇しているっ人もいる

Assistants APIでのRetrievalに関するドキュメント

Retrievalは、独自の製品情報やユーザーから提供されたドキュメントなど、モデルの外部からの知識でアシスタントを強化します。 ファイルがアップロードされてアシスタントに渡されると、OpenAIは自動的にドキュメントをチャンクし、埋め込みのインデックスを作成して保存し、ベクトル検索を実装して関連するコンテンツを取得してユーザークエリに応答します

サポートされているファイルはこちら

最大ファイルサイズは512MBです。

では作成していきましょう・。

ファイルですが、国税調査の年齢(5歳階級),男女別人口-都道府県(大正9年~平成27年)を使用してみます。

さてさて試してみようとしたのですが、保存時で以下のようにエラーになってしまいました。

ファイルのインデックス作成に失敗 、サポートされていないファイル とのことですが、csvなので対応しているはず、、、

スレッドでファイルを与えても同じエラーになりました。

いったん終了します。

Functionsで試す

Assistants APIでのFunctionsに関するドキュメント

ユーザー自身で定義した関数をアシスタントから呼び出して実行してくれます。

※ 関数については以下を参照

では作成してみます。

FunctionsのAddボタンを押すと、関数の定義を入力する画面が開きます。

場所を与えて、げんざいの天気を教えてもらうgetCurrentWeatherと、都市のニックネームを教えてもらうgetNicknameという関数を定義してみました。

これらはドキュメントの例に記載されていたものです。

では実行してみます。

奈良市の天気をきいてみたら、作成したgetCurrentWeatherを呼び出してくれていますね。

Assistants APIは関数を呼び出すとRunの実行を一時停止し、関数呼び出しの結果を返すことでRunの実行を継続することができます。

実装時には天気を取得する外部APIなりを呼び、その結果をAssistants APIに引き渡して最終的な回答を返す ことになります。

Playgroudでは返却値の例を与えることで実行の継続が可能となっていました。

{"temperature": 7, "unit": "celsius", "description": "Sunny"}

を返却例として与えて、Submitを押すと、

内容を理解して回答を与えてくれます。

ニックネームの例)


Assistants APIを活用することで、様々なアプリケーションにお助けエージェントを導入できることになるので、ユーザーの利便性を向上できそうですね。