Share via


Örnek: Form Tanıma özel beceri oluşturma (Arşivlenmiş)

Bu örnek arşivlenmiş ve destek dışıdır. C# ve Visual Studio kullanarak Form Tanıma özel becerinin nasıl oluşturulacağı açıklanmıştır.

Önkoşullar

  • Visual Studio (herhangi bir sürüm).
  • Aynı türde en az beş form. Bu kılavuzla sağlanan örnek verileri kullanabilirsiniz.

Form Tanıma kaynağı oluşturma

Bkz. Form Tanıma kaynağı oluşturma

Modelinizi eğitme

Bu beceriyi kullanmadan önce giriş formlarınızla bir Form Tanıma modeli eğitmeniz gerekir. Form Tanıma modellerini kullanma, modelin nasıl eğitilmiş olduğunu açıklar. Örnek verileri kullanabilir veya kendi verilerinizi sağlayabilirsiniz.

Model eğitildikten sonra kimlik değerini güvenli bir konuma kopyalayın.

Özel beceriyi ayarlama

Bu öğreticide Azure Search Power Skills GitHub deposundaki AnalyzeForm projesi kullanılmaktadır. Bu depoyu yerel makinenize kopyalayın ve projeye erişmek için Görüntü İşleme/AnalizFormu/ bölümüne gidin. Ardından Visual Studio'da AnalyzeForm.csproj dosyasını açın. Bu proje, özel beceri arabirimini karşılayan ve Azure Bilişsel Arama zenginleştirme için kullanılabilen bir Azure İşlevi kaynağı oluşturur. Form belgelerini girdi olarak alır ve belirttiğiniz anahtar/değer çiftlerini (metin olarak) çıkarır.

İlk olarak proje düzeyinde ortam değişkenleri ekleyin. Sol bölmede AnalyzeForm projesini bulun, sağ tıklayın ve Özellikler'i seçin. Özellikler penceresinde Hata Ayıkla sekmesini seçin ve ortam değişkenleri alanını bulun. Aşağıdaki değişkenleri eklemek için Ekle'yi seçin:

  • FORMS_RECOGNIZER_ENDPOINT_URL değerini uç nokta URL'nize ayarlayın.
  • FORMS_RECOGNIZER_API_KEY değerini abonelik anahtarınız olarak ayarlayın.
  • FORMS_RECOGNIZER_MODEL_ID değerini eğitmiş olduğunuz modelin kimliği olarak ayarlayın.
  • FORMS_RECOGNIZER_RETRY_DELAY değerini 1000 olarak ayarlayın. Bu değer, programın sorguyu yeniden denemeden önce bekleyeceği milisaniye cinsinden süredir.
  • FORMS_RECOGNIZER_MAX_ATTEMPTS değerini 100 olarak ayarlayın. Bu değer, başarılı bir yanıt almaya çalışırken programın hizmeti kaç kez sorgulayacak olduğunu gösterir.

Ardından AnalyzeForm.cs dosyasını açın ve field-mappings.json dosyasına başvuran değişkeni bulunfieldMappings. Bu dosya (ve buna başvuran değişken), formlarınızdan ayıklamak istediğiniz anahtarların listesini ve her anahtar için özel bir etiketi tanımlar. Örneğin değerinin { "Address:", "address" }, { "Invoice For:", "recipient" } olması, betiğin yalnızca algılanan Address: ve alanların değerlerini kaydedeceği ve Invoice For: bu değerleri sırasıyla ve "recipient"ile "address" etiketleeceği anlamına gelir.

Son olarak değişkenine dikkat edin contentType . Bu betik verilen Form Tanıma modelini URL tarafından başvuruda bulunan uzak belgelerde çalıştırdığından içerik türü olurapplication/json. Yerel dosyaları bayt akışlarını HTTP isteklerine ekleyerek analiz etmek istiyorsanız, dosyasını dosyanız için uygun MIME türüne değiştirmeniz contentType gerekir.

Visual Studio'dan işlevi test etme

Projenizi düzenledikten sonra kaydedin ve AnalyzeForm projesini Visual Studio'da başlangıç projesi olarak ayarlayın (henüz ayarlanmamışsa). Ardından işlevi yerel ortamınızda çalıştırmak için F5 tuşuna basın. İşlevi çağırmak için Postman gibi bir REST hizmeti kullanın.

HTTP isteği

İşlevi çağırmak için aşağıdaki isteği yapacaksınız.

POST http://localhost:7071/api/analyze-form

İstek gövdesi

İstek gövdesi şablonuyla başlayın

{
    "values": [
        {
            "recordId": "record1",
            "data": { 
                "formUrl": "<your-form-url>",
                "formSasToken": "<your-sas-token>"
            }
        }
    ]
}

Burada, eğitilen formlarla aynı türde bir formun URL'sini sağlamanız gerekir. Test amacıyla eğitim formlarınızdan birini kullanabilirsiniz. cURL hızlı başlangıcını izlediyseniz formlarınız bir Azure Blob Depolama hesabında yer alır. Azure Depolama Gezgini açın, form dosyasını bulun, sağ tıklayın ve Paylaşılan Erişim İmzası Al'ı seçin. Sonraki iletişim kutusu penceresi bir URL ve SAS belirteci sağlar. Bu dizeleri "formUrl" sırasıyla istek gövdesinizin ve "formSasToken" alanlarına girin.

Azure depolama gezgini; pdf belgesi seçildi

Azure Blob Depolama içinde olmayan bir uzak belgeyi analiz etmek istiyorsanız, url'sini "formUrl" alana yapıştırın ve alanı boş bırakın"formSasToken".

Not

Beceri bir beceri kümesiyle tümleştirildiğinde, URL ve belirteç Bilişsel Arama tarafından sağlanır.

Yanıt

Aşağıdaki örneğe benzer bir yanıt görmeniz gerekir:

{
    "values": [
        {
            "recordId": "record1",
            "data": {
                "address": "1111 8th st. Bellevue, WA 99501 ",
                "recipient": "Southridge Video 1060 Main St. Atlanta, GA 65024 "
            },
            "errors": null,
            "warnings": null
        }
    ]
}

İşlevi Azure’a yayımlama

İşlev davranışından memnun olduğunuzda, bunu yayımlayabilirsiniz.

  1. Visual Studio'daki Çözüm Gezgini projeye sağ tıklayın ve Yayımla'yı seçin. YeniYayımlaOluştur'u> seçin.
  2. Visual Studio'yu Henüz Azure hesabınıza bağlamadıysanız Hesap ekle...'yi seçin.
  3. Ekrandaki istemleri izleyin. Uygulama hizmetiniz, Azure aboneliğiniz, kaynak grubunuz, barındırma planınız ve kullanmak istediğiniz depolama hesabınız için benzersiz bir ad belirtin. Henüz yoksa yeni bir kaynak grubu, yeni bir barındırma planı ve yeni bir depolama hesabı oluşturabilirsiniz. İşiniz bittiğinde Oluştur'u seçin.
  4. Dağıtım tamamlandıktan sonra Site URL'sine dikkat edin. Bu URL, Azure'daki işlev uygulamanızın adresidir. Geçici bir konuma kaydedin.
  5. Azure portal Kaynak Grubu'na gidin ve yayımladığınız İşlevi AnalyzeForm arayın. Yönet bölümünde Konak Anahtarları'nı görmeniz gerekir. Varsayılan konak anahtarını kopyalayın ve geçici bir konuma kaydedin.

İşlem hattınıza bağlanma

Bu beceriyi bilişsel arama işlem hattında kullanmak için beceri kümenize bir beceri tanımı eklemeniz gerekir. Aşağıdaki JSON bloğu örnek bir beceri tanımıdır (girişleri ve çıkışları kendi senaryonuzu ve beceri kümesi ortamınızı yansıtacak şekilde güncelleştirmeniz gerekir). değerini AzureFunctionEndpointUrl işlev URL'nizle, yerine ana bilgisayar anahtarınızı yazın AzureFunctionDefaultHostKey .

{ 
  "description":"Skillset that invokes the Form Recognizer custom skill",
  "skills":[ 
    "[... your existing skills go here]",
    { 
      "@odata.type":"#Microsoft.Skills.Custom.WebApiSkill",
      "name":"formrecognizer",
      "description":"Extracts fields from a form using a pre-trained form recognition model",
      "uri":"[AzureFunctionEndpointUrl]/api/analyze-form?code=[AzureFunctionDefaultHostKey]",
      "httpMethod":"POST",
      "timeout":"PT30S",
      "context":"/document",
      "batchSize":1,
      "inputs":[ 
        { 
          "name":"formUrl",
          "source":"/document/metadata_storage_path"
        },
        { 
          "name":"formSasToken",
          "source":"/document/metadata_storage_sas_token"
        }
      ],
      "outputs":[ 
        { 
          "name":"address",
          "targetName":"address"
        },
        { 
          "name":"recipient",
          "targetName":"recipient"
        }
      ]
    }
  ]
}