cloud

Azure OpenAIの各デプロイメントタイプ

  • POST
Azure OpenAIの各デプロイメントタイプ はじめに Azure OpenAIでは、モデルをデプロイするときに5つのデプロイメントタイプを選択することができます。 この記事では、Azure OpenAIのそれぞれのデプロイメントタイプについて紹介します。 Azure OpenAI のデプロイメントタイプ Azure Open AIでは、以下の5つのデプロイメントタイプが存在します。 Standard Provisioned Global Standard Global Provisioned Global Batch Azure公式ドキュメント: Azure OpenAI デプロイメントタイプ Azure公式ドキュメント: Azure Open価格 Standard Standardは、Azure OpenAIのサービス開始当初からあるデプロイメントタイプです。 モデルのデプロイ時に設定したTPM(1分当たりのトークン数)を処理上限として、APIのコール時に使用したトークン数に応じて従量課金される形式になっています。 データを処理するリージョンは、作成したAzure OpenAIリソースのリージョンで固定されるため、データを処理する所在地の指定があるリージョンでの利用に適しています。 Azure公式ドキュメント: Azure OpenAI デプロイメントタイプ Provisioned Provisionedは、月間または、年間通して使用するスループット(PTU: Provisioned Throughput)を事前予約することができるデプロイメントタイプ。 事前にモデルの処理可能量にあたるPTUを購入することで、以下のメリットが得られます。 Azure公式ドキュメント: Azure OpenAI Provisioned Throughput 一貫したレイテンシ: レートリミットによる429エラーの発生が抑止され、応答時間が安定する コストの削減: 月間または、年間通しての利用により従量課金よりも安いコストでOpenAIを利用できる デメリットとしては、 未使用時のコストの増加: 事前にPTUを購入するため、使用量が少ない場合にもコストが発生する Azure OpenAIのモデルバージョンごとに、購入できるPTUの単位や、PTU当たりの処理能力(単位時間当たりで何トークン処理できるかなど)は異なります。 PTU当たりの処理能力や、PTU当たりの料金はドキュメントに記載がないが、Azure OpenAI Studioのモデルのデプロイの画面から、 プロンプトトークン、生成トークン、1分当たりのピーク時のリクエスト数から必要な推定PTUを算出と価格の確認が可能です。 Global Standard/Provisioned Globalデプロイメントは、Azure基盤側でAzure Open AIへの各リクエストを最も可用性の高いリージョンのデータセンターにルーティングすることで、 通常のデプロイメントタイプよりも高い可用性を提供するデプロイメントタイプ。

PowerAutomate WorkflowからTeamsのチャネルにメッセージを通知

  • POST
PowerAutomateワークフローからTeamsのチャネルにメッセージを通知 はじめに この記事ではAzure MonitorのアラートをMicrosoft Teamsに通知する方法を紹介します。 PowerAutomateワークフローを作成する ワークフローを作成する場合、 PowerAutomateのWEBサイトか、 TeamsのWEBサイトまたはアプリから作成が可能です。 この記事では、 Teamsアプリからワークフローの作成を行います。 PowerAutomate 以下の手順で作成を行います。 通知対象のチャネルのメニューからワークフローを選択する Webhook要求を受信するとチャネルに投稿する ワークフローの名前を入力し、ワークフローを追加 追加後に表示されるワークフローのURLを控える Adaptive Cardでの通知 ワークフローから通知を行う際は、 メッセージの形式をAdaptive Cardにする必要があります。 Adaptive Cardは、 JSONで記述されたUI要素を、 アプリケーションで表示する際のJSONの標準フォーマットです。 Adaptive Cardは、 Teams、 Outlook、 Androidアプリ、 iOSアプリなどのマルチプラットフォームに対応(Adaptive)しています。 以下のサイトで、 Adaptive Cardのプレビューが可能です。 Designer | Adaptive Cards Adaptive Cardで通知を行うPythonコード ワークフローの作成完了後は、 ワークフローのURLに通知を送信するPythonコードを用意します。 .env TEAMS_WEBHOOK_URL=※コピーしたワークフローのURLを設定 main.py 以下のコードはテキスト、 テーブル、 ファクトセットの3 種類メッセージをポストする。 import os import requests from dotenv import load_dotenv load_dotenv() # URL取得 WEBHOOK_URL = os.

Python用のOpenAI APIライブラリにおけるエラーハンドリング

  • POST
Python用のOpenAI APIライブラリにおけるエラーハンドリング はじめに Python用のOpenAIのライブラリを使って、OpenAIのAPIを利用するに当たって、エラー発生時のエラーハンドリングを適切に実装にするために、 OpenAIのライブラリに実装されているエラークラスとリトライについて解説します。 前提条件 検証時の環境情報は以下の通りです。 Python : 3.12 ライブラリバージョン : openai-1.34.0 API バージョン : 2024-05-01-preview リソース : Azure OpenAI モデル : gpt-4-32k エラークラス OpenAIのライブラリには、以下のエラークラスが実装されています。 APIStatusError 4xx - 5xx台のステータスコードが返された場合に発生する例外を表すクラスです。 サブクラスとして、以下のエラークラスが実装されています。 400 : openai.BadRequestError : トークン数がコンテキストウィンドウを超過した場合、コンテンツフィルターブロックされた場合などに発生 401 : openai.UnauthorizedError : APIの認証に失敗した場合などに発生 404 : openai.NotFoundError : リクエスト先のモデルデプロイメントが見つからない場合などに発生 (OpenAIサービス自体が存在しない場合は、APIConnectionErrorが発生する) 408 : openai.APITimeoutError : APIのタイムアウトが発生した場合に発生 409 : openai.ConflictError : リクエストが競合している場合に発生 422 : openai.UnprocessableEntityError : リクエストの項目不足などの理由でリクエストが処理できない場合に発生 429 : openai.RateLimitError : リクエストがレート制限を超えた場合に発生 500 : openai.

Azure AI Searchクエリリファレンスガイド

  • POST
Azure AI Searchクエリリファレンスガイド はじめに この記事では、Azure AI Searchのクエリの使い方について紹介します。 Azure Cognitive Searchとは Azure AI Search(旧Azure Cognitive Search) は、ストレージ上のファイルなどのデータソースに対して、インデックスを作成し、作成したインデックスによる検索を可能にするサービスです。 インデックスには、ファイルの種類や、ファイルの作成日などのファイルに関するメタデータを格納することができ、 AI Searchを使うと、指定した種類に該当するファイルの絞り込みや、 指定した期間に該当する作成日のファイルの検索などが可能になります。 https://learn.microsoft.com/ja-JP/azure/search/search-what-is-azure-search クエリパラメータ Azure AI Searchでは、検索クエリの実行時にクエリパラメータを渡すことで、検索時に挙動を変更することができます。 クエリパラメータは以下のようなものがあります。 queryType searchMode search searchFields https://learn.microsoft.com/ja-jp/azure/search/search-query-overview queryType queryTypeはクエリのパーサーを設定します。 以下の値が指定できます。 simplefull : 既定のクエリパーサー、単純なフルテキスト検索に最適 full : 正規表現、近接検索、あいまい検索、ワイルドカード検索などの高度なクエリに使用する semantic : セマンティック検索用に設定 searchMode Azure AI SearchのsearchModeパラメータは、検索クエリの動作を指定することができます。 searchModeにはanyとallの2つの値を指定することができます。 デフォルトのsearchModeはanyです。 それぞれのモードは以下のような動作を持ちます。 any このモードを指定すると、検索クエリに含まれる単語のいずれかが存在するすべてのドキュメントを検索します。 # キーワードのいずれかを含むドキュメントを表示 search='キーワード1 キーワード2'&searchMode=any all このモードを指定すると、検索クエリに含まれるすべての単語が存在するドキュメントを検索します。

Azure AI Search入門

  • POST
Azure AI Search入門 はじめに この記事では、Azure AI Searchの基礎知識について紹介します。 Azure AI Searchとは Azure AI Search(旧Azure Cognitive Search) は、ストレージ上のファイルなどのデータソースに対して、インデックスを作成し、作成したインデックスによる検索を可能にするサービスです。 インデックスには、ファイルの種類や、ファイルの作成日などのファイルに関するメタデータを格納することができ、 AI Searchを使うと、指定した種類に該当するファイルの絞り込みや、 指定した期間に該当する作成日のファイルの検索などが可能になります。 https://learn.microsoft.com/ja-JP/azure/search/search-what-is-azure-search Azure AI Searchの基本要素 Azure AI Searchは以下の要素から構成されています。 データソース インデクサー インデックス ドキュメント フィールド データソース データソースはAzure AI Searchで検索対象となるデータが格納されている場所を指します。 具体例としては、Azure SQL Database、Azure Cosmos DB、Azure Blob Storageなどのデータストレージサービスが該当します。 インデクサー インデクサーはデータソースからデータを読み取り、それをインデックスに格納する役割を持つものです。 インデックス インデックスはデータソースから取得したデータを効率よく検索できる形式で格納したもののことです。 ドキュメント ドキュメントはインデックス内で格納されているユニークな個々のレコードを指します。 各ドキュメントは一連のフィールドとその値から構成され、通常はJSONオブジェクトとして表現されます。 フィールド フィールドはインデックス内の各ドキュメントが持つ属性を指します。 データベースでいうカラムに該当するものです。 Search Explorer Search Explorerは、Azure portalからAzure AI Searchに検索クエリを実行することができる機能です。 Search Explorerは、AI Searchにインデックスを作成すると自動的に利用できるようになります。 Search Explorerを使うことで、クエリのテストや、インデックス内のドキュメントの確認をすることができます。 https://learn.microsoft.com/ja-jp/azure/search/search-explorer

Azure AI Document Intelligence入門

  • POST
Azure AI Document Intelligence入門 はじめに Microsoft Azureには、画像からテキストを抽出するOCRの機能を持ったサービス「Azure Form Recognizer」というサービスがあったのですが、2023年7月に名称変更して「Azure AI Document Intelligence」というサービス名に変更になりました。 「Azure Form Recognizer」については、以前からこちらの記事で紹介していますが、今回の名称変更を受けて、改めて「Azure AI Document Inteljence」について紹介します。 Azure AI Servicesとは Azure AI Serviceは、事前構築済みのAIモデルを利用することができるAzureのAI系のサービスの総称です。 Azure AI Serviceには以前Cognitive Services および Azure Applied AI Services と呼ばれていたものすべてが含まれています。 https://learn.microsoft.com/ja-jp/azure/ai-services/what-are-ai-services Azure Document IntelligenceもAzure AI Servicesの一つです。 Azure Document Intelligenceとは Azure Document Intelligenceとは、請求書、レシート、名刺などのドキュメントから文字情報を取得するOCR機能の一つです。 Azure Document IntelligenceのAPIを実行すると、リクエスト時で渡されたPDFファイルなどのドキュメントのURLを解析し、解析したテキスト情報をHTTPレスポンスとして返します。 https://docs.microsoft.com/ja-jp/azure/applied-ai-services/form-recognizer/ https://azure.microsoft.com/ja-jp/products/ai-services/ai-document-intelligence Azure Document Intelligenceの機能 Azure Document Intelligenceは次の機能を持っています。 ドキュメント分析モデル 事前構築済みモデル カスタムモデル https://learn.microsoft.com/ja-jp/azure/ai-services/document-intelligence/overview?view=doc-intel-3.1.0 ドキュメント分析モデル(Document analysis model) ドキュメント分析モデルはドキュメントから、テキストや、テーブルの構造、テキスト、テキストのバウンディングボックスの座標(位置情報)などをドキュメントから抽出します。 https://learn.microsoft.com/ja-jp/azure/ai-services/document-intelligence/overview?view=doc-intel-3.1.0#document-analysis-models 事前構築済みモデル(Prebuilt model) 事前構築済みモデルは請求書、レシート、名刺などMicrosoftが事前に用意している特定のドキュメント専用のAIモデルを使用して、フォームを解析する機能です。

Azure MonitorのアラートをMicrosoft Teamsに通知する方法

  • POST
Azure MonitorのアラートをMicrosoft Teamsに通知する方法 はじめに この記事ではAzure MonitorのアラートをMicrosoft Teamsに通知する方法を紹介します。 Azure Monitorとは Azure Monitorは、Azureのサービスの正常性やアプリケーションのログなどを監視することができるサービスです。 以下に、Azure Monitorの機能を紹介します。 アプリケーション監視 (Application Insights): アプリケーションのパフォーマンス、可用性、ログなどをリアルタイムで監視します。 インフラストラクチャ監視 (VM Insights, Container Insights): 仮想マシンやコンテナなどのインフラストラクチャのパフォーマンスと状態を監視します。 ネットワーク監視: ネットワークパフォーマンス、接続状況、トラフィック分析を提供します。 ログ分析 (Log Analytics): ログデータを収集、検索、分析するためのツールを提供します。 Azure Monitorのアラートと通知 Azure Monitorでは、アラートルールを設定することで、アラートルールの条件に一致する問題が発生した場合にアラートを通知することができます。 アラートルールの設定後、アクショングループという通知方法の設定すると、指定した通知方法で通知されます。 通知方法の種類として、Eメール、SMS、Webhook、Azure Automation Runbook、Azure Functions、Azure Logic Appsなどがあります。 アラートの概要 アラートの種類 共通アラートスキーマ Azure Monitorでは共通アラート スキーマ(Common Alert Schema)という、Azureでのアラート通知の標準化されたフォーマットを使用することができます。 このスキーマを使用することで、Application InsightsやLog Analytics、コストアラートなど異なるサービスからのアラートを共通のフォーマットで受け取ることができます。 異なるソースからのアラートを効率的に処理することを目的としています。 共通アラート スキーマには以下のような情報が含まれます。 essentials: 基本情報 alertId: ユニークなアラート識別子。 firedDateTime: アラートが生成された時刻。 monitoringService: アラートを検出したAzure Monitorのサービス。 description: アラートの説明。 alertContext: アラートに関連する詳細な情報やメトリクス。

Azure Web PubSub入門 ~ 使い方や料金を紹介

  • POST
Azure Web PubSub入門 ~ 使い方や料金を紹介 はじめに この記事では、AzureのリアルタイムWeb通信サービスのAzure Web PubSubの基本的な使い方や料金について紹介します。 Azure WebPubSubとは Azure WebPubSubは、Microsoft Azureクラウドプラットフォーム上で提供されるリアルタイムWeb通信サービスです。 WebSocketsを使用してクライアントとサーバー間の双方向通信を可能にし、リアルタイムのチャットアプリケーション、ライブアップデート、リアルタイムのデータフィードなどの機能を実装するのに適しています。 主な特徴 双方向通信: クライアントとサーバー間でリアルタイムの通信が可能。 スケーラビリティ: 大量の同時接続をサポートし、ニーズに応じてスケールアップ・ダウン可能。 セキュリティ: Azureのセキュリティと統合され、安全な通信を保証。 多様なプログラミング言語サポート: JavaScript, Python, C#, Javaなど多くの言語で利用可能。 利用シナリオ リアルタイムチャットアプリケーション ライブイベントのストリーミング ゲーム内リアルタイム通信 IoTデバイスからのリアルタイムデータストリーミング Web PubSubの内部構造 以下にAzure Web PubSubの内部構造の概念図を記載しました。 このセクションでは、Azure Web PubSub上で使用される用語について紹介します。 接続 接続はクライアントまたはクライアント接続とも呼ばれ、Web PubSubサービスに接続された個々のWebSocket接続を表す。 ユニット Web PubSubサービスの容量やスケールを表す単位です。 ユニットは、同時に接続できるクライアントの数と、サービスの全体的なスループット(データ処理能力)を決定します。 1つのユニットは最大1,000の同時接続をサポートします。 各Web PubSubサービスは、1、2、5、10、20、50または100のユニットを持つことができる。 ハブ ハブはクライアント接続の集まりを意味する論理的な概念とされています。 クライアントはハブに対して接続し、ハブにメッセージを送信します。 そのため、ハブはチャットアプリ用ハブやイベント通知用ハブなど、目的ごとに一つのハブを作成することで、 WebPubSubサービスに送信されるメッセージをカテゴリごとに分類することができます。 グループ ハブに接続された接続のサブセットです。 クライアント接続をグループに追加したり、グループから削除したりすることができます。 グループに送信されたメッセージは、グループに接続されたすべてのクライアントに配信されます。 リアルタイムのチャットアプリケーションでは、ハブとグループは以下のように使用することができます。 ハブ : チャットサービス全体のメッセージを管理 グループ : 特定のチャットルーム クライアントイベント クライアント接続のライフサイクル中に作成されるイベント。