Custom Question Answering è la feature di Azure AI Language che consente di costruire un livello conversazionale di domanda-risposta a partire dal tuo materiale esistente. È l’evoluzione di QnA Maker (deprecato) e ne eredita il modello: una knowledge base di coppie domanda/risposta interrogabile via endpoint REST o SDK. Nell’esame AI-102 devi saper scegliere quando usarla, come popolarla e come integrarla in un’architettura più ampia.
Ingestion e costruzione della knowledge base
Il valore di CQA sta nella rapidità di ingestion da fonti eterogenee, senza scrivere manualmente ogni coppia:
- URL: pagine di supporto o FAQ pubbliche; l’estrattore riconosce automaticamente il formato domanda-risposta.
- Documenti: PDF, DOCX, TSV, file Excel/multiturn. Da testo non strutturato il servizio estrae candidate QnA pairs.
- FAQ e coppie manuali: puoi aggiungere, modificare o correggere singole coppie nel portale (Language Studio).
Ogni voce può avere più domande alternative (parafrasi) e metadati usati per filtrare le risposte a runtime.
Chit-chat e sinonimi
Puoi aggiungere un dataset di chit-chat (personalità predefinite come Professional, Friendly, Witty) per gestire convenevoli (“ciao”, “grazie”) senza inquinare la KB di dominio. I sinonimi (word alterations) migliorano il matching quando gli utenti usano termini diversi dalla KB (es. “SSO” ≈ “single sign-on”): è la leva giusta quando le risposte esistono ma non vengono trovate per mismatch lessicale.
Confidence threshold e conversazioni multi-turn
A ogni interrogazione il servizio restituisce risposte candidate con un confidence score (0–100). Devi impostare una confidence threshold: sotto la soglia, meglio restituire un fallback (“Non ho trovato una risposta”) o inoltrare a un operatore, piuttosto che dare una risposta a bassa affidabilità. Il tuning della soglia è una scelta architetturale ricorrente nelle domande d’esame.
Le conversazioni multi-turn si realizzano con i follow-up prompt: una risposta può esporre opzioni successive collegate ad altre coppie della KB, mantenendo il contesto tra i turni. È il pattern per menù guidati (es. “Vuoi resettare la password o sbloccare l’account?”) senza logica applicativa esterna.
L’active learning suggerisce nuove domande alternative dal traffico reale: le approvi e riaddestri per migliorare progressivamente il matching.
Deployment e test
Il flusso operativo è: costruisci e salvi la KB, la testi nel riquadro interattivo di Language Studio (con ispezione dello score), poi esegui il deploy che pubblica la KB su un prediction endpoint. L’app client chiama l’endpoint passando project name e deployment name. Ricorda: le modifiche non sono live finché non ridistribuisci.
Risorse sottostanti: attenzione all’Azure AI Search
Punto chiave d’esame: CQA è una feature di una risorsa Azure AI Language, ma per l’indicizzazione e il retrieval si appoggia a una risorsa Azure AI Search (ex Cognitive Search) collegata. Servono quindi entrambe le risorse; il numero di KB e la loro dimensione dipendono dal tier di Azure AI Search scelto.
Quando NON usare CQA: RAG e orchestration
CQA fa retrieval estrattivo su coppie curate: eccellente per FAQ stabili, deterministico e citabile. Ma non genera testo. Se lo scenario richiede risposte generative, riassuntive e citate su un corpus ampio e non strutturato, la scelta corretta è un pattern RAG (Retrieval-Augmented Generation): Azure AI Search come retriever + un modello in Azure AI Foundry per la generazione.
Quando invece l’app deve gestire sia intent/azioni sia Q&A, combini CQA con Conversational Language Understanding (CLU) dentro un progetto di orchestration workflow: l’orchestratore instrada ogni utterance verso il progetto CLU (per gli intent) o verso la KB di CQA (per le domande informative).
Trappole tipiche d’esame
- Scenario: devi creare una KB per FAQ ma manca l’indicizzazione → risposta giusta: provisiona una risorsa Azure AI Search collegata alla risorsa Language; CQA non funziona senza di essa.
- Scenario: serve una risposta generativa e citata su migliaia di documenti aziendali → risposta giusta: non CQA, ma un pattern RAG (Azure AI Search + modello in Azure AI Foundry).
- Scenario: un bot deve gestire sia comandi/azioni sia domande informative → risposta giusta: orchestration workflow che combina CLU e Custom Question Answering.
- Scenario: le risposte esistono nella KB ma non vengono trovate per termini diversi → risposta giusta: aggiungi sinonimi/alterations e domande alternative, non ricreare le coppie.
- Scenario: il bot restituisce risposte a bassa affidabilità → risposta giusta: alza la confidence threshold e definisci un fallback, non modificare le coppie.
- Scenario: hai aggiornato le coppie ma il bot risponde ancora come prima → risposta giusta: esegui di nuovo il deploy; le modifiche non sono attive finché la KB non è ridistribuita.