cloud

Azure Durable Functions入門

  • POST
はじめに この記事では、Azure Durable Functionsについて解説します。 Azure Durable Functions ​Durable Functionsは、Azure Functionsの拡張機能で、状態を保持する(ステートフルな)ワークフローを実現可能にする機能です。 ​複数の処理を順番や並列で実行し、状態管理や再実行といった処理をユーザーは実装する必要がなく、Durable Functions側で自動で行うため、開発者はビジネスロジックの実装に集中することができます。 また、HTTPトリガー関数の場合3分50秒のタイムアウト制限があるため、長時間の処理を行うことができませんが、Durable Functionsを使うことで、長時間の処理を行うことが可能になります。  Azure公式ドキュメント: Azure Durable Functionsとは Azure Durable Functionsのアーキテクチャ Durable Fucntionsは以下の4つの関数で構成されています。 クライアント関数 (Client Function) オーケストレーター関数 (Orchestrator Function) アクティビティ関数 (Activity Function) エンティティ関数 (Entity Function) それぞれの次の項で、それぞれの関数について解説していきます。  Azure公式ドキュメント: Azure Durable Functionsにおける各関数の説明 クライアント関数 Durable Functionsをスタートさせるトリガー関数です。 通常のFunctionsと同様にHTTPトリガーやタイマートリガーなどイベントドリブンで実装されており、 定義したトリガーからイベントなどを受け取って、オーケストレーター関数を起動するのがこの関数の役目です。 オーケストレーター関数 後述するアクティビティ関数の実行を管理する役割の関数です。 後述するアクティビティ関数や他の関数を記載された通りに起動します。 ただし注意点として、オーケストレーター関数は 決定論的(deterministic) である必要があります。 決定論的とは、「同じ入力なら、いつ呼んでもまったく同じ動きをする」ように書く必要があることを示します。 Durable FunctionsではAzureサービスの障害時やサービスメンテナンス時などで処理が中断された場合に、オーケストレーター関数を再実行することができます。 再実行時に実行のたびに結果が変わるような処理が入っていると、予期しない動作を起こす危険性があるため、現在時刻やランダム値を使った処理など、毎回結果が変わるようなコードをオーケストレーター関数で定義することはアンチパターンとされています。

【2025年01月】3大クラウドのAI系サービスリリースノート

  • POST
はじめに この記事では、Azure、AWS、Google Cloudの3大クラウドサービスのAIサービスの新規機能リリース履歴をまとめています。 主に以下のURLの情報をもとに新機能のキャッチアップを行っています。 Azure公式ドキュメント: Azure OpenAI Serviceニュース Github: Azure公式ドキュメント管理リポジトリ Github: Azure OpenAI APIプレビューバージョン一覧 Github: Azure OpenAI API安定版バージョン一覧 AWS公式ドキュメント: AWS Bedrockリリースノート Google Cloud公式ドキュメント: Vertex AIリリースノート Anthropic公式ドキュメント: APIバージョン一覧 Azure 2025年01月21日: gpt-4o-realtime-previewがグローバルデプロイ可能に gpt-4o-realtime-previewのモデルバージョン 2024-12-17がEast US 2とSweden Centralリージョンでグローバルデプロイメント可能になりました。 Azure公式: グローバルスタンダードデプロイメント 2025年01月21日: GPT-4o Realtime APIがプロンプトキャッシュをサポート GPT-4o Realtime APIがプロンプトキャッシュをサポートしました。 プロンプト キャッシュを使用すると、プロンプトの開始時に同じ内容だった長いプロンプトに対して、全体的なリクエストの遅延とコストを削減できます。 Azure公式: プロンプトキャッシュについて 2025年01月21日: GPT-4o Realtime APIが新音声をサポート GPT-4o Realtime APIで以下の新しい音声が使用できるようになりました。

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 このモードを指定すると、検索クエリに含まれるすべての単語が存在するドキュメントを検索します。