Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Megjegyzés
Azure AI Keresés a Azure portálon, REST API-kon és Azure SDK-k keresztül érhető el. Emellett a Foundry IQ-t is támogatja, amely a vállalati tartalmakat újrafelhasználható, engedélytudatos tudásbázisokká alakítja át az Microsoft Foundry portálon található ügynökök számára.
Megjegyzés
Knowledge áruházak másodlagos tárolók, amelyek az Azure Storage-ban léteznek, és az Azure AI Keresés képességkészletek eredményeit tartalmazzák. Ezek különböznek a tudásforrásoktól és a tudásbázisoktól, amelyeket ügynöki lekéréses munkafolyamatokban használnak.
Az Azure AI Keresés tudásraktár a képességek által létrehozott tartalmak adattára, amelyet nem keresési forgatókönyvekhez használnak. A tudástárat indexelővel és képességkészlettel hozhatja létre, és megadhatja Azure Storage a kimenet tárolásához. A tudástár feltöltése után használjon olyan eszközöket, mint a Storage Explorer vagy Power BI a tartalom megismeréséhez.
Ebben a cikkben a REST API-val betöltheti, gazdagíthatja és felfedezheti a szállodai tartózkodásokról szóló ügyfélértékelések egy készletét egy tudástárban. A tudástár tartalmazza a forrásból lekért eredeti szöveges tartalmat, valamint az AI által létrehozott tartalmakat, amelyek tartalmazzák a hangulatpontszámot, a kulcskifejezések kinyerását, a nyelvfelismerést és a nem angol nyelvű ügyfelek megjegyzéseinek szövegfordítását.
A kezdeti adatkészlet elérhetővé tétele érdekében a szállodai értékeléseket először importálja a Azure Blob Storage. A feldolgozás után az eredmények tudástárként tárolva lesznek az Azure Táblatárolóban.
Tipp.
Ez a cikk a REST függvényt használja az egyes lépések részletes magyarázatához. Töltse le a REST-fájlt ha csak futtatni szeretné a parancsokat.
Előfeltételek
Visual Studio CodeREST-ügyféllel. Ha segítségre van szüksége az elindulással kapcsolatban, tekintse meg a Gyors kezdés: Teljes szöveges keresés REST használatával.
Azure AI Keresés. Szolgáltatás létrehozása vagy keressen egy meglévő szolgáltatást. Ehhez a gyakorlathoz használhatja az ingyenes szolgáltatást.
Azure Storage. Fiók létrehozása vagy meglévőt megtalálni. A fióktípusnak StorageV2 (general purpose V2) kell lennie.
A példában szereplő készségkészlet az Öntödei eszközöket használja a bővítéshez. Mivel a munkaterhelés olyan csekély, a Foundry Tools a háttérben van bevonva, amely akár napi 20 tranzakcióhoz biztosít ingyenes feldolgozást. A kis számítási feladatok azt jelentik, hogy kihagyhatja a Microsoft Foundry-erőforrások létrehozását vagy csatolását.
Adatok feltöltése az Azure Storage-ba és egy kapcsolati karakterlánc megszerzése.
Letöltés HotelReviews_data.csv. Ez a CSV 19 darab ügyfél-visszajelzést tartalmaz egyetlen szállodáról (Kaggle.com származik).
Az Azure portalon keresse meg a tárolófiókját, majd az Storage Browser használatával hozzon létre egy hotel-reviews nevű blobtárolót.
Válassza a Lap tetején található Feltöltés lehetőséget az előző lépésből letöltött HotelReviews_data.csv fájl betöltéséhez.
A bal oldalon válassza a Hozzáférési Kulcsok lehetőséget, majd a Kulcsok Megjelenítése opciót, és másolja a kapcsolati karakterláncot az 1. vagy a 2. kulcshoz. A teljes hozzáférési kapcsolatkarakterlánc formátuma a következő:
"knowledgeStore": {
"storageConnectionString": "DefaultEndpointsProtocol=https;AccountName=<YOUR-ACCOUNT-NAME>;AccountKey=<YOUR-ACCOUNT-KEY>;EndpointSuffix=core.windows.net;"
}
Megjegyzés
Ha nem szeretne bizalmas adatokat megadni a kapcsolati karakterlánc-ben, tekintse meg a Felügyelt identitás használatával való kapcsolódás részt.
Kulcs és URL másolása
Ebben a példában a REST-hívásokhoz szükség van a search service végpontra, és minden kéréshez egy API-kulcsot kell használni. Ezeket az értékeket a Azure portal érheti el.
Nyissa meg a keresési szolgáltatást az Azure Portalon.
Az Áttekintés lapon másolja ki a végpont URL-címét. Például egy végpont
https://mydemo.search.windows.net.ABeállításkulcsok> lapon másolja ki a rendszergazdai kulcsot. A rendszergazdai kulcsok objektumok hozzáadására, módosítására és törlésére szolgálnak. Két felcserélhető rendszergazdai kulcs van. Másolja valamelyiket.
Az érvényes API-kulcs kérésenként megbízhatóságot hoz létre a kérést küldő alkalmazás és az azt kezelő keresési szolgáltatás között.
Index létrehozása
Index létrehozása (REST) keresési indexet hoz létre a keresőszolgáltatáson. A keresési index nem kapcsolódik a tudástárhoz, de az indexelőnek szüksége van rá. A keresési index ugyanazokat a tartalmakat tartalmazza, mint a tudástár, amelyet lekérdezési kérések küldésével vizsgálhat meg.
Nyisson meg egy új szövegfájlt Visual Studio Code-ban.
Állítsa be a változókat a keresési végpontra és a korábban gyűjtött API-kulcsra.
@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)Mentse a fájlt fájlkiterjesztéssel
.rest.Illessze be az alábbi példába az indexkérelmet.
### 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 } ] }Válassza a Kérés elküldése elemet. Válasznak kell lennie
HTTP/1.1 201 Created, és a válasz törzsének tartalmaznia kell az indexséma JSON-ábrázolását.
Adatforrás létrehozása
Adatforrás létrehozása adatforrás-kapcsolatot hoz létre Azure AI Keresés.
Illessze be az alábbi példát az adatforrás létrehozásához.
### 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 }Válassza a Kérés elküldése elemet.
Készségkészlet létrehozása
A képességkészletek a bővítéseket (készségeket) és a tudástárat határozzák meg. Create Skillset nevű objektumot hoz létre a keresési szolgáltatásban.
Illessze be a következő példát a készségkészlet létrehozásához.
### 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": [] } ] } }
Főbb pontok:
A Shaper-képesség fontos a tudástár definíciójában. Meghatározza, hogy az adatok hogyan áramoljanak a tudástár tábláiba. A bemenetek a bővített dokumentum tárolni kívánt részei. A kimenet a csomópontok egyetlen struktúrába való összesítése.
A kivetítések a tudástár tábláit, objektumait és blobjait határozzák meg. Egy táblaprojekció megadja a(z)
tableName,generatedKeyName, valamintsourcevagysourceContextelemet a(z)inputshasználatával. AsourceéssourceContexttulajdonságok azonosítják a tárolandó dúsított tartalmat.
Indexelő létrehozása
Az Indexelő létrehozása létrehozza és futtatja az indexelőt. Az indexelő végrehajtása a dokumentumok feltörésével, a szöveg és képek kinyerésével, valamint a képességkészlet inicializálásával kezdődik. Az indexelő ellenőrzi a többi létrehozott objektumot: az adatforrást, az indexet és a képességkészletet.
Az alábbi példát illessze be az indexelő létrehozásához.
### 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" } ] }Válassza a Kérés küldése lehetőséget az indexelő létrehozásához és futtatásához. Ez a lépés több percet vesz igénybe.
Főbb pontok:
Az
parameters/configurationobjektum szabályozza, hogy az indexelő hogyan betölti az adatokat. Ebben az esetben a bemeneti adatok egyetlen CSV-fájlban vannak, amely fejlécsort és vesszővel elválasztott értékeket tartalmaz.A
AzureSearch_DocumentKeymezőleképezése egyedi azonosítót hoz létre a blobindexelő által létrehozott minden egyes dokumentumhoz (a metaadatok storage elérési útja alapján).A kimeneti mezőleképezések megadják, hogy a bővített mezők hogyan vannak leképezve a keresési index mezőire. A kimeneti mezőleképezések nem használhatók a tudástárakban (a tudástárak alakzatokkal és kivetítésekkel fejezik ki a fizikai adatstruktúrákat).
Állapot ellenőrzése
Ellenőrizze az indexelő állapotát, hogy a képességkészlet sikeresen befejeződött-e.
### 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}}
A kérés a következőt adja vissza: 200 OK. Várjon, amíg lastResult.statussuccess, mielőtt lekérdezné az indexet.
Az index lekérdezése a tartalom vizsgálatához. Még akkor is, ha nem használja az indexet, ez a lépés kényelmes módszer annak ellenőrzésére, hogy a képességkészlet a várt kimenetet hozta-e létre.
### 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
}
A kérés visszaadja 200 OK és tartalmazza a kijelölt bővített mezőket.
Az Azure portálon lévő táblák ellenőrzése
Az Azure-portálon váltson az Azure Storage-fiókjára, és a Storage Browser használatával tekintse meg az új táblákat. Hat táblát kell látnia, egyet a készségkészletben definiált minden egyes vetítéshez.
Minden tábla a lekérdezésekben lévő táblák keresztkapcsolásához szükséges azonosítókkal jön létre. Amikor megnyit egy táblát, görgessen túl ezeken a mezőkön, hogy megtekintse a folyamat által hozzáadott tartalommezőket.
Ebben az útmutatóban a tudástár különböző táblákból áll, amelyek az adatok alakításának és strukturálásának különböző módjait mutatják be. Az 1–3. táblázat egy Shaper-képesség kimenetét használja az oszlopok és sorok meghatározásához. A négytől a hatig tartó táblázatok beágyazott formázási utasításokból jönnek létre, amelyek a kivetítésbe ágyazódnak. Ugyanazt az eredményt bármelyik megközelítéssel érheti el.
| Táblázat | Leírás |
|---|---|
hotelReviews1Document |
A CSV-ből továbbított mezőket tartalmazza, például reviews_date és reviews_text. |
hotelReviews2Pages |
A képességkészlet által létrehozott bővített mezőket tartalmaz, például a hangulatpontszámot és a lefordított szöveget. |
hotelReviews3KeyPhrases |
Csak a kulcskifejezések hosszú listáját tartalmazza. |
hotelReviews4InlineProjectionDocument |
Az első táblázat alternatívája, ahol az adatokat a vetítéshez soron belüli formázás segítségével alakítja ahelyett, hogy a Shaper funkciót használná. |
hotelReviews5InlineProjectionPages |
A második táblázat alternatívája, soros alakítással. |
hotelReviews6InlineProjectionKeyPhrases |
A harmadik táblázat alternatívája soros formázással. |
Rendrakás
Ha a saját előfizetésében dolgozik, érdemes a projekt végén átgondolni, hogy szükség van-e még a létrehozott erőforrásokra. A továbbra is futó erőforrások költségekkel járhatnak. Az erőforrásokat törölheti egyesével, vagy az erőforráscsoport törlésével eltávolíthatja a benne lévő összes erőforrást is.
A Azure portal erőforrásokat a bal oldali navigációs panelen található All resources vagy Resource groups link használatával keresheti meg és kezelheti.
Következő lépések
Most, hogy a Foundry eszközökkel bővítette az adatokat, és az eredményeket egy tudástárba átvitte, a Storage Explorer vagy más alkalmazásokkal felfedezheti a gazdagított adatállományt.