Příklad: Vytvoření vlastní dovednosti Rozpoznávání formulářů (archivováno)

Tento příklad je archivovaný a není podporován. Vysvětluje, jak vytvořit vlastní dovednost Rozpoznávání formulářů pomocí jazyka C# a sady Visual Studio.

Požadavky

  • Visual Studio (libovolná edice).
  • Nejméně pět forem stejného typu. Můžete použít ukázková data uvedená v tomto průvodci.

Vytvoření prostředku Rozpoznávání formulářů

Viz Vytvoření prostředku Rozpoznávání formulářů.

Trénování modelu

Před použitím této dovednosti budete muset vytrénovat Rozpoznávání formulářů model pomocí vstupních formulářů. Použití Rozpoznávání formulářů modelů vysvětluje, jak model trénovat. Můžete použít ukázková data nebo zadat vlastní.

Po natrénování modelu zkopírujte hodnotu ID do zabezpečeného umístění.

Nastavení vlastní dovednosti

V tomto kurzu se používá projekt AnalyzeForm v úložišti Azure Search Power Skills na GitHubu. Naklonujte toto úložiště do místního počítače a přejděte na Vision/AnalyzeForm/ pro přístup k projektu. Potom v sadě Visual Studio otevřete soubor AnalyzeForm.csproj . Tento projekt vytvoří prostředek funkce Azure, který splňuje vlastní rozhraní dovedností a dá se použít k Azure Cognitive Search rozšiřování. Jako vstupy přijímá dokumenty formuláře a výstupem (jako text) jsou vámi zadané páry klíč-hodnota.

Nejprve přidejte proměnné prostředí na úrovni projektu. V levém podokně vyhledejte projekt AnalyzeForm , klikněte na něj pravým tlačítkem a vyberte Vlastnosti. V okně Vlastnosti vyberte kartu Ladění a vyhledejte pole Proměnné prostředí . Vyberte Přidat a přidejte následující proměnné:

  • FORMS_RECOGNIZER_ENDPOINT_URL s hodnotou nastavenou na adresu URL koncového bodu.
  • FORMS_RECOGNIZER_API_KEY s hodnotou nastavenou na klíč předplatného.
  • FORMS_RECOGNIZER_MODEL_ID s hodnotou nastavenou na ID modelu, který jste vytrénovali.
  • FORMS_RECOGNIZER_RETRY_DELAY s hodnotou nastavenou na 1000. Tato hodnota je doba v milisekundách, kterou bude program čekat před opakováním dotazu.
  • FORMS_RECOGNIZER_MAX_ATTEMPTS s hodnotou nastavenou na 100. Tato hodnota je počet, kolikrát bude program dotazovat službu při pokusu o získání úspěšné odpovědi.

Pak otevřete AnalyzeForm.cs a najděte fieldMappings proměnnou, která odkazuje na soubor field-mappings.json . Tento soubor (a proměnná, která na něj odkazuje) definuje seznam klíčů, které chcete extrahovat z formulářů, a vlastní popisek pro každý klíč. Například hodnota { "Address:", "address" }, { "Invoice For:", "recipient" } znamená, že skript uloží pouze hodnoty pro zjištěná Address: pole a Invoice For: tyto hodnoty "address" označí pomocí a "recipient".

Nakonec si všimněte contentType proměnné. Tento skript spustí daný model Rozpoznávání formulářů ve vzdálených dokumentech, na které odkazuje adresa URL, takže typ obsahu je application/json. Pokud chcete analyzovat místní soubory zahrnutím jejich datových proudů bajtů do požadavků HTTP, budete muset změnit contentTypetyp MIME pro váš soubor.

Testování funkce ze sady Visual Studio

Po úpravě projektu ho uložte a nastavte projekt AnalyzeForm jako spouštěcí projekt v sadě Visual Studio (pokud ještě není nastavený). Potom stisknutím klávesy F5 spusťte funkci v místním prostředí. K volání funkce použijte službu REST, jako je Postman .

Požadavek HTTP

K volání funkce provedete následující požadavek.

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

Text požadavku

Začněte šablonou textu požadavku.

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

Tady budete muset zadat adresu URL formuláře, který má stejný typ jako formuláře, se kterými jste trénovali. Pro účely testování můžete použít jeden z trénovacích formulářů. Pokud jste postupovali podle rychlého startu cURL, budou vaše formuláře umístěny v účtu Azure Blob Storage. Otevřete Průzkumník služby Azure Storage, vyhledejte soubor formuláře, klikněte na něj pravým tlačítkem a vyberte Získat sdílený přístupový podpis. V dalším dialogovém okně se zobrazí adresa URL a token SAS. Zadejte tyto řetězce do "formUrl" polí a "formSasToken" v textu požadavku.

Průzkumník služby Azure Storage; Je vybraný dokument PDF.

Pokud chcete analyzovat vzdálený dokument, který není v Azure Blob Storage, vložte jeho adresu URL do "formUrl" pole a pole nechte "formSasToken" prázdné.

Poznámka

Když je dovednost integrovaná do sady dovedností, bude adresa URL a token poskytovány službou Cognitive Search.

Odpověď

Měla by se zobrazit odpověď podobná následujícímu příkladu:

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

Publikování funkce do Azure

Pokud jste s chováním funkce spokojeni, můžete ji publikovat.

  1. V Průzkumník řešení v sadě Visual Studio klikněte pravým tlačítkem na projekt a vyberte Publikovat. Zvolte Vytvořit nové>publikování.
  2. Pokud jste ještě nepřipojili Visual Studio ke svému účtu Azure, vyberte Přidat účet....
  3. Postupujte podle výzev na obrazovce. Zadejte jedinečný název služby App Service, předplatného Azure, skupiny prostředků, plánu hostování a účtu úložiště, který chcete použít. Pokud ještě nemáte, můžete vytvořit novou skupinu prostředků, nový plán hostování a nový účet úložiště. Až budete hotovi, vyberte Vytvořit.
  4. Po dokončení nasazení si všimněte adresy URL webu. Tato adresa URL je adresa vaší aplikace funkcí v Azure. Uložte ho do dočasného umístění.
  5. V Azure Portal přejděte do skupiny prostředků a vyhledejte AnalyzeForm publikovanou funkci. V části Spravovat byste měli vidět Klíče hostitele. Zkopírujte výchozí klíč hostitele a uložte ho do dočasného umístění.

Připojení ke kanálu

Pokud chcete tuto dovednost použít v kanálu Cognitive Search, budete muset do sady dovedností přidat definici dovednosti. Následující blok JSON je ukázkovou definicí dovednosti (měli byste aktualizovat vstupy a výstupy tak, aby odrážely váš konkrétní scénář a prostředí sady dovedností). Nahraďte AzureFunctionEndpointUrl adresou URL funkce a nahraďte AzureFunctionDefaultHostKey klíčem hostitele.

{ 
  "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"
        }
      ]
    }
  ]
}