Skip to main content Skills Marketplace Découvrez et explorez les compétences IA créées par la communauté.
Installer avec Codex ou Claude Copiez ce prompt, collez-le dans Codex, Claude ou un autre assistant, puis laissez-le vérifier la page du skill et l'installer pour vous.
Copier le promptAfficher les détails du prompt Une commande directe contourne le prompt de vérification. Examinez la source avant de l'exécuter.
npx skills add https://github.com/BEKO2210/Firstbrain --skill azure-ai-document-intelligence-tsLa commande reste sur une seule ligne. Faites défiler horizontalement pour la vérifier avant de la copier.
Vous préférez une copie locale ? Téléchargez les fichiers actuellement disponibles dans SkillsMP.
Télécharger Zip Téléchargement... Métiers associés SOC
Basé sur la classification professionnelle SOC
name azure-ai-document-intelligence-ts description Extract text, tables, and structured data from documents using prebuilt and custom models. type skill created 2026-02-27T00:00:00.000Z domain cloud-infrastructure category azure risk unknown source community tags ["skill","cloud-infrastructure","azure","document","intelligence"]
Azure Document Intelligence REST SDK for TypeScript
Extract text, tables, and structured data from documents using prebuilt and custom models.
Installation
npm install @azure-rest/ai-document-intelligence @azure/identity
Environment Variables
DOCUMENT_INTELLIGENCE_ENDPOINT=https://<resource>.cognitiveservices.azure.com
DOCUMENT_INTELLIGENCE_API_KEY=<api-key>
Authentication
Important : This is a REST client. DocumentIntelligence is a function , not a class.
DefaultAzureCredential
import DocumentIntelligence from "@azure-rest/ai-document-intelligence" ;
import { DefaultAzureCredential } from "@azure/identity" ;
const client = DocumentIntelligence (
process.env .DOCUMENT_INTELLIGENCE_ENDPOINT !,
new DefaultAzureCredential ()
);
API Key
import DocumentIntelligence from "@azure-rest/ai-document-intelligence" ;
const client = DocumentIntelligence (
process.env .DOCUMENT_INTELLIGENCE_ENDPOINT !,
{ key : process.env .DOCUMENT_INTELLIGENCE_API_KEY ! }
);
Analyze Document (URL)
import DocumentIntelligence , {
isUnexpected,
getLongRunningPoller,
AnalyzeOperationOutput
} from "@azure-rest/ai-document-intelligence" ;
initialResponse = client
. ( , )
. ({
: ,
: {
:
},
: { : }
});
( (initialResponse)) {
initialResponse. . ;
}
poller = (client, initialResponse);
result = ( poller. ()). ;
. ( , result. ?. ?. );
. ( , result. ?. ?. );
const
await
path
"/documentModels/{modelId}:analyze"
"prebuilt-layout"
post
contentType
"application/json"
body
urlSource
"https://example.com/document.pdf"
queryParameters
locale
"en-US"
if
isUnexpected
throw
body
error
const
getLongRunningPoller
const
await
pollUntilDone
body
as
AnalyzeOperationOutput
console
log
"Pages:"
analyzeResult
pages
length
console
log
"Tables:"
analyzeResult
tables
length
Analyze Document (Local File) import { readFile } from "node:fs/promises" ;
const fileBuffer = await readFile ("./document.pdf" );
const base64Source = fileBuffer.toString ("base64" );
const initialResponse = await client
.path ("/documentModels/{modelId}:analyze" , "prebuilt-invoice" )
.post ({
contentType : "application/json" ,
body : { base64Source }
});
if (isUnexpected (initialResponse)) {
throw initialResponse.body .error ;
}
const poller = getLongRunningPoller (client, initialResponse);
const result = (await poller.pollUntilDone ()).body as AnalyzeOperationOutput ;
Prebuilt Models Model ID Description prebuilt-readOCR - text and language extraction prebuilt-layoutText, tables, selection marks, structure prebuilt-invoiceInvoice fields prebuilt-receiptReceipt fields prebuilt-idDocumentID document fields prebuilt-tax.us.w2W-2 tax form fields prebuilt-healthInsuranceCard.usHealth insurance card fields prebuilt-contractContract fields prebuilt-bankStatement.usBank statement fields
Extract Invoice Fields const initialResponse = await client
.path ("/documentModels/{modelId}:analyze" , "prebuilt-invoice" )
.post ({
contentType : "application/json" ,
body : { urlSource : invoiceUrl }
});
if (isUnexpected (initialResponse)) {
throw initialResponse.body .error ;
}
const poller = getLongRunningPoller (client, initialResponse);
const result = (await poller.pollUntilDone ()).body as AnalyzeOperationOutput ;
const invoice = result.analyzeResult ?.documents ?.[0 ];
if (invoice) {
console .log ("Vendor:" , invoice.fields ?.VendorName ?.content );
console .log ("Total:" , invoice.fields ?.InvoiceTotal ?.content );
console .log ("Due Date:" , invoice.fields ?.DueDate ?.content );
}
Extract Receipt Fields const initialResponse = await client
.path ("/documentModels/{modelId}:analyze" , "prebuilt-receipt" )
.post ({
contentType : "application/json" ,
body : { urlSource : receiptUrl }
});
const poller = getLongRunningPoller (client, initialResponse);
const result = (await poller.pollUntilDone ()).body as AnalyzeOperationOutput ;
const receipt = result.analyzeResult ?.documents ?.[0 ];
if (receipt) {
console .log ("Merchant:" , receipt.fields ?.MerchantName ?.content );
console .log ("Total:" , receipt.fields ?.Total ?.content );
for (const item of receipt.fields ?.Items ?.values || []) {
console .log ("Item:" , item.properties ?.Description ?.content );
console .log ("Price:" , item.properties ?.TotalPrice ?.content );
}
}
List Document Models import DocumentIntelligence , { isUnexpected, paginate } from "@azure-rest/ai-document-intelligence" ;
const response = await client.path ("/documentModels" ).get ();
if (isUnexpected (response)) {
throw response.body .error ;
}
for await (const model of paginate (client, response)) {
console .log (model.modelId );
}
Build Custom Model const initialResponse = await client.path ("/documentModels:build" ).post ({
body : {
modelId : "my-custom-model" ,
description : "Custom model for purchase orders" ,
buildMode : "template" ,
azureBlobSource : {
containerUrl : process.env .TRAINING_CONTAINER_SAS_URL !,
prefix : "training-data/"
}
}
});
if (isUnexpected (initialResponse)) {
throw initialResponse.body .error ;
}
const poller = getLongRunningPoller (client, initialResponse);
const result = await poller.pollUntilDone ();
console .log ("Model built:" , result.body );
Build Document Classifier import { DocumentClassifierBuildOperationDetailsOutput } from "@azure-rest/ai-document-intelligence" ;
const containerSasUrl = process.env .TRAINING_CONTAINER_SAS_URL !;
const initialResponse = await client.path ("/documentClassifiers:build" ).post ({
body : {
classifierId : "my-classifier" ,
description : "Invoice vs Receipt classifier" ,
docTypes : {
invoices : {
azureBlobSource : { containerUrl : containerSasUrl, prefix : "invoices/" }
},
receipts : {
azureBlobSource : { containerUrl : containerSasUrl, prefix : "receipts/" }
}
}
}
});
if (isUnexpected (initialResponse)) {
throw initialResponse.body .error ;
}
const poller = getLongRunningPoller (client, initialResponse);
const result = (await poller.pollUntilDone ()).body as DocumentClassifierBuildOperationDetailsOutput ;
console .log ("Classifier:" , result.result ?.classifierId );
Classify Document const initialResponse = await client
.path ("/documentClassifiers/{classifierId}:analyze" , "my-classifier" )
.post ({
contentType : "application/json" ,
body : { urlSource : documentUrl },
queryParameters : { split : "auto" }
});
if (isUnexpected (initialResponse)) {
throw initialResponse.body .error ;
}
const poller = getLongRunningPoller (client, initialResponse);
const result = await poller.pollUntilDone ();
console .log ("Classification:" , result.body .analyzeResult ?.documents );
Get Service Info const response = await client.path ("/info" ).get ();
if (isUnexpected (response)) {
throw response.body .error ;
}
console .log ("Custom model limit:" , response.body .customDocumentModels .limit );
console .log ("Custom model count:" , response.body .customDocumentModels .count );
Polling Pattern import DocumentIntelligence , {
isUnexpected,
getLongRunningPoller,
AnalyzeOperationOutput
} from "@azure-rest/ai-document-intelligence" ;
const initialResponse = await client
.path ("/documentModels/{modelId}:analyze" , "prebuilt-layout" )
.post ({ contentType : "application/json" , body : { urlSource } });
if (isUnexpected (initialResponse)) {
throw initialResponse.body .error ;
}
const poller = getLongRunningPoller (client, initialResponse);
poller.onProgress ((state ) => {
console .log ("Status:" , state.status );
});
const result = (await poller.pollUntilDone ()).body as AnalyzeOperationOutput ;
Key Types import DocumentIntelligence , {
isUnexpected,
getLongRunningPoller,
paginate,
parseResultIdFromResponse,
AnalyzeOperationOutput ,
DocumentClassifierBuildOperationDetailsOutput
} from "@azure-rest/ai-document-intelligence" ;
Best Practices
Use getLongRunningPoller() - Document analysis is async, always poll for results
Check isUnexpected() - Type guard for proper error handling
Choose the right model - Use prebuilt models when possible, custom for specialized docs
Handle confidence scores - Fields have confidence values, set thresholds for your use case
Use pagination - Use paginate() helper for listing models
Prefer neural mode - For custom models, neural handles more variation than template
When to Use This skill is applicable to execute the workflow or actions described in the overview.
Connections
Domain: [[Cloud & Infrastruktur]]
Kategorie: [[Microsoft Azure]]
Navigation: [[Skills Uebersicht]], [[Home]]