Zum Hauptinhalt springen

Migrationsleitfaden

Migrieren Sie einen Ablauf, nicht einen ganzen Katalog.

Zwei Plattformen können dieselbe Aufgabe anbieten und sich trotzdem bei Feldnamen, Vorgabewerten, Endzuständen, Fehlerbedeutungen und Abrechnungseinheiten unterscheiden. Eine Migration, die mit der Basis-URL beginnt, findet all das in der Produktion.

Die Herausforderung

Gleiche Aufgabe, anderer Vertrag

Sauber portiert nur das Modell. Nicht portiert wird alles drumherum: welche Felder verpflichtend sind, welche Vorgaben gelten, wie ein Referenzbild hineinkommt, wann Geld reserviert wird und was Ihr Code mit einem unbekannten Zustand tun soll.

01

Feldnamen und Vorgaben passen selten zusammen

Schreiben Sie die Abbildung je Endpunkt auf, statt sie abzuleiten. Die Eingabe wird gegen das veröffentlichte Schema mit geschlossenem additionalProperties geprüft; ein nicht abgebildetes Feld ist ein 400 bei der ersten echten Anfrage, keine Warnung im Log.

02

Geld wird bei der Annahme reserviert, nicht beim Abschluss

createTask reserviert den Schätzwert und gibt ihn als cost mit settled: false zurück. Wenn Ihr heutiger Anbieter nur bei Erfolg abrechnet, muss Ihr Abgleich Reservierungen verstehen, bevor Verkehr umzieht.

03

Das Fehlervokabular ist geschlossen und klein

Neun Werte decken jeden Fehlschlag ab, content_rejected inklusive: eine Ablehnung ist ein Endzustand, keine Ausnahme. Bilden Sie Ihre bestehenden Fehlerzweige vor der Umschaltung auf diese neun ab.

Der Ansatz

Einen Endpunkt im Schatten fahren, Zahlen vergleichen, dann umziehen

Nehmen Sie einen einzigen Ablauf, erfassen Sie heutige Eingaben, Ausgaben, Fehler und Stückkosten und fahren Sie dieselben Bedingungen hier. Vergleichen Sie die Schätzung aus jobs/quote mit dem heutigen Preis, halten Sie beide Wege hinter einem Schalter aktiv und erhöhen Sie den Anteil nur, solange die Zahlen halten.

Erst schätzen: derselbe Prüf- und Annahmeweg wie beim Erstellen, ohne Reservierung und ohne Erzeugung.

POST /api/v1/jobs/quote

{
  "model": "<publisher>/<model>/text-to-video",
  "input": {
    "prompt": "A slow aerial drift over a misty pine forest at sunrise",
    "duration_seconds": 5,
    "resolution": "1080p"
  }
}

200 OK — nothing reserved, nothing started

{
  "code": 200,
  "msg": "success",
  "request_id": "req_example_quote",
  "data": {
    "quoteId": "qte_01k3m8x9q2z4v7n5p6r8s0t1w3",
    "model": "<publisher>/<model>/text-to-video",
    "estimatedCost": "0.750000",
    "maxCharge": "0.750000",
    "currency": "USD",
    "quantity": "5",
    "unit": "second",
    "expiresAt": "2026-09-12T12:05:00Z"
  }
}

Vertrag

Was Sie früh festhalten sollten

fal-Alternative: Bild- und Videoaufrufe migrieren — Was Sie früh festhalten sollten
Feld oder HeaderWert oder Grenze
POST /api/v1/jobs/quoteno hold · signed quote valid 5 min
quoteId + expectedCost40901 when the price moved
40240201 balance · 40202 spend cap
published call nameimmutable · renames keep a 308

Horizontal wischen, um alle Spalten zu sehen.

Integration

Vom ersten Aufruf bis in die Produktion

  1. 01Einen Endpunkt wählen und zehn repräsentative Anfragen samt Ausgaben und heutigen Kosten erfassen.
  2. 02Jedes Feld auf das input_schema des Zielendpunkts abbilden und die Abbildung versioniert ablegen.
  3. 03Jeden abgebildeten Körper schätzen und estimatedCost, quantity und unit mit der heutigen Rechnung vergleichen.
  4. 04Erst Schatten, dann Canary, dann Anteil erhöhen – der alte Weg bleibt in jedem Schritt aufrufbar.

Passung

Wann dieser Weg der richtige ist

Dafür geeignet

  • Sie wollen ein Guthaben, einen Satz Limits und einen Auftragsvertrag über Bild, Video und Text hinweg.
  • Ihr Engpass ist die Inhaltsrichtlinie oder die Verfügbarkeit einzelner Modelle, nicht die Modellqualität.

Dafür nicht geeignet

  • Sie brauchen eine Umschaltung an einem Tag. Vertragsunterschiede zeigen sich je Endpunkt und spät.
  • Ihre Integration ruft das Modell aus dem Client. Hier gehören Schlüssel auf den Server.

Belege

Was Sie selbst prüfen können

Die Schätzung ist ein echter Trockenlauf

POST /api/v1/jobs/quote führt dieselbe Prüfung und Annahmeentscheidung aus wie das Erstellen, liefert estimatedCost, maxCharge, quantity und unit und reserviert nichts. Die signierte Schätzung gilt fünf Minuten.

Ein geänderter Preis scheitert, statt zu überraschen

Senden Sie quoteId und expectedCost beim Erstellen mit. Hat sich der Preis zwischenzeitlich geändert, liefert die Annahme Geschäftscode 40901, bevor etwas reserviert wird.

Veröffentlichte Aufrufnamen bleiben

Ein veröffentlichter Aufrufname bleibt gültig; eine Umbenennung behält eine 308-Weiterleitung und einen Alias. Ihre Abbildungstabelle verfällt nicht still zwischen zwei Releases.

Vor dem Start

Plattformverhalten zum Bestätigen

  • Die Feldabbildung versionieren und je Endpunkt eine Erfolgs- und eine Fehler-Fixture behalten.
  • Vor der ersten Anfrage prüfen, ob jeder Zielendpunkt aufrufbar ist und einen Preis hat.
  • Den Rückweg mit echtem Verkehr proben, nicht auf einem Staging-Branch.
  • Reservierungen und Abrechnungen einen vollen Abrechnungszyklus lang abgleichen, bevor der letzte Anteil umzieht.

Häufige Fragen

Was auf dieser Seite gefragt wird

Bei Medien nicht. Auftragsvertrag, Feldnamen, Zustandsautomat und Abrechnungssemantik müssen abgebildet werden. Text kommt am nächsten: für die OpenAI-kompatible Fläche genügen meist Basis-URL und model-Wert.

Weiter

Einen Ablauf abbilden und schätzen lassen

Einen Ablauf nach dem anderen umziehen: Felder abbilden, Zustände und Fehler vereinheitlichen, Rechnungen vergleichen und mit erprobtem Rückweg umschalten.

Quelle: fal model APIs ↗

Weitere Leitfäden