Een externe SharePoint kennisbron maken

Opmerking

Deze functie is momenteel beschikbaar als openbare preview-versie. Deze preview wordt geleverd zonder service level agreement en wordt niet aanbevolen voor productieworkloads. Bepaalde functies worden mogelijk niet ondersteund of hebben mogelijk beperkte mogelijkheden. Zie Aanvullende gebruiksvoorwaarden voor Microsoft Azure previews voor meer informatie.

Een externe SharePoint-kennisbron maakt gebruik van de Copilot Retrieval-API om tekstuele inhoud rechtstreeks vanuit SharePoint in Microsoft 365 op te vragen. Er zijn geen zoekindex of verbindingsreeks benodigd. Alleen tekstuele inhoud wordt opgevraagd en het gebruik wordt gefactureerd via Microsoft 365 en een Copilot licentie.

Als u sites wilt beperken of zoeken wilt beperken, stelt u een filterexpressie in op URL's, datumbereiken, bestandstypen en andere metagegevens. De identiteit van de beller moet worden geverifieerd door zowel de Azure-tenant als de Microsoft 365-tenant, omdat de ophaalengine SharePoint namens de gebruiker raadpleegt.

Net als elke andere kennisbron geeft u een externe SharePoint kennisbron op in een knowledge base en gebruikt u de resultaten als grondgegevens wanneer een agent of chatbot een retrieve actie aanroept tijdens de query.

Gebruiksondersteuning

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

Vereiste voorwaarden

Beperkingen

De volgende beperkingen in de API voor het ophalen van Copilot zijn van toepassing op externe SharePoint kennisbronnen.

  • Er is geen ondersteuning voor Copilot connectors of OneDrive inhoud. Inhoud wordt alleen opgehaald uit SharePoint sites.

  • Limiet van 200 aanvragen per gebruiker per uur.

  • Querytekenlimiet van 1500 tekens.

  • Hybride query's worden alleen ondersteund voor de volgende bestandsextensies: .doc, .docx, .pptx, .pdf, .aspx en .one.

  • Multimodaal ophalen (niet-tekstuele inhoud, inclusief tabellen, afbeeldingen en grafieken) wordt niet ondersteund.

  • Maximaal 25 resultaten van een query.

  • Resultaten worden als ongesorteerd geretourneerd door de Copilot Retrieval API.

  • Ongeldige KQL-filterexpressies (Keyword Query Language) worden genegeerd en de query wordt nog steeds uitgevoerd zonder het filter.

Controleren op bestaande kennisbronnen

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

Voer de volgende code uit om kennisbronnen op naam en type weer te geven.

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

U kunt ook één kennisbron 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 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));

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

Voer de volgende code uit om kennisbronnen op naam en type weer te geven.

# List knowledge sources by name and type
import requests
import json

endpoint = "{search_url}/knowledgesources"
params = {"api-version": "2025-11-01-preview", "$select": "name, kind"}
headers = {"api-key": "{api_key}"}

response = requests.get(endpoint, params = params, headers = headers)
print(json.dumps(response.json(), indent = 2))

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

# Get a knowledge source definition
import requests
import json

endpoint = "{search_url}/knowledgesources/{knowledge_source_name}"
params = {"api-version": "2025-11-01-preview"}
headers = {"api-key": "{api_key}"}

response = requests.get(endpoint, params = params, headers = headers)
print(json.dumps(response.json(), indent = 2))

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

Gebruik Knowledge Sources - Get (REST API) om kennisbronnen op naam en type weer te geven.

### List knowledge sources by name and type
GET {{search-url}}/knowledgesources?api-version=2025-11-01-preview&$select=name,kind
api-key: {{api-key}}

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

### Get a knowledge source definition
GET {{search-url}}/knowledgesources/{{knowledge-source-name}}?api-version=2025-11-01-preview
api-key: {{api-key}}

De volgende JSON is een voorbeeldantwoord voor een externe SharePoint kennisbron.

{
  "name": "my-sharepoint-ks",
  "kind": "remoteSharePoint",
  "description": "A sample remote SharePoint knowledge source",
  "encryptionKey": null,
  "remoteSharePointParameters": {
    "filterExpression": "filetype:docx",
    "containerTypeId": null,
    "resourceMetadata": [
      "Author",
      "Title"
    ]
  }
}

Een kennisbron maken

Voer de volgende code uit om een externe SharePoint kennisbron te maken.

// Create a remote SharePoint knowledge source
using Azure.Search.Documents.Indexes;
using Azure.Search.Documents.Indexes.Models;
using Azure.Search.Documents.KnowledgeBases.Models;
using Azure;

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

var knowledgeSource = new RemoteSharePointKnowledgeSource(name: "my-remote-sharepoint-ks")
{
    Description = "This knowledge source queries .docx files in a trusted Microsoft 365 tenant.",
    RemoteSharePointParameters = new RemoteSharePointKnowledgeSourceParameters()
    {
        FilterExpression = "filetype:docx",
        ResourceMetadata = { "Author", "Title" }
    }
};

await indexClient.CreateOrUpdateKnowledgeSourceAsync(knowledgeSource);
Console.WriteLine($"Knowledge source '{knowledgeSource.Name}' created or updated successfully.");

Voer de volgende code uit om een externe SharePoint kennisbron te maken.

# Create a remote SharePoint knowledge source
from azure.core.credentials import AzureKeyCredential
from azure.search.documents.indexes import SearchIndexClient
from azure.search.documents.indexes.models import RemoteSharePointKnowledgeSource, RemoteSharePointKnowledgeSourceParameters

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

knowledge_source = RemoteSharePointKnowledgeSource(
    name = "my-remote-sharepoint-ks",
    description= "This knowledge source queries .docx files in a trusted Microsoft 365 tenant.",
    encryption_key = None,
    remote_share_point_parameters = RemoteSharePointKnowledgeSourceParameters(
        filter_expression = "filetype:docx",
        resource_metadata = ["Author", "Title"],
        container_type_id = None
    )
)

index_client.create_or_update_knowledge_source(knowledge_source)
print(f"Knowledge source '{knowledge_source.name}' created or updated successfully.")

Gebruik Knowledge Sources - Create or Update (REST API) om een externe SharePoint kennisbron te maken.

PUT {{search-url}}/knowledgesources/my-remote-sharepoint-ks?api-version=2025-11-01-preview
api-key: {{api-key}}
Content-Type: application/json

{
    "name": "my-remote-sharepoint-ks",
    "kind": "remoteSharePoint",
    "description": "This knowledge source queries .docx files in a trusted Microsoft 365 tenant.",
    "encryptionKey": null,
    "remoteSharePointParameters": {
        "filterExpression": "filetype:docx",
        "resourceMetadata": [ "Author", "Title" ],
        "containerTypeId": null
    }
}

Bronspecifieke eigenschappen

U kunt de volgende eigenschappen doorgeven om een externe SharePoint kennisbron te maken.

Naam Description Typologie Bewerkbaar Verplicht
Name De naam van de kennisbron, die uniek moet zijn binnen de verzameling kennisbronnen en de namenrichtlijnen moet volgen voor objecten in Azure AI Zoeken. Snaar / Touwtje Nee. Yes
Description Een beschrijving van de kennisbron. Snaar / Touwtje Yes Nee.
EncryptionKey Een door de klant beheerde sleutel voor het versleutelen van gevoelige informatie in de kennisbron. Object Yes Nee.
RemoteSharePointParameters Parameters die specifiek zijn voor externe SharePoint kennisbronnen: FilterExpression, ResourceMetadata en ContainerTypeId. Object Nee. Nee.
FilterExpression Een expressie die is geschreven in de SharePoint KQL, die wordt gebruikt om sites en paden naar inhoud op te geven. Snaar / Touwtje Yes Nee.
ResourceMetadata Een matrix met standaardmetagegevensvelden: auteur, bestandsnaam, aanmaakdatum, inhoudstype en bestandstype. Array Yes Nee.
ContainerTypeId Container-id voor de SharePoint Embedded-verbinding. Wanneer dit niet is opgegeven, wordt SharePoint Online gebruikt. Snaar / Touwtje Yes Nee.
Naam Description Typologie Bewerkbaar Verplicht
name De naam van de kennisbron, die uniek moet zijn binnen de verzameling kennisbronnen en de namenrichtlijnen moet volgen voor objecten in Azure AI Zoeken. Snaar / Touwtje Nee. Yes
description Een beschrijving van de kennisbron. Snaar / Touwtje Yes Nee.
encryption_key Een door de klant beheerde sleutel voor het versleutelen van gevoelige informatie in de kennisbron. Object Yes Nee.
remote_share_point_parameters Parameters die specifiek zijn voor externe SharePoint kennisbronnen: filter_expression, resource_metadata en container_type_id. Object Nee. Nee.
filter_expression Een expressie die is geschreven in de SharePoint KQL, die wordt gebruikt om sites en paden naar inhoud op te geven. Snaar / Touwtje Yes Nee.
resource_metadata Een matrix met standaardmetagegevensvelden: auteur, bestandsnaam, aanmaakdatum, inhoudstype en bestandstype. Array Yes Nee.
container_type_id Container-id voor de SharePoint Embedded-verbinding. Wanneer dit niet is opgegeven, wordt SharePoint Online gebruikt. Snaar / Touwtje Yes Nee.
Naam Description Typologie Bewerkbaar Verplicht
name De naam van de kennisbron, die uniek moet zijn binnen de verzameling kennisbronnen en de namenrichtlijnen moet volgen voor objecten in Azure AI Zoeken. Snaar / Touwtje Nee. Yes
kind Het soort kennisbron, in dit geval remoteSharePoint. Snaar / Touwtje Nee. Yes
description Een beschrijving van de kennisbron. Snaar / Touwtje Yes Nee.
encryptionKey Een door de klant beheerde sleutel voor het versleutelen van gevoelige informatie in de kennisbron. Object Yes Nee.
remoteSharePointParameters Parameters die specifiek zijn voor externe SharePoint kennisbronnen: filterExpression, resourceMetadata en containerTypeId. Object Nee. Nee.
filterExpression Een expressie die is geschreven in de SharePoint KQL, die wordt gebruikt om sites en paden naar inhoud op te geven. Snaar / Touwtje Yes Nee.
resourceMetadata Een matrix met standaardmetagegevensvelden: auteur, bestandsnaam, aanmaakdatum, inhoudstype en bestandstype. Array Yes Nee.
containerTypeId Container-id voor de SharePoint Embedded-verbinding. Wanneer dit niet is opgegeven, wordt SharePoint Online gebruikt. Snaar / Touwtje Yes Nee.

Voorbeelden van filterexpressies

Niet alle SharePoint eigenschappen worden ondersteund in de filterExpression. Zie de API-verwijzing voor een lijst met ondersteunde eigenschappen. Zie Queryable voor querybare eigenschappen.

Meer informatie over KQL-filters in de syntaxisverwijzing.

Example Filterexpressie
Filteren tot één site per ID "filterExpression": "SiteID:\"00aa00aa-bb11-cc22-dd33-44ee44ee44ee\""
Filteren naar meerdere sites op ID "filterExpression": "SiteID:\"00aa00aa-bb11-cc22-dd33-44ee44ee44ee\" OR SiteID:\"11bb11bb-cc22-dd33-ee44-55ff55ff55ff\""
Filteren naar bestanden onder een bepaald pad "filterExpression": "Path:\"https://my-demo.sharepoint.com/sites/mysite/Shared Documents/en/mydocs\""
Filteren op een specifiek datumbereik "filterExpression": "LastModifiedTime >= 2024-07-22 AND LastModifiedTime <= 2025-01-08"
Filteren op bestanden van een specifiek bestandstype "filterExpression": "FileExtension:\"docx\" OR FileExtension:\"pdf\" OR FileExtension:\"pptx\""
Filteren op bestanden van een specifiek label voor gegevensbeveiliging "filterExpression": "InformationProtectionLabelId:\"f0ddcc93-d3c0-4993-b5cc-76b0a283e252\""

Toewijzen aan een kennisbank

Als u tevreden bent met de kennisbron, gaat u verder met de volgende stap: geef de kennisbron op in een knowledge base.

Een query uitvoeren op een Knowledge Base

Nadat de Knowledge Base is geconfigureerd, gebruikt u de actie retrieve om een query uit te voeren op SharePoint inhoud. Externe SharePoint heeft bronspecifiek gedrag voor querytijdfilters, queryformulering, antwoordvelden en afdwinging van machtigingen.

Een KQL-filter toepassen tijdens de query

U kunt een FilterExpressionAddOn in het KnowledgeSourceParams ophaalverzoek doorgeven om tijdens de query een KQL-filter toe te passen. Als u opgeeft FilterExpressionAddOn voor de aanvraag voor ophalen en een FilterExpression in de definitie van de kennisbron, zijn de filters samen AND'd.

var retrievalRequest = new KnowledgeBaseRetrievalRequest();
retrievalRequest.Messages.Add(
    new KnowledgeBaseMessage(
        content: new[] {
            new KnowledgeBaseMessageTextContent("contoso product planning")
        }
    ) { Role = "user" }
);
retrievalRequest.KnowledgeSourceParams.Add(
    new RemoteSharePointKnowledgeSourceParams("my-remote-sharepoint-ks")
    {
        FilterExpressionAddOn = "filetype:docx"
    }
);

var result = await kbClient.RetrieveAsync(
    retrievalRequest, xMsQuerySourceAuthorization: token
);

U kunt een filter_expression_add_on in het knowledge_source_params ophaalverzoek doorgeven om tijdens de query een KQL-filter toe te passen. Als u opgeeft filter_expression_add_on voor de aanvraag voor ophalen en een filter_expression in de definitie van de kennisbron, zijn de filters samen AND'd.

from azure.search.documents.knowledgebases.models import (
    KnowledgeBaseMessage,
    KnowledgeBaseMessageTextContent,
    KnowledgeBaseRetrievalRequest,
    RemoteSharePointKnowledgeSourceParams,
)

request = KnowledgeBaseRetrievalRequest(
    messages=[
        KnowledgeBaseMessage(
            role="user",
            content=[
                KnowledgeBaseMessageTextContent(
                    text="contoso product planning"
                )
            ],
        )
    ],
    knowledge_source_params=[
        RemoteSharePointKnowledgeSourceParams(
            knowledge_source_name="my-remote-sharepoint-ks",
            filter_expression_add_on="filetype:docx",
        )
    ],
)

result = kb_client.retrieve(
    retrieval_request=request,
    x_ms_query_source_authorization=token,
)

U kunt een filterExpressionAddOn in het knowledgeSourceParams ophaalverzoek doorgeven om tijdens de query een KQL-filter toe te passen. Als u opgeeft filterExpressionAddOn voor de aanvraag voor ophalen en een filterExpression in de definitie van de kennisbron, zijn de filters samen AND'd.

POST {{search-url}}/knowledgebases/{{knowledge-base-name}}/retrieve?api-version=2025-11-01-preview
Authorization: Bearer {{accessToken}}
Content-Type: application/json
x-ms-query-source-authorization: {{user-access-token}}

{
    "messages": [
        {
            "role": "user",
            "content": [
                { "type": "text", "text": "contoso product planning" }
            ]
        }
    ],
    "knowledgeSourceParams": [
        {
            "knowledgeSourceName": "my-remote-sharepoint-ks",
            "kind": "remoteSharePoint",
            "filterExpressionAddOn": "filetype:docx"
        }
    ]
}

Schrijf effectieve queries

Query's die vragen stellen over de inhoud zelf zijn effectiever dan vragen over waar een bestand zich bevindt of wanneer het voor het laatst is bijgewerkt. Bijvoorbeeld: 'Waar is het keynote-document voor Ignite 2024' kan geen resultaten opleveren omdat de inhoud zelf de locatie niet openbaar maakt. Een FilterExpression op metagegevens is een betere benadering voor bestandslocatie of datumspecifieke query's.

Query's die vragen stellen over de inhoud zelf zijn effectiever dan vragen over waar een bestand zich bevindt of wanneer het voor het laatst is bijgewerkt. Bijvoorbeeld: 'Waar is het keynote-document voor Ignite 2024' kan geen resultaten opleveren omdat de inhoud zelf de locatie niet openbaar maakt. Een filter_expression op metagegevens is een betere benadering voor bestandslocatie of datumspecifieke query's.

Query's die vragen stellen over de inhoud zelf zijn effectiever dan vragen over waar een bestand zich bevindt of wanneer het voor het laatst is bijgewerkt. Bijvoorbeeld: 'Waar is het keynote-document voor Ignite 2024' kan geen resultaten opleveren omdat de inhoud zelf de locatie niet openbaar maakt. Een filterExpression op metagegevens is een betere benadering voor bestandslocatie of datumspecifieke query's.

Een effectievere vraag is: "Wat is het keynote-document voor Ignite 2024?" Het antwoord bevat het gesynthetiseerde antwoord, het aantal queryactiviteit en token, plus de URL en andere metagegevens.

SharePoint-specifieke antwoordvelden

Externe SharePoint resultaten bevatten velden die niet worden weergegeven voor andere typen kennisbronnen, zoals resourceMetadata, webUrl en searchSensitivityLabelInfo.

{
    "resourceMetadata": {
        "Author": "Nuwan Amarathunga;Nurul Izzati",
        "Title": "Ignite 2024 Keynote Address"
    },
    "rerankerScore": 2.489522,
    "webUrl": "https://contoso-my.sharepoint.com/keynotes/Documents/Keynote-Ignite-2024.docx",
    "searchSensitivityLabelInfo": {
        "displayName": "Confidential\\Contoso Extended",
        "sensitivityLabelId": "aaaaaaaa-0b0b-1c1c-2d2d-333333333333",
        "tooltip": "Data is classified and protected.",
        "priority": 5,
        "color": "#FF8C00",
        "isEncrypted": true
    }
}

Machtigingen afdwingen tijdens het uitvoeren van query's

Externe SharePoint kennisbronnen kunnen SharePoint machtigingen afdwingen tijdens het uitvoeren van query's. Als u dit filter wilt inschakelen, neemt u het toegangstoken van de eindgebruiker op in de aanvraag voor ophalen. De ophaalengine geeft het token door aan de Copilot Api voor ophalen, die query's SharePoint uitvoert en alleen inhoud retourneert waartoe de gebruiker toegang heeft. SharePoint machtigingen en Microsoft Purview vertrouwelijkheidslabels worden gehonoreerd.

Omdat externe SharePoint geen zoekindex gebruikt, is er geen configuratie van opname-/tijdmachtigingen nodig. Het toegangstoken is de enige vereiste.

Zie Machtigingen afdwingen tijdens het uitvoeren van query's voor instructies over het doorgeven van het token.

Een kennisbron verwijderen

Voordat u een kennisbron kunt verwijderen, moet u een knowledge base verwijderen die ernaar verwijst of de knowledge base-definitie bijwerken om de verwijzing te verwijderen. Voor kennisbronnen die een index- en indexeerpijplijn genereren, worden ook alle gegenereerde objecten verwijderd. Als u echter een bestaande index hebt gebruikt om een kennisbron te maken, wordt uw index niet verwijderd.

Als u probeert een kennisbron te verwijderen die in gebruik is, mislukt de actie en wordt een lijst met betrokken knowledge bases geretourneerd.

Een kennisbron verwijderen:

  1. Haal een lijst op met alle knowledge bases op uw zoekservice.

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

    Een voorbeeld van een antwoord kan er als volgt uitzien:

     Knowledge Bases:
       - earth-knowledge-base
       - hotels-sample-knowledge-base
       - my-demo-knowledge-base
    
  2. Haal een afzonderlijke Knowledge Base-definitie op om te controleren op verwijzingen naar kennisbronnen.

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

    Een voorbeeld van een antwoord kan er als volgt uitzien:

     {
       "Name": "earth-knowledge-base",
       "KnowledgeSources": [
         {
           "Name": "earth-knowledge-source"
         }
       ],
       "Models": [
         {}
       ],
       "RetrievalReasoningEffort": {},
       "OutputMode": {},
       "ETag": "\u00220x8DE278629D782B3\u0022",
       "EncryptionKey": null,
       "Description": null,
       "RetrievalInstructions": null,
       "AnswerInstructions": null
     }
    
  3. Verwijder de knowledge base of werk de knowledge base bij om de kennisbron te verwijderen als u meerdere bronnen hebt. In dit voorbeeld ziet u de verwijdering.

    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.");
    
  4. Verwijder de kennisbron.

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

Voordat u een kennisbron kunt verwijderen, moet u een knowledge base verwijderen die ernaar verwijst of de knowledge base-definitie bijwerken om de verwijzing te verwijderen. Voor kennisbronnen die een index- en indexeerpijplijn genereren, worden ook alle gegenereerde objecten verwijderd. Als u echter een bestaande index hebt gebruikt om een kennisbron te maken, wordt uw index niet verwijderd.

Als u probeert een kennisbron te verwijderen die in gebruik is, mislukt de actie en wordt een lijst met betrokken knowledge bases geretourneerd.

Een kennisbron verwijderen:

  1. Haal een lijst op met alle knowledge bases op uw zoekservice.

    # Get knowledge bases
    import requests
    import json
    
    endpoint = "{search_url}/knowledgebases"
    params = {"api-version": "2025-11-01-preview", "$select": "name"}
    headers = {"api-key": "{api_key}"}
    
    response = requests.get(endpoint, params = params, headers = headers)
    print(json.dumps(response.json(), indent = 2))
    

    Een voorbeeld van een antwoord kan er als volgt uitzien:

     {
         "@odata.context": "https://my-search-service.search.windows.net/$metadata#knowledgebases(name)",
         "value": [
         {
             "name": "my-kb"
         },
         {
             "name": "my-kb-2"
         }
         ]
     }
    
  2. Haal een afzonderlijke Knowledge Base-definitie op om te controleren op verwijzingen naar kennisbronnen.

    # Get a knowledge base definition
    import requests
    import json
    
    endpoint = "{search_url}/knowledgebases/{knowledge_base_name}"
    params = {"api-version": "2025-11-01-preview"}
    headers = {"api-key": "{api_key}"}
    
    response = requests.get(endpoint, params = params, headers = headers)
    print(json.dumps(response.json(), indent = 2))
    

    Een voorbeeld van een antwoord kan er als volgt uitzien:

     {
       "name": "my-kb",
       "description": null,
       "retrievalInstructions": null,
       "answerInstructions": null,
       "outputMode": null,
       "knowledgeSources": [
         {
           "name": "my-blob-ks",
         }
       ],
       "models": [],
       "encryptionKey": null,
       "retrievalReasoningEffort": {
         "kind": "low"
       }
     }
    
  3. Verwijder de knowledge base of werk de knowledge base bij om de kennisbron te verwijderen als u meerdere bronnen hebt. In dit voorbeeld ziet u de verwijdering.

    # 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.")
    
  4. Verwijder de kennisbron.

    # 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.")
    

Voordat u een kennisbron kunt verwijderen, moet u een knowledge base verwijderen die ernaar verwijst of de knowledge base-definitie bijwerken om de verwijzing te verwijderen. Voor kennisbronnen die een index- en indexeerpijplijn genereren, worden ook alle gegenereerde objecten verwijderd. Als u echter een bestaande index hebt gebruikt om een kennisbron te maken, wordt uw index niet verwijderd.

Als u probeert een kennisbron te verwijderen die in gebruik is, mislukt de actie en wordt een lijst met betrokken knowledge bases geretourneerd.

Een kennisbron verwijderen:

  1. Haal een lijst op met alle knowledge bases op uw zoekservice.

    ### Get knowledge bases
    GET {{search-endpoint}}/knowledgebases?api-version=2025-11-01-preview&$select=name
    api-key: {{api-key}}
    

    Een voorbeeld van een antwoord kan er als volgt uitzien:

     {
         "@odata.context": "https://my-search-service.search.windows.net/$metadata#knowledgebases(name)",
         "value": [
         {
             "name": "my-kb"
         },
         {
             "name": "my-kb-2"
         }
         ]
     }
    
  2. Haal een afzonderlijke Knowledge Base-definitie op om te controleren op verwijzingen naar kennisbronnen.

    ### Get a knowledge base definition
    GET {{search-endpoint}}/knowledgebases/{{knowledge-base-name}}?api-version=2025-11-01-preview
    api-key: {{api-key}}
    

    Een voorbeeld van een antwoord kan er als volgt uitzien:

     {
       "name": "my-kb",
       "description": null,
       "retrievalInstructions": null,
       "answerInstructions": null,
       "outputMode": null,
       "knowledgeSources": [
         {
           "name": "my-blob-ks",
         }
       ],
       "models": [],
       "encryptionKey": null,
       "retrievalReasoningEffort": {
         "kind": "low"
       }
     }
    
  3. Verwijder de knowledge base of werk de knowledge base bij door de kennisbron te verwijderen als u meerdere bronnen hebt. In dit voorbeeld ziet u de verwijdering.

    ### Delete a knowledge base
    DELETE {{search-endpoint}}/knowledgebases/{{knowledge-base-name}}?api-version=2025-11-01-preview
    api-key: {{api-key}}
    
  4. Verwijder de kennisbron.

    ### Delete a knowledge source
    DELETE {{search-endpoint}}/knowledgesources/{{knowledge-source-name}}?api-version=2025-11-01-preview
    api-key: {{api-key}}