Share
Embed
Transcript
15 slides
-
Assistants APIとは① • さまざまなタスクを実行できる強力な「AIアシスタント」を作成するためのAPI。 ※現在PythonとNode.jsで使用可能 • アシスタントは、特定の指示を設定することでOpenAIのモデルを呼び出し、その個性や能 力を調整することが可能。 ※OpenAIのAPIのため、使用可能なモデルはOpenAIのものに限られる。 •
現在「file_search(旧Retrieval)」「code_interpreter」「function_calling」の3つのツールをサ ポートしている。アシスタントはこれら複数のツールに同時にアクセスが可能。 ※ツールについては後述 -
Assistants APIとは② • アシスタントは永続的なスレッドにアクセスすることが可能。スレッドはメッセージの履歴を 保持し、会話がモデルのコンテキスト長を超える場合には切り捨てることで、AIアプリケー ション開発を容易にする。一度スレッドを作成すると、ユーザーが返信する際にはメッセー ジをスレッドに追加するだけ。 ※コンテキスト長:保持可能なトークン数 ※スレッドは会話セッションのことを指す。1つのアシスタントで複数の会話履歴を管理可能。 例えばChatBotで利用ユーザー毎にスレッド作成し、別々に会話履歴を保持することが可能。
• アシスタントは、作成の過程やアシスタントとユーザ間のスレッドの一部として、様々な形 式のファイルにアクセスが可能。ツールを使用する場合、アシスタントはファイル(画像、ス プレッドシート等)を作成し、メッセージ作成時に参照するファイルを引用することも可能。 -
file_search(旧Retrieval) • 独自の製品情報やユーザーから提供されたドキュメントなど、モデルの外部からの知識で アシスタントを強化する。 • ドキュメントを自動的に解析してチャンク化し、埋め込みを作成して保存し、Vector検索と キーワード検索の両方を使用して関連コンテンツを取得してユーザーからの質問に答える。 ※チャンク化:多くの情報や知識を小さなまとまり(チャンク)に分割して処理する技術のこと。 ※Vector検索(類似性検索):外部情報を事前にVector化したうえでVectorDBに保持してお き、inputと近しいVectorである情報がinputと関連性が高いとして回答に使用する
※サポートされているファイルについては以下(txt、docx、pdf、csv、pyなど) https://platform.openai.com/docs/assistants/tools/file-search/supported-files -
その他アップデートによる新機能/改善点 • 使用するトークンの上限が指定可能になった。 • ファインチューニングモデルが利用可能になった。 • ストリーミングが利用可能になった。 • 「Node.js SDK」と「Python
SDK」に、「Streaming Helper」と「Polling Helper」が追加された。 ※Helper:アシスタントと対話する際の応答をサポートするためのもの。Streamingはリ アルタイムで遂次的に応答を出力。Pollingは一定の間隔で定期的にAPIの更新状態を 確認し、終了状態になったら一度に応答を出力。 -
Assistants APIを使用したChat botを試す • 今回は主にfile_search、code_interpreter、スレッドによる会話履歴保持を試します。 • 今回はWebアプリ起動時に一度だけスレッドを作成しています。この場合、Webア プリ終了時にスレッドは破棄されます。 ※Webアプリ終了してから再起動した際にも、Webアプリ終了前のスレッドが保持 されるようにすることが可能かは未確認。
• Chat botはPythonでStreamlitを使用して作成。 ※Streamlit:Pythonで簡単にWebアプリケーションを作成できるオープンソースのライ ブラリ。 -
おわりに • Assistants APIは手軽に使用でき、 こちらで機能を用意せずともAPI利用することで様々な機 能が使用出来ました。そのため、Assistants APIを使用することで容易にAIアプリケーション 開発が可能になります。 • 今回紹介しませんでしたが、LangChainというライブラリがあり、LangChainでもAssistants
API で提供されているような機能を実現可能です。 • LangChainとAssistants APIにはそれぞれ違いやメリット/デメリットがあるため、シチュエー ションに応じてどちらが良いかを判断して使用すると良さそうかなと考えています。 • Assistants APIの今後のアップデートにも期待。 ※LangChainについて気になった方は調べてみてください。 -
参考 • https://platform.openai.com/docs/assistants/overview • https://platform.openai.com/docs/assistants/whats-new • https://note.com/nike_cha_n/n/n21fe47546e8d#23075f74-115c-4292-839b- 90cc0086f8b9 • https://note.com/npaka/n/n4438384c96d0
• https://developer.mamezou-tech.com/blogs/2024/04/21/openai-file-search-intro/ • https://note.com/mahlab/n/nba20ea09648d#1f2aff74-c918-483b-a195- 73658f107252