Bibliotecas de cliente de APIs do Microsoft 365 Copilot

As bibliotecas de cliente de APIs do Microsoft 365 Copilot são projetadas para facilitar o desenvolvimento de soluções de IA de alta qualidade, eficientes e resilientes que acessam as APIs do Copilot. Essas bibliotecas incluem bibliotecas de serviço e principais.

As bibliotecas de serviço oferecem modelos e construtores de solicitações que fornecem uma experiência avançada e tipada para trabalhar com as APIs do Microsoft 365 Copilot.

As bibliotecas principais oferecem recursos avançados para facilitar as interações com as APIs do Copilot. Esses recursos incluem suporte incorporado para tratamento de repetição, redirecionamentos seguros, autenticação transparente e compactação de conteúdo. Esses recursos ajudam você a melhorar a qualidade das comunicações da sua solução de IA com as APIs do Copilot sem adicionar complexidade. Além disso, as bibliotecas principais simplificam tarefas rotineiras, como paginação por meio de coleções e criação de solicitações em lote.

Idiomas compatíveis

As bibliotecas de cliente de APIs do Copilot estão atualmente disponíveis para os seguintes idiomas:

Bibliotecas de cliente em status de visualização

As bibliotecas de cliente de APIs do Copilot podem estar em status de visualização quando lançadas inicialmente ou após uma atualização significativa. Evite usar a versão prévia dessas bibliotecas em soluções de produção, independentemente de sua solução usar a versão 1.0 ou a versão beta das APIs do Copilot.

Suporte a bibliotecas de cliente

As bibliotecas de API do Copilot são projetos de código aberto no GitHub. Se você encontrar um bug, registre um problema com os detalhes na guia Problemas . Os colaboradores examinam e lançam correções conforme necessário.

Instalar as bibliotecas

As bibliotecas de cliente da API do Copilot estão incluídas como um módulo no SDK de Agentes do Microsoft 365 SDK de Agentes do Microsoft 365. Essas bibliotecas podem ser incluídas em seus projetos por meio do GitHub e gerenciadores de pacotes de plataforma populares.

Instalar as APIs do Copilot bibliotecas de cliente .NET

As APIs do Copilot bibliotecas de cliente .NET estão disponíveis nos seguintes pacotes NuGet:

  • Microsoft.Agents.M365Copilot - Contém os modelos e construtores de solicitações para acessar o ponto de extremidade v1.0. Microsoft.Agents.M365Copilot tem uma dependência em Microsoft.Agents.M365Copilot.Core. A mesma estrutura de dependência também se aplica às bibliotecas TypeScript e Python.
  • Microsoft.Agents.M365Copilot.Beta - Contém os modelos e construtores de solicitações para acessar o ponto de extremidade beta. Microsoft.Agents.M365Copilot.Beta tem uma dependência em Microsoft.Agents.M365Copilot.Core. A mesma estrutura de dependência também se aplica às bibliotecas TypeScript e Python.
  • Microsoft.Agents.M365Copilot.Core – a biblioteca principal para fazer chamadas para as APIs do Copilot.

Para instalar os pacotes Microsoft.Agents.M365Copilot em seu projeto, use o dotnet CLI, a interface do usuário do Gerenciador de Pacotes no Visual Studio ou o Console do Gerenciador de Pacotes no Visual Studio.

dotnet CLI

Para o ponto de extremidade v1.0:

dotnet add package Microsoft.Agent.M365Copilot

Para o ponto de extremidade beta:

dotnet add package Microsoft.Agent.M365Copilot.Beta

Console do Gerenciador de Pacotes

Para o ponto de extremidade v1.0:

Install-Package Microsoft.Agent.M365Copilot

Para o ponto de extremidade beta:

Install-Package Microsoft.Agent.M365Copilot.Beta

Instalar as APIs do Copilot bibliotecas de cliente Python

As APIs do Copilot e as bibliotecas de cliente do Python estão disponíveis no Índice de Pacotes do Python.

Para o ponto de extremidade v1.0:

pip install microsoft-agents-m365copilot

Para o ponto de extremidade beta:

pip install microsoft-agents-m365copilot-beta

Instalar as APIs do Copilot bibliotecas de cliente TypeScript

As bibliotecas de cliente TypeScript das APIs do Copilot estão disponíveis no npm.

Para o ponto de extremidade v1.0:

npm install @microsoft/agents-m365copilot –save

Para o ponto de extremidade beta:

npm install @microsoft/agents-m365copilot-beta –save

Criar um cliente de APIs do Copilot e fazer uma chamada à API

O exemplo de código a seguir mostra como criar uma instância de um cliente de APIs do Microsoft 365 Copilot com um provedor de autenticação nos idiomas com suporte. O provedor de autenticação lida com a aquisição de tokens de acesso para o aplicativo. Muitos provedores de autenticação diferentes estão disponíveis para cada idioma e plataforma. Os diferentes provedores de autenticação dão suporte a diferentes cenários de cliente. Para obter detalhes sobre qual provedor e opções são apropriados para seu cenário, consulte Escolher um provedor de autenticação.

O exemplo também mostra como fazer uma chamada para a API de recuperação. Para chamar essa API, primeiro você precisa criar um objeto de solicitação e, em seguida, executar o método POST na solicitação.

A ID do cliente é a ID de registro do aplicativo gerada quando você registra seu aplicativo no portal do Azure.

using Azure.Identity;
using Microsoft.Agents.M365Copilot;
using Microsoft.Agents.M365Copilot.Models;
using Microsoft.Agents.M365Copilot.Copilot.Retrieval;

var scopes = new[] {"Files.Read.All", "Sites.Read.All"};

// Multi-tenant apps can use "common",
// single-tenant apps must use the tenant ID from the Azure portal
var tenantId = "YOUR_TENANT_ID";

// Value from app registration
var clientId = "YOUR_CLIENT_ID";

// using Azure.Identity;
var deviceCodeCredentialOptions = new DeviceCodeCredentialOptions
{
   ClientId = clientId,
   TenantId = tenantId,
   // Callback function that receives the user prompt
   // Prompt contains the generated device code that user must
   // enter during the auth process in the browser
   DeviceCodeCallback = (deviceCodeInfo, cancellationToken) =>
   {
       Console.WriteLine(deviceCodeInfo.Message);
       return Task.CompletedTask;
   },
};

// https://learn.microsoft.com/dotnet/api/azure.identity.devicecodecredential
var deviceCodeCredential = new DeviceCodeCredential(deviceCodeCredentialOptions);


//Create the client
AgentsM365CopilotServiceClient client = new AgentsM365CopilotServiceClient (deviceCodeCredential, scopes, baseURL);

try
{
  var requestBody = new RetrievalPostRequestBody
  {
      DataSource = RetrievalDataSource.SharePoint,
      QueryString = "What is the latest in my organization?",
      MaximumNumberOfResults = 10
  };

  var result = await client.Copilot.Retrieval.PostAsync(requestBody);
  Console.WriteLine($"Retrieval post: {result}");

  if (result != null)
  {
    Console.WriteLine("Retrieval response received successfully");
    Console.WriteLine("\nResults:");
    Console.WriteLine(result.RetrievalHits.Count.ToString());
    if (result.RetrievalHits != null)
    {
       foreach (var hit in result.RetrievalHits)
       {
         Console.WriteLine("\n---");
         Console.WriteLine($"Web URL: {hit.WebUrl}");
         Console.WriteLine($"Resource Type: {hit.ResourceType}");
         if (hit.Extracts != null && hit.Extracts.Any())
         {
            Console.WriteLine("\nExtracts:");
            foreach (var extract in hit.Extracts)
            {
              Console.WriteLine($"  {extract.Text}");
            }
          }
          if (hit.SensitivityLabel != null)
          {
            Console.WriteLine("\nSensitivity Label:");
            Console.WriteLine($"  Display Name: {hit.SensitivityLabel.DisplayName}");
            Console.WriteLine($"  Tooltip: {hit.SensitivityLabel.Tooltip}");
            Console.WriteLine($"  Priority: {hit.SensitivityLabel.Priority}");
            Console.WriteLine($"  Color: {hit.SensitivityLabel.Color}");
            if (hit.SensitivityLabel.IsEncrypted.HasValue)
            {
              Console.WriteLine($"  Is Encrypted: {hit.SensitivityLabel.IsEncrypted.Value}");
            }
          }
        }
      }
      else
      {
        Console.WriteLine("No retrieval hits found in the response");
      }
  }
}
catch (Exception ex)
{
    Console.WriteLine($"Error making retrieval request: {ex.Message}");
    Console.Error.WriteLine(ex);
}