🎉
【Azure】- Azure AI services multi-service accountって何?
執筆日
2024/12/20
やること
MicrosoftのDocsを読んでいて、Azure AI services multi-service accountに出会いました。
うん?なんだこれ?と思い、調べたことをまとめようかなと。
Azure AI services multi-service accountとは?
以下のAzureのAIサービスをを1つの統一されたアカウントで管理するための仕組みです。
- Custom Vision
- Document Intelligence
- Face
- Language
- Speech
- Translator
- Vision
SKUは?
Freeはなく、Standardのみ。
Freeを使いたい場合は、個別でサービスを構築する必要がある。
構築する
- Azure Portalを開く
- 検索欄で「Azure AI services multi-service account」と検索し、「Azure AI services multi-service account」をクリックする
- 「+作成」をクリックする
- 必要なパラメータを入力し、構築する
いつくかのAIサービスで動かしてみる
Document Intelligence
以下のコードを実行(Azure Document intelligenceを動かすときと同じコード)
main.py
import time
from azure.ai.formrecognizer import DocumentAnalysisClient
from azure.core.credentials import AzureKeyCredential
from datetime import datetime
# 設定を読み込み
endpoint = <"endpoint">
api_key = <"key">
# クライアントを作成
client = DocumentAnalysisClient(
endpoint=endpoint, credential=AzureKeyCredential(api_key)
)
# ファイルを読み込んで
file_path = <"ファイルパス">
with open(file_path, "rb") as file:
print(f"{datetime.now()}: アップロード開始")
# 分析開始
poller = client.begin_analyze_document("prebuilt-document", file)
# ステータスが完了になるまでポーリング
while not poller.done():
print(f"{datetime.now()}: Waiting...")
time.sleep(3)
# 結果を取得
result = poller.result()
print(f"{datetime.now()}: 完了!!")
print(result)
Azure AI services multi-service accountのPortalからDocument intelligence studioに行くこともできる。
Translator
以下のコードを実行(Azure AI Translatorを動かすときと同じコード)
main.py
import requests
import uuid
import json
def translate(text):
# キーとエンドポイントを設定
key = <"key">
endpoint = "https://api.cognitive.microsofttranslator.com"
# リージョンを設定
location = "japaneast"
# postするURLを作成
path = "/translate"
constructed_url = endpoint + path
# APIのバージョンと変換元言語、変換先言語を指定する
params = {"api-version": "3.0", "from": "en", "to": ["ja"]} # 変換先の言語
# ヘッダー設定
headers = {
"Ocp-Apim-Subscription-Key": key,
"Ocp-Apim-Subscription-Region": location,
"Content-type": "application/json",
"X-ClientTraceId": str(uuid.uuid4()),
}
# ボディ設定
body = [{"text": text}]
# 翻訳をかける
request = requests.post(constructed_url, params=params, headers=headers, json=body)
response = request.json()
# 結果を表示
print(
json.dumps(
response,
sort_keys=True,
ensure_ascii=False,
indent=4,
separators=(",", ": "),
)
)
return response
# テスト用
translate("Hello, world!")
Vision
以下のコードを実行(OCRを実施)
main.py
from azure.cognitiveservices.vision.computervision import ComputerVisionClient
from azure.cognitiveservices.vision.computervision.models import OperationStatusCodes
from msrest.authentication import CognitiveServicesCredentials
key = <"key">
endpoint = <"endpoint">
computervision_client = ComputerVisionClient(
endpoint, CognitiveServicesCredentials(key)
)
image_path = <"ファイルパス"> # URL or ローカルファイルパス
# OCRを実行
def perform_ocr(image_path):
if image_path.startswith("http"):
# 画像がURLの場合
ocr_result = computervision_client.read(url=image_path, raw=True)
else:
# 画像がローカルファイルの場合
with open(image_path, "rb") as image_file:
ocr_result = computervision_client.read_in_stream(image_file, raw=True)
# 結果を取得
operation_location = ocr_result.headers["Operation-Location"]
operation_id = operation_location.split("/")[-1]
# 結果が準備されるのを確認
while True:
result = computervision_client.get_read_result(operation_id)
if result.status not in ["notStarted", "running"]:
break
# 認識結果を表示
if result.status == OperationStatusCodes.succeeded:
for text_result in result.analyze_result.read_results:
for line in text_result.lines:
print(f"テキスト: {line.text}")
print(f"位置情報: {line.bounding_box}")
else:
print("OCR処理に失敗しました。")
# OCRを実行
perform_ocr(image_path)
まとめ
Azure AI services multi-service accountをかるく紹介しました。このサービスを利用することで、Custom Vision、Document Intelligence、Face、Language、Speech、Translator、Visionといった複数のAIサービスを一つの統一されたアカウントで管理することができます。これにより、各サービスの設定や管理が簡単になり、開発の効率上がるなーと感じました。
Discussion