Поделиться через


Использование пакета SDK Microsoft Purview с Agent Framework

Microsoft Purview предоставляет возможности обеспечения безопасности данных корпоративного уровня, соответствия требованиям и управления для приложений искусственного интеллекта. Интегрируя API Purview в пакет SDK для Agent Framework, разработчики могут создавать интеллектуальные агенты, защищенные по проектированию, обеспечивая защиту конфиденциальных данных в запросах и ответах и соответствие политикам организации.

Зачем интегрировать Purview с Agent Framework?

  • Предотвращение утечки конфиденциальных данных: встроенная блокировка конфиденциального содержимого на основе политик защиты от потери данных (DLP).
  • Включение управления: ведение журнала взаимодействий ИИ в Purview для аудита, соответствия требованиям коммуникации, управления внутренними рисками, обнаружения электронных данных и управления жизненным циклом данных.
  • Ускорение внедрения: корпоративным клиентам требуется соответствие приложениям ИИ. Интеграция Purview разблокирует развертывание.

Предпосылки

Прежде чем начать, убедитесь, что у вас есть следующее:

  • Подписка на Microsoft Azure, настроенная с Microsoft Purview.
  • Подписка на Microsoft 365 с лицензией E5 и моделью выставления счетов по мере использования.
  • Пакет SDK для Agent Framework. Чтобы установить пакет SDK для Agent Framework, выполните следующие действия.
    • Python: выполните pip install agent-framework --pre.
    • .NET: установка из NuGet.

Интеграция Microsoft Purview с агентом

В конвейере компонентов промежуточного слоя рабочего процесса агента можно добавить компонент промежуточного слоя политики Microsoft Purview для перехвата ответов и запросов, чтобы определить, соответствуют ли они политикам, установленным в Microsoft Purview. Agent Framework SDK может перехватывать сообщения и ответы в чате между агентами или с конечным пользователем.

В следующем примере кода показано, как добавить ПО промежуточного слоя политики Microsoft Purview в код агента. Если вы не знакомы с Agent Framework, см. статью "Создание и запуск агента с помощью 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);

Предупреждение

DefaultAzureCredential удобно для разработки, но требует тщательного рассмотрения в рабочей среде. В рабочей среде рекомендуется использовать определенные учетные данные (например, ManagedIdentityCredential), чтобы избежать проблем с задержкой, непреднамеренной проверки данных аутентификации и потенциальных рисков безопасности из-за резервных механизмов.

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

Дальнейшие шаги

Теперь, когда вы добавили приведенный выше код в агент, выполните следующие действия, чтобы проверить интеграцию Microsoft Purview с кодом:

  1. Регистрация Entra: Зарегистрируйте вашего агента и добавьте необходимые разрешения Microsoft Graph (ProtectionScopes.Compute.All, ContentActivity.Write, Content.Process.All) для Учетной записи службы. Дополнительные сведения см. в разделе "Регистрация приложения" в типе ресурса Microsoft Entra ID и dataSecurityAndGovernance. На следующем шаге потребуется идентификатор приложения Microsoft Entra.
  2. Политики Purview: Настройте политики Purview, используя идентификатор приложения Microsoft Entra для обеспечения поступления данных агентской связи в Purview. Дополнительные сведения см. в разделе "Настройка Microsoft Purview".

Ресурсы