Qlikのチャート画像をChatGPT APIに送ってみた

前回の記事(QlikとOpenAI APIをつないでみたら、自然言語でデータを聞けるようになった話)では、
QlikのデータをCSVとしてOpenAI APIに送り、自然言語で要約する仕組みを作りました。
今回はその応用編として、Qlikのチャート画像をAIに渡す実験をしてみました。

「グラフそのものをAIに読ませる」と、どんな分析が返ってくるのでしょうか?

目次

今回のゴール

  • Qlik Sense のチャート画像をAutomationで取得
  • 画像ファイルをS3に保存
  • 一時的なPresigned URLを発行
  • そのURLをOpenAI API(ChatGPT)に渡して、画像解析を実行

使用した環境とツール

Qlik CloudQlik Sense + Qlik Application Automation
OpenAI APIChatGPT 画像入力対応モデル(gpt-4o)
AWS S3画像の一時保存と公開URL発行

※OpenAI APIキーの登録方法は、前回の記事を参照してください。

Qlikのチャート作成

先に、Qliksenseのシートに、分析対象とするチャートを作っておきます。
前回の記事で作成したシート上に、簡単なパイチャートを作りました。

チャートIDが後ほど必要になるので、ここで確認しておきます。
チャートを右クリックすると、「共有」という選択肢があるのでそれをクリック、続いて「埋め込み」をクリック
以下のようなポップアップが表示されるので、赤線部分の「オブジェクトID:******」をメモしておきます。

フローの全体像

今回のAutomationはこんな構成

Start
Inputsシートからブックマーク情報受け取り
Apply Bookmarkアプリにブックマークを適用
Get Chart Imageチャートイメージ取得
Chek If File Exists on Amazon S3S3のファイル存在確認
Conditionファイル存在の有無で分岐
Delete File on Amazon S3ファイル削除
Copy File on Amazon S3S3へファイル保存
Create Presigned Object URL一時URL発行
Call URLAPI叩く
Update Variableアプリ変数更新
Save appアプリ保存

各ブロックについて

特に、あまり一般的ではなさそうなブロックについてのみ記載しておきます。

Inputs
Qliksenseのシートから値を受け取るのに使用します。
今回は、ブックマーク情報(シート上での、フィルター等の選択状態)が必要なので、その受け取りのために配置しています。設定内容は、
label:bookmark
input type: Single input line
です。

Apply Bookmark
Automation上で、シートのチャートを再現するため、ブックマーク情報を適用します。
ここでは対象のAppを選択し、Inputsで取得したブックマークIDを指定するだけです

Get Chart Image
チャートイメージを取得します *このブロックは、Qlik Reportingグループ内にあります
ここで、メモしておいたチャートIDを指定します

Create Presigned Object URL
S3にアップロードした画像の、一時URLを発行します。
Expiration(URLの有効期限)の指定をする必要がありますが、一般的にはseconds単位だと思うのですが
ここでは “+20 minutes”という記法で記述する必要がありました。

Call URL
APIを叩きます。ここでは、一時URLの画像を読み込ませたいので、bodyは以下のようになります

{
"model": "gpt-4o",
"messages": [
{
"role": "system",
"content": "あなたはデータアナリストです。グラフを読み取って、要約を日本語で出力してください。"
},
{
"role": "user",
"content": [
{ "type": "text", "text": "このチャートから読み取れるインサイトを簡潔に説明してください。" },
{
"type": "image_url",
"image_url": { "url": "{{Presigned URLの出力}}" }
}
]
}
],
"max_tokens": 300
}

動かしてみる

シートに、Automationを起動するボタンを配置したら、あとは実行するだけです

パイチャートをChatGPTが読み取り、見事に分析結果を文字で返してくれました。
AIがチャートの形そのものを見て、傾向や特徴を自然言語で説明してくれるのが新鮮です。

まとめ

今回の実験では、
Qlikのチャート画像をAPI経由でAIに渡す仕組みを作ってみました。

  • Qlik → Automationでチャート画像取得
  • S3に一時保存 → Presigned URL発行
  • ChatGPT(gpt-4o)に画像URLを渡して解析

という流れで、**「AIがグラフを読んで説明する」**ところまで自動化できました。
今後は、

  • レポート自動生成(複数チャートの要約)
  • ダッシュボード内AIコメント機能などに発展させたいと思います。
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

目次