テキストを分析するクライアント アプリケーションを作成する

完了

Tip

詳細については、「 テキストと画像 」タブを参照してください。

クライアント アプリケーションは、サービスまたはモデルに接続し、その機能を使用して作成するプログラムです。 コードはサービスに要求を送信し、結果を自動的に受け取ります。大量のテキストを処理したり、AI 分析をワークフローに統合したりできます。

AI サービスに接続するために、アプリケーションは API (アプリケーション プログラミング インターフェイス) を使用します。 API は、2 つのソフトウェアの通信方法を定義する一連の規則です。 クライアント ライブラリは、開発者がアプリケーションでサービスまたは API と簡単に通信するために使用できる、既製のコードのセットです。 get started with AI in Azure で、アプリケーションとエンドポイントの基礎資料を確認できます。

テキスト分析に汎用 AI モデルを使用する

Microsoft Foundry リソースから開始し、リソース内に Foundry プロジェクトを作成します。 新しい Foundry ポータルでは、モデル カタログを参照し、汎用モデルをデプロイできます。

Azure OpenAI API を使用して、Microsoft Foundry Models と対話するクライアント アプリケーションを構築できます。 OpenAI API を使用すると、エンドポイントに要求を送信し、API キーと共に承認されていることを証明することで、デプロイされたモデルとコードが通信できるようになります。

Responses API は、言語モデルと対話するための、Azure OpenAI 内の最新の統合 API です。 これは、テキスト生成だけでなく、完全な AI 対話を処理するように設計されています。

応答 API を使用して、デプロイされた言語モデルに自然言語プロンプトを送信できます。 固定構造化された出力を必要としない柔軟な会話形式の分析が必要な場合に便利です。

OpenAI Python ライブラリの使用

OpenAI Python ライブラリは公式のPythonソフトウェア開発キット (SDK) であり、開発者は生の HTTP 要求ではなく、コードを介して OpenAI モデルやサービスと対話するPython アプリケーションを構築できます。

OpenAI Python ライブラリを使用するには、コード エディター内で作業する必要があります。 アプリケーション コードは、Visual Studio Codeなどのコード エディターで記述されます。 コード エディターの ターミナル は、エディター内の組み込みのコマンド ライン ウィンドウであり、開発環境を離れることなくコマンドを実行できます。

1. 必要なパッケージをインストールする

OpenAI Python ライブラリは、次を使用して Visual Studio Code terminal にインストールできます。

pip install openai

2. 構成ファイルを作成する

次に、エンドポイント、キー、モデルのデプロイ名などの環境変数を格納する構成ファイル (種類 .env) を作成できます。

次の変数について考えてみましょう。

AZURE_OPENAI_ENDPOINT=https://<your-resource>.openai.azure.com/openai/v1/
MODEL_DEPLOYMENT_NAME=gpt-4.1-mini
API_KEY=<your-foundry-key>

エンドポイント変数に Foundry リソースと openai.azure.com/openai/v1の名前が含まれていることに注目してください。 API キーは Foundry プロジェクト キーです。

モデル デプロイ名は、モデルをデプロイするときに 指定 する名前です。 たとえば、 gpt-4.1 モデルをデプロイするときに、 gpt-demo-model という名前を付けます。 デプロイ名は gpt-demo-model です。 ただし、モデル名をカスタマイズしない場合、デプロイ名は上記のスニペットのようにモデル名と一致します。

3. アプリケーション ロジックを含むファイルを作成する

次のアプリケーション コード サンプルを見てみましょう。

import os
from dotenv import load_dotenv
from openai import OpenAI

# Load environment variables from .env file
load_dotenv()
endpoint = os.getenv("AZURE_OPENAI_ENDPOINT")
api_key = os.getenv("API_KEY")
deployment_name = os.getenv("MODEL_DEPLOYMENT_NAME")

# Create the client object
client = OpenAI(
    base_url=endpoint,
    api_key=api_key
)

# Make a request using the client
message = client.responses.create(
    model=deployment_name,
    input="",
)

# Print the results
print(f"Sentiment: {message.output[0]}")

環境変数の読み込み: このサンプルでは、 dotenv (load_dotenv()) によって .env ファイルが読み取られ、それらの値がアプリの環境に読み込まれます。 os パッケージは、os.getenv()などのos.getenv("AZURE_OPENAI_ENDPOINT")を持つ名前で各値を取得します。

.envの各キーは、コード内の名前と正確に一致する必要があります。 たとえば、ファイルで API_KEYを使用する場合、コードは API_KEYも要求する必要があります。 実行時に値が欠落しないように、変数名の一貫性を保ちます。

Foundry リソース エンドポイントとキーを使用して、認証された クライアント オブジェクトを作成します。 OpenAI クラスは SDK によって定義され、OpenAI API に接続するためのブループリントとして機能します。 Pythonの認証済みクライアント オブジェクトは、トークンまたはシークレットを手動で管理するコードなしで、承認された API 呼び出しを安全に行うことができるサービス固有のオブジェクトです。

Pythonでは、class は、保持するデータと実行できるアクションの種類を定義するブループリントです。 オブジェクトは、そのブループリントから作成された特定のインスタンスです。 たとえば、 Car クラスでは、すべての車に色があり、 drive() または stop()できることを定義できます。 特定の車 (たとえば赤い車) を作成する場合、それはオブジェクトです。

エンドポイントとキーで構成された クライアント オブジェクト を作成したら、その オブジェクトのメソッドを 呼び出してモデルと対話できます。 たとえば、 responsesmethod を使用して、特定のモデルデプロイにプロンプトを送信できます。

コマンド python <file_name>.pyを使用してターミナルでアプリケーション コードを実行することで、分析の結果を表示できます。

OpenAI API は簡単に使用できますが、モデルによって確率的にテキストが生成されるため、呼び出しによって結果が異なる場合があります。 実際には、これは、同じプロンプトを持つ 2 つの呼び出しが、少し異なる単語や書式設定を返すことができるということです。 言語コード、信頼度スコア、編集されたテキストなど、一貫性のある構造化された値がアプリに必要な場合は、Azure言語 SDK が適しています。

Azure言語 SDK の使用

Azure Language SDK は、Foundry Tools の Azure Language 用のクライアント ライブラリです。 SDK を使用すると、開発者は、言語検出や個人を特定できる情報 (PII) の編集などの NLP 機能をアプリケーションに簡単に追加できます。

Azure言語Python SDK を使用して、テキストを分析するアプリケーションを構築する方法を見てみましょう。 Azure言語Python SDK を使用するには、Foundry リソースが必要です。 その後、互換性のあるバージョンの Python と Azure Language Python SDK をインストールする必要があります。

Python SDK は、次を使用して Visual Studio Code terminal にインストールできます。

pip install azure-ai-textanalytics

次の構成ファイルのサンプルを考えてみましょう。

AZURE_LANGUAGE_ENDPOINT=https://<your-resource>.cognitiveservices.azure.com/
API_KEY=<your-foundry-key>

次のアプリケーション コード サンプルを考えてみましょう。

# Import packages
import os
from dotenv import load_dotenv
from azure.core.credentials import AzureKeyCredential
from azure.ai.textanalytics import TextAnalyticsClient

# Load environment variables from .env file
load_dotenv()
endpoint = os.getenv("AZURE_LANGUAGE_ENDPOINT")
key = os.getenv("API_KEY")

# Create the client
client = TextAnalyticsClient(endpoint=endpoint, credential=AzureKeyCredential(key))

# Make a request using the client for language detection
text = "¡Hola! Me llamo Josefina y vivo en Madrid, España."
result = client.detect_language([text])[0]

クライアントの methods を使用して、Azure 言語関数 (detect_languagerecognize_pii_entitiesなど) を呼び出します。

言語検出: detect_language() メソッドは、テキスト文字列の一覧を取得し、検出された言語、ISO 639-1 コード、0 から 1 の信頼度スコアを返します。

text = "¡Hola! Me llamo Josefina y vivo en Madrid, España."
result = client.detect_language([text])[0]

# Print the results
print(f"Language      : {result.primary_language.name}")
print(f"ISO code      : {result.primary_language.iso6391_name}")
print(f"Confidence    : {result.primary_language.confidence_score:.2f}")

PII 検出: recognize_pii_entities() メソッドは、テキスト内の個人の詳細を識別し、修正されたバージョンのテキストと、各エンティティのカテゴリと信頼度スコアを含む、見つかったエンティティのリストの両方を返します。

text = "Maria Garcia called from 020 7946 0958 and asked to send documents to 42 Market Road, London, UK, SW1A 1AA."

result = client.recognize_pii_entities([text])[0]

# Print the results
print("Redacted text:", result.redacted_text)
print("\nEntities found:")
for entity in result.entities:
    print(f"  {entity.text} | category={entity.category} | confidence={entity.confidence_score}")

OpenAI API と Azure Language SDK を使用すると、自然言語を処理し、テキストから分析情報を生成する AI アプリケーション用のコードを記述できます。

次に、AI エージェントにAzure言語機能を含める方法を見てみましょう。