Azure OpenAI Assistants APIを用いたアプリをGradioとNext.jsで作成したので、備忘録です。
対象データ#
Zennで公開している記事を対象にしました。まず以下により、一括ダウンロードしました。
ベクトルストアへの登録#
以下のようなコードにより、データファイルをアップロードします。
アシスタント プレイグラウンド#
「アシスタント プレイグラウンド」を用いて、挙動を確認します。

少し気になった挙動として、同じファイルが複数回Citationされた場合、2つ目以降はコンテンツが空の形で表示されるようでした。


Gradio#
Azure OpenAI Assistants APIとGradioを使ったアプリを試作しました。以下のSpacesからお試しいただけます。
https://huggingface.co/spaces/nakamura196/zenn

実装方法は以下をご確認ください。
https://huggingface.co/spaces/nakamura196/zenn/tree/main
GradioのChatbotとAzure OpenAI Assistants APIを組み合わせるにあたり、一部変則的な実装を行なっている点がありますが、参考になりましたら幸いです。
Next.js#
同様に、openai-assistants-quickstartを使ったアプリも試作しました。以下でお試しいただけます。
https://openai-assistants-quickstart-zenn.vercel.app/examples/basic-chat

リポジトリは以下です。
https://github.com/nakamura196/openai-assistants-quickstart_zenn
openai-assistants-quickstartで、Azure OpenAI Serviceを使用するにあたり、openai.tsファイルを以下のように変更しました。
GradioとNext.jsのどちらにおいても、以下のエラーが発生して、Citationのファイルの内容を取得することができませんでした。
https://community.openai.com/t/can-not-download-assistant-generated-file-download-link-assistants-api-v2/1002926/1
この点については、引き続き調査したいと思います。
まとめ#
Azure OpenAI Assistants APIの利用にあたり、参考になりましたら幸いです。