Assistatns APIが進化して帰ってきた!!!
こんにちは、ニケです。
皆さん、Assistants API使っていますでしょうか?
え、使ってない…?
…。
ま、まあ今まではいろいろ使いにくい面もありましたからね…。
私もある理由(↓)でほぼ使っていませんでした。
そんなAssistants APIが進化して帰ってきたということで個人的に気になったアップデート情報を共有したいと思います。
ちゃんと上の問題も解決しているようなのでご心配なく👍
アップデート内容紹介
先にAssistants APIについて簡単に説明しておきます。
Assistants APIとは
Assistants APIではアシスタントというオブジェクトを定義できます。アシスタントは、特定の指示を設定することでOpenAIのモデルを呼び出し、その個性や能力を調整することができます。
アシスタントは複数のツールに同時にアクセスできます。これらは、OpenAIが提供するコードインタプリターやナレッジ検索等のツール、あるいはユーザーが作成あるいはホストするツール(関数呼び出しを通じて)の両方が含まれます。
アシスタントは永続的なスレッドにアクセスすることができます。スレッドはメッセージの履歴を保持し、会話がモデルのコンテキスト長を超える場合には切り捨て、AIアプリケーション開発を容易にします。一度スレッドが生成されると、ユーザーが返信する際にはメッセージをそこに追加するだけです。
アシスタントは、作成の過程であったりアシスタントとユーザ間のスレッドの一部として、様々な形式のファイルにアクセスできます。ツールを用いる場合、アシスタントはファイル(画像、スプレッドシート等)を作成し、メッセージ作成時に参照するファイルを引用することも可能です。
こちらも読んでおくと理解しやすいと思います。https://platform.openai.com/docs/assistants/how-it-works/agents
メッセージの数が指定できるようになった!!
詳しくは上述の私の記事に載っていますが、今までのAssistants APIでは1つのスレッドでメッセージの数を調整することができませんでした。
そのため、1度作ったスレッドでは過去全てのメッセージが履歴として使用されるため、会話が伸びると費用が膨大になってしまうという問題がありました。
今回のアプデで、runオブジェクトにいくつまで過去のメッセージを含めるかを指定できる last_messages が設定できるようになりました。神。
https://platform.openai.com/docs/api-reference/runs/createRun
これで利用料を気にせずに安眠することができますね!
トークンの上限が指定できるようになった!
入力トークンと出力トークンの上限値を指定できるようになりました。
max_prompt_tokens: Run全体で使用できるプロンプトトークンの最大数。Runは指定されたプロンプトトークン数のみを使用するように最善を尽くします。指定されたプロンプトトークン数を超えると、Runはステータスが不完全なまま終了します。
max_completion_tokens: Run全体で使用できる完了トークンの最大数。Runは指定された完了トークン数のみを使用するように最善を尽くします。指定された完了トークン数を超えると、Runはステータスが不完全なまま終了します。
指定されたトークン数を超えちゃったらRunタスクが終了しちゃうみたいだけど、最善を尽くしてくれるらしいのでヨシッ!!
run毎にツールの指定が可能!
今まではアシスタントが持っているツールは、自動的に全てのrunオブジェクトで使用される可能性がありました。
今回のアプデで、アシスタントの持っているツールのうち、どれを使用するかをrun毎に指定することが可能に!
これで思わぬところで不要なツールを使用してしまう事故が防げます。
その他、runで指定できるパラメータ(tempreture、JSONモードなど)が増えたので、今までよりも柔軟なタスクに対応できるようになりました。
かなり実用性が向上したと言えます。
検索ツールの性能アップ!
今まで1つのアシスタントでは、20個までしかファイルを指定できなかったのですが、10,000個まで可能になりました。
また単純にパワーアップしているらしく、正確性と速度も向上したとのこと。
https://platform.openai.com/docs/assistants/tools/file-search/file-search-beta
ツールの名称も Retrieval から file_search に変更になったみたいです。
ツールの数自体は増えてはないみたいですね。
file_search(旧 Retrieval)
code_interpreter
function_calling
また、fileオブジェクトの他に、vector_storeというオブジェクトが追加されました。
今までのファイルのように追加すると、自動的に解析や分割、埋め込みが行われて検索できるような状態になります。便利。
もちろん、vector_storeはアシスタント間で共有可能です。
以前同様、アシスタントにどのvector_storeオブジェクトを使用するか指定する必要があります。
使用可能モデルの追加!
ファインチューニングモデルが選択できるようになりました!
たまに使用しているので個人的にはけっこう嬉しい。
ストリーミング対応が可能に!
chat botで分割レスポンスが可能になったのは感動。早く私のプロダクトに追加したい。
SDKにストリーミング用のヘルパーも追加されたらしいので、実装も難しくないかも知れません。
https://platform.openai.com/docs/assistants/whats-new
簡易Chatbotを作ろう
Assistants APIを使用してお試しのChatbotを作る記事を公開したので、こちらもぜひ読んでみてください。