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.
Poznámka:
Knowledge stores jsou sekundární úložiště, která existují v Azure Storage a obsahují výstupy sad dovedností Azure AI Vyhledávač. Jsou oddělené od zdrojů znalostí a znalostních bází, které se používají při agenturním načítání.
V Azure AI Vyhledávač je úložiště knowledge store úložiště skill-generated content, které se používá pro scénáře bez vyhledávání. Úložiště znalostí vytvoříte pomocí indexeru a sady dovedností a zadáte Azure Storage k uložení výstupu. Po naplnění úložiště znalostí můžete k prozkoumání obsahu použít nástroje, jako je Průzkumník služby Storage nebo Power BI.
V tomto článku použijete rozhraní REST API k příjmu, obohacení a prozkoumání sady recenzí zákazníků hotelů ve znalostním úložišti. Úložiště znalostí obsahuje původní textový obsah načítaný ze zdroje a navíc obsah vygenerovaný AI, který zahrnuje skóre mínění, extrakci klíčových frází, rozpoznávání jazyka a překlad textu neanglických komentářů zákazníků.
Aby byla počáteční sada dat dostupná, recenze hotelů se nejprve naimportují do Azure Blob Storage. Po zpracování se výsledky uloží jako úložiště znalostí v Storage tabulky Azure.
Návod
Tento článek používá REST k podrobným vysvětlení jednotlivých kroků. Stahujte soubor REST, pokud chcete jenom spustit příkazy.
Požadavky
Visual Studio Code s klientem REST. Pokud potřebujete pomoc se začátky, přečtěte si téma Rychlý start: Fulltextové vyhledávání pomocí REST.
Azure AI Vyhledávač. Vytvořte službu nebo najděte existující. Pro toto cvičení můžete použít bezplatnou službu.
Azure Storage. Vytvořte účet nebo najděte existující účet. Typ účtu musí být StorageV2 (general purpose V2).
Sada dovedností v tomto příkladu používá nástroje Foundry k rozšiřování. Vzhledem k tomu, že zátěž je tak malá, Foundry Tools je využíván v zákulisí a poskytuje bezplatné zpracování pro až 20 transakcí denně. Malá úloha znamená, že můžete přeskočit vytvoření nebo připojení prostředku Microsoft Foundry.
Nahrání dat do Azure Storage a získání připojovacího řetězce
Stáhnout HotelReviews_data.csv. Tento csv obsahuje 19 částí názorů zákazníků na jeden hotel (pochází z Kaggle.com).
V Azure portal najděte svůj účet storage a pomocí Storage Browser vytvořte kontejner objektů blob s názvem hotel-reviews.
Vyberte Nahrát v horní části stránky, abyste načetli HotelReviews_data.csv, který jste stáhli z předchozího kroku.
Vlevo vyberte Přístupové klíče, vyberte Zobrazit klíče, a zkopírujte připojovací řetězec pro klíč 1 nebo klíč 2. Úplný access připojovací řetězec má následující formát:
"knowledgeStore": {
"storageConnectionString": "DefaultEndpointsProtocol=https;AccountName=<YOUR-ACCOUNT-NAME>;AccountKey=<YOUR-ACCOUNT-KEY>;EndpointSuffix=core.windows.net;"
}
Poznámka:
Pokud nechcete v připojovací řetězec poskytovat citlivá data, přečtěte si téma Pojení pomocí spravované identity.
Zkopírování klíče a adresy URL
V tomto příkladu volání REST vyžadují koncový bod vyhledávací služby a pro každý dotaz používají klíč rozhraní API. Tyto hodnoty můžete získat z Azure portal.
Na webu Azure Portal přejděte do vyhledávací služby.
Na stránce Přehled zkopírujte adresu URL koncového bodu. Příklad koncového bodu může vypadat jako
https://mydemo.search.windows.net.V klíčích nastavení> zkopírujte klíč správce. Klíče správce slouží k přidávání, úpravám a odstraňování objektů. Existují dva zaměnitelné klíče správce. Zkopírujte jeden z nich.
Platný klíč rozhraní API vytváří vztah důvěryhodnosti na základě požadavku mezi aplikací, která požadavek odesílá, a vyhledávací službou, která ji zpracovává.
Vytvoření indexu
Vytvoření indexu (REST) vytvoří index vyhledávání v search service. Index vyhledávání nesouvisí s úložištěm znalostí, ale indexer ho vyžaduje. Index vyhledávání obsahuje stejný obsah jako úložiště znalostí, které můžete prozkoumat odesláním požadavků na dotazy.
Otevřete nový textový soubor v Visual Studio Code.
Nastavte proměnné na koncový bod vyhledávání a klíč rozhraní API, který jste shromáždili dříve.
@baseUrl = PUT-YOUR-SEARCH-SERVICE-URL-HERE @apiKey = PUT-YOUR-ADMIN-API-KEY-HERE @storageConnectionString = PUT-YOUR-STORAGE-CONNECTION-STRING-HERE @blobContainer = PUT-YOUR-CONTAINER-NAME-HERE (hotel-reviews)Uložte soubor s příponou
.rest.Vložte následující příklad a vytvořte požadavek indexu.
### Create a new index POST {{baseUrl}}/indexes?api-version=2026-04-01 HTTP/1.1 Content-Type: application/json api-key: {{apiKey}} { "name": "hotel-reviews-kstore-idx", "fields": [ { "name": "name", "type": "Edm.String", "filterable": false, "sortable": false, "facetable": false }, { "name": "reviews_date", "type": "Edm.DateTimeOffset", "searchable": false, "filterable": false, "sortable": false, "facetable": false }, { "name": "reviews_rating", "type": "Edm.String", "searchable": false, "filterable": false, "sortable": false, "facetable": false }, { "name": "reviews_text", "type": "Edm.String", "filterable": false, "sortable": false, "facetable": false }, { "name": "reviews_title", "type": "Edm.String", "searchable": false, "filterable": false, "sortable": false, "facetable": false }, { "name": "reviews_username", "type": "Edm.String", "searchable": false, "filterable": false, "sortable": false, "facetable": false }, { "name": "AzureSearch_DocumentKey", "type": "Edm.String", "searchable": false, "filterable": false, "sortable": false, "facetable": false, "key": true }, { "name": "language", "type": "Edm.String", "filterable": true, "sortable": false, "facetable": true }, { "name": "translated_text", "type": "Edm.String", "filterable": false, "sortable": false, "facetable": false }, { "name": "sentiment", "type": "Collection(Edm.String)", "searchable": false, "filterable": true, "retrievable": true, "sortable": false, "facetable": true }, { "name": "keyphrases", "type": "Collection(Edm.String)", "filterable": true, "sortable": false, "facetable": true } ] }Vyberte Odeslat žádost. Měli byste mít
HTTP/1.1 201 Createdodpověď a text odpovědi by měl obsahovat reprezentaci JSON schématu indexu.
Vytvoření zdroje dat
Vytvoření zdroje dat vytvoří připojení zdroje dat na Azure AI Vyhledávač.
Vložte následující příklad a vytvořte zdroj dat.
### Create a data source POST {{baseUrl}}/datasources?api-version=2026-04-01 HTTP/1.1 Content-Type: application/json api-key: {{apiKey}} { "name": "hotel-reviews-kstore-ds", "description": null, "type": "azureblob", "subtype": null, "credentials": { "connectionString": "{{storageConnectionString}}" }, "container": { "name": "{{blobContainer}}", "query": null }, "dataChangeDetectionPolicy": null, "dataDeletionDetectionPolicy": null }Vyberte Odeslat žádost.
Vytvoření sady dovedností
Sada dovedností definuje rozšiřování (dovednosti) a vaše úložiště znalostí. Create Skillset vytvoří objekt ve vaší vyhledávací službě.
Vložte následující příklad a vytvořte sadu dovedností.
### Create a skillset POST {{baseUrl}}/skillsets?api-version=2026-04-01 HTTP/1.1 Content-Type: application/json api-key: {{apiKey}} { "name": "hotel-reviews-kstore-ss", "description": "Skillset to detect language, translate text, extract key phrases, and score sentiment", "skills": [ { "@odata.type": "#Microsoft.Skills.Text.SplitSkill", "context": "/document/reviews_text", "textSplitMode": "pages", "maximumPageLength": 5000, "inputs": [ { "name": "text", "source": "/document/reviews_text" } ], "outputs": [ { "name": "textItems", "targetName": "pages" } ] }, { "@odata.type": "#Microsoft.Skills.Text.V3.SentimentSkill", "context": "/document/reviews_text/pages/*", "inputs": [ { "name": "text", "source": "/document/reviews_text/pages/*" }, { "name": "languageCode", "source": "/document/language" } ], "outputs": [ { "name": "sentiment", "targetName": "sentiment" } ] }, { "@odata.type": "#Microsoft.Skills.Text.LanguageDetectionSkill", "context": "/document", "inputs": [ { "name": "text", "source": "/document/reviews_text" } ], "outputs": [ { "name": "languageCode", "targetName": "language" } ] }, { "@odata.type": "#Microsoft.Skills.Text.TranslationSkill", "context": "/document/reviews_text/pages/*", "defaultFromLanguageCode": null, "defaultToLanguageCode": "en", "inputs": [ { "name": "text", "source": "/document/reviews_text/pages/*" } ], "outputs": [ { "name": "translatedText", "targetName": "translated_text" } ] }, { "@odata.type": "#Microsoft.Skills.Text.KeyPhraseExtractionSkill", "context": "/document/reviews_text/pages/*", "inputs": [ { "name": "text", "source": "/document/reviews_text/pages/*" }, { "name": "languageCode", "source": "/document/language" } ], "outputs": [ { "name": "keyPhrases" , "targetName": "keyphrases" } ] }, { "@odata.type": "#Microsoft.Skills.Util.ShaperSkill", "context": "/document", "inputs": [ { "name": "name", "source": "/document/name" }, { "name": "reviews_date", "source": "/document/reviews_date" }, { "name": "reviews_rating", "source": "/document/reviews_rating" }, { "name": "reviews_text", "source": "/document/reviews_text" }, { "name": "reviews_title", "source": "/document/reviews_title" }, { "name": "reviews_username", "source": "/document/reviews_username" }, { "name": "AzureSearch_DocumentKey", "source": "/document/AzureSearch_DocumentKey" }, { "name": "pages", "sourceContext": "/document/reviews_text/pages/*", "inputs": [ { "name": "languageCode", "source": "/document/language" }, { "name": "translatedText", "source": "/document/reviews_text/pages/*/translated_text" }, { "name": "sentiment", "source": "/document/reviews_text/pages/*/sentiment" }, { "name": "keyPhrases", "source": "/document/reviews_text/pages/*/keyphrases/*" }, { "name": "Page", "source": "/document/reviews_text/pages/*" } ] } ], "outputs": [ { "name": "output" , "targetName": "tableprojection" } ] } ], "knowledgeStore": { "storageConnectionString": "{{storageConnectionString}}", "projections": [ { "tables": [ { "tableName": "hotelReviews1Document", "generatedKeyName": "Documentid", "source": "/document/tableprojection" }, { "tableName": "hotelReviews2Pages", "generatedKeyName": "Pagesid", "source": "/document/tableprojection/pages/*" }, { "tableName": "hotelReviews3KeyPhrases", "generatedKeyName": "KeyPhrasesid", "source": "/document/tableprojection/pages/*/keyPhrases/*" } ], "objects": [] }, { "tables": [ { "tableName": "hotelReviews4InlineProjectionDocument", "generatedKeyName": "Documentid", "sourceContext": "/document", "inputs": [ { "name": "name", "source": "/document/name"}, { "name": "reviews_date", "source": "/document/reviews_date"}, { "name": "reviews_rating", "source": "/document/reviews_rating"}, { "name": "reviews_username", "source": "/document/reviews_username"}, { "name": "reviews_title", "source": "/document/reviews_title"}, { "name": "reviews_text", "source": "/document/reviews_text"}, { "name": "AzureSearch_DocumentKey", "source": "/document/AzureSearch_DocumentKey" } ] }, { "tableName": "hotelReviews5InlineProjectionPages", "generatedKeyName": "Pagesid", "sourceContext": "/document/reviews_text/pages/*", "inputs": [ { "name": "Sentiment", "source": "/document/reviews_text/pages/*/sentiment"}, { "name": "LanguageCode", "source": "/document/language"}, { "name": "Keyphrases", "source": "/document/reviews_text/pages/*/keyphrases"}, { "name": "TranslatedText", "source": "/document/reviews_text/pages/*/translated_text"}, { "name": "Page", "source": "/document/reviews_text/pages/*" } ] }, { "tableName": "hotelReviews6InlineProjectionKeyPhrases", "generatedKeyName": "kpidv2", "sourceContext": "/document/reviews_text/pages/*/keyphrases/*", "inputs": [ { "name": "Keyphrases", "source": "/document/reviews_text/pages/*/keyphrases/*" } ] } ], "objects": [] } ] } }
Klíčové body:
Dovednost Shaper je důležitá pro definici úložiště znalostí. Určuje, jak data proudí do tabulek úložiště znalostí. Vstupy jsou části rozšířeného dokumentu, který chcete uložit. Výstup je sloučení uzlů do jedné struktury.
Projekce definují tabulky, objekty a bloby ve vašem úložišti znalostí. Projekce tabulky určuje
tableName,generatedKeyNamea buďsource, nebosourceContextsinputs. VlastnostisourceasourceContextidentifikují obohacený obsah, který se má uložit.
Vytvoření indexeru
Vytvoření indexeru vytvoří a spustí indexer. Spuštění indexeru začíná otevřením dokumentů, extrahováním textu a obrázků a inicializací sady funkcí. Indexer vyhledá další objekty, které jste vytvořili: zdroj dat, index a sadu dovedností.
Vložte následující příklad a vytvořte indexer.
### Create indexer POST {{baseUrl}}/indexers?api-version=2026-04-01 HTTP/1.1 Content-Type: application/json api-key: {{apiKey}} { "name": "hotel-reviews-kstore-idxr", "dataSourceName": "hotel-reviews-kstore-ds", "skillsetName": "hotel-reviews-kstore-ss", "targetIndexName": "hotel-reviews-kstore-idx", "parameters": { "configuration": { "dataToExtract": "contentAndMetadata", "parsingMode": "delimitedText", "firstLineContainsHeaders": true, "delimitedTextDelimiter": "," } }, "fieldMappings": [ { "sourceFieldName": "AzureSearch_DocumentKey", "targetFieldName": "AzureSearch_DocumentKey", "mappingFunction": { "name": "base64Encode" } } ], "outputFieldMappings": [ { "sourceFieldName": "/document/reviews_text/pages/*/keyphrases/*", "targetFieldName": "keyphrases" }, { "sourceFieldName": "/document/language", "targetFieldName": "language" }, { "sourceFieldName": "/document/reviews_text/pages/*/sentiment", "targetFieldName": "sentiment" } ] }Vyberte Odeslat požadavek k vytvoření a spuštění indexeru. Dokončení tohoto kroku trvá několik minut.
Klíčové body:
Objekt
parameters/configurationřídí, jak indexer ingestuje data. V tomto případě jsou vstupní data v jednom souboru CSV, který obsahuje řádek záhlaví a hodnoty oddělené čárkami.Mapování polí pro
AzureSearch_DocumentKeyvytvoří jedinečný identifikátor pro každý dokument generovaný blob indexerem (na základě cesty úložiště metadat).Mapování výstupních polí určují, jak se rozšířená pole mapují na pole v indexu vyhledávání. Mapování výstupních polí se nepoužívá v úložištích znalostí (úložiště znalostí používají k vyjádření fyzických datových struktur obrazce a projekce).
Zkontrolovat stav
Zkontrolujte stav indexeru a ověřte, že se sada dovedností úspěšně dokončila.
### Get Indexer Status (wait several minutes for the indexer to complete)
GET {{baseUrl}}/indexers/hotel-reviews-kstore-idxr/status?api-version=2026-04-01 HTTP/1.1
Content-Type: application/json
api-key: {{apiKey}}
Požadavek vrátí 200 OK. Počkejte, dokud lastResult.status nebude success, než se dotážete indexu.
Dotazem indexu zkontrolujte obsah. I když index nepoužíváte, představuje tento krok pohodlný způsob, jak ověřit, že sada dovedností vytvořila očekávaný výstup.
### Query the index (indexer status must be "success" before querying the index)
POST {{baseUrl}}/indexes/hotel-reviews-kstore-idx/docs/search?api-version=2026-04-01 HTTP/1.1
Content-Type: application/json
api-key: {{apiKey}}
{
"search": "*",
"select": "reviews_title, reviews_username, language, translated_text, sentiment",
"count": true
}
Požadavek vrátí 200 OK a zahrne vybraná rozšířená pole.
Kontrola tabulek v Azure portal
V Azure portal přepněte na svůj účet Azure Storage a pomocí prohlížeče Storage zobrazte nové tabulky. Měli byste vidět šest tabulek, jednu pro každou projekci definovanou v sadě dovedností.
Každá tabulka se vygeneruje s ID potřebnými pro křížové propojení tabulek v dotazech. Když otevřete tabulku, posuňte se za tato pole a zobrazte pole obsahu přidaná zpracovatelským kanálem.
V tomto názorném postupu se úložiště znalostí skládá z různých tabulek, které ukazují různé způsoby strukturování a strukturování dat. Tabulky 1 až tři používají výstup z dovednosti Shaper k určení sloupců a řádků. Tabulky čtyři až šest jsou vytvořeny pomocí řádkového tvarování instrukcí vložených do projekce. K dosažení stejného výsledku můžete použít některý z přístupů.
| Tabulka | Popis |
|---|---|
hotelReviews1Document |
Obsahuje pole přenesená ze souboru CSV, jako jsou reviews_date a reviews_text. |
hotelReviews2Pages |
Obsahuje rozšířená pole vytvořená sadou dovedností, například skóre mínění a přeložený text. |
hotelReviews3KeyPhrases |
Obsahuje dlouhý seznam jenom klíčových frází. |
hotelReviews4InlineProjectionDocument |
Alternativou k první tabulce je použití vloženého tvarování místo dovednosti Shaper k tvarování dat pro projekci. |
hotelReviews5InlineProjectionPages |
Alternativou ke druhé tabulce je použití tvarování v řádku. |
hotelReviews6InlineProjectionKeyPhrases |
Alternativou ke třetí tabulce je použití vloženého tvarování. |
Vyčištění
Když pracujete ve vlastním předplatném, je dobrý nápad na konci projektu zjistit, zda prostředky, které jste vytvořili, stále potřebujete. Prostředky, které necháte spuštěné, vás stojí peníze. Prostředky můžete odstraňovat jednotlivě nebo můžete odstranit skupinu prostředků, a odstranit tak celou sadu prostředků najednou.
Prostředky můžete najít a spravovat v Azure portal pomocí odkazu Všechny prostředky nebo Skupování zdrojů v levém navigačním podokně.
Další kroky
Teď, když jste data obohatili pomocí nástrojů Foundry a promítli výsledky do úložiště znalostí, můžete k prozkoumání rozšířené datové sady použít Průzkumník služby Storage nebo jiné aplikace.