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.
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 vorarticle– 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. |