Przykład: tworzenie Form Recognizer umiejętności niestandardowej (zarchiwizowana)
Ten przykład jest zarchiwizowane i nieodpowidowane. Wyjaśniono w nim, jak utworzyć Form Recognizer umiejętności niestandardowe przy użyciu języka C# i programu Visual Studio.
Wymagania wstępne
- Visual Studio (dowolna wersja).
- Co najmniej pięć form tego samego typu. Możesz użyć przykładowych danych dostarczonych w tym przewodniku.
Tworzenie zasobu Form Recognizer
Zobacz Tworzenie zasobu Form Recognizer
Szkolenie modelu
Przed użyciem tej umiejętności musisz wytrenować model Form Recognizer przy użyciu formularzy wejściowych. Używanie modeli Form Recognizer wyjaśnia sposób trenowania modelu. Możesz użyć przykładowych danych lub podać własne.
Po wytrenowanym modelu skopiuj jego wartość identyfikatora do bezpiecznej lokalizacji.
Konfigurowanie umiejętności niestandardowych
W tym samouczku jest używany projekt AnalyzeForm w repozytorium GitHub umiejętności power usługi Azure Search . Sklonuj to repozytorium na komputer lokalny i przejdź do obszaru Vision/AnalyzeForm/ , aby uzyskać dostęp do projektu. Następnie otwórz plik AnalyzeForm.csproj w programie Visual Studio. Ten projekt tworzy zasób funkcji platformy Azure, który spełnia niestandardowy interfejs umiejętności i może służyć do Azure Cognitive Search wzbogacania. Przyjmuje ona dokumenty formularza jako dane wejściowe, a dane wyjściowe (jako tekst) pary klucz/wartość, które określisz.
Najpierw dodaj zmienne środowiskowe na poziomie projektu. Znajdź projekt AnalyzeForm w okienku po lewej stronie, kliknij go prawym przyciskiem myszy i wybierz polecenie Właściwości. W oknie Właściwości wybierz kartę Debugowanie , a następnie znajdź pole Zmienne środowiskowe . Wybierz pozycję Dodaj , aby dodać następujące zmienne:
-
FORMS_RECOGNIZER_ENDPOINT_URL
z wartością ustawioną na adres URL punktu końcowego. -
FORMS_RECOGNIZER_API_KEY
z wartością ustawioną na klucz subskrypcji. -
FORMS_RECOGNIZER_MODEL_ID
z wartością ustawioną na identyfikator wytrenowanego modelu. -
FORMS_RECOGNIZER_RETRY_DELAY
z wartością ustawioną na 1000. Ta wartość to czas w milisekundach, który program będzie czekać przed ponowieniu próby zapytania. -
FORMS_RECOGNIZER_MAX_ATTEMPTS
z wartością ustawioną na 100. Ta wartość to liczba, ile razy program wysyła zapytanie do usługi podczas próby uzyskania pomyślnej odpowiedzi.
Następnie otwórz plik AnalyzeForm.cs i znajdź zmienną fieldMappings
, która odwołuje się do pliku field-mappings.json . Ten plik (i zmienna, do której się odwołuje) definiuje listę kluczy, które chcesz wyodrębnić z formularzy i etykietę niestandardową dla każdego klucza. Na przykład wartość { "Address:", "address" }, { "Invoice For:", "recipient" }
oznacza, że skrypt zapisze tylko wartości wykrytych Address:
i Invoice For:
pól, a następnie oznaczy te wartości odpowiednio wartościami "address"
i "recipient"
.
Na koniec zanotuj zmienną contentType
. Ten skrypt uruchamia dany model Form Recognizer w dokumentach zdalnych, do których odwołuje się adres URL, więc typ zawartości to application/json
. Jeśli chcesz analizować pliki lokalne, uwzględniając ich strumienie bajtów w żądaniach HTTP, musisz zmienić typ contentType
na odpowiedni typ MIME dla pliku.
Testowanie funkcji z poziomu programu Visual Studio
Po zmodyfikowaniu projektu zapisz go i ustaw projekt AnalyzeForm jako projekt startowy w programie Visual Studio (jeśli nie został jeszcze ustawiony). Następnie naciśnij klawisz F5 , aby uruchomić funkcję w środowisku lokalnym. Wywołanie funkcji za pomocą usługi REST, takiej jak Postman .
Żądanie HTTP
Aby wywołać funkcję, należy wykonać następujące żądanie.
POST http://localhost:7071/api/analyze-form
Treść żądania
Rozpocznij od szablonu treści żądania
{
"values": [
{
"recordId": "record1",
"data": {
"formUrl": "<your-form-url>",
"formSasToken": "<your-sas-token>"
}
}
]
}
W tym miejscu należy podać adres URL formularza, który ma ten sam typ, co wytrenowane formularze. Do celów testowych można użyć jednej z formularzy szkoleniowych. Jeśli wykonano czynności opisane w przewodniku Szybki start dla programu cURL, formularze będą znajdować się na koncie Azure Blob Storage. Otwórz Eksplorator usługi Azure Storage, znajdź plik formularza, kliknij go prawym przyciskiem myszy i wybierz polecenie Pobierz sygnaturę dostępu współdzielonego. W następnym oknie dialogowym zostanie wyświetlony adres URL i token SYGNATURy dostępu współdzielonego. Wprowadź te ciągi odpowiednio w "formUrl"
polach i "formSasToken"
treści żądania.
Jeśli chcesz przeanalizować zdalny dokument, który nie znajduje się w Azure Blob Storage, wklej jego adres URL w "formUrl"
polu i pozostaw "formSasToken"
pole puste.
Uwaga
Po zintegrowaniu umiejętności z zestawem umiejętności adres URL i token będą udostępniane przez usługę Cognitive Search.
Reakcja
Powinna zostać wyświetlona odpowiedź podobna do poniższego przykładu:
{
"values": [
{
"recordId": "record1",
"data": {
"address": "1111 8th st. Bellevue, WA 99501 ",
"recipient": "Southridge Video 1060 Main St. Atlanta, GA 65024 "
},
"errors": null,
"warnings": null
}
]
}
Publikowanie funkcji na platformie Azure
Gdy zachowanie funkcji jest zadowalające, możesz ją opublikować.
- W Eksplorator rozwiązań w programie Visual Studio kliknij prawym przyciskiem myszy projekt i wybierz polecenie Publikuj. Wybierz pozycję Utwórz nowe>publikowanie.
- Jeśli program Visual Studio nie został jeszcze połączony z kontem platformy Azure, wybierz pozycję Dodaj konto....
- Postępuj zgodnie z instrukcjami wyświetlanymi na ekranie. Określ unikatową nazwę usługi App Service, subskrypcję platformy Azure, grupę zasobów, plan hostingu i konto magazynu, którego chcesz użyć. Możesz utworzyć nową grupę zasobów, nowy plan hostingu i nowe konto magazynu, jeśli jeszcze ich nie masz. Po zakończeniu wybierz pozycję Utwórz.
- Po zakończeniu wdrażania zwróć uwagę na adres URL witryny. Ten adres URL to adres aplikacji funkcji na platformie Azure. Zapisz go w lokalizacji tymczasowej.
- W Azure Portal przejdź do grupy zasobów i wyszukaj opublikowaną
AnalyzeForm
funkcję. W sekcji Zarządzanie powinny być widoczne klucze hosta. Skopiuj domyślny klucz hosta i zapisz go w lokalizacji tymczasowej.
Nawiązywanie połączenia z potokiem
Aby użyć tej umiejętności w potoku usługi Cognitive Search, musisz dodać definicję umiejętności do zestawu umiejętności. Poniższy blok JSON to przykładowa definicja umiejętności (należy zaktualizować dane wejściowe i wyjściowe w celu odzwierciedlenia konkretnego scenariusza i środowiska zestawu umiejętności). Zastąp AzureFunctionEndpointUrl
ciąg adresem URL funkcji i zastąp AzureFunctionDefaultHostKey
ciąg kluczem hosta.
{
"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"
}
]
}
]
}