5
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

[Power BI] データをAzure Open AIで拡張しよう😀

Posted at

はじめに

2023年最後の投稿。
今年はChat GPTを中心に、社会にAIが普及した一年でした。Power BIやFabricでもCopilotが登場し、私の環境でも少しずつ触れるようになってきました。様々な場面でAIを活用することができるようになってきた昨今ですが、もちろんPower BIのレポート作成においても、Azure Open AIのAPIを利用してデータを拡張することが可能です。手元のデータをAIを利用して拡張すれば、さらに幅の広いレポート作成ができるようになります。

手順がわかれば、あとはプロンプトを書き換えるだけでいろいろなシナリオに対応できます。年末年始のお休みで試してみてください!

image.png
「Power BIとAI」 をテーマに、Microsoft Designerで作成。

やってみたこと

ブログのRSSを取得し、本文の内容をもとに、Azure Open AIに要約を作成してもらいます。

手順

  1. 事前準備
    • サンプルデータの準備
    • Azure Open AI のAPIを利用できるようにしておく
  2. パラメーターを作成
  3. 空のクエリを作成→詳細エディターで関数のひな型を作成する
  4. 関数を作成
  5. 用意したサンプルデータの列にカスタム関数列を作成

事前準備① サンプルデータ

日本マイクロソフト Power BI サポートチームのブログからRSSを取得します。

Japan CSS Support Power BI Blog
https://jpbap-sqlbi.github.io/blog/powerbi/pbi_activity_log_usage_metrics/

image.png

RSS.rss
https://jpbap-sqlbi.github.io/blog/atom.xml

RSSの読み込みは「Web」コネクターを利用します。 Power Query エディターの 新しいソース → Web と進みます。

image.png

取り込めたら、Table形式になっている列を適当に展開しておきましょう。 content列に記事全文が入っているのが確認できます。展開をしたうえで、「記事全文」と列名も変更しておきます。

image.png

事前準備② Azure Open AI APIのエンドポイントとKEYを取得する。

この辺のドキュメントを参考にAzure Open AIを利用できるようにしておく。

リソースを作成後に、エンドポイントとKEYは チャットプレイグラウンドの「コードを表示」 から取得できます。

image.png

image.png

パラメーターを作成する

サンプルデータとKEYが用意できたら、Azure Open AIを利用する準備を進めます。
Power Queryエディターのパラメーターの管理から、新規パラメーターを作成します。

パラメーター名や各種項目は、Azure Open AIに渡したいデータと合わせて任意に設定しましょう。今回は記事の要約を作成したいので、articleとし、型はテキストです。

image.png

パラメーターの作成が終わると、Power Query エディターはこんな感じで表示されています。

image.png

関数のもとになる「空のクエリ」を作成 → 詳細エディターで開いて編集

次に、このパラメーターを利用した関数のもとになるクエリを作成します。Power Query エディターの新しいソース → 空のクエリを選択します。

image.png

新たにできたクエリは「要約」という名前にしておきます。そのうえで、詳細エディター を開きます。以下のクエリを貼り付けて、<Endpoint-URL><API-KEY> は自身のものに置き換えます。パラメーター類も適切な数字に置き換えてください。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80467/5dd7ec06-af7b-064a-1c0f-4b666abc99e2.png

SystemRole、UserRoleのプロンプトと、各種パラメーターはご自身のシナリオに応じて自由に変更してください。パラメーター類の詳細はこちらを参照
https://learn.microsoft.com/ja-jp/azure/ai-services/openai/reference

let
    URL = "<Endpoint-URL>",
    Key = "<API-KEY>",
    Header = [#"Content-Type" = "application/json", #"api-key" = Key ],
    SystemRole = "{""role"": ""system"", ""content"": ""# 命令 あなたは優秀なAIアシスタントです。ブログURLを与えるので、それをもとに200文字以内で要約ください。HTMLタグはすべて除去して、日本語で回答してください。冒頭に「Microsoftの公式ウェブサイトに掲載されている記事です。」はつけなくていいです。## 制約条件 英語は日本語に翻訳すること。出力結果は必ず日本語にしてください。""}",
    UserRole = "{""role"": ""user"", ""content"":""" & article & """}",
    Contents = "{""messages"" : ["
        & SystemRole
        & ","
        & UserRole
        & "],
        ""temperature"": 0.4,
        ""top_p"": 0.95,
        ""frequency_penalty"": 0,
        ""presence_penalty"": 0,
        ""max_tokens"": 16000,
        ""stop"": null
        }",
    Response = Json.Document(
        Web.Contents(
            URL,
            [
                Headers = Header,
                Content=Text.ToBinary(Contents)
            ]
        )
    ),
    choices = Response[choices]{0}[message][content]
in
    choices

関数を作成

作成した「要約」クエリをもとに関数を作成します。右クリックして 「関数の作成」 をクリックします。

image.png

名前は「要約関数」にしておきましょう。

image.png

関数を作成すると自動的に今まで作成した成果物がフォルダに入ります。

image.png

関数をデータに適用する

作成した関数をデータに適用していきます。
「列の追加」 タブから 「カスタム関数の呼び出し」 をクリック。

image.png

新しく作成する列名、呼び出す関数、その関数を適用する列名を選択します。今回の場合は、新しく「記事要約」という列を作成。さきほど作成した要約する関数を、「記事全文」列に適用していきます。

image.png

要約完成

image.png

この記事が、以下のように要約されました。

Power BI Serviceでデータ更新を行う際に、メモリの制限を超えてしまうエラーが発生することがあります。このエラーが表示された場合、クエリや計算がメモリを多く使用している可能性があります。クエリや計算を単純化するか、Power BI Premiumを使用している場合は、容量管理者に連絡してクエリごとのメモリ制限を増やしてもらうことができます。詳細はリンク先をご確認ください。

まとめ

今回は200字での要約を支持していますが、これを文字数を増やしたり減らす、文体を固くする、柔らかくする、プロンプト次第で自由に変更可能です。場合によってはモデルを自社データを使用して拡張したりすれば、自由自在にデータ拡張が可能です。

2024年もPower BI(Fabric)とAzure Open AIに活躍してもらうことは多いと思いますが、引き続き楽しみながら勉強していきたいと思います😁

5
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?