Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Las bibliotecas cliente Microsoft 365 Copilot API están diseñadas para facilitar el desarrollo de soluciones de inteligencia artificial resistentes, eficientes y de alta calidad que acceden a las API de Copilot. Estas bibliotecas incluyen bibliotecas básicas y de servicio.
Las bibliotecas de servicio ofrecen modelos y generadores de solicitudes que proporcionan una experiencia enriquecida y con tipos para trabajar con Microsoft 365 Copilot API.
Las bibliotecas principales ofrecen características avanzadas para facilitar las interacciones con las API de Copilot. Estas características incluyen compatibilidad incrustada para el control de reintentos, redireccionamientos seguros, autenticación transparente y compresión de carga. Estas funcionalidades le ayudan a mejorar la calidad de las comunicaciones de la solución de inteligencia artificial con las API de Copilot sin agregar complejidad. Además, las bibliotecas principales simplifican las tareas rutinarias, como la paginación a través de colecciones y la creación de solicitudes por lotes.
Idiomas admitidos
Las bibliotecas cliente de las API de Copilot están disponibles actualmente para los siguientes idiomas:
Bibliotecas cliente en estado de versión preliminar
Las bibliotecas cliente de las API de Copilot pueden estar en estado de versión preliminar cuando se publiquen inicialmente o después de una actualización significativa. Evite usar la versión preliminar de estas bibliotecas en soluciones de producción, independientemente de si la solución usa la versión 1.0 o la versión beta de las API de Copilot.
Compatibilidad con bibliotecas cliente
Las bibliotecas de api de Copilot son proyectos de código abierto en GitHub. Si encuentra un error, escriba un problema con los detalles de la pestaña Problemas . Los colaboradores revisan y liberan las correcciones según sea necesario.
Instalación de las bibliotecas
Las bibliotecas cliente de la API de Copilot se incluyen como un módulo en el SDK de agentes de Microsoft 365. Estas bibliotecas se pueden incluir en los proyectos a través de GitHub y administradores de paquetes de plataforma populares.
Instalación de las bibliotecas cliente de .NET de las API de Copilot
Las bibliotecas cliente de .NET de las API de Copilot están disponibles en los siguientes paquetes NuGet:
- Microsoft.Agents.M365Copilot.Beta : contiene los modelos y generadores de solicitudes para acceder al punto de conexión beta. Microsoft.Agents.M365Copilot.Beta tiene una dependencia de Microsoft.Agents.M365Copilot.Core. La misma estructura de dependencias se aplica también a las bibliotecas de TypeScript y Python.
- Microsoft.Agents.M365Copilot.Core : la biblioteca principal para realizar llamadas a las API de Copilot.
Para instalar los paquetes Microsoft.Agents.M365Copilot en el proyecto, use la CLI de dotnet, la interfaz de usuario del Administrador de paquetes en Visual Studio o la consola del Administrador de paquetes en Visual Studio.
CLI de dotnet
dotnet add package Microsoft.Agent.M365Copilot.Beta
Consola del Administrador de paquetes
Install-Package Microsoft.Agent.M365Copilot.Beta
Creación de un cliente de API de Copilot y realización de una llamada API
En el ejemplo de código siguiente se muestra cómo crear una instancia de un cliente de API de Microsoft 365 Copilot con un proveedor de autenticación en los idiomas admitidos. El proveedor de autenticación controla la adquisición de tokens de acceso para la aplicación. Hay muchos proveedores de autenticación diferentes disponibles para cada lenguaje y plataforma. Los distintos proveedores de autenticación admiten diferentes escenarios de cliente. Para obtener más información sobre qué proveedor y opciones son adecuadas para su escenario, consulte Elegir un proveedor de autenticación.
En el ejemplo también se muestra cómo realizar una llamada a la API de recuperación. Para llamar a esta API, primero debe crear un objeto de solicitud y, a continuación, ejecutar el método POST en la solicitud.
El identificador de cliente es el identificador de registro de la aplicación que se genera al registrar la aplicación en el Azure Portal.
using Azure.Identity;
using Microsoft.Agents.M365Copilot.Beta;
using Microsoft.Agents.M365Copilot.Beta.Models;
using Microsoft.Agents.M365Copilot.Beta.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 with explicit base URL
var baseURL = “https://graph.microsoft.com/beta”;
AgentsM365CopilotBetaServiceClient client = new AgentsM365CopilotBetaServiceClient (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);
}