はじめに
Microsoftが提供するクラウドサービスのAzureではサービスのアップデートや廃止など日々更新が行われています。
特にMicrosoftの新技術や新サービスを発表するMicrosoft Igniteの期間中には、約70件の更新情報が発表されました。
日々、業務でクラウドサービスを使用する中で各種サービスの更新情報を追うのは非常に重要である反面、更新情報だけでは「数が多すぎて追いきれない」、「結局どう変わったかが分からない」などの問題が生じると思います。
そこで、Azureの更新情報をデータソースとしたRAGを構築し、情報の収集と要約をするチャットボットを構築してみたので、その話をまとめます。
Azureの更新情報とは
まず、今回データソースとするのは公式が提供している「Azureの更新情報」についてです。
以下リンクにて閲覧が可能です。
リンクを踏むと以下のスクリーンショットのように更新情報の一覧が表示されます。

RAGについて
※RAGに関する詳細な説明は本記事では省略します。
次にRAGについてです。RAGとはRetrieval-Augmented Generationの略で日本語では「検索拡張生成」と訳される手法のことです。LLMが外部の知識ベースやデータベースを検索し、その結果を動的に参照しながら回答を生成することで、最新情報や専門的な情報に基づいた応答を可能にするアーキテクチャのことを指します。
サービス構成図
主要なサービスと今回の構成における責務は以下の通りです。
- Azure AI Search
データソースの蓄積、及び、回答に用いる情報の検索を担う - Azure OpenAI Service
ユーザーからの質問の理解や回答文の生成などLLMの動作を担う - Azure Container Apps environment(ACA環境)
ACAの動作やネットワーク制御を担う - Azure Container Apps(ACA)
ユーザーインターフェースの提供、及び、各種サービスへの指示を担う - Azure Container Registry(ACR)
ACAのコンテナイメージを格納するレジストリを担う
今回は実験的に構築するためACAを用いた最小限の構成を目指し、コンテナアプリ1つで構築する方針とします。
手順
ここからは実際に構築する際の手順になります。
クラウドリソースのデプロイ
- VNetをデプロイ(サブネットも作成)
- Azure AI Searchをデプロイ(インデックスも作成)
フィールドは「title」、「link」、「description」、「date」と定義 - Azure OpenAI Serviceをデプロイ
- ACA環境をデプロイ
- ACRをデプロイ
- ACRにコンテナイメージをpush
- ACAをデプロイ
ローカルPCでデータソースの準備、及び、登録
-
更新情報の取得
以下の赤枠をクリックしRSSフィードが公開されているページを開いて、画面上のテキストを全選択しローカルPCに「任意のファイル名.xml」として保存する。

以下はRSSフィードの例になります。
※非常に長いので抜粋した情報です。<?xml version="1.0" encoding="utf-8"?> <rss xmlns:a10="http://www.w3.org/2005/Atom" version="2.0"> <channel> <title>Azure service updates</title> <link>https://www.microsoft.com/releasecommunications/api/v2/Azure/rss</link> <description>Azure service updates</description> <lastBuildDate>Wed, 11 Mar 2026 18:00:35 Z</lastBuildDate> <ttl>1440</ttl> <item> <guid isPermaLink="false">558145</guid> <link>https://azure.microsoft.com/updates?id=558145</link> <category>Launched</category> <category>Databases</category> <category>Hybrid + multicloud</category> <category>Azure Database for PostgreSQL</category> <category>Features</category> <title>[Launched] Generally Available: Terraform, Bicep, Ansible support for elastic clusters on Azure Database for PostgreSQL </title> <description>You can now provision and manage Azure Database for PostgreSQL elastic clusters using Terraform, Bicep, and Ansible, with full General Availability support. With native infrastructure-as-code support, you can consistently create, scale, and manage elastic</description> <pubDate>Wed, 11 Mar 2026 18:00:35 Z</pubDate> <a10:updated>2026-03-11T18:00:35Z</a10:updated> </item> <item> <guid isPermaLink="false">558140</guid> <link>https://azure.microsoft.com/updates?id=558140</link> <category>Launched</category> <category>Databases</category> <category>Hybrid + multicloud</category> <category>Azure Database for PostgreSQL</category> <category>Features</category> <title>[Launched] Generally Available: Azure Database for PostgreSQL dashboards with Grafana </title> <description>You can now monitor your Azure Database for PostgreSQL with rich, built-in Grafana dashboards—right from the Azure portal. This native integration with Azure Monitor means you no longer need to set up or manage a separate Grafana instance to get deep visi</description> <pubDate>Wed, 11 Mar 2026 18:00:35 Z</pubDate> <a10:updated>2026-03-11T18:00:35Z</a10:updated> </item> ・ ・ ・Visual Studio Codeの拡張機能「XML Tools」をインストールし、以下ショートカットで成型すると見やすくなります。
Windows:Shift+Alt+F
MacOS:Shift+Option+F
Linux:Ctrl+Shift+I -
インデックス登録
ローカルPCに保存したXMLファイルを作成済みのインデックスに合うように整形し、インデックスへ登録を行う。今回はChatGPTにXMLファイルとインデックスの要件を伝えて作成したpythonスクリプトを使用することにしました。ChatGPTに入力した例文 xmlファイルを参照し、Azure AI Searchのインデックスに登録するようなpythonスクリプトを作成して - (例)XMLファイル内のエレメント → Azure AI Searchのフィールド - title → title - link → link - description → description - pubDate → dateRSSフィードのリンクを提示して、pythonスクリプトの作成を指示したところ上手くいかなかったので、xmlファイルに転記してから参照することで、上手く生成されました。
結果
実際にACAのコンソール上で以下のコマンドを実行することで、質問に対する回答が生成されました。
curl -s http://localhost:8080/chat \
-H "Content-Type: application/json" \
-d '{"message": "AKSについて教えて", "top_k": 10, "mode": "summary"}' \
| python3 -c "import sys, json; print(json.loads(sys.stdin.read())['answer'])"
実行コマンドの中でも「-d '{"message": "AKSについて教えて", "top_k": 10, "mode": "summary"}' 」で質問に関する情報を記述します。それぞれの内容は以下の通りです。
- "message":質問内容
- "top_k":検索インデックスから上位何件分の関連情報を取得するかを指定
- "mode":更新情報を列挙した後に総括を出力するモードを指定
回答の精度や出力形式はアプリの実装次第なため、まだまだ改修が必要ですが、Azure更新情報を基に「総括」として文章を生成しているのでRAGの構築は出来たと思います!
# curl -s http://localhost:8080/chat \
-H "Content-Type: application/json" \
-d '{"message": "AKSについて教えて", "top_k": 10, "mode": "summary"}' \
| python3 -c "import sys, json; print(json.loads(sys.stdin.read())['answer'])"> > >
# 更新情報概要
## 1. 主な一般提供 (GA)
- **タイトル (Title):** Launched: Generally Available: AKS Automatic
- **日付 (Date):** 2025年9月16日
- **要点の要約:** AKS 自動化機能が一般提供されました。
- **タイトル (Title):** Launched: Generally Available: AI toolchain operator add-on (KAITO) for AKS
- **日付 (Date):** 2025年10月7日
- **要点の要約:** AKS 用の AI ツールチェーンオペレーター アドオン (KAITO) が一般提供されました。
- **タイトル (Title):** Launched: Generally Available: AKS Automatic pod readiness SLA
- **日付 (Date):** 2025年11月18日
- **要点の要約:** AKS の自動ポッドレディネス SLA が一般提供されました。
- **タイトル (Title):** Launched: Generally Available: Pod sandboxing on AKS
- **日付 (Date):** 2025年11月18日
- **要点の要約:** AKS 上でのポッドサンドボックス機能が一般提供されました。
## 2. 主な Public Preview
- **タイトル (Title):** In preview: Public Preview: Agentic CLI for AKS
- **日付 (Date):** 2025年11月11日
- **要点の要約:** AKS 向けの Agentic CLI がプレビュー提供されました。
- **タイトル (Title):** In preview: Public Preview: Azure Linux OS Guard for AKS
- **日付 (Date):** 2025年11月11日
- **要点の要約:** AKS 向けの Azure Linux OS Guard がプレビュー提供されました。
- **タイトル (Title):** In preview: Public Preview: Azure Kubernetes Service desktop
- **日付 (Date):** 2025年11月18日
- **要点の要約:** Azure Kubernetes Service のデスクトップ版がプレビュー提供されました。
- **タイトル (Title):** In preview: Public Preview: Azure Network Watcher Topology – AKS Visualization
- **日付 (Date):** 2025年11月18日
- **要点の要約:** AKS のための Azure Network Watcher トポロジー可視化がプレビュー提供されました。
- **タイトル (Title):** In preview: Public Preview: Windows Server 2025 on AKS
- **日付 (Date):** 2025年11月18日
- **要点の要約:** AKS 上での Windows Server 2025 がプレビュー提供されました。
- **タイトル (Title):** In preview: Public Preview: AKS Automatic managed system node pools
- **日付 (Date):** 2025年11月18日
- **要点の要約:** AKS の自動管理されたシステムノードプールがプレビュー提供されました。
## 3. 廃止 / Retirement
- 現在廃止情報は存在しません。
## 4. 総括
最近の AKS に関する更新では、多数の機能が一般提供される一方で、いくつかの重要な機能がプレビュー提供されています。特に、AKS の自動化と新しいツールの追加に注力されており、今後のアップデートが期待されます。プレビュー機能が多いことから、ユーザーからのフィードバックを受けつつさらなる改善が進められるでしょう。
さいごに
今回はAzureの更新情報をデータソースとしたRAGの構築を行いました。これで情報収集の効率化を図る土壌が整ったと思っています。
しかし、今回の構成では「Azure上のリソース+ローカルPC」が必要、かつ、更新情報の増えるたびにローカルPCからAzure AI Searchに定期的にデータを投入を実施する必要があるため非常に手間が多いと思います。
ですので今後はAzure上でのみ完結するように改修していきたいと思います。
また、ACAには「ジョブ」という機能があり、タイマトリガやHTTPトリガを設定して定期的なコンテナの起動、実行が可能です。このジョブ機能を用いることで、現在ローカルPCで行っている「データソースの準備+登録作業」を定期的かつ自動的にRSSフィードを取得し、インデックスへデータを登録する等を考えています。
これらを踏まえた改良版を後日「Azure更新情報をデータソースとしたRAGを用いてチャットボットを構築してみた #2」として投稿予定です。

