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.
Poznámka
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.
Tento článek vysvětluje požadovaná pole a konfiguraci indexu pro agentní vyhledávání. Žádné z těchto požadavků nejsou nové. Můžete použít existující index, který splňuje kritéria, i když byl vytvořen pomocí starší verze rozhraní API.
Každý indexovaný zdroj znalostí závisí na podkladovém indexu. V závislosti na tom, jak nastavíte proces, může být index jedním z následujících:
Stávající: Samostatný index, který je zpřístupněný prostřednictvím zdroje znalostí vyhledávacího indexu. Index musí splňovat kritéria v tomto článku.
Vygenerováno: Index vytvořený automaticky indexovaným zdrojem znalostí. Vygenerované indexy splňují všechna kritéria ve výchozím nastavení.
Kritéria pro agentické načítání
Následující tabulka uspořádává prvky indexu, které ovlivňují agentní vyhledávání, podle úrovně požadavků.
| prvek indexu | Requirement | Poznámky |
|---|---|---|
searchable a retrievable řetězcová pole |
Povinné | Používá se pro spouštění dotazů a načítání výsledků. |
| Sémantická konfigurace | Povinné | Použijte defaultSemanticConfiguration nebo přepište sémantickou konfiguraci ve zdroji znalostí. |
| Pole citací | Doporučený | Uživatelem definovaná pole, která přiřazují odpovědi na zdrojový obsah, jako je název dokumentu, číslo stránky nebo ID bloku bloků dat. |
| Vektorová pole a vektorizátor | Doporučený | Umožňuje převod textu na vektor v době dotazu. |
| Profil bodování | Optional | Zvyšuje relevanci pro konkrétní pole. Nastavit defaultScoringProfile tak, aby se použilo automaticky. |
| Analyzer | Optional | Určuje, jak se text tokenizuje, například zpracování prázdných znaků nebo speciálních znaků. |
| Mapy synonym | Optional | Rozšiřuje dotazy pomocí terminologie nebo žargonu. |
Příklad definice indexu
Následující příklad ukazuje index, který funguje při agentním vyhledávání. Splňuje kritéria požadovaných prvků a obsahuje vektorová pole jako osvědčený postup.
{
"name": "earth_at_night",
"description": "Contains images and descriptions of our planet in darkness as captured from space by Earth-observing satellites and astronauts on the International Space Station over the past 25 years.",
"fields": [
{
"name": "id", "type": "Edm.String",
"searchable": true, "retrievable": true, "filterable": true, "sortable": true, "facetable": true,
"key": true,
"stored": true,
"synonymMaps": []
},
{
"name": "page_chunk", "type": "Edm.String",
"searchable": true, "retrievable": true, "filterable": false, "sortable": false, "facetable": false,
"analyzer": "en.microsoft",
"stored": true,
"synonymMaps": []
},
{
"name": "page_chunk_vector_text_3_large", "type": "Collection(Edm.Single)",
"searchable": true, "retrievable": false, "filterable": false, "sortable": false, "facetable": false,
"dimensions": 3072,
"vectorSearchProfile": "hnsw_text_3_large",
"stored": false,
"synonymMaps": []
},
{
"name": "page_number", "type": "Edm.Int32",
"searchable": false, "retrievable": true, "filterable": true, "sortable": true, "facetable": true,
"stored": true,
"synonymMaps": []
},
{
"name": "chapter_number", "type": "Edm.Int32",
"searchable": false, "retrievable": true, "filterable": true, "sortable": true, "facetable": true,
"stored": true,
"synonymMaps": []
}
],
"semantic": {
"defaultConfiguration": "semantic_config",
"configurations": [
{
"name": "semantic_config",
"flightingOptIn": false,
"prioritizedFields": {
"prioritizedContentFields": [
{
"fieldName": "page_chunk"
}
],
"prioritizedKeywordsFields": []
}
}
]
},
"vectorSearch": {
"algorithms": [
{
"name": "alg",
"kind": "hnsw",
"hnswParameters": {
"metric": "cosine",
"m": 4,
"efConstruction": 400,
"efSearch": 500
}
}
],
"profiles": [
{
"name": "hnsw_text_3_large",
"algorithm": "alg",
"vectorizer": "azure_openai_text_3_large"
}
],
"vectorizers": [
{
"name": "azure_openai_text_3_large",
"kind": "azureOpenAI",
"azureOpenAIParameters": {
"resourceUri": "https://YOUR-AOAI-RESOURCE.openai.azure.com",
"deploymentId": "text-embedding-3-large",
"modelName": "text-embedding-3-large"
}
}
],
"compressions": []
}
}
Dobře navržený index pro generativní AI nebo pro generování rozšířené o vyhledávání (RAG) má následující komponenty:
Popis, pomocí kterého může LLM nebo agent určit, jestli se má index použít nebo přeskočit.
Bloky textu čitelného pro člověka, které můžete předat jako vstupní tokeny do LLM pro formulaci odpovědí.
Konfigurace sémantického rankeru, protože načítání agentů používá sémantické řazení úrovně 2 (L2) k identifikaci nejrelevavantnějších bloků dat.
(Volitelné) Vektorově ekvivalentní verze čitelných bloků textu pro doplňkové vektorové vyhledávání.
Text rozdělený na části je důležitý, protože LLM zpracovávají a generují tokenizované řetězce obsahu ve formě prostého textu čitelného pro člověka. Z tohoto důvodu chcete searchable pole, která poskytují řetězce prostého textu a jsou retrievable v odpovědi. V Azure AI Vyhledávač můžete vytvořit blokovaný text pomocí připravených řešení nebo řešení třetích stran.
Zabudovaný předpoklad pro segmentovaný obsah spočívá v tom, že zdrojové dokumenty mají velké množství rozsáhlého obsahu. Pokud je váš zdrojový obsah tvořen strukturovanými daty, například databází produktů, váš index by neměl používat dělení na části a měl by místo toho zahrnovat pole, která odpovídají původnímu zdroji dat, například název produktu, kategorii nebo popis. Atribuce searchable a retrievable vztahuje se také na strukturovaná data.
searchable zahrne obsah do rozsahu dotazů a retrievable jej přidá do výsledků vyhledávání (data pro grounding).
Vektorový obsah může být užitečný, protože přidává vyhledávání podobnosti při načítání informací. Když jsou vektorová pole v indexu přítomna v době dotazu, agentní vyhledávací modul provede vektorový dotaz paralelně s textovým dotazem. Vzhledem k tomu, že vektorové dotazy hledají podobný obsah místo odpovídajících slov, vektorový dotaz může najít vysoce relevantní výsledek, který by textový dotaz mohl vynechat. Přidání vektorů může zvýšit kvalitu vašich podkladových dat, ale není striktně vyžadováno. Azure AI Vyhledávač má připravený přístup k vektorizaci.
Vektorová pole se používají pouze pro provádění dotazů na Azure AI Vyhledávač. Vektor ve výsledcích nepotřebujete, protože není čitelný pro člověka nebo LLM. Pokud chcete minimalizovat požadavky na místo, doporučujeme nastavit retrievable a stored na false. Další informace naleznete v tématu Optimalizace vektorových úložišť a zpracování.
Pokud používáte vektory, je důležité mít vektorizátor definovaný v konfiguraci vektorového vyhledávání. Určuje, jestli se vaše vektorové pole používá během provádění dotazu. Vektorizátor kóduje poddotazy řetězců do vektorů v době dotazu pro vyhledávání podobnosti vektorů. Vektorizátor musí být stejný vložený model použitý k vytvoření vektorů v indexu.
Ve výchozím nastavení jsou všechna searchable pole zahrnuta do provádění dotazu a všechna retrievable pole se vrátí ve výsledcích. Můžete zvolit, která pole se mají použít pro každou akci v definici zdroje znalostí indexu vyhledávání.
Přidání popisu
Pole indexu description je uživatelsky definovaný řetězec, který můžete použít k poskytování pokynů pro servery LLM a MCP (Model Context Protocol) při rozhodování o použití konkrétního indexu pro dotaz. Tento čitelný text pro člověka je neocenitelný, když systém musí získat přístup k několika indexům a rozhodnout se na základě popisu.
Popis indexu je aktualizace schématu a můžete ji přidat, aniž byste museli znovu sestavit celý index.
Délka řetězce je maximálně 4 000 znaků.
Obsah musí být čitelný pro člověka v kódování Unicode. Váš případ použití by měl určit, který jazyk se má použít (například angličtina nebo jiný jazyk).
Přidání sémantické konfigurace
Index musí mít alespoň jednu sémantickou konfiguraci. Sémantická konfigurace musí mít:
- Pojmenovaná konfigurace.
- Nastavená
prioritizedContentFieldsna alespoň jedno řetězcové pole, které jesearchableiretrievable.
Existují dva způsoby, jak zadat sémantickou konfiguraci podle názvu. Pokud je defaultSemanticConfiguration index nastavený na pojmenovanou konfiguraci, načtení ho použije. Alternativně můžete zadat sémantickou konfiguraci ve zdroji znalostí indexu vyhledávání.
V rámci konfigurace je vyžadován prioritizedContentFields. Nadpis a klíčová slova jsou nepovinná. U rozděleného obsahu možná nemáte ani jedno. Pokud ale přidáte rozpoznávání entit nebo extrakci klíčových frází, můžete mít některá klíčová slova spojená s jednotlivými bloky dat, která můžou být užitečná ve scénářích hledání, třeba v bodovacím profilu.
Následující příklad ukazuje sémantickou konfiguraci, která funguje pro agentní vyhledávání.
"semantic":{
"defaultConfiguration":"semantic_config",
"configurations":[
{
"name":"semantic_config",
"flightingOptIn":false,
"prioritizedFields":{
"titleField":{
"fieldName":""
},
"prioritizedContentFields":[
{
"fieldName":"page_chunk"
}
],
"prioritizedKeywordsFields":[
{
"fieldName":"Category"
},
{
"fieldName":"Tags"
},
{
"fieldName":"Location"
}
]
}
}
]
}
Poznámka
Odpověď poskytuje title, terms, a content, které se mapují na pole s prioritou v této konfiguraci.
Přidání vektorizátoru
Pokud index obsahuje vektorová pole, plán dotazu obsahuje tato pole, pokud jsou searchable a mají vectorizer přiřazení.
Vektorizátor určuje vložený model, který poskytuje převody textu na vektor v době dotazu. Musí odkazovat na stejný model vkládání, který se používá ke kódování vektorového obsahu v indexu. Můžete použít libovolný model vkládání podporovaný Azure AI Vyhledávač. Vektorizátory u vektorových polí určíte pomocí vektorového profilu.
Definice vektorového pole v příkladu indexu ukazuje klíčové atributy pole: dimensions, což je počet vkládání vygenerovaných modelem a vectorSearchProfile.
{
"name": "page_chunk_text_3_large", "type": "Collection(Edm.Single)",
"searchable": true, "retrievable": false, "filterable": false, "sortable": false, "facetable": false,
"dimensions": 3072,
"vectorSearchProfile": "hnsw_text_3_large",
"stored": false,
"synonymMaps": []
}
Vektorové profily jsou konfigurace vektorizátorů, algoritmů a technik komprese. Každé vektorové pole může používat pouze jeden profil, ale index může mít mnoho případů, kdy chcete jedinečné profily pro každé vektorové pole.
Dotazování vektorů a volání vektorizátoru přidává latenci k celkovému požadavku, ale pokud chcete hledat podobnosti, může to být za kompromis.
Následující příklad ukazuje vektorizátor, který funguje pro agentické načítání, jak se zobrazuje v konfiguraci vectorSearch. V definici vektorizátoru není nic, co by se mělo změnit, aby fungovalo s agentickým načítáním.
"vectorSearch": {
"algorithms": [
{
"name": "alg",
"kind": "hnsw",
"hnswParameters": {
"metric": "cosine",
"m": 4,
"efConstruction": 400,
"efSearch": 500
}
}
],
"profiles": [
{
"name": "hnsw_text_3_large",
"algorithm": "alg",
"vectorizer": "azure_openai_text_3_large"
}
],
"vectorizers": [
{
"name": "azure_openai_text_3_large",
"kind": "azureOpenAI",
"azureOpenAIParameters": {
"resourceUri": "https://YOUR-AOAI-RESOURCE.openai.azure.com",
"deploymentId": "text-embedding-3-large",
"modelName": "text-embedding-3-large"
}
}
],
"compressions": []
}
Přidání hodnoticího profilu
Skórovací profily jsou kritéria pro zvýšení relevance. Použijí se na ne-vektorová pole (text a čísla) a vyhodnocují se během provádění dotazu, i když přesné chování závisí na verzi rozhraní API, která se použila k vytvoření indexu.
Profil bodování bude pravděpodobně do vašeho řešení přidávat hodnotu, pokud je index založený na strukturovaných datech. Strukturovaná data se indexují do více samostatných polí, což znamená, že profil bodování může mít kritéria, která cílí na obsah nebo charakteristiky konkrétního pole.
Pokud index vytvoříte pomocí verze 2025-05-01-preview nebo novější, profil bodování se spustí naposledy. Pokud se index vytvoří pomocí starší verze rozhraní API, vyhodnocují se profily bodování před sémantickou rerankací. Skutečné pořadí sémanticky seřazených výsledků je určeno vlastností rankingOrder v indexu, která je buď nastavena na boostedRerankerScore (byl použit profil bodování), nebo rerankerScore (žádný bodovací profil).
Můžete použít libovolný profil bodování, který dává smysl pro váš index. Následující příklad ukazuje bodovací profil, který zvýší skóre hledání shody, pokud se shoda najde v určitém poli. Pole jsou vážena pomocí posilovacích násobitelů. Pokud se například v poli „Kategorie“ najde shoda, navýšené skóre se vynásobí 5.
"scoringProfiles": [
{
"name": "boostSearchTerms",
"text": {
"weights": {
"Location": 2,
"Category": 5
}
}
}
]
Přidání analyzátoru
Analyzátory platí pro textová pole a můžou to být analyzátory jazyka nebo vlastní analyzátory, které řídí tokenizaci v indexu, například zachování speciálních znaků nebo prázdných znaků.
Analyzátory jsou definovány v indexu vyhledávání a přiřazeny k polím. Příklad kolekce polí obsahuje odkaz analyzátoru na textové bloky. V tomto příkladu je výchozí analyzátor (standard Lucene) nahrazen analyzátorem jazyka Microsoft pro anglický jazyk.
{
"name": "page_chunk", "type": "Edm.String",
"searchable": true, "retrievable": true, "filterable": false, "sortable": false, "facetable": false,
"analyzer": "en.microsoft",
"stored": true,
"synonymMaps": []
}
Přidání mapy synonym
Mapy synonym rozšiřují dotazy přidáním synonym pro pojmenované termíny. Můžete mít například vědecké nebo lékařské termíny pro běžné termíny.
Mapy synonym jsou definovány jako prostředek nejvyšší úrovně v indexu vyhledávání a přiřazené k polím. Příklad kolekce polí neobsahuje mapu synonym, ale následující příklad ukazuje, jak může být mapa synonym s variantami názvů zemí/oblastí přiřazena hypotetickým polím "umístění".
{
"name":"locations",
"type":"Edm.String",
"searchable":true,
"synonymMaps":[ "country-region-synonyms" ]
}
Přidejte svůj index do databáze znalostí
Pokud máte samostatný index, který již existuje a není generován zdrojem znalostí, vytvořte následující objekty:
- Zdroj znalostí pro index vyhledávání, který zapouzdřuje váš indexovaný obsah.
- Znalostní báze, která reprezentuje jeden nebo více zdrojů znalostí a další pokyny pro agentní vyhledávání.