Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Importante
Le politiche di servizio sono in Beta. Unity Gateway è generalmente disponibile, ma le policy di servizio sono abilitate separatamente. Gli amministratori dello spazio di lavoro possono gestire dalla pagina Previews l'accesso alle policy dei servizi aderendo all'anteprima Unity Ai Gateway Service Policies. Vedere Gestire le anteprime a livello di area di lavoro.
Questo tutorial spiega come aggiungere guardrail a un Model Service, in due modi complementari. Su Azure Databricks, i guardrail sono policy di servizio. Un servizio modello può gestire un modello ospitato Azure Databricks o un provider esterno, ad esempio OpenAI, Anthropic o Google, e si regolano entrambi nello stesso modo:
- Criteri del servizio integrati (misure di protezione): controlli gestiti forniti da Azure Databricks per rischi comuni come PII, contenuti non sicuri, tentativi di jailbreak e allucinazioni. È possibile collegarne uno selezionandolo nell'interfaccia utente, senza codice da scrivere.
- Criteri di servizio personalizzati: funzioni SQL scritte per regole specifiche dell'organizzazione, ad esempio un nome di codice di progetto riservato o un modello di risposta vietato.
Per informazioni sui concetti relativi ai criteri di servizio, sui meccanismi di protezione integrati e sul riferimento completo per la creazione, vedere Criteri di servizio per le risorse proteggibili di AI, Creare e associare un criterio di servizio e Riferimento delle funzioni dei criteri di servizio.
Li colleghi entrambi allo stesso modo, dalla scheda Politiche di un modello di servizio nell'interfaccia Unity Gateway, e puoi mescolarli. Azure Databricks valuta ciascuno in due punti:
- La fase di input (ON CALL) prima che venga invocato il modello.
- La fase di output (ON RESULT) dopo che il modello ha risposto.
Nell'interfaccia utente, selezioni la fase quando associ il criterio. Un criterio personalizzato può anche applicarsi a una sola fase ramificando su event:type.
Scenario: Il tuo team espone un LLM tramite un Model Service (main.default.team_chat) chiamato da app e agenti. Vuoi bloccare contenuti non sicuri o dannosi con una barriera gestita, bloccare qualsiasi prompt che menzioni un progetto riservato e bloccare le risposte che contengono un link non sicuro, tutto senza cambiare il codice applicativo.
Al termine di questa esercitazione, si dispone di:
- Un guardrail integrato per contenuti non sicuri sul servizio.
- Una politica di richiesta personalizzata che blocca un nome in codice confidenziale nella fase di input (ON CALL).
- Una policy di risposta personalizzata che blocca i collegamenti non sicuri nella fase di output (ON RESULT).
- Tutti e tre collegati e verificati dal playground del servizio modello.
Prerequisiti
- Un'area di lavoro abilitata per Unity Catalog. Consulta Introduzione al Catalogo Unity.
- L'anteprima delle Unity Ai Gateway Service Policies è stata attivata per il tuo spazio di lavoro. Un amministratore dello spazio di lavoro lo attiva dalla pagina Anteprime . Vedere Gestire le anteprime a livello di area di lavoro.
- Un servizio modello da gestire e
EXECUTEsu di esso in modo da poter eseguire il test. Per crearne uno, vedi Crea un servizio modello personalizzato . In questa esercitazione viene usatomain.default.team_chat. -
MANAGEnel servizio modello per collegare i criteri. -
CREATE FUNCTIONnello schema in cui si creano le funzioni di criteri personalizzati (main.governancein questo tutorial). - Per il guardrail predefinito: il modello di analizzatore che esegue il controllo del guardrail (il giudice LLM) è pre-selezionato, quindi non è necessaria alcuna configurazione. Se selezioni un valutatore diverso sotto Opzioni avanzate, devi disporre di
EXECUTEsu di esso, oltre aUSE CATALOGeUSE SCHEMAsul relativo catalogo e schema.
Passaggio 1: Applicare una barriera di protezione integrata
Le misure di salvaguardia integrate sono controlli LLM-judge gestiti. Selezioni un'opzione dal menu Tipo di protezione; il servizio del modello di valutazione che esegue il controllo (il giudice LLM) è preselezionato. Le guardrail disponibili sono:
-
Contenuto non sicuro (
system.ai.block_unsafe_content): nega contenuto non sicuro o dannoso. -
Jailbreak (
system.ai.block_jailbreak): nega tentativi di prompt-injection e jailbreak (solo richieste). -
Allucinazione (
system.ai.block_hallucination): nega risposte allucinate (solo risposte).
Attacca la barriera di protezione per contenuti non sicuri al tuo servizio di modellismo:
- Nella barra laterale dell'area di lavoro fare clic su Gateway di intelligenza artificiale.
- Nella scheda Modelli selezionare il servizio modello (
main.default.team_chat). - Aprire la scheda Criteri , quindi fare clic su Nuovo criterio.
- Immettere un nome, ad esempio
block-unsafe-content. - In Applicato a mantenere Tutti gli utenti dell'account o definire l'ambito dei criteri a entità specifiche.
- Nel tipo Guardrail, seleziona Contenuto Pericoloso.
- Imposta Rank su
1. Rank imposta l'ordine di valutazione: la classificazione più bassa viene eseguita per prima sulla richiesta e l'ultima sulla risposta. - In Fase selezionare entrambe le protezioni di input (prima del modello) e le protezioni di output (dopo il modello), quindi la protezione viene eseguita su richieste e risposte.
- Fare clic su Crea regola.
La protezione utilizza un servizio del modello Evaluator preselezionato (il modello LLM che esegue la verifica). Per utilizzare un modello diverso, espandi le opzioni avanzate prima di creare il criterio. Hai bisogno di EXECUTE sul servizio di modello che selezioni, oltre a USE CATALOG e USE SCHEMA nel relativo catalogo e schema.
Note
Dopo aver collegato o modificato un criterio in un servizio modello, attendere un breve periodo di tempo per rendere effettiva la modifica prima del test. Durante la beta delle politiche di servizio, può volerci un paio di minuti per propagarsi.
Passaggio 2: Aggiungere un criterio di richiesta personalizzato
Le guardrail coprono i rischi comuni. Per una regola specifica della tua organizzazione, scrivi una policy personalizzata, o una funzione SQL o una policy LLM-as-a-judge. Questo tutorial utilizza SQL. Una policy SQL personalizzata è un UDF che prende (event VARIANT) e restituisce una decisione. Leggi il testo del messaggio da event:context.message, una proiezione indipendente dall'API dell'ultimo messaggio utente o assistente.
Questo criterio nega qualsiasi richiesta che menziona un nome di codice di progetto riservato. Il event:type::string = 'request' controllo lo confina alla fase di input (IN CHIAMATA):
CREATE OR REPLACE FUNCTION main.governance.block_confidential_codename(
event VARIANT
)
RETURNS VARIANT
LANGUAGE SQL
RETURN
CASE
WHEN event:type::string = 'request'
AND contains(lower(event:context.message::string), 'project aurora')
THEN to_variant_object(named_struct('result', 'DENY', 'reason', 'Requests about confidential projects are not permitted.'))
ELSE to_variant_object(named_struct('result', 'ALLOW', 'reason', ''))
END;
contains e lower fanno parte del sottoinsieme SQL supportato nei corpi dei criteri. Per l'elenco completo e le regole per la scrittura di una funzione di criteri, vedere Informazioni di riferimento sulle funzioni dei criteri di servizio.
Collega la funzione come policy personalizzata, con ambito limitato alla fase di richiesta:
- Nella scheda Criteri del servizio modello fare clic su Nuovo criterio e immettere un nome, ad esempio
block-codename. - In Tipo guardrail selezionare Personalizzato.
- Fare clic su Funzione personalizzata, quindi selezionare la funzione e selezionare
main.governance.block_confidential_codename. - In Fase selezionare solo Guardrail di input (Prima del modello), perché si tratta di un criterio di richiesta.
- Impostare Classifica su
10, quindi fare clic su Crea criterio.
Passaggio 3: Aggiungere un criterio di risposta personalizzato
Un modello può anche restituire contenuti che non vuoi inoltrare. Questo criterio nega una risposta che contiene un collegamento non sicuro (un http:// URL o un javascript: URI). Il event:type::string = 'response' controllo lo limita alla fase di output (ON RESULT), così un utente che si limita a menzionare quegli schemi in un prompt non lo attiva durante l'ingresso:
CREATE OR REPLACE FUNCTION main.governance.block_unsafe_links(
event VARIANT
)
RETURNS VARIANT
LANGUAGE SQL
RETURN
CASE
WHEN event:type::string = 'response'
AND (contains(lower(event:context.message::string), 'http://')
OR contains(lower(event:context.message::string), 'javascript:'))
THEN to_variant_object(named_struct('result', 'DENY', 'reason', 'Response contained an insecure link and was blocked by policy.'))
ELSE to_variant_object(named_struct('result', 'ALLOW', 'reason', ''))
END;
Allega la funzione come policy personalizzata, limitandola alla fase di risposta:
- Nella scheda Criteri fare clic su Nuovo criterio e immettere un nome, ad esempio
block-unsafe-links. - In Tipo guardrail selezionare Personalizzato, quindi selezionare
main.governance.block_unsafe_linksin Funzione personalizzata. - In Fase selezionare solo Guardrail di output (dopo il modello) perché si tratta di un criterio di risposta.
- Impostare Classifica su
20, quindi fare clic su Crea criterio.
Passaggio 4: Verificare
Tutti e tre i criteri vengono ora visualizzati nella scheda Criteri del servizio. Usa il playground per verificare che ciascuno si attivi:
- Nella pagina del servizio modello fare clic su Chat in playground.
- Invia un prompt che richieda contenuti insicuri o dannosi. La barriera contro contenuti non sicuri lo blocca, e la risposta riporta che il contenuto è stato bloccato dalla politica.
- Invia
Tell me about Project Aurora.Il criterio di richiesta lo blocca con il motivo Per cui le richieste relative ai progetti riservati non sono consentite. - Invia un prompt che faccia in modo che il modello restituisca un link
http://. La policy di risposta lo blocca nella fase di output (ON RESULT) con il motivo per cui Response conteneva un link insicuro ed era bloccato dalla policy. - Inviare una richiesta normale. Restituisce un completamento normale.
Per testare il servizio dalle tue app o script, consulta Query foundation e embedded models.
Pulizia
Al termine, rimuovere i criteri nella scheda Criteri : aprire ogni criterio creato ed eliminarlo. Eliminare quindi facoltativamente le funzioni personalizzate:
DROP FUNCTION IF EXISTS main.governance.block_confidential_codename;
DROP FUNCTION IF EXISTS main.governance.block_unsafe_links;