Tworzenie źródła wiedzy serwera MCP (wersja zapoznawcza)

Note

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.

Ważna

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.

Źródło wiedzy serwera MCP (wersja zapoznawcza) łączy dowolny system, który udostępnia punkt końcowy zgodny z protokołem Model Context Protocol (MCP), z potokiem wyszukiwania agentowego w usłudze Wyszukiwanie AI platformy Azure. Ź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ń.

Narzędzia MCP wyświetlają dane i funkcje z systemów zewnętrznych jako funkcje wywoływane przez agentów w czasie wykonywania zapytań. Dzięki temu źródła wiedzy serwera MCP są przydatne, gdy potrzebne informacje są dostępne w narzędziach wewnętrznych, interfejsach API innych firm lub niestandardowych zapleczach, które Wyszukiwanie AI platformy Azure nie obsługują natywnie.

W przeciwieństwie do indeksowanych źródeł wiedzy źródła wiedzy serwera MCP wysyłają zapytania o dane na żywo bezpośrednio w czasie pobierania. Potok importu danych nie jest potrzebny. Podaj adres URL serwera MCP i określ, które narzędzia Wyszukiwanie AI platformy Azure mogą wywoływać w czasie zapytania.

Warning

Implementacje MCP są podatne na zagrożenia, takie jak ataki, kaskadowe awarie i utrata nadzoru ludzkiego. Te zagrożenia można ograniczyć, sprawdzając serwery MCP pod kątem bezpieczeństwa i niezawodności, postępując zgodnie z zalecanymi praktykami firmy Microsoft i najlepszymi praktykami branżowymi, a także wdrażając mechanizmy akceptacji i monitorując zachowania kaskadowe.

Wsparcie użytkowania

Portal Azure Portal Microsoft Foundry SDK platformy .NET SDK języka Python SDK Java JavaScript SDK API REST
✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️

Wymagania wstępne

  • Usługa Wyszukiwanie AI platformy Azure w dowolnym regionie, która zapewnia autonomiczne wyszukiwanie.

  • Serwer MCP z co najmniej jednym narzędziem. Serwer musi być dostępny z Wyszukiwanie AI platformy Azure za pośrednictwem protokołu HTTPS. Do testowania można użyć publicznego serwera Microsoft Learn MCP w https://learn.microsoft.com/api/mcp.

  • Uprawnienie do tworzenia źródeł wiedzy. Skonfiguruj uwierzytelnianie bez klucza przy użyciu roli Współautor usługi wyszukiwania przypisanej do konta użytkownika (zalecane) lub użyj klucza interfejsu API administratora.

  • 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

  • Nakład na minimalrozumowanie podczas pobierania nie jest obsługiwany. Użyj polecenia low lub medium zamiast tego.

  • alwaysQuerySource nie jest obsługiwany w przypadku żądań pobierania odwołujących się do źródła wiedzy serwera MCP.

  • Wywołania narzędzi serwera MCP obejmują żądania sieci zewnętrznej i mogą trwać dłużej niż typowe zapytania wyszukiwania. Ustaw maxRuntimeInSeconds dla żądań pobierania, aby dać wszystkim skonfigurowanym narzędziom wystarczający czas na odpowiedź.

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 źródła wiedzy serwera MCP.

{
  "name": "my-mcp-server-ks",
  "kind": "mcpServer",
  "description": "An MCP Server knowledge source.",
  "resultsProcessing": "rerank",
  "encryptionKey": null,
  "mcpServerParameters": {
    "serverURL": "https://learn.microsoft.com/api/mcp",
    "authentication": null,
    "tools": [
      {
        "name": "microsoft_docs_search",
        "resultsProcessing": "none",
        "maxOutputTokens": 1000,
        "outputParsing": {
          "kind": "auto",
          "jsonParameters": null,
          "splitParameters": null
        }
      }
    ]
  }
}

Tworzenie źródła wiedzy

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

using Azure.Identity;
using Azure.Search.Documents.Indexes;
using Azure.Search.Documents.Indexes.Models;

Uri searchEndpoint = new Uri("<search-endpoint>");
DefaultAzureCredential credential = new DefaultAzureCredential();
var indexClient = new SearchIndexClient(searchEndpoint, credential);

var mcpServer = new McpServerKnowledgeSource(
    "my-mcp-server-ks",
    new McpServerKnowledgeSourceParameters(
        "https://learn.microsoft.com/api/mcp",
        new[]
        {
            new McpServerTool
            {
                Name = "microsoft_docs_search",
                OutputParsing = new McpServerAutoOutputParsing(),
                ResultsProcessing = KnowledgeSourceResultsProcessing.None,
                MaxOutputTokens = 1000
            }
        }))
{
    Description = "An MCP Server knowledge source.",
    ResultsProcessing = KnowledgeSourceResultsProcessing.Rerank
};

await indexClient.CreateOrUpdateKnowledgeSourceAsync(mcpServer);

Reference:SearchIndexClient

from azure.identity import DefaultAzureCredential
from azure.search.documents.indexes import SearchIndexClient
from azure.search.documents.indexes.models import (
    McpServerAutoOutputParsing,
    McpServerKnowledgeSource,
    McpServerKnowledgeSourceParameters,
    McpServerTool,
)

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

knowledge_source = McpServerKnowledgeSource(
    name="my-mcp-server-ks",
    description="An MCP Server knowledge source.",
    results_processing="rerank",
    mcp_server_parameters=McpServerKnowledgeSourceParameters(
        server_url="https://learn.microsoft.com/api/mcp",
        tools=[
            McpServerTool(
                name="microsoft_docs_search",
                output_parsing=McpServerAutoOutputParsing(),
                results_processing="none",
                max_output_tokens=1000,
            )
        ],
    ),
)

index_client.create_or_update_knowledge_source(knowledge_source)

saved_source = index_client.get_knowledge_source(
    knowledge_source.name
)
assert saved_source.results_processing == "rerank"
assert (
    saved_source.mcp_server_parameters.tools[0].results_processing
    == "none"
)

Dokumentacja:SearchIndexClient, McpServerKnowledgeSource, McpServerTool

### Create an MCP Server knowledge source
PUT {{search-endpoint}}/knowledgesources/my-mcp-server-ks?api-version=2026-08-01-preview
Authorization: Bearer {{search-access-token}}
Content-Type: application/json
Prefer: return=representation

{
  "name": "my-mcp-server-ks",
  "kind": "mcpServer",
  "description": "An MCP Server knowledge source.",
  "resultsProcessing": "rerank",
  "encryptionKey": null,
  "mcpServerParameters": {
    "serverURL": "https://learn.microsoft.com/api/mcp",
    "tools": [
      {
        "name": "microsoft_docs_search",
        "outputParsing": {
          "kind": "auto"
        },
        "resultsProcessing": "none",
        "maxOutputTokens": 1000
      }
    ]
  }
}

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

Opcje uwierzytelniania

Jeśli serwer MCP wymaga uwierzytelniania, użyj jednej z następujących opcji.

Używaj foundryConnection tylko wtedy, gdy agent z usługi Foundry Agent Service korzysta z bazy wiedzy, która zawiera to źródło wiedzy serwera MCP. W tym przepływie usługa rozpoznaje połączenie i wprowadza wymagane poświadczenia, gdy wywołuje serwer MCP. Jeśli wywołujesz bazę wiedzy bezpośrednio lub z klienta innego niż Foundry Agent Service, foundryConnection nie działa.

"authentication": {
  "kind": "foundryConnection",
  "foundryConnectionParameters": {
    "connectionId": "<foundry-connection-id>"
  }
}

Przekazywanie nagłówków podczas wykonywania zapytania

Jeśli serwer MCP wymaga poświadczeń dla każdego żądania, przekaż je w żądaniu pobrania przy użyciu sparowanych nagłówków sterujących. Ta składnia przekazuje nagłówki do serwera MCP bez powodowania konfliktu z nagłówkiem Authorization lub api-key, służącym do uwierzytelniania w usłudze Wyszukiwanie AI platformy Azure.

Użyj nazwy źródła wiedzy jako prefiksu:

Nagłówek kontrolki Description
<knowledge-source-name>-header-name<N> Nazwa nagłówka HTTP do wysłania na serwer MCP.
<knowledge-source-name>-header-value<N> Wartość nagłówka HTTP do wysłania do serwera MCP.

<N> jest opcjonalnym sufiksem liczbowym, który łączy wiele nagłówków w pary. Na przykład my-mcp-server-ks-header-name1 jest sparowany z my-mcp-server-ks-header-value1.

Utwórz klienta pobierania z zasadą, która dodaje nagłówki sterujące do żądania pobrania.

using Azure.Identity;
using Azure.Core;
using Azure.Core.Pipeline;
using Azure.Search.Documents;
using Azure.Search.Documents.KnowledgeBases;
using Azure.Search.Documents.KnowledgeBases.Models;

string knowledgeSourceName = "my-mcp-server-ks";

var options = new SearchClientOptions();
options.AddPolicy(new McpPassthroughHeaderPolicy(knowledgeSourceName), HttpPipelinePosition.PerCall);

var retrievalClient = new KnowledgeBaseRetrievalClient(
    endpoint: new Uri(searchEndpoint),
    knowledgeBaseName: knowledgeBaseName,
    credential: credential,
    options: options);

var request = new KnowledgeBaseRetrievalRequest();
request.Messages.Add(
    new KnowledgeBaseMessage(new[] { new KnowledgeBaseMessageTextContent("Find Azure AI Search MCP guidance.") })
    {
        Role = "user"
    });
request.KnowledgeSourceParams.Add(new SearchIndexKnowledgeSourceParams(knowledgeSourceName));

Response<KnowledgeBaseRetrievalResponse> response = await retrievalClient.RetrieveAsync(request);

sealed class McpPassthroughHeaderPolicy(string knowledgeSourceName) : HttpPipelineSynchronousPolicy
{
    public override void OnSendingRequest(HttpMessage message)
    {
        message.Request.Headers.Add($"{knowledgeSourceName}-header-name", "Authorization");
        message.Request.Headers.Add($"{knowledgeSourceName}-header-value", "Bearer <mcp-server-access-token>");
        message.Request.Headers.Add($"{knowledgeSourceName}-header-name1", "x-custom-auth");
        message.Request.Headers.Add($"{knowledgeSourceName}-header-value1", "<mcp-server-header-value>");
    }
}

Przekaż nagłówki kontrolne w argumencie słowa kluczowego headers w wywołaniu retrieve.

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

knowledge_source_name = "my-mcp-server-ks"

request = KnowledgeBaseRetrievalRequest(
    messages=[
        KnowledgeBaseMessage(
            role="user",
            content=[
                KnowledgeBaseMessageTextContent(
                    text="Find Azure AI Search MCP guidance."
                )
            ],
        )
    ],
    knowledge_source_params=[
        SearchIndexKnowledgeSourceParams(knowledge_source_name=knowledge_source_name)
    ],
)

result = retrieval_client.retrieve(
    request,
    headers={
        f"{knowledge_source_name}-header-name": "Authorization",
        f"{knowledge_source_name}-header-value": "Bearer <mcp-server-access-token>",
        f"{knowledge_source_name}-header-name1": "x-custom-auth",
        f"{knowledge_source_name}-header-value1": "<mcp-server-header-value>",
    },
)
POST {{search-endpoint}}/knowledgebases/{{knowledge-base-name}}/retrieve?api-version=2026-08-01-preview
Authorization: Bearer {{search-access-token}}
Content-Type: application/json
my-mcp-server-ks-header-name: Authorization
my-mcp-server-ks-header-value: Bearer {{mcp-server-access-token}}
my-mcp-server-ks-header-name1: x-custom-auth
my-mcp-server-ks-header-value1: {{mcp-server-header-value}}

{
  "messages": [
    {
      "role": "user",
      "content": [
        {
          "type": "text",
          "text": "Find Azure AI Search MCP guidance."
        }
      ]
    }
  ],
  "knowledgeSourceParams": [
    {
      "knowledgeSourceName": "my-mcp-server-ks",
      "kind": "mcpServer"
    }
  ]
}

Każda para nagłówków musi zawierać dokładnie jeden nagłówek kontrolki nazwy i jeden odpowiadający mu nagłówek kontrolki wartości. Nazwy nagłówków i wartości muszą być prawidłowymi nagłówkami żądań HTTP. Jeśli nagłówek określany w czasie wykonywania zapytania używa tej samej nazwy nagłówka docelowego co wpis storedHeaders, wartość podana w czasie wykonywania zapytania zastępuje przechowywaną wartość dla tego żądania.

Konfigurowanie narzędzi

Każdy wpis w tablicy tools określa, które narzędzie MCP jest dozwolone, opcjonalne zachowanie parsowania danych wyjściowych oraz sposób przetwarzania wyników narzędzia.

Użyj resultsProcessing, aby kontrolować, czy silnik wyszukiwania zmienia kolejność wyników narzędzia. Prawidłowe wartości to rerank i none. Aby uzyskać mapowania dla wcześniejszych kontraktów, zobacz Zmigruj kod agentycznego pobierania do najnowszej wersji.

Dla każdego narzędzia MCP usługa ustala wartość resultsProcessing w następującej kolejności: wartość narzędzia, wartość żądania w elemencie knowledgeSourceParams, przechowywana wartość źródła wiedzy, a następnie rerank. Wartość narzędzia ma zastosowanie tylko do tego narzędzia.

Tryby analizowania danych wyjściowych

Domyślnie mechanizm pobierania stosuje automatyczne heurystyki (auto) do przekształcania surowych danych wyjściowych narzędzia MCP w dokumenty, które można rangować. Możesz nadpisać to zachowanie dla każdego narzędzia za pomocą właściwości outputParsing.

Tryb auto nie wymaga żadnej konfiguracji. Aparat pobierania stosuje heurystyki do analizowania danych wyjściowych narzędzia.

Przypisywanie do bazy wiedzy

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

Wykonywanie zapytań w bazie wiedzy

Po skonfigurowaniu bazy wiedzy wywołaj akcję pobierania lub punkt końcowy MCP , aby wysłać zapytanie do zawartości serwera MCP. Źródła wiedzy serwera MCP mają zachowanie pobierania specyficzne dla źródła i pola odpowiedzi.

Jak działa pobieranie dla źródeł wiedzy serwera MCP

W czasie wykonywania zapytania duży model językowy (LLM) skonfigurowany w bazie wiedzy przegląda skonfigurowane narzędzia, wybiera te, które mają być wywoływane na podstawie zapytania użytkownika, i generuje argumenty dla każdego wywołania. Wyszukiwanie AI platformy Azure następnie wywołuje wybrane narzędzia na serwerze MCP i zwraca wyniki jako sklasyfikowane odwołania.

Pola odpowiedzi specyficzne dla serwera MCP

Źródła wiedzy serwera MCP zwracają odwołania dla poszczególnych dokumentów w tablicy references oraz informacje diagnostyczne dla poszczególnych wywołań w tablicy activity. Jeśli źródło wiedzy zawiera listę wielu narzędzi, a model wybierze więcej niż jeden, zostanie wyświetlony oddzielny rekord działania dla każdego wywołania.

W poniższym przykładzie przedstawiono odpowiedź pobierania zawierającą odwołanie do źródła wiedzy serwera MCP i odpowiadający mu rekord aktywności. Aby uzyskać szersze wskazówki dotyczące interpretowania odpowiedzi operacji pobierania, zobacz Przejrzyj odpowiedź.

Wskazówka

Aby otrzymywać sourceData odniesienia, ustaw wartość includeReferenceSourceData na true we wpisie źródła wiedzy w elemencie knowledgeSourceParams w żądaniu pobierania.

{
  "response": [
      // ... Response omitted for brevity
  ],
  "activity": [
    {
      "type": "mcpServer",
      "id": 1,
      "knowledgeSourceName": "my-mcp-server-ks",
      "queryTime": "2026-05-11T15:42:33.0888894Z",
      "count": 10,
      "elapsedMs": 768,
      "mcpServerArguments": {
        "toolName": "microsoft_docs_search",
        "toolArguments": {
          "query": "Azure AI Search features"
        }
      }
    },
    {
      // ... Additional activity records omitted for brevity
    }
  ],
  "references": [
    {
      "type": "mcpServer",
      "id": "0",
      "activitySource": 1,
      "sourceData": {
        "title": "What is a knowledge source?",
        "content": "..."
      },
      "rerankerScore": 2.96,
      "toolName": "microsoft_docs_search",
      "title": "my-mcp-server-ks microsoft_docs_search 1"
    },
    {
      // ... Additional references omitted for brevity
    }
  ]
}

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