Google Gemini を REST API 経由でクラウド BPM サービス Questetra から呼び出す

:::note info
補足情報です（20250111現在）

現在は以下の Gemini 連携の標準搭載部品が準備されています

・Google Vertex AI: Gemini: チャット
https://support.questetra.com/ja/bpmn-icons/service-task-google-vertexai-gemini-chat/
:::

# はじめに

世間的には OpenAI の話題が多いですね。私は複数のサービスが切磋琢磨することを望んでいますので、今回は Google の Gemini の話です。

Gemini Ultra が出ましたが、REST API が使えて、無料で試せる Gemini Pro が今回の対象です。


# Questetra（Questetra BPM Suite）とは

「Questetra BPM Suite」は REST API 連携が得意なクラウド BPM サービス（ノーコード／ローコードサービス）です。このサービスから Gemini を呼び出してみます。

[Questetra BPM Suite 製品サイト](https://questetra.com/ja/)

![Questetra_top.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224441/c75b319f-f64b-f0c1-af25-bf178f926eaf.png)


※無料トライアルがあるので、すぐにいろいろ試せます！

[Questetra 無料トライアル申込フォーム](https://questetra.com/ja/free-trial/)


# Questetra と Gemini の連携

Gemini との連携アドオンを準備しました。部品化されていますので API 仕様を意識しなくても使えます。
※今回準備したアドオンは、まだまだブラッシュアップが必要でまずは動くレベルのベータ版、ということで。

試しに作ったワークフローアプリはこんな感じです。

![gemini_flow.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224441/b40188e7-4d45-48fb-718a-8720c3b62779.png)


連携アドオンの設定は以下。

![gemini_addon_config.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224441/31908650-192b-359a-08f7-c44cabc945c5.png)


プロンプトを送ってみます。

![gemini_task1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224441/f36dda65-bfa6-f1c1-05f1-b872db9235dc.png)

以下の回答が返ってきました。

![gemini_task2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224441/b7265fc0-b83e-7a8b-bdd6-33b750a5c2f4.png)


### ※手元で動かしてみる場合

上記のワークフローアプリをそのままインポートして動かしてみたい、という人は、前述の Web フォームから無料トライアル環境を申し込んで、以下を参考に設定してください。

[Questetra チュートリアル：初めての業務テンプレート活用](https://questetra.zendesk.com/hc/ja/articles/360002480931)

以下がインポートファイルです。そのままダウンロードしてください。拡張子は .qar です。

https://drive.google.com/file/d/1YxOFVS6GFo3-rUmo0ksZshWQyKX9Jfnd/view?usp=sharing


動かすためには Geimini の API キーの設定が必要です。

Gemini の API キーは以下の Quick Start ページ内の「Get an API key」から取得できます（Google アカウントが必要です）。

https://ai.google.dev/tutorials/rest_quickstart

もしわかりにくいようであれば以下の記事を参考にしてもらうといいかと思います。

https://auto-worker.com/blog/?p=8667


さきほどインポートしたワークフローアプリへの API キーの設定方法は以下の通りです。
1\.フロー図内の「Gemini Pro API」の部品をクリックして、歯車アイコンをクリック
2\.「HTTP設定」画面内の「APIキー」の「設定はこちらから」をクリック
3\.「HTTP 認証設定」で「トークン直接指定」タブを選択
4\.「アプリ固有の設定」の「追加」をクリック
5\.「名前」に「Google Gemini」、「トークン」に取得した API キーを入力して「保存」をクリック


Questetra でワークフローアプリを動かす方法は以下の Chapt.1 を参考にしてください（「チュートリアルのための環境構築」はとばしてもらって「Chapter 1: 既成のアプリを触ってみる」を参考に）。

[初心者向け Questetra チュートリアル：さぁ、Questetra をはじめよう！](https://support.questetra.com/ja/get-started/)


### ※Gemini との連携部品だけを使いたい場合

今回準備した Gemini との連携アドオン（追加部品）のファイルはこちらです。

https://drive.google.com/file/d/1HVXyd3S7F9leuK92ptBRJYtp9cjCB2of/view?usp=sharing

連携アドオン（追加部品）を取り込んで自分でフローを組んでみたい、という人は参考にアドオンを取り込んでください。

[Questetra マニュアル：M415: 業務プロセス定義で利用可能な自動工程を追加する](https://questetra.zendesk.com/hc/ja/articles/360002247792-M415)


### ※Gemini との API 連携の詳細に関して

API としては以下を呼び出しています。
https://generativelanguage.googleapis.com/v1beta/models/gemini-pro:generateContent?key=XXXXX

URL 内に /models/gemini-pro とモデルを指定している部分があるので、モデル指定を変えたい場合には URL のこの部分を変更することになるものと思われます。ちなみに OpenAI ChatGPT の場合はリクエスト送付時の JSON でモデルを指定しています。AOAI の場合は、デプロイ時にモデルを指定しているので、API としてはモデル指定はありません。この辺りはそれぞれ考え方が異なるようです。


# Questetra と他の生成AIとの連携

### OpenAI ChatGPT

OpenAI の ChatGPT との連携部品は標準搭載されています。

[Questetra 標準搭載のモデリング要素：OpenAI ChatGPT: チャット](https://support.questetra.com/ja/bpmn-icons/service-task-openai-chatgpt-chat/)

![gpt_builtin.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224441/1adc8419-c13e-d561-1997-aeeafe3dc342.png)


問合管理の内容により処理を振り分けたり、回答草稿作成・レビューさせる等、業務フローに組み込んだ事例を公開しています。以下の図は一例です。
※これらもインポートして試すことが可能です！

[Questetra ワークフローアプリサンプル：ChatGPT 等 OpenAI API との連携を含むサンプル等](https://support.questetra.com/ja/tag/openai-api-ja/)

![eyecatch-inquiry-response-20240130-ja.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224441/d0cb9d0b-baed-6e47-2c9f-50eea1f7ad7f.png)


### Azure OpenAI Service（AOAI）

データセキュリティを意識して Microsoft の Azure OpenAI Service（AOAI） を利用されることもあるかと思います。そういった場合向けに AOAI との連携アドオン（追加部品）も準備してあります。

[Questetra 追加モデリング要素：Azure OpenAI Service #Chat: パラメータ付き対話](https://support.questetra.com/ja/addons/azure-openai-service-chat-interact-with-parameters/)

![aoai_addon.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224441/2289b78e-8077-98f0-8d1a-e7f2d0f5ba51.png)


AOAI 連携を業務フローに組み込んだ事例も公開しています。以下は稟議作成を支援するケースです。
※ChatGPT とのワークフローアプリも、少しアレンジをすれば、AOAI 連携に変更できます

[Questetra ワークフローアプリサンプル：稟議プロセス, Azure OpenAI Service 作成アシスト](https://support.questetra.com/ja/templates/decision-making-request-20230906/)

![eyecatch-inquiry-response-20230906-ja.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224441/985a0776-fa55-2770-fbc6-2705f2d35e8e.png)


:::note info
補足情報です（20250111現在）

その他にも生成AI連携部品として以下が準備されています

・Amazon Bedrock: Anthropic Claude: チャット
https://support.questetra.com/ja/bpmn-icons/service-task-aws-bedrock-anthropic-claude-chat/

・OpenAI DALL-E: 画像生成
https://support.questetra.com/ja/bpmn-icons/service-task-openai-dalle-image-generate/

・Amazon Bedrock: Stable Diffusion: 画像生成
https://support.questetra.com/ja/bpmn-icons/service-task-aws-bedrock-stable-diffusion-image-generate/
:::


# まとめ

様々な生成AIサービスがあり、それぞれがどんどん進化しています。うまく使いこなして、業務をラクに・楽しくできるよう、今後もキャッチアップして情報を出していきます。