Rumah pembangunan bahagian belakang Tutorial Python Cipta pengekstrak data invois terpantas dan tepat untuk output struktur menggunakan AI

Cipta pengekstrak data invois terpantas dan tepat untuk output struktur menggunakan AI

Aug 07, 2024 am 06:36 AM

Create the fastest and precise invoice data extractor for structural output using AI

Menggunakan LlamaExtract dengan Model Pydantic untuk Pengekstrakan Resit Kedai

Dalam artikel ini, kami akan meneroka cara menggunakan LlamaExtract yang digabungkan dengan skema daripada model Pydantic untuk mengekstrak data berstruktur daripada resit kedai. Pendekatan ini membantu dalam menyusun maklumat penerimaan secara sistematik, menjadikannya lebih mudah untuk dianalisis dan diurus.

Persediaan

Pertama, pastikan anda telah memasang perpustakaan klien ekstrak llama. Gunakan arahan berikut:

pip install llama-extract pydantic
Salin selepas log masuk

Nota: Jika anda melihat notis tentang mengemas kini pip, anda boleh mengemas kininya menggunakan arahan yang disediakan.

Mula-mula, log masuk dan dapatkan kunci api secara percuma daripada Llama Index Cloud

Sediakan pembolehubah persekitaran untuk kunci API LlamaExtract anda:

import os

os.environ["LLAMA_CLOUD_API_KEY"] = "YOUR LLAMA INDEX CLOUD API HERE"
Salin selepas log masuk

Muatkan Data

Untuk contoh ini, mari kita anggap kita mempunyai set data resit kedai dalam format PDF. Letakkan fail ini dalam direktori bernama resit.

DATA_DIR = "data/receipts"
fnames = os.listdir(DATA_DIR)
fnames = [fname for fname in fnames if fname.endswith(".pdf")]
fpaths = [os.path.join(DATA_DIR, fname) for fname in fnames]
fpaths
Salin selepas log masuk

Output hendaklah menyenaraikan laluan fail resit:

['data/receipts/receipt.pdf']
Salin selepas log masuk

Takrifkan Model Pydantic

Kami akan mentakrifkan model data kami menggunakan Pydantic, ini akan memberitahu API medan/data yang kami jangkakan atau ingin ekstrak daripada PDF. Untuk resit kedai, kami mungkin berminat untuk mengeluarkan nama kedai, tarikh, jumlah amaun dan senarai item yang dibeli.

from pydantic import BaseModel
from typing import List

class Item(BaseModel):
    name: str
    quantity: int
    price: float

class Receipt(BaseModel):
    store_name: str
    date: str
    total_amount: float
    items: List[Item]
Salin selepas log masuk

Buat Skema

Kini, kita boleh menggunakan model Pydantic untuk mentakrifkan skema pengekstrakan dalam LlamaExtract.

from llama_extract import LlamaExtract

extractor = LlamaExtract(verbose=True)
schema_response = await extractor.acreate_schema("Receipt Schema", data_schema=Receipt)
schema_response.data_schema
Salin selepas log masuk

Skema output hendaklah menyerupai yang berikut:

{
    'type': 'object',
    '$defs': {
        'Item': {
            'type': 'object',
            'title': 'Item',
            'required': ['name', 'quantity', 'price'],
            'properties': {
                'name': {'type': 'string', 'title': 'Name'},
                'quantity': {'type': 'integer', 'title': 'Quantity'},
                'price': {'type': 'number', 'title': 'Price'}
            }
        }
    },
    'title': 'Receipt',
    'required': ['store_name', 'date', 'total_amount', 'items'],
    'properties': {
        'store_name': {'type': 'string', 'title': 'Store Name'},
        'date': {'type': 'string', 'title': 'Date'},
        'total_amount': {'type': 'number', 'title': 'Total Amount'},
        'items': {
            'type': 'array',
            'title': 'Items',
            'items': {'$ref': '#/$defs/Item'}
        }
    }
}
Salin selepas log masuk

Jalankan Pengekstrakan

Dengan skema yang ditentukan, kami kini boleh mengekstrak data berstruktur daripada fail resit kami. Dengan menyatakan Resit sebagai model tindak balas, kami memastikan data yang diekstrak disahkan dan berstruktur.

responses = await extractor.aextract(
    schema_response.id, fpaths, response_model=Receipt
)

Salin selepas log masuk

Anda boleh mengakses output JSON mentah jika perlu:

data = responses[0].data
print(data)
Salin selepas log masuk

Contoh output JSON:

{
    'store_name': 'ABC Electronics',
    'date': '2024-08-05',
    'total_amount': 123.45,
    'items': [
        {'name': 'Laptop', 'quantity': 1, 'price': 999.99},
        {'name': 'Mouse', 'quantity': 1, 'price': 25.00},
        {'name': 'Keyboard', 'quantity': 1, 'price': 50.00}
    ]
}
Salin selepas log masuk

Kesimpulan

Dalam artikel ini, kami menunjukkan cara menggunakan LlamaExtract dengan model Pydantic untuk menentukan skema data dan mengekstrak data berstruktur daripada resit kedai. Pendekatan ini memastikan maklumat yang diekstrak adalah teratur dan disahkan, menjadikannya lebih mudah untuk dikendalikan dan dianalisis.

Ini juga boleh digunakan untuk banyak kes, invois, resit, laporan dll.

Selamat Pengekodan!!

Adakah anda mempunyai projek? yang anda mahu saya bantu anda e-mel saya??: wilbertmisingo@gmail.com

Ada soalan atau ingin menjadi orang pertama yang mengetahui tentang siaran saya:-
Ikuti ✅ saya di LinkedIn ?
Ikuti ✅ saya di Twitter/X ?

Atas ialah kandungan terperinci Cipta pengekstrak data invois terpantas dan tepat untuk output struktur menggunakan AI. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Tag artikel panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana saya menggunakan sup yang indah untuk menghuraikan html? Bagaimana saya menggunakan sup yang indah untuk menghuraikan html? Mar 10, 2025 pm 06:54 PM

Bagaimana saya menggunakan sup yang indah untuk menghuraikan html?

Penapisan gambar di python Penapisan gambar di python Mar 03, 2025 am 09:44 AM

Penapisan gambar di python

Cara memuat turun fail di python Cara memuat turun fail di python Mar 01, 2025 am 10:03 AM

Cara memuat turun fail di python

Cara Menggunakan Python untuk Mencari Pengagihan Zipf Fail Teks Cara Menggunakan Python untuk Mencari Pengagihan Zipf Fail Teks Mar 05, 2025 am 09:58 AM

Cara Menggunakan Python untuk Mencari Pengagihan Zipf Fail Teks

Pengenalan kepada Flask: Menambah halaman kenalan Pengenalan kepada Flask: Menambah halaman kenalan Feb 28, 2025 am 10:03 AM

Pengenalan kepada Flask: Menambah halaman kenalan

Cara Bekerja Dengan Dokumen PDF Menggunakan Python Cara Bekerja Dengan Dokumen PDF Menggunakan Python Mar 02, 2025 am 09:54 AM

Cara Bekerja Dengan Dokumen PDF Menggunakan Python

Cara Cache Menggunakan Redis dalam Aplikasi Django Cara Cache Menggunakan Redis dalam Aplikasi Django Mar 02, 2025 am 10:10 AM

Cara Cache Menggunakan Redis dalam Aplikasi Django

Bagaimana untuk melakukan pembelajaran mendalam dengan Tensorflow atau Pytorch? Bagaimana untuk melakukan pembelajaran mendalam dengan Tensorflow atau Pytorch? Mar 10, 2025 pm 06:52 PM

Bagaimana untuk melakukan pembelajaran mendalam dengan Tensorflow atau Pytorch?

See all articles