コードでワークフローを使用する
Microsoft Foundry ビジュアル デザイナーでワークフローを設計してテストした後、Azure AI Projects SDK を使用してワークフローをアプリケーションに統合できます。 これにより、ワークフロー駆動型の自動化を Web アプリ、API、バックエンド サービス、およびその他のソフトウェア ソリューションに埋め込むことができます。
ワークフローは、基になる YAML 定義を生成するビジュアル デザイナーを使用して Foundry ポータルで作成されます。 ワークフローがプロジェクトに保存されたら、その名前を参照してプログラムでワークフローを呼び出すことができます。 ポータルからワークフローの YAML 定義をダウンロードし、コードベースに含めることもできます。
ワークフローを呼び出す
ワークフローを実行する前に、 AIProjectClientを使用して Microsoft Foundry プロジェクトへの接続を確立します。 このクライアントは認証を処理し、会話を実行してワークフローを呼び出すための OpenAI 互換 API へのアクセスを提供します。 プロジェクトで既存のワークフローを実行するには、会話を作成し、名前でワークフローを呼び出します。
# Reference a workflow created in the Foundry portal
workflow_name = "triage-workflow"
# Create a conversation context for the workflow
conversation = openai_client.conversations.create()
# Execute the workflow, passing input to drive the workflow logic
stream = openai_client.responses.create(
conversation=conversation.id,
extra_body={"agent": {"name": workflow_name, "type": "agent_reference"}},
input="Users can't reset their password from the mobile app.",
stream=True,
)
input パラメーターを使用すると、ワークフローにプロンプトまたはメッセージを渡すことができます。ワークフローは、ユーザー要求の処理、サポート チケットのトリアージ、質問への回答などのロジックの実行に使用できます。 ワークフローの設計方法に応じて、この入力は次のようになります。
- エージェントが分析して対応するユーザーの質問
- 分類とルーティング用のサポートチケットに関する説明
- 処理ロジックをトリガーするデータ ペイロード
- 特定の入力なしでワークフローを開始する空の文字列
ワークフロー イベントを処理する
ストリーミングが有効になっている場合、アプリケーションはワークフローの実行時にイベントを受け取ります。 これらのイベントを使用すると、リアルタイムの進行状況の表示、エージェントの出力のキャプチャ、ワークフロー アクションへの応答を行うことができます。
for event in stream:
if event.type == "response.completed":
print("Workflow completed:")
for message in event.response.output:
if message.content:
for content_item in message.content:
if content_item.type == 'output_text':
print(content_item.text)
if (event.type == "response.output_item.done") and event.item.type == ItemType.WORKFLOW_ACTION:
print(f"Action '{event.item.action_id}' completed with status: {event.item.status}")
一般的なイベントの種類は次のとおりです。
| イベントの種類 | Description |
|---|---|
response.completed |
ワークフローの実行が完了し、最終的な応答が返されました |
response.output_item.done |
個々の出力項目 (ワークフロー アクションなど) が完了しました |
これらのイベントを監視することで、ワークフローの進行状況をリアルタイムで確認したり、ワークフローの状態に基づいて外部アクションをトリガーしたりできます。 または、ワークフロー全体が完了するのを待ち、ストリーミングなしで最終的な応答を処理することもできます。 人間がループ内パターンを含むワークフローの場合、アプリケーションでは、ワークフローがユーザー入力を待機する一時停止を処理することが必要になる場合があります。 このような場合は、メッセージ交換に追加のメッセージを送信して、要求された入力を提供し、ワークフローの実行を再開できます。
コード統合の利点
ワークフローをコードに統合すると、いくつかのシナリオが可能になります。
| Scenario | メリット |
|---|---|
| Web アプリケーション | ユーザー向けアプリに AI 駆動型ワークフローを直接埋め込む |
| API とマイクロサービス | REST エンドポイントを使用してワークフロー機能を公開する |
| バッチ処理 | 一括操作のためにプログラムでワークフローを呼び出す |
| テストと検証 | CI/CD パイプラインの一部としてワークフロー テストを自動化する |
| カスタム インターフェイス | 特定のワークフローのユース ケースに合わせて調整された特殊な UI を構築する |
Foundry ポータルの視覚的な設計エクスペリエンスとコード統合の柔軟性を組み合わせることで、既存のソフトウェア アーキテクチャにシームレスに適合する強力な AI 駆動型ソリューションを作成できます。