在程式碼中使用工作流程
在 Microsoft Foundry 視覺設計器中設計並測試工作流程後,你可以使用 Azure AI Projects SDK 將其整合到你的應用程式中。 這讓你能將工作流程驅動的自動化嵌入網頁應用程式、API、後端服務及其他軟體解決方案中。
工作流程在 Foundry 入口網站中透過視覺設計器建立,該設計器會產生底層的 YAML 定義。 一旦工作流程儲存在專案中,你可以透過參考其名稱來程式化地呼叫它。 你也可以從入口網站下載工作流程的 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 流程的一部分 |
| 自訂介面 | 打造針對特定工作流程應用情境量身打造的專用使用者介面 |
結合 Foundry 入口網站的視覺設計體驗與程式碼整合的彈性,您可以打造強大的 AI 驅動解決方案,無縫融入現有軟體架構。