Partager via


Bibliothèques clientes d’API Microsoft 365 Copilot

Les bibliothèques clientes d’API Microsoft 365 Copilot sont conçues pour faciliter le développement de solutions IA de haute qualité, efficaces et résilientes qui accèdent aux API Copilot. Ces bibliothèques incluent les bibliothèques de service et de base.

Les bibliothèques de service offrent des modèles et des générateurs de requêtes qui fournissent une expérience riche et typée pour l’utilisation des API Microsoft 365 Copilot.

Les bibliothèques principales offrent des fonctionnalités avancées pour faciliter les interactions avec les API Copilot. Ces fonctionnalités incluent la prise en charge incorporée de la gestion des nouvelles tentatives, des redirections sécurisées, de l’authentification transparente et de la compression de charge utile. Ces fonctionnalités vous aident à améliorer la qualité des communications de votre solution IA avec les API Copilot sans ajouter de complexité. En outre, les bibliothèques de base simplifient les tâches de routine telles que la pagination dans les collections et la création de demandes de traitement par lots.

Langues prises en charge

Les bibliothèques clientes des API Copilot sont actuellement disponibles pour les langues suivantes :

Bibliothèques clientes en préversion status

Les bibliothèques clientes des API Copilot peuvent être en préversion status lors de leur publication initiale ou après une mise à jour significative. Évitez d’utiliser la préversion de ces bibliothèques dans les solutions de production, que votre solution utilise la version 1.0 ou la version bêta des API Copilot.

Prise en charge des bibliothèques clientes

Les bibliothèques d’API Copilot sont des projets open source sur GitHub. Si vous rencontrez un bogue, créez un problème avec les détails sous l’onglet Problèmes . Les contributeurs examinent et publient les correctifs si nécessaire.

Installer les bibliothèques

Les bibliothèques clientes de l’API Copilot sont incluses en tant que module dans le Microsoft 365 Agents SDK. Ces bibliothèques peuvent être incluses dans vos projets via GitHub et les gestionnaires de packages de plateforme populaires.

Installer les bibliothèques clientes .NET des API Copilot

Les bibliothèques clientes .NET des API Copilot sont disponibles dans les packages NuGet suivants :

  • Microsoft.Agents.M365Copilot : contient les modèles et les générateurs de demandes pour accéder au point de terminaison v1.0. Microsoft.Agents.M365Copilot a une dépendance sur Microsoft.Agents.M365Copilot.Core. La même structure de dépendance s’applique également aux bibliothèques TypeScript et Python.
  • Microsoft.Agents.M365Copilot.Beta : contient les modèles et les générateurs de requêtes pour accéder au point de terminaison bêta. Microsoft.Agents.M365Copilot.Beta a une dépendance sur Microsoft.Agents.M365Copilot.Core. La même structure de dépendance s’applique également aux bibliothèques TypeScript et Python.
  • Microsoft.Agents.M365Copilot.Core : bibliothèque de base pour effectuer des appels aux API Copilot.

Pour installer les packages Microsoft.Agents.M365Copilot dans votre projet, utilisez l’interface CLI dotnet, l’interface utilisateur du Gestionnaire de package dans Visual Studio ou la console du Gestionnaire de package dans Visual Studio.

DOTNET CLI

Pour le point de terminaison v1.0 :

dotnet add package Microsoft.Agent.M365Copilot

Pour le point de terminaison bêta :

dotnet add package Microsoft.Agent.M365Copilot.Beta

Console du Gestionnaire de package

Pour le point de terminaison v1.0 :

Install-Package Microsoft.Agent.M365Copilot

Pour le point de terminaison bêta :

Install-Package Microsoft.Agent.M365Copilot.Beta

Installer les bibliothèques clientes Python des API Copilot

Les bibliothèques clientes Python des API Copilot sont disponibles dans l’index de package Python.

Pour le point de terminaison v1.0 :

pip install microsoft-agents-m365copilot

Pour le point de terminaison bêta :

pip install microsoft-agents-m365copilot-beta

Installer les bibliothèques clientes TypeScript des API Copilot

Les bibliothèques clientes TypeScript des API Copilot sont disponibles dans npm.

Pour le point de terminaison v1.0 :

npm install @microsoft/agents-m365copilot –save

Pour le point de terminaison bêta :

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

Créer un client d’API Copilot et effectuer un appel d’API

L’exemple de code suivant montre comment créer un instance d’un client d’API Microsoft 365 Copilot avec un fournisseur d’authentification dans les langues prises en charge. Le fournisseur d’authentification gère l’acquisition de jetons d’accès pour l’application. De nombreux fournisseurs d’authentification différents sont disponibles pour chaque langue et chaque plateforme. Les différents fournisseurs d’authentification prennent en charge différents scénarios clients. Pour plus d’informations sur le fournisseur et les options qui conviennent à votre scénario, consultez Choisir un fournisseur d’authentification.

L’exemple montre également comment effectuer un appel à l’API de récupération. Pour appeler cette API, vous devez d’abord créer un objet de requête, puis exécuter la méthode POST sur la requête.

L’ID client est l’ID d’inscription d’application qui est généré lorsque vous inscrivez votre application dans le Portail 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);
}