Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Note
Azure AI Vyhledávač je k dispozici prostřednictvím portálu Azure, rozhraní REST API a Sady Azure SDK. Podporuje také Foundry IQ, spravovanou znalostní vrstvu, která transformuje podnikový obsah na opakovaně použitelné znalostní báze s podporou oprávnění pro agenty na portálu Microsoft Foundry.
Important
Na funkce, možnosti nebo vlastnosti označené jako (Preview) se nevztahuje smlouva o úrovni služeb, nejsou doporučené pro produkční úlohy a mohou se změnit nebo být omezeny dříve, než budou obecně k dispozici. Podmínky Azure AI Vyhledávač Preview platí pro všechny funkce ve verzi Preview, ať už jsou samostatné nebo součástí obecně dostupné funkce.
indexovaný zdroj znalostí Azure SQL (Preview) načítá řádky z Azure SQL Database nebo Azure SQL Managed Instance do kanálu agentního vyhledávání v Azure AI Vyhledávač. Zdroje znalostí se vytvářejí nezávisle, odkazují na znalostní bázi a používají se jako podkladová data při dotazování znalostní báze za běhu.
Na rozdíl od souborových zdrojů znalostí, jako jsou Azure Blob Storage a OneLake, se každý řádek SQL považuje za jeden logický dokument. Schéma indexu můžete řídit explicitním mapováním sloupců místo použití pevného schématu dokumentu.
Při vytváření indexovaného Azure SQL zdroje znalostí zadáte zdroj dat SQL, volitelné mapování sloupců a volitelné modely, které automaticky vygenerují následující Azure AI Vyhledávač objekty:
- Zdroj dat, který představuje tabulku nebo zobrazení SQL.
- Index, jehož pole jsou odvozena z mapování sloupců.
- Sada dovedností, která generuje embeddingy. Služba vytvoří sadu dovedností pouze při zadání
embeddingColumns. - Indexer, který používá předchozí objekty k řízení kanálu příjmu dat.
Vygenerovaný indexer odpovídá indexeru Azure SQL indexer, jehož požadavky, zásady detekce změn a omezení platí také pro indexované Azure SQL zdroje znalostí. Další informace najdete v dokumentaci k indexeru Azure SQL.
Podpora využití
| Azure Portal | Portál Microsoft Foundry | .NET SDK | Python SDK | Java SDK | JavaScript SDK | REST API |
|---|---|---|---|---|---|---|
| ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
Předpoklady
Služba Azure AI Vyhledávač v jakékoli oblasti, která poskytuje agentní vyhledávání.
Dokončení požadavků indexeru Azure SQL, včetně:
Azure SQL Database nebo Azure SQL Managed Instance s tabulkou nebo zobrazením určenými k ingesti dat.
Primární klíč s jednou hodnotou ve zdrojové tabulce nebo zobrazení
Pro pohledy sloupec vhodný pro detekci změn podle mezníku nejvyšší hodnoty. Důrazně doporučujeme použít sloupec
rowversion.
Oprávnění k vytváření zdrojů znalostí Nakonfigurujte ověřování bez klíčů pomocí rolí Přispěvatel dat vyhledávací služby a Přispěvatel dat indexu vyhledávání přiřazené k vašemu uživatelskému účtu (doporučeno) nebo použijte klíč rozhraní API pro správu.
Pokud zadáte
embeddingColumns, musí mít vyhledávací služba spravovanou identitu s oprávněním Cognitive Services User k prostředku Microsoft Foundry, který hostuje model vkládání.Pokud nastavíte
privatenanetworkAccessMode, splňte následující požadavky:Použijte vyhledávací službu S2, S3, L1 nebo L2.
Vytvořte a schvalte sdílený privátní odkaz na SQL Server s
sqlServerID skupiny. Pro SQL Managed Instance použijtemanagedInstanceID skupiny.Použijte ověřování SQL nebo ověřování spravované identity. Pro spravovanou identitu udělte identitě požadované role Azure a databázové role a použijte připojovací řetězec s
Database=<database-name>a ID prostředku serveru SQL Server nebo spravované instance SQL. NastavteingestionParameters.identitypouze pro uživatelem přiřazenou identitu. Pokud ho vynecháte, použije indexer identitu přiřazenou systémem vyhledávací služby.Vytvořte a schvalte sdílené privátní propojení pro každý koncový bod chráněného modelu. Pro koncové body Azure OpenAI použijte ID skupiny
openai_accounta pro koncové body prostředků Foundryfoundry_account.
Nejnovější balíček
Azure.Search.Documentsve verzi Preview:dotnet add package Azure.Search.Documents --prereleaseBalíček
Azure.Identitypro bezklíčové ověřování:dotnet add package Azure.Identity
Nejnovější balíček
azure-search-documentsve verzi Preview:pip install --pre azure-search-documentsBalíček
azure-identitypro bezklíčové ověřování:pip install azure-identity
Verze 2026-08-01-preview rozhraní REST API vyhledávací služby.
Pro bezklíčové ověřování uveďte v
Authorizationhlavičce každého požadavku HTTP token Microsoft Entra ID.
Omezení a úvahy
- Zdroj znalostí může načítat data právě z jedné tabulky nebo jednoho pohledu.
- Zdrojová tabulka nebo zobrazení musí mít primární klíč s jednou hodnotou. Složené klíče nejsou podporované.
- Primární klíč se automaticky zjistí a nedá se přepsat.
-
contentExtractionModepodporuje pouze"minimal". - Extrakce obrázků a inverbizace obrázků se nepodporuje.
- Synchronizace v reálném čase není podporovaná. Vygenerovaný indexer je založený na plánu.
- Načítání SQL v reálném čase se nepodporuje. Zdroj znalostí je indexovaný, nikoli vzdálený.
Příprava vygenerovaného indexeru
Indexovaný Azure SQL zdroj znalostí automaticky vytvoří indexer pro řízení příjmu dat. Před vytvořením zdroje znalostí si projděte následující podrobnosti.
Detekce změn
Vygenerovaný indexer používá standardní detekci změn indexeru Azure SQL:
Tabulky: Služba automaticky použije integrované sledování změn SQL . Před vytvořením zdroje znalostí povolte sledování změn SQL ve zdrojové tabulce.
Zobrazení: Služba používá detekci změn pomocí značky vysoké hladiny. Zadejte sloupec, který se má použít v
highWaterMarkColumn. Sloupecrowversionje důrazně doporučen. Chcete-li detekovat odstranění v zobrazení, zahrňte do zobrazení sloupec s příznakem soft-delete, jak je popsáno v Zásadách detekce odstranění pomocí sloupce soft-delete.
Autentizace
Vygenerovaný indexer podporuje dvě možnosti ověřování:
SQL authentication: Zadejte uživatelské jméno a heslo v připojovací řetězec.
Ověřování pomocí spravované identity: Použijte spravovanou identitu přiřazenou systémem nebo uživatelem, která má role Azure RBAC a role na úrovni databáze pro prostředek SQL.
Informace o připojovací řetězec formátech, požadavcích na role a krocích instalace najdete v požadavcích indexeru Azure SQL a Pojení prostřednictvím spravované identity.
Kontrola existujících zdrojů znalostí
Zdroj znalostí je objekt nejvyšší úrovně, který lze opakovaně použít. Znalost existujících zdrojů znalostí je užitečná pro opakované použití nebo pojmenování nových objektů.
Spuštěním následujícího kódu zobrazíte seznam zdrojů znalostí podle názvu a 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}}
Referenční informace:Zdroje znalostí – seznam
Pokud chcete zkontrolovat jeho definici JSON, můžete také vrátit jeden zdroj znalostí podle názvu.
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}}
Referenční informace:Zdroje znalostí – Získání
Následující JSON je ukázková odpověď pro indexovaný Azure SQL zdroj znalostí.
{
"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"
}
}
}
}
Vytvoření zdroje znalostí
Spuštěním následujícího kódu vytvořte indexovaný Azure SQL zdroj znalostí.
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.");
Reference: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.")
Reference: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}}"
}
}
}
}
}
Referenční informace:Zdroje znalostí – Vytvoření nebo aktualizace
Pomocí indexedSqlParameters určete tabulku nebo zobrazení SQL pro import a definujte mapování sloupců na pole ve vygenerovaném indexu. Pro zobrazení zadejte sloupec horní meze, který se používá pro detekci změn.
Mapování sloupců
Slouží contentColumns k mapování textových sloupců SQL na prohledávatelná pole v generovaném indexu Azure AI Vyhledávač. Každé mapování sloupce obsahu určuje pole cílového indexu, zdrojový sloupec SQL a typ pole ve službě Azure AI Vyhledávač. Pro contentColumns použijte Edm.String.
Mapování embeddingů
Slouží embeddingColumns k mapování textových sloupců SQL na vygenerovaná vektorová pole. Při použití embeddingových sloupců zadejte v ingestionParameters model pro embeddingy.
U indexovaných zdrojů znalostí Azure SQL musí být "minimal"contentExtractionMode, protože ingestace SQL je založená na řádcích a neextrahuje obsah z binárních dokumentů. Extrakce obrázků a slovní popis obrázků nejsou podporovány, takže chatCompletionModel, assetStore, aiServices a nastavení související s obrázky nemají žádný účinek.
Výchozí a ověřovací pravidla
Následující výchozí hodnoty platí při vytváření indexovaného Azure SQL zdroje znalostí.
Pokud vynecháte
contentColumns, služba automaticky mapuje sloupce SQL, které mohou být bezpečně reprezentovány jako text naEdm.Stringpole v generovaném indexu pomocí mapování 1:1, kdenamese rovnásourceField.Pokud
embeddingColumnsvynecháte, služba nevytvoří vektorová pole a nenakonfiguruje dovednost pro vytváření vektorových reprezentací.embeddingColumnsje nezávislá nacontentColumns. Aby vektory odpovídaly vyhledatelnému textu, zahrňte stejný sloupec SQL do obou polí.Primární klíč zdrojové tabulky nebo zobrazení je automaticky zjištěn. Explicitní přepsání se nepodporuje a zdroj musí mít primární klíč s jednou hodnotou.
Omezení příjmu dat do privátní sítě
Počínaje verzí rozhraní API 2026-08-01-previewnetworkAccessMode určuje síťové prostředí, ve kterém běží vygenerovaný indexer pro indexovaný zdroj znalostí Azure SQL. Toto nastavení má vliv jenom na příjem dat a nemění požadavky ani odpovědi na znalostní bázi.
networkAccessMode výchozí hodnota je public, která zachovává stávající chování veřejné sítě. Pokud je networkAccessModeprivate, generovaný indexer běží v privátním prostředí pro spuštění. Používá schválené sdílené privátní propojení pro přístup k Azure SQL Database nebo SQL Managed Instance zdrojovému připojení a podporovaným závislostem Azure, jako jsou Azure modely OpenAI a prostředky Microsoft Foundry.
Konfigurace a ověření přístupu k privátní síti:
Dokončete požadavky na privátní síť.
Nastavte
networkAccessModenaprivatev požadavku na vytvoření zdroje znalostí. Tuto vlastnost můžete nastavit pouze během vytváření. Pokud ho chcete později změnit, odstraňte a znovu vytvořte zdroj znalostí.Vytvoření může selhat, pokud úroveň služby nebo modul runtime nepodporuje privátní spuštění nebo pokud neexistuje požadovaný sdílený privátní odkaz.
Ověřte, že
privategenerovaného indexeru jeexecutionEnvironment.Ověřte, že je každý požadovaný sdílený privátní odkaz schválený a cílí na správnou závislost. Samotné úspěšné vytvoření nepotvrzuje schválení odkazu ani cílení.
Zjišťujte stav zdroje znalostí, dokud
lastSynchronizationState.endTimenezíská hodnotu. Potvrďte, že0jeitemsUpdatesFailed, a potom ověřte zdrojový obsah specifický pro daný konektor. Synchronizace selže, pokud závislost není dostupná.
Kontrola stavu příjmu dat
Spuštěním následujícího kódu monitorujte průběh a stav příjmu, včetně druhu zdroje znalostí a podrobných chyb indexování pro zdroje znalostí, které generují kanál indexeru a naplní index vyhledávání.
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);
Reference: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))
Reference: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
Reference:Zdroje znalostí – Získání stavu
Odpověď na požadavek, který obsahuje parametry příjmu dat a aktivně ingestuje obsah, může vypadat jako v následujícím příkladu.
{
"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
Vlastnost kind a currentSynchronizationState.errors[] pole s podrobnostmi o chybě na úrovni dokumentu jsou k dispozici od verze rozhraní API 2026-04-01. U starších verzí rozhraní API se tato pole nevrácejí. Pole lastSynchronizationState.status je také nové v roce 2026-04-01.
Kontrola vygenerovaných objektů
Když tento zdroj znalostí vytvoříte, Azure AI Vyhledávač automaticky vygeneruje zdroj dat, sadu dovedností, indexer a index. Odpověď po vytvoření uvádí jednotlivé objekty pod položkou createdResources.
Tyto objekty se generují podle pevné šablony a jejich názvy jsou založeny na názvu zdroje znalostí. Názvy objektů nemůžete změnit. Vyhněte se úpravám těchto objektů přímo, protože změny můžou představovat chyby nebo nekompatibility, které přeruší kanál indexeru.
K ověření vytváření objektů můžete použít portál Azure. Pracovní postup je:
Zkontrolujte indexer kvůli zprávám o úspěchu nebo selhání. Tady se zobrazí chyby připojení nebo kvóty.
Zkontrolujte zdroj dat a ověřte připojení k úložišti dat. Připojení používá připojovací řetězec nebo spravovanou identitu podle toho, jak jste nakonfigurovali zdroj znalostí.
Zkontrolujte sadu dovedností a podívejte se, jak je váš obsah rozdělen na části a případně vektorizován.
Zkontrolujte index a podívejte se, jak se váš obsah indexuje a zobrazuje pro načtení, včetně polí, která jsou prohledávatelná a filtrovatelná a která pole ukládají vektory pro vyhledávání podobnosti. Pomocí Průzkumníka služby Search můžete spouštět dotazy na vygenerovaný index.
Přiřazení ke znalostní bázi
Pokud jste s zdrojem znalostí spokojení, přidejte ho do znalostní báze.
Dotazování znalostní báze
Po nakonfigurování znalostní báze zavolejte akci načtení nebo koncový bod MCP a dotazujte se na zdroj znalostí.
Odstranění zdroje znalostí
Než budete moct odstranit zdroj znalostí, musíte odstranit jakoukoli znalostní bázi, která na ni odkazuje, nebo aktualizovat definici znalostní báze, aby se odkaz odebral. Pro zdroje znalostí, které generují index a potrubí indexeru, se odstraní také všechny vygenerované objekty. Pokud jste ale k vytvoření zdroje znalostí použili existující index, index se neodstraní.
Pokud se pokusíte odstranit zdroj znalostí, který se používá, akce selže a vrátí seznam ovlivněných znalostních bází.
Odstranění zdroje znalostí:
Získejte seznam všech znalostních bází ve vyhledávací službě.
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
Příklad odpovědi může vypadat takto:
{ "@odata.context": "https://my-search-service.search.windows.net/$metadata#knowledgebases(name)", "value": [ { "name": "my-kb" }, { "name": "my-kb-2" } ] }Získejte individuální definici znalostní báze a zkontrolujte odkazy na zdroje znalostí.
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
Příklad odpovědi může vypadat takto:
{ "Name": "earth-knowledge-base", "KnowledgeSources": [ { "Name": "earth-knowledge-source" } ], "Models": [ {} ], "RetrievalReasoningEffort": {}, "OutputMode": {}, "ETag": "\u00220x8DE278629D782B3\u0022", "EncryptionKey": null, "Description": null, "RetrievalInstructions": null, "AnswerInstructions": null }Odstraňte znalostní bázi nebo pokud máte více zdrojů znalostí, aktualizujte znalostní bázi tak, aby zdroj odebral. Tento příklad ukazuje odstranění.
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
Odstraňte zdroj znalostí.
await indexClient.DeleteKnowledgeSourceAsync(knowledgeSourceName); System.Console.WriteLine($"Knowledge source '{knowledgeSourceName}' deleted successfully.");Reference:SearchIndexClient
Získejte seznam všech znalostních bází ve vyhledávací službě.
# 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
Příklad odpovědi může vypadat takto:
{ "@odata.context": "https://my-search-service.search.windows.net/$metadata#knowledgebases(name)", "value": [ { "name": "my-kb" }, { "name": "my-kb-2" } ] }Získejte individuální definici znalostní báze a zkontrolujte odkazy na zdroje znalostí.
# 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
Příklad odpovědi může vypadat takto:
{ "name": "my-kb", "description": null, "retrievalInstructions": null, "answerInstructions": null, "outputMode": null, "knowledgeSources": [ { "name": "my-blob-ks" } ], "models": [], "encryptionKey": null, "retrievalReasoningEffort": { "kind": "low" } }Odstraňte znalostní bázi nebo pokud máte více zdrojů znalostí, aktualizujte znalostní bázi tak, aby zdroj odebral. Tento příklad ukazuje odstranění.
# 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
Odstraňte zdroj znalostí.
# 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
Získejte seznam všech znalostních bází ve vyhledávací službě.
### Get knowledge bases GET {{search-url}}/knowledgebases?api-version={{api-version}}&$select=name Authorization: Bearer {{token}}Referenční informace:Znalostní báze – seznam
Příklad odpovědi může vypadat takto:
{ "@odata.context": "https://my-search-service.search.windows.net/$metadata#knowledgebases(name)", "value": [ { "name": "my-kb" }, { "name": "my-kb-2" } ] }Získejte individuální definici znalostní báze a zkontrolujte odkazy na zdroje znalostí.
### Get a knowledge base definition GET {{search-url}}/knowledgebases/{{knowledge-base-name}}?api-version={{api-version}} Authorization: Bearer {{token}}Referenční informace:Znalostní báze – Získat
Příklad odpovědi může vypadat takto:
{ "name": "my-kb", "description": null, "retrievalInstructions": null, "answerInstructions": null, "outputMode": null, "knowledgeSources": [ { "name": "my-blob-ks" } ], "models": [], "encryptionKey": null, "retrievalReasoningEffort": { "kind": "low" } }Odstraňte znalostní bázi nebo pokud máte více zdrojů znalostí, aktualizujte znalostní bázi tak, aby zdroj odebral. Tento příklad ukazuje odstranění.
### Delete a knowledge base DELETE {{search-url}}/knowledgebases/{{knowledge-base-name}}?api-version={{api-version}} Authorization: Bearer {{token}}Referenční informace:Znalostní báze – Odstranění
Odstraňte zdroj znalostí.
### Delete a knowledge source DELETE {{search-url}}/knowledgesources/{{knowledge-source-name}}?api-version={{api-version}} Authorization: Bearer {{token}}Referenční informace:Zdroje znalostí – Odstranění