KI-Anreicherung

Die KI-Anreicherungs-API ermöglicht die automatische Optimierung von Produktdaten direkt aus Ihrem Odoo-System oder eigenen Integrationen heraus. Sie deckt drei Kernanwendungsfälle ab:

  • Kategorisierung: Produkte werden automatisch einer passenden Zielkategorie zugeordnet.
  • Beschreibungsoptimierung: Artikeltexte, Titel und SEO-Inhalte werden generiert oder verbessert.
  • Per-Field-Optimierung: Einzelne Felder können gezielt optimiert werden (V2, empfohlen).

Alle Endpunkte liegen unter dem Router-Prefix /ai und erfordern eine aktive Subscription. Credits werden pro Aufruf reserviert und bei Erfolg abgebucht; bei einem Fehler im LLM-Backend werden sie automatisch zurückerstattet (Refund).

Vor der ersten Nutzung der KI-Funktionen muss der AI-Disclaimer im Portal akzeptiert werden. Aufrufe vor Akzeptanz werden mit dem Fehler DISCLAIMER_NOT_ACCEPTED abgelehnt.

Empfehlung

Verwenden Sie ausschließlich den Per-Field-Endpoint V2 (/ai/enrich-v2). Alle anderen Endpoints sind deprecated und werden am 29. November 2026 abgeschaltet.


1. Per-Field-Optimierung V2 (Empfohlen)

POST /ai/enrich-v2

Generiert in einem einzigen LLM-Call alle gewünschten Felder in allen angefragten Sprachen. Dies ist der bevorzugte Endpunkt für neue Integrationen.

Request-Body

{
  "product": {
    "title": "HP ProBook 450 G10",
    "manufacturer": "HP",
    "mpn": "816Q5EA",
    "description": "..."
  },
  "enabled_fields": ["name", "description_sale", "meta_title", "meta_description"],
  "target_languages": ["de", "en"]
}

Verfügbare Felder

Feld Beschreibung
name Produktname / Titel
description_sale Verkaufsbeschreibung (Frontend, Angebote)
description_purchase Einkaufsbeschreibung (interne Sicht)
description_html Ausformulierte HTML-Produktbeschreibung
meta_title SEO-Titel
meta_description SEO-Meta-Beschreibung
meta_keywords SEO-Keywords
barcode Vorgeschlagener Barcode (sofern aus Quelldaten ableitbar)
default_code Interne Artikelnummer / SKU
category Kategorisierung analog zum category-Modus

Antwort

Strukturiertes JSON mit Werten pro Feld und Sprache. Nicht aktivierte Felder werden weggelassen.

Beispiel (curl)

curl -X POST "https://api.example.com/ai/enrich-v2" \
  -H "Authorization: Bearer sk_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "product": {
      "title": "HP ProBook 450 G10",
      "manufacturer": "HP",
      "mpn": "816Q5EA",
      "description": "..."
    },
    "enabled_fields": ["name", "description_sale", "meta_title", "meta_description"],
    "target_languages": ["de", "en"]
  }'

Dies ist die empfohlene API für neue Integrationen. Sie bietet maximale Flexibilität bei minimalem Credit-Verbrauch, da alle Felder und Sprachen in einem einzigen LLM-Call erzeugt werden.


Legacy-Endpoints (Deprecated — Sunset: 29.11.2026)

Die folgenden Endpoints werden am 29. November 2026 abgeschaltet. Migrieren Sie Ihre Integration auf /ai/enrich-v2.

2. Einzelprodukt anreichern — Legacy (deprecated)

POST /ai/enrich

Deprecated — Sunset: 2026-11-29. Dieser Endpoint ist veraltet. Bitte verwenden Sie stattdessen /ai/enrich-v2. Antworten enthalten zusätzlich die HTTP-Header Deprecation: true, Sunset: 2026-11-29 und einen Link-Header auf den Nachfolger.

Reichert ein einzelnes Produkt an. Über den Parameter mode wird gesteuert, ob eine Kategorie vorgeschlagen oder Artikeltexte generiert werden sollen.

Modi

  • category – schlägt eine Zielkategorie inkl. Konfidenzwert vor
  • article – generiert optimierten Titel, Beschreibung und Keywords

Request-Body

{
  "product": {
    "title": "HP ProBook 450 G10",
    "manufacturer": "HP",
    "mpn": "816Q5EA",
    "description": "Notebook 15.6 Zoll...",
    "category_path": "optional/vorhandene/kategorie"
  },
  "mode": "category",
  "target_languages": ["de"]
}

Antwort (Modus category)

Enthält die vorgeschlagene Kategorie sowie einen Konfidenzwert, der die Sicherheit der Klassifikation widerspiegelt.

Antwort (Modus article)

Enthält den optimierten Titel, eine ausformulierte Beschreibung sowie eine Liste relevanter Keywords – optional pro angefragter Sprache.

Beispiel (curl)

curl -X POST "https://api.example.com/ai/enrich" \
  -H "Authorization: Bearer sk_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "product": {
      "title": "HP ProBook 450 G10",
      "manufacturer": "HP",
      "mpn": "816Q5EA",
      "description": "Notebook 15.6 Zoll..."
    },
    "mode": "category",
    "target_languages": ["de"]
  }'

Credit-Verbrauch: ca. 3–5 Credits pro Aufruf.


3. Kombinierte Anreicherung — Legacy (deprecated)

POST /ai/enrich-combined

Führt Kategorisierung und Beschreibungsoptimierung parallel in einem Aufruf aus. Die Antwort enthält sowohl category_result als auch article_result.

Deprecated — Sunset: 2026-11-29. Diese API ist veraltet. Verwenden Sie stattdessen /ai/enrich-v2, das einen flexibleren und günstigeren Aufruf ermöglicht. Antworten enthalten zusätzlich die HTTP-Header Deprecation: true, Sunset: 2026-11-29 und einen Link-Header auf den Nachfolger.

Beispiel (curl)

curl -X POST "https://api.example.com/ai/enrich-combined" \
  -H "Authorization: Bearer sk_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "product": {
      "title": "HP ProBook 450 G10",
      "manufacturer": "HP",
      "mpn": "816Q5EA",
      "description": "Notebook 15.6 Zoll..."
    },
    "target_languages": ["de"]
  }'

Credit-Verbrauch: ca. 10 Credits (entspricht zwei Einzel-Enrichments).


4. Batch-Anreicherung — Legacy (deprecated)

POST /ai/enrich-batch

Deprecated — Sunset: 2026-11-29. Dieser Endpoint ist veraltet. Bitte verwenden Sie stattdessen /ai/enrich-v2. Antworten enthalten zusätzlich die HTTP-Header Deprecation: true, Sunset: 2026-11-29 und einen Link-Header auf den Nachfolger.

Verarbeitet bis zu 20 Produkte pro Request mit kontrollierter Parallelität (max. 5 gleichzeitige LLM-Calls). Pro Item kann ein eigener mode (category oder article) gesetzt werden.

Request-Body

{
  "items": [
    {"product": {"...": "..."}, "mode": "category"},
    {"product": {"...": "..."}, "mode": "article"}
  ],
  "target_languages": ["de", "en"]
}

Antwort

Die Antwort enthält ein Array results[], in dem jedes Element den status ("success" oder "error") sowie entweder result oder error pro Item führt. Einzelne Fehler brechen den Batch nicht ab – fehlerhafte Items werden refundiert, erfolgreiche Items normal abgerechnet.

Beispiel (curl)

curl -X POST "https://api.example.com/ai/enrich-batch" \
  -H "Authorization: Bearer sk_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "items": [
      {"product": {"title": "HP ProBook 450 G10", "manufacturer": "HP", "mpn": "816Q5EA"}, "mode": "category"},
      {"product": {"title": "Lenovo ThinkPad T14", "manufacturer": "Lenovo", "mpn": "21K3000XGE"}, "mode": "article"}
    ],
    "target_languages": ["de", "en"]
  }'

Nutzen Sie die Batch-API für größere Produktbestände — sie spart Round-Trips, reduziert Latenz und ist deutlich effizienter als viele Einzelaufrufe.


Fehlerbehandlung

  • Credits werden bei fehlgeschlagenen LLM-Calls automatisch zurückerstattet (Refund). Erfolgreiche Items in einem Batch bleiben hiervon unberührt.
  • Fehlerantworten enthalten ein error.code-Feld zur programmatischen Auswertung.

Häufige Fehler-Codes

Code Bedeutung
INSUFFICIENT_CREDITS Das Konto verfügt nicht über genügend Credits für die Reservierung.
AI_BACKEND_ERROR Der LLM-Provider hat einen Fehler zurückgegeben; Credits werden erstattet.
DISCLAIMER_NOT_ACCEPTED Der AI-Disclaimer wurde noch nicht im Portal akzeptiert.
FORBIDDEN Subscription inaktiv oder Endpunkt nicht für diesen Account freigegeben.

Weiterführende Seiten