Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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
Azure KI-Suche in einer beliebigen Region, die agentischen Abruf bereitstellt. Sie müssen den semantischen Rangierer aktiviert haben.
SharePoint in einem Microsoft 365-Mandanten, der denselben Microsoft Entra ID-Mandanten wie Azure verwendet.
Eine Microsoft 365 Copilot-Lizenz für den Abfragezeitzugriff auf SharePoint Inhalte.
Berechtigung zum Erstellen und Verwenden von Objekten für Azure KI-Suche. Wir empfehlen den rollenbasierten Zugriff, aber Sie können API-Schlüssel verwenden, wenn eine Rollenzuweisung nicht machbar ist. Weitere Informationen finden Sie unter Herstellen einer Verbindung mit einem Suchdienst.
- Das neueste
Azure.Search.DocumentsPreview-Paket:dotnet add package Azure.Search.Documents --prerelease
- Das neueste
azure-search-documentsPreview-Paket:pip install --pre azure-search-documents
- Die Version 2025-11-01-Preview der REST-API des Suchdiensts.
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:
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-baseRufen 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 }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.");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:
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" } ] }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" } }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.")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:
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" } ] }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" } }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}}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}}