Usare i flussi di lavoro nel codice
Dopo aver progettato e testato un flusso di lavoro nella finestra di progettazione visiva di Microsoft Foundry, è possibile integrarlo nelle applicazioni usando Azure AI Projects SDK. In questo modo è possibile incorporare l'automazione basata sul flusso di lavoro in app Web, API, servizi back-end e altre soluzioni software.
I flussi di lavoro vengono creati nel portale foundry usando la finestra di progettazione visiva, che genera la definizione YAML sottostante. Dopo aver salvato un flusso di lavoro nel progetto, è possibile richiamarlo a livello di codice facendo riferimento al nome. È anche possibile scaricare la definizione YAML del flusso di lavoro dal portale e includerla nella codebase.
Richiamare un flusso di lavoro
Prima di eseguire un flusso di lavoro, stabilire una connessione al progetto Microsoft Foundry usando .AIProjectClient Questo client gestisce l'autenticazione e fornisce l'accesso all'API compatibile con OpenAI per l'esecuzione di conversazioni e la chiamata di flussi di lavoro. Per eseguire un flusso di lavoro esistente nel tuo progetto, crea una conversazione e invoca il flusso di lavoro per nome.
# 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,
)
Il input parametro consente di passare una richiesta o un messaggio al flusso di lavoro, che il flusso di lavoro può usare per determinarne la logica, ad esempio l'elaborazione di una richiesta utente, la valutazione di un ticket di supporto o la risposta a una domanda. A seconda del modo in cui è progettato il flusso di lavoro, questo input potrebbe essere:
- Domanda utente che gli agenti analizzano e rispondono
- Descrizione del ticket di supporto per la classificazione e l'indirizzamento
- Payload di dati che attiva la logica di elaborazione
- Stringa vuota che avvia semplicemente il flusso di lavoro senza input specifico
Elaborare gli eventi del flusso di lavoro
Quando lo streaming è abilitato, l'applicazione riceve gli eventi durante l'esecuzione del flusso di lavoro. Questi eventi consentono di visualizzare lo stato di avanzamento in tempo reale, acquisire gli output dell'agente e rispondere alle azioni del flusso di lavoro.
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}")
I tipi di evento comuni includono:
| Tipo di evento | Description |
|---|---|
response.completed |
Il flusso di lavoro ha terminato l'esecuzione e ha restituito una risposta finale |
response.output_item.done |
Un singolo elemento di output (ad esempio un'azione del flusso di lavoro) completato |
Monitorando questi eventi, è possibile vedere in che modo il flusso di lavoro avanza in tempo reale o attivare azioni esterne in base allo stato del flusso di lavoro. In alternativa, è possibile scegliere di attendere il completamento dell'intero flusso di lavoro ed elaborare la risposta finale senza streaming. Per i flussi di lavoro che includono modelli di ciclo umano, l'applicazione potrebbe dover gestire le pause in cui il flusso di lavoro attende l'input dell'utente. In questi casi, è possibile inviare messaggi aggiuntivi alla conversazione per fornire l'input richiesto e riprendere l'esecuzione del flusso di lavoro.
Vantaggi dell'integrazione del codice
L'integrazione dei flussi di lavoro nel codice consente diversi scenari:
| Scenario | Beneficio |
|---|---|
| Applicazioni Web | Incorporare flussi di lavoro basati sull'intelligenza artificiale direttamente nelle app rivolte agli utenti |
| API e microservizi | Esporre le funzionalità del flusso di lavoro tramite endpoint REST |
| Elaborazione in batch | Richiamare flussi di lavoro programmaticamente per le operazioni di massa. |
| Test e convalida | Automatizzare i test del flusso di lavoro come parte delle pipeline CI/CD |
| Interfacce personalizzate | Creare interfacce utente specializzate personalizzate per casi d'uso specifici del flusso di lavoro |
Combinando l'esperienza di progettazione visiva del portale Foundry con la flessibilità dell'integrazione del codice, è possibile creare potenti soluzioni basate sull'intelligenza artificiale che si adattino perfettamente all'architettura software esistente.