Skapa en webbresurs för kunskap

Viktigt

  • Web Knowledge Source, som använder grounding med Bing Search och/eller Grounding med anpassad Bing-sökning, är en First Party Consumption Service som styrs av Grund med användningsvillkor för Bing och Microsoft sekretesspolicy.

  • Tillägget Microsoft Dataskydd gäller inte för data som skickas till Web Knowledge Source. När kunden använder Web Knowledge Source flödar kunddata utanför Azure:s efterlevnads- och geografiska gränser. Det innebär också att användningen av Web Knowledge Source avstår från alla utökade åtaganden för säkerhet och efterlevnad för Government Community Cloud för att inkludera datasuveränitet och skärmat/medborgarskapsbaserat stöd, beroende på vad som är tillämpligt.

  • Användning av Web Knowledge Source medför kostnader; läs mer om priser.

  • Läs mer om hur Azure administratörer kan hantera åtkomst till användning av Web Knowledge Source.

Observera

Den här agentiska hämtningsfunktionen är allmänt tillgänglig i REST API-versionen 2026-04-01 via programmatisk åtkomst. Portalen Azure och Microsoft Foundry fortsätter att ge förhandsversionsåtkomst till alla funktioner för agentisk hämtning. Information om migrering finns i Migrera agentisk hämtningskod till den senaste versionen.

Om du väljer att använda en REST API-version för förhandsversion kan du komma åt funktioner som ännu inte är allmänt tillgängliga för den här funktionen. Förhandsversionsfunktioner tillhandahålls utan serviceavtal och rekommenderas inte för produktionsarbetsbelastningar. Mer information finns i Kompletterande villkor för användning av Microsoft Azure-förhandsversioner.

Web Knowledge Source möjliggör hämtning av realtidswebbdata från Bing i en pipeline för agentisk hämtning. Kunskapskällor skapas oberoende av varandra, refereras till i en kunskapsbas och används som grunddata när en agent eller chattrobot anropar en hämtningsåtgärd vid frågetillfället.

Anpassad sökning i Bing är alltid sökprovidern för Web Knowledge Source. Även om du inte kan ange alternativa sökmotorer eller motorer kan du inkludera eller exkludera specifika domäner, till exempel https://learn.microsoft.com. När inga domäner har angetts har Web Knowledge Source obegränsad åtkomst till hela det offentliga Internet.

Web Knowledge Source fungerar bäst tillsammans med andra kunskapskällor. Använd Web Knowledge Source när ditt upphovsrättsskyddade innehåll inte ger fullständiga, up-to-date-svar eller när du vill komplettera resultaten med information från en kommersiell sökmotor.

Användningsstöd

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

Förutsättningar

  • Krävs Azure. Search.Documents paket:

    • För funktionerna i förhandsversionen 2025-11-01 är det senaste förhandsversionspaketet: dotnet add package Azure.Search.Documents --prerelease

    • För funktionerna den 1 april 2026 är det senaste stabila paketet: dotnet add package Azure.Search.Documents

  • Obligatoriskt azure-search-documents-paket:

    • För funktionerna i förhandsversionen 2025-11-01 är det senaste förhandsversionspaketet: pip install azure-search-documents --pre

    • För funktionerna den 1 april 2026 är det senaste stabila paketet: pip install azure-search-documents

Begränsningar och överväganden

  • Webbinnehåll sammanfattas alltid av en LLM innan det tas med i hämtningsresultatet. Resultaten är citerade sammanfattningar, inte ordagranna webbtexter.

  • För API-versionen 2026-04-01 måste kunskapsbasen innehålla en modellreferens för att tillhandahålla LLM för sammanfattning av webbinnehåll. Hämtning är alltid i form av utdrag (citerade sammanfattningar). Svarssyntes och konfigurerbar resonemangsinsats är inte tillgängliga i den här versionen.

  • För API-versionen 2025-11-01-preview möjliggör referensen för kunskapsbasmodellen även svarssyntes, vilket ger ett enda LLM-formulerat svar i stället för extraherade citat.

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
api-key: {{api-key}}

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}}
api-key: {{api-key}}

Referens:Kunskapskällor – Hämta

Följande JSON är ett exempelsvar för en resurs för webbkunskapskälla.

{
  "name": "my-web-ks",
  "kind": "web",
  "description": "A sample Web Knowledge Source.",
  "encryptionKey": null,
  "webParameters": {
    "domains": null
  }
}

Skapa en kunskapskälla

Kör följande kod för att skapa en webbkunskapskälla.

// Create Web Knowledge Source
using Azure.Search.Documents.Indexes;
using Azure.Search.Documents.Indexes.Models;
using Azure;

var indexClient = new SearchIndexClient(new Uri(searchEndpoint), new AzureKeyCredential(apiKey));

var knowledgeSource = new WebKnowledgeSource(name: "my-web-ks")
{
    Description = "A sample Web Knowledge Source.",
    WebParameters = new WebKnowledgeSourceParameters
    {
        Domains = new WebKnowledgeSourceDomains
        {
            AllowedDomains = 
            {
                new WebKnowledgeSourceDomain(address: "learn.microsoft.com") { IncludeSubpages = true }
            },
            BlockedDomains = 
            {
                new WebKnowledgeSourceDomain(address: "bing.com") { IncludeSubpages = false }
            }
        }
    }
};

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

Referens:SearchIndexClient, WebKnowledgeSource

# Create Web Knowledge Source
from azure.core.credentials import AzureKeyCredential
from azure.search.documents.indexes import SearchIndexClient
from azure.search.documents.indexes.models import WebKnowledgeSource, WebKnowledgeSourceParameters, WebKnowledgeSourceDomains, WebKnowledgeSourceDomain

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

knowledge_source = WebKnowledgeSource(
    name = "my-web-ks",
    description = "A sample Web Knowledge Source.",
    encryption_key = None,
    web_parameters = WebKnowledgeSourceParameters(
        domains = WebKnowledgeSourceDomains(
            allowed_domains = [ WebKnowledgeSourceDomain(address="learn.microsoft.com", include_subpages=True) ],
            blocked_domains = [ WebKnowledgeSourceDomain(address="bing.com", include_subpages=False) ]
        )
    )
)

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

Referens:SearchIndexClient

### Create Web Knowledge Source
PUT {{search-url}}/knowledgesources/my-web-ks?api-version=2025-11-01-preview
Content-Type: application/json
api-key: {{api-key}}

{
  "name": "my-web-ks",
  "kind": "web",
  "description": "This knowledge source pulls content from the web.",
  "encryptionKey": null,
  "webParameters": {
    "domains": {
      "allowedDomains": [ { "address": "learn.microsoft.com", "includeSubpages": true } ],
      "blockedDomains": [ { "address": "bing.com", "includeSubpages": false } ]
    }
  }
}

Referens:Kunskapskällor – Skapa eller uppdatera

Källspecifika egenskaper

För både API-versionerna 2025-11-01 och 2026-04-01 kan du skicka följande egenskaper för att skapa en webbkunskapskälla.

Namn Beskrivning Typ Redigerbara Krävs
Name Namnet på kunskapskällan, som måste vara unikt i kunskapskällornas samling och följa naming guidelines för objekt i Azure AI-sökning. Sträng Nej Ja
Description En beskrivning av kunskapskällan. När det är ospecificerat använder Azure AI-sökning en standardbeskrivning. Sträng Ja Nej
EncryptionKey En kundhanterad nyckel för att kryptera känslig information i kunskapskällan. Objekt Ja Nej
WebParameters Parametrar som är specifika för Web Knowledge Source. För närvarande är detta bara Domains. Objekt Ja Nej
Domains Domäner att tillåta eller blockera från sökutrymmet. Som standard använder kunskapskällan Grounding med Bing Search för att söka på hela det offentliga Internet. När du anger domäner använder kunskapskällan Grounding med anpassad Bing-sökning för att begränsa resultaten till de angivna domänerna. I båda fallen är Bing Custom Search sökleverantören. Objekt Ja Nej
AllowedDomains Domäner som ska inkluderas i sökutrymmet. För varje domän måste du ange den address i website.com formatet. Du kan också ange om domänens undersidor ska inkluderas genom att ange IncludeSubpages till true eller false. Array Ja Nej
BlockedDomains Domäner som ska undantas från sökutrymmet. För varje domän måste du ange den address i website.com formatet. Du kan också ange om domänens undersidor ska inkluderas genom att ange IncludeSubpages till true eller false. Array Ja Nej
Namn Beskrivning Typ Redigerbara Krävs
name Namnet på kunskapskällan, som måste vara unikt i kunskapskällornas samling och följa naming guidelines för objekt i Azure AI-sökning. Sträng Nej Ja
description En beskrivning av kunskapskällan. När det är ospecificerat använder Azure AI-sökning en standardbeskrivning. Sträng Ja Nej
encryption_key En kundhanterad nyckel för att kryptera känslig information i kunskapskällan. Objekt Ja Nej
web_parameters Parametrar som är specifika för Web Knowledge Source. För närvarande är detta bara domains. Objekt Ja Nej
domains Domäner att tillåta eller blockera från sökutrymmet. Som standard använder kunskapskällan Grounding med Bing Search för att söka på hela det offentliga Internet. När du anger domäner använder kunskapskällan Grounding med anpassad Bing-sökning för att begränsa resultaten till de angivna domänerna. I båda fallen är Bing Custom Search sökleverantören. Objekt Ja Nej
allowed_domains Domäner som ska inkluderas i sökutrymmet. För varje domän måste du ange den address i website.com formatet. Du kan också ange om domänens undersidor ska inkluderas genom att ange include_subpages till true eller false. Array Ja Nej
blocked_domains Domäner som ska undantas från sökutrymmet. För varje domän måste du ange den address i website.com formatet. Du kan också ange om domänens undersidor ska inkluderas genom att ange include_subpages till true eller false. Array Ja Nej
Namn Beskrivning Typ Redigerbara Krävs
name Namnet på kunskapskällan, som måste vara unikt i kunskapskällornas samling och följa naming guidelines för objekt i Azure AI-sökning. Sträng Nej Ja
kind Den typ av kunskapskälla, vilket är web i det här fallet. Sträng Nej Ja
description En beskrivning av kunskapskällan. När det är ospecificerat använder Azure AI-sökning en standardbeskrivning. Sträng Ja Nej
encryptionKey En kundhanterad nyckel för att kryptera känslig information i kunskapskällan. Objekt Ja Nej
webParameters Parametrar som är specifika för Web Knowledge Source. För närvarande är detta bara domains. Objekt Ja Nej
domains Domäner att tillåta eller blockera från sökutrymmet. Som standard använder kunskapskällan Grounding med Bing Search för att söka på hela det offentliga Internet. När du anger domäner använder kunskapskällan Grounding med anpassad Bing-sökning för att begränsa resultaten till de angivna domänerna. I båda fallen är Bing Custom Search sökleverantören. Objekt Ja Nej
allowedDomains Domäner som ska inkluderas i sökutrymmet. För varje domän måste du ange den address i website.com formatet. Du kan också ange om domänens undersidor ska inkluderas genom att ange includeSubpages till true eller false. Array Ja Nej
blockedDomains Domäner som ska undantas från sökutrymmet. För varje domän måste du ange den address i website.com formatet. Du kan också ange om domänens undersidor ska inkluderas genom att ange includeSubpages till true eller false. Array Ja Nej

Tilldela en kunskapsbas

Om du är nöjd med kunskapskällan fortsätter du till nästa steg: ange kunskapskällan i en kunskapsbas.

När kunskapsbasen har konfigurerats använder du åtgärden hämta för att fråga kunskapskällan.

Granska hämtad utdata

När du gör en förfrågan till en kunskapsbas som innehåller Web Knowledge Source kan svarsmatrisen activity innehålla två webbrelaterade poster.

  • En web post som samlar in de körningsparametrar som användes vid begäran.
  • En modelWebSummarization postering som registrerar tokenanvändning för LLM-sammanfattningssteget.
{
  "activity": [
    {
      "id": 1,
      "type": "web",
      "knowledgeSourceName": "my-web-ks",
      "elapsedMs": 212,
      "webArguments": {
        "search": "What is the latest news about AI in education?",
        "language": "en",
        "market": "en-US",
        "count": 10,
        "freshness": "2026-03-01..2026-03-31"
      }
    },
    {
      "id": 2,
      "type": "modelWebSummarization",
      "elapsedMs": 87,
      "inputTokens": 1234,
      "outputTokens": 256
    }
  ]
}

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:

     Knowledge Bases:
       - earth-knowledge-base
       - hotels-sample-knowledge-base
       - my-demo-knowledge-base
    
  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
    api-key: {{api-key}}
    

    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}}
    api-key: {{api-key}}
    

    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}}
    api-key: {{api-key}}
    

    Referens:Kunskapsbaser – Ta bort

  4. Ta bort kunskapskällan.

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

    Referens:Kunskapskällor – Ta bort