Rychlý start: Rozpoznávání formulářů javascriptových klientských knihoven SDK v3.0 | Náhled
Poznámka
Rozpoznávání formulářů verze 3.0 je aktuálně ve verzi Public Preview. Některé funkce nemusí být podporované nebo mají omezené možnosti.
Referenční dokumentace | Zdrojový kód knihovny | Ukázky balíčků (NuGet) |
Začínáme s Azure Rozpoznávání formulářů s využitím programovacího jazyka JavaScript. Azure Rozpoznávání formulářů je cloudová služba Azure Applied AI Service, která pomocí strojového učení extrahuje a analyzuje pole formuláře, text a tabulky z vašich dokumentů. Můžete snadno volat Rozpoznávání formulářů integrací našich klientských knihoven SDK do vašich pracovních postupů a aplikací. Doporučujeme používat bezplatnou službu, když se s technologií učíte. Nezapomeňte, že počet bezplatných stránek je omezený na 500 za měsíc.
Další informace o funkcích Rozpoznávání formulářů a možnostech vývoje najdete na naší stránce Přehled.
V tomto rychlém startu použijete následující funkce k analýze a extrahování dat a hodnot z formulářů a dokumentů:
🆕 obecný dokument– analýza a extrahování textu, tabulek, struktury, párů klíč-hodnota a pojmenovaných entit
Rozložení– analyzujte a extrahujte tabulky, řádky, slova a značky výběru, jako jsou přepínače a zaškrtávací políčka ve formulářích dokumentů, aniž byste trénovali model.
Předem sestavená faktura Analyzujte a extrahujte běžná pole z faktur pomocí předem natrénovaných modelů faktur.
Požadavky
Předplatné Azure – Vytvořte si ho zdarma.
Nejnovější verze integrovaného vývojového Visual Studio Code nebo upřednostňované integrované vývojové prostředí.)
Nejnovější verze LTS Node.js
Prostředek Cognitive Services nebo Rozpoznávání formulářů. Jakmile máte předplatné Azure, vytvořte prostředek služby s jednou nebo více Rozpoznávání formulářů ve službě Azure Portal a získejte svůj klíč a koncový bod. K vyzkoušejí služby můžete použít bezplatnou cenovou úroveň ( ) a později upgradovat
F0na placenou úroveň pro produkční prostředí.Tip
Pokud plánujete Cognitive Services více kognitivních služeb v rámci jednoho koncového bodu nebo klíče, vytvořte nový prostředek. Pro Rozpoznávání formulářů přístup vytvořte prostředek Rozpoznávání formulářů. Upozorňujeme, že pokud chcete použít ověřování pomocí služby , budete potřebovat Azure Active Directory službu.
Po nasazení prostředku vyberte Přejít k prostředku. Klíč a koncový bod z prostředku, který vytvoříte, potřebujete pro připojení aplikace k Rozpoznávání formulářů API. Klíč a koncový bod vložíte do kódu níže v pozdější části tohoto rychlého startu:
Nastavení
Vytvořte novou Node.js aplikace. V okně konzoly (například cmd, PowerShell nebo Bash) vytvořte nový adresář pro vaši aplikaci a přejděte do něj.
mkdir form-recognizer-app && cd form-recognizer-appSpuštěním příkazu
npm initvytvořte aplikaci Node sepackage.jsonsouborem.npm initNainstalujte
ai-form-recognizerbalíček npm klientské knihovny:npm install @azure/ai-form-recognizer@4.0.0-beta.1 @azure/identity- Soubor vaší
package.jsonaplikace se aktualizuje o závislosti.
- Soubor vaší
Vytvořte soubor s názvem , otevřete ho a
index.jspřidejte do něj následující knihovny:const { AzureKeyCredential, DocumentAnalysisClient } = require("@azure/ai-form-recognizer");Vytvořte proměnné pro koncový bod a klíč Azure vašeho prostředku:
const apiKey = "PASTE_YOUR_FORM_RECOGNIZER_SUBSCRIPTION_KEY_HERE"; const endpoint = "PASTE_YOUR_FORM_RECOGNIZER_ENDPOINT_HERE";
V tuto chvíli by vaše javascriptová aplikace měla obsahovat následující řádky kódu:
const { AzureKeyCredential, DocumentAnalysisClient } = require("@azure/ai-form-recognizer");
const endpoint = "PASTE_YOUR_FORM_RECOGNIZER_ENDPOINT_HERE";
const apiKey = "PASTE_YOUR_FORM_RECOGNIZER_SUBSCRIPTION_KEY_HERE";
Vyberte vzorový kód, který chcete zkopírovat a vložit do aplikace:
Důležité
Až budete hotovi, nezapomeňte klíč z kódu odebrat a nikdy ho veřejně ne zveřejníte. V produkčním prostředí použijte zabezpečené metody pro ukládání přihlašovacích údajů a přístup k přihlašovacím údajům. Další informace Cognitive Services v našem článku o zabezpečení.
Vyzkoušet: Obecný model dokumentu
- V tomto příkladu budete potřebovat soubor dokumentu formuláře s identifikátorem URI. Pro tento rychlý start můžete použít náš ukázkový dokument formuláře.
- K analýze daného souboru s identifikátorem URI použijete
beginExtractGenericDocumentmetodu . - Do proměnné v horní části souboru jsme přidali hodnotu
formUrlidentifikátoru URI souboru. - Seznam všech podporovaných polí a odpovídajících typů najdete na naší stránce Koncepty obecného dokumentu.
Na řádek pod proměnnou přidejte do aplikace obecného dokumentu následující apiKey kód.
const formUrl = "https://raw.githubusercontent.com/Azure-Samples/cognitive-services-REST-api-samples/master/curl/form-recognizer/sample-layout.pdf"
async function main() {
const client = new DocumentAnalysisClient(endpoint, new DefaultAzureCredential(apiKey));
const poller = await client.beginExtractGenericDocument(formUrl);
const {
keyValuePairs,
entities
} = await poller.pollUntilDone();
if (keyValuePairs.length <= 0) {
console.log("No key-value pairs were extracted from the document.");
} else {
console.log("Key-Value Pairs:");
for (const {
key,
value,
confidence
} of keyValuePairs) {
console.log("- Key :", `"${key.content}"`);
console.log(" Value:", `"${value?.content ?? "<undefined>"}" (${confidence})`);
}
}
if (entities.length <= 0) {
console.log("No entities were extracted from the document.");
} else {
console.log("Entities:");
for (const entity of entities) {
console.log(
`- "${entity.content}" ${entity.category} - ${entity.subCategory ?? "<none>"} (${
entity.confidence
})`
);
}
}
}
main().catch((error) => {
console.error("An error occurred:", error);
process.exit(1);
});
Vyzkoušet: Model rozložení
- V tomto příkladu budete potřebovat soubor dokumentu formuláře s identifikátorem URI. Pro tento rychlý start můžete použít náš ukázkový dokument formuláře.
- Do proměnné v horní části souboru jsme přidali hodnotu
formUrlidentifikátoru URI souboru. - K analýze daného souboru s identifikátorem URI použijete
beginExtractLayoutmetodu .
Do aplikace rozložení na řádek pod proměnnou přidejte následující apiKey kód.
const formUrl = "https://raw.githubusercontent.com/Azure-Samples/cognitive-services-REST-api-samples/master/curl/form-recognizer/sample-layout.pdf"
async function main() {
const client = new DocumentAnalysisClient(endpoint, new AzureKeyCredential(apiKey));
const poller = await client.beginExtractLayout(formUrl);
const {
pages,
tables
} = await poller.pollUntilDone();
if (pages.length <= 0) {
console.log("No pages were extracted from the document.");
} else {
console.log("Pages:");
for (const page of pages) {
console.log("- Page", page.pageNumber, `(unit: ${page.unit})`);
console.log(` ${page.width}x${page.height}, angle: ${page.angle}`);
console.log(` ${page.lines.length} lines, ${page.words.length} words`);
}
}
if (tables.length <= 0) {
console.log("No tables were extracted from the document.");
} else {
console.log("Tables:");
for (const table of tables) {
console.log(
`- Extracted table: ${table.columnCount} columns, ${table.rowCount} rows (${table.cells.length} cells)`
);
}
}
}
main().catch((error) => {
console.error("An error occurred:", error);
process.exit(1);
});
Vyzkoušet: Předem připravený model
Tato ukázka ukazuje, jak analyzovat data z určitých běžných typů dokumentů s předem natrénovaný model a jako příklad použít fakturu.
- V tomto příkladu analyzujeme dokument faktury pomocí předem sestavených modelů. Pro tento rychlý start můžete použít náš ukázkový dokument faktury.
- Do proměnné v horní části souboru jsme přidali
invoiceUrlhodnotu identifikátoru URI souboru. - K analýze daného souboru s identifikátorem URI použijete metodu a jako
beginAnalyzeDocumentsID modelu předátePrebuiltModels.Invoice. Vrácená hodnota jeresultobjekt obsahující data o odeslaném dokumentu. - Pro zjednodušení se tady nezobrazí všechny páry klíč-hodnota, které služba vrací. Pokud chcete zobrazit seznam všech podporovaných polí a odpovídajících typů, podívejte se na naši stránku konceptu faktury.
Volba ID modelu předem sestavené faktury
Nejste omezeni na faktury – existuje několik předem připravených modelů, ze kterých si můžete vybrat, z nichž každý má vlastní sadu podporovaných polí. Model, který se má použít pro operaci analýzy, závisí na typu dokumentu, který se má analyzovat. Tady jsou ID modelů pro předem sestavené modely, které aktuálně podporuje Rozpoznávání formulářů služby:
- prebuilt-invoice: Extrahuje text, značky výběru, tabulky, páry klíč-hodnota a klíčové informace z faktur.
- prebuilt-receipt: Extrahuje z účtenek textové a klíčové informace.
- prebuilt-idDocument:Extrahuje textové a klíčové informace z řidičský průkazů a mezinárodních pasů.
- prebuilt-businessCard:Extrahuje textové a klíčové informace z vizitek.
Do předem sestavené aplikace faktur přidejte následující kód pod apiKey proměnnou .
const {PreBuiltModels} = require("@azure/ai-form-recognizer");
// Use of PrebuiltModels.Receipt above (rather than the raw model ID), adds strong typing of the model's output
const invoiceUrl = "https://raw.githubusercontent.com/Azure-Samples/cognitive-services-REST-api-samples/master/curl/form-recognizer/sample-invoice.pdf";
async function main() {
const client = new DocumentAnalysisClient(endpoint, new AzureKeyCredential(apiKey));
const poller = await client.beginAnalyzeDocuments(PrebuiltModels.Invoice, invoiceUrl);
const {
documents: [result]
} = await poller.pollUntilDone();
if (result) {
const invoice = result.fields;
console.log("Vendor Name:", invoice.vendorName?.value);
console.log("Customer Name:", invoice.customerName?.value);
console.log("Invoice Date:", invoice.invoiceDate?.value);
console.log("Due Date:", invoice.dueDate?.value);
console.log("Items:");
for (const {
properties: item
} of invoice.items?.values ?? []) {
console.log("-", item.productCode?.value ?? "<no product code>");
console.log(" Description:", item.description?.value);
console.log(" Quantity:", item.quantity?.value);
console.log(" Date:", item.date?.value);
console.log(" Unit:", item.unit?.value);
console.log(" Unit Price:", item.unitPrice?.value);
console.log(" Tax:", item.tax?.value);
console.log(" Amount:", item.amount?.value);
}
console.log("Subtotal:", invoice.subTotal?.value);
console.log("Previous Unpaid Balance:", invoice.previousUnpaidBalance?.value);
console.log("Tax:", invoice.totalTax?.value);
console.log("Amount Due:", invoice.amountDue?.value);
} else {
throw new Error("Expected at least one receipt in the result.");
}
}
main().catch((error) => {
console.error("An error occurred:", error);
process.exit(1);
});
Spusťte aplikaci
Přejděte do složky, ve které máte aplikaci pro rozpoznávání formulářů (form-recognizer-app).
V terminálu zadejte následující příkaz:
node index.js
Gratulujeme! V tomto rychlém startu jste použili Rozpoznávání formulářů JavaScript SDK k analýze různých forem různými způsoby. Dále si projděte referenční dokumentaci a seznamte se s rozhraním API Rozpoznávání formulářů verze 3.0.