Freigeben über


Erstellen einer Remote-SharePoint Wissensquelle

Hinweis

Dieses Feature ist zurzeit als öffentliche Preview verfügbar. Diese Vorschauversion wird ohne Vereinbarung zum Servicelevel (SLA) bereitgestellt und ist nicht für Produktionsworkloads vorgesehen. Manche Features werden möglicherweise nicht unterstützt oder sind nur eingeschränkt verwendbar. Weitere Informationen finden Sie unter Supplementale Nutzungsbedingungen für Microsoft Azure Previews.

Eine entfernte SharePoint Wissensquelle verwendet die Copilot-Abruf-API, um direkt auf Textinhalte in SharePoint in Microsoft 365 zuzugreifen. Es ist kein Suchindex oder Verbindungszeichenfolge erforderlich. Nur textbezogene Inhalte werden abgefragt, und die Nutzung wird über Microsoft 365 und eine Copilot Lizenz in Rechnung gestellt.

Um Websites oder die Suche einzuschränken, verwenden Sie einen Filterausdruck, um den Suchbereich auf URLs, Datumsbereiche, Dateitypen und andere Metadaten einzugrenzen. Die Identität des Aufrufers muss sowohl vom Azure Mandanten als auch vom Microsoft 365 Mandanten erkannt werden, da das Abrufmodul im Auftrag des Benutzers SharePoint abfragt.

Wie jede andere Wissensquelle geben Sie eine Remote-SharePoint Wissensquelle in einer knowledge Base an und verwenden die Ergebnisse als Erdungsdaten, wenn ein Agent oder Chatbot eine Retrieve-Aktion aufruft zur Abfragezeit.

Nutzungssupport

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

Voraussetzungen

Einschränkungen

Die folgenden Einschränkungen in der Copilot-Abruf-API gelten für Remote-SharePoint Wissensquellen.

  • Es gibt keine Unterstützung für Copilot Connectors oder OneDrive Inhalte. Inhalte werden nur von SharePoint Websites abgerufen.

  • Grenzwert von 200 Anforderungen pro Benutzer pro Stunde.

  • Abfragezeichenbeschränkung von 1.500 Zeichen.

  • Hybridabfragen werden nur für die folgenden Dateierweiterungen unterstützt: .doc, .docx, .pptx, .pdf, .aspx und .one.

  • Der multimodale Abruf (nichttextueller Inhalt, einschließlich Tabellen, Bildern und Diagrammen) wird nicht unterstützt.

  • Maximal 25 Ergebnisse aus einer Abfrage.

  • Ergebnisse werden von Copilot Abruf-API als ungeordnet zurückgegeben.

  • Ungültige KQL-Filterausdrücke (Keyword Query Language) werden ignoriert, und die Abfrage wird ohne den Filter weiterhin ausgeführt.

Überprüfen auf vorhandene Wissensquellen

Eine Wissensquelle ist ein wiederverwendbares Objekt der obersten Ebene. Das Wissen über vorhandene Wissensquellen ist hilfreich, um neue Objekte wiederzuverwenden oder zu benennen.

Führen Sie den folgenden Code aus, um Wissensquellen nach Namen und Typ auflisten.

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

Sie können auch eine einzelne Wissensquelle anhand des Namens zurück, um ihre JSON-Definition zu überprüfen.

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

Eine Wissensquelle ist ein wiederverwendbares Objekt der obersten Ebene. Das Wissen über vorhandene Wissensquellen ist hilfreich, um neue Objekte wiederzuverwenden oder zu benennen.

Führen Sie den folgenden Code aus, um Wissensquellen nach Namen und Typ auflisten.

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

Sie können auch eine einzelne Wissensquelle anhand des Namens zurück, um ihre JSON-Definition zu überprüfen.

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

Eine Wissensquelle ist ein wiederverwendbares Objekt der obersten Ebene. Das Wissen über vorhandene Wissensquellen ist hilfreich, um neue Objekte wiederzuverwenden oder zu benennen.

Verwenden Sie Wissensquellen – ABRUFEN (REST-API), um Wissensquellen nach Name und Typ auflisten.

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

Sie können auch eine einzelne Wissensquelle anhand des Namens zurück, um ihre JSON-Definition zu überprüfen.

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

Der folgende JSON-Code ist eine Beispielantwort für eine Remote-SharePoint Wissensquelle.

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

Erstellen einer Wissensquelle

Führen Sie den folgenden Code aus, um eine Remote-SharePoint Wissensquelle zu erstellen.

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

Führen Sie den folgenden Code aus, um eine Remote-SharePoint Wissensquelle zu erstellen.

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

Verwenden Sie Knowledge Sources – Create or Update (REST API) um eine Remote-SharePoint Wissensquelle zu erstellen.

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

Quellspezifische Eigenschaften

Sie können die folgenden Eigenschaften übergeben, um eine Remote-SharePoint Wissensquelle zu erstellen.

Name Description Typ Bearbeitbar Erforderlich
Name Der Name der Wissensquelle, die innerhalb der Wissensquellensammlung eindeutig sein muss und den richtlinien für naming für Objekte in Azure KI-Suche entsprechen muss. String Nein Yes
Description Eine Beschreibung der Wissensquelle. String Yes Nein
EncryptionKey Ein vom Kunden verwalteter Schlüssel zum Verschlüsseln vertraulicher Informationen in der Wissensquelle. Object Yes Nein
RemoteSharePointParameters Spezifische Parameter für Remote-SharePoint Wissensquellen: FilterExpression, ResourceMetadata und ContainerTypeId. Object Nein Nein
FilterExpression Ein in der SharePoint KQL geschriebener Ausdruck, der zum Angeben von Websites und Pfaden zu Inhalten verwendet wird. String Yes Nein
ResourceMetadata Ein Array von Standardmetadatenfeldern: Autor, Dateiname, Erstellungsdatum, Inhaltstyp und Dateityp. Array Yes Nein
ContainerTypeId Container-ID für die eingebettete SharePoint-Verbindung. Wenn nicht angegeben, wird SharePoint Online verwendet. String Yes Nein
Name Description Typ Bearbeitbar Erforderlich
name Der Name der Wissensquelle, die innerhalb der Wissensquellensammlung eindeutig sein muss und den richtlinien für naming für Objekte in Azure KI-Suche entsprechen muss. String Nein Yes
description Eine Beschreibung der Wissensquelle. String Yes Nein
encryption_key Ein vom Kunden verwalteter Schlüssel zum Verschlüsseln vertraulicher Informationen in der Wissensquelle. Object Yes Nein
remote_share_point_parameters Spezifische Parameter für Remote-SharePoint Wissensquellen: filter_expression, resource_metadata und container_type_id. Object Nein Nein
filter_expression Ein in der SharePoint KQL verfasster Ausdruck, der zum Angeben von Sites und Pfaden zu Inhalten verwendet wird. String Yes Nein
resource_metadata Ein Array von Standardmetadatenfeldern: Autor, Dateiname, Erstellungsdatum, Inhaltstyp und Dateityp. Array Yes Nein
container_type_id Container-ID für die SharePoint eingebettete Verknüpfung. Wenn nicht angegeben, wird SharePoint Online verwendet. String Yes Nein
Name Description Typ Bearbeitbar Erforderlich
name Der Name der Wissensquelle, die innerhalb der Wissensquellensammlung eindeutig sein muss und den richtlinien für naming für Objekte in Azure KI-Suche entsprechen muss. String Nein Yes
kind Die Art der Wissensquelle, die in diesem Fall remoteSharePoint ist. String Nein Yes
description Eine Beschreibung der Wissensquelle. String Yes Nein
encryptionKey Ein vom Kunden verwalteter Schlüssel zum Verschlüsseln vertraulicher Informationen in der Wissensquelle. Object Yes Nein
remoteSharePointParameters Spezifische Parameter für Remote-SharePoint Wissensquellen: filterExpression, resourceMetadata und containerTypeId. Object Nein Nein
filterExpression Ein in der SharePoint KQL geschriebener Ausdruck, der zum Angeben von Websites und Pfaden zu Inhalten verwendet wird. String Yes Nein
resourceMetadata Ein Array von Standardmetadatenfeldern: Autor, Dateiname, Erstellungsdatum, Inhaltstyp und Dateityp. Array Yes Nein
containerTypeId Container-ID für die SharePoint Embedded-Verbindung. Wenn nicht angegeben, wird SharePoint Online verwendet. String Yes Nein

Beispiele für Filterausdrücke

Nicht alle SharePoint Eigenschaften werden im filterExpression unterstützt. Eine Liste der unterstützten Eigenschaften finden Sie in der API-Referenz. Informationen zu abfragbaren Eigenschaften finden Sie unter "Queryable".

Weitere Informationen zu KQL-Filtern finden Sie in der Syntaxreferenz.

Example Filterausdruck
Filtern auf einzelne Website nach ID "filterExpression": "SiteID:\"00aa00aa-bb11-cc22-dd33-44ee44ee44ee\""
Nach ID auf mehrere Websites filtern "filterExpression": "SiteID:\"00aa00aa-bb11-cc22-dd33-44ee44ee44ee\" OR SiteID:\"11bb11bb-cc22-dd33-ee44-55ff55ff55ff\""
Filtern nach Dateien unter einem bestimmten Pfad "filterExpression": "Path:\"https://my-demo.sharepoint.com/sites/mysite/Shared Documents/en/mydocs\""
Filtern nach einem bestimmten Datumsbereich "filterExpression": "LastModifiedTime >= 2024-07-22 AND LastModifiedTime <= 2025-01-08"
Filtern nach Dateien eines bestimmten Dateityps "filterExpression": "FileExtension:\"docx\" OR FileExtension:\"pdf\" OR FileExtension:\"pptx\""
Filtern nach Dateien einer bestimmten Informationsschutzbezeichnung "filterExpression": "InformationProtectionLabelId:\"f0ddcc93-d3c0-4993-b5cc-76b0a283e252\""

Zuweisen zu einer Wissensbasis

Wenn Sie mit der Wissensquelle zufrieden sind, fahren Sie mit dem nächsten Schritt fort: Geben Sie die Wissensquelle in einer Wissensbasis an.

Abfragen einer Knowledge Base

Verwenden Sie nach der Konfiguration der Knowledge Base die aktion retrieve, um SharePoint Inhalt abzufragen. Remote-SharePoint verfügt über quellspezifische Verhaltensweisen für abfragezeitfilterung, Abfrageformulierung, Antwortfelder und Erzwingung von Berechtigungen.

Anwenden eines KQL-Filters zum Abfragezeitpunkt

Sie können eine FilterExpressionAddOn in der KnowledgeSourceParams Abrufanforderung übergeben, um einen KQL-Filter zur Abfragezeit anzuwenden. Wenn Sie FilterExpressionAddOn bei der Abrufanforderung und FilterExpression bei der Wissensquelldefinition angeben, werden die Filter zusammen mit UND verknüpft.

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

Sie können eine filter_expression_add_on in der knowledge_source_params Abrufanforderung übergeben, um einen KQL-Filter zur Abfragezeit anzuwenden. Wenn Sie filter_expression_add_on bei der Abrufanforderung und filter_expression bei der Wissensquelldefinition angeben, werden die Filter zusammen mit UND verknüpft.

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

Sie können eine filterExpressionAddOn in der knowledgeSourceParams Abrufanforderung übergeben, um einen KQL-Filter zur Abfragezeit anzuwenden. Wenn Sie filterExpressionAddOn bei der Abrufanforderung und filterExpression bei der Wissensquelldefinition angeben, werden die Filter zusammen mit UND verknüpft.

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

Schreiben effektiver Abfragen

Abfragen, die sich auf den Inhalt beziehen, sind effektiver als Fragen darüber, wo sich eine Datei befindet oder wann sie zuletzt aktualisiert wurde. Ein Beispiel: „Wo ist das Keynote-Dokument für Ignite 2024“ könnte keine Ergebnisse liefern, da der Inhalt selbst seinen Standort nicht offenlegt. Ein FilterExpression auf Metadaten ist ein besserer Ansatz für dateispezifische Abfragen oder den Dateispeicherort.

Abfragen, die sich auf den Inhalt beziehen, sind effektiver als Fragen darüber, wo sich eine Datei befindet oder wann sie zuletzt aktualisiert wurde. Ein Beispiel: „Wo ist das Keynote-Dokument für Ignite 2024“ könnte keine Ergebnisse liefern, da der Inhalt selbst seinen Standort nicht offenlegt. Ein filter_expression auf Metadaten ist ein besserer Ansatz für dateispezifische Abfragen oder den Dateispeicherort.

Abfragen, die sich auf den Inhalt beziehen, sind effektiver als Fragen darüber, wo sich eine Datei befindet oder wann sie zuletzt aktualisiert wurde. Ein Beispiel: „Wo ist das Keynote-Dokument für Ignite 2024“ könnte keine Ergebnisse liefern, da der Inhalt selbst seinen Standort nicht offenlegt. Ein filterExpression auf Metadaten ist ein besserer Ansatz für dateispezifische Abfragen oder den Dateispeicherort.

Eine effektivere Frage ist "Was ist das Keynote-Dokument für Ignite 2024". Die Antwort enthält die synthetisierte Antwort, Abfrageaktivität und Tokenanzahl sowie die URL und andere Metadaten.

SharePoint-spezifische Antwortfelder

Remote-SharePoint Ergebnisse umfassen Felder, die nicht für andere Wissensquellentypen angezeigt werden, z. B. resourceMetadata, webUrl und 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
    }
}

Erzwingen von Berechtigungen zum Zeitpunkt der Abfrage

Remote-SharePoint-Wissensquellen können SharePoint-Berechtigungen zur Abfragezeit durchsetzen. Um diese Filterung zu aktivieren, schließen Sie das Zugriffstoken des Endbenutzers in die Abrufanforderung ein. Das Abrufmodul übergibt das Token an die Copilot Abruf-API, die SharePoint abfragt und nur Inhalte zurückgibt, auf die der Benutzer Zugriff hat. SharePoint-Berechtigungen und Microsoft-Purview-Empfindlichkeitsbezeichnungen werden berücksichtigt.

Da remote SharePoint keinen Suchindex verwendet, ist keine Konfiguration von Berechtigungen zur Erfassungszeit erforderlich. Das Zugriffstoken ist die einzige Anforderung.

Anweisungen zum Übergeben des Tokens finden Sie unter Berechtigungen bei der Abfrage durchsetzen.

Löschen einer Wissensquelle

Bevor Sie eine Wissensquelle löschen können, müssen Sie alle Knowledge Basen löschen, die darauf verweisen, oder die Knowledge Base-Definition aktualisieren, um den Verweis zu entfernen. Für Wissensquellen, die eine Index- und Indexerpipeline generieren, werden auch alle generierten Objekte gelöscht. Wenn Sie jedoch einen vorhandenen Index zum Erstellen einer Wissensquelle verwendet haben, wird Ihr Index nicht gelöscht.

Wenn Sie versuchen, eine verwendete Wissensquelle zu löschen, schlägt die Aktion fehl und gibt eine Liste der betroffenen Wissensdatenbanken zurück.

So löschen Sie eine Wissensquelle:

  1. Erhalten Sie eine Liste aller Wissensdatenbanken für Ihren Suchdienst.

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

    Eine Beispielantwort könnte wie folgt aussehen:

     Knowledge Bases:
       - earth-knowledge-base
       - hotels-sample-knowledge-base
       - my-demo-knowledge-base
    
  2. Rufen Sie eine individuelle Wissensbasisdefinition ab, um nach Wissensquellenverweise zu suchen.

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

    Eine Beispielantwort könnte wie folgt aussehen:

     {
       "Name": "earth-knowledge-base",
       "KnowledgeSources": [
         {
           "Name": "earth-knowledge-source"
         }
       ],
       "Models": [
         {}
       ],
       "RetrievalReasoningEffort": {},
       "OutputMode": {},
       "ETag": "\u00220x8DE278629D782B3\u0022",
       "EncryptionKey": null,
       "Description": null,
       "RetrievalInstructions": null,
       "AnswerInstructions": null
     }
    
  3. Löschen Sie entweder die Wissensdatenbank, oder aktualisieren Sie die Wissensbasis , um die Wissensquelle zu entfernen, wenn Sie über mehrere Quellen verfügen. In diesem Beispiel wird das Löschen gezeigt.

    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. Löschen Sie die Wissensquelle.

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

Bevor Sie eine Wissensquelle löschen können, müssen Sie alle Knowledge Basen löschen, die darauf verweisen, oder die Knowledge Base-Definition aktualisieren, um den Verweis zu entfernen. Für Wissensquellen, die eine Index- und Indexerpipeline generieren, werden auch alle generierten Objekte gelöscht. Wenn Sie jedoch einen vorhandenen Index zum Erstellen einer Wissensquelle verwendet haben, wird Ihr Index nicht gelöscht.

Wenn Sie versuchen, eine verwendete Wissensquelle zu löschen, schlägt die Aktion fehl und gibt eine Liste der betroffenen Wissensdatenbanken zurück.

So löschen Sie eine Wissensquelle:

  1. Erhalten Sie eine Liste aller Wissensdatenbanken für Ihren Suchdienst.

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

    Eine Beispielantwort könnte wie folgt aussehen:

     {
         "@odata.context": "https://my-search-service.search.windows.net/$metadata#knowledgebases(name)",
         "value": [
         {
             "name": "my-kb"
         },
         {
             "name": "my-kb-2"
         }
         ]
     }
    
  2. Rufen Sie eine individuelle Wissensbasisdefinition ab, um nach Wissensquellenverweise zu suchen.

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

    Eine Beispielantwort könnte wie folgt aussehen:

     {
       "name": "my-kb",
       "description": null,
       "retrievalInstructions": null,
       "answerInstructions": null,
       "outputMode": null,
       "knowledgeSources": [
         {
           "name": "my-blob-ks",
         }
       ],
       "models": [],
       "encryptionKey": null,
       "retrievalReasoningEffort": {
         "kind": "low"
       }
     }
    
  3. Löschen Sie entweder die Wissensdatenbank, oder aktualisieren Sie die Wissensbasis , um die Wissensquelle zu entfernen, wenn Sie über mehrere Quellen verfügen. In diesem Beispiel wird das Löschen gezeigt.

    # 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. Löschen Sie die Wissensquelle.

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

Bevor Sie eine Wissensquelle löschen können, müssen Sie alle Knowledge Basen löschen, die darauf verweisen, oder die Knowledge Base-Definition aktualisieren, um den Verweis zu entfernen. Für Wissensquellen, die eine Index- und Indexerpipeline generieren, werden auch alle generierten Objekte gelöscht. Wenn Sie jedoch einen vorhandenen Index zum Erstellen einer Wissensquelle verwendet haben, wird Ihr Index nicht gelöscht.

Wenn Sie versuchen, eine verwendete Wissensquelle zu löschen, schlägt die Aktion fehl und gibt eine Liste der betroffenen Wissensdatenbanken zurück.

So löschen Sie eine Wissensquelle:

  1. Erhalten Sie eine Liste aller Wissensdatenbanken für Ihren Suchdienst.

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

    Eine Beispielantwort könnte wie folgt aussehen:

     {
         "@odata.context": "https://my-search-service.search.windows.net/$metadata#knowledgebases(name)",
         "value": [
         {
             "name": "my-kb"
         },
         {
             "name": "my-kb-2"
         }
         ]
     }
    
  2. Rufen Sie eine individuelle Wissensbasisdefinition ab, um nach Wissensquellenverweise zu suchen.

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

    Eine Beispielantwort könnte wie folgt aussehen:

     {
       "name": "my-kb",
       "description": null,
       "retrievalInstructions": null,
       "answerInstructions": null,
       "outputMode": null,
       "knowledgeSources": [
         {
           "name": "my-blob-ks",
         }
       ],
       "models": [],
       "encryptionKey": null,
       "retrievalReasoningEffort": {
         "kind": "low"
       }
     }
    
  3. Löschen Sie entweder die Wissensdatenbank, oder aktualisieren Sie die Wissensbasis , indem Sie die Wissensquelle entfernen, wenn Sie über mehrere Quellen verfügen. In diesem Beispiel wird das Löschen gezeigt.

    ### Delete a knowledge base
    DELETE {{search-endpoint}}/knowledgebases/{{knowledge-base-name}}?api-version=2025-11-01-preview
    api-key: {{api-key}}
    
  4. Löschen Sie die Wissensquelle.

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