Hızlı başlangıç: form tanıyıcı JavaScript istemci kitaplığı SDK 'Ları v 3.0 | Önizleme

Not

Form tanıyıcı v 3.0 şu anda genel önizleme aşamasındadır. Bazı özellikler desteklenmeyebilir veya sınırlı özelliklere sahip olabilir.

Başvuru belgeleri | Kitaplık kaynak kodu | paket (NuGet) | örnekleri

JavaScript programlama dilini kullanarak Azure form tanıyıcısı 'nı kullanmaya başlayın. Azure form tanıyıcı, belgelerinizdeki form alanlarını, metinleri ve tabloları ayıklamak ve analiz etmek için makine öğrenimi kullanan bulut tabanlı bir Azure uygulanmış AI hizmetidir. İstemci kitaplığı SDK 'larımızı iş akışlarınızla ve uygulamalarınızla tümleştirerek, form tanıyıcı modellerini kolayca çağırabilirsiniz. Teknolojiyi öğrenirken ücretsiz hizmeti kullanmanızı öneririz. Ücretsiz sayfa sayısının ayda 500 ile sınırlı olduğunu unutmayın.

Form tanıyıcı özellikleri ve geliştirme seçenekleri hakkında daha fazla bilgi edinmek için genel bakış sayfamızı ziyaret edin.

Bu hızlı başlangıçta, formlardan ve belgelerden veri ve değerleri çözümlemek ve ayıklamak için aşağıdaki özellikleri kullanacaksınız:

  • 🆕 Genel belge— metni, tabloları, yapıyı, anahtar-değer çiftlerini ve adlandırılmış varlıkları çözümleyin ve ayıklayın.

  • Düzen: bir modeli eğitmenize gerek kalmadan, form belgelerindeki tablo, çizgi, sözcük ve seçim işaretlerini analiz edin ve ayıklayın.

  • Önceden oluşturulmuş fatura Önceden eğitilen bir fatura modeli kullanarak faturalardan ortak alanları çözümleyin ve ayıklayın.

Önkoşullar

  • Azure aboneliği- ücretsiz olarak bir tane oluşturun.

  • Visual Studio Code veya tercih ettiğiniz ıde 'nin en son sürümü.

  • Node.js en son LTS sürümü

  • Bilişsel hizmetler veya form tanıyıcı kaynağı. Azure aboneliğiniz olduktan sonra, anahtarınızı ve uç noktanızı almak için Azure portal bir tek hizmet veya çok hizmet bir tanıyıcı kaynağı oluşturun. F0Hizmeti denemek ve daha sonra üretime yönelik ücretli bir katmana yükseltmek için ücretsiz fiyatlandırma katmanını () kullanabilirsiniz.

    İpucu

    Tek bir uç nokta/anahtar altında birden fazla bilişsel hizmete erişmeyi planlıyorsanız bilişsel hizmetler kaynağı oluşturun. Yalnızca form tanıyıcı erişimi için form tanıyıcı kaynağı oluşturun. Azure Active Directory kimlik doğrulamasıkullanmak istiyorsanız lütfen you'lll tek hizmet kaynağı gerekeceğini unutmayın.

  • Kaynağınız dağıtıldıktan sonra Kaynağa Git' i seçin. Uygulamanızı form tanıyıcı API 'sine bağlamak için oluşturduğunuz kaynaktaki anahtar ve uç noktanın olması gerekir. Anahtarınızı ve uç noktanızı daha sonra aşağıdaki koda yapıştırarak hızlı başlangıcı:

    Ekran görüntüsü: Azure portal anahtarlar ve uç nokta konumu.

Kurulum

  1. Yeni bir Node.js uygulaması oluşturun. Konsol penceresinde (cmd, PowerShell veya Bash gibi), uygulamanız için yeni bir dizin oluşturun ve bu uygulamaya gidin.

    mkdir form-recognizer-app && cd form-recognizer-app
    
  2. npm initBir dosya ile bir düğüm uygulaması oluşturmak için komutunu çalıştırın package.json .

    npm init
    
  3. ai-form-recognizerİstemci kitaplığı NPM paketini yükler:

    npm install @azure/ai-form-recognizer@4.0.0-beta.1 @azure/identity
    
    • Uygulamanızın package.json dosyası bağımlılıklarla güncelleştirilir.
  4. Adlı bir dosya oluşturun index.js , açın ve aşağıdaki kitaplıkları ekleyin:

    const { AzureKeyCredential, DocumentAnalysisClient } = require("@azure/ai-form-recognizer");
    
  5. Kaynağınızın Azure uç noktası ve anahtarı için değişkenler oluşturun:

    const apiKey = "PASTE_YOUR_FORM_RECOGNIZER_SUBSCRIPTION_KEY_HERE";
    const endpoint = "PASTE_YOUR_FORM_RECOGNIZER_ENDPOINT_HERE";
    

Bu noktada, JavaScript uygulamanız aşağıdaki kod satırlarını içermelidir:

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";

Uygulamanıza kopyalayıp yapıştırmak için bir kod örneği seçin:

Önemli

İşiniz bittiğinde kodu koddan kaldırmayı unutmayın ve hiçbir zaman herkese açık bir şekilde nakletmeyin. Üretim için, kimlik bilgilerinizi depolamak ve erişmek üzere güvenli yöntemler kullanın. Daha fazla bilgi için bilişsel Hizmetler güvenlik makalemize bakın.

Deneyin: Genel belge modeli

  • Bu örnekte, BIR URI 'de form belge dosyası gerekir. Bu hızlı başlangıç için örnek form belgemizi kullanabilirsiniz.
  • Bir URI 'de belirli bir dosyayı analiz etmek için beginExtractGenericDocument yöntemini kullanacaksınız.
  • Dosya URI değerini formUrl dosyanın en üstüne yakın olan değişkene ekledik.
  • Desteklenen tüm alanların ve karşılık gelen türlerin listesini görmek için bkz. Genel belge kavram sayfamız.

Aşağıdaki kodu, değişkenin altındaki satırda bulunan genel belge uygulamanıza ekleyin apiKey


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);
});

Deneyin: düzen modeli

  • Bu örnekte, BIR URI 'de form belge dosyası gerekir. Bu hızlı başlangıç için örnek form belgemizi kullanabilirsiniz.
  • Dosya URI değerini formUrl dosyanın en üstüne yakın olan değişkene ekledik.
  • Bir URI 'de belirli bir dosyayı analiz etmek için beginExtractLayout yöntemini kullanacaksınız.

Aşağıdaki kodu, değişkenin altındaki satırda bulunan düzen uygulamanıza ekleyin apiKey


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);
});

Deneyin: önceden oluşturulmuş model

Bu örnek, örnek olarak bir fatura kullanarak, belirli ortak belge türlerindeki verilerin önceden eğitilen bir modelle nasıl çözümlendiğini gösterir.

  • Bu örnekte, önceden oluşturulmuş bir model kullanarak bir fatura belgesini bir belge olarak analiz ediyoruz. Bu hızlı başlangıç için örnek fatura belgemizi kullanabilirsiniz.
  • Dosyanın üst kısmındaki değişkene dosya URI değeri ekledik invoiceUrl .
  • Bir URI 'deki belirli bir dosyayı analiz etmek için beginAnalyzeDocuments yöntemini kullanacaksınız ve PrebuiltModels.Invoice model kimliği olarak geçireceğiz. Döndürülen değer, result gönderilen belge hakkında veri içeren bir nesnedir.
  • Kolaylık olması için, hizmetin döndürdüğü tüm anahtar-değer çiftleri burada gösterilmez. Desteklenen tüm alanların ve ilgili türlerin listesini görmek için, bkz. Fatura kavram sayfamız.

Fatura önceden oluşturulmuş model KIMLIĞINI seçin

Faturanız sınırlandırmadınız — her birinin, kendi desteklenen alanları kümesine sahip arasından seçim yapabileceğiniz birkaç önceden oluşturulmuş model vardır. Çözümle işlemi için kullanılacak model çözümlenecek belge türüne bağlıdır. Form tanıyıcı hizmeti tarafından şu anda desteklenen önceden oluşturulmuş modellerin model kimlikleri şunlardır:

Aşağıdaki kodu, önceden oluşturulmuş fatura uygulamanıza değişkenin altına ekleyin apiKey


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);
});

Uygulamanızı çalıştırma

  1. Form tanıyıcı uygulamanızın bulunduğu klasöre gidin (form-tanıyıcı-uygulama).

  2. Terminalinize aşağıdaki komutu yazın:

node index.js

Tebrikler! Bu hızlı başlangıçta çeşitli biçimleri farklı yollarla analiz etmek için tanıyıcı JavaScript SDK 'sını kullandınız. Daha sonra, form tanıyıcı v 3.0 API 'SI hakkında bilgi edinmek için başvuru belgelerini inceleyin.

Sonraki adımlar