コルネの進捗や備忘録が記されたなにか

進捗や成果物や備忘録てきななにかを雑に更新していきます。

Azure OpenAI Service On Your Dataを試してみる


スポンサードリンク

はじめに

Azure OpenAI Service On Your Dataをいまだに試せていなかったのでいい機会なので試してみたレポです。

参考文献

techcommunity.microsoft.com

learn.microsoft.com

learn.microsoft.com

リソースの作成

まずは https://portal.azure.com/#create/Microsoft.CognitiveServicesOpenAI よりリソースの作成を行います。

そんなに難しいことはないので割愛。

最近日本リージョン(Japan East)も作成できるようになりましたね。

ただ、Japan Eastがどのモデルを利用可能なのか?現時点では公式ドキュメントが更新されておらずわからないですね。

learn.microsoft.com

試しにデプロイしてみてみましたが、利用できるモデルはまだないっぽいですね。

今ならEast USあたりが検証で利用するなら無難なんじゃないですかね?

この記事ではEast USを利用しています。

モデルのデプロイ

Azure OpenAI StudioAzure OpenAI Studio - Microsoft Azureよりモデルのデプロイを行います。

公式ドキュメントの注意にて、

注意
開始するためには、Azure OpenAI へのアクセスが既に承認されており、gpt-35-turbo または gpt-4 モデルがデプロイされた Azure OpenAI Service リソースがある必要があります。

と記載があるので、"gpt-35-turbo"をデプロイしました。

独自データの登録

「プライグラウンド」 > 「チャット」 > 「Add your data (preview)」より「Add a data source」を選択します。

選択可能なデータソースは現在3つ用意されています。

  • Azure Cognitive Search
  • Azure Blob Storage
  • Upload files

今回は"Upload files"を選択します。

Data sourceで"Upload files"を選択した場合は、

  • Blob storage
  • Cognitive Search

が必要になってきますが、

という制限に気を付けてください。

Data source, Blob, Cognitive Searchを選択したら次はファイルのアップロードです。

アップロードするファイルは以下のファイル形式である必要があります。

また、ファイルサイズは16MB以下である必要があります。

適当にドキュメント作成してみたのでこれらで試してみます。

あとは保存して閉じると、以下のようにデータの追加が行われるので完了するまで少し待ちましょう。

完了したら早速チャットを打って試してみましょう。

まずはChatGPTに作成してもらったGitHubアカウントの作成申請手順(Markdown)が引っかかるか試してみます。

結果はご覧の通り。

"reference"を選択すると、参考ドキュメントが表示されます。

他にも試してみましょう!

パワポの資料だったのですが、いい感じですね!

"reference"が2つありますが、関連するページが2つあるから引っかかったっぽいですね。

Part 1

Part 2

パワポの資料はこんな感じ。

パブリックとプライベートについて解説と、作成方法がある感じですね。

さすがにパワポのサムネは表示してくれないっぽいですね。

記載内容は考えるの面倒だったのでAvePointさんのこちらの記事を引用させてもらいました。
Teams におけるチームの作成方法とは?注意すべきポイントも解説 - AvePoint Blog

ちなみにこれらのやり取りのJSON結果はこんな感じです。

[
    {
        "role": "system",
        "content": "You are an AI assistant that helps people find information."
    },
    {
        "role": "user",
        "content": "GitHubアカウントを作成するにはどうすればよいですか?"
    },
    {
        "role": "assistant",
        "content": "GitHubアカウントを作成するには、以下の手順を実行してください:\n\n1. GitHubのウェブサイト([https://github.com](https://github.com))にアクセスしてください。\n2. \"Sign Up\"(サインアップ)ボタンをクリックしてください。\n3. 必要な情報を入力し、アカウント登録を完了させてください。以下の情報が必要です:\n   - ユーザー名(Username):社内の一般的なユーザー名を選択するか、プロジェクトと関連付けられた個人名を使用してください。\n   - パスワード(Password):強力なパスワードを選択し、定期的に変更するようにしてください。他のサービスのパスワードとは異なるものを使用してください。\n   - メールアドレス(Email address):会社のメールアドレスを使用してください。\n   - その他の詳細情報を入力してください。\n4. GitHubの利用規約とプライバシーポリシーに同意し、登録を完了させてください。\n\nこれでGitHubアカウントの作成が完了しました。GitHubを使用してコードの共有やバージョン管理などの作業を行うことができます。\n\n[doc2]"
    },
    {
        "role": "user",
        "content": "Teamsのプライベートチャネルの作成を行いたいです。"
    },
    {
        "role": "assistant",
        "content": "Teamsのプライベートチャネルを作成するには、以下の手順を実行してください:\n\n1. Teamsアプリケーションを開きます。\n2. チームの一覧から、プライベートチャネルを作成したいチームを選択します。\n3. チームのヘッダーの下にある「チャネルの追加」アイコンをクリックします。\n4. 「プライベートチャネルの作成」を選択します。\n5. チャネルの名前と説明を入力します。\n6. プライベートチャネルにアクセスできるメンバーを選択します。\n7. 「作成」をクリックして、プライベートチャネルを作成します。\n\nこれでTeamsのプライベートチャネルの作成が完了しました。プライベートチャネルを使用して、特定のメンバーとのコミュニケーションやプロジェクトの管理を行うことができます。\n\n[doc1] [doc2]"
    }
]

ちなみにこの操作により、Blobにファイルが作成されて、Cognitive Searchにインデックスが作成されます。

呼び出してみる

Postmanから呼び出す

こちらの公式ドキュメントを参考に呼び出しを行っていきます。

learn.microsoft.com

呼び出しを行うには以下の変数が必要だと案内されています。

ただ、"ChatGptUrl"と"ChatGptKey"はAOAIのリソース名とキー、デプロイ名で作成できるので、変数は全部で6つで済みますね。

一応上記環境変数を作成するJSONはこちら。

{
    "id": "74f5dc99-3531-434e-a291-e1d613aff209",
    "name": "Azure OpenAI Services",
    "values": [
        {
            "key": "AOAI-resorceName",
            "value": "[Please Input Your Value]",
            "type": "default",
            "enabled": true
        },
        {
            "key": "AOAI-deploymentName",
            "value": "[Please Input Your Value]",
            "type": "default",
            "enabled": true
        },
        {
            "key": "AOI-apiKey",
            "value": "[Please Input Your Value]",
            "type": "secret",
            "enabled": true
        },
        {
            "key": "Cognitive-Search-resorceName",
            "value": "[Please Input Your Value]",
            "type": "default",
            "enabled": true
        },
        {
            "key": "Cognitive-Search-apiKey",
            "value": "[Please Input Your Value]",
            "type": "secret",
            "enabled": true
        },
        {
            "key": "Cognitive-Search-indexName",
            "value": "[Please Input Your Value]",
            "type": "secret",
            "enabled": true
        }
    ],
    "_postman_variable_scope": "environment",
    "_postman_exported_at": "2023-07-23T06:46:47.107Z",
    "_postman_exported_using": "Postman/10.15.8"
}

これらの情報を元にリクエストを投げると以下のようになります。

POST https://{{AOAI-resorceName}}/openai/deployments/{{AOAI-deploymentName}}/extensions/chat/completions?api-version=2023-06-01-preview

Header

Content-Type:application/json
api-key:{{AOI-apiKey}}
chatgpt_url:https://{{AOAI-resorceName}}/openai/deployments/{{AOAI-deploymentName}}/chat/completions?api-version=2023-03-15-preview
chatgpt_key:{{AOI-apiKey}}

Body

{
    "dataSources": [
        {
            "type": "AzureCognitiveSearch",
            "parameters": {
                "endpoint": "https://{{Cognitive-Search-resorceName}}.search.windows.net",
                "key": "{{Cognitive-Search-apiKey}}",
                "indexName": "{{Cognitive-Search-indexName}}"
            }
        }
    ],
    "messages": [
        {
            "role": "user",
            "content": "Teamsのプライベートチャネルの作成を行いたいです。"
        }
    ]
}

これをPOSTすると以下のような結果が返ってきます。

結果

{
 {
    "id": "c9444215-fae1-4c17-bc1a-3e5dd065e9a1",
    "model": "gpt-35-turbo-16k",
    "created": 1690094538,
    "object": "chat.completion",
    "choices": [
        {
            "index": 0,
            "messages": [
                {
                    "index": 0,
                    "role": "tool",
                    "content": "{\"citations\": [{\"content\": \"\継\続\的\な\監\視\と\リ\ソ\ー\ス\の\最\適\な\利\用\を\促\進\す\る\た\め\に\、\定\期\的\なSubscription\の\レ\ビ\ュ\ー\と\更\新\を\行\っ\て\く\だ\さ\い\。\\n3. \サ\ブ\ス\ク\リ\プ\シ\ョ\ン\管\理\\n1. Subscription\所\有\者\は\、\リ\ソ\ー\ス\の\適\切\な\管\理\と\セ\キ\ュ\リ\テ\ィ\を\確\保\す\る\責\任\が\あ\り\ま\す\。\不\要\な\リ\ソ\ー\ス\を\削\除\し\、\セ\キ\ュ\リ\テ\ィ\設\定\を\定\期\的\に\確\認\し\て\く\だ\さ\い\。\\n2. \重\要\な\リ\ソ\ー\ス\に\は\適\切\な\タ\グ\を\付\け\、\コ\ス\ト\管\理\と\レ\ポ\ー\ト\作\成\を\容\易\に\し\て\く\だ\さ\い\。\\n3. \組\織\全\体\の\ガ\バ\ナ\ン\ス\ポ\リ\シ\ー\に\従\っ\て\、\リ\ソ\ー\ス\の\設\定\と\ア\ク\セ\ス\権\を\適\切\に\管\理\し\て\く\だ\さ\い\。\\n4. \定\期\的\な\監\査\と\コ\ス\ト\最\適\化\の\取\り\組\み\を\行\い\、\無\駄\な\リ\ソ\ー\ス\使\用\を\防\止\し\て\く\だ\さ\い\。\\n\こ\の\資\料\は\、Azure Subscription\の\申\請\手\順\と\ル\ー\ル\に\関\す\る\も\の\で\す\。\適\切\な\承\認\と\コ\ス\ト\管\理\を\行\い\、\セ\キ\ュ\リ\テ\ィ\を\確\保\し\な\が\らAzure\リ\ソ\ー\ス\を\効\果\的\に\活\用\し\て\く\だ\さ\い\。\も\し\さ\ら\な\る\質\問\や\不\明\点\が\あ\る\場\合\は\、\遠\慮\な\く\お\知\ら\せ\く\だ\さ\い\。\", \"id\": null, \"title\": \"\内\容\", \"filepath\": \"Apply for Subscription.docx\", \"url\": \"https://[BlobStorage].blob.core.windows.net/fileupload-[CognitiveSearchIndex]/Apply%20for%20Subscription.docx\", \"metadata\": {\"chunking\": \"orignal document size=521. Scores=7.3893723 and None.Org Highlight count=63.\"}, \"chunk_id\": \"0\"}, {\"content\": \"Teams\チ\ー\ム\作\成\ル\ー\ル\\n\更\新\日: 2023/07/20\\n\プ\ラ\イ\ベ\ー\ト\チ\ー\ム\と\は\\n\プ\ラ\イ\ベ\ー\ト\チ\ー\ム\は\、\メ\ン\バ\ー\追\加\に\制\限\を\持\た\せ\る\こ\と\で\個\別\の\や\り\取\り\が\可\能\な\チ\ー\ム\で\す\。\よ\っ\て\プ\ラ\イ\ベ\ー\ト\チ\ー\ム\の\存\在\は\、\管\理\者\と\所\属\す\る\メ\ン\バ\ー\以\外\は\確\認\で\き\ま\せ\ん\。\プ\ラ\イ\ベ\ー\ト\チ\ー\ム\に\新\た\な\メ\ン\バ\ー\を\追\加\す\る\方\法\は\次\の 3 \つ\で\す\。 \\n\チ\ー\ム\所\有\者\に\よ\る\メ\ン\バ\ー\追\加 \\n\メ\ン\バ\ー\か\ら\追\加\の\リ\ク\エ\ス\ト\を\チ\ー\ム\所\有\者\に\依\頼\し\、\承\認\を\受\け\る \\n\チ\ー\ム\所\有\者\の\み\が\知\る\「\コ\ー\ド\」\を\伝\え\る \\n\プ\ラ\イ\ベ\ー\ト\チ\ー\ム\は\、\部\や\プ\ロ\ジ\ェ\ク\ト\と\い\っ\た\範\囲\よ\り\も\さ\ら\に\小\さ\な\範\囲\で\利\用\し\や\す\い\種\類\と\い\え\ま\す\<e3><80><82> \\n\パ\ブ\リ\ッ\ク\チ\ー\ム\と\は\\n\パ\ブ\リ\ッ\ク\チ\ー\ム\は\、\誰\で\も\参\加\で\き\る\チ\ー\ム\で\す\。\前\述\し\た\プ\ラ\イ\ベ\ー\ト\チ\ー\ム\と\は\対\照\的\に\、\メ\ン\バ\ー\の\追\加\に\一\切\の\制\限\が\あ\り\ま\せ\ん\。 \\n\パ\ブ\リ\ッ\ク\チ\ー\ム\に\は\、\組\織\内\に\所\属\す\る\ユ\ー\ザ\ー\で\あ\れ\ば\チ\ー\ム\所\有\者\の\承\認\を\要\す\る\こ\と\な\く\、\誰\で\も\参\加\で\き\ま\す\。 \\n\ま\た\、\プ\ラ\イ\ベ\ー\ト\チ\ー\ム\の\作\成\後\も\「\プ\ラ\イ\バ\シ\ー\設\定\」\を\変\更\す\れ\ば\、\パ\ブ\リ\ッ\ク\チ\ー\ム\に\移\行\で\き\る\の\で\す\。\プ\ラ\イ\バ\シ\ー\設\定\の\変\更\方\法\は\、\以\下\を\チ\ェ\ッ\ク\し\て\く\だ\さ\い\。 \\n\チ\ー\ム\名\に\移\動 \\n\「\そ\の\他\の\オ\プ\シ\ョ\ン\」\を\選\択 \\n \メ\ニ\ュ\ー\の\下\部\に\あ\る\「\チ\ー\ム\の\編\集\」\を\選\択 \\n\「\パ\ブ\リ\ッ\ク\」\ま\た\は\「\プ\ラ\イ\ベ\ー\ト\」\を \選\択 \\n\パ\ブ\リ\ッ\ク\チ\ー\ム\は\誰\で\も\参\加\で\き\る\も\の\で\あ\る\だ\け\に\、\チ\ー\ム\内\で\の\や\り\と\り\や\情\報\の\扱\い\に\は\注\意\が\必\要\で\す\。 \\n\プ\ラ\イ\ベ\ー\ト\チ\ー\ム\の\作\成\方\法\\n\「Teams\」\の\ア\イ\コ\ン\を\選\択 \\n\チ\ー\ム \リ\ス\ト\の\下\部\に\あ\る\「\チ\ー\ム\参\加\」\ま\た\は\「\チ\ー\ム\の\作\成\」\を\選\択 \\n\「\チ\ー\ム\の\作\成\」\カ\ー\ド\に\カ\ー\ソ\ル\を\合\わ\せ\、\チ\ー\ム\の\「\参\加\」\ま\た\は\「\作\成\す\る \」\を\選\択 \\n\「\ゼ\ロ\か\ら\」\を\選\択 \\n\「\プ\ラ\イ\ベ\ー\ト\」\を\選\択 \\n\チ\ー\ム\の\名\前\を\入\力 \\n\完\了\し\た\な\ら\ば\「\作\成\」\を\選\択\", \"id\": null, \"title\": \"Teams\チ\ー\ム\作\成\ル\ー\ル\", \"filepath\": \"\チ\ー\ム\作\成\方\法.pptx\", \"url\": \"https://[BlobStorage].blob.core.windows.net/fileupload-[CognitiveSearchIndex]/%E3%83%81%E3%83%BC%E3%83%A0%E4%BD%9C%E6%88%90%E6%96%B9%E6%B3%95.pptx\", \"metadata\": {\"chunking\": \"orignal document size=984. Scores=6.312032 and None.Org Highlight count=82.\"}, \"chunk_id\": \"0\"}, {\"content\": \"<p>GitHub\ア\カ\ウ\ン\ト\作\成\に\関\す\る\ル\ー\ル</p>\\n<ol>\\n<li>\社\内\で\の\ア\カ\ウ\ン\ト\名\は\、\プ\ロ\ジ\ェ\ク\ト\や\チ\ー\ム\と\関\連\し\て\い\る\こ\と\が\望\ま\し\い\で\す\が\、\個\人\を\特\定\す\る\個\人\名\を\含\む\こ\と\は\避\け\て\く\だ\さ\い\。</li>\\n<li>\ア\カ\ウ\ン\ト\の\パ\ス\ワ\ー\ド\は\定\期\的\に\変\更\し\て\く\だ\さ\い\。\他\の\サ\ー\ビ\ス\と\同\じ\パ\ス\ワ\ー\ド\を\使\用\し\な\い\で\く\だ\さ\い\。</li>\\n<li>\組\織\や\チ\ー\ム\が\共\有\の\リ\ポ\ジ\ト\リ\を\作\成\す\る\場\合\は\、\適\切\な\権\限\設\定\を\行\っ\て\く\だ\さ\い\。\不\必\要\な\情\報\が\共\有\さ\れ\な\い\よ\う\に\注\意\し\て\く\だ\さ\い\。</li>\\n<li>\セ\キ\ュ\リ\テ\ィ\上\の\理\由\か\ら\、\他\の\メ\ン\バ\ー\のGitHub\ア\カ\ウ\ン\ト\を\不\正\に\使\用\す\る\こ\と\は\厳\禁\で\す\。</li>\\n<li>\ア\カ\ウ\ン\ト\に\関\す\る\問\題\が\発\生\し\た\場\合\は\、\す\ぐ\に\セ\キ\ュ\リ\テ\ィ\担\当\者\に\連\絡\し\て\く\だ\さ\い\。</li>\\n</ol>\\n<hr />\\n<p>\こ\の\ド\キ\ュ\メ\ン\ト\は\、GitHub\ア\カ\ウ\ン\ト\の\作\成\方\法\と\ル\ー\ル\に\つ\い\て\説\明\し\て\い\ま\す\。\ア\カ\ウ\ン\ト\の\作\成\や\管\理\に\際\し\て\は\、\セ\キ\ュ\リ\テ\ィ\と\プ\ラ\イ\バ\シ\ー\を\重\視\し\、\社\内\の\ル\ー\ル\に\従\っ\て\適\切\に\行\っ\て\く\だ\さ\い\。\も\し\疑\問\点\や\問\題\が\あ\る\場\合\は\、\い\つ\で\も\質\問\し\て\く\だ\さ\い\。</p>\", \"id\": null, \"title\": \"GitHub\ア\カ\ウ\ン\ト\作\成\手\順\と\ル\ー\ル\", \"filepath\": \"Create-Account.md\", \"url\": \"https://[BlobStorage].blob.core.windows.net/fileupload-[CognitiveSearchIndex]/Create-Account.md\", \"metadata\": {\"chunking\": \"orignal document size=586. Scores=5.996308 and None.Org Highlight count=80.\"}, \"chunk_id\": \"0\"}, {\"content\": \"\内\容\\nAzure Subscription\申\請\ル\ー\ル\\t2\\n1. \申\請\手\順\\t2\\n2. Subscription\申\請\ル\ー\ル\\t2\\n3. \サ\ブ\ス\ク\リ\プ\シ\ョ\ン\管\理\\t2\\nAzure Subscription\申\請\ル\ー\ル\\n\こ\の\資\料\は\、\社\内\メ\ン\バ\ー\がAzure Subscription\を\申\請\し\、\使\用\す\る\際\の\手\順\と\ル\ー\ル\を\定\め\た\も\の\で\す\。\\n1. \申\請\手\順\\n1. Azure Portal\に\ア\ク\セ\ス\し\て\く\だ\さ\い\。\\n2. \「Subscriptions\」\(\サ\ブ\ス\ク\リ\プ\シ\ョ\ン\)\セ\ク\シ\ョ\ン\に\移\動\し\、\「+ Add\」\(\追\加\)\ボ\タ\ン\を\ク\リ\ッ\ク\し\ま\す\。\\n3. \要\件\に\応\じ\て\、\新\し\いSubscription\を\作\成\す\る\か\、\既\存\のSubscription\に\参\加\(\加\入\)\す\る\か\を\選\択\し\ま\す\。\\n4. \必\要\な\情\報\を\入\力\し\、\申\請\を\完\了\し\て\く\だ\さ\い\。\\n\· Subscription\タ\イ\プ: \プ\ロ\ダ\ク\シ\ョ\ン\環\境\や\テ\ス\ト\用\途\な\ど\、\適\切\な\タ\イ\プ\を\選\択\し\て\く\だ\さ\い\。\\n\· \請\求\情\報: \申\請\時\に\適\切\な\請\求\情\報\を\提\供\し\て\く\だ\さ\い\。\\n\· \リ\ソ\ー\ス\制\限: \利\用\可\能\な\リ\ソ\ー\ス\制\限\に\つ\い\て\は\、\適\切\な\範\囲\内\で\申\請\し\て\く\だ\さ\い\。\\n\· \管\理\者\ア\ク\セ\ス: \必\要\に\応\じ\て\、Subscription\の\管\理\者\を\指\定\し\て\く\だ\さ\い\。\\n2. Subscription\申\請\ル\ー\ル\\n1. Subscription\の\作\成\・\参\加\は\、\必\要\な\プ\ロ\ジ\ェ\ク\ト\や\タ\ス\ク\が\あ\り\、\か\つ\承\認\さ\れ\た\場\合\に\の\み\許\可\さ\れ\ま\す\。\無\駄\なSubscription\の\作\成\を\避\け\る\た\め\に\、\理\由\が\明\確\に\説\明\さ\れ\て\い\る\こ\と\が\求\め\ら\れ\ま\す\。\\n2. \新\し\いSubscription\を\作\成\す\る\場\合\、\所\属\す\る\プ\ロ\ジ\ェ\ク\ト\の\責\任\者\ま\た\は\上\司\か\ら\の\承\認\が\必\要\で\す\。\そ\の\際\に\は\、\承\認\者\の\氏\名\と\電\子\メ\ー\ル\ア\ド\レ\ス\を\申\請\フ\ォ\ー\ム\に\記\載\し\て\く\だ\さ\い\。\\n3. Subscription\の\利\用\に\関\連\す\る\費\用\は\、\プ\ロ\ジ\ェ\ク\ト\予\算\内\で\管\理\さ\れ\る\必\要\が\あ\り\ま\す\。\利\用\が\終\了\し\た\場\合\、Subscription\は\必\要\に\応\じ\て\削\除\す\る\よ\う\に\し\て\く\だ\さ\い\。\\n4. \組\織\全\体\の\セ\キ\ュ\リ\テ\ィ\を\確\保\す\る\た\め\に\、\パ\ス\ワ\ー\ド\と\認\証\情\報\は\適\切\に\管\理\し\、\他\の\メ\ン\バ\ー\と\共\有\し\な\い\よ\う\に\し\て\く\だ\さ\い\。\\n5\", \"id\": null, \"title\": \"\内\容\", \"filepath\": \"Apply for Subscription.docx\", \"url\": \"https://[BlobStorage].blob.core.windows.net/fileupload-[CognitiveSearchIndex]/Apply%20for%20Subscription.docx\", \"metadata\": {\"chunking\": \"orignal document size=996. Scores=5.4509835 and None.Org Highlight count=96.\"}, \"chunk_id\": \"1\"}, {\"content\": \"\こ\こ\で\設\定\す\る\初\期\メ\ン\バ\ー\以\外\に\も\、\後\か\ら\メ\ン\バ\ー\の\追\加\が\可\能\で\す\。\ま\た\、\追\加\す\る\メ\ン\バ\ー\に\対\し\て\「\所\有\者\の\権\限\」\も\付\与\で\き\ま\す\。 \\n\パ\ブ\リ\ッ\ク\チ\ー\ム\の\作\成\方\法\\n\「Teams\」\の\ア\イ\コ\ン\を\選\択 \\n\チ\ー\ム \リ\ス\ト\の\下\部\に\あ\る\「\チ\ー\ム\参\加\」\ま\た\は\「\チ\ー\ム\の\作\成\」\を\選\択 \\n\「\チ\ー\ム\の\作\成\」\カ\ー\ド\に\カ\ー\ソ\ル\を\合\わ\せ\、\チ\ー\ム\の\「\参\加\」\ま\た\は\「\作\成\す\る \」\を\選\択 \\n\「\ゼ\ロ\か\ら\」\を\選\択 \\n\「\パ\ブ\リ\ッ\ク\」\を\選\択 \\n\チ\ー\ム\の\名\前\を\入\力 \\n\完\了\し\た\な\ら\ば\「\作\成\」\を\選\択 \\n\メ\ン\バ\ー\を\追\加\し\た\い\と\き\、\パ\ブ\リ\ッ\ク\チ\ー\ム\の\場\合\は\メ\ン\バ\ー\か\ら\の\参\加\依\頼\を\待\つ\か\、\必\要\に\応\じ\て\メ\ン\バ\ー\を\追\加\す\る\だ\け\で\す\。\", \"id\": null, \"title\": \"Teams\チ\ー\ム\作\成\ル\ー\ル\", \"filepath\": \"\チ\ー\ム\作\成\方\法.pptx\", \"url\": \"https://[BlobStorage].blob.core.windows.net/fileupload-[CognitiveSearchIndex]/%E3%83%81%E3%83%BC%E3%83%A0%E4%BD%9C%E6%88%90%E6%96%B9%E6%B3%95.pptx\", \"metadata\": {\"chunking\": \"orignal document size=363. Scores=5.151559 and None.Org Highlight count=39.\"}, \"chunk_id\": \"1\"}], \"intent\": \"[\\\"Teams\の\プ\ラ\イ\ベ\ー\ト\チ\ャ\ネ\ル\の\作\成\方\法\を\教\え\て\く\だ\さ\い\。\\\"]\"}",
                    "end_turn": false
                },
                {
                    "index": 1,
                    "role": "assistant",
                    "content": "Teamsのプライベートチャネルの作成方法については、以下の手順を参考にしてください。\n\n1. Teams アプリを開きます。\n2. チームを選択します。\n3. チームのタブから「チャネル」を選択します。\n4. 「新しいチャネルを追加」をクリックします。\n5. チャネル名と説明を入力します。\n6. 「プライベート」オプションを選択します。\n7. チャネルにアクセスするメンバーを選択します。\n8. 「作成」をクリックして、プライベートチャネルを作成します。\n\nこれにより、プライベートチャネルが作成され、選択したメンバーのみがアクセスできるようになります。\n\n[doc1]",
                    "end_turn": true
                }
            ]
        }
    ]
}

一部省略しています。

choices/messages/content内に検索するドキュメントの情報が入っていますね。

Power Automateから呼び出す

Postmanから呼び出すのと大差ないです。

作成アクションで必要な変数を作成しています。

ちゃんとやるなら環境変数にしたほうがいいですね。

learn.microsoft.com

learn.microsoft.com

今回はわざわざソリューションでやるのめんどうだったので割愛。

あとはこれらの情報をもとにPOSTを行うだけですね。

URI

https://@{outputs('AOAI-resorceName')}/openai/deployments/@{outputs('AOAI-deploymentName')}/extensions/chat/completions?api-version=2023-06-01-preview

ヘッダー

{
    "Content-Type": "application/json",
    "api-key": @{outputs('AOI-apiKey')},
    "chatgpt_url": "https://@{outputs('AOAI-resorceName')}/openai/deployments/@{outputs('AOAI-deploymentName')}/chat/completions?api-version=2023-03-15-preview",
    "chatgpt_key": @{outputs('AOI-apiKey')}
}

Body

{
    "dataSources": [
        {
            "type": "AzureCognitiveSearch",
            "parameters": {
                "endpoint": "https://@{outputs('Cognitive-Search-resorceName')}.search.windows.net",
                "key": "@{outputs('Cognitive-Search-apiKey')}",
                "indexName": "@{outputs('Cognitive-Search-indexName')}"
            }
        }
    ],
    "messages": [
        {
            "role": "user",
            "content": "Teamsのプライベートチャネルの作成を行いたいです。"
        }
    ]
}

おわりに

こちらの方法を利用することで、Blobにファイルをアップロードして、Cognitive Searchにインデックスを付与する。
という一連の操作を自動でやってくれるようになります。

7/29(土) & 7/30(日)にAzure OpenAI のハッカソンがありますので、こちらも興味ある方はご参加してくださいねー
katte.connpass.com

事前学習としては現在"Microsoft Learn AI Skills Challenge"というものが開催されていますのでこちらでの学習が役に立つかと思います!

aka.ms

いくつかコンテンツがありますが、今回ですと"Cognitive Services Challenge"が丁度いいですかね。


スポンサードリンク