Discounter-Prospektanalyse mit OCR und Claude Code
Zielsetzung
Entwicklung einer Anwendung zur automatischen Analyse von Sonderangeboten deutscher Discounter aus PDF-Prospekten.
Die Lösung soll:
- PDF-Prospekte einlesen
- Texte und Produktbilder erkennen
- Produktinformationen extrahieren
- Historische Preisentwicklungen speichern
- Preisvergleiche zwischen Händlern ermöglichen
- Vollautomatisch verarbeitet werden können
Anforderungen
Eingabedaten
- PDF-Prospekte
- ca. 2.000 Seiten pro Monat
Zu extrahierende Informationen
- Händler
- Produktname
- Marke
- Preis
- Grundpreis
- Verpackungsgröße
- Angebotszeitraum
- Produktbild
Auswertungen
- Preisentwicklung
- Preisvergleich zwischen Händlern
- Durchschnittspreise
- Preisalarme
- Saisonale Auswertungen
Empfohlene Architektur
PDF-Prospekt
│
▼
PDF-Analyse
│
├── Direkte Textextraktion
└── OCR bei Bildbereichen
│
▼
Layout-Erkennung
│
▼
Produktblock-Erkennung
│
▼
Claude Code
│
├── Produktname
├── Marke
├── Preis
├── Grundpreis
├── Menge
├── Zeitraum
└── Kategorie
│
▼
PostgreSQL
│
▼
Dashboard und Auswertungen
Technologie-Stack
OCR
- Tesseract OCR
PDF-Verarbeitung
- PyMuPDF
Bildverarbeitung
- OpenCV
Backend
- FastAPI
Datenbank
- PostgreSQL
Vektorsuche
- pgvector
KI-Agent
- Claude Code
Dashboard
- Grafana
Verzeichnisstruktur
project/
│
├── data/
│ ├── pdf/
│ ├── images/
│ └── exports/
│
├── src/
│ ├── pdf_import/
│ ├── ocr/
│ ├── image_processing/
│ ├── extraction/
│ ├── database/
│ └── api/
│
├── prompts/
│
├── tests/
│
└── docs/
Datenbankschema
retailer
CREATE TABLE retailer (
id SERIAL PRIMARY KEY,
name TEXT NOT NULL
);
product
CREATE TABLE product (
id SERIAL PRIMARY KEY,
name TEXT,
brand TEXT,
category TEXT,
ean TEXT
);
offer
CREATE TABLE offer (
id SERIAL PRIMARY KEY,
retailer_id INTEGER,
product_id INTEGER,
price NUMERIC,
base_price TEXT,
quantity TEXT,
valid_from DATE,
valid_to DATE,
image_path TEXT
);
price_history
CREATE TABLE price_history (
id SERIAL PRIMARY KEY,
product_id INTEGER,
retailer_id INTEGER,
offer_date DATE,
price NUMERIC
);
Claude-Code-Aufgabe
Für jeden erkannten Produktblock soll Claude folgende Informationen extrahieren:
{
"haendler": "",
"produktname": "",
"marke": "",
"preis": "",
"grundpreis": "",
"menge": "",
"gueltig_von": "",
"gueltig_bis": ""
}
Optimierungsschritte
Phase 1
- PDF importieren
- Text extrahieren
- OCR integrieren
Phase 2
- Produktblöcke erkennen
- Bilder ausschneiden
- Claude-Anbindung
Phase 3
- Datenbankintegration
- Historische Preisanalyse
Phase 4
- Weboberfläche
- Preisvergleich
- Preisalarm
Erwartetes Ergebnis
Vollautomatische Extraktion von Sonderangeboten deutscher Discounter mit Speicherung historischer Preisverläufe und Vergleichsmöglichkeiten über mehrere Jahre.