Создайте источник знаний Work IQ (предварительная версия)

Note

Поиск с использованием ИИ Azure доступна через портал Azure, REST API и Azure SDKs. Он также лежит в основе Foundry IQ — управляемого слоя знаний, который преобразует корпоративный контент в многократно используемые базы знаний с учетом разрешений доступа для агентов на портале Microsoft Foundry.

Important

Функции, возможности или свойства, помеченные (предварительная версия), не охватываются соглашением об уровне обслуживания, не рекомендуются для рабочих нагрузок и могут изменяться или ограничиваться до того, как они становятся общедоступными. Условия предварительной версии Поиск с использованием ИИ Azure применяются ко всем функциям предварительной версии, независимо от того, является ли он автономным или частью общедоступной функции.

При подключении к Work IQ могут возникнуть расходы, а данные могут передаваться за пределы границы соответствия требованиям Azure и обрабатываться в соответствии с применимыми условиями обслуживания и политиками обработки данных.

Источник знаний Work IQ (предварительная версия) подключает Work IQ к агентному конвейеру извлечения в Поиск с использованием ИИ Azure. Источники знаний создаются независимо, ссылаются в базе знаний и используются в качестве базирования данных при запросе базы знаний во время выполнения.

Work IQ предоставляет организационную аналитику на основе вашего содержимого Microsoft 365, включая документы, электронные письма, собрания и действия в приложениях Microsoft 365.

В отличие от индексированных источников знаний, источники знаний Work IQ напрямую запрашивают актуальные данные в момент извлечения. Конвейер приема не требуется. Для запросов требуется маркер доступа пользователя, выданный для регистрации приложения Microsoft Entra. Поиск с использованием ИИ Azure обменивает этот токен на делегированный токен Work IQ и вызывает Work IQ от имени пользователя.

Предупреждение

В этой предварительной версии источник знаний Work IQ может использовать возможности Work IQ для выполнения действий, а не только для извлечения сведений. Используйте его с осторожностью, ограничьте доступ к доверенным приложениям и пользователям, а также просмотрите разрешения сценария и элементы управления управления, прежде чем включить его.

Поддержка использования

Портал Azure Портал Microsoft Foundry Пакет SDK для .NET Пакет SDK для Python SDK для Java Пакет SDK для JavaScript REST API
❌ ❌ ✔️ ✔️ ❌ ❌ ✔️

Необходимые условия

  • Последний пакет предварительной версии Azure.Search.Documents: dotnet add package Azure.Search.Documents --prerelease

  • Для аутентификации без использования ключа пакет: Azure.Identitydotnet add package Azure.Identity

  • Последний пакет предварительной версии azure-search-documents: pip install --pre azure-search-documents

  • Для аутентификации без использования ключа пакет: azure-identitypip install azure-identity

  • 2026-08-01-preview — версия REST API службы поиска.

  • Для проверки подлинности без ключа добавьте маркер Microsoft Entra ID в Authorization заголовок каждого HTTP-запроса.

Управление данными и соответствие требованиям

Прежде чем включить функцию извлечения Work IQ, ознакомьтесь со статьёй «Данные, конфиденциальность и безопасность Microsoft Copilot».

Использование и конфиденциальность данных

Запросы, ответы и данные, доступные через Microsoft Graph, не используются для обучения базовых языковых моделей.

Управление доступом

Work IQ применяет разрешения Microsoft 365 при каждом запросе. Извлечение возвращает только данные организации, к которым у вошедшего в систему пользователя есть доступ.

Размещение данных и соблюдение нормативных требований

Ознакомьтесь с Microsoft 365 документацией по месту расположения данных, конфиденциальности, безопасности и соответствия требованиям, которые применяются к вашей организации и сценарию.

Настройка аутентификации Microsoft Entra

Начиная с версии API 2026-08-01-preview, каждый источник знаний Work IQ использует для аутентификации регистрацию приложения Microsoft Entra, принадлежащую клиенту. Во время запроса проверка подлинности выполняется следующим образом:

  1. Клиентское приложение выполняет вход пользователя в систему и отправляет утверждение о пользователе в Поиск с использованием ИИ Azure.
  2. Управляемое удостоверение службы поиска проходит аутентификацию как принадлежащее клиенту приложение с помощью федеративных учетных данных.
  3. Поиск с использованием ИИ Azure обменивает утверждение пользователя на делегированный токен Work IQ и вызывает Work IQ от имени пользователя, выполнившего вход.

Секрет клиента не хранится в источнике знаний Work IQ. Один раз настройте приложение и его разрешения, а затем создайте федеративные учетные данные для каждого удостоверения службы поиска, которое использует это приложение.

Настройка регистрации приложения Work IQ

Чтобы настроить приложение, принадлежащее клиенту, которое Поиск с использованием ИИ Azure использует для вызова Work IQ:

  1. Зарегистрируйте приложение в клиенте Microsoft Entra, где вы хотите управлять согласием Work IQ. Для параметра Поддерживаемые типы учетных записей выберите Учетные записи только в этом каталоге организации.

  2. На странице регистрации приложения Обзор скопируйте идентификатор приложения (клиента) и идентификатор каталога (тенанта). Вам потребуется идентификатор приложения, чтобы настроить проверку подлинности Work IQ и идентификатор клиента для входа в клиент, содержащий регистрацию приложения.

  3. На странице "Предоставление доступа к API" регистрации приложения добавьте требуемую делегированную область с именем access_as_userточно. Используйте это имя в нижнем регистре; не подставляйте другое имя области видимости. Полный диапазон: api://<application-client-id>/access_as_user.

  4. На странице регистрации приложения Разрешения API выберите Добавить разрешение>API, используемые моей организацией.

  5. Найдите рабочий IQ (идентификатор fdcc1f02-fc51-4226-8753-f668596af7f7приложения), выберите делегированные разрешения>WorkIQAgent.Ask, а затем нажмите кнопку "Добавить разрешения".

  6. У администратора есть роль согласия, указанная в предварительных требованиях, выберите "Предоставить согласие администратора" для [вашего клиента] на той же странице. Это согласие позволяет приложению обменять подтверждение пользователя на делегированный токен Work IQ.

Настройте идентификацию службы поиска

Чтобы настроить удостоверение, которое Поиск с использованием ИИ Azure использует для аутентификации в качестве приложения Work IQ:

  1. Включите управляемую идентичность, назначаемую системой для службы поиска. Если вы не можете использовать назначаемое системой удостоверение, настройте ровно одно удостоверение, назначаемое пользователем. Служба поиска с несколькими удостоверениями, назначаемыми пользователем, и без удостоверения, назначаемого системой, не поддерживается.

  2. На странице Identity службы поиска скопируйте идентификатор объекта (субъекта-службы). Федеративные учетные данные используют это значение как его subject.

  3. Перейдите к Microsoft Entra ID>Overview и скопируйте идентификатор клиента. Для федеративных учетных данных используется это значение в URL-адресе issuer.

Создать федеративную учетную запись

Чтобы создать федеративные учетные данные для удостоверения службы поиска:

  1. Создайте файл с именем credential.json. Замените <search-service-name>, <search-service-tenant-id>а <search-service-principal-id> также значениями для службы поиска.

    {
      "name": "<search-service-name>-identity",
      "issuer": "https://login.microsoftonline.com/<search-service-tenant-id>/v2.0",
      "subject": "<search-service-principal-id>",
      "audiences": ["api://AzureADTokenExchange"]
    }
    

    Имя учетных данных должно быть уникальным для регистрации приложения. Значение subject должно в точности соответствовать идентификатору субъекта управляемой идентификации. Несоответствие возникает при запросе, а не при создании источника знаний.

  2. Войдите в Azure CLI с помощью клиента, содержащего регистрацию приложения.

    az login --tenant <app-tenant-id> --allow-no-subscriptions
    
  3. Создайте федеративные учетные данные.

    az ad app federated-credential create --id <application-client-id> --parameters credential.json --query id --output tsv
    
  4. Скопируйте выходные данные команды. Используйте это значение federatedCredentialId при создании источника знаний Work IQ.

Каждые федеративные учетные данные доверяют одному идентификатору субъекта управляемой идентичности. Если другое удостоверение службы поиска использует регистрацию приложения, повторите эту процедуру с уникальным именем учетных данных и идентификаторами клиента и участника этого удостоверения. Используйте соответствующий идентификатор учетных данных для каждого источника знаний в Work IQ.

Настройка клиентского приложения

Чтобы настроить приложение, которое выполняет вход пользователей в систему и отправляет запросы на извлечение:

  1. На странице Разрешения API клиентского приложения выберите Добавить разрешение>API, используемые моей организацией.

  2. Вставьте идентификатор приложения (клиента), скопированный ранее в поле поиска, а затем выберите регистрацию приложения Work IQ.

  3. Выберите делегированные> разрешенияaccess_as_user, а затем нажмите кнопку "Добавить разрешения".

  4. Выполните любое согласие, необходимое политикой согласия пользователя вашего клиента. Если требуется согласие администратора, попросите администратора выбрать Предоставить согласие администратора для [ваш арендатор].

Клиентское приложение теперь может запросить утверждение пользователя для регистрации приложения Work IQ. Разрешение access_as_user не предоставляет клиентскому приложению прямой доступ к Work IQ.

Значения аутентификации

При создании источника знаний Work IQ используйте следующие значения entraAppAuthentication из параметров настройки вашего приложения Microsoft Entra. Каждое предоставляемое вами значение должно быть GUID.

Недвижимость Обязательный Value
applicationId Да Идентификатор приложения (клиента) для регистрации приложения Work IQ.
federatedCredentialId Да Идентификатор объекта федеративных учетных данных, созданных в приложении. Это не имя учетных данных и не идентификатор субъекта-службы поиска.
tenantId Нет Идентификатор каталога (клиента) регистрации приложения. Не указывайте это свойство, если регистрация приложения и служба поиска находятся в одном клиенте. Если они находятся в разных арендаторах, это свойство является обязательным.

Проверка существующих источников знаний

Источник знаний — это объект верхнего уровня, который можно использовать повторно. Знание существующих источников знаний полезно для повторного использования или именования новых объектов.

Выполните следующий код, чтобы перечислить источники знаний по имени и типу.

// List knowledge sources by name and type
using Azure.Search.Documents.Indexes;

var indexClient = new SearchIndexClient(new Uri(searchEndpoint), credential);
var knowledgeSources = indexClient.GetKnowledgeSourcesAsync();

Console.WriteLine("Knowledge Sources:");

await foreach (var ks in knowledgeSources)
{
    Console.WriteLine($"  Name: {ks.Name}, Type: {ks.GetType().Name}");
}

Reference:SearchIndexClient

# List knowledge sources by name and type
from azure.core.credentials import AzureKeyCredential
from azure.search.documents.indexes import SearchIndexClient

index_client = SearchIndexClient(endpoint = "search_url", credential = AzureKeyCredential("api_key"))

for ks in index_client.list_knowledge_sources():
    print(f"  - {ks.name} ({ks.kind})")

Reference:SearchIndexClient

### List knowledge sources by name and type
GET {{search-url}}/knowledgesources?api-version={{api-version}}&$select=name,kind
Authorization: Bearer {{token}}

Справочник:Источники знаний — список

Вы также можете вернуть один источник знаний по имени, чтобы просмотреть его определение JSON.

using Azure.Search.Documents.Indexes;
using System.Text.Json;

var indexClient = new SearchIndexClient(new Uri(searchEndpoint), credential);

// Specify the knowledge source name to retrieve
string ksNameToGet = "earth-knowledge-source";

// Get its definition
var knowledgeSourceResponse = await indexClient.GetKnowledgeSourceAsync(ksNameToGet);
var ks = knowledgeSourceResponse.Value;

// Serialize to JSON for display
var jsonOptions = new JsonSerializerOptions 
{ 
    WriteIndented = true,
    DefaultIgnoreCondition = System.Text.Json.Serialization.JsonIgnoreCondition.Never
};
Console.WriteLine(JsonSerializer.Serialize(ks, ks.GetType(), jsonOptions));

Reference:SearchIndexClient

# Get a knowledge source definition
from azure.core.credentials import AzureKeyCredential
from azure.search.documents.indexes import SearchIndexClient
import json

index_client = SearchIndexClient(endpoint = "search_url", credential = AzureKeyCredential("api_key"))

ks = index_client.get_knowledge_source("knowledge_source_name")
print(json.dumps(ks.as_dict(), indent = 2))

Reference:SearchIndexClient

### Get a knowledge source definition
GET {{search-url}}/knowledgesources/{{knowledge-source-name}}?api-version={{api-version}}
Authorization: Bearer {{token}}

Reference:Источники знаний — получить

Следующий код JSON является примером ответа для источника знаний Work IQ.

{
  "name": "my-workiq-ks",
  "kind": "workIQ",
  "description": "A sample Work IQ knowledge source.",
  "workIQParameters": {
    "entraAppAuthentication": {
      "applicationId": "11111111-1111-1111-1111-111111111111",
      "federatedCredentialId": "22222222-2222-2222-2222-222222222222",
      "tenantId": null
    }
  },
  "encryptionKey": null
}

Создание источника знаний

Выполните следующий код, чтобы создать источник знаний Work IQ.

using Azure.Identity;
using Azure.Search.Documents.Indexes;
using Azure.Search.Documents.Indexes.Models;
using Azure.Search.Documents.Models;

Uri searchEndpoint =
    new("https://<search-service-name>.search.windows.net");
var credential = new DefaultAzureCredential();
var indexClient = new SearchIndexClient(searchEndpoint, credential);

var entraAuthentication = new EntraAppAuthentication(
    Guid.Parse("<application-client-id>"),
    Guid.Parse("<federated-credential-id>"));
var knowledgeSource = new WorkIQKnowledgeSource(
    "my-workiq-ks",
    new WorkIQKnowledgeSourceParameters(entraAuthentication))
{
    Description = "A sample Work IQ knowledge source."
};

KnowledgeSource createdSource =
    await indexClient.CreateOrUpdateKnowledgeSourceAsync(knowledgeSource);
Console.WriteLine($"Created knowledge source '{createdSource.Name}'.");

Reference:SearchIndexClient, WorkIQKnowledgeSource

from azure.identity import DefaultAzureCredential
from azure.search.documents.indexes import SearchIndexClient
from azure.search.documents.indexes.models import (
    EntraAppAuthentication,
    WorkIQKnowledgeSource,
    WorkIQKnowledgeSourceParameters,
)

endpoint = "https://<search-service-name>.search.windows.net"
credential = DefaultAzureCredential()

knowledge_source = WorkIQKnowledgeSource(
    name="my-workiq-ks",
    description="A sample Work IQ knowledge source.",
    work_iq_parameters=WorkIQKnowledgeSourceParameters(
        entra_app_authentication=EntraAppAuthentication(
            application_id="<application-client-id>",
            federated_credential_id="<federated-credential-id>",
        )
    ),
)

with SearchIndexClient(endpoint, credential) as index_client:
    created_source = index_client.create_or_update_knowledge_source(
        knowledge_source
    )
print(f"Created knowledge source '{created_source.name}'.")

Reference:SearchIndexClient, WorkIQKnowledgeSource

@search-endpoint = <search-endpoint> // Example: https://my-service.search.windows.net
@search-access-token = <search-access-token> // Run: az account get-access-token --scope https://search.azure.com/.default --query accessToken -o tsv

### Create a Work IQ knowledge source
PUT {{search-endpoint}}/knowledgesources/my-workiq-ks?api-version=2026-08-01-preview
Authorization: Bearer {{search-access-token}}
Content-Type: application/json
Prefer: return=representation

{
  "name": "my-workiq-ks",
  "kind": "workIQ",
  "description": "A sample Work IQ knowledge source.",
  "workIQParameters": {
    "entraAppAuthentication": {
      "applicationId": "<application-client-id>",
      "federatedCredentialId": "<federated-credential-id>"
    }
  }
}

Справочник:Источники знаний — создание или обновление

Назначение базе знаний

Если вы удовлетворены источником знаний, добавьте его в базу знаний.

Запрос к базе знаний

После настройки базы знаний вызовите действие извлечения или конечную точку MCP для запроса содержимого Work IQ. У этого источника знаний есть уникальные особенности проверки прав доступа во время выполнения запроса и характеристики ответа.

Important

Work IQ может отвечать через 40–60 секунд или дольше. Чтобы избежать ошибок тайм-аута, установите значение maxRuntimeInSeconds в запросе на получение на 120 или выше.

Принудительное применение разрешений в момент выполнения запроса

Начиная с версии API 2026-08-01-preview, источники знаний Work IQ используют поток токенов on-behalf-of (OBO) через принадлежащую клиенту регистрацию приложения Microsoft Entra. Помимо аутентификации запроса на извлечение к Поиск с использованием ИИ Azure, клиент должен предоставить утверждение пользователя app-audience для пользователя, выполнившего вход.

Клиентское приложение должно выполнить вход пользователя и получить утверждение пользователя. То, как вы получаете подтверждение, зависит от того, на какой платформе работает приложение и на каком языке оно написано. Используйте Microsoft Authentication Library (MSAL) и поток кода авторизации с подтверждением ключа для обмена кодом (PKCE), чтобы запросить точную область действия api://<application-client-id>/access_as_user.

Перед отправкой утверждения пользователя убедитесь, что:

  • aud идентифицирует регистрацию приложения Work IQ.
  • scp содержит access_as_user.
  • oid и tid идентифицируют вошедшего в систему пользователя и арендатора приложения.

Отправьте обе учетные данные в одном запросе получения, как показано в следующем примере. Используйте маркер Поиск с использованием ИИ Azure или ключ API для проверки подлинности службы. Передайте необработанное утверждение пользователя в заголовке x-ms-query-work-iq-source-authorization, а не x-ms-query-source-authorization.

using Azure.Identity;
using Azure.Search.Documents;
using Azure.Search.Documents.KnowledgeBases;
using Azure.Search.Documents.KnowledgeBases.Models;

Uri searchEndpoint =
    new("https://<search-service-name>.search.windows.net");
string userAssertion = "<user-assertion>";
var credential = new DefaultAzureCredential();
var options = new SearchClientOptions();
options.Retry.NetworkTimeout = TimeSpan.FromSeconds(130);
var retrievalClient = new KnowledgeBaseRetrievalClient(
    searchEndpoint,
    "my-kb",
    credential,
    options);

var request = new KnowledgeBaseRetrievalRequest
{
    IncludeActivity = true,
    MaxRuntimeInSeconds = 120
};
request.Intents.Add(
    new KnowledgeRetrievalSemanticIntent("Find my project status."));
request.KnowledgeSourceParams.Add(
    new WorkIQKnowledgeSourceParams("my-workiq-ks")
    {
        IncludeReferences = true,
        IncludeReferenceSourceData = true
    });

var response = await retrievalClient.RetrieveAsync(
    request,
    querySourceAuthorization: null,
    queryWorkIQSourceAuthorization: userAssertion);
Console.WriteLine(response.Value);

Reference:KnowledgeBaseRetrievalClient, KnowledgeBaseRetrievalRequest

from azure.identity import DefaultAzureCredential
from azure.search.documents.knowledgebases import (
    KnowledgeBaseRetrievalClient,
)
from azure.search.documents.knowledgebases.models import (
    KnowledgeBaseRetrievalRequest,
    KnowledgeRetrievalSemanticIntent,
    WorkIQKnowledgeSourceParams,
)

endpoint = "https://<search-service-name>.search.windows.net"
user_assertion = "<user-assertion>"
credential = DefaultAzureCredential()

request = KnowledgeBaseRetrievalRequest(
    intents=[
        KnowledgeRetrievalSemanticIntent(
            search="Find my project status."
        )
    ],
    knowledge_source_params=[
        WorkIQKnowledgeSourceParams(
            knowledge_source_name="my-workiq-ks",
            include_references=True,
            include_reference_source_data=True,
        )
    ],
    include_activity=True,
    max_runtime_in_seconds=120,
)

with KnowledgeBaseRetrievalClient(
    endpoint,
    credential,
    knowledge_base_name="my-kb",
) as retrieval_client:
    response = retrieval_client.retrieve(
        request,
        query_work_iq_source_authorization=user_assertion,
        timeout=130,
    )

print(response)

Reference:KnowledgeBaseRetrievalClient, KnowledgeBaseRetrievalRequest

@search-endpoint = <search-endpoint>
@search-access-token = <search-access-token>
@user-assertion = <user-assertion>

### Query a knowledge base with a Work IQ knowledge source
POST {{search-endpoint}}/knowledgebases/my-kb/retrieve?api-version=2026-08-01-preview
Authorization: Bearer {{search-access-token}}
x-ms-query-work-iq-source-authorization: {{user-assertion}}
Content-Type: application/json

{
  "messages": [{
    "role": "user",
    "content": [{
      "type": "text",
      "text": "Find my project status."
    }]
  }],
  "knowledgeSourceParams": [{
    "knowledgeSourceName": "my-workiq-ks",
    "kind": "workIQ",
    "includeReferences": true,
    "includeReferenceSourceData": true
  }],
  "includeActivity": true,
  "maxRuntimeInSeconds": 120
}

Reference:Knowledge Retrieval — восстановление

Успешный запрос возвращает 200 OK. Убедитесь, что activity содержит запись, у которой type имеет значение workIQ и knowledgeSourceName соответствует вашему источнику знаний Work IQ. Также убедитесь, что references содержит запись workIQ.

В следующей таблице перечислены распространенные сбои конфигурации.

Статус Причина
400 Отсутствует заголовок авторизации Work IQ или он имеет неверный формат, отсутствуют обязательные утверждения пользователя, либо служба поиска не использует поддерживаемую конфигурацию управляемого удостоверения.
206 или 502 Источник Work IQ завершился сбоем, так как обмен токенами, предоставление согласия, делегированное разрешение, федеративные учетные данные, последующая авторизация или запрос Work IQ завершились сбоем либо было превышено время ожидания. Просмотрите ошибку действия источника. Ответ 206 означает, что другой источник успешно обработал запрос. Ответ 502 означает, что каждый выбранный источник завершился с ошибкой или произошел сбой обязательного источника.

Поля ответов, специфичные для Work IQ

Источники знаний Work IQ возвращают результаты в массиве references, а диагностические данные запроса — в массиве activity. Каждая справочная запись содержит следующее:

  • sourceData.parts[].text: Текстовые фрагменты, основанные на данных Work IQ.
  • sourceData.parts[].data: данные цитирования Work IQ. Части цитирования имеют тип носителя application/vnd.ms-workiq-reference.

В следующем примере показан ответ на получение, содержащий ссылку на источник знаний Work IQ и соответствующую запись действия. Более подробные рекомендации по интерпретации ответов операции retrieve см. в разделе «Просмотр ответа».

Tip

Чтобы получить sourceData для ссылок, задайте для includeReferenceSourceData значение true в записи источника знаний в knowledgeSourceParams запроса на извлечение.

{
  "response": [],
  "activity": [
    {
      "type": "workIQ",
      "id": 0,
      "knowledgeSourceName": "my-workiq-ks",
      "queryTime": "2026-08-01T19:25:23.683Z",
      "count": 1,
      "elapsedMs": 1137,
      "workIQArguments": {
        "search": "my query"
      }
    }
  ],
  "references": [
    {
      "type": "workIQ",
      "id": "83dd7d40",
      "activitySource": 0,
      "rerankerScore": 3.5,
      "sourceData": {
        "parts": [
          {
            "text": "Have your VPN username and password ready."
          },
          {
            "data": {
              "1-abc123": {
                "targetLink": "https://contoso.sharepoint.com/doc.docx",
                "isCitedInResponse": true,
                "isSourceFiltered": false
              }
            },
            "mediaType": "application/vnd.ms-workiq-reference"
          }
        ]
      }
    }
  ]
}

Удаление источника знаний

Прежде чем удалить источник знаний, необходимо удалить любую базу знаний, которая ссылается на нее или обновить определение базы знаний, чтобы удалить ссылку. Для источников знаний, генерирующих индекс и конвейер индексатора, все созданные объекты также удаляются. Однако если вы использовали существующий индекс для создания источника знаний, индекс не удаляется.

Если вы пытаетесь удалить используемый источник знаний, действие завершается ошибкой и возвращает список затронутых баз знаний.

Удаление источника знаний:

  1. Получите список всех баз знаний в службе поиска.

    using Azure.Search.Documents.Indexes;
    
    var indexClient = new SearchIndexClient(new Uri(searchEndpoint), credential);
    var knowledgeBases = indexClient.GetKnowledgeBasesAsync();
    
    Console.WriteLine("Knowledge Bases:");
    
    await foreach (var kb in knowledgeBases)
    {
        Console.WriteLine($"  - {kb.Name}");
    }
    

    Reference:SearchIndexClient

    Пример ответа может выглядеть следующим образом:

     {
         "@odata.context": "https://my-search-service.search.windows.net/$metadata#knowledgebases(name)",
         "value": [
         {
             "name": "my-kb"
         },
         {
             "name": "my-kb-2"
         }
         ]
     }
    
  2. Получите отдельное определение базы знаний для проверки ссылок на источники знаний.

    using Azure.Search.Documents.Indexes;
    using System.Text.Json;
    
    var indexClient = new SearchIndexClient(new Uri(searchEndpoint), credential);
    
    // Specify the knowledge base name to retrieve
    string kbNameToGet = "earth-knowledge-base";
    
    // Get a specific knowledge base definition
    var knowledgeBaseResponse = await indexClient.GetKnowledgeBaseAsync(kbNameToGet);
    var kb = knowledgeBaseResponse.Value;
    
    // Serialize to JSON for display
    string json = JsonSerializer.Serialize(kb, new JsonSerializerOptions { WriteIndented = true });
    Console.WriteLine(json);
    

    Reference:SearchIndexClient

    Пример ответа может выглядеть следующим образом:

     {
       "Name": "earth-knowledge-base",
       "KnowledgeSources": [
         {
           "Name": "earth-knowledge-source"
         }
       ],
       "Models": [
         {}
       ],
       "RetrievalReasoningEffort": {},
       "OutputMode": {},
       "ETag": "\u00220x8DE278629D782B3\u0022",
       "EncryptionKey": null,
       "Description": null,
       "RetrievalInstructions": null,
       "AnswerInstructions": null
     }
    
  3. Удалите базу знаний или, если у вас несколько источников знаний, обновите базу знаний, чтобы удалить источник. В этом примере показано удаление.

    using Azure.Search.Documents.Indexes;
    var indexClient = new SearchIndexClient(new Uri(searchEndpoint), credential);
    
    await indexClient.DeleteKnowledgeBaseAsync(knowledgeBaseName);
    System.Console.WriteLine($"Knowledge base '{knowledgeBaseName}' deleted successfully.");
    

    Reference:SearchIndexClient

  4. Удалите источник знаний.

    await indexClient.DeleteKnowledgeSourceAsync(knowledgeSourceName);
    System.Console.WriteLine($"Knowledge source '{knowledgeSourceName}' deleted successfully.");
    

    Reference:SearchIndexClient

  1. Получите список всех баз знаний в службе поиска.

    # Get knowledge bases
    from azure.core.credentials import AzureKeyCredential
    from azure.search.documents.indexes import SearchIndexClient
    
    index_client = SearchIndexClient(endpoint = "search_url", credential = AzureKeyCredential("api_key"))
    
    print("Knowledge Bases:")
    for kb in index_client.list_knowledge_bases():
        print(f"  - {kb.name}")
    

    Reference:SearchIndexClient

    Пример ответа может выглядеть следующим образом:

     {
         "@odata.context": "https://my-search-service.search.windows.net/$metadata#knowledgebases(name)",
         "value": [
         {
             "name": "my-kb"
         },
         {
             "name": "my-kb-2"
         }
         ]
     }
    
  2. Получите отдельное определение базы знаний для проверки ссылок на источники знаний.

    # Get a knowledge base definition
    from azure.core.credentials import AzureKeyCredential
    from azure.search.documents.indexes import SearchIndexClient
    
    index_client = SearchIndexClient(endpoint = "search_url", credential = AzureKeyCredential("api_key"))
    kb = index_client.get_knowledge_base("knowledge_base_name")
    print(kb)
    

    Reference:SearchIndexClient

    Пример ответа может выглядеть следующим образом:

     {
       "name": "my-kb",
       "description": null,
       "retrievalInstructions": null,
       "answerInstructions": null,
       "outputMode": null,
       "knowledgeSources": [
         {
           "name": "my-blob-ks"
         }
       ],
       "models": [],
       "encryptionKey": null,
       "retrievalReasoningEffort": {
         "kind": "low"
       }
     }
    
  3. Удалите базу знаний или, если у вас несколько источников знаний, обновите базу знаний, чтобы удалить источник. В этом примере показано удаление.

    # Delete a knowledge base
    from azure.core.credentials import AzureKeyCredential 
    from azure.search.documents.indexes import SearchIndexClient
    
    index_client = SearchIndexClient(endpoint = "search_url", credential = AzureKeyCredential("api_key"))
    index_client.delete_knowledge_base("knowledge_base_name")
    print(f"Knowledge base deleted successfully.")
    

    Reference:SearchIndexClient

  4. Удалите источник знаний.

    # Delete a knowledge source
    from azure.core.credentials import AzureKeyCredential 
    from azure.search.documents.indexes import SearchIndexClient
    
    index_client = SearchIndexClient(endpoint = "search_url", credential = AzureKeyCredential("api_key"))
    index_client.delete_knowledge_source("knowledge_source_name")
    print(f"Knowledge source deleted successfully.")
    

    Reference:SearchIndexClient

  1. Получите список всех баз знаний в службе поиска.

    ### Get knowledge bases
    GET {{search-url}}/knowledgebases?api-version={{api-version}}&$select=name
    Authorization: Bearer {{token}}
    

    Справочник:Базы знаний — список

    Пример ответа может выглядеть следующим образом:

     {
         "@odata.context": "https://my-search-service.search.windows.net/$metadata#knowledgebases(name)",
         "value": [
         {
             "name": "my-kb"
         },
         {
             "name": "my-kb-2"
         }
         ]
     }
    
  2. Получите отдельное определение базы знаний для проверки ссылок на источники знаний.

    ### Get a knowledge base definition
    GET {{search-url}}/knowledgebases/{{knowledge-base-name}}?api-version={{api-version}}
    Authorization: Bearer {{token}}
    

    Справочник:Базы знаний — получение

    Пример ответа может выглядеть следующим образом:

     {
       "name": "my-kb",
       "description": null,
       "retrievalInstructions": null,
       "answerInstructions": null,
       "outputMode": null,
       "knowledgeSources": [
         {
           "name": "my-blob-ks"
         }
       ],
       "models": [],
       "encryptionKey": null,
       "retrievalReasoningEffort": {
         "kind": "low"
       }
     }
    
  3. Удалите базу знаний или, если у вас несколько источников знаний, обновите базу знаний, чтобы удалить источник. В этом примере показано удаление.

    ### Delete a knowledge base
    DELETE {{search-url}}/knowledgebases/{{knowledge-base-name}}?api-version={{api-version}}
    Authorization: Bearer {{token}}
    

    Справочник:Базы знаний — удаление

  4. Удалите источник знаний.

    ### Delete a knowledge source
    DELETE {{search-url}}/knowledgesources/{{knowledge-source-name}}?api-version={{api-version}}
    Authorization: Bearer {{token}}
    

    Справочник:Источники знаний — удаление