Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Применяется к: Для разработчиков
Возможности агента SharePoint Embedded позволяют приложению отвечать на вопросы по файлам, хранящимся в контейнерах SharePoint Embedded. Два отдельных продукта основывают этот опыт на содержимом контейнера:
- Служба агента Microsoft Foundry с источником знаний SharePoint — для агентов, создаваемых на основе Foundry. Foundry выполняет извлечение для вас как часть агента. Инструкции по настройке см. в статье Настройка SharePoint Embedded в качестве источника знаний Foundry.
- API получения Microsoft 365 Copilot — для настраиваемых агентов и приложений, которые выполняют собственный шаг граундинга. Вызывайте его из любого приложения, включая агент Foundry, который не использует источник знаний SharePoint.
Выберите источник знаний, если вы хотите, чтобы Foundry управлял извлечением и оркестрацией агента. Выберите API извлечения, если вы хотите самостоятельно управлять этапом граундинга, запросом и моделью.
Принцип обоснования агентов в SharePoint Embedded
SharePoint Embedded основывает агентов ИИ на корпоративном контенте, сохраняя этот контент и элементы управления соответствием требованиям в клиенте Microsoft 365 клиента. Вы не копируете контент во внешнюю векторную базу данных. Ключевые факты:
- Обнаружение содержимого — это параметр типа контейнера, который определяет, может ли Microsoft 365 Copilot отображать содержимое. Управление клиентами управляет этим параметром, поэтому приложение не может предоставлять содержимое, изменяя собственную конфигурацию.
-
Извлекайте содержимое с помощью API Поиска (Майкрософт), ограниченного идентификатором типа контейнера (
ContainerTypeId), или с помощью источника знаний Foundry SharePoint. - Содержимое остается в клиенте Microsoft 365 клиента, поэтому применяются защита от потери данных Microsoft Purview, хранение и обнаружение электронных данных.
- Ничто не выставляется автоматически. Контент SharePoint Embedded недоступен Copilot, пока обнаружение не будет включено для типа контейнера.
Для контекста решения см. Наземный ИИ без внешней векторной базы данных.
Предостережение
Предыдущая версия пакета SDK агента SharePoint Embedded (элемент управления ReactChatEmbedded) устарела в марте 2026 года и заменена службой агента Microsoft Foundry систочником знаний SharePoint (предварительная версия), настроенным для SharePoint Embedded. Используйте один из двух вариантов в этой статье для новой работы.
Использование API извлечения
API получения Microsoft 365 Copilot возвращает извлеченный текст, который приложение передает в собственную модель в качестве данных заземления. Установите dataSource значение sharePointEmbedded "Извлекать контент из SharePoint Embedded".
Примечание.
Поддержка API извлечения для sharePointEmbedded источника данных доступна в предварительной версии.
Предварительные требования API для получения
- Приложение SharePoint Embedded по крайней мере с одним контейнером и идентификатором типа контейнера.
- Оплата по мере использования настроена для типа контейнера.
- По крайней мере один пользователь в клиенте с лицензией на Microsoft 365 Copilot, поэтому семантический индекс инициализируется. Дополнительные сведения см. в разделе Семантический индекс для Microsoft 365 Copilot.
Счет sharePointEmbedded за использование источником данных взимается по мере использования, поэтому каждому пользователю, запрашивающему API извлечения, не требуется индивидуальная лицензия на Microsoft 365 Copilot.
Получение содержимого из контейнеров типа
Звонок POST /copilot/retrieval с использованием делегированного маркера. Установите dataSource и sharePointEmbedded передайте идентификатор типа контейнера в dataSourceConfiguration. Для запроса требуется делегированное FileStorageContainer.Selected разрешение, и служба обрезает результаты до содержимого, доступного вошедшему пользователю.
POST https://graph.microsoft.com/v1.0/copilot/retrieval
Content-Type: application/json
{
"queryString": "What are the terms of the Contoso agreement?",
"dataSource": "sharePointEmbedded",
"dataSourceConfiguration": {
"sharePointEmbedded": {
"containerTypeId": "{containerTypeId}"
}
}
}
Замените {containerTypeId} на свой ИД типа контейнера.
В ответ будет возвращена retrievalHits коллекция. Каждое попадание идентифицирует исходный файл и webUrl несет в себе один или несколько extracts, упорядоченных по relevanceScore.
{
"retrievalHits": [
{
"webUrl": "https://contoso.com/spe/file",
"extracts": [
{
"text": "The agreement renews annually unless either party gives 30 days' notice.",
"relevanceScore": 0.8421
}
]
}
]
}
Форма webUrl зависит от параметра типа контейнера urlTemplate , поэтому рассматривайте его как непрозрачную ссылку, а не как синтаксический разбор. Чтобы разрешить сведения о файле, вызовите Get a driveItem. Дополнительные сведения о urlTemplate, см. Создание и настройка типа контейнера.
Чтобы возвращать дополнительные поля, такие как titleauthor каждое обращение, добавьте resourceMetadata в запрос коллекцию. Запрашивайте только те поля, которые использует приложение, так как каждое поле добавляется к полезным данным ответа.
Передайте извлечения в свою собственную модель или на шаг генерации ответов в качестве данных заземления. Этот фрагмент отправляет запрос и считывает верхнюю часть каждого обращения:
const response = await fetch("https://graph.microsoft.com/v1.0/copilot/retrieval", {
method: "POST",
headers: {
"Content-Type": "application/json",
Authorization: `Bearer ${accessToken}`
},
body: JSON.stringify({
queryString: query,
dataSource: "sharePointEmbedded",
dataSourceConfiguration: {
sharePointEmbedded: { containerTypeId: containerTypeId }
}
})
});
const data = await response.json();
const grounding = (data.retrievalHits ?? []).map(hit => ({
url: hit.webUrl,
text: hit.extracts?.[0]?.text?.trim(),
score: hit.extracts?.[0]?.relevanceScore
}));
Извлечение охватывает каждый контейнер данного типа, доступ к которому есть у вошедшего пользователя. Если запрос не возвращает попадания, убедитесь, что семантический индекс инициализирован, индексирование завершено и что у пользователя есть доступ к содержимому.
Получение выставления счетов через API
Запросы API извлечения, использующие sharePointEmbedded счет источника данных на счетчике сообщений Copilot Studio. Платежи производятся в соответствии с моделью выставления счетов, настроенной для конкретного типа контейнера. При выставлении счетов Standard взимается плата за подписку клиента Azure, а при сквозном выставлении счетов — подписка клиента-потребителя.
Подробные сведения о счетчиках см. в разделе Счетчики выставления счетов. Чтобы сравнить модели, см. раздел "Выбор модели выставления счетов".
Проверка взаимодействия с пользователем
Войдите с помощью пользователя, который может получить доступ к содержимому контейнера. Загрузите поддерживаемые файлы в контейнер, дождитесь индексирования, откройте чат и задайте вопросы, на которые может ответить содержимое файла. Если в ответах отсутствуют ожидаемые файлы, выполните следующую проверку:
- Обнаруживаемость.
- Поддерживаемые форматы файлов.
- Доступ к приложениям.
- Доступ пользователей.
- Выбор области.
- Задержка индексирования.