Tworzenie zdalnego źródła wiedzy SharePoint (wersja zapoznawcza)

Uwaga

Wyszukiwanie AI platformy Azure jest dostępna za pośrednictwem portalu Azure, interfejsów API REST i Azure SDKs. Jest także podstawą Foundry IQ — zarządzanej warstwy wiedzy, która przekształca treści przedsiębiorstwa w bazy wiedzy wielokrotnego użytku z uwzględnieniem uprawnień dla agentów w portalu Microsoft Foundry.

Important

Funkcje, możliwości lub właściwości oznaczone (wersja zapoznawcza) nie są objęte umową dotyczącą poziomu usług, nie są zalecane w przypadku obciążeń produkcyjnych i mogą ulec zmianie lub ograniczeniu, zanim staną się one ogólnie dostępne. Warunki Wyszukiwanie AI platformy Azure wersji zapoznawczej mają zastosowanie do wszystkich funkcji w wersji zapoznawczej, niezależnie od tego, czy jest ona autonomiczna, czy częścią ogólnie dostępnej funkcji.

Zdalne źródło wiedzy programu SharePoint (wersja zapoznawcza) używa interfejsu API pobierania danych Copilot (wersja zapoznawcza) do wyszukiwania zawartości tekstowej bezpośrednio w usłudze SharePoint w środowisku Microsoft 365. Źródła wiedzy są tworzone niezależnie, przywoływane w bazie wiedzy i używane jako dane uziemienia, gdy baza wiedzy jest odpytywane w czasie wykonywania zapytań.

Aby ograniczyć witryny lub zawęzić wyszukiwanie, ustaw wyrażenie filtru do określenia zakresu według adresów URL, zakresów dat, typów plików i innych metadanych. Tożsamość obiektu wywołującego musi zostać rozpoznana zarówno przez dzierżawę Azure, jak i dzierżawę Microsoft 365, ponieważ silnik pobierania w imieniu użytkownika wysyła zapytania do SharePoint.

W przeciwieństwie do indeksowanych źródeł wiedzy zdalne źródła wiedzy SharePoint odpytują dane na żywo bezpośrednio w momencie pobierania. Nie jest wymagany indeks wyszukiwania lub parametry połączenia, a użycie jest rozliczane za pośrednictwem Microsoft 365 i licencji Copilot.

Wsparcie użytkowania

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

Wymagania wstępne

  • Najnowszy pakiet Azure.Search.Documents wersji zapoznawczej: dotnet add package Azure.Search.Documents --prerelease

  • W przypadku uwierzytelniania bezkluczowego pakiet Azure.Identity: dotnet add package Azure.Identity

  • Najnowszy pakiet azure-search-documents wersji zapoznawczej: pip install --pre azure-search-documents

  • W przypadku uwierzytelniania bezkluczowego pakiet azure-identity: pip install azure-identity

Ograniczenia i zagadnienia

Zewnętrzne źródła wiedzy SharePoint podlegają ograniczeniom wynikającym z interfejsu API pobierania Copilot i usługi Wyszukiwanie AI platformy Azure.

interfejs API wyszukiwania Copilot

Poniższe ograniczenia interfejsu Copilot Retrieval API dotyczą również zdalnych źródeł wiedzy SharePoint:

  • Nie ma obsługi łączników Copilot ani zawartości OneDrive. Zawartość jest pobierana tylko z witryn SharePoint.

  • Limit 200 żądań na użytkownika na godzinę.

  • Limit znaków zapytania wynosi 1500 znaków.

  • Zapytania hybrydowe są obsługiwane tylko w przypadku następujących rozszerzeń plików: .doc, , .docx, .pptx.pdf, .aspx, i .one.

  • Pobieranie wielomodalne (zawartość nietekstowa, w tym tabele, obrazy i wykresy) nie jest obsługiwana.

  • Maksymalnie 25 wyników z zapytania.

  • Wyniki są zwracane przez interfejs API pobierania Copilot w nieokreślonej kolejności.

  • Nieprawidłowe wyrażenia filtru języka zapytań słów kluczowych (KQL) są ignorowane, a zapytanie kontynuuje wykonywanie bez filtru.

Podczas wykonywania zapytań dotyczących bazy wiedzy Wyszukiwanie AI platformy Azure może jednocześnie uruchamiać ograniczoną liczbę zapytań SharePoint zdalnych. Limit zależy od modelu cen:

  • Dedykowany: każda replika usługi obsługuje jednocześnie tylko jedno zapytanie we wszystkich wybranych zdalnych źródłach wiedzy SharePoint dla żądania pobrania. Dodatkowe zapytania oczekują na dostępną replikę, co zwiększa opóźnienie. Aby zwiększyć przepływność zapytań, dodaj repliki.

  • Serverless (wersja zapoznawcza): Wyszukiwanie AI platformy Azure jednocześnie wykonuje tylko jedno zapytanie we wszystkich zdalnych źródłach wiedzy programu SharePoint wybranych dla żądania pobrania. Oczekiwanie na dodatkowe zapytania. Bezserwerowe automatycznie zarządza pojemnością, dzięki czemu nie można zwiększyć przepływności zapytań.

Sprawdzanie istniejących źródeł wiedzy

Źródłem wiedzy jest obiekt najwyższego poziomu wielokrotnego użytku. Znajomość istniejących źródeł wiedzy jest przydatna w przypadku ponownego użycia lub nazewnictwa nowych obiektów.

Uruchom następujący kod, aby wyświetlić listę źródeł wiedzy według nazwy i typu.

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

Reference:SearchIndexClient

# List knowledge sources by name and type
from azure.core.credentials import AzureKeyCredential
from azure.search.documents.indexes import SearchIndexClient

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

for ks in index_client.list_knowledge_sources():
    print(f"  - {ks.name} ({ks.kind})")

Reference:SearchIndexClient

### List knowledge sources by name and type
GET {{search-url}}/knowledgesources?api-version={{api-version}}&$select=name,kind
Authorization: Bearer {{token}}

Dokumentacja:Źródła wiedzy — lista

Możesz również zwrócić pojedyncze źródło wiedzy według nazwy, aby przejrzeć jego definicję JSON.

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

Reference:SearchIndexClient

# Get a knowledge source definition
from azure.core.credentials import AzureKeyCredential
from azure.search.documents.indexes import SearchIndexClient
import json

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

ks = index_client.get_knowledge_source("knowledge_source_name")
print(json.dumps(ks.as_dict(), indent = 2))

Reference:SearchIndexClient

### Get a knowledge source definition
GET {{search-url}}/knowledgesources/{{knowledge-source-name}}?api-version={{api-version}}
Authorization: Bearer {{token}}

Dokumentacja:Źródła wiedzy — pobierz

Poniższy kod JSON to przykładowa odpowiedź dla zdalnego SharePoint źródła wiedzy.

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

Tworzenie źródła wiedzy

Uruchom następujący kod, aby utworzyć zdalne źródło wiedzy SharePoint.

// 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.Identity;

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

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

Reference:SearchIndexClient, RemoteSharePointKnowledgeSource

# Create a remote SharePoint knowledge source
from azure.identity import DefaultAzureCredential
from azure.search.documents.indexes import SearchIndexClient
from azure.search.documents.indexes.models import RemoteSharePointKnowledgeSource, RemoteSharePointKnowledgeSourceParameters

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

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

Reference:SearchIndexClient

### Create a remote SharePoint knowledge source
PUT {{search-endpoint}}/knowledgesources/my-remote-sharepoint-ks?api-version=2026-08-01-preview
Authorization: Bearer {{search-access-token}}
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
    }
}

Dokumentacja:Źródła wiedzy — tworzenie lub aktualizowanie

Przykłady wyrażeń filtru

Nie wszystkie właściwości SharePoint są obsługiwane w filterExpression. Aby uzyskać listę obsługiwanych właściwości, zobacz dokumentację interfejsu API. Aby uzyskać informacje o właściwościach z możliwością wykonywania zapytań, zobacz Queryable (Możliwość wykonywania zapytań).

Dowiedz się więcej o filtrach KQL w dokumentacji składni.

Przykład Wyrażenie filtra
Filtruj pojedynczą witrynę według identyfikatora "filterExpression": "SiteID:\"00aa00aa-bb11-cc22-dd33-44ee44ee44ee\""
Filtrowanie wielu witryn według identyfikatora "filterExpression": "SiteID:\"00aa00aa-bb11-cc22-dd33-44ee44ee44ee\" OR SiteID:\"11bb11bb-cc22-dd33-ee44-55ff55ff55ff\""
Filtrowanie plików w ramach określonej ścieżki "filterExpression": "Path:\"https://my-demo.sharepoint.com/sites/mysite/Shared Documents/en/mydocs\""
Filtrowanie do określonego zakresu dat "filterExpression": "LastModifiedTime >= 2024-07-22 AND LastModifiedTime <= 2025-01-08"
Filtrowanie do plików określonego rodzaju "filterExpression": "FileExtension:\"docx\" OR FileExtension:\"pdf\" OR FileExtension:\"pptx\""
Filtrowanie plików według określonej etykiety ochrony informacji "filterExpression": "InformationProtectionLabelId:\"f0ddcc93-d3c0-4993-b5cc-76b0a283e252\""

Przypisywanie do bazy wiedzy

Jeśli źródło wiedzy jest zadowalające, dodaj je do bazy wiedzy.

Wykonywanie zapytań względem bazy wiedzy

Po skonfigurowaniu bazy wiedzy zwłań akcję pobierania lub punkt końcowy MCP do wykonywania zapytań dotyczących zawartości SharePoint. Zdalny SharePoint ma zachowania specyficzne dla źródła na potrzeby filtrowania w czasie zapytań, formułowania zapytań, pól odpowiedzi i egzekwowania uprawnień.

Stosowanie filtru KQL w czasie zapytania

Możesz przekazać FilterExpressionAddOn w żądaniu pobierania KnowledgeSourceParams, aby zastosować filtr KQL podczas wykonywania zapytania. Jeśli określisz FilterExpressionAddOn na żądaniu pobierania i FilterExpression na definicji źródła wiedzy, filtry zostaną połączone za pomocą operatora AND.

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

Dokumentacja:KnowledgeBaseRetrievalClient, KnowledgeBaseRetrievalRequest

Możesz przekazać filter_expression_add_on w żądaniu pobierania knowledge_source_params, aby zastosować filtr KQL podczas wykonywania zapytania. Jeśli określisz filter_expression_add_on na żądaniu pobierania i filter_expression na definicji źródła wiedzy, filtry zostaną połączone za pomocą operatora AND.

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

Dokumentacja:KnowledgeBaseRetrievalClient, KnowledgeBaseRetrievalRequest

Możesz przekazać filterExpressionAddOn w żądaniu pobierania knowledgeSourceParams, aby zastosować filtr KQL podczas wykonywania zapytania. Jeśli określisz filterExpressionAddOn na żądaniu pobierania i filterExpression na definicji źródła wiedzy, filtry zostaną połączone za pomocą operatora AND.

### Retrieve knowledge base content
POST {{search-endpoint}}/knowledgebases/{{knowledge-base-name}}/retrieve?api-version=2026-08-01-preview
Authorization: Bearer {{search-access-token}}
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"
        }
    ]
}

Referencja:Odzyskiwanie wiedzy - Pobieranie

Pisanie skutecznych zapytań

Zapytania, które pytają o samą zawartość, są bardziej skuteczne niż pytania dotyczące lokalizacji pliku lub ostatniej aktualizacji. Na przykład pytanie "Gdzie jest dokument z prezentacją główną dla Ignite 2024" może nie zwracać wyników, ponieważ sama zawartość nie ujawnia swojej lokalizacji. Metadane FilterExpression są lepszym rozwiązaniem w przypadku lokalizacji pliku lub zapytań specyficznych dla daty.

Zapytania, które pytają o samą zawartość, są bardziej skuteczne niż pytania dotyczące lokalizacji pliku lub ostatniej aktualizacji. Na przykład pytanie "Gdzie jest dokument z prezentacją główną dla Ignite 2024" może nie zwracać wyników, ponieważ sama zawartość nie ujawnia swojej lokalizacji. Metadane filter_expression są lepszym rozwiązaniem w przypadku lokalizacji pliku lub zapytań specyficznych dla daty.

Zapytania, które pytają o samą zawartość, są bardziej skuteczne niż pytania dotyczące lokalizacji pliku lub ostatniej aktualizacji. Na przykład pytanie "Gdzie jest dokument z prezentacją główną dla Ignite 2024" może nie zwracać wyników, ponieważ sama zawartość nie ujawnia swojej lokalizacji. Metadane filterExpression są lepszym rozwiązaniem w przypadku lokalizacji pliku lub zapytań specyficznych dla daty.

Bardziej skutecznym pytaniem jest "Co to jest główny dokument dotyczący konferencji Ignite 2024". Odpowiedź zawiera syntetyzowana odpowiedź, aktywność zapytań i liczbę tokenów oraz adres URL i inne metadane.

pola odpowiedzi specyficzne dla SharePoint

Wyniki SharePoint zdalnych obejmują pola, które nie są wyświetlane dla innych typów źródeł wiedzy, takich jak resourceMetadata, webUrl i 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
    }
}

Wymuszanie uprawnień w czasie wykonywania zapytania

Zdalne źródła wiedzy SharePoint mogą wymuszać uprawnienia SharePoint podczas zapytań. Aby włączyć tę filtrowanie, dołącz token dostępu użytkownika końcowego w żądaniu pobierania. Silnik wyszukiwania przekazuje token do Copilot Retrieval API, który wysyła zapytanie do SharePoint i zwraca tylko zawartość, do której użytkownik ma dostęp. Uprawnienia SharePoint i etykiety poufności Microsoft Purview są przestrzegane.

Ponieważ zdalny SharePoint nie używa indeksu wyszukiwania, nie jest wymagana żadna konfiguracja uprawnień na etapie pozyskiwania. Token dostępu jest jedynym wymaganiem.

Aby uzyskać instrukcje dotyczące przekazywania tokenu, zobacz Wymuszanie uprawnień w czasie zapytania (wersja zapoznawcza).

Usuwanie źródła wiedzy

Aby można było usunąć źródło wiedzy, należy usunąć dowolną bazę wiedzy, która odwołuje się do źródła wiedzy, lub zaktualizować definicję bazy wiedzy, aby usunąć odwołanie. W przypadku źródeł wiedzy, które generują potok indeksu i indeksatora, wszystkie wygenerowane obiekty również są usuwane. Jeśli jednak użyto istniejącego indeksu do utworzenia źródła wiedzy, indeks nie zostanie usunięty.

Jeśli spróbujesz usunąć używane źródło wiedzy, akcja zakończy się niepowodzeniem i zwróci listę baz wiedzy, których dotyczy problem.

Aby usunąć źródło wiedzy:

  1. Pobierz listę wszystkich baz wiedzy w usłudze wyszukiwania.

    using Azure.Search.Documents.Indexes;
    
    var indexClient = new SearchIndexClient(new Uri(searchEndpoint), credential);
    var knowledgeBases = indexClient.GetKnowledgeBasesAsync();
    
    Console.WriteLine("Knowledge Bases:");
    
    await foreach (var kb in knowledgeBases)
    {
        Console.WriteLine($"  - {kb.Name}");
    }
    

    Reference:SearchIndexClient

    Przykładowa odpowiedź może wyglądać następująco:

     {
         "@odata.context": "https://my-search-service.search.windows.net/$metadata#knowledgebases(name)",
         "value": [
         {
             "name": "my-kb"
         },
         {
             "name": "my-kb-2"
         }
         ]
     }
    
  2. Uzyskaj pojedynczą definicję bazy wiedzy, aby sprawdzić odwołania do źródeł wiedzy.

    using Azure.Search.Documents.Indexes;
    using System.Text.Json;
    
    var indexClient = new SearchIndexClient(new Uri(searchEndpoint), credential);
    
    // Specify the knowledge base name to retrieve
    string kbNameToGet = "earth-knowledge-base";
    
    // Get a specific knowledge base definition
    var knowledgeBaseResponse = await indexClient.GetKnowledgeBaseAsync(kbNameToGet);
    var kb = knowledgeBaseResponse.Value;
    
    // Serialize to JSON for display
    string json = JsonSerializer.Serialize(kb, new JsonSerializerOptions { WriteIndented = true });
    Console.WriteLine(json);
    

    Reference:SearchIndexClient

    Przykładowa odpowiedź może wyglądać następująco:

     {
       "Name": "earth-knowledge-base",
       "KnowledgeSources": [
         {
           "Name": "earth-knowledge-source"
         }
       ],
       "Models": [
         {}
       ],
       "RetrievalReasoningEffort": {},
       "OutputMode": {},
       "ETag": "\u00220x8DE278629D782B3\u0022",
       "EncryptionKey": null,
       "Description": null,
       "RetrievalInstructions": null,
       "AnswerInstructions": null
     }
    
  3. Usuń bazę wiedzy lub, jeśli masz wiele źródeł wiedzy, zaktualizuj bazę wiedzy, aby usunąć źródło. W tym przykładzie pokazano usunięcie.

    using Azure.Search.Documents.Indexes;
    var indexClient = new SearchIndexClient(new Uri(searchEndpoint), credential);
    
    await indexClient.DeleteKnowledgeBaseAsync(knowledgeBaseName);
    System.Console.WriteLine($"Knowledge base '{knowledgeBaseName}' deleted successfully.");
    

    Reference:SearchIndexClient

  4. Usuń źródło wiedzy.

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

    Reference:SearchIndexClient

  1. Pobierz listę wszystkich baz wiedzy w usłudze wyszukiwania.

    # Get knowledge bases
    from azure.core.credentials import AzureKeyCredential
    from azure.search.documents.indexes import SearchIndexClient
    
    index_client = SearchIndexClient(endpoint = "search_url", credential = AzureKeyCredential("api_key"))
    
    print("Knowledge Bases:")
    for kb in index_client.list_knowledge_bases():
        print(f"  - {kb.name}")
    

    Reference:SearchIndexClient

    Przykładowa odpowiedź może wyglądać następująco:

     {
         "@odata.context": "https://my-search-service.search.windows.net/$metadata#knowledgebases(name)",
         "value": [
         {
             "name": "my-kb"
         },
         {
             "name": "my-kb-2"
         }
         ]
     }
    
  2. Uzyskaj pojedynczą definicję bazy wiedzy, aby sprawdzić odwołania do źródeł wiedzy.

    # Get a knowledge base definition
    from azure.core.credentials import AzureKeyCredential
    from azure.search.documents.indexes import SearchIndexClient
    
    index_client = SearchIndexClient(endpoint = "search_url", credential = AzureKeyCredential("api_key"))
    kb = index_client.get_knowledge_base("knowledge_base_name")
    print(kb)
    

    Reference:SearchIndexClient

    Przykładowa odpowiedź może wyglądać następująco:

     {
       "name": "my-kb",
       "description": null,
       "retrievalInstructions": null,
       "answerInstructions": null,
       "outputMode": null,
       "knowledgeSources": [
         {
           "name": "my-blob-ks"
         }
       ],
       "models": [],
       "encryptionKey": null,
       "retrievalReasoningEffort": {
         "kind": "low"
       }
     }
    
  3. Usuń bazę wiedzy lub, jeśli masz wiele źródeł wiedzy, zaktualizuj bazę wiedzy, aby usunąć źródło. W tym przykładzie pokazano usunięcie.

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

    Reference:SearchIndexClient

  4. Usuń źródło wiedzy.

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

    Reference:SearchIndexClient

  1. Pobierz listę wszystkich baz wiedzy w usłudze wyszukiwania.

    ### Get knowledge bases
    GET {{search-url}}/knowledgebases?api-version={{api-version}}&$select=name
    Authorization: Bearer {{token}}
    

    Dokumentacja:Bazy wiedzy — lista

    Przykładowa odpowiedź może wyglądać następująco:

     {
         "@odata.context": "https://my-search-service.search.windows.net/$metadata#knowledgebases(name)",
         "value": [
         {
             "name": "my-kb"
         },
         {
             "name": "my-kb-2"
         }
         ]
     }
    
  2. Uzyskaj pojedynczą definicję bazy wiedzy, aby sprawdzić odwołania do źródeł wiedzy.

    ### Get a knowledge base definition
    GET {{search-url}}/knowledgebases/{{knowledge-base-name}}?api-version={{api-version}}
    Authorization: Bearer {{token}}
    

    Dokumentacja:Bazy wiedzy — pobieranie

    Przykładowa odpowiedź może wyglądać następująco:

     {
       "name": "my-kb",
       "description": null,
       "retrievalInstructions": null,
       "answerInstructions": null,
       "outputMode": null,
       "knowledgeSources": [
         {
           "name": "my-blob-ks"
         }
       ],
       "models": [],
       "encryptionKey": null,
       "retrievalReasoningEffort": {
         "kind": "low"
       }
     }
    
  3. Usuń bazę wiedzy lub, jeśli masz wiele źródeł wiedzy, zaktualizuj bazę wiedzy, aby usunąć źródło. W tym przykładzie pokazano usunięcie.

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

    Dokumentacja:Bazy wiedzy — usuwanie

  4. Usuń źródło wiedzy.

    ### Delete a knowledge source
    DELETE {{search-url}}/knowledgesources/{{knowledge-source-name}}?api-version={{api-version}}
    Authorization: Bearer {{token}}
    

    Dokumentacja:Źródła wiedzy — usuwanie