Azure Database for PostgreSQL Flexible Serverにはazure_aiエクステンションというのがあって、これはPostgreSQL単体でAzure OpenAI APIやAzure AI Translatorなどを利用することができる。例えば、あるテーブルのカラムにtextが入っていて、これをベクターにして、隣のvector型のカラムに格納するといったことが可能なので、アプリケーション側でこれらの処理をする必要が無く、実装をシンプルに出来る。
つまり
- アプリがテキストをAzure OpenAI APIに投げる
- 返ってきた結果をDBに格納する
処理が不要になるし、API Keyも専用のPostgreSQLロールでしかアクセス出来ないので、アプリでAzure KeyVaultから読み出して、みたいな処理も不要になる、と。
とはいえ、ベクター型も、あるいはazure_aiエクステンションで追加されるUDF(ユーザ定義関数)や複合型、さらに具体的にどのようなクエリを書けば良いのか、といったことについてはそれなりのトレーニングが必要なので、learn.microsoft.comに用意されているのだけれど、肝心の演習部分が日本語に翻訳されてない。そして、複数ある演習の内容がかなり重複しているので、まとめたバージョンを作った。
レポジトリにあるうち、merged_for_hol.mdがまとめたバージョンで、個別の演習ではテストしていないところも全てテストしてあるので、独習に使ってもらうも良し、ハンズオンに使ってもらうも良し(というか、自分がハンズオンで使うことを想定して編集したので)。