Создание базы знаний в Поиск с использованием ИИ Azure

Примечание

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

Примечание

Эта функция агентного поиска стала общедоступной в REST API версии 2026-04-01 через программный интерфейс. Портал Azure и портал Microsoft Foundry продолжают предоставлять предварительный доступ ко всем агентным функциям извлечения. Инструкции по миграции можно найти в разделе «Миграция кода извлечения деятельности агента на последнюю версию».

Если вы решили использовать REST API предварительной версии, вы можете получить доступ к возможностям, которые пока недоступны для этой функции. Предварительные версии функций предоставляются без соглашения об уровне обслуживания и не рекомендуется для рабочих нагрузок. Для получения дополнительной информации см. Дополнительные условия использования для предварительных версий Microsoft Azure.

Важно

Эти функции и функциональные возможности являются частью REST API 2026-08-01-preview. Версия 2026-08-01-preview лицензируется вам в рамках вашей подписки Azure и регулируется условиями, применимыми к "Предварительным версиям", изложенными в Условиях на продукты Microsoft, Дополнении о защите данных для продуктов и служб Microsoft ("DPA") и Дополнительных условиях использования предварительных версий Microsoft Azure.

Предварительная версия 2026-08-01 поддерживает подключения к другим службы Майкрософт и сторонним службам. Использование этих служб регулируется соответствующими условиями и может привести к обработке или хранению данных за пределами периметра соответствия требованиям Azure, а также к передаче данных в периметр соответствия требованиям Azure.

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

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

В Поиск с использованием ИИ Azure база знаний является объектом верхнего уровня, который оркеструет агентическое извлечение. Он определяет, какие источники знаний запрашивать и поведение по умолчанию для операций извлечения. Во время запроса метод извлечения нацеливается на базу знаний для запуска конфигурированного конвейера извлечения.

База знаний указывает:

  • Один или несколько источников знаний, указывающих на доступный для поиска контент.

  • Необязательный LLM для планирования запросов, синтеза ответов или сводки веб-содержимого. Поддерживаемые задачи зависят от версии API и типа источника знаний.

  • Пользовательские свойства, управляющие маршрутизацией, выбором источника и шифрованием объектов.

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

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

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

  • Поиск с использованием ИИ Azure в любом регионе, который предоставляет агентский доступ к данным. Если вы используете управляемую идентификацию для ролевого доступа к развернутым моделям, ваша служба поиска должна быть на тарифном плане Basic или выше.

  • Один или несколько источников знаний. 2026-08-01-preview Используйте версию API для доступа к предварительным источникам знаний или использованию LLM с источниками знаний, не являющихся веб-источниками знаний. Используйте версию 2026-04-01 API для общедоступных источников знаний и минимального извлечения.

  • (условный) Azure OpenAI с развертыванием поддерживаемой LLM. LlM требуется, если база знаний содержит источник веб-знаний. Для других источников знаний модель LLM является необязательной в версии API 2026-08-01-preview и не поддерживается в версии API 2026-04-01.

  • Разрешение на создание баз знаний. Настройте проверку подлинности без ключа с помощью роли участника службы поиска , назначенной учетной записи пользователя (рекомендуется) или используйте ключ API администратора.

  • Если база знаний указывает LLM, служба поиска должна иметь управляемую учётную запись с правами Пользователя Cognitive Services на ресурсе Microsoft Foundry.

  • Обязательный пакет Azure.Search.Documents:

    • Для функций 2026-08-01-preview: последний предварительный пакет dotnet add package Azure.Search.Documents --prerelease

    • Последний стабильный пакет для функций 2026-04-01: dotnet add package Azure.Search.Documents

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

  • Обязательный пакет azure-search-documents:

    • Для функций 2026-08-01-preview: последний предварительный пакет pip install --pre azure-search-documents

    • Последний стабильный пакет для функций 2026-04-01: pip install azure-search-documents

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

  • Требуемая версия REST API службы поиска:

    • Для функций предварительной версии: 2026-08-01-preview

    • Для общедоступных функций: 2026-04-01

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

Поддерживаемые модели

Используйте один из следующих LLM из Azure OpenAI в модели Foundry. Azure OpenAI определяет региональную доступность выбранного развертывания. Инструкции по развертыванию см. в разделе Deploy Microsoft Foundry Models на портале Foundry.

Семейство GPT-4 устарело. Сведения о рекомендациях по жизненному циклу моделей, датах вывода из эксплуатации и текущем статусе см. в разделе Вывод из эксплуатации и устаревание моделей и статье График вывода моделей из эксплуатации — Microsoft Foundry.

Модель Поддерживаемые версии API
gpt-4o (не рекомендуется) 2025-11-01-preview, 2026-05-01-preview, 2026-08-01-preview
gpt-4o-mini (не рекомендуется) 2025-11-01-preview, 2026-05-01-preview, 2026-08-01-preview
gpt-4.1 (не рекомендуется) 2025-11-01-preview, 2026-05-01-preview, 2026-08-01-preview
gpt-4.1-mini (не рекомендуется) 2025-11-01-preview, 2026-05-01-preview, 2026-08-01-preview
gpt-4.1-nano (не рекомендуется) 2025-11-01-preview, 2026-05-01-preview, 2026-08-01-preview
gpt-5 2025-11-01-preview, 2026-05-01-preview, 2026-08-01-preview
gpt-5-mini 2025-11-01-preview, 2026-05-01-preview, 2026-08-01-preview
gpt-5-nano 2025-11-01-preview, 2026-05-01-preview, 2026-08-01-preview
gpt-5.1 2026-05-01-preview, 2026-08-01-preview
gpt-5.2 2026-05-01-preview, 2026-08-01-preview
gpt-5.4 2026-05-01-preview, 2026-08-01-preview
gpt-5.4-mini 2026-05-01-preview, 2026-08-01-preview
gpt-5.4-nano 2026-05-01-preview, 2026-08-01-preview
gpt-5.5 2026-08-01-preview
gpt-5.6-sol 2026-08-01-preview
gpt-5.6-terra 2026-08-01-preview
gpt-5.6-luna 2026-08-01-preview

Настройка доступа

Поиск с использованием ИИ Azure требуется доступ к LLM из Azure OpenAI в модели Foundry. Мы рекомендуем Microsoft Entra ID для проверки подлинности и доступа на основе ролей для авторизации. Чтобы назначить роли, необходимо быть владельцем или администратором доступа пользователей. Если вы не можете использовать роли, используйте проверку подлинности на основе ключей.

  1. Включите управление доступом на основе ролей на Поиск с использованием ИИ Azure.

  2. Настройте Поиск с использованием ИИ Azure для использования управляемого удостоверения.

  3. У вашего поставщика моделей назначьте пользователя Cognitive Services управляемому удостоверению службы поиска. При локальном тестировании назначьте ту же роль учетной записи пользователя.

  4. Для локального тестирования выполните действия, описанные в Краткое руководство: Подключение без ключей, чтобы войти в определенную подписку и арендатор. Используйте DefaultAzureCredential вместо AzureKeyCredential каждого запроса, который должен быть похож на следующий пример.

    // Authenticate using roles
    using Azure.Search.Documents.Indexes;
    using Azure.Identity;
    
    var indexClient = new SearchIndexClient(new Uri(searchEndpoint), new DefaultAzureCredential());
    
  1. Включите управление доступом на основе ролей на Поиск с использованием ИИ Azure.

  2. Настройте Поиск с использованием ИИ Azure для использования управляемого удостоверения.

  3. У вашего поставщика моделей назначьте пользователя Cognitive Services управляемому удостоверению службы поиска. При локальном тестировании назначьте ту же роль учетной записи пользователя.

  4. Для локального тестирования выполните действия, описанные в Краткое руководство: Подключение без ключей, чтобы войти в определенную подписку и арендатор. Используйте DefaultAzureCredential вместо AzureKeyCredential каждого запроса, который должен быть похож на следующий пример.

    # Authenticate using roles
    from azure.identity import DefaultAzureCredential
    index_client = SearchIndexClient(endpoint = "<search-endpoint>", credential = DefaultAzureCredential())
    
  1. Включите управление доступом на основе ролей на Поиск с использованием ИИ Azure.

  2. Настройте Поиск с использованием ИИ Azure для использования управляемого удостоверения.

  3. У вашего поставщика моделей назначьте пользователя Cognitive Services управляемому удостоверению службы поиска. При локальном тестировании назначьте ту же роль учетной записи пользователя.

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

    # List indexes using roles
    GET {{search-endpoint}}/indexes?api-version=2026-04-01
    Content-Type: application/json
    Authorization: Bearer {{search-access-token}}
    

Важно

В фрагментах кода в этой статье используется аутентификация без ключей. Чтобы использовать ключ API, обновите каждый запрос соответствующим образом. В запросе, указывающего оба подхода, ключ API имеет приоритет.

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

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

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

// List knowledge bases by name
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

# List knowledge bases by name
from azure.identity import DefaultAzureCredential
from azure.search.documents.indexes import SearchIndexClient

index_client = SearchIndexClient(endpoint = "<search-endpoint>", credential = DefaultAzureCredential())

for kb in index_client.list_knowledge_bases():
    print(f"  - {kb.name}")

Reference:SearchIndexClient

# List knowledge bases
GET {{search-endpoint}}/knowledgebases?api-version={{api-version}}&$select=name
Content-Type: application/json
Authorization: Bearer {{search-access-token}}

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

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

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

# Get a knowledge base definition
from azure.identity import DefaultAzureCredential
from azure.search.documents.indexes import SearchIndexClient
import json

index_client = SearchIndexClient(endpoint = "<search-endpoint>", credential = DefaultAzureCredential())

kb = index_client.get_knowledge_base("<knowledge-base-name>")
print(json.dumps(kb.as_dict(), indent = 2))

Reference:SearchIndexClient

# Get knowledge base
GET {{search-endpoint}}/knowledgebases/{{knowledge-base-name}}?api-version={{api-version}}
Content-Type: application/json
Authorization: Bearer {{search-access-token}}

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

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

{
  "name": "my-kb",
  "description": "A sample knowledge base.",
  "retrievalInstructions": null,
  "answerInstructions": null,
  "outputMode": null,
  "knowledgeSources": [
    {
      "name": "my-blob-ks"
    }
  ],
  "models": [],
  "encryptionKey": null,
  "retrievalReasoningEffort": {
    "kind": "low"
  }
}

Примечание

Схема ответа отражает версию API, используемую для создания базы знаний. База знаний, созданная с общедоступной 2026-04-01 версией API, возвращает более узкое определение, чем 2026-08-01-preview Дополнительные сведения о свойствах, поддерживаемых каждой версией, см. в статье "Создание базы знаний".

Создание базы знаний

Важно

Версия API 2026-04-01 принимает только общедоступные типы источников знаний и поддерживает минимальное извлечение релевантных фрагментов. Это не поддерживает функции, доступные только в предварительной версии, такие как планирование запросов, синтез ответов и настраиваемая интенсивность рассуждений. Для полной функциональности используйте 2026-08-01-preview.

База знаний подключает один или несколько источников знаний (содержимое для поиска) к необязательному LLM из Azure OpenAI в модели Foundry. Заданные свойства устанавливают значения по умолчанию для выполнения запроса и получения ответов.

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

// Create a knowledge base
using Azure.Search.Documents.Indexes;
using Azure.Search.Documents.Indexes.Models;
using Azure.Search.Documents.KnowledgeBases.Models;
using Azure.Identity;

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

var aoaiParams = new AzureOpenAIVectorizerParameters
{
    ResourceUri = new Uri(aoaiEndpoint),
    DeploymentName = aoaiGptDeployment,
    ModelName = aoaiGptModel,
};

var knowledgeBase = new KnowledgeBase(
    name: "my-kb",
    knowledgeSources: new KnowledgeSourceReference[]
    {
        new KnowledgeSourceReference("hotels-ks"),
        new KnowledgeSourceReference("earth-at-night-ks")
    }
)
{
    Description = "This knowledge base handles questions directed at two unrelated sample indexes.",
    RetrievalInstructions = "Use the hotels knowledge source for queries about where to stay, otherwise use the earth at night knowledge source.",
    AnswerInstructions = "Answer in two concise sentences.",
    OutputMode = KnowledgeRetrievalOutputMode.AnswerSynthesis,
    Models = { new KnowledgeBaseAzureOpenAIModel(azureOpenAIParameters: aoaiParams) },
    RetrievalReasoningEffort = new KnowledgeRetrievalAutoReasoningEffort()
};

await indexClient.CreateOrUpdateKnowledgeBaseAsync(knowledgeBase);
Console.WriteLine($"Knowledge base '{knowledgeBase.Name}' created or updated successfully.");

Reference:SearchIndexClient, KnowledgeBase

# Create a knowledge base
from azure.identity import DefaultAzureCredential
from azure.search.documents.indexes import SearchIndexClient
from azure.search.documents.indexes.models import (
    AzureOpenAIVectorizerParameters,
    KnowledgeBase,
    KnowledgeBaseAzureOpenAIModel,
    KnowledgeSourceReference,
)
from azure.search.documents.knowledgebases.models import (
    KnowledgeRetrievalAutoReasoningEffort,
    KnowledgeRetrievalOutputMode,
)

index_client = SearchIndexClient(endpoint = "<search-endpoint>", credential = DefaultAzureCredential())

aoai_params = AzureOpenAIVectorizerParameters(
    resource_url = "<aoai-endpoint>",
    deployment_name = "<aoai-gpt-deployment>",
    model_name = "<aoai-gpt-model>",
)

knowledge_base = KnowledgeBase(
    name = "my-kb",
    description = "This knowledge base handles questions directed at two unrelated sample indexes.",
    retrieval_instructions = "Use the hotels knowledge source for queries about where to stay, otherwise use the earth at night knowledge source.",
    answer_instructions = "Answer in two concise sentences.",
    output_mode = KnowledgeRetrievalOutputMode.ANSWER_SYNTHESIS,
    knowledge_sources = [
        KnowledgeSourceReference(name = "hotels-ks"),
        KnowledgeSourceReference(name = "earth-at-night-ks"),
    ],
    models = [KnowledgeBaseAzureOpenAIModel(azure_open_ai_parameters = aoai_params)],
    encryption_key = None,
    retrieval_reasoning_effort = KnowledgeRetrievalAutoReasoningEffort(),
)

index_client.create_or_update_knowledge_base(knowledge_base)
print(f"Knowledge base '{knowledge_base.name}' created or updated successfully.")

Reference:SearchIndexClient, KnowledgeBase

# Create a knowledge base
PUT {{search-endpoint}}/knowledgebases/my-kb?api-version=2026-08-01-preview
Content-Type: application/json
Authorization: Bearer {{search-access-token}}

{
    "name" : "my-kb",
    "description": "This knowledge base handles questions directed at two unrelated sample indexes.",
    "retrievalInstructions": "Use the hotels knowledge source for queries about where to stay, otherwise use the earth at night knowledge source.",
    "answerInstructions": "Answer in two concise sentences.",
    "outputMode": "answerSynthesis",
    "knowledgeSources": [
        {
            "name": "hotels-ks"
        },
        {
            "name": "earth-at-night-ks"
        }
    ],
    "models" : [
        {
            "kind": "azureOpenAI",
            "azureOpenAIParameters": {
                "resourceUri": "{{aoai-endpoint}}",
                "deploymentId": "gpt-5.4-mini",
                "modelName": "gpt-5.4-mini"
            }
        }
    ],
    "encryptionKey": null,
    "retrievalReasoningEffort": {
        "kind": "auto"
    }
}

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

Настройка ограничений извлечения по умолчанию (предварительная версия)

Начиная с 2026-08-01-preview версии API, можно использовать необязательный retrieveDefaults объект для хранения значений по умолчанию на уровне запросов в базе знаний. Каждое сохранённое свойство применяется только в том случае, если в запросе на получение отсутствует соответствующее поле запроса:

Хранимое свойство Получение поля запроса
maxRuntimeInSeconds maxRuntimeInSeconds
maxOutputDocuments maxOutputDocuments
maxOutputSizeInTokens maxOutputSize

Для бюджета выходных токенов используются разные имена свойств при сохранении и переопределении. Задайте maxOutputSizeInTokens в retrieveDefaults и используйте maxOutputSize в запросе на извлечение.

Эффективное значение для каждого свойства определяется независимо в этом порядке:

  1. Соответствующее значение в запросе на извлечение.
  2. Значение объекта базы retrieveDefaults знаний.
  3. Служба, используемая по умолчанию, если свойство отсутствует на обоих уровнях.

В следующем примере используется существующий источник знаний индекса поиска с именем your-knowledge-source. Предусмотрены лимит времени выполнения 45 секунд, не более восьми выходных документов и лимит вывода в 12 000 токенов.

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

string searchEndpoint = "<search-endpoint>";

var options = new SearchClientOptions(
    SearchClientOptions.ServiceVersion.V2026_08_01_Preview);
var indexClient = new SearchIndexClient(
    new Uri(searchEndpoint),
    new DefaultAzureCredential(),
    options);

var knowledgeBase = new KnowledgeBase(
    "your-knowledge-base",
    new[] { new KnowledgeSourceReference("your-knowledge-source") })
{
    Description = "A knowledge base for product support content.",
    RetrieveDefaults = new KnowledgeBaseRetrieveDefaults
    {
        MaxRuntimeInSeconds = 45,
        MaxOutputDocuments = 8,
        MaxOutputSizeInTokens = 12000
    }
};

await indexClient.CreateOrUpdateKnowledgeBaseAsync(knowledgeBase);

Справочник:SearchIndexClient, SearchClientOptions.ServiceVersion, KnowledgeBase

from azure.identity import DefaultAzureCredential
from azure.search.documents.indexes import SearchIndexClient
from azure.search.documents.indexes.models import (
    KnowledgeBase,
    KnowledgeBaseRetrieveDefaults,
    KnowledgeSourceReference,
)

search_endpoint = "<search-endpoint>"
index_client = SearchIndexClient(
    endpoint=search_endpoint,
    credential=DefaultAzureCredential(),
    api_version="2026-08-01-preview",
)

knowledge_base = KnowledgeBase(
    name="your-knowledge-base",
    description="A knowledge base for product support content.",
    knowledge_sources=[
        KnowledgeSourceReference(name="your-knowledge-source"),
    ],
    retrieve_defaults=KnowledgeBaseRetrieveDefaults(
        max_runtime_in_seconds=45,
        max_output_documents=8,
        max_output_size_in_tokens=12000,
    ),
)

index_client.create_or_update_knowledge_base(knowledge_base)

Reference:SearchIndexClient, KnowledgeBase

PUT {{search-endpoint}}/knowledgebases/your-knowledge-base?api-version=2026-08-01-preview
Content-Type: application/json
Authorization: Bearer {{search-access-token}}

{
  "name": "your-knowledge-base",
  "description": "A knowledge base for product support content.",
  "knowledgeSources": [
    {
      "name": "your-knowledge-source"
    }
  ],
  "retrieveDefaults": {
    "maxRuntimeInSeconds": 45,
    "maxOutputDocuments": 8,
    "maxOutputSizeInTokens": 12000
  }
}

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

Чтобы переопределить эти сохранённые значения, установив 20 секунд, один документ и 5 000 токенов для одного запроса, см. Проверка значений по умолчанию для извлечения из базы знаний.

Настройка CORS для запросов на получение данных в браузере (предварительная версия)

Важно

Совместное использование ресурсов между источниками (CORS) позволяет приложениям на основе браузера запрашивать данные непосредственно из службы. В зависимости от конфигурации CORS внешние веб-страницы могут получить доступ к службе или вызвать ее данные с помощью контекста браузера пользователя. Этот доступ может создавать угрозы безопасности. Включение CORS выполняется на ваш страх и риск.

Начиная с 2026-05-01-preview версии API база знаний может определить corsOptions для браузерных приложений, которые вызывают действие извлечения непосредственно из JavaScript. Политика CORS определяет, какие источники браузера могут отправлять запросы на получение в базу знаний.

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

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

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

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

var knowledgeBase = new KnowledgeBase(
    name: "browser-chat-kb",
    knowledgeSources: new[] { new KnowledgeSourceReference("product-docs-ks") }
)
{
    Description = "A knowledge base that allows one browser app origin.",
    CorsOptions = new CorsOptions(new[] { "https://myapp.example.com" })
    {
        MaxAgeInSeconds = 300
    }
};

await indexClient.CreateOrUpdateKnowledgeBaseAsync(knowledgeBase);

Справочник:CorsOptions, KnowledgeBase

from azure.identity import DefaultAzureCredential
from azure.search.documents.indexes import SearchIndexClient
from azure.search.documents.indexes.models import (
    CorsOptions,
    KnowledgeBase,
    KnowledgeSourceReference,
)

index_client = SearchIndexClient(endpoint="<search-endpoint>", credential=DefaultAzureCredential())

knowledge_base = KnowledgeBase(
    name="browser-chat-kb",
    description="A knowledge base that allows one browser app origin.",
    knowledge_sources=[KnowledgeSourceReference(name="product-docs-ks")],
    cors_options=CorsOptions(
        allowed_origins=["https://myapp.example.com"],
        max_age_in_seconds=300,
    ),
)

index_client.create_or_update_knowledge_base(knowledge_base)

Справочник:CorsOptions, KnowledgeBase

PUT {{search-endpoint}}/knowledgebases/browser-chat-kb?api-version=2026-08-01-preview
Content-Type: application/json
Authorization: Bearer {{search-access-token}}

{
  "name": "browser-chat-kb",
  "description": "A knowledge base that allows one browser app origin.",
  "knowledgeSources": [
    {
      "name": "product-docs-ks"
    }
  ],
  "corsOptions": {
    "allowedOrigins": [
      "https://myapp.example.com"
    ],
    "maxAgeInSeconds": 300
  }
}

Запрос базы знаний

После того как вы создадите базу знаний, вызовите действие retrieve или конечную точку MCP, чтобы выполнить запрос к ней.

Удаление базы знаний

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

// Delete a knowledge base
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

# Delete a knowledge base
from azure.identity import DefaultAzureCredential
from azure.search.documents.indexes import SearchIndexClient

index_client = SearchIndexClient(endpoint = "<search-endpoint>", credential = DefaultAzureCredential())
index_client.delete_knowledge_base("<knowledge-base-name>")
print(f"Knowledge base deleted successfully.")

Reference:SearchIndexClient

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

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