Tutorial
HiAPI Inhaltsrichtlinien-Ablehnung (CONTENT_POLICY_VIOLATION): Ursachen und Behebung
Diesen Fehlercode verstehen, wo er auftritt und wie du Inhalte zur Freigabe bringst
Wenn du über die einheitliche asynchrone Task-Schnittstelle von HiAPI einen Generierungsauftrag einreichst und der Prompt oder das Eingabematerial die Sicherheitsprüfung nicht besteht, erhältst du den Geschäftsfehlercode CONTENT_POLICY_VIOLATION. Die offizielle Dokumentation beschreibt seine Bedeutung als „Inhalt hat die Sicherheitsprüfung nicht bestanden“ und empfiehlt als Vorgehensweise „Prompt oder Eingabeinhalt anpassen und erneut versuchen“. Es handelt sich weder um ein Authentifizierungsproblem noch um ein Guthaben- oder Parameterproblem – der Inhalt selbst wurde blockiert. Dieser Artikel erklärt, wie er aussieht, wo er sichtbar wird und wie du ihn behebst.
1. Problemerscheinung
Die Ablehnung durch die Inhaltsrichtlinie tritt in zwei Formen auf, je nachdem, ob die Blockierung in der Einreichungsphase oder in der Laufzeitphase des Tasks erfolgt. CONTENT_POLICY_VIOLATION ist ein Geschäftsfehlercode der einheitlichen asynchronen Schnittstelle und teilt dieselbe Enumeration mit dem synchronen error_code bei der Task-Erstellung sowie dem data.error.code im Endzustand des Tasks (er ist nicht als „nur bei Erstellung“ markiert, daher kann er an beiden Stellen auftreten).
Form A: Synchrone Ablehnung bei der Erstellung. Beim Aufruf von POST /v1/tasks besteht der Inhalt die Prüfung nicht, und es wird ein Fehler-Envelope zurückgegeben, dessen error_code CONTENT_POLICY_VIOLATION ist. Die Form des Envelopes sieht wie folgt aus (gemäß der Fehlerantwort in der offiziellen Dokumentation; code ist der HTTP-Status, error_code der Geschäftscode):
{
"code": 400,
"message": "...",
"data": null,
"error_code": "CONTENT_POLICY_VIOLATION"
}
In diesem Fall erhältst du keine taskId – der Task wurde gar nicht erst erstellt.
Form B: Endzustand des Tasks ist fail nach dem Lauf. Der taskId wurde bereits erhalten, und erst nachdem der Task gelaufen ist, wird er als nicht regelkonform eingestuft. Beim Polling von GET /v1/tasks/{taskId} ist HTTP weiterhin 200 (die Envelope-message ist sogar success, was nur bedeutet „diese Abfrage war erfolgreich“, nicht dass dein Task erfolgreich war); der eigentliche Fehler verbirgt sich in data:
{
"code": 200,
"data": {
"taskId": "tk-hiapi-...",
"status": "fail",
"error": { "code": "CONTENT_POLICY_VIOLATION", "message": "..." }
},
"message": "success"
}
Die Lokalisierungsregel in einem Satz: Schau nicht nur auf den HTTP-Statuscode. Lies in drei Ebenen – HTTP-Status (wurde die Anfrage akzeptiert) → Geschäftsfehlercode (error_code / data.error.code, warum wurde abgelehnt) → Task-Status (data.status, bis zu welchem Schritt ist es gekommen). Solange das code-Feld (das synchrone error_code oder das data.error.code im Endzustand) CONTENT_POLICY_VIOLATION ist, handelt es sich um eine Blockierung durch die Inhaltsprüfung und nicht um Timeout, Verbindungsabbruch oder Parameterfehler. Der message-Text kann je nach Szenario leicht variieren; das stabile Signal zur Beurteilung ist dieser Code – versuche nicht, den message-Text per Regex zu matchen.
Wenn im Playground / „Online testen“ auf der Modellseite eine gleichartige Blockierung ausgelöst wird, zeigt die Seite direkt einen Inline-Hinweis „Sicherheitsprüfung nicht bestanden“ an, statt dir den Code zur eigenen Auswertung zu überlassen – das ist der Darstellungsunterschied zwischen dem Web-Testpfad (synchron) und dem API-Pfad, den du im Code aufrufst.
2. Häufige Ursachen (nach Trefferwahrscheinlichkeit von hoch nach niedrig)
- Der Prompt enthält nicht erlaubte Inhalte. Am häufigsten. NSFW-/Erwachseneninhalte, explizite Gewalt und Blut etc. werden von der Sicherheitsprüfung blockiert. Beachte, dass viele Modelle selbst ausdrücklich keine NSFW-Inhalte unterstützen und einige Modelle (wie GPT Image 2) zusätzlich der Inhaltsrichtlinie ihres Modellanbieters (z. B. der OpenAI-Inhaltsrichtlinie) folgen.
- Eingabebilder / Referenzmaterial haben die Prüfung nicht bestanden. Bei Aufgaben wie Image-to-Image (i2i) oder Referenzbild-zu-Video wird nicht nur der Prompt geprüft – auch die von dir hochgeladenen oder referenzierten Bilder und Referenzmaterialien müssen die Prüfung bestehen. Ist der Prompt sauber, aber das Eingabebild nicht regelkonform, gibt es trotzdem
CONTENT_POLICY_VIOLATION. - Nach einem Modellwechsel auf eine strengere Richtlinie gestoßen. Die Inhaltsrichtlinien verschiedener Modelle sind unterschiedlich streng. Derselbe Prompt kann bei Modell A durchgehen und bei Modell B abgelehnt werden – besonders bei sensiblen Bereichen wie realistischen Porträts, Prominentenporträts, Marken-/Urheberrechtsmaterial.
- Ablehnung mit einem anderen Fehler verwechselt. Eine echte Inhaltsblockierung wird als „Dienststörung“ fehlinterpretiert und unverändert wiederholt – dieselben Inhalte bestehen die Prüfung egal wie oft nicht, das ist nur verlorene Zeit.
3. Behebungsschritte
- Zuerst den Fehlercode bestätigen. Lies den genauen Code aus dem synchronen
error_codeoder demdata.error.codeim Endzustand des Tasks. Stelle sicher, dass esCONTENT_POLICY_VIOLATIONist und nichtTASK_FAILED(allgemeiner Fehler, meist ein vorübergehendes Problem oder eine nicht erreichbare Eingabebild-URL) oderINVALID_REQUEST(ungültiger Request-Body). Bei unterschiedlichem Code ist auch die Behebung völlig anders. - Den Prompt Punkt für Punkt bereinigen. Entferne NSFW-/Erwachseneninhalte, explizite Gewalt und ähnliche Formulierungen und ersetze sie durch regelkonforme Formulierungen, bevor du erneut einreichst. Die Änderungen sollten gezielt sein, nicht wahllos Wörter löschen.
- Alle Eingabematerialien prüfen. Bei Image-to-Image / Referenzgenerierung: Ersetze die Eingabebilder und Referenzbilder, die die Prüfung auslösen könnten – sie müssen genauso wie der Prompt die Prüfung bestehen.
- Die Richtlinie des Zielmodells überprüfen. Schau auf der Modellseite des jeweiligen Modells nach den dort angegebenen Einschränkungen (z. B. GPT Image 2 Modellseite mit dem klaren Hinweis „keine NSFW-Inhalte, folgt der OpenAI-Inhaltsrichtlinie“); wenn du das Modell wechseln musst, kannst du im Modellmarkt die Fähigkeiten und Richtlinien der Modelle vergleichen.
- Nach der Änderung erneut versuchen. Die Dokumentation empfiehlt für diesen Code genau „Prompt oder Eingabeinhalt anpassen und erneut versuchen“. Beachte: Fehlgeschlagene Tasks werden nicht berechnet – das bei der Erstellung reservierte Guthaben wird nach Erreichen des Fehler-Endzustands vollständig zurückerstattet, ein durch die Prüfung blockierter Task kostet also selbst nichts; aber unverändertes erneutes Einreichen derselben regelwidrigen Inhalte wird nicht durchgehen – erst ändern, dann einreichen.
4. Minimales Verifizierungsbeispiel
Wenn du zuerst ausschließen möchtest, ob „mein Key / mein Zugang ein Problem hat“, sende mit einem offensichtlich regelkonformen Prompt einen Aufruf an POST /v1/tasks und prüfe, ob du normal eine taskId erhältst (model mit der reinen id gpt-image-2):
curl -s -X POST "https://api.hiapi.ai/v1/tasks" \
-H "Authorization: Bearer $HIAPI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-image-2",
"input": { "prompt": "a cozy coffee shop storefront at sunrise, warm light" }
}'
- Rückgabe
{"code":200,"data":{"taskId":"tk-hiapi-..."}}→ dein Key und der Zugang funktionieren; dann liegt das Problem bei der zuvor abgelehnten Anfrage am Inhalt – gehe zurück zu Abschnitt 3 und bereinige Prompt / Eingabebild. - Rückgabe
HTTP 401+{"error":{"code":"permission_denied",...}}→ es ist ein Authentifizierungsproblem (falscher Key /Authorization: Bearerfehlt), keine Inhaltsrichtlinie. - Selbst ein regelkonformer Prompt gibt
error_code: "CONTENT_POLICY_VIOLATION"zurück → eher selten; prüfe erneut, ob in diesem Prompt sensible Wörter enthalten sind, die du übersehen hast, oder versuche es mit einer neutraleren Beschreibung.
5. Weiterführende Lektüre
- Die vollständige Geschäftsfehlercode-Tabelle der einheitlichen asynchronen Schnittstelle (mit Bedeutung und Empfehlungen zu
CONTENT_POLICY_VIOLATION,TASK_FAILED,INVALID_REQUESTusw.): Dokumentation zur einheitlichen asynchronen Schnittstelle. - Um die Inhaltsbeschränkungen eines Modells zu prüfen: auf der entsprechenden Modellseite oder im Modellmarkt nachsehen.
6. FAQ
F: Worin unterscheiden sich CONTENT_POLICY_VIOLATION und TASK_FAILED?
A: Ersterer bedeutet, dass der Inhalt die Sicherheitsprüfung nicht bestanden hat; die Behebung ist, Prompt / Eingabematerial zu ändern. Letzterer ist ein allgemeiner Fehler, dessen häufigste Ursache eine nicht erreichbare Eingabebild-/Video-URL oder eine vorübergehende Schwankung ist; die Behebung ist, die URL zu korrigieren / es erneut zu versuchen. Es sind unterschiedliche Geschäftsfehlercodes – nicht verwechseln. Man kann sie am error.code unterscheiden.
F: Wird mir etwas berechnet, wenn ein Task durch die Inhaltsrichtlinie abgelehnt wird? A: Nein. Laut Dokumentation wird das bei der Erstellung reservierte Guthaben nach Erreichen des Fehler-Endzustands vollständig zurückerstattet. Ein durch die Prüfung blockierter Task verursacht selbst keine Kosten.
F: Warum sehe ich bei demselben Prompt im Web-„Online testen“ einen klaren Hinweis „Prüfung nicht bestanden“, während ich über die API nur einen Code bekomme?
A: Der Web-Test ist ein synchroner Pfad und zeigt das Prüfergebnis direkt als Inline-Hinweis an; der API-Pfad legt das Ergebnis in error_code / data.error.code des Response-Bodys ab, den dein Code auslesen und verzweigen muss. Die Information ist dieselbe, nur die Darstellung unterscheidet sich.
F: Ich habe nur den Prompt geändert, das Eingabebild nicht – warum wird es trotzdem abgelehnt? A: Die Sicherheitsprüfung umfasst das Eingabematerial, nicht nur den Prompt. Bei Image-to-Image / Referenzgenerierung: Ersetze zuerst auch die Eingabebilder und Referenzbilder, die die Prüfung auslösen könnten.
F: Gibt es bei HiAPI eine öffentliche „Inhaltsrichtlinien“-Seite zum Nachschlagen? A: Es gibt keine eigenständige Seite mit Inhaltsrichtlinien. Die Inhaltsbeschränkungen der einzelnen Modelle stehen auf der jeweiligen Modellseite (z. B. „keine NSFW-Inhalte“); die plattformweiten Bedingungen findest du in den Nutzungsbedingungen und der Datenschutzrichtlinie.
F: Kann ich durch wiederholtes Versuchen „durchrutschen“? A: Nein. Dieselben regelwidrigen Inhalte bestehen egal wie oft nicht, das blockiert nur unnötig das Polling. Ändere zuerst den Inhalt gemäß Abschnitt 3 und reiche dann erneut ein.
Ähnliche Artikel
Alle Artikel ansehen →-
Tutorial
So rufen Sie hailuo-2.3-fast/image-to-video über die HiAPI API auf: curl und Python in der Praxis
Die erste lauffähige Anfrage für die schnelle, kostengünstige Bild-zu-Video-Stufe – von der Modell-ID bis zum heruntergeladenen MP4
-
Tutorial
So rufen Sie hailuo-2.3/text-to-video über die HiAPI API auf: curl, Python und lauffähige Anfragebeispiele
-
Tutorial
Kandinsky 6.0 Pro Text-zu-Video auf HiAPI: curl- und Python-Tutorial
Eine anfrageorientierte praktische Demonstration: Aufbau des Aufrufs vom Prompt zum Videoclip, Absenden der Anfrage, Abfragen des Fertigstellungsstatus und Herunterladen des Ergebnisses