Een knowledge base maken in Azure AI Zoeken

Opmerking

Azure AI Zoeken is beschikbaar via de Azure-portal, REST API's en Azure-SDK's. Het vormt ook een basis voor Foundry IQ, de beheerde kennislaag die bedrijfsinhoud transformeert in herbruikbare, machtigingsbewuste knowledge bases voor agents in de Microsoft Foundry-portal.

Opmerking

Deze functie voor agentgestuurde retrieval is algemeen beschikbaar in de REST API-versie 2026-04-01 via programmatische toegang. De Azure-portal en Microsoft Foundry-portal blijven uitsluitend preview-toegang bieden tot alle agentgerichte ophaalfunctionaliteiten. Zie voor migratiehulp Migreer de agent-georiënteerde ophaalcode naar de nieuwste versie.

Als u ervoor kiest om een preview-REST API te gebruiken, hebt u toegang tot mogelijkheden die nog niet algemeen beschikbaar zijn voor deze functie. Preview-functies worden aangeboden zonder service level agreement en worden niet aanbevolen voor productieworkloads. Zie Aanvullende gebruiksvoorwaarden voor Microsoft Azure Previews voor meer informatie.

Belangrijk

Deze functies en functionaliteit maken deel uit van de REST API 2026-08-01-preview. De preview-versie van 2026-08-01 is aan u gelicentieerd als onderdeel van uw Azure-abonnement en is onderworpen aan de voorwaarden die van toepassing zijn op 'Previews' in de Microsoft Productvoorwaarden, de Microsoft Addendum voor producten en services voor gegevensbescherming ("DPA") en de aanvullende gebruiksvoorwaarden voor Microsoft Azure previews.

De preview-versie van 2026-08-01 ondersteunt verbindingen met andere services van Microsoft-services en services van derden. Het gebruik van deze services is onderhevig aan hun respectieve voorwaarden en kan leiden tot gegevensverwerking of opslag buiten de grens van Azure naleving, evenals gegevens die naar de grens van de Azure naleving stromen.

Het is uw verantwoordelijkheid om te beheren of uw gegevens buiten de nalevings- en geografische grenzen van uw organisatie en eventuele gerelateerde implicaties stromen, en dat de juiste machtigingen, grenzen en goedkeuringen worden ingericht.

U bent verantwoordelijk voor het zorgvuldig beoordelen en testen van toepassingen die u bouwt in de context van uw specifieke use cases en het nemen van alle juiste beslissingen en aanpassingen. Dit omvat het implementeren van uw eigen verantwoorde AI-oplossingen, zoals metaprompts, inhoudsfilters of andere veiligheidssystemen, en ervoor zorgen dat uw toepassingen voldoen aan de juiste kwaliteit, betrouwbaarheid, beveiliging en betrouwbaarheidsstandaarden. Zie de Azure AI Zoeken Transparantienotitie voor meer informatie.

In Azure AI Zoeken is een kennisbank een object op het hoogste niveau dat agenteel ophalen coördineert. Hiermee wordt gedefinieerd welke kennisbronnen moeten worden opgevraagd en het standaardgedrag voor ophaalbewerkingen. Bij het opvragen richt de ophaalmethode zich op de Knowledge Base om de geconfigureerde ophaalpijplijn uit te voeren.

In een Knowledge Base wordt het volgende opgegeven:

  • Een of meer kennisbronnen die verwijzen naar doorzoekbare inhoud.

  • Een optionele LLM voor queryplanning, antwoordsynthese of samenvatting van webinhoud. Ondersteunde taken variëren per API-versie en kennisbrontype.

  • Aangepaste eigenschappen die routering controleren, bronkeus en objectversleuteling regelen.

Gebruiksondersteuning

Azure-portal Microsoft Foundry-portal .NET SDK Python SDK Java SDK JavaScript SDK REST API
✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️

Voorwaarden

  • Azure AI Zoeken in een regio die agentgebaseerde gegevensophaling biedt. Als u een beheerde identiteit gebruikt voor op rollen gebaseerde toegang tot geïmplementeerde modellen, moet uw zoekservice zich in de Basic-laag of hoger bevinden.

  • Een of meer kennisbronnen. Gebruik de 2026-08-01-preview API-versie om toegang te krijgen tot preview-kennisbronnen of om een LLM te gebruiken met niet-webkennisbronnen. Gebruik de 2026-04-01 API-versie voor algemeen beschikbare kennisbronnen en minimaal, extractief ophalen.

  • (Voorwaardelijk) Azure OpenAI met een supported LLM-implementatie. Een LLM is vereist als uw knowledge base een webkennisbron bevat. Voor andere kennisbronnen is een LLM optioneel in de 2026-08-01-preview API-versie en niet ondersteund in de 2026-04-01 API-versie.

  • Machtiging voor het maken van knowledge bases. Configureer sleutelloze verificatie met de rol Inzender voor zoekservice die is toegewezen aan uw gebruikersaccount (aanbevolen) of gebruik een beheer-API-sleutel.

  • Als de knowledge base een LLM opgeeft, moet de zoekservice beschikken over een beheerde identiteit met Cognitive Services User machtigingen voor de Microsoft Foundry-bron.

  • Vereiste Azure.Search.Documents-pakket:

    • Voor 2026-08-01-preview functies is het nieuwste preview-pakket beschikbaar: dotnet add package Azure.Search.Documents --prerelease

    • Voor 2026-04-01 functies is het meest recente stabiele pakket: dotnet add package Azure.Search.Documents

  • Voor sleutelloze verificatie is het Azure.Identity pakket: dotnet add package Azure.Identity

  • Vereiste azure-search-documents-pakket:

    • Voor 2026-08-01-preview functies is het nieuwste preview-pakket beschikbaar: pip install --pre azure-search-documents

    • Voor 2026-04-01 functies is het meest recente stabiele pakket: pip install azure-search-documents

  • Voor sleutelloze verificatie is het azure-identity pakket: pip install azure-identity

Ondersteunde modellen

Gebruik een van de volgende LLM's uit Azure OpenAI in Foundry-modellen. Azure OpenAI bepaalt regionale beschikbaarheid voor de implementatie die u selecteert. Zie Deploy-Microsoft Foundry-modellen in de Foundry-portal voor implementatie-instructies.

De GPT-4-familie is verouderd. Zie voor richtlijnen voor de levenscyclus van modellen, uitfaseringsdatums en de huidige status Modeluitfasering en veroudering en Schema voor modeluitfasering - Microsoft Foundry.

Model Ondersteunde API-versies
gpt-4o (afgeschaft) 2025-11-01-preview, 2026-05-01-preview, 2026-08-01-preview
gpt-4o-mini (afgeschaft) 2025-11-01-preview, 2026-05-01-preview, 2026-08-01-preview
gpt-4.1 (afgeschaft) 2025-11-01-preview, 2026-05-01-preview, 2026-08-01-preview
gpt-4.1-mini (afgeschaft) 2025-11-01-preview, 2026-05-01-preview, 2026-08-01-preview
gpt-4.1-nano (afgeschaft) 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

Toegang configureren

Azure AI Zoeken moet toegang hebben tot de LLM vanuit Azure OpenAI in Foundry-modellen. We raden aan om Microsoft Entra ID te gebruiken voor authenticatie en toegangscontrole op basis van rollen voor autorisatie. Als u rollen wilt toewijzen, moet u een eigenaar of beheerder van gebruikerstoegang zijn. Als u geen rollen kunt gebruiken, gebruikt u in plaats daarvan verificatie op basis van sleutels.

  1. Schakel op rollen gebaseerd toegangsbeheer in op Azure AI Zoeken.

  2. Configuratie Azure AI Zoeken voor het gebruik van een beheerde identiteit.

  3. Wijs Cognitive Services-gebruiker toe aan de beheerde identiteit van uw zoekservice op uw modelprovider. Als u lokaal test, wijst u dezelfde rol toe aan uw gebruikersaccount.

  4. Voor lokale tests volgt u de stappen in quickstart: Verbinding maken zonder sleutels om u aan te melden bij een specifiek abonnement en een specifieke tenant. Gebruik DefaultAzureCredential in plaats van AzureKeyCredential in elke aanvraag, die vergelijkbaar moet zijn met het volgende voorbeeld.

    // Authenticate using roles
    using Azure.Search.Documents.Indexes;
    using Azure.Identity;
    
    var indexClient = new SearchIndexClient(new Uri(searchEndpoint), new DefaultAzureCredential());
    
  1. Schakel op rollen gebaseerd toegangsbeheer in op Azure AI Zoeken.

  2. Configuratie Azure AI Zoeken voor het gebruik van een beheerde identiteit.

  3. Wijs Cognitive Services-gebruiker toe aan de beheerde identiteit van uw zoekservice op uw modelprovider. Als u lokaal test, wijst u dezelfde rol toe aan uw gebruikersaccount.

  4. Voor lokale tests volgt u de stappen in quickstart: Verbinding maken zonder sleutels om u aan te melden bij een specifiek abonnement en een specifieke tenant. Gebruik DefaultAzureCredential in plaats van AzureKeyCredential in elke aanvraag, die vergelijkbaar moet zijn met het volgende voorbeeld.

    # Authenticate using roles
    from azure.identity import DefaultAzureCredential
    index_client = SearchIndexClient(endpoint = "<search-endpoint>", credential = DefaultAzureCredential())
    
  1. Schakel op rollen gebaseerd toegangsbeheer in op Azure AI Zoeken.

  2. Configuratie Azure AI Zoeken voor het gebruik van een beheerde identiteit.

  3. Wijs Cognitive Services-gebruiker toe aan de beheerde identiteit van uw zoekservice op uw modelprovider. Als u lokaal test, wijst u dezelfde rol toe aan uw gebruikersaccount.

  4. Voor lokale tests volgt u de stappen in quickstart: Verbinding maken zonder sleutels om een persoonlijk toegangstoken voor een specifiek abonnement en een specifieke tenant op te halen. Geef uw toegangstoken op in elke aanvraag, die vergelijkbaar moet zijn met het volgende voorbeeld.

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

Belangrijk

De codefragmenten in dit artikel gebruiken sleutelloze verificatie. Als u in plaats daarvan een API-sleutel wilt gebruiken, werkt u elke aanvraag dienovereenkomstig bij. In een aanvraag die beide benaderingen aangeeft, heeft de API-sleutel voorrang.

Controleren op bestaande knowledge bases

Een knowledge base is een herbruikbaar object op het hoogste niveau. Kennis over bestaande knowledge bases is handig voor het opnieuw gebruiken of benoemen van nieuwe objecten.

Voer de volgende code uit om bestaande knowledge bases op naam weer te geven. De lijst bevat alle knowledge bases op uw zoekservice, ongeacht welke API-versie u hebt gebruikt om ze te maken.

// 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}");
}

Naslaginformatie: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}")

Naslaginformatie:SearchIndexClient

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

Naslaginformatie:Knowledge Bases - Lijst

U kunt ook één knowledge base op naam retourneren om de JSON-definitie ervan te controleren.

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);

Naslaginformatie: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))

Naslaginformatie:SearchIndexClient

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

Naslaginformatie:Kennisbanken - Verkrijgen

De volgende JSON is een voorbeeldantwoord voor een knowledge base.

{
  "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"
  }
}

Opmerking

Het antwoordschema weerspiegelt de API-versie die u hebt gebruikt om de Knowledge Base te maken. Een knowledge base die is gemaakt met de algemeen beschikbare 2026-04-01 API-versie retourneert een smallere definitie dan de 2026-08-01-preview. Zie Een knowledge base maken voor meer informatie over welke eigenschappen elke versie ondersteunt.

Een knowledge base maken

Belangrijk

De 2026-04-01 API-versie accepteert alleen algemeen beschikbare typen kennisbronnen en ondersteunt minimale, extractieve gegevensophaling. Het ondersteunt geen mogelijkheden die alleen in preview beschikbaar zijn, zoals queryplanning, antwoordsynthese en configureerbare redeneerinspanning. Gebruik voor volledige functionaliteit de 2026-08-01-preview.

Een knowledge base verbindt een of meer kennisbronnen (doorzoekbare inhoud) met een optionele LLM van Azure OpenAI in Foundry Models. De door u ingestelde eigenschappen bepalen de standaardwaarden voor het uitvoeren van query's en de respons op opgehaalde items.

Nadat u een Knowledge Base hebt gemaakt, kunt u de eigenschappen op elk gewenst moment bijwerken. Als de knowledge base wordt gebruikt, worden updates van kracht op het volgende ophalen.

// 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.");

Naslaginformatie: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.")

Naslaginformatie: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"
    }
}

Naslaginformatie:Kennisbanken - Maken of bijwerken

Standaardlimieten voor ophalen configureren (preview)

Vanaf de 2026-08-01-preview API-versie kunt u het optionele retrieveDefaults object gebruiken om standaardinstellingen voor de hele aanvraag op te slaan in een knowledge base. Elke opgeslagen eigenschap is alleen van toepassing wanneer een ophaalaanvraag het bijbehorende aanvraagveld weglaat:

Opgeslagen eigenschap Aanvraagveld ophalen
maxRuntimeInSeconds maxRuntimeInSeconds
maxOutputDocuments maxOutputDocuments
maxOutputSizeInTokens maxOutputSize

Het budget voor uitvoertokens gebruikt verschillende eigenschapsnamen wanneer het wordt opgeslagen en overschreven. Stel maxOutputSizeInTokens deze in retrieveDefaultsen gebruik maxOutputSize deze in een ophaalaanvraag.

De effectieve waarde voor elke eigenschap wordt onafhankelijk in deze volgorde bepaald:

  1. De bijbehorende waarde in het ophaalverzoek.
  2. De waarde in het Knowledge Base-object retrieveDefaults .
  3. De standaardwaarde van de service wanneer de eigenschap op beide niveaus ontbreekt.

In het volgende voorbeeld wordt een bestaande kennisbron voor zoekindexen met de naam your-knowledge-sourcegebruikt. Er wordt een runtimebudget van 45 seconden opgeslagen, maximaal acht uitvoerdocumenten en een uitvoerbudget van 12.000 token.

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);

Verwijzing: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)

Naslaginformatie: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
  }
}

Naslaginformatie:Kennisbanken - Maken of bijwerken

Als u deze opgeslagen waarden voor één verzoek wilt overschrijven met 20 seconden, één document en 5.000 tokens, raadpleegt u De standaardwaarden voor het ophalen uit de kennisbank verifiëren.

CORS configureren voor ophaalaanroepen in de browser (preview)

Belangrijk

CorS (Cross-Origin Resource Sharing) stelt browsertoepassingen in staat om gegevens rechtstreeks vanuit de service aan te vragen. Afhankelijk van uw CORS-configuratie kunnen externe webpagina's de service en de bijbehorende gegevens openen of aanroepen met behulp van de browsercontext van de gebruiker. Deze toegang kan beveiligingsdreigingen veroorzaken. Het inschakelen van CORS is op eigen risico.

Vanaf API-versie 2026-05-01-preview kan een kennisbank corsOptions definiëren voor browsergebaseerde applicaties die de ophaalactie rechtstreeks vanuit JavaScript oproepen. Het CORS-beleid identificeert welke browser-origins aanvragen naar de Knowledge Base kunnen verzenden.

Wanneer u weglaat corsOptions, heeft de Knowledge Base geen CORS-beleid en blokkeren browsers aanvragen voor cross-origin-ophalen.

In het volgende voorbeeld wordt een knowledge base gemaakt waarmee aanvragen kunnen worden opgehaald uit één browser origin.

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);

Naslaginformatie: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)

Naslaginformatie: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
  }
}

Een query uitvoeren op een knowledge base

Nadat u een Knowledge Base hebt gemaakt, roept u de actie ophalen of het MCP-eindpunt aan om er query's op uit te voeren.

Een knowledge base verwijderen

Als u de Knowledge Base niet meer nodig hebt of deze opnieuw wilt bouwen in uw zoekservice, voert u de volgende code uit om het object te verwijderen.

// 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.");

Naslaginformatie: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.")

Naslaginformatie:SearchIndexClient

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

Naslaginformatie:Knowledge Bases - Verwijderen