JavaScript için Azure DocumentIntelligence (eski adıyla FormRecognizer) REST istemci kitaplığı - sürüm 1.0.0-beta.2
Belgelerden içerik, düzen ve yapılandırılmış verileri ayıklar.
Lütfen bu kitaplığı kullanmak için REST istemci belgelerimize yoğun bir şekilde güvenin
NOT: Form Tanıma Belge Zekası olarak yeniden markalanmıştır. Geçiş Kılavuzu'nu 'dan'a
@azure/ai-form-recognizer
@azure-rest/ai-document-intelligence
denetleyin.
Önemli bağlantılar:
- Kaynak kodu
- Paket (NPM)
- API başvuru belgeleri
- Örnekler
- Değişiklik günlüğü
- Form Tanıma Geçiş Kılavuzu
İstemci kitaplığının bu sürümü varsayılan olarak
"2024-02-29-preview"
hizmetin sürümüne ayarlanır.
Bu tabloda, SDK sürümleri ile hizmetin desteklenen API sürümleri arasındaki ilişki gösterilmektedir:
SDK sürümü | Hizmetin desteklenen API sürümü |
---|---|
1.0.0-beta.2 | 2024-02-29-önizleme |
1.0.0-beta.1 | 2023-10-31-önizleme |
Ve
"prebuilt-document"
gibi"prebuilt-businessCard"
kullanımdan kaldırılacak modeller için lütfen eski@azure/ai-form-recognizer
hizmet API'si sürümleri aracılığıyla eski kitaplığı kullanın. Daha fazla bilgi için bkz . Changelog.
Aşağıdaki tabloda her istemcinin ve desteklenen API sürümlerinin ilişkisi açıklanmaktadır:
Hizmet API'si sürümü | Desteklenen istemciler | Paket |
---|---|---|
2024-02-29-önizleme | DocumentIntelligenceClient | @azure-rest/ai-document-intelligence Sürüm 1.0.0-beta.2 |
2023-10-31-önizleme | DocumentIntelligenceClient | @azure-rest/ai-document-intelligence Sürüm 1.0.0-beta.1 |
2023-07-31 | DocumentAnalysisClient ve DocumentModelAdministrationClient | @azure/ai-form-recognizer Sürüm ^5.0.0 |
2022-08-01 | DocumentAnalysisClient ve DocumentModelAdministrationClient | @azure/ai-form-recognizer Sürüm ^4.0.0 |
Başlarken
Şu anda desteklenen ortamlar
- Node.js LTS sürümleri
Önkoşullar
- Bu paketi kullanmak için bir Azure aboneliğiniz olmalıdır.
@azure-rest/ai-document-intelligence
paketini yükleyin
ile npm
JavaScript için Azure DocumentIntelligence(eski adıFormRecognizer) REST istemcisi REST istemci kitaplığını yükleyin:
npm install @azure-rest/ai-document-intelligence
Oluşturma ve kimlik doğrulaması DocumentIntelligenceClient
Azure Active Directory (AAD) belirteci kimlik bilgilerini kullanmak için, @azure/kimlik kitaplığından elde edilen istenen kimlik bilgisi türünün bir örneğini sağlayın.
AAD ile kimlik doğrulaması yapmak için önce npm
@azure/identity
Kurulumdan sonra, hangi kimlik bilgisi@azure/identity
türünü kullanacağınızı seçebilirsiniz.
Örnek olarak, istemcinin kimliğini doğrulamak için DefaultAzureCredential kullanılabilir.
AAD uygulamasının istemci kimliği, kiracı kimliği ve istemci gizli dizisi değerlerini ortam değişkenleri olarak ayarlayın: AZURE_CLIENT_ID, AZURE_TENANT_ID, AZURE_CLIENT_SECRET
Belirteç Kimlik Bilgisi Kullanma
import DocumentIntelligence from "@azure-rest/ai-document-intelligence";
const client = DocumentIntelligence(
process.env["DOCUMENT_INTELLIGENCE_ENDPOINT"],
new DefaultAzureCredential()
);
API KEY kullanma
import DocumentIntelligence from "@azure-rest/ai-document-intelligence";
const client = DocumentIntelligence(process.env["DOCUMENT_INTELLIGENCE_ENDPOINT"], {
key: process.env["DOCUMENT_INTELLIGENCE_API_KEY"],
});
Belge Modelleri
Önceden oluşturulmuş düzeni analiz etme (urlSource)
const initialResponse = await client
.path("/documentModels/{modelId}:analyze", "prebuilt-layout")
.post({
contentType: "application/json",
body: {
urlSource:
"https://raw.githubusercontent.com/Azure/azure-sdk-for-js/6704eff082aaaf2d97c1371a28461f512f8d748a/sdk/formrecognizer/ai-form-recognizer/assets/forms/Invoice_1.pdf",
},
queryParameters: { locale: "en-IN" },
});
Önceden oluşturulmuş düzeni analiz etme (base64Source)
import fs from "fs";
import path from "path";
const filePath = path.join(ASSET_PATH, "forms", "Invoice_1.pdf");
const base64Source = fs.readFileSync(filePath, { encoding: "base64" });
const initialResponse = await client
.path("/documentModels/{modelId}:analyze", "prebuilt-layout")
.post({
contentType: "application/json",
body: {
base64Source,
},
queryParameters: { locale: "en-IN" },
});
İlk yanıttan poller oluşturmaya devam edin
import {
getLongRunningPoller,
AnalyzeResultOperationOutput,
isUnexpected,
} from "@azure-rest/ai-document-intelligence";
if (isUnexpected(initialResponse)) {
throw initialResponse.body.error;
}
const poller = await getLongRunningPoller(client, initialResponse);
const result = (await poller.pollUntilDone()).body as AnalyzeResultOperationOutput;
console.log(result);
// {
// status: 'succeeded',
// createdDateTime: '2023-11-10T13:31:31Z',
// lastUpdatedDateTime: '2023-11-10T13:31:34Z',
// analyzeResult: {
// apiVersion: '2023-10-31-preview',
// .
// .
// .
// contentFormat: 'text'
// }
// }
Markdown içerik biçimi
Varsayılan düz metinle birlikte Markdown içerik biçimiyle çıkışı destekler. Şimdilik bu yalnızca "önceden oluşturulmuş düzen" için desteklenmektedir. Markdown içerik biçimi, sohbet veya otomasyon kullanım senaryosunda LLM kullanımı için daha kolay bir biçim olarak kabul edilir.
Hizmet, Markdown biçimi için GFM belirtimini (GitHub Flavored Markdown) izler. Sonuç içerik biçimini belirtmek için "text" veya "markdown" değerine sahip yeni bir contentFormat özelliği de sunar.
import DocumentIntelligence from "@azure-rest/ai-document-intelligence";
const client = DocumentIntelligence(process.env["DOCUMENT_INTELLIGENCE_ENDPOINT"], {
key: process.env["DOCUMENT_INTELLIGENCE_API_KEY"],
});
const initialResponse = await client
.path("/documentModels/{modelId}:analyze", "prebuilt-layout")
.post({
contentType: "application/json",
body: {
urlSource:
"https://raw.githubusercontent.com/Azure/azure-sdk-for-js/6704eff082aaaf2d97c1371a28461f512f8d748a/sdk/formrecognizer/ai-form-recognizer/assets/forms/Invoice_1.pdf",
},
queryParameters: { outputContentFormat: "markdown" }, // <-- new query parameter
});
Sorgu Alanları
Bu özellik bayrağı belirtildiğinde, hizmet model tarafından geri dönüş olarak tanımlanan mevcut alanları desteklemek için queryFields sorgu parametresi aracılığıyla belirtilen alanların değerlerini daha fazla ayıklar.
await client.path("/documentModels/{modelId}:analyze", "prebuilt-layout").post({
contentType: "application/json",
body: { urlSource: "..." },
queryParameters: {
features: ["queryFields"],
queryFields: ["NumberOfGuests", "StoreNumber"],
}, // <-- new query parameter
});
Bölme Seçenekleri
Eski @azure/ai-form-recognizer
kitaplık tarafından desteklenen önceki API sürümlerinde, belge bölme ve sınıflandırma işlemi ("/documentClassifiers/{classifierId}:analyze"
) her zaman giriş dosyasını birden çok belgeye bölmeyi denedi.
Daha geniş bir senaryo kümesini etkinleştirmek için hizmet, yeni "2023-10-31-preview" hizmet sürümüyle bir "bölünmüş" sorgu parametresi sunar. Aşağıdaki değerler desteklenir:
split: "auto"
Hizmetin bölüneceği yeri belirlemesine izin verin.
split: "none"
Dosyanın tamamı tek bir belge olarak kabul edilir. Bölme işlemi yapılmaz.
split: "perPage"
Her sayfa ayrı bir belge olarak kabul edilir. Her boş sayfa kendi belgesi olarak tutulur.
Belge Sınıflandırıcıları #Build
import {
DocumentClassifierBuildOperationDetailsOutput,
getLongRunningPoller,
isUnexpected,
} from "@azure-rest/ai-document-intelligence";
const containerSasUrl = (): string =>
process.env["DOCUMENT_INTELLIGENCE_TRAINING_CONTAINER_SAS_URL"];
const initialResponse = await client.path("/documentClassifiers:build").post({
body: {
classifierId: `customClassifier${getRandomNumber()}`,
description: "Custom classifier description",
docTypes: {
foo: {
azureBlobSource: {
containerUrl: containerSasUrl(),
},
},
bar: {
azureBlobSource: {
containerUrl: containerSasUrl(),
},
},
},
},
});
if (isUnexpected(initialResponse)) {
throw initialResponse.body.error;
}
const poller = await getLongRunningPoller(client, initialResponse);
const response = (await poller.pollUntilDone())
.body as DocumentClassifierBuildOperationDetailsOutput;
console.log(response);
// {
// operationId: '31466834048_f3ee629e-73fb-48ab-993b-1d55d73ca460',
// kind: 'documentClassifierBuild',
// status: 'succeeded',
// .
// .
// result: {
// classifierId: 'customClassifier10978',
// createdDateTime: '2023-11-09T12:45:56Z',
// .
// .
// description: 'Custom classifier description'
// },
// apiVersion: '2023-10-31-preview'
// }
Bilgi Al
const response = await client.path("/info").get();
if (isUnexpected(response)) {
throw response.body.error;
}
console.log(response.body.customDocumentModels.limit);
// 20000
Belge Modellerini Listele
import { paginate } from "@azure-rest/ai-document-intelligence";
const response = await client.path("/documentModels").get();
if (isUnexpected(response)) {
throw response.body.error;
}
const modelsInAccount: string[] = [];
for await (const model of paginate(client, response)) {
console.log(model.modelId);
}
Sorun giderme
Günlüğe Kaydetme
Günlüğün etkinleştirilmesi hatalarla ilgili yararlı bilgilerin ortaya çıkarılmasına yardımcı olabilir. HTTP isteklerinin ve yanıtlarının günlüğünü görmek için ortam değişkenini AZURE_LOG_LEVEL
olarak info
ayarlayın. Alternatif olarak, günlüğü çalışma zamanında içinde çağrılarak setLogLevel
@azure/logger
etkinleştirilebilir:
const { setLogLevel } = require("@azure/logger");
setLogLevel("info");
Günlükleri etkinleştirme hakkında daha ayrıntılı yönergeler için @azure/günlükçü paketi belgelerine bakabilirsiniz.
Azure SDK for JavaScript
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin