إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
مُلاحَظَة
><مخازن المعرفة هي storage ثانوية موجودة في تخزين Azure وتحتوي على مخرجات مجموعات المهارات البحث باستخدام الذكاء الاصطناعي في Azure. هي منفصلة عن مصادر المعرفة وقواعد المعرفة التي تستخدم في سير عمل الاسترجاع الوكالتي .
في عام البحث باستخدام الذكاء الاصطناعي في Azure، <مخزن المعرفة c0>knowledge هو مستودع >ل <المحتوى المولد بواسطة المهارة يستخدم للسيناريوهات غير المتعلقة بالبحث. تقوم بإنشاء مخزن المعرفة باستخدام فهرس ومجموعة مهارات، وتحدد تخزين Azure لتخزين المخرجات. بعد ملء مخزن المعرفة، استخدم أدوات مثل Storage Explorer أو Power BI لاستكشاف المحتوى.
في هذه المقالة، يمكنك استخدام واجهة برمجة تطبيقات REST لاستيعاب مجموعة من مراجعات العملاء لإقامات الفنادق في مخزن المعلومات وإثرائها واستكشافها. يحتوي مخزن المعرفة على محتوى النص الأصلي الذي تم سحبه من المصدر، بالإضافة إلى المحتوى الذي تم إنشاؤه الذكاء الاصطناعي والذي يتضمن درجة التوجه واستخراج العبارة الرئيسية واكتشاف اللغة والترجمة النصية لتعليقات العملاء غير الإنجليزية.
لجعل مجموعة البيانات الأولية متاحة، يتم استيراد مراجعات الفنادق أولا إلى مساحة تخزين Azure Blob. بعد المعالجة، يتم حفظ النتائج كمخزن معرفة في مساحة تخزين Azure Table.
نصيحة
تستخدم هذه المقالة REST للحصول على تفسيرات مفصلة لكل خطوة. قم بتحميل ملف REST إذا أردت فقط تشغيل الأوامر.
المتطلبات الأساسية
تعليمة Visual Studio برمجية مع <عميل c1>REST. إذا كنت بحاجة إلى مساعدة في getting started، راجع Quickstart: البحث الكامل بالنص باستخدام REST.Azure الذكاء الاصطناعي Search. إنشاء خدمة أو ابحث عن خدمة موجودة. يمكنك استخدام الخدمة المجانية لهذا التمرين.
تخزين Azure. أنشئ حسابا أو ابحث عن حساب موجود. يجب أن يكون نوع الحساب StorageV2 (general purpose V2).
المهارات في هذا المثال تستخدم أدوات Foundry Tools للإثراءات. نظرا لحجم العمل الصغير، يتم الاستفادة من أدوات Foundry Tools خلف الكواليس لتوفير معالجة مجانية لما يصل إلى 20 معاملة يوميا. عبء العمل الصغير يعني أنه يمكنك تخطي إنشاء أو إرفاق مورد Microsoft Foundry.
رفع البيانات إلى تخزين Azure والحصول على سلسلة الاتصال
تحميل HotelReviews_data.csv. يحتوي ملف CSV هذا على 19 قطعة من ملاحظات العملاء حول فندق واحد (تنشأ من Kaggle.com).
في Azure portal، ابحث عن حسابك storage واستخدم Storage Browser لإنشاء حاوية blob باسم hotel-reviews.
اختر رفع الملف في أعلى الصفحة لتحميل الملف HotelReviews_data.csv الذي قمت بتحميله من الخطوة السابقة.
على اليسار، اختر Access Keys، ثم اختر Show Keys، ثم انسخ سلسلة الاتصال إما للمفتاح1 أو المفتاح 2. access سلسلة الاتصال الكامل له الصيغة التالية:
"knowledgeStore": {
"storageConnectionString": "DefaultEndpointsProtocol=https;AccountName=<YOUR-ACCOUNT-NAME>;AccountKey=<YOUR-ACCOUNT-KEY>;EndpointSuffix=core.windows.net;"
}
مُلاحَظَة
انظر Connect باستخدام هوية مدارة إذا لم ترغب في توفير بيانات حساسة في سلسلة الاتصال.
نسخ مفتاح وعنوان URL
في هذا المثال، تتطلب استدعاءات REST نقطة نهاية search service وتستخدم مفتاح API في كل طلب. يمكنك الحصول على هذه القيم من Azure portal.
انتقل إلى خدمة البحث في مدخل Microsoft Azure.
في صفحة النظرة العامة ، انسخ رابط نقطة النهاية. قد يبدو مثال على نقطة نهاية
https://mydemo.search.windows.net.علىمفاتيح>، انسخ مفتاح المسؤول. يتم استخدام مفاتيح المسؤول لإضافة الكائنات وتعديلها وحذفها. هناك مفتاحان للمسؤول قابلان للتبديل. انسخ أي منهما.
مفتاح API الصالح يؤسس الثقة، على أساس كل طلب، بين التطبيق الذي يرسل الطلب وخدمة search service التي تتعامل معه.
إنشاء فهرس
إنشاء فهرس (REST) ينشئ فهرس بحث على search service. فهرس البحث غير مرتبط بمخزن معارف، ولكن المفهرس يتطلب واحدا. يحتوي فهرس البحث على نفس محتوى مخزن المعلومات، والذي يمكنك استكشافه عن طريق إرسال طلبات الاستعلام.
افتح ملف نصي جديد في تعليمة Visual Studio برمجية.
تعيين المتغيرات إلى نقطة نهاية البحث ومفتاح API الذي جمعته سابقا.
@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)احفظ الملف بملحق
.restملف.الصق في المثال التالي لإنشاء طلب الفهرس.
### 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 } ] }حدد إرسال طلب. يجب أن يكون لديك استجابة
HTTP/1.1 201 Createdويجب أن يتضمن نص الاستجابة تمثيل JSON لمخطط الفهرس.
إنشاء مصدر بيانات
إنشاء مصدر بيانات ينشئ اتصال مصدر بيانات على البحث باستخدام الذكاء الاصطناعي في Azure.
الصق في المثال التالي لإنشاء مصدر البيانات.
### 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 }حدد إرسال طلب.
إنشاء مجموعة مهارات
تحدد مجموعة المهارات الإثراء (المهارات) ومخزن المعرفة الخاص بك. Create Skill Set ينشئ الكائن على search service الخاص بك.
الصق في المثال التالي لإنشاء مجموعة المهارات.
### 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": [] } ] } }
النقاط الرئيسية:
مهارة Shaper مهمة لتعريف مخزن المعرفة. يحدد كيفية تدفق البيانات إلى جداول مخزن المعرفة. الإدخالات هي أجزاء المستند الذي تم إثرائه الذي تريد تخزينه. الإخراج هو دمج العقد في بنية واحدة.
تحدد الإسقاطات الجداول والكائنات والكائنات الثنائية كبيرة الحجم لمخزن المعارف الخاص بك. كل عنصر عرض يحدد
"name"من العمود أو الحقل الذي يجب إنشاؤه في تخزين Azure."source"يحدد أي جزء من إخراج شكل معين لهذا الحقل أو العمود.
إنشاء مفهرس
إنشاء مفهرس يقوم بإنشاء المفهرس وتشغيله. يبدأ تنفيذ المفهرس بتكسير المستندات واستخراج النص والصور وتهيئة مجموعة المهارات. يتحقق المفهرس من الكائنات الأخرى التي أنشأتها: مصدر البيانات، الفهرس، ومجموعة المهارات.
الصق في المثال التالي لإنشاء المفهرس.
### 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" } ] }حدد إرسال طلب لإنشاء المفهرس وتشغيله. تستغرق هذه الخطوة عدة دقائق حتى تكتمل.
النقاط الرئيسية:
parameters/configurationيتحكم الكائن في كيفية استيعاب المفهرس للبيانات. في هذه الحالة، تكون بيانات الإدخال في ملف CSV واحد يحتوي على سطر رأس وقيم مفصولة بفواصل.تعيين الحقول ل
AzureSearch_DocumentKeyينشئ معرفا فريدا لكل مستند يتم إنشاؤه بواسطة مؤشر الكتلة (بناء على مسار البيانات الوصفية storage).تحدد تعيينات حقول الإخراج كيفية تعيين الحقول التي تم إثراؤها إلى حقول في فهرس بحث. لا يتم استخدام تعيينات حقول الإخراج في مخازن المعرفة (تستخدم مخازن المعرفة الأشكال والإسقاطات للتعبير عن بنيات البيانات المادية).
التحقق من الحالة
بعد إرسال كل طلب، يجب أن ترد search service برسالة نجاح 201.
### 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}}
بعد عدة دقائق، يمكنك الاستعلام عن الفهرس لفحص المحتوى. حتى إذا كنت لا تستخدم الفهرس، فإن هذه الخطوة هي طريقة ملائمة للتأكد من أن مجموعة المهارات أنتجت الإخراج المتوقع.
### 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
}
Check tables in Azure portal
في Azure portal، انتقل إلى حسابك تخزين Azure واستخدم Storage Browser لعرض الجداول الجديدة. يجب أن تشاهد ستة جداول، واحد لكل إسقاط محدد في مجموعة المهارات.
يتم إنشاء كل جدول بالمعرفات الضرورية لربط الجداول في الاستعلامات. عند فتح جدول، بادر بالتمرير عبر هذه الحقول لعرض حقول المحتوى المضافة بواسطة التدفق.
في هذا الدليل الشامل، يتكون مخزن المعرفة من جداول مختلفة تعرض طرقا مختلفة لتشكيل وهيكلة البيانات. تستخدم الجداول من الأول إلى الثالث مخرجات مهارة التشكيل لتحديد الأعمدة والصفوف. يتم إنشاء الجداول من الرابع إلى السادس من تعليمات التشكيل الخطية المدمجة داخل الإسقاط نفسه. يمكنك استخدام أي من النهجين لتحقيق نفس النتيجة.
| جدول | الوَصف |
|---|---|
hotelReviews1Document |
يحتوي على حقول تم ترحيلها من CSV، مثل reviews_date reviews_text. |
hotelReviews2Pages |
يحتوي على حقول تم إثراؤها تم إنشاؤها بواسطة مجموعة المهارات، مثل درجة التوجه والنص المترجم. |
hotelReviews3KeyPhrases |
يحتوي على قائمة طويلة بالعبارات الرئيسية فقط. |
hotelReviews4InlineProjectionDocument |
بديل للجدول الأول، باستخدام التشكيل المضمن بدلا من مهارة Shaper لتشكيل البيانات للإسقاط. |
hotelReviews5InlineProjectionPages |
بديل للجدول الثاني، باستخدام التشكيل المضمن. |
hotelReviews6InlineProjectionKeyPhrases |
بديل للجدول الثالث، باستخدام التشكيل المضمن. |
تنظيف
عندما تعمل باشتراكك الخاص، من الجيد في نهاية project تحديد ما إذا كنت لا تزال بحاجة إلى الموارد التي أنشأتها. الموارد المتبقية قيد التشغيل يمكن أن تكلفك المال. يمكنك حذف الموارد بشكل فردي أو حذف مجموعة الموارد لحذف تشكيلة الموارد بأكملها.
يمكنك العثور على الموارد وإدارتها في Azure portal، باستخدام رابط All resources أو Resource groups في لوحة التنقل اليسرى.
الخطوات التَالية
الآن بعد أن أغنت بياناتك باستخدام أدوات Foundry وعرضت النتائج إلى مخزن معرفة، يمكنك استخدام Storage Explorer أو تطبيقات أخرى لاستكشاف مجموعة بياناتك المخصية.