FormTrainingClient الفصل
FormTrainingClient هي واجهة Form Recognizer لاستخدامها لإنشاء النماذج المخصصة وإدارتها. يوفر أساليب لتدريب النماذج على النماذج التي تقدمها، بالإضافة إلى طرق لعرض النماذج وحذفها، والوصول إلى خصائص الحساب، ونسخ النماذج إلى مورد Form Recognizer آخر، وإنشاء نماذج من مجموعة من النماذج الموجودة المدربة باستخدام التسميات.
ملاحظة
يجب استخدام FormTrainingClient مع إصدارات <واجهة برمجة التطبيقات =v2.1.
لاستخدام إصدارات واجهة برمجة التطبيقات 2022-08-31 وما فوق، قم بإنشاء مثيل DocumentModelAdministrationClient.
- توريث
-
azure.ai.formrecognizer.aio._form_base_client_async.FormRecognizerClientBaseAsyncFormTrainingClient
الدالمنشئ
FormTrainingClient(endpoint: str, credential: AzureKeyCredential | AsyncTokenCredential, **kwargs: Any)
المعلمات
- endpoint
- str
نقاط نهاية الخدمات المعرفية المدعومة (البروتوكول واسم المضيف، على سبيل المثال: https://westus2.api.cognitive.microsoft.com).
- credential
- AzureKeyCredential أو AsyncTokenCredential
بيانات الاعتماد اللازمة للعميل للاتصال ب Azure. هذا هو مثيل AzureKeyCredential إذا كنت تستخدم مفتاح API أو بيانات اعتماد رمز مميز من identity.
- api_version
- str أو FormRecognizerApiVersion
إصدار واجهة برمجة التطبيقات للخدمة لاستخدامه للطلبات. يتم تعيينه افتراضيا إلى إصدار واجهة برمجة التطبيقات v2.1. قد يؤدي الإعداد إلى إصدار أقدم إلى تقليل توافق الميزات. لاستخدام أحدث إصدار وميزات واجهة برمجة التطبيقات المدعومة، قم بإنشاء مثيل DocumentModelAdministrationClient بدلا من ذلك.
أمثلة
إنشاء FormTrainingClient بنقطة نهاية ومفتاح API.
from azure.core.credentials import AzureKeyCredential
from azure.ai.formrecognizer.aio import FormTrainingClient
endpoint = os.environ["AZURE_FORM_RECOGNIZER_ENDPOINT"]
key = os.environ["AZURE_FORM_RECOGNIZER_KEY"]
form_training_client = FormTrainingClient(endpoint, AzureKeyCredential(key))
إنشاء FormTrainingClient باستخدام بيانات اعتماد رمز مميز.
"""DefaultAzureCredential will use the values from these environment
variables: AZURE_CLIENT_ID, AZURE_TENANT_ID, AZURE_CLIENT_SECRET
"""
from azure.ai.formrecognizer.aio import FormTrainingClient
from azure.identity.aio import DefaultAzureCredential
endpoint = os.environ["AZURE_FORM_RECOGNIZER_ENDPOINT"]
credential = DefaultAzureCredential()
form_training_client = FormTrainingClient(endpoint, credential)
الأساليب
begin_copy_model |
انسخ نموذجا مخصصا مخزنا في هذا المورد (المصدر) إلى مورد Form Recognizer الهدف المحدد للمستخدم. يجب استدعاء هذا مع مورد Form Recognizer المصدر (مع النموذج المراد نسخه). يجب توفير المعلمة الهدف من إخراج المورد الهدف من استدعاء get_copy_authorization الأسلوب . |
begin_create_composed_model |
إنشاء نموذج مكون من مجموعة من النماذج الموجودة التي تم تدريبها باستخدام التسميات. يسمح النموذج المكون لاستدعاء نماذج متعددة بمعرف نموذج واحد. عند إرسال مستند لتحليله باستخدام معرف نموذج مكون، يتم أولا تنفيذ خطوة تصنيف لتوجيهه إلى النموذج المخصص الصحيح. جديد في الإصدار v2.1: أسلوب العميل begin_create_composed_model |
begin_training |
إنشاء نموذج مخصص وتدريبه. يجب أن يتضمن الطلب معلمة training_files_url وهي عنوان URI لحاوية كائن ثنائي كبير الحجم لتخزين Azure يمكن الوصول إليه خارجيا (ويفضل أن يكون URI توقيع الوصول المشترك). لاحظ أن URI للحاوية (بدون SAS) يتم قبوله فقط عندما تكون الحاوية عامة أو يكون لها هوية مدارة تم تكوينها، راجع المزيد حول تكوين الهويات المدارة للعمل مع Form Recognizer هنا: https://docs.microsoft.com/azure/applied-ai-services/form-recognizer/managed-identities. يتم تدريب النماذج باستخدام المستندات من نوع المحتوى التالي - "application/pdf" أو "image/jpeg" أو "image/png" أو "image/tiff" أو "image/bmp". يتم تجاهل أنواع أخرى من المحتوى في الحاوية. جديد في الإصدار v2.1: وسيطة الكلمة الأساسية model_name |
close |
FormTrainingClient أغلق جلسة العمل. |
delete_model |
وضع علامة على النموذج للحذف. ستتم إزالة البيانات الاصطناعية للنموذج بشكل دائم خلال فترة محددة مسبقا. |
get_account_properties |
احصل على معلومات حول النماذج على حساب أداة التعرف على النماذج. |
get_copy_authorization |
إنشاء تخويل لنسخ نموذج مخصص إلى مورد Form Recognizer الهدف. يجب استدعاء هذا بواسطة المورد الهدف (حيث سيتم نسخ النموذج إلى) ويمكن تمرير الإخراج كمعلمة الهدف إلى begin_copy_model. |
get_custom_model |
احصل على وصف لنموذج مخصص، بما في ذلك أنواع النماذج التي يمكنه التعرف عليها، والحقول التي سيتم استخراجها لكل نوع نموذج. |
get_form_recognizer_client |
احصل على مثيل FormRecognizerClient من FormTrainingClient. |
list_custom_models |
سرد المعلومات لكل نموذج، بما في ذلك معرف النموذج وحالة النموذج ومتى تم إنشاؤه وآخر تعديل. |
send_request |
تشغيل طلب شبكة باستخدام البنية الأساسية لبرنامج ربط العمليات التجارية الحالية للعميل. يمكن أن يكون عنوان URL للطلب مرتبطا بعنوان URL الأساسي. إصدار واجهة برمجة تطبيقات الخدمة المستخدم للطلب هو نفسه إصدار العميل ما لم يتم تحديد خلاف ذلك. يتم دعم تجاوز إصدار واجهة برمجة التطبيقات المكون للعميل في عنوان URL النسبي على العميل مع إصدار واجهة برمجة التطبيقات 2022-08-31 والإصدارات الأحدث. التجاوز في عنوان URL المطلق المدعوم على العميل مع أي إصدار من واجهة برمجة التطبيقات. لا يرفع هذا الأسلوب إذا كانت الاستجابة خطأ؛ لرفع استثناء، قم باستدعاء raise_for_status() على كائن الاستجابة الذي تم إرجاعه. لمزيد من المعلومات حول كيفية إرسال طلبات مخصصة باستخدام هذا الأسلوب، راجع https://aka.ms/azsdk/dpcodegen/python/send_request. |
begin_copy_model
انسخ نموذجا مخصصا مخزنا في هذا المورد (المصدر) إلى مورد Form Recognizer الهدف المحدد للمستخدم. يجب استدعاء هذا مع مورد Form Recognizer المصدر (مع النموذج المراد نسخه). يجب توفير المعلمة الهدف من إخراج المورد الهدف من استدعاء get_copy_authorization الأسلوب .
async begin_copy_model(model_id: str, target: Dict[str, str | int], **kwargs: Any) -> AsyncLROPoller[CustomFormModelInfo]
المعلمات
تخويل النسخ الذي تم إنشاؤه من استدعاء المورد الهدف إلى get_copy_authorization.
- continuation_token
- str
رمز متابعة لإعادة تشغيل الاستقصاء من حالة محفوظة.
المرتجعات
مثيل AsyncLROPoller. استدعاء result() على كائن poller لإرجاع CustomFormModelInfo.
نوع الإرجاع
استثناءات
أمثلة
نسخ نموذج من المورد المصدر إلى المورد الهدف
source_client = FormTrainingClient(endpoint=source_endpoint, credential=AzureKeyCredential(source_key))
async with source_client:
poller = await source_client.begin_copy_model(
model_id=source_model_id,
target=target # output from target client's call to get_copy_authorization()
)
copied_over_model = await poller.result()
print("Model ID: {}".format(copied_over_model.model_id))
print("Status: {}".format(copied_over_model.status))
begin_create_composed_model
إنشاء نموذج مكون من مجموعة من النماذج الموجودة التي تم تدريبها باستخدام التسميات.
يسمح النموذج المكون لاستدعاء نماذج متعددة بمعرف نموذج واحد. عند إرسال مستند لتحليله باستخدام معرف نموذج مكون، يتم أولا تنفيذ خطوة تصنيف لتوجيهه إلى النموذج المخصص الصحيح.
جديد في الإصدار v2.1: أسلوب العميل begin_create_composed_model
async begin_create_composed_model(model_ids: List[str], **kwargs: Any) -> AsyncLROPoller[CustomFormModel]
المعلمات
- model_name
- str
اسم اختياري معرف من قبل المستخدم لإقرانه بالنموذج الخاص بك.
- continuation_token
- str
رمز متابعة لإعادة تشغيل الاستقصاء من حالة محفوظة.
المرتجعات
مثيل AsyncLROPoller. استدعاء result() على كائن poller لإرجاع CustomFormModel.
نوع الإرجاع
استثناءات
أمثلة
إنشاء نموذج مكون
from azure.core.credentials import AzureKeyCredential
from azure.ai.formrecognizer.aio import FormTrainingClient
endpoint = os.environ["AZURE_FORM_RECOGNIZER_ENDPOINT"]
key = os.environ["AZURE_FORM_RECOGNIZER_KEY"]
po_supplies = os.environ['PURCHASE_ORDER_OFFICE_SUPPLIES_SAS_URL_V2']
po_equipment = os.environ['PURCHASE_ORDER_OFFICE_EQUIPMENT_SAS_URL_V2']
po_furniture = os.environ['PURCHASE_ORDER_OFFICE_FURNITURE_SAS_URL_V2']
po_cleaning_supplies = os.environ['PURCHASE_ORDER_OFFICE_CLEANING_SUPPLIES_SAS_URL_V2']
form_training_client = FormTrainingClient(endpoint=endpoint, credential=AzureKeyCredential(key))
async with form_training_client:
supplies_poller = await form_training_client.begin_training(
po_supplies, use_training_labels=True, model_name="Purchase order - Office supplies"
)
equipment_poller = await form_training_client.begin_training(
po_equipment, use_training_labels=True, model_name="Purchase order - Office Equipment"
)
furniture_poller = await form_training_client.begin_training(
po_furniture, use_training_labels=True, model_name="Purchase order - Furniture"
)
cleaning_supplies_poller = await form_training_client.begin_training(
po_cleaning_supplies, use_training_labels=True, model_name="Purchase order - Cleaning Supplies"
)
supplies_model = await supplies_poller.result()
equipment_model = await equipment_poller.result()
furniture_model = await furniture_poller.result()
cleaning_supplies_model = await cleaning_supplies_poller.result()
models_trained_with_labels = [
supplies_model.model_id,
equipment_model.model_id,
furniture_model.model_id,
cleaning_supplies_model.model_id
]
poller = await form_training_client.begin_create_composed_model(
models_trained_with_labels, model_name="Office Supplies Composed Model"
)
model = await poller.result()
print("Office Supplies Composed Model Info:")
print("Model ID: {}".format(model.model_id))
print("Model name: {}".format(model.model_name))
print("Is this a composed model?: {}".format(model.properties.is_composed_model))
print("Status: {}".format(model.status))
print("Composed model creation started on: {}".format(model.training_started_on))
print("Creation completed on: {}".format(model.training_completed_on))
begin_training
إنشاء نموذج مخصص وتدريبه. يجب أن يتضمن الطلب معلمة training_files_url وهي عنوان URI لحاوية كائن ثنائي كبير الحجم لتخزين Azure يمكن الوصول إليه خارجيا (ويفضل أن يكون URI توقيع الوصول المشترك). لاحظ أن URI للحاوية (بدون SAS) يتم قبوله فقط عندما تكون الحاوية عامة أو يكون لها هوية مدارة تم تكوينها، راجع المزيد حول تكوين الهويات المدارة للعمل مع Form Recognizer هنا: https://docs.microsoft.com/azure/applied-ai-services/form-recognizer/managed-identities. يتم تدريب النماذج باستخدام المستندات من نوع المحتوى التالي - "application/pdf" أو "image/jpeg" أو "image/png" أو "image/tiff" أو "image/bmp". يتم تجاهل أنواع أخرى من المحتوى في الحاوية.
جديد في الإصدار v2.1: وسيطة الكلمة الأساسية model_name
async begin_training(training_files_url: str, use_training_labels: bool, **kwargs: Any) -> AsyncLROPoller[CustomFormModel]
المعلمات
- training_files_url
- str
SAS URI الخاص بحاوية Azure Storage blob. يمكن استخدام URI للحاوية (بدون SAS) إذا كانت الحاوية عامة أو تم تكوين هوية مدارة. لمزيد من المعلومات حول إعداد مجموعة بيانات التدريب، راجع: https://aka.ms/azsdk/formrecognizer/buildtrainingset.
- use_training_labels
- bool
ما إذا كنت تريد التدريب باستخدام التسميات أم لا. يجب أن تكون الملفات المسماة المقابلة موجودة في حاوية الكائن الثنائي كبير الحجم إذا تم تعيينها إلى True.
- prefix
- str
سلسلة بادئة حساسة لحالة الأحرف لتصفية المستندات في المسار المصدر للتدريب. على سبيل المثال، عند استخدام عنوان URI لكائن ثنائي كبير الحجم لتخزين Azure، استخدم البادئة لتقييد المجلدات الفرعية للتدريب.
- include_subfolders
- bool
يجب أيضا تضمين علامة للإشارة إلى ما إذا كانت المجلدات الفرعية ضمن مجموعة مجلدات البادئة ستحتاج أيضا إلى تضمينها عند البحث عن محتوى ليتم معالجته مسبقا. غير مدعوم إذا كان التدريب مع التسميات.
- model_name
- str
اسم اختياري معرف من قبل المستخدم لإقرانه بالنموذج الخاص بك.
- continuation_token
- str
رمز متابعة لإعادة تشغيل الاستقصاء من حالة محفوظة.
المرتجعات
مثيل AsyncLROPoller. استدعاء result() على كائن poller لإرجاع CustomFormModel.
نوع الإرجاع
استثناءات
لاحظ أنه إذا فشل التدريب، يتم رفع الاستثناء، ولكن لا يزال يتم إنشاء نموذج بحالة "غير صالح". يمكنك حذف هذا النموذج عن طريق الاتصال
أمثلة
تدريب نموذج (بدون تسميات) باستخدام نماذجك المخصصة.
from azure.ai.formrecognizer.aio import FormTrainingClient
from azure.core.credentials import AzureKeyCredential
endpoint = os.environ["AZURE_FORM_RECOGNIZER_ENDPOINT"]
key = os.environ["AZURE_FORM_RECOGNIZER_KEY"]
container_sas_url = os.environ["CONTAINER_SAS_URL_V2"]
async with FormTrainingClient(
endpoint, AzureKeyCredential(key)
) as form_training_client:
poller = await form_training_client.begin_training(container_sas_url, use_training_labels=False)
model = await poller.result()
# Custom model information
print("Model ID: {}".format(model.model_id))
print("Status: {}".format(model.status))
print("Model name: {}".format(model.model_name))
print("Training started on: {}".format(model.training_started_on))
print("Training completed on: {}".format(model.training_completed_on))
print("Recognized fields:")
# Looping through the submodels, which contains the fields they were trained on
for submodel in model.submodels:
print("...The submodel has form type '{}'".format(submodel.form_type))
for name, field in submodel.fields.items():
print("...The model found field '{}' to have label '{}'".format(
name, field.label
))
close
delete_model
وضع علامة على النموذج للحذف. ستتم إزالة البيانات الاصطناعية للنموذج بشكل دائم خلال فترة محددة مسبقا.
async delete_model(model_id: str, **kwargs: Any) -> None
المعلمات
المرتجعات
بلا
نوع الإرجاع
استثناءات
أمثلة
حذف نموذج مخصص.
await form_training_client.delete_model(model_id=custom_model.model_id)
try:
await form_training_client.get_custom_model(model_id=custom_model.model_id)
except ResourceNotFoundError:
print("Successfully deleted model with id {}".format(custom_model.model_id))
get_account_properties
احصل على معلومات حول النماذج على حساب أداة التعرف على النماذج.
async get_account_properties(**kwargs: Any) -> AccountProperties
المرتجعات
ملخص النماذج على الحساب - عدد النماذج المخصصة، حد النموذج المخصص.
نوع الإرجاع
استثناءات
أمثلة
احصل على خصائص حساب أداة التعرف على النماذج.
async with FormTrainingClient(
endpoint=endpoint, credential=AzureKeyCredential(key)
) as form_training_client:
# First, we see how many custom models we have, and what our limit is
account_properties = await form_training_client.get_account_properties()
print("Our account has {} custom models, and we can have at most {} custom models\n".format(
account_properties.custom_model_count, account_properties.custom_model_limit
))
get_copy_authorization
إنشاء تخويل لنسخ نموذج مخصص إلى مورد Form Recognizer الهدف. يجب استدعاء هذا بواسطة المورد الهدف (حيث سيتم نسخ النموذج إلى) ويمكن تمرير الإخراج كمعلمة الهدف إلى begin_copy_model.
async get_copy_authorization(resource_id: str, resource_region: str, **kwargs: Any) -> Dict[str, str | int]
المعلمات
- resource_region
- str
موقع مورد Form Recognizer الهدف. اسم منطقة Azure صالح مدعوم من الخدمات المعرفية. على سبيل المثال، "westus" و"eastus" وما إلى ذلك. راجع https://azure.microsoft.com/global-infrastructure/services/?products=cognitive-services التوفر الإقليمي للخدمات المعرفية.
المرتجعات
قاموس مع قيم تخويل النسخ - "modelId" و"accessToken" و"resourceId" و"resourceRegion" و"expirationDateTimeTicks".
نوع الإرجاع
استثناءات
أمثلة
تخويل المورد الهدف لتلقي النموذج المنسخ
target_client = FormTrainingClient(endpoint=target_endpoint, credential=AzureKeyCredential(target_key))
async with target_client:
target = await target_client.get_copy_authorization(
resource_region=target_region,
resource_id=target_resource_id
)
# model ID that target client will use to access the model once copy is complete
print("Model ID: {}".format(target["modelId"]))
get_custom_model
احصل على وصف لنموذج مخصص، بما في ذلك أنواع النماذج التي يمكنه التعرف عليها، والحقول التي سيتم استخراجها لكل نوع نموذج.
async get_custom_model(model_id: str, **kwargs: Any) -> CustomFormModel
المعلمات
المرتجعات
نموذج مخصص
نوع الإرجاع
استثناءات
أمثلة
احصل على نموذج مخصص بمعرف نموذج.
custom_model = await form_training_client.get_custom_model(model_id=model_info.model_id)
print("\nModel ID: {}".format(custom_model.model_id))
print("Status: {}".format(custom_model.status))
print("Model name: {}".format(custom_model.model_name))
print("Is this a composed model?: {}".format(custom_model.properties.is_composed_model))
print("Training started on: {}".format(custom_model.training_started_on))
print("Training completed on: {}".format(custom_model.training_completed_on))
get_form_recognizer_client
احصل على مثيل FormRecognizerClient من FormTrainingClient.
get_form_recognizer_client(**kwargs: Any) -> FormRecognizerClient
المرتجعات
A FormRecognizerClient
نوع الإرجاع
استثناءات
list_custom_models
سرد المعلومات لكل نموذج، بما في ذلك معرف النموذج وحالة النموذج ومتى تم إنشاؤه وآخر تعديل.
list_custom_models(**kwargs: Any) -> AsyncItemPaged[CustomFormModelInfo]
المرتجعات
AsyncItemPaged[CustomFormModelInfo]
نوع الإرجاع
استثناءات
أمثلة
سرد معلومات النموذج لكل نموذج على الحساب.
custom_models = form_training_client.list_custom_models()
print("We have models with the following IDs:")
async for model in custom_models:
print(model.model_id)
send_request
تشغيل طلب شبكة باستخدام البنية الأساسية لبرنامج ربط العمليات التجارية الحالية للعميل.
يمكن أن يكون عنوان URL للطلب مرتبطا بعنوان URL الأساسي. إصدار واجهة برمجة تطبيقات الخدمة المستخدم للطلب هو نفسه إصدار العميل ما لم يتم تحديد خلاف ذلك. يتم دعم تجاوز إصدار واجهة برمجة التطبيقات المكون للعميل في عنوان URL النسبي على العميل مع إصدار واجهة برمجة التطبيقات 2022-08-31 والإصدارات الأحدث. التجاوز في عنوان URL المطلق المدعوم على العميل مع أي إصدار من واجهة برمجة التطبيقات. لا يرفع هذا الأسلوب إذا كانت الاستجابة خطأ؛ لرفع استثناء، قم باستدعاء raise_for_status() على كائن الاستجابة الذي تم إرجاعه. لمزيد من المعلومات حول كيفية إرسال طلبات مخصصة باستخدام هذا الأسلوب، راجع https://aka.ms/azsdk/dpcodegen/python/send_request.
async send_request(request: HttpRequest, *, stream: bool = False, **kwargs) -> AsyncHttpResponse
المعلمات
المرتجعات
استجابة مكالمة الشبكة. لا يقوم بمعالجة الأخطاء في استجابتك.
نوع الإرجاع
استثناءات
Azure SDK for Python