Azure AI Foundryで各種Azure AIサービス・Azure OpenAIモデルを一元管理する

AIサービスの活用が広がる一方で、これまでのAzure環境では、Document Intelligence や Computer Visionといった各種Cognitive Serviceや、Azure OpenAI を利用するたびに、個別にリソースを作成し管理する必要がありました。

この煩雑さを解消し、複数のAIモデル・ツールを一か所で設計・カスタマイズ・管理できるようにしたのが Azure AI Foundry です。

本記事では、「Azure AI Foundry」と「AI Hub」の違い、実際のリソースデプロイ手順、そしてAzure OpenAIやCognitive Serviceの利用方法について紹介します。

Azure AI Foundry とは?

Azure AI Foundry は、モデル・エージェント・ツールを 一か所で設計・カスタマイズ・管理 できる、Azure の統合型 AI プラットフォームです。SDK や API を通して、複数のモデルやプロバイダーを、コードもユーザーインターフェイスも変えずに同じように使えるのが魅力です。

これまでは Document Intelligence や Computer Vision、Azure OpenAI(AOAI)といった Cognitive Service を利用するたびに、個別にリソースを立てる必要がありました。ポータル上でもリソースが散らばり、管理やメンテナンスの手間を感じる場面も多かったと思います。

そこで登場したのが Azure AI Foundry です。 複数のサービスやモデルを、一つのプロジェクトからまとめて扱えるようになりました。

実際のポータルからAI Foundryの画面を確認してみます。左のメニューで「AI Foundryで使用する」と「その他のサービス」で分かれています。

これまではCognitive Serviceとして各種リソースをデプロイして使用していたその他のサービス群が、AI Foundryの単リソース経由で使用できるようになります。

※「その他のサービス」を選択して、これまで通り別リソースとしてデプロイすることも可能です

AI Hubと AI Foundry の違いについて

AI Foundry経由でサービスを使うとき、「AI Hub」と「AI Foundry(プロジェクト)」という二つの単位があります。

名前が似ているので混乱しやすいですが、役割は大きく違います。

AI Hub (Hub ベースのプロジェクト)

AI Hub は部門や組織全体で使う「管理の土台」です。セキュリティ設定やネットワーク、ストレージなどをまとめて管理できる「基盤」的な役割を果たします。また、AI HubはAzure Machine Learning機能へのアクセスを提供します。

Hub の配下に作成されるのは「Hub ベースのプロジェクト」となります。Key Vault、Storage、監査ログ、ネットワークルールなどを Hub で定義すると、配下のすべてのプロジェクトに継承できます。

AI Foundry(スタンドアロンプロジェクト)

AI Foundry は「個々の開発・検証・運用を行う現場単位のプロジェクト環境」で、プロジェクト単位で「ここに全部を集約して開発・管理」ができます。

作成されるのはスタンドアロン プロジェクトで、モデルを呼び出したり、RAG 構成を作ったりするのはこちらになります。個人検証や小規模チームで「とりあえず GPT を使いたい」という場合はこちらを使用します。

AI HubとAI Foundryの違いは次の通りです。

項目 AI Hub AI Foundry
位置づけ 上位の「コンテナ」「管理単位」 実際に AI を作る・使う「プロジェクト単位」
スコープ テナント/部門レベル 開発チーム/案件レベル
主な役割 ポリシーやリソースの共通管理 モデル利用・アプリ開発・RAG/エージェント構築

利用方法

リソースのデプロイ

AI Foundryのリソースを作成します。

名前とプロジェクト名は任意指定、リージョンはJapan Eastを選択します。その他は全てデフォルトの設定でデプロイします。

AI Foundryの画面に遷移した後、メニューの下のボタンを選択して、管理センターを確認します。

今回はAI Hubをデプロイしていないため、リソースとプロジェクトのみ確認できます。

Azure OpenAI Service

AI Foundryのプロジェクトから、Azure OpenAI Serviceのモデルをデプロイして使用することができます。

※ モデルの制約はAI Foundry(あるいはAI Hub)のリージョンに依存する点には注意します。例えば、今回はJapan Eastにデプロイしたため、EastUS2などでしかデプロイできないモデルは利用できません。必要な場合は、別途リージョンの異なるAI Foundryを用意する必要があります。

「概要」タブからエンドポイントのURLとAPIキーを取得することができます。

以下のプログラムを実行して、モデルが使用できるか疎通確認します。

import os
from openai import AzureOpenAI

endpoint_uri = ""
api_key = ""
model_name = ""

client = AzureOpenAI(
    api_version="2025-04-01-preview",
    azure_endpoint=endpoint_uri,
    api_key=api_key
)
messages=[
    {"role": "system", "content":"あなたは親切なアシスタントです。"},
    {"role": "assistant", "content": "始めまして!本日はよろしくお願いいたします。"},
    {"role": "user", "content": "あなたの名前は?"},
]

response = client.chat.completions.create(
    model=model_name,
    messages=messages
)
print(response.choices[0].message)

Cognitive Service

Cognitive Serviceの既存ライブラリをそのままAPIのエンドポイントURL,キーだけ置き換えて使用することができます。

基本は概要ページの「Azure AIサービス」より、サービスで使用するキーとURLを取得して、これを使います。

またこれとは別に、メニューからモデル+エンドポイントの項目を選択し、「サービスエンドポイント」のタブから、各種Cognitive Serviceへの詳細や接続方法を確認できます。

今回はDocument Intelligenceで試してみます。以下のコードでOCR結果を取得できます。

from azure.core.credentials import AzureKeyCredential
from azure.ai.documentintelligence import DocumentIntelligenceClient
from azure.ai.documentintelligence.models import AnalyzeResult, AnalyzeDocumentRequest


class DocumentAnalysys:
    """
    Document Inteligence
    """
    def __init__(
        self,
        endpoint: str,
        api_key: str,
        api_version: str = "2024-11-30" # (GA version)
    ):
        self.document_intelligence_client = DocumentIntelligenceClient(
            endpoint=endpoint, 
            credential=AzureKeyCredential(api_key),
            api_version=api_version
        )

    def analyzed_file(self, pdf_path, format_type="markdown"):
        """
        pdfファイルを分析して結果を提供
        input:
          pdfファイルのパス
        output:
          分析結果の生オブジェクト(分析処理に使用)
        """                             
        with open(pdf_path, "rb") as f:
            poller = self.document_intelligence_client.begin_analyze_document(
                "prebuilt-layout", 
                AnalyzeDocumentRequest(bytes_source=f.read()),
                output_content_format=format_type,
            )

        result: AnalyzeResult = poller.result()
        return result    
 

    def image_to_text(self, result):
        """
        分析結果のOCR結果を取得する
        input:
          分析結果の生オブジェクト(分析処理に使用)
        output:
          OCRした文字列
        """
        return result.content
        
        
DOCUMENT_API_KEY  = ""
DOCUMENT_ENDPOINT = ""

file_path = ""

ocr = DocumentAnalysys(
    DOCUMENT_ENDPOINT,
    DOCUMENT_API_KEY,
    api_version="2024-11-30"
)
result = ocr.analyzed_file(file_path)

text = ocr.image_to_text(result)
print(text)

おわりに

Azure AI Foundryを利用することで、これまでバラバラに管理されていたAIサービスをプロジェクト単位で集約し、効率的に運用・開発できるようになります。特に、Azure OpenAIやCognitive Serviceを同一プロジェクト内で扱えることで、APIやSDKの切り替えの手間が減り、開発スピードの向上が期待できます。

今後Azure AI Foundryは、さらに多くのモデルや機能をサポートしていくことが予想されます。AI活用を本格化させたいチームや企業にとって、これからの標準的なAI開発基盤となる可能性を秘めているため、移行を検討してみてください。

執筆担当者プロフィール
西野 佑基

西野 佑基(日本ビジネスシステムズ株式会社)

機械学習系ソリューション開発、業務Webアプリ開発、開発環境自動化などを担当。

担当記事一覧