Azure DocumentIntelligence (korábbi nevén FormRecognizer) REST-ügyfélkódtár JavaScripthez – 1.0.0-beta.2-es verzió
Tartalom, elrendezés és strukturált adatok kinyerése a dokumentumokból.
A kódtár használatához nagy mértékben támaszkodjon a REST-ügyfél dokumentációjára
MEGJEGYZÉS: Form Recognizer át lett alakítva a Dokumentumintelligencia szolgáltatásra. Ellenőrizze a migrálási útmutatót a-ról
@azure/ai-form-recognizer
a-ra@azure-rest/ai-document-intelligence
.
Főbb hivatkozások:
- Forráskód
- Csomag (NPM)
- API-referenciadokumentáció
- Példák
- Változásnapló
- Migrálási útmutató a Form Recognizer-ból
Az ügyfélkódtár ezen verziója alapértelmezés szerint a
"2024-02-29-preview"
szolgáltatás verziójára van bekapcsolva.
Ez a táblázat a szolgáltatás SDK-verziói és támogatott API-verziói közötti kapcsolatot mutatja be:
SDK verziója | A szolgáltatás támogatott API-verziója |
---|---|
1.0.0-beta.2 | 2024-02-29-preview |
1.0.0-beta.1 | 2023-10-31-preview |
Támaszkodjon a régebbi
@azure/ai-form-recognizer
kódtárra a régebbi szolgáltatási API-verziókon keresztül a kivezetett modellekhez, például"prebuilt-businessCard"
a és"prebuilt-document"
a verzióhoz. További információ: Változásnapló.
Az alábbi táblázat az egyes ügyfelek és a támogatott API-verzió(k) kapcsolatát ismerteti:
A Service API verziója | Támogatott kliensek | Csomag |
---|---|---|
2024-02-29-preview | DocumentIntelligenceClient | @azure-rest/ai-document-intelligence Változat 1.0.0-beta.2 |
2023-10-31-preview | DocumentIntelligenceClient | @azure-rest/ai-document-intelligence Változat 1.0.0-beta.1 |
2023-07-31 | DocumentAnalysisClient és DocumentModelAdministrationClient | @azure/ai-form-recognizer Változat ^5.0.0 |
2022-08-01 | DocumentAnalysisClient és DocumentModelAdministrationClient | @azure/ai-form-recognizer Változat ^4.0.0 |
Első lépések
Jelenleg támogatott környezetek
- A Node.js LTS-verziói
Előfeltételek
- A csomag használatához Azure-előfizetéssel kell rendelkeznie.
Telepítse a(z) @azure-rest/ai-document-intelligence
csomagot
Telepítse a JavaScripthez készült Azure DocumentIntelligence(korábbi nevénFormRecognizer) REST-ügyfél REST ügyféloldali kódtárát a következővel npm
:
npm install @azure-rest/ai-document-intelligence
Hozzon létre és hitelesítsen egy DocumentIntelligenceClient
Az Azure Active Directory- (AAD-) jogkivonat hitelesítő adatainak használatához adja meg a kívánt hitelesítőadat-típus egy példányát a @azure/identitástárból.
Az AAD-vel való hitelesítéshez először npm
telepítenie kell a @azure/identity
A beállítás után kiválaszthatja, hogy milyen típusú hitelesítő@azure/identity
adatokat használjon.
Példaként a DefaultAzureCredential használható az ügyfél hitelesítésére.
Állítsa be az AAD-alkalmazás ügyfél-azonosítójának, bérlőazonosítójának és titkos ügyfélkulcsának értékeit környezeti változókként: AZURE_CLIENT_ID, AZURE_TENANT_ID, AZURE_CLIENT_SECRET
Jogkivonat hitelesítő adatainak használata
import DocumentIntelligence from "@azure-rest/ai-document-intelligence";
const client = DocumentIntelligence(
process.env["DOCUMENT_INTELLIGENCE_ENDPOINT"],
new DefaultAzureCredential()
);
API-KULCS használata
import DocumentIntelligence from "@azure-rest/ai-document-intelligence";
const client = DocumentIntelligence(process.env["DOCUMENT_INTELLIGENCE_ENDPOINT"], {
key: process.env["DOCUMENT_INTELLIGENCE_API_KEY"],
});
Dokumentummodellek
Előre összeállított elrendezés elemzése (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" },
});
Előre összeállított elrendezés elemzése (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" },
});
A lekérdezés kezdeti válaszból történő létrehozásának folytatása
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-tartalomformátum
Támogatja a Markdown-tartalomformátumú kimenetet az alapértelmezett egyszerű szöveggel együtt. Ez egyelőre csak az "előre összeállított elrendezés" esetében támogatott. A Markdown-tartalomformátum az LLM-használat szempontjából barátságosabb formátum a csevegési vagy automatizálási használati forgatókönyvekben.
A szolgáltatás a GFM-specifikációt (GitHub Flavored Markdown) követi Markdown formátumban. Emellett egy új contentFormat tulajdonságot is bevezet a "text" vagy a "markdown" értékkel az eredmény tartalomformátumának jelzéséhez.
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
});
Lekérdezésmezők
Ha ez a funkciójelölő meg van adva, a szolgáltatás tovább kinyeri a queryFields lekérdezési paraméterrel megadott mezők értékeit, hogy kiegészítse a modell által tartalékként definiált meglévő mezőket.
await client.path("/documentModels/{modelId}:analyze", "prebuilt-layout").post({
contentType: "application/json",
body: { urlSource: "..." },
queryParameters: {
features: ["queryFields"],
queryFields: ["NumberOfGuests", "StoreNumber"],
}, // <-- new query parameter
});
Felosztási beállítások
A régebbi kódtár által támogatott korábbi @azure/ai-form-recognizer
API-verziókban a dokumentumfelosztási és -besorolási művelet ("/documentClassifiers/{classifierId}:analyze"
) mindig több dokumentumra próbálta felosztani a bemeneti fájlt.
A forgatókönyvek szélesebb halmazának lehetővé tétele érdekében a szolgáltatás bevezet egy "split" lekérdezési paramétert az új "2023-10-31-preview" szolgáltatásverzióval. A következő értékek támogatottak:
split: "auto"
A szolgáltatás határozza meg a felosztás helyét.
split: "none"
A rendszer a teljes fájlt egyetlen dokumentumként kezeli. Nem történik felosztás.
split: "perPage"
Minden lap külön dokumentumként lesz kezelve. Minden üres lap saját dokumentumként van tárolva.
Dokumentumosztályozók #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'
// }
Információ lekérése
const response = await client.path("/info").get();
if (isUnexpected(response)) {
throw response.body.error;
}
console.log(response.body.customDocumentModels.limit);
// 20000
Dokumentummodellek listázása
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);
}
Hibaelhárítás
Naplózás
A naplózás engedélyezése hasznos információkat deríthet fel a hibákról. A HTTP-kérések és -válaszok naplójának megtekintéséhez állítsa a környezeti változót értékre AZURE_LOG_LEVEL
info
. A naplózás futásidőben is engedélyezhető a következő hívásával setLogLevel
@azure/logger
:
const { setLogLevel } = require("@azure/logger");
setLogLevel("info");
A naplók engedélyezésére vonatkozó részletesebb utasításokért tekintse meg a @azure/logger csomag dokumentációját.
Azure SDK for JavaScript