Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Клиентские библиотеки API Microsoft 365 Copilot предназначены для упрощения разработки высококачественных, эффективных и устойчивых решений ИИ, которые получают доступ к API-интерфейсам Copilot. К этим библиотекам относятся служебные и основные библиотеки.
Библиотеки служб предлагают модели и построитель запросов, которые предоставляют широкие возможности для работы с MICROSOFT 365 COPILOT API.
Основные библиотеки предлагают расширенные функции для упрощения взаимодействия с API-интерфейсами Copilot. Эти функции включают встроенную поддержку обработки повторных попыток, безопасных перенаправлений, прозрачной проверки подлинности и сжатия полезных данных. Эти возможности помогают повысить качество взаимодействия решения ИИ с API-интерфейсами Copilot без дополнительных сложностей. Кроме того, основные библиотеки упрощают рутинные задачи, такие как разбиение по страницам по коллекциям и создание пакетных запросов.
Поддерживаемые языки
Клиентские библиотеки API Copilot в настоящее время доступны для следующих языков:
Клиентские библиотеки в состоянии предварительной версии
Клиентские библиотеки API Copilot могут находиться в состоянии предварительной версии при первоначальном выпуске или после значительного обновления. Избегайте использования предварительного выпуска этих библиотек в рабочих решениях независимо от того, используется ли в вашем решении версия 1.0 или бета-версия API Copilot.
Поддержка клиентских библиотек
Библиотеки API Copilot — это проекты с открытым кодом на GitHub. Если вы столкнулись с ошибкой, отправьте сообщение о проблеме с подробными сведениями на вкладке Проблемы . При необходимости участники просматривают и выпускают исправления.
Установка библиотек
Клиентские библиотеки API Copilot включены в качестве модуля в Пакет SDK агентов Microsoft 365. Эти библиотеки можно включить в проекты с помощью GitHub и популярных диспетчеров пакетов платформы.
Установка клиентских библиотек API Copilot .NET
Клиентские библиотеки API Copilot .NET доступны в следующих пакетах NuGet:
- Microsoft.Agents.M365Copilot — содержит модели и построитель запросов для доступа к конечной точке версии 1.0. Microsoft.Agents.M365Copilot зависит от Microsoft.Agents.M365Copilot.Core. Та же структура зависимостей также применяется к библиотекам TypeScript и Python.
- Microsoft.Agents.M365Copilot.Beta — содержит модели и построитель запросов для доступа к бета-точке. Microsoft.Agents.M365Copilot.Beta имеет зависимость от Microsoft.Agents.M365Copilot.Core. Та же структура зависимостей также применяется к библиотекам TypeScript и Python.
- Microsoft.Agents.M365Copilot.Core — основная библиотека для вызовов API Copilot.
Чтобы установить пакеты Microsoft.Agents.M365Copilot в проекте, используйте интерфейс командной строки dotnet, пользовательский интерфейс диспетчера пакетов в Visual Studio или консоль диспетчера пакетов в Visual Studio.
dotnet CLI
Для конечной точки версии 1.0:
dotnet add package Microsoft.Agent.M365Copilot
Для бета-версии конечной точки:
dotnet add package Microsoft.Agent.M365Copilot.Beta
Консоль диспетчера пакетов
Для конечной точки версии 1.0:
Install-Package Microsoft.Agent.M365Copilot
Для бета-версии конечной точки:
Install-Package Microsoft.Agent.M365Copilot.Beta
Установка клиентских библиотек Python api Copilot
Клиентские библиотеки Python API Copilot доступны в индексе пакета Python.
Для конечной точки версии 1.0:
pip install microsoft-agents-m365copilot
Для бета-версии конечной точки:
pip install microsoft-agents-m365copilot-beta
Установка клиентских библиотек API Copilot TypeScript
Клиентские библиотеки Api Api Copilot TypeScript доступны в npm.
Для конечной точки версии 1.0:
npm install @microsoft/agents-m365copilot –save
Для бета-версии конечной точки:
npm install @microsoft/agents-m365copilot-beta –save
Создание клиента API Copilot и вызов API
В следующем примере кода показано, как создать экземпляр клиента API Microsoft 365 Copilot с поставщиком проверки подлинности на поддерживаемых языках. Поставщик проверки подлинности обрабатывает получение маркеров доступа для приложения. Для каждого языка и платформы доступно множество различных поставщиков проверки подлинности. Разные поставщики проверки подлинности поддерживают разные клиентские сценарии. Дополнительные сведения о поставщике и параметрах, подходящих для вашего сценария, см. в разделе Выбор поставщика проверки подлинности.
В примере также показано, как выполнить вызов API извлечения. Чтобы вызвать этот API, сначала необходимо создать объект запроса, а затем запустить метод POST в запросе.
Идентификатор клиента — это идентификатор регистрации приложения, который создается при регистрации приложения в портал 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);
}