Compartir a través de


Uso del SDK de Microsoft Purview con Agent Framework

Microsoft Purview proporciona funcionalidades de gobernanza, cumplimiento y seguridad de datos de nivel empresarial para aplicaciones de inteligencia artificial. Al integrar las API de Purview en el SDK de Agent Framework, los desarrolladores pueden crear agentes inteligentes seguros por diseño, a la vez que garantizan que los datos confidenciales de las solicitudes y respuestas estén protegidos y sean compatibles con las directivas de la organización.

¿Por qué integrar Purview con Agent Framework?

  • Evitar fugas de datos confidenciales: bloqueo en línea de contenido confidencial en función de las directivas de prevención de pérdida de datos (DLP).
  • Habilitación de la gobernanza: registre las interacciones de INTELIGENCIA ARTIFICIAL en Purview para auditoría, cumplimiento de comunicaciones, administración de riesgos internos, eDiscovery y administración del ciclo de vida de los datos.
  • Aceleración de la adopción: los clientes empresariales requieren cumplimiento para las aplicaciones de IA. La integración de Purview desbloquea la implementación.

Prerrequisitos

Antes de comenzar, asegúrese de que tiene:

  • Suscripción de Microsoft Azure con Microsoft Purview configurado.
  • Suscripción de Microsoft 365 con una licencia E5 y un sistema de facturación de pago por uso.
  • SDK de Agent Framework: para instalar el SDK de Agent Framework:
    • Python: ejecute pip install agent-framework --pre.
    • .NET: instale desde NuGet.

Integración de Microsoft Purview en el agente

En el flujo de trabajo middleware de su agente, puede agregar middleware de políticas de Microsoft Purview para interceptar solicitudes y respuestas, determinando si cumplen con las políticas configuradas en Microsoft Purview. El SDK de Agent Framework es capaz de interceptar las indicaciones y respuestas del cliente de chat, ya sea entre agentes o con el usuario final.

En el ejemplo de código siguiente se muestra cómo agregar el middleware de directivas de Microsoft Purview al código del agente. Si no está familiarizado con Agent Framework, consulte Creación y ejecución de un agente con Agent Framework.


using Azure.AI.OpenAI;
using Azure.Core;
using Azure.Identity;
using Microsoft.Agents.AI;
using Microsoft.Agents.AI.Purview;
using Microsoft.Extensions.AI;
using OpenAI;

string endpoint = Environment.GetEnvironmentVariable("AZURE_OPENAI_ENDPOINT") ?? throw new InvalidOperationException("AZURE_OPENAI_ENDPOINT is not set.");
string deploymentName = Environment.GetEnvironmentVariable("AZURE_OPENAI_DEPLOYMENT_NAME") ?? "gpt-4o-mini";
string purviewClientAppId = Environment.GetEnvironmentVariable("PURVIEW_CLIENT_APP_ID") ?? throw new InvalidOperationException("PURVIEW_CLIENT_APP_ID is not set.");

TokenCredential browserCredential = new InteractiveBrowserCredential(
    new InteractiveBrowserCredentialOptions
    {
        ClientId = purviewClientAppId
    });

AIAgent agent = new AzureOpenAIClient(
    new Uri(endpoint),
    new DefaultAzureCredential())
    .GetChatClient(deploymentName)
    .AsAIAgent("You are a secure assistant.")
    .AsBuilder()
    .WithPurview(browserCredential, new PurviewSettings("My Secure Agent"))
    .Build();

AgentResponse response = await agent.RunAsync("Summarize zero trust in one sentence.").ConfigureAwait(false);
Console.WriteLine(response);

Advertencia

DefaultAzureCredential es conveniente para el desarrollo, pero requiere una consideración cuidadosa en producción. En producción, considere usar una credencial específica (por ejemplo, ManagedIdentityCredential) para evitar problemas de latencia, sondeos de credenciales no deseados y posibles riesgos de seguridad de los mecanismos de respaldo.

import asyncio
import os
from agent_framework import Agent, Message, Role
from agent_framework.azure import AzureOpenAIChatClient
from agent_framework.microsoft import PurviewPolicyMiddleware, PurviewSettings
from azure.identity import AzureCliCredential, InteractiveBrowserCredential

# Set default environment variables if not already set
os.environ.setdefault("AZURE_OPENAI_ENDPOINT", "<azureOpenAIEndpoint>")
os.environ.setdefault("AZURE_OPENAI_CHAT_DEPLOYMENT_NAME", "<azureOpenAIChatDeploymentName>")

async def main():
    chat_client = AzureOpenAIChatClient(credential=AzureCliCredential())
    purview_middleware = PurviewPolicyMiddleware(
        credential=InteractiveBrowserCredential(
            client_id="<clientId>",
        ),
        settings=PurviewSettings(app_name="My Secure Agent")
    )
    agent = Agent(
        chat_client=chat_client,
        instructions="You are a secure assistant.",
        middleware=[purview_middleware]
    )
    response = await agent.run(Message(role='user', contents=["Summarize zero trust in one sentence."]))
    print(response)

  if __name__ == "__main__":
    asyncio.run(main())

Pasos siguientes

Ahora que ha agregado el código anterior al agente, realice los pasos siguientes para probar la integración de Microsoft Purview en el código:

  1. Registro de Entra: Registre el agente y agregue los permisos necesarios de Microsoft Graph (ProtectionScopes.Compute.All, ContentActivity.Write, Content.Process.All) a la entidad de servicio. Para obtener más información, consulte Registrar una aplicación en Microsoft Entra ID y el tipo de recurso dataSecurityAndGovernance. Necesitará el identificador de aplicación de Microsoft Entra en el paso siguiente.
  2. Directivas de Purview: configure directivas de Purview mediante el identificador de aplicación de Microsoft Entra para permitir que los datos de comunicaciones del agente fluyan a Purview. Para obtener más información, vea Configurar Microsoft Purview.

Recursos