بداية سريعة: استخدام مكتبة عميل Bing Entity Search
تحذير
في 30 أكتوبر 2020، انتقلت واجهات برمجة تطبيقات البحث Bing من الخدمات المعرفية إلى خدمات البحث Bing. يتم توفير هذه الوثائق للرجوع إليها فقط. للحصول على الوثائق المحدثة، راجع وثائق واجهة برمجة تطبيقات البحث Bing. للحصول على إرشادات حول إنشاء موارد Azure جديدة للبحث Bing، راجع إنشاء مورد بحث Bing خلال Azure Marketplace.
استخدم هذه البداية السريعة لبدء البحث عن الكيانات التي لها مكتبة عميل Bing Entity C# Search بينما لدى Bing Entity Search خاصية REST API تتوافق مع معظم لغات البرمجة، توفر مكتبة العملاء طريقة سهلة لدمج الخدمة في تطبيقاتك. يمكن العثور على التعليمات البرمجية المصدر لهذه النماذج على GitHub.
المتطلبات الأساسية
- أي نسخة من Visual Studio 2017 أو أي نسخة أحدث.
- إطار عمل Json.NُET متوفر كحزمة NuGet.
- إذا كنت تستخدم Linux/MacOS، فإنه يمكن تشغيل هذا التطبيق باستخدام Mono.
- The Bing News Search SDK NuGet package. تثبيت هذه الحزمة أيضًا بتثبيت ما يلي:
- Microsoft.Rest.ClientRuntime
- Microsoft.Rest.ClientRuntime.Azure
- Newtonsoft.Js
لإضافة مكتبة عميل Bing Entity Search إلى مشروع Visual Studio، استخدم الخيار Manage NuGet Packages من Solution Explorer و، قم بإضافة Microsoft.Azure.CognitiveServices.Search.EntitySearch الحزمة.
أنشئ مورد Azure.
ابدأ باستخدام Entity Search API من خلال إنشاء أحد الموارد التالية لـAzure.
مورد Bing Entity Search
- متوفر من خلال بوابة Azure حتي وقت حذفك للمورد.
- استخدم مستوى التسعير المجاني لتجربة الخدمة، ورقِّها لاحقاً إلي المستوي المدفوع الخاص بعملية الإنتاج.
- تُعرض Bing Entity Search في مستويات مدفوعة لموارد Bing Search v7.
مورد متعدد الخدمات
- متوفر من خلال بوابة Azure حتي وقت حذفك للمورد.
- استخدم نفس المفتاح ونقطة النهاية للتطبيقات الخاصة بك، عبر الخدمات المعرفية المتعددة.
قم بإنشاء تطبيق وبدئه
إنشاء حل وحدة تحكم C# جديدة في Visual Studio. ثم أضف ما يلي إلى ملف التعليمات البرمجية الرئيسي.
using System; using System.Linq; using System.Text; using Microsoft.Azure.CognitiveServices.Search.EntitySearch; using Microsoft.Azure.CognitiveServices.Search.EntitySearch.Models; using Newtonsoft.Json;
قم بإنشاء عميل وارسل طلب بحث
أنشئ عميل بحث. أضف مفتاح الاشتراك الخاص بك عن طريق إنشاء جديد
ApiKeyServiceClientCredentials.var client = new EntitySearchClient(new ApiKeyServiceClientCredentials("YOUR-ACCESS-KEY"));استخدم دالة العميل
Entities.Search() للبحث عن الاستعلام الخاص بك:var entityData = client.Entities.Search(query: "Satya Nadella");
قم بالحصول على وصف كيان وطباعته
إذا كانت واجهة برمجة التطبيقات قد أعادت نتائج البحث، فاحصل على الكيان الرئيسي من
entityData.var mainEntity = entityData.Entities.Value.Where(thing => thing.EntityPresentationInfo.EntityScenario == EntityScenario.DominantEntity).FirstOrDefault();طباعة وصف الكيان الرئيسي
Console.WriteLine(mainEntity.Description);
الخطوات التالية
استخدم هذا التشغيل السريع لبدء البحث عن كيانات باستخدام مكتبة عملاء Bing Entity Search الخاصة بـJava. بينما لدى Bing Entity Search خاصية REST API تتوافق مع معظم لغات البرمجة، توفر مكتبة العملاء طريقة سهلة لدمج الخدمة في تطبيقاتك. يمكن العثور على التعليمات البرمجية المصدر لهذه النماذج على GitHub.
المتطلبات الأساسية
مكتبة العملاء لـBing Entity Search الخاصة بـJava
قم بتثبيت تبعيات مكتبة عملاء Bing Entity Search باستخدام Maven أو Gradle أو نظام آخر لإدارة التبعية. يتطلب ملف Maven POM الإعلان عن:
<dependency>
<groupId>com.microsoft.azure.cognitiveservices</groupId>
<artifactId>azure-cognitiveservices-entitysearch</artifactId>
<version>1.0.2</version>
</dependency>
أنشئ مورد Azure.
ابدأ باستخدام Entity Search API من خلال إنشاء أحد الموارد التالية لـAzure.
مورد Bing Entity Search
- متوفر من خلال بوابة Azure حتي وقت حذفك للمورد.
- استخدم مستوى التسعير المجاني لتجربة الخدمة، ورقِّها لاحقاً إلي المستوي المدفوع الخاص بعملية الإنتاج.
- تُعرض Bing Entity Search في مستويات مدفوعة لموارد Bing Search v7.
مورد متعدد الخدمات
- متوفر من خلال بوابة Azure حتي وقت حذفك للمورد.
- استخدم نفس المفتاح ونقطة النهاية للتطبيقات الخاصة بك، عبر الخدمات المعرفية المتعددة.
أنشئ المشروع وابدأ فيه
إنشاء مشروع Java جديد في IDE أو المُحرر المفضل لك، بالإضافة إلى إدخال المكتبات التالية.
import com.microsoft.azure.cognitiveservices.entitysearch.*; import com.microsoft.azure.cognitiveservices.entitysearch.implementation.EntitySearchAPIImpl; import com.microsoft.azure.cognitiveservices.entitysearch.implementation.SearchResponseInner; import com.microsoft.rest.credentials.ServiceClientCredentials; import okhttp3.Interceptor; import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.Response; import java.io.IOException; import java.util.ArrayList; import java.util.List;إنشاء متغير لمفتاح اشتراكك
String subscriptionKey = "your-key-here"
أنشاء عميل بحث
تطبيق العميل
dominantEntityLookupالذي يتطلب نقطة نهاية API ومثيل الفئةServiceClientCredentials. يمكنك استخدام نقطة النهاية العالمية أدناه، أو نقطة نهاية المجال الفرعي الموضحة في مدخل Azure لموردك.public static EntitySearchAPIImpl getClient(final String subscriptionKey) { return new EntitySearchAPIImpl("https://api.cognitive.microsoft.com/bing/v7.0/", new ServiceClientCredentials() { //... } )};لتنفيذ
ServiceClientCredentials، اتبع الخطوات التالية:تجاوز الدالة
applyCredentialsFilter()، مع كائنOkHttpClient.Builderكمعلمة.//... new ServiceClientCredentials() { @Override public void applyCredentialsFilter(OkHttpClient.Builder builder) { //... } //...داخل
applyCredentialsFilter()، استدعِbuilder.addNetworkInterceptor(). أنشئ كائنInterceptorجديداً، وتجاوز أسلوبهintercept()لاتخاذ كائنChainاعتراضي.//... builder.addNetworkInterceptor( new Interceptor() { @Override public Response intercept(Chain chain) throws IOException { //... } }); ///...داخل الدالة
interceptأنشئ متغيرات لطلبك. استخدمRequest.Builder()لإنشاء طلبك. أضف مفتاح الاشتراك إلى رأس الصفحةOcp-Apim-Subscription-Key، ثم عُدchain.proceed()إلى كائن الطلب.//... public Response intercept(Chain chain) throws IOException { Request request = null; Request original = chain.request(); Request.Builder requestBuilder = original.newBuilder() .addHeader("Ocp-Apim-Subscription-Key", subscriptionKey); request = requestBuilder.build(); return chain.proceed(request); } //...
أرسل طلباً وتلقَّ رداً
أنشئ مثيلاً جديداً من عميل البحث باستخدام مفتاح اشتراكك. استخدم
client.entities().search()لإرسال طلب بحث لاستعلامsatya nadellaالبحث، والحصول على رد.EntitySearchAPIImpl client = getClient(subscriptionKey); SearchResponseInner entityData = client.entities().search( "satya nadella", null, null, null, null, null, null, "en-us", null, null, SafeSearch.STRICT, null);إذا أُرجعت أي كيانات، فقم بتحويلها إلى قائمة. يتم التكرار من خلالها، وطباعة الكيان المهيمن.
if (entityData.entities().value().size() > 0){ // Find the entity that represents the dominant entity List<Thing> entries = entityData.entities().value(); Thing dominateEntry = null; for(Thing thing : entries) { if(thing.entityPresentationInfo().entityScenario() == EntityScenario.DOMINANT_ENTITY) { System.out.println("\r\nSearched for \"Satya Nadella\" and found a dominant entity with this description:"); System.out.println(thing.description()); break; } } }
الخطوات التالية
استخدم هذه البداية السريعة لبدء البحث عن كيانات باستخدام مكتبة عميل Bing Entity Search لـ JavaScript. على الرغم من أن Bing Entity Search لديها تطبيق REST API متوافق مع معظم لغات البرمجة، توفر مكتبة العميل وسيلة سهلة لدمج الخدمة في تطبيقاتك. يمكن العثور على التعليمات البرمجية المصدر لهذه النماذج على GitHub.
المتطلبات الأساسية
- أحدث نسخة من Node.js.
- Bing Entity Search SDK لـ JavaScript
- للتثبيت، ما عليك سوى التشغيل
npm install @azure/cognitiveservices-entitysearch
- للتثبيت، ما عليك سوى التشغيل
- فئة
CognitiveServicesCredentialsمن الحزمة@azure/ms-rest-azure-jsلمصادقة العميل.- للتثبيت، قم بتشغيل
npm install @azure/ms-rest-azure-js
- للتثبيت، قم بتشغيل
أنشئ مورد Azure.
ابدأ باستخدام Entity Search API من خلال إنشاء أحد الموارد التالية لـAzure.
مورد Bing Entity Search
- متوفر من خلال بوابة Azure حتي وقت حذفك للمورد.
- استخدم مستوى التسعير المجاني لتجربة الخدمة، ورقِّها لاحقاً إلي المستوي المدفوع الخاص بعملية الإنتاج.
- تُعرض Bing Entity Search في مستويات مدفوعة لموارد Bing Search v7.
مورد متعدد الخدمات
- متوفر من خلال بوابة Azure حتي وقت حذفك للمورد.
- استخدم نفس المفتاح ونقطة النهاية للتطبيقات الخاصة بك، عبر الخدمات المعرفية المتعددة.
قم بإنشاء التطبيق وتهيئته
أنشئ ملف JavaScript جديداً في بيئة التطوير المتكاملة أو المحرر المفضل لك، وأضف المتطلبات التالية.
const CognitiveServicesCredentials = require('@azure/ms-rest-azure-js').CognitiveServicesCredentials; const EntitySearchAPIClient = require('@azure/cognitiveservices-entitysearch');أنشئ مثيل
CognitiveServicesCredentialsلاستخدام مفتاح الاشتراك. ثم أنشئ مثيل عميل البحث معه.let credentials = new CognitiveServicesCredentials('YOUR-ACCESS-KEY'); let entitySearchApiClient = new EntitySearchAPIClient(credentials);
أرسل طلباً وتلقَّ رداً
أرسل طلب بحث للكيانات باستخدام
entitiesOperations.search(). بعد تلقي استجابة اطبعqueryContext، وعدد النتائج التي تم إرجاعها، ووصف النتيجة الأولى.entitySearchApiClient.entitiesOperations.search('seahawks').then((result) => { console.log(result.queryContext); console.log(result.entities.value); console.log(result.entities.value[0].description); }).catch((err) => { throw err; });
الخطوات التالية
استخدم هذا التشغيل السريع لبدء البحث عن كيانات باستخدام مكتبة عملاء Bing Entity Search الخاصة بـ Python. على الرغم من أن Bing Entity Search لديها تطبيق REST API متوافق مع معظم لغات البرمجة، توفر مكتبة العميل وسيلة سهلة لدمج الخدمة في تطبيقاتك. يمكن العثور على التعليمات البرمجية المصدر لهذه النماذج على GitHub.
المتطلبات الأساسية
يوصى باستخدام بيئة Python الظاهرية. يمكنك تثبيت وتفعيل البيئة الافتراضية باستخداموحدة venv. يمكنك تثبيت virtualenv مع:
python -m venv mytestenv
تثبيت مكتبة العملاء لـ Bing Entity Search مع:
cd mytestenv
python -m pip install azure-cognitiveservices-search-entitysearch
أنشئ مورد Azure.
ابدأ باستخدام Entity Search API من خلال إنشاء أحد الموارد التالية لـAzure.
مورد Bing Entity Search
- متوفر من خلال بوابة Azure حتي وقت حذفك للمورد.
- استخدم مستوى التسعير المجاني لتجربة الخدمة، ورقِّها لاحقاً إلي المستوي المدفوع الخاص بعملية الإنتاج.
- تُعرض Bing Entity Search في مستويات مدفوعة لموارد Bing Search v7.
مورد متعدد الخدمات
- متوفر من خلال بوابة Azure حتي وقت حذفك للمورد.
- استخدم نفس المفتاح ونقطة النهاية للتطبيقات الخاصة بك، عبر الخدمات المعرفية المتعددة.
إنشاء التطبيق وتهيئته
انشاء ملف Python جديداً في بيئة التطوير المتكاملة المفضلة IDE أو المحرر وإضافة بيانات الاستيراد التالية.
from azure.cognitiveservices.search.entitysearch import EntitySearchClient from azure.cognitiveservices.search.entitysearch.models import Place, ErrorResponseException from msrest.authentication import CognitiveServicesCredentialsإنشاء متغير لمفتاح الاشتراك ونقطة النهاية. إنشاء مثيل للعميل عن طريق إنشاء كائن
CognitiveServicesCredentialsجديد باستخدام مفتاحك.subscription_key = "YOUR-SUBSCRIPTION-KEY" endpoint = "YOUR-ENDPOINT" client = EntitySearchclient(endpoint=endpoint, credentials=CognitiveServicesCredentials(subscription_key))
إرسال طلب بحث وتلقي استجابة
إرسال طلب بحث إلى Bing Entity Search
client.entities.search()مع طلب بحث.entity_data = client.entities.search(query="Gibralter")إذا تم إرجاع الكيانات، فقم بتحويلها
entity_data.entities.valueإلى قائمة، ثم قم بطباعة النتيجة الأولى.if entity_data.entities.value: main_entities = [entity for entity in entity_data.entities.value if entity.entity_presentation_info.entity_scenario == "DominantEntity"] if main_entities: print(main_entities[0].description)