2023年12月23日土曜日

Google Geminiを呼び出すAPEXアプリケーションを作る

Google AI Gemini APIを呼び出すAPEXアプリケーションを作ってみました。

以下のように動作します。Gemini APIはチャット形式のやり取り(OpenAIのChat Completionsとほぼ同じ)と関数呼び出し(OpenAIのFunction Callingとほぼ同じ)もサポートしていますが、これらの実装はまた別の機会にしようと思います。


写っている動物の質問に使った画像は以下です。


タヌキなんですがハクビシンといわれています。世界的にみると珍しい動物らしいので、学習されていないのでしょうか。

APEXのアプリケーションの作りは単純です。

Textのページは、質問を入力するテキスト領域のページ・アイテムであるP2_TEXT、質問を送信ボタンRUN、Geminiのレスポンスのマークダウン読み取り専用で表示するP2_RESPONSEから構成されています。


ボタンRUNを押した時に実行されるプロセスとして、以下のコードを記述します。ほとんどの処理はパッケージUTL_GOOGLE_GEMINI_APIで行っています。このコードは記事の末尾に添付しています。



画像の問い合わせをするページには、APEX 23.2で新設されたイメージ・アップロードを使っています。


Geminiを呼び出すプロセスのコードは以下になります。


今回作成したアプリケーションのエクスポートを以下に置きました。
https://github.com/ujnak/apexapps/blob/master/exports/google-gemini.zip

Oracle APEXのアプリケーション作成の参考になれば幸いです。