Partilhar via


Utilize o Microsoft Purview SDK com o Agent Framework

A Microsoft Purview oferece capacidades de segurança de dados, conformidade e governação de nível empresarial para aplicações de IA. Ao integrar APIs Purview no SDK do Agent Framework, os programadores podem construir agentes inteligentes que são seguros por design, garantindo ao mesmo tempo que os dados sensíveis nos prompts e respostas são protegidos e cumprem as políticas organizacionais.

Porque integrar o Purview com o Agent Framework?

  • Prevenir fugas de dados sensíveis: Bloqueio em linha de conteúdos sensíveis com base nas políticas de Prevenção de Perda de Dados (DLP).
  • Permitir governação: Registar interações de IA em Auditoria, Conformidade de Comunicação, Gestão de Riscos Internos, eDiscovery e Gestão do Ciclo de Vida de Dados.
  • Acelerar a adoção: Os clientes empresariais exigem conformidade para aplicações de IA. A integração com Purview desbloqueia a implementação.

Pré-requisitos

Antes de começar, certifique-se de que tem:

  • Subscripção Microsoft Azure com Microsoft Purview configurada.
  • Subscrição Microsoft 365 com licença E5 e configuração de faturação pay-as-you-go.
  • SDK do Agent Framework: Para instalar o SDK do Agent Framework:
    • Python: Executa pip install agent-framework --pre.
    • .NET: Instalar a partir do NuGet.

Como integrar o Microsoft Purview no seu agente

No pipeline de middleware de workflow do seu agente, pode adicionar middleware de políticas do Microsoft Purview para intercetar prompts e respostas e determinar se eles cumprem as políticas estabelecidas no Microsoft Purview. O SDK do Agent Framework é capaz de interceptar prompts e respostas de chat entre agentes ou utilizadores finais.

O exemplo de código seguinte demonstra como adicionar o middleware de políticas Microsoft Purview ao código do seu agente. Se és novo no Agent Framework, vê Criar e executar um agente com 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);

Advertência

DefaultAzureCredential é conveniente para o desenvolvimento, mas requer uma consideração cuidadosa na produção. Em produção, considere usar uma credencial específica (por exemplo, ManagedIdentityCredential) para evitar problemas de latência, sondagens não intencionais de credenciais e potenciais riscos de segurança provenientes de mecanismos de recurso.

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())

Próximos passos

Agora que adicionou o código acima ao seu agente, execute os seguintes passos para testar a integração do Microsoft Purview no seu código:

  1. Registo Entra: Registe o teu agente e adiciona as permissões Microsoft Graph necessárias (ProtectionScopes.Compute.All, ContentActivity.Write, Content.Process.All) ao Service Principal. Para mais informações, consulte Registar uma aplicação no Microsoft Entra ID e o tipo de recurso dataSecurityAndGovernance. No próximo passo, vais precisar do ID da aplicação Microsoft Entra.
  2. Políticas do Purview: Configure as políticas do Purview usando o ID da aplicação Microsoft Entra para permitir que os dados das comunicações do agente fluam para o Purview. Para mais informações, consulte Configurar Microsoft Purview.

Recursos