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

Tento příklad je archivován 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. V této příručce můžete použít ukázková data.

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 model rozpoznávání formulářů pomocí vstupních formulářů. použití modelů rozpoznávání formulářů vysvětluje, jak model vytrénovat. Můžete použít ukázková data nebo zadat vlastní.

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

Nastavit vlastní funkci

Tento kurz používá projekt AnalyzeForm v úložišti Azure Search Power Skills 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 otevřete AnalyzeForm.csproj ve Visual Studiu. Tento projekt vytvoří prostředek funkce Azure, který splňuje vlastní rozhraní dovedností a dá se použít pro rozšiřování služby Azure Cognitive Search. Jako vstupy přebírá dokumenty formuláře a vypíše (jako text) páry klíč/hodnota, které zadáte.

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 myši a vyberte Vlastnosti. V okně Vlastnosti vyberte kartu Ladění a poté 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 vašeho koncového bodu.
  • FORMS_RECOGNIZER_API_KEY s hodnotou nastavenou na váš klíč předplatného.
  • FORMS_RECOGNIZER_MODEL_ID s hodnotou nastavenou na ID modelu, který jste natrénovali.
  • FORMS_RECOGNIZER_RETRY_DELAY s hodnotou nastavenou na 1 000. Tato hodnota je doba v milisekundách, po kterou program počká před opakováním dotazu.
  • FORMS_RECOGNIZER_MAX_ATTEMPTS s hodnotou nastavenou na 100. Tato hodnota je počet, kolikrát program dotazuje službu při pokusu o získání úspěšné odpovědi.

Dále otevřete AnalyzeForm.cs a vyhledejte proměnnou fieldMappings, která odkazuje na soubor field-mappings.json. Tento soubor (a proměnná, která na ni 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á pole Address: a Invoice For: a označí tyto hodnoty "address" a "recipient".

Nakonec si poznamenejte contentType proměnnou. Tento skript spustí daný model rozpoznávání formulářů na vzdálených dokumentech, na které odkazuje adresa URL, takže typ obsahu je application/json. Pokud chcete analyzovat místní soubory tak, že do požadavků HTTP zahrnete jejich bajtové streamy, budete muset změnit contentType na příslušný typ MIME pro váš soubor.

Testování funkce ze sady Visual Studio

Po úpravě projektu ho uložte a nastavte projekt AnalyzeForm jako spouštěný 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áme s základní šablonou 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 natrénovali. Pro účely testování můžete použít jeden z trénovacích formulářů. Pokud jste postupovali podle rychlého startu cURL, budou se vaše formuláře nacházet v účtu služby Azure Blob Storage. Otevřete Průzkumníka 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. Do polí "formUrl" a "formSasToken" textu požadavku zadejte tyto řetězce.

Průzkumník Azure Storage; je vybrán dokument PDF

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

Poznámka

Když je dovednost integrovaná do sady dovedností, bude adresa URL a token poskytována 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

Až budete s chováním funkce spokojeni, můžete ho publikovat.

  1. V Průzkumníka řešení v sadě Visual Studio klikněte pravým tlačítkem na projekt a vyberte Publikovat. Zvolte Vytvořit nový>Publikovat.
  2. Pokud jste visual Studio ještě nepřipojili ke svému účtu Azure, vyberte Přidat účet....
  3. Postupujte podle pokynů 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í procesu 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. Na Azure Portalpřejděte do skupiny zdrojů a vyhledejte funkci AnalyzeForm, kterou jste publikovali. V části Spravovat byste měli vidět hostitelské klíče. Zkopírujte výchozí klíč hostitele a uložte ho do dočasného umístění.

Připojení k potrubí

Pokud chcete tuto dovednost použít v kanálu kognitivního vyhledávání, budete muset do sady dovedností přidat definici dovednosti. Následující blok JSON je ukázková definice 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"
        }
      ]
    }
  ]
}