Skapa en kunskapskälla för sökindex

Observera

Azure AI-sökning är tillgängligt via Azure-portalen, REST-API:er och Azure-SDK:er. Den ligger också till grund för Foundry IQ, det hanterade kunskapsskiktet som omvandlar företagsinnehåll till återanvändbara, behörighetsmedvetna kunskapsbaser för agenter i Microsoft Foundry-portalen.

Important

Funktioner, funktioner eller egenskaper som har markerats (förhandsversion) omfattas inte av ett serviceavtal, rekommenderas inte för produktionsarbetsbelastningar och kan ändras eller begränsas innan de blir allmänt tillgängliga. Villkoren för Azure AI-sökning förhandsgranskning gäller för alla förhandsgranskningsfunktioner, oavsett om de är fristående eller en del av en allmänt tillgänglig funktion.

En kunskapskälla för search index ansluter ett befintligt Azure AI-sökning index, inklusive dess indexerade text och vektorer, till en agentisk hämtningspipeline. Kunskapskällor skapas oberoende av varandra, refereras i en kunskapsbas och används som grunddata när kunskapsbasen efterfrågas vid körning.

Användningsstöd

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

Förutsättningar

  • Obligatoriskt Azure.Search.Documents paket:

    • Förhandsversionspaketet för 2026-08-01-preview-funktioner: dotnet add package Azure.Search.Documents --prerelease

    • För 2026-04-01 funktioner är det senaste stabila paketet: dotnet add package Azure.Search.Documents

  • För nyckellös autentisering, paketet Azure.Identity: dotnet add package Azure.Identity

  • Obligatoriskt azure-search-documents paket:

    • Förhandsversionspaketet för 2026-08-01-preview-funktioner: pip install --pre azure-search-documents

    • För 2026-04-01 funktioner är det senaste stabila paketet: pip install azure-search-documents

  • För nyckellös autentisering, paketet azure-identity: pip install azure-identity

  • Nödvändig REST API-version för söktjänsten:

  • För nyckellös autentisering inkluderar du en Microsoft Entra ID token i rubriken för Authorization varje HTTP-begäran.

Limitations

Agentisk hämtning gör inte att hämtningsbegäranden uppfyller det underliggande indexets bedömningsprofiler, inklusive defaultScoringProfile. Hämtade svar visar inte @search.rerankerBoostedScore.

Sök efter befintliga kunskapskällor

En kunskapskälla är ett återanvändbart objekt på toppnivå. Att känna till befintliga kunskapskällor är användbart för återanvändning eller namngivning av nya objekt.

Kör följande kod för att lista kunskapskällor efter namn och typ.

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

Referens: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})")

Referens:SearchIndexClient

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

Referens:Kunskapskällor – lista

Du kan också returnera en enda kunskapskälla efter namn för att granska dess JSON-definition.

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

Referens: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))

Referens:SearchIndexClient

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

Referens:Kunskapskällor – Hämta

Följande JSON är ett exempelsvar för en kunskapskälla för sökindex. Observera att kunskapskällan anger ett enda indexnamn och vilka fält i indexet som ska inkluderas i frågan.

{
  "name": "my-search-index-ks",
  "kind": "searchIndex",
  "description": "A sample search index knowledge source.",
  "encryptionKey": null,
  "searchIndexParameters": {
    "searchIndexName": "my-search-index",
    "semanticConfigurationName": null,
    "sourceDataFields": [],
    "searchFields": []
  }
}

Skapa en kunskapskälla

Kör följande kod för att skapa en kunskapskälla för sökindex.

Observera

Från och med 2026-05-01-preview API-versionen är semanticConfigurationName valfritt i kunskapskällor för sökindex. Tidigare API-versioner kräver semanticConfigurationNamefortfarande . Om din kunskapskälla behöver stödja både äldre och nyare API-versioner, fortsätt att ange semanticConfigurationName.

// Create a search index knowledge source
using Azure.Search.Documents.Indexes;
using Azure.Search.Documents.Indexes.Models;
using Azure.Identity;

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

var indexKnowledgeSource = new SearchIndexKnowledgeSource(
    name: knowledgeSourceName,
    searchIndexParameters: new SearchIndexKnowledgeSourceParameters(searchIndexName: indexName)
    {
        SearchFields = { new SearchIndexFieldReference(name: "page_chunk") },
        SourceDataFields = { new SearchIndexFieldReference(name: "id"), new SearchIndexFieldReference(name: "page_chunk"), new SearchIndexFieldReference(name: "page_number") }
    }
);

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

Referens:SearchIndexClient, SearchIndexKnowledgeSource

# Create a search index knowledge source
from azure.identity import DefaultAzureCredential
from azure.search.documents.indexes import SearchIndexClient
from azure.search.documents.indexes.models import SearchIndexKnowledgeSource, SearchIndexKnowledgeSourceParameters, SearchIndexFieldReference

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

knowledge_source = SearchIndexKnowledgeSource(
    name = "my-search-index-ks",
    description= "This knowledge source pulls from an existing index designed for agentic retrieval.",
    encryption_key = None,
    search_index_parameters = SearchIndexKnowledgeSourceParameters(
        search_index_name = "search_index_name",
        source_data_fields = [
            SearchIndexFieldReference(name="description"),
            SearchIndexFieldReference(name="category"),
        ],
        search_fields = [
            SearchIndexFieldReference(name="id")
        ],
    )
)

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

Referens:SearchIndexClient

### Create a search index knowledge source
PUT {{search-endpoint}}/knowledgesources/my-search-index-ks?api-version=2026-08-01-preview
Authorization: Bearer {{search-access-token}}
Content-Type: application/json

{
    "name": "my-search-index-ks",
    "kind": "searchIndex",
    "description": "This knowledge source pulls from an existing index designed for agentic retrieval.",
    "encryptionKey": null,
    "searchIndexParameters": {
        "searchIndexName": "<index-name>",
        "sourceDataFields": [
          { "name": "description" },
          { "name": "category" }
        ]
    }
}

Referens:Kunskapskällor – Skapa eller uppdatera

Bevara ett basfilter för en kunskapskälla (förhandsversion)

Från och med 2026-05-01-preview API-versionen kan en kunskapskälla för sökindex spara ett standardfilter via baseFilter egenskapen. Använd baseFilter när samma filteruttryck ska gälla för varje hämtningsbegäran som använder kunskapskällan, så anropare behöver inte upprepa filtret vid varje anrop.

I följande exempel lagras ett basfilter på en kunskapskälla för sökindex.

var knowledgeSource = new SearchIndexKnowledgeSource(
    name: "public-docs-ks",
    searchIndexParameters: new SearchIndexKnowledgeSourceParameters(searchIndexName: "public-docs-index")
    {
        BaseFilter = "isPublished eq true and accessScope eq 'public'"
    }
);

await indexClient.CreateOrUpdateKnowledgeSourceAsync(knowledgeSource);

Referens:SearchIndexKnowledgeSourceParameters

knowledge_source = SearchIndexKnowledgeSource(
    name="public-docs-ks",
    search_index_parameters=SearchIndexKnowledgeSourceParameters(
        search_index_name="public-docs-index",
        base_filter="isPublished eq true and accessScope eq 'public'",
    ),
)

index_client.create_or_update_knowledge_source(knowledge_source)

Referens:SearchIndexKnowledgeSourceParameters

PUT {{search-endpoint}}/knowledgesources/public-docs-ks?api-version=2026-08-01-preview
Content-Type: application/json
Authorization: Bearer {{search-access-token}}

{
  "name": "public-docs-ks",
  "kind": "searchIndex",
  "searchIndexParameters": {
    "searchIndexName": "public-docs-index",
    "baseFilter": "isPublished eq true and accessScope eq 'public'"
  }
}

Referens:Kunskapskällor – Skapa eller uppdatera

Vid hämtning lägger knowledgeSourceParams.filterAddOn till förfrågningsspecifika begränsningar till det lagrade basfiltret:

var retrievalRequest = new KnowledgeBaseRetrievalRequest();
retrievalRequest.KnowledgeSourceParams.Add(
    new SearchIndexKnowledgeSourceParams("public-docs-ks")
    {
        FilterAddOn = "category eq 'Benefits'"
    }
);
request = KnowledgeBaseRetrievalRequest(
    knowledge_source_params=[
        SearchIndexKnowledgeSourceParams(
            knowledge_source_name="public-docs-ks",
            filter_add_on="category eq 'Benefits'",
        ),
    ],
)
{
  "knowledgeSourceParams": [
    {
      "knowledgeSourceName": "public-docs-ks",
      "kind": "searchIndex",
      "filterAddOn": "category eq 'Benefits'"
    }
  ]
}

Det effektiva filtret består av:

baseFilter AND filterAddOn

Eftersom filtren kombineras med AND kan filterAddOn endast begränsa det sparade basfiltret. Den kan inte ersätta eller bredda den.

Konfigurera frågetips (förhandsversion)

Från och med API-versionen 2026-08-01-preview hjälper sökfrågetips modellen för frågeplanering att generera filter och förstärkningar av rankning utifrån en användares förfrågan. Lagra standardledtrådar i searchIndexParameters.queryHints, som kan innehålla både filter och förstärkningar.

Följande exempel lagrar ett filtertips och en fieldValue förstärkning i en kunskapskälla för product-docs-index, som har ett filterbart productFamily-fält och ett sökbart language-fält.

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

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

var queryHints = new SearchIndexKnowledgeSourceQueryHints();
queryHints.Filters.Add(
    new SearchIndexKnowledgeSourceFilterHint(
        "productFamily",
        ["Model-X100", "Model-X200"])
    {
        FilterInstructions =
            "Filter only when the user names a model."
    });

var languageBoost =
    new SearchIndexKnowledgeSourceFieldValueBoost(
        "language",
        2.0);
languageBoost.FieldValues.Add("en-US");
languageBoost.FieldValues.Add("ja-JP");
languageBoost.BoostInstructions =
    "Prefer the language requested by the user.";
queryHints.Boosts.Add(languageBoost);

var knowledgeSource = new SearchIndexKnowledgeSource(
    "product-docs-ks",
    new SearchIndexKnowledgeSourceParameters(
        "product-docs-index")
    {
        QueryHints = queryHints
    });

await indexClient.CreateOrUpdateKnowledgeSourceAsync(
    knowledgeSource);

Referens:SearchIndexKnowledgeSourceParameters

from azure.identity import DefaultAzureCredential
from azure.search.documents.indexes import SearchIndexClient
from azure.search.documents.indexes.models import (
    SearchIndexKnowledgeSource,
    SearchIndexKnowledgeSourceFieldValueBoost,
    SearchIndexKnowledgeSourceFilterHint,
    SearchIndexKnowledgeSourceParameters,
    SearchIndexKnowledgeSourceQueryHints,
)

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

query_hints = SearchIndexKnowledgeSourceQueryHints(
    filters=[
        SearchIndexKnowledgeSourceFilterHint(
            field="productFamily",
            field_values=["Model-X100", "Model-X200"],
            filter_instructions=(
                "Filter only when the user names a model."
            ),
        )
    ],
    boosts=[
        SearchIndexKnowledgeSourceFieldValueBoost(
            field="language",
            field_values=["en-US", "ja-JP"],
            boost=2.0,
            boost_instructions=(
                "Prefer the language requested by the user."
            ),
        )
    ],
)

knowledge_source = SearchIndexKnowledgeSource(
    name="product-docs-ks",
    search_index_parameters=SearchIndexKnowledgeSourceParameters(
        search_index_name="product-docs-index",
        query_hints=query_hints,
    ),
)

index_client.create_or_update_knowledge_source(knowledge_source)

Referens:SearchIndexKnowledgeSourceParameters

PUT {{search-endpoint}}/knowledgesources('product-docs-ks')?api-version=2026-08-01-preview
Content-Type: application/json
Authorization: Bearer {{search-access-token}}

{
  "name": "product-docs-ks",
  "kind": "searchIndex",
  "searchIndexParameters": {
    "searchIndexName": "product-docs-index",
    "queryHints": {
      "filters": [{
        "field": "productFamily",
        "fieldValues": ["Model-X100", "Model-X200"],
        "filterInstructions": "Filter only when the user names a model."
      }],
      "boosts": [{
        "kind": "fieldValue",
        "field": "language",
        "fieldValues": ["en-US", "ja-JP"],
        "boost": 2.0,
        "boostInstructions": "Prefer the language requested by the user."
      }]
    }
  }
}

Referens:Kunskapskällor – Skapa eller uppdatera

Konfigurera varje tips enligt följande krav:

Hint Fältkrav fieldValues Beteende Insamlingsgränser
Filter field måste identifiera ett filterbart indexfält. Required. Visa en fullständig uppsättning tillåtna värden. Om begäran inte mappas till ett angivet värde instrueras planeraren att inte filtrera på det fältet. Upp till fem tips med unika fält. Varje värde kan innehålla upp till 128 tecken, och alla värden i ett tips kan innehålla upp till 2 048 tecken tillsammans.
fieldValue boost field måste ange ett sökbart fält som använder ett språk-, standard- eller standardanalysverktyg. Valfria exempel. Om du utelämnar dem kan du använda boostInstructions för att förklara vilket värde som ska väljas från begäran. Upp till fem tips med unika fält. Varje tips kan innehålla upp till 20 värden, med 128 tecken per värde och 1 024 tecken tillsammans.
multiWordExpression boost Utelämna field. Indexet måste innehålla minst ett sökbart fält som använder en språk-, standard- eller standardinställd analysator. Valfria exempel på domänspecifika fraser. Ett tips. Den kan innehålla upp till 20 värden, med 128 tecken per värde och 1 024 tecken tillsammans.

För båda typerna av boost krävs boost och det måste vara ett ändligt tal som är större än 1.0. Högre värden ger matchande dokument större inflytande i rangordningen utan att andra dokument exkluderas. Begränsa varje valfritt filterInstructions värde eller boostInstructions värde till 1 024 tecken.

Använd en multiWordExpression boost för domänspecifika fraser vars innebörd inte fångas upp av de enskilda orden. Ange exempelfraser i fieldValues eller utelämna dem och låt boostInstructions och användarens begäran styra valet av fraser:

{
  "boosts": [{
    "kind": "multiWordExpression",
    "fieldValues": ["deferred tax", "wash sale"],
    "boost": 3.0,
    "boostInstructions": "Boost domain terms used as complete phrases."
  }]
}

Tänk på följande när du utformar frågetips:

  • Ledtrådar ges efter bästa förmåga, så modellen kanske inte genererar något filter eller någon förstärkning för varje förfrågan. För nödvändiga begränsningar, till exempel auktoriseringsgränser, använder du åtkomstkontroll på dokumentnivå eller ett deterministiskt filter i stället.

  • Tips behöver modelldriven frågeplanering, så de tillämpas inte när hämtningsskälet är minimal. På andra insatsnivåer returnerar en GPT-4o- eller GPT-4.1-familjemodell HTTP 400 när det lagrade queryHints objektet innehåller ett filter. Tjänsten kontrollerar lagrade filter innan queryHintOverrides tillämpas, så en åsidosättning som är tom eller endast innehåller boostar inte kringgår den här valideringen. Lagrade fieldValue och multiWordExpression-förstärkningar i sig utlöser inte valideringen.

  • Genererade filter kombineras med baseFilter och filterAddOn med hjälp av AND. En genererad boost skriver om frågan i fullständig Lucene-syntax samtidigt som de ursprungliga termerna bevaras.

  • Frågetips använder indexerade värden som grundvärden. De konfigurerar inte analysverktyg eller aktiverar språkidentifiering. Värdena language i dessa exempel är vanliga indexmetadata.

Information om hur du ersätter lagrade tips för en enskild hämtningsbegäran och verifierar det genererade filtret eller boosten finns i Åsidosätt lagrade frågetips vid frågetid (förhandsversion).

Tilldela en kunskapsbas

Om du är nöjd med kunskapskällan lägger du till den i en kunskapsbas.

Sök i en kunskapsbas

När kunskapsbasen har konfigurerats anropar du åtgärden hämta eller MCP-slutpunkten för att fråga kunskapskällan.

Ta bort en kunskapskälla

Innan du kan ta bort en kunskapskälla måste du ta bort alla kunskapsbaser som refererar till den eller uppdatera kunskapsbasdefinitionen för att ta bort referensen. För kunskapskällor som genererar en index- och indexeringspipeline tas även alla genererade objekt bort. Men om du använde ett befintligt index för att skapa en kunskapskälla tas inte ditt index bort.

Om du försöker ta bort en kunskapskälla som används misslyckas åtgärden och returnerar en lista över berörda kunskapsbaser.

Så här tar du bort en kunskapskälla:

  1. Hämta en lista över alla kunskapsbaser i söktjänsten.

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

    Referens:SearchIndexClient

    Ett exempelsvar kan se ut så här:

     {
         "@odata.context": "https://my-search-service.search.windows.net/$metadata#knowledgebases(name)",
         "value": [
         {
             "name": "my-kb"
         },
         {
             "name": "my-kb-2"
         }
         ]
     }
    
  2. Hämta en individuell kunskapsbasdefinition för att söka efter referenser till kunskapskällor.

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

    Referens:SearchIndexClient

    Ett exempelsvar kan se ut så här:

     {
       "Name": "earth-knowledge-base",
       "KnowledgeSources": [
         {
           "Name": "earth-knowledge-source"
         }
       ],
       "Models": [
         {}
       ],
       "RetrievalReasoningEffort": {},
       "OutputMode": {},
       "ETag": "\u00220x8DE278629D782B3\u0022",
       "EncryptionKey": null,
       "Description": null,
       "RetrievalInstructions": null,
       "AnswerInstructions": null
     }
    
  3. Ta antingen bort kunskapsbasen eller, om du har flera kunskapskällor, uppdatera kunskapsbasen för att ta bort källan. Det här exemplet visar borttagning.

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

    Referens:SearchIndexClient

  4. Ta bort kunskapskällan.

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

    Referens:SearchIndexClient

  1. Hämta en lista över alla kunskapsbaser i söktjänsten.

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

    Referens:SearchIndexClient

    Ett exempelsvar kan se ut så här:

     {
         "@odata.context": "https://my-search-service.search.windows.net/$metadata#knowledgebases(name)",
         "value": [
         {
             "name": "my-kb"
         },
         {
             "name": "my-kb-2"
         }
         ]
     }
    
  2. Hämta en individuell kunskapsbasdefinition för att söka efter referenser till kunskapskällor.

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

    Referens:SearchIndexClient

    Ett exempelsvar kan se ut så här:

     {
       "name": "my-kb",
       "description": null,
       "retrievalInstructions": null,
       "answerInstructions": null,
       "outputMode": null,
       "knowledgeSources": [
         {
           "name": "my-blob-ks"
         }
       ],
       "models": [],
       "encryptionKey": null,
       "retrievalReasoningEffort": {
         "kind": "low"
       }
     }
    
  3. Ta antingen bort kunskapsbasen eller, om du har flera kunskapskällor, uppdatera kunskapsbasen för att ta bort källan. Det här exemplet visar borttagning.

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

    Referens:SearchIndexClient

  4. Ta bort kunskapskällan.

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

    Referens:SearchIndexClient

  1. Hämta en lista över alla kunskapsbaser i söktjänsten.

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

    Referens:Kunskapsbaser – lista

    Ett exempelsvar kan se ut så här:

     {
         "@odata.context": "https://my-search-service.search.windows.net/$metadata#knowledgebases(name)",
         "value": [
         {
             "name": "my-kb"
         },
         {
             "name": "my-kb-2"
         }
         ]
     }
    
  2. Hämta en individuell kunskapsbasdefinition för att söka efter referenser till kunskapskällor.

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

    Referens:Kunskapsbaser – Hämta

    Ett exempelsvar kan se ut så här:

     {
       "name": "my-kb",
       "description": null,
       "retrievalInstructions": null,
       "answerInstructions": null,
       "outputMode": null,
       "knowledgeSources": [
         {
           "name": "my-blob-ks"
         }
       ],
       "models": [],
       "encryptionKey": null,
       "retrievalReasoningEffort": {
         "kind": "low"
       }
     }
    
  3. Ta antingen bort kunskapsbasen eller, om du har flera kunskapskällor, uppdatera kunskapsbasen för att ta bort källan. Det här exemplet visar borttagning.

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

    Referens:Kunskapsbaser – Ta bort

  4. Ta bort kunskapskällan.

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

    Referens:Kunskapskällor – Ta bort