Skip to main content

azure-document-intelligence

Azure Document Intelligence (formerly Form Recognizer) specialist. Extract structured data from PDFs, invoices, receipts, ID documents, tax forms, and custom documents using prebuilt and custom models. Actions: analyze, extract, classify, train, batch. Triggers: 'extract PDF', 'analyze document', 'OCR invoice', 'read receipt', 'process tax form', 'document intelligence', 'form recognizer', 'PDF extraction', 'batch document analysis'.

Ir a la instalación

Datos de origen

Repositorio
Insightpulseai/odoo
Última actividad en el origen
10 de abril de 2026 a las 07:16
Idioma detectado de SKILL.md
inglés
Estrellas
6
Forks
2

Opciones de instalación

De forma predeterminada está seleccionado el prompt que primero revisa el origen. Puedes cambiar a un comando directo o descargar una copia local.

Revisa los archivos de origen

Lee SKILL.md y los archivos complementarios que muestra SkillsMP antes de decidir si quieres instalarlo.

Explorador de archivos
2 archivos

Mostrando SKILL.md

SKILL.md
Instrucciones de origen · Vista previa de solo lectura
name
azure-document-intelligence
description
Azure Document Intelligence (formerly Form Recognizer) specialist. Extract structured data from PDFs, invoices, receipts, ID documents, tax forms, and custom documents using prebuilt and custom models. Actions: analyze, extract, classify, train, batch. Triggers: 'extract PDF', 'analyze document', 'OCR invoice', 'read receipt', 'process tax form', 'document intelligence', 'form recognizer', 'PDF extraction', 'batch document analysis'.
version
1.0.0
tags
["azure","document-intelligence","pdf","ocr","form-recognizer","invoices","receipts","tax-forms","custom-models"]
allowed-tools
["Bash","Read","Write","Edit","Glob","Grep"]
# Azure Document Intelligence Specialist skill for extracting structured data from documents using Azure Document Intelligence (formerly Azure Form Recognizer). Covers prebuilt models, custom models, layout analysis, and batch processing. ## When to Use This Skill - Extracting structured data from PDFs, images, or scanned documents - Processing invoices, receipts, ID documents, or tax forms - Building custom document extraction models (template or neural) - Classifying documents by type before extraction - Running batch analysis on large document sets - Implementing RAG pipelines with document chunking - Generating searchable PDFs from scanned images ## How to Use (Prompt Patterns) - "Extract invoice fields from this PDF using Document Intelligence" - "Set up a custom neural model for contract extraction" - "Classify incoming documents by type (invoice, receipt, contract)" - "Process a batch of W-2 tax forms and extract employee data" - "Analyze document layout and extract tables" - "Build a RAG pipeline with Document Intelligence for PDF chunking" --- ## Service Overview **Azure Document Intelligence** is a cloud-based AI service that uses ML to extract text, key-value pairs, tables, and structures from documents. - **API versions**: v4.0 (2024-11-30 GA), v3.1 (2023-07-31 GA) - **Endpoint pattern**: `https://{endpoint}/documentintelligence/documentModels/{modelId}:analyze?api-version=2024-11-30` - **SDKs**: Python, .NET/C#, Java, JavaScript/TypeScript - **Studio**: https://documentintelligence.ai.azure.com/studio --- ## Prebuilt Models Reference ### Document Analysis Models | Model ID | Purpose | Key Fields | |----------|---------|------------| | `prebuilt-read` | OCR — text extraction, language detection | pages, words, lines, languages | | `prebuilt-layout` | Tables, figures, sections, structure | tables, paragraphs, figures, sections | | `prebuilt-document` | General key-value pairs + structure | key_value_pairs, entities, tables | ### Financial Models | Model ID | Purpose | Key Fields | |----------|---------|------------| | `prebuilt-invoice` | Invoices (AR/AP) | vendor_name, invoice_total, line_items, due_date, purchase_order | | `prebuilt-receipt` | Receipts (retail, meal, etc.) | merchant_name, total, items, transaction_date, tip | | `prebuilt-bankStatement` | Bank statements | account_number, transactions, beginning_balance, ending_balance | | `prebuilt-check` | Checks | payee, amount, date, memo, routing_number | | `prebuilt-payStub` | Pay stubs | employee_name, gross_pay, net_pay, deductions, pay_period | | `prebuilt-creditCard` | Credit card statements | card_holder, transactions, statement_balance | ### Tax Form Models | Model ID | Purpose | Key Fields | |----------|---------|------------| | `prebuilt-tax.us.w2` | W-2 Wage and Tax | employee, employer, wages_tips, federal_tax_withheld | | `prebuilt-tax.us.1040` | Form 1040 | filing_status, adjusted_gross_income, total_tax | | `prebuilt-tax.us.1098` | Mortgage Interest | lender, borrower, mortgage_interest_received | | `prebuilt-tax.us.1099` | 1099 variants (NEC, MISC, etc.) | payer, recipient, nonemployee_compensation | | `prebuilt-tax.us.1095` | Health coverage | covered_individuals, months_covered | ### Identity Models | Model ID | Purpose | Key Fields | |----------|---------|------------| | `prebuilt-idDocument` | ID cards, passports, driver licenses | first_name, last_name, date_of_birth, document_number, expiration_date | | `prebuilt-healthInsuranceCard.us` | US health insurance cards | member_id, group_number, plan_name, copays | | `prebuilt-marriageCertificate.us` | Marriage certificates | spouse_names, date_of_marriage, county | ### Contract Model | Model ID | Purpose | Key Fields | |----------|---------|------------| | `prebuilt-contract` | Contracts and agreements | parties, execution_date, renewal_date, jurisdiction, terms | --- ## Custom Models ### Model Types | Type | Best For | Training Data | Accuracy | |------|----------|---------------|----------| | **Template** | Fixed-layout forms (government, standardized) | 5+ labeled samples | High for fixed layouts | | **Neural** | Variable-layout documents (invoices from different vendors) | 5+ labeled samples | High across layouts | | **Composed** | Multi-form routing (auto-selects sub-model) | Component models | Depends on components | | **Classification** | Document type routing before extraction | 5+ samples per class | High | ### Training Workflow ```bash # 1. Upload training data to Azure Blob Storage az storage blob upload-batch \ --destination training-data \ --source ./training-documents/ \ --account-name $STORAGE_ACCOUNT # 2. Label documents in Document Intelligence Studio # https://documentintelligence.ai.azure.com/studio # 3. Train model via API curl -X POST "${ENDPOINT}/documentintelligence/documentModels:build?api-version=2024-11-30" \ -H "Ocp-Apim-Subscription-Key: ${DI_KEY}" \ -H "Content-Type: application/json" \ -d '{ "modelId": "custom-contract-v1", "buildMode": "neural", "azureBlobSource": { "containerUrl": "https://${STORAGE_ACCOUNT}.blob.core.windows.net/training-data?${SAS_TOKEN}" } }' ``` --- ## API Integration Patterns ### Python SDK (Recommended) ```python import os from azure.ai.documentintelligence import DocumentIntelligenceClient from azure.core.credentials import AzureKeyCredential endpoint = os.getenv("AZURE_DI_ENDPOINT") key = os.getenv("AZURE_DI_KEY") client = DocumentIntelligenceClient(endpoint, AzureKeyCredential(key)) # Analyze invoice with open("invoice.pdf", "rb") as f: poller = client.begin_analyze_document("prebuilt-invoice", body=f) result = poller.result() for doc in result.documents: vendor = doc.fields.get("VendorName") total = doc.fields.get("InvoiceTotal") print(f"Vendor: {vendor.content}, Total: {total.content}") ``` ### REST API ```bash # Submit document for analysis curl -X POST "${ENDPOINT}/documentintelligence/documentModels/prebuilt-invoice:analyze?api-version=2024-11-30" \ -H "Ocp-Apim-Subscription-Key: ${DI_KEY}" \ -H "Content-Type: application/pdf" \ --data-binary @invoice.pdf # Poll for results (use Operation-Location header from response) curl -X GET "${OPERATION_LOCATION}" \ -H "Ocp-Apim-Subscription-Key: ${DI_KEY}" ``` ### Batch Analysis ```bash # Submit batch job curl -X POST "${ENDPOINT}/documentintelligence/documentModels/prebuilt-invoice:analyzeBatch?api-version=2024-11-30" \ -H "Ocp-Apim-Subscription-Key: ${DI_KEY}" \ -H "Content-Type: application/json" \ -d '{ "azureBlobSource": { "containerUrl": "https://${STORAGE}.blob.core.windows.net/invoices?${SAS}" }, "resultContainerUrl": "https://${STORAGE}.blob.core.windows.net/results?${SAS}", "resultPrefix": "batch-output/" }' ``` --- ## Add-On Capabilities | Capability | Feature Flag | Description | |------------|-------------|-------------| | High resolution | `analyzeResult.pages[].highResolution` | 300 DPI processing for small text | | Formulas | `features: ["formulas"]` | LaTeX extraction from math content | | Font/style | `features: ["styleFont"]` | Font name, size, weight, color | | Barcodes | `features: ["barcodes"]` | 1D/2D barcode extraction | | Language detection | `features: ["languages"]` | Per-span language identification | | Query fields | `features: ["queryFields"]` | LLM-powered custom field extraction | | Searchable PDF | `outputContentFormat: "pdf"` | Generate searchable PDF from scan | | Markdown output | `outputContentFormat: "markdown"` | Markdown-formatted extraction | ### Query Fields Example ```python poller = client.begin_analyze_document( "prebuilt-layout", body=document, features=["queryFields"], query_fields=["PurchaseOrderNumber", "ShipToAddress", "PaymentTerms"] ) ``` --- ## Odoo Integration Pattern For Odoo CE expense/invoice automation using Document Intelligence: ```python # ipai_document_intelligence/models/document_processor.py class DocumentProcessor(models.Model): _name = "ipai.document.processor" _description = "Azure Document Intelligence Processor" name = fields.Char(required=True) model_id = fields.Selection([ ('prebuilt-invoice', 'Invoice'), ('prebuilt-receipt', 'Receipt'), ('prebuilt-idDocument', 'ID Document'), ('prebuilt-tax.us.w2', 'W-2 Form'), ('custom', 'Custom Model'), ], required=True) custom_model_id = fields.Char() def process_attachment(self, attachment): """Extract structured data from Odoo ir.attachment.""" endpoint = os.getenv("AZURE_DI_ENDPOINT") key = os.getenv("AZURE_DI_KEY") if not endpoint or not key: raise ValueError("AZURE_DI_ENDPOINT and AZURE_DI_KEY not set in environment") client = DocumentIntelligenceClient(endpoint, AzureKeyCredential(key)) model = self.custom_model_id if self.model_id == 'custom' else self.model_id poller = client.begin_analyze_document(model, body=attachment.raw) return poller.result() ``` --- ## Container Deployment (Disconnected) For air-gapped or on-premise deployments: ```yaml # docker-compose.document-intelligence.yml services: document-intelligence-read: image: mcr.microsoft.com/azure-cognitive-services/form-recognizer/read:latest ports: - "5000:5000" environment: - Eula=accept - Billing=${AZURE_DI_ENDPOINT} - ApiKey=${AZURE_DI_KEY} deploy: resources: limits: cpus: '8' memory: 8G document-intelligence-layout: image: mcr.microsoft.com/azure-cognitive-services/form-recognizer/layout:latest ports: - "5001:5000" environment: - Eula=accept - Billing=${AZURE_DI_ENDPOINT} - ApiKey=${AZURE_DI_KEY} deploy: resources: limits: cpus: '8' memory: 8G ``` --- ## RAG Integration (Document Chunking) Use Document Intelligence Layout model for intelligent document chunking in RAG pipelines: ```python def chunk_document_for_rag(document_path, chunk_strategy="page"): """Chunk document using DI Layout for RAG ingestion.""" client = DocumentIntelligenceClient( os.getenv("AZURE_DI_ENDPOINT"), AzureKeyCredential(os.getenv("AZURE_DI_KEY")) ) with open(document_path, "rb") as f: poller = client.begin_analyze_document( "prebuilt-layout", body=f, output_content_format="markdown" ) result = poller.result() chunks = [] if chunk_strategy == "page": for page in result.pages: chunks.append({ "page": page.page_number, "content": page.content, "tables": [t for t in (result.tables or []) if any( r.bounding_regions[0].page_number == page.page_number
Ver en GitHub
Este SKILL.md es muy grande, por eso SkillsMP muestra aqui solo la primera seccion. Ver en GitHub