Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Note
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
Dessa funktioner och denna funktionalitet är en del av REST API-versionen 2026-08-01-preview. Förhandsversionen av 2026-08-01 är licensierad till dig som en del av din Azure-prenumeration och omfattas av de villkor som gäller för "förhandsversioner" i Microsoft Produktvillkor, Microsoft Products and Services Data Protection Addendum ("DPA") och tilläggsvillkoren för användning för Microsoft Azure förhandsversioner.
Förhandsversionen av 2026-08-01 stöder anslutningar till andra Microsoft-tjänster- och tredjepartstjänster. Användningen av dessa tjänster omfattas av deras respektive villkor och kan resultera i databearbetning eller lagring utanför Azure efterlevnadsgräns, samt data som flödar till Azure efterlevnadsgräns.
Det är ditt ansvar att hantera om dina data kommer att flöda utanför organisationens efterlevnad och geografiska gränser och eventuella relaterade konsekvenser, och att lämpliga behörigheter, gränser och godkännanden etableras.
Du ansvarar för att noggrant granska och testa program som du skapar i samband med dina specifika användningsfall och fatta alla lämpliga beslut och anpassningar. Detta omfattar implementering av dina egna ansvarsfulla AI-åtgärder, till exempel metaprompter, innehållsfilter eller andra säkerhetssystem, och att se till att dina program uppfyller lämpliga kvalitets-, tillförlitlighets-, säkerhets- och tillförlitlighetsstandarder. Mer information finns i Azure AI-sökning Transparency Note.
En indexerad Azure SQL-kunskapskälla (förhandsversion) hämtar in rader från Azure SQL Database eller Azure SQL Managed Instance i en agentbaserad hämtningspipeline i Azure AI-sökning. Kunskapskällor skapas oberoende av varandra, refereras i en kunskapsbas och används som grunddata när kunskapsbasen efterfrågas vid körning.
Till skillnad från filbaserade kunskapskällor, till exempel Azure Blob Storage och OneLake, behandlas varje SQL-rad som ett logiskt dokument. Du kör indexschemat via explicita kolumnmappningar i stället för att använda ett fast dokumentschema.
När du skapar en indexerad Azure SQL kunskapskälla anger du en SQL-datakälla, valfria kolumnmappningar och valfria modeller för att automatiskt generera följande Azure AI-sökning objekt:
- En datakälla som representerar SQL-tabellen eller vyn.
- Ett index vars fält härleds från dina kolumnmappningar.
- En kompetens som genererar embeddingar. Tjänsten skapar bara en kompetensuppsättning när du anger
embeddingColumns. - En indexerare som använder föregående objekt för att driva inmatningspipelinen.
Den genererade indexeraren överensstämmer med Azure SQL indexeraren vars förutsättningar, principer för ändringsidentifiering och begränsningar även gäller för indexerade Azure SQL kunskapskällor. Mer information finns i dokumentationen Azure SQL indexerare.
Användningsstöd
| Azure Portal | Microsoft Foundry-portalen | .NET SDK | Python SDK | Java SDK | JavaScript SDK | REST API |
|---|---|---|---|---|---|---|
| ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
Förutsättningar
En Azure AI-sökning-tjänst i valfri region som tillhandahåller agentdriven hämtning.
Slutför förutsättningarna för Azure SQL-indexeraren, inklusive:
En Azure SQL Database eller Azure SQL Managed Instance med en tabell eller vy att mata in.
En primärnyckel med ett värde i källtabellen eller -vyn.
För vyer: en kolumn som lämpar sig för high-water-mark-baserad identifiering av ändringar. Vi rekommenderar starkt en
rowversionkolumn.
Behörighet att skapa kunskapskällor. Konfigurera nyckellös autentisering med rollerna Search Service Contributor och Search Index Data Contributor som tilldelats ditt användarkonto (rekommenderas) eller använd en administratörs-API-nyckel.
Om du anger
embeddingColumnsmåste söktjänsten ha en hanterad identitet med Cognitive Services-användare behörigheter för Microsoft Foundry-resursen som är värd för inbäddningsmodellen.Om du ställer in
networkAccessModepåprivate, måste du uppfylla följande krav:Använd söktjänsten S2, S3, L1 eller L2.
Skapa och godkänn en delad privat länk till SQL-servern med
sqlServergrupp-ID:t. Använd grupp-ID:t förmanagedInstanceSQL Managed Instance.Använd antingen SQL-autentisering eller hanterad identitetsautentisering. För hanterad identitet beviljar du identiteten de nödvändiga Azure- och databasrollerna och använder en reťazec pripojenia med
Database=<database-name>och resurs-ID för SQL-servern eller SQL Managed Instance. AngeingestionParameters.identityendast för en användartilldelad identitet. Om du utelämnar det använder indexeraren söktjänstens systemtilldelade identitet.Skapa och godkänn en delad privat länk för varje skyddad modellslutpunkt. Använd grupp-ID
openai_account:t för Azure OpenAI-slutpunkter ochfoundry_accountför Foundry-resursslutpunkter.
Det senaste
Azure.Search.Documentsförhandsversionspaketet:dotnet add package Azure.Search.Documents --prereleaseFör nyckellös autentisering, paketet
Azure.Identity:dotnet add package Azure.Identity
Det senaste
azure-search-documentsförhandsversionspaketet:pip install --pre azure-search-documentsFör nyckellös autentisering, paketet
azure-identity:pip install azure-identity
Versionen 2026-08-01-preview av REST-API:t för söktjänsten.
För nyckellös autentisering inkluderar du en Microsoft Entra ID token i rubriken för
Authorizationvarje HTTP-begäran.
Begränsningar och överväganden
- En kunskapskälla kan hämta data från precis en tabell eller en vy.
- Källtabellen eller -vyn måste ha en primärnyckel med ett värde. Sammansatta nycklar stöds inte.
- Primärnyckeln identifieras automatiskt och kan inte åsidosättas.
-
contentExtractionModestöder endast"minimal". - Extrahering av bilder och verbalisering av bilder stöds inte.
- Realtidssynkronisering stöds inte. Den genererade indexeraren är schemabaserad.
- Sql-hämtning i realtid stöds inte. Kunskapskällan är indexerad, inte fjärransluten.
Förbereda den genererade indexeraren
En indexerad Azure SQL kunskapskälla skapar automatiskt en indexerare för att driva inmatning. Granska följande information innan du skapar kunskapskällan.
Ändringsdetektering
Den genererade indexeraren använder Azure SQL-indexerarens standardbaserade ändringsidentifiering:
Tabeller: Tjänsten tillämpar SQL-integrerad ändringsspårning automatiskt. Aktivera SQL-ändringsspårning i källtabellen innan du skapar kunskapskällan.
Visningar: Tjänsten tillämpar ändringsidentifiering med högvattenmärke. Ange vilken kolumn som ska användas i
highWaterMarkColumn. Enrowversionkolumn rekommenderas starkt. Om du vill upptäcka borttagningar i en vy inkluderar du en kolumn med en markör för mjuk borttagning i vyn enligt beskrivningen i Princip för identifiering av borttagningar med kolumn för mjuk borttagning.
Authentication
Den genererade indexeraren stöder två autentiseringsalternativ:
SQL-autentisering: Ange ett användarnamn och lösenord i reťazec pripojenia.
Hanterad identitetsautentisering: Använd en systemtilldelad eller användartilldelad hanterad identitet som har Azure RBAC- och databasnivåroller på SQL-resursen.
Information om anslutningssträngsformat, rollkrav och konfigurationssteg finns i förutsättningar för Azure SQL-indexeraren och Anslut via en hanterad identitet.
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 indexerad Azure SQL kunskapskälla.
{
"name": "indexedsqlks",
"kind": "indexedSql",
"description": "Sample indexed Azure SQL knowledge source.",
"encryptionKey": null,
"indexedSqlParameters": {
"connectionString": "<sql-connection-string>",
"tableOrView": "dbo.tbl_hotels",
"contentColumns": [
{ "name": "hotelName", "sourceField": "HotelName", "searchFieldType": "Edm.String" },
{ "name": "description", "sourceField": "Description", "searchFieldType": "Edm.String" }
],
"embeddingColumns": [
{ "name": "descriptionVector", "sourceField": "Description" }
],
"ingestionParameters": {
"contentExtractionMode": "minimal",
"embeddingModel": {
"kind": "azureOpenAI",
"azureOpenAIParameters": {
"resourceUri": "<aoai-endpoint>",
"deploymentId": "text-embedding-3-large",
"modelName": "text-embedding-3-large"
}
},
"createdResources": {
"datasource": "indexedsqlks-datasource",
"indexer": "indexedsqlks-indexer",
"skillset": "indexedsqlks-skillset",
"index": "indexedsqlks-index"
}
}
}
}
Skapa en kunskapskälla
Kör följande kod för att skapa en indexerad Azure SQL kunskapskälla.
using Azure.Identity;
using Azure.Search.Documents.Indexes;
using Azure.Search.Documents.Indexes.Models;
using Azure.Search.Documents.KnowledgeBases.Models;
var indexClient = new SearchIndexClient(new Uri(searchEndpoint), new DefaultAzureCredential());
var embeddingParams = new AzureOpenAIVectorizerParameters
{
ResourceUri = new Uri(aoaiEndpoint),
DeploymentName = aoaiEmbeddingDeployment,
ModelName = aoaiEmbeddingModel
};
var ingestionParams = new KnowledgeSourceIngestionParameters
{
NetworkAccessMode = KnowledgeSourceNetworkAccessMode.Public,
ContentExtractionMode = "minimal",
EmbeddingModel = new KnowledgeSourceAzureOpenAIVectorizer
{
AzureOpenAIParameters = embeddingParams
}
};
var sqlParams = new IndexedSqlKnowledgeSourceParameters(
connectionString: sqlConnectionString,
tableOrView: "dbo.tbl_hotels")
{
ContentColumns =
{
new ContentColumnMapping("hotelName", "HotelName", "Edm.String"),
new ContentColumnMapping("description", "Description", "Edm.String")
},
EmbeddingColumns =
{
new EmbeddingColumnMapping("descriptionVector", "Description")
},
IngestionParameters = ingestionParams
};
var knowledgeSource = new IndexedSqlKnowledgeSource(
name: "indexedsqlks",
indexedSqlParameters: sqlParams)
{
Description = "Indexed Azure SQL knowledge source."
};
await indexClient.CreateOrUpdateKnowledgeSourceAsync(knowledgeSource);
Console.WriteLine($"Knowledge source '{knowledgeSource.Name}' created or updated successfully.");
Referens:SearchIndexClient, IndexedSqlKnowledgeSource
from azure.identity import DefaultAzureCredential
from azure.search.documents.indexes import SearchIndexClient
from azure.search.documents.indexes.models import (
AzureOpenAIVectorizerParameters,
ContentColumnMapping,
EmbeddingColumnMapping,
IndexedSqlKnowledgeSource,
IndexedSqlKnowledgeSourceParameters,
)
from azure.search.documents.knowledgebases.models import (
KnowledgeSourceAzureOpenAIVectorizer,
KnowledgeSourceIngestionParameters,
KnowledgeSourceNetworkAccessMode,
)
index_client = SearchIndexClient(endpoint="<search-endpoint>", credential=DefaultAzureCredential())
embedding_params = AzureOpenAIVectorizerParameters(
resource_url="<aoai-endpoint>",
deployment_name="<aoai-embedding-deployment>",
model_name="<aoai-embedding-model>",
)
ingestion_params = KnowledgeSourceIngestionParameters(
network_access_mode=KnowledgeSourceNetworkAccessMode.PUBLIC,
content_extraction_mode="minimal",
embedding_model=KnowledgeSourceAzureOpenAIVectorizer(
azure_open_ai_parameters=embedding_params
),
)
knowledge_source = IndexedSqlKnowledgeSource(
name="indexedsqlks",
description="Indexed Azure SQL knowledge source.",
indexed_sql_parameters=IndexedSqlKnowledgeSourceParameters(
connection_string="Server=tcp:{server}.database.windows.net,1433;Database={db};...;",
table_or_view="dbo.tbl_hotels",
content_columns=[
ContentColumnMapping(
name="hotelName",
source_field="HotelName",
search_field_type="Edm.String",
),
ContentColumnMapping(
name="description",
source_field="Description",
search_field_type="Edm.String",
),
],
embedding_columns=[
EmbeddingColumnMapping(
name="descriptionVector",
source_field="Description",
)
],
ingestion_parameters=ingestion_params,
),
)
index_client.create_or_update_knowledge_source(knowledge_source=knowledge_source)
print(f"Knowledge source '{knowledge_source.name}' created or updated successfully.")
Referens:SearchIndexClient
### Create an indexed Azure SQL knowledge source
PUT {{search-endpoint}}/knowledgesources/indexedsqlks?api-version=2026-08-01-preview
Authorization: Bearer {{search-access-token}}
Content-Type: application/json
{
"name": "indexedsqlks",
"kind": "indexedSql",
"description": "Indexed Azure SQL knowledge source.",
"indexedSqlParameters": {
"connectionString": "Server=tcp:{server}.database.windows.net,1433;Database={db};...;",
"tableOrView": "dbo.tbl_hotels",
"contentColumns": [
{ "name": "hotelName", "sourceField": "HotelName", "searchFieldType": "Edm.String" },
{ "name": "description", "sourceField": "Description", "searchFieldType": "Edm.String" }
],
"embeddingColumns": [
{ "name": "descriptionVector", "sourceField": "Description" }
],
"ingestionParameters": {
"networkAccessMode": "public",
"contentExtractionMode": "minimal",
"embeddingModel": {
"kind": "azureOpenAI",
"azureOpenAIParameters": {
"resourceUri": "{{aoai-endpoint}}",
"deploymentId": "{{aoai-embedding-deployment}}",
"modelName": "{{aoai-embedding-model}}"
}
}
}
}
}
Använd indexedSqlParameters för att identifiera SQL-tabellen eller vyn som ska matas in och för att definiera de kolumnmappningar som blir fält i det genererade indexet. För vyer anger du den högvattenmärkeskolumn som används för ändringsidentifiering.
Kolumnindelning
Använd contentColumns för att mappa SQL-textkolumner till sökbara fält i det genererade Azure AI-sökning indexet. Varje innehållskolumnmappning namnger målindexfältet, SQL-källkolumnen och fälttypen Azure AI-sökning. För contentColumnsanvänder du Edm.String.
Inbäddningsmappning
Använd embeddingColumns för att mappa SQL-textkolumner till genererade vektorfält. Ange en inbäddningsmodell i ingestionParameters när du använder inbäddningskolumner.
För indexerade Azure SQL-kunskapskällor måste contentExtractionMode vara "minimal", eftersom SQL-importen är radbaserad och inte extraherar innehåll från binära dokument. Bildextrahering och bildverualisering stöds inte, så chatCompletionModel, assetStore, aiServicesoch bildrelaterade inställningar har ingen effekt.
Standard- och valideringsregler
Följande standardvärden gäller när du skapar en indexerad Azure SQL kunskapskälla.
Om du utelämnar
contentColumnsmappar tjänsten automatiskt SQL-kolumner som på ett säkert sätt kan representeras som text tillEdm.Stringfält i det genererade indexet med hjälp av en 1:1-mappning därnameär lika medsourceField.Om du utelämnar
embeddingColumnsskapar tjänsten inte vektorfält och konfigurerar inte en inbäddningsfärdighet.embeddingColumnsär oberoende avcontentColumns. Om du vill att vektorer ska motsvara hämtningsbar text ska du inkludera samma SQL-kolumn i båda matriserna.Den primära nyckeln i källtabellen eller vyn identifieras automatiskt. Explicita åsidosättningar stöds inte och källan måste ha en primärnyckel med ett värde.
Begränsa inmatning till ett privat nätverk
Från och med 2026-08-01-preview API-versionen networkAccessMode styr den nätverksmiljö där den genererade indexeraren för en indexerad Azure SQL kunskapskälla körs. Den här inställningen påverkar endast inmatning och ändrar inte kunskapsbasens hämtningsbegäranden eller svar.
networkAccessMode standardvärdet är public, vilket bevarar befintligt offentligt nätverksbeteende. När networkAccessMode är private körs den genererade indexeraren i en privat körningsmiljö. Den använder godkända delade privata länkar för åtkomst till källanslutningen för Azure SQL Database eller SQL Managed Instance samt Azure-beroenden som stöds, till exempel Azure OpenAI-modeller och Microsoft Foundry-resurser.
Så här konfigurerar och verifierar du åtkomst till privata nätverk:
Slutför kraven för det privata nätverket.
Ange
networkAccessModetillprivatei begäran om att skapa kunskapskällor. Du kan bara ange den här egenskapen när du skapar den. Om du vill ändra det senare tar du bort och återskapar kunskapskällan.Det går inte att skapa om tjänstnivån eller körningsmiljön inte stöder privat körning eller om en obligatorisk delad privat länk saknas.
Bekräfta att den genererade indexerarens
executionEnvironmentärprivate.Bekräfta att varje obligatorisk delad privat länk har godkänts och riktar in sig på rätt beroende. Enbart att länken har skapats innebär inte att den har godkänts eller fått målinriktning.
Avfråga kunskapskällans status tills
lastSynchronizationState.endTimehar ett värde. Bekräfta attitemsUpdatesFailedär0, och verifiera sedan det anslutningsspecifika källinnehållet. Synkroniseringen misslyckas om ett beroende inte kan nås.
Kontrollera inmatningsstatus
Kör följande kod för att övervaka inmatningsförlopp och hälsa, inklusive kunskapskällans typ och detaljerade indexeringsfel för kunskapskällor som genererar en indexeringspipeline och fyller i ett sökindex.
using Azure.Search.Documents.Indexes;
using System.Text.Json;
var indexClient = new SearchIndexClient(new Uri(searchEndpoint), new AzureKeyCredential(apiKey));
// Get knowledge source ingestion status
var statusResponse = await indexClient.GetKnowledgeSourceStatusAsync(knowledgeSourceName);
var status = statusResponse.Value;
// Serialize to JSON for display
var json = JsonSerializer.Serialize(status, new JsonSerializerOptions { WriteIndented = true });
Console.WriteLine(json);
Referens:SearchIndexClient
# Check knowledge source ingestion status
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"))
status = index_client.get_knowledge_source_status("knowledge_source_name")
print(json.dumps(status.as_dict(), indent=2))
Referens:SearchIndexClient
### Check knowledge source ingestion status
GET {{search-url}}/knowledgesources/{{knowledge-source-name}}/status?api-version={{api-version}}
Authorization: Bearer {{token}}
Content-Type: application/json
Referens:Kunskapskällor – Hämta status
Ett svar för en begäran som innehåller inmatningsparametrar och aktivt matar in innehåll kan se ut som i följande exempel.
{
"kind": "azureBlob",
"synchronizationStatus": "active",
"synchronizationInterval": "1d",
"currentSynchronizationState": {
"startTime": "2026-04-10T19:30:00Z",
"itemUpdatesProcessed": 1100,
"itemsUpdatesFailed": 100,
"itemsSkipped": 1100,
"errors": [
{
"key": "Item id 1",
"docURL": "https://contoso.blob.core.windows.net/contracts/2024/Q4/doc-00023.csv",
"statusCode": 400,
"componentName": "DocumentExtraction.AzureBlob.MyDataSource",
"errorMessage": "Could not read the value of column 'foo' at index '0'.",
"details": "The file could not be parsed.",
"documentationLink": "https://go.microsoft.com/fwlink/?linkid=2049388"
}
]
},
"lastSynchronizationState": {
"status": "partialSuccess",
"startTime": "2026-04-09T19:30:00Z",
"endTime": "2026-04-09T19:40:01Z",
"itemUpdatesProcessed": 1100,
"itemsUpdatesFailed": 100,
"itemsSkipped": 1100,
"errors": null
},
"statistics": {
"totalSynchronizations": 25,
"averageSynchronizationDuration": "00:15:20",
"averageItemsProcessedPerSynchronization": 500
}
}
Note
Egenskapen kind och currentSynchronizationState.errors[] matrisen med felinformation på dokumentnivå är tillgängliga från och med API-versionen 2026-04-01. För tidigare API-versioner returneras inte dessa fält. Fältet lastSynchronizationState.status är också nytt 2026-04-01.
Granska de genererade objekten
När du skapar den här kunskapskällan genererar Azure AI-sökning automatiskt en datakälla, kompetensuppsättning, indexerare och index. Skapandesvaret visar varje objekt under createdResources.
Dessa objekt genereras enligt en fast mall och deras namn baseras på namnet på kunskapskällan. Du kan inte ändra objektnamnen. Undvik att redigera dessa objekt direkt, eftersom ändringar kan medföra fel eller inkompatibiliteter som bryter indexerarens pipeline.
Du kan använda Azure-portalen för att verifiera att objekt skapas. Arbetsflödet är:
Kontrollera indexeraren efter lyckade eller misslyckade meddelanden. Anslutnings- eller kvotfel visas här.
Kontrollera datakällan för att verifiera anslutningen till datalagret. Anslutningen använder antingen en reťazec pripojenia eller en hanterad identitet, beroende på hur du konfigurerade kunskapskällan.
Kontrollera kompetensuppsättningen för att se hur innehållet delas upp i segment och eventuellt vektoriseras.
Kontrollera indexet för att se hur ditt innehåll indexeras och exponeras för hämtning, inklusive vilka fält som är sökbara och filterbara och vilka fält som lagrar vektorer för likhetssökning. Använd Sökutforskaren för att köra frågor mot det genererade indexet.
Tilldelas till 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:
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" } ] }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 }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
Ta bort kunskapskällan.
await indexClient.DeleteKnowledgeSourceAsync(knowledgeSourceName); System.Console.WriteLine($"Knowledge source '{knowledgeSourceName}' deleted successfully.");Referens:SearchIndexClient
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" } ] }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" } }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
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
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" } ] }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" } }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
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