Cortex REST API¶
Die Cortex REST API bietet Ihnen Zugriff auf führende Fronter-Modelle von Anthropic, OpenAI, Meta, Mistral und mehr über Ihren bevorzugten Endpunkt oder Ihr SDK. Alle Inferenzen werden innerhalb des Snowflake-Perimeters ausgeführt, sodass Ihre Daten sicher und innerhalb Ihrer Governance-Grenze bleiben. Nachfolgend finden Sie eine Anleitung für den Einstieg.
Auswahl der API¶
Die Cortex REST API unterstützt zwei branchenübliche API-Spezifikationen. Wählen Sie die Option aus, die am besten zu Ihrem Stapel passt:
**Chat Completions API ** |
**Messages API ** |
|
|---|---|---|
Kompatibilität |
||
Endpunkt |
|
|
Unterstützte Modelle |
Alle Modelle (OpenAI, Claude, Llama, Mistral, DeepSeek, Snowflake) |
Nur Claude-Modelle |
SDK-Unterstützung |
OpenAI Python und JavaScript SDKs |
Anthropic Python SDK |
Am besten geeignet für |
Die meisten Anwendungsfälle; Flexibilität bei mehreren Modellen |
Bestehende Anthropic-Integrationen; Anthropic API-Parität |
Beide APIs teilen sich dieselbe Authentifizierung, denselben Modellkatalog und dieselben Ratenbegrenzungen. Der einzige Unterschied sind das Anfrage-/Antwortformat und die von jedem Endpunkt unterstützten Modelle. Die Preise finden Sie in der Snowflake Service Consumption Table.
Quickstart¶
Voraussetzungen¶
Bevor Sie beginnen, benötigen Sie Folgendes:
Ihre Snowflake-Konto-URL** (z. B.
https://<account-identifier>.snowflakecomputing.com).Ein programmgesteuertes Snowflake-Zugriffstoken (PAT) für die Authentifizierung. Siehe Generierung eines programmatischen Zugriffstokens.
Einen Modellnamen zur Verwendung in Anforderungen. Siehe Verfügbarkeit der Modelle für verfügbare Modelle.
Schnellstart für Chat Completions API¶
Die Chat Completions API folgt der OpenAI-Spezifikation. Sie können direkt das OpenAI SDK verwenden.
Ersetzen Sie in den vorherigen Beispielen Folgendes:
<account-identifier>: Ihr Snowflake-Kontobezeichner.<SNOWFLAKE_PAT>: Ihr programmgesteuertes Snowflake-Zugriffstoken (PAT).model: Der Modellname. Siehe Verfügbarkeit der Modelle für unterstützte Modelle.
Schnellstart für Messages API¶
Die Messages API folgt der Anthropic-Spezifikation und unterstützt nur Claude-Modelle.
Das Anthropic SDK sendet Anmeldeinformationen standardmäßig über x-api-key, aber Snowflake erwartet ein Bearer-Token. Verwenden Sie einen httpx-Client, um den korrekten Authentifizierungsheader einzustellen.
Überschreiben Sie wie bei Python den Standard-Authentifizierungsheader mit einem Bearer-Token über``defaultHeaders``.
Ersetzen Sie in den vorherigen Beispielen Folgendes:
<account-identifier>: Ihr Snowflake-Kontobezeichner.<SNOWFLAKE_PAT>: Ihr programmgesteuertes Snowflake-Zugriffstoken (PAT).model: Der Name des Claude-Modells. Siehe Verfügbarkeit der Modelle für unterstützte Modelle.
Einrichten der Authentifizierung¶
Um sich bei der Cortex REST API zu authentifizieren, können Sie die unter Authentifizierung von Snowflake REST APIs mit Snowflake beschriebenen Methoden verwenden.
Stellen Sie den Authorization-Header ein, um Ihr Token einzufügen (z. B. ein JSON-Web-Token (JWT), ein OAuth-Token oder ein programmgesteuertes Zugriffstoken).
Tipp
Erwägen Sie die Einrichtung eines eigenen Benutzers für Cortex REST API-Anfragen.
Verfügbarkeit der Modelle¶
Die folgenden Tabellen zeigen die in der Cortex REST API für jede Region verfügbaren Modelle:
Modell
|
Cloudübergreifend
(Alle Regionen)
|
AWS Global
(Regionsübergreifend)
|
AWS-US
(Regionsübergreifend)
|
AWS-EU
(Regionsübergreifend)
|
AWS-APJ
(Regionsübergreifend)
|
Azure Global
(Regionsübergreifend)
|
Azure US
(Regionsübergreifend)
|
Azure EU
(Regionsübergreifend)
|
|---|---|---|---|---|---|---|---|---|
|
✔ |
✔ |
✔ |
✔ |
||||
|
✔ |
✔ |
||||||
|
✔ |
✔ |
✔ |
✔ |
||||
|
✔ |
✔ |
||||||
|
✔ |
✔ |
✔ |
|||||
|
✔ |
✔ |
✔ |
✔ |
||||
|
✔ |
✔ |
||||||
|
✔ |
✔ |
||||||
|
✔ |
✔ |
||||||
|
✔ |
✔ |
||||||
|
* |
* |
* |
* |
||||
|
* |
* |
||||||
|
* |
* |
||||||
|
✔ |
|||||||
|
* |
|||||||
|
✔ |
✔ |
||||||
|
✔ |
✔ |
||||||
|
✔ |
✔ |
||||||
|
✔ |
✔ |
||||||
|
✔ |
✔ |
||||||
|
✔ |
✔ |
||||||
|
✔ |
✔ |
||||||
|
✔ |
✔ |
||||||
|
✔ |
✔ |
Modell
|
AWS US West 2
(Oregon)
|
AWS US East 1
(N. Virginia)
|
Azure East US 2
(Virginia)
|
|---|---|---|---|
|
✔ |
✔ |
|
|
✔ |
||
|
✔ |
✔ |
✔ |
|
✔ |
✔ |
✔ |
|
✔ |
✔ |
✔ |
|
✔ |
||
|
✔ |
✔ |
✔ |
|
✔ |
✔ |
✔ |
|
✔ |
✔ |
✔ |
|
✔ |
Modell
|
AWS Europe Central 1
(Frankfurt)
|
AWS Europe West 1
(Ireland)
|
Azure West Europe
(Niederlande)
|
|---|---|---|---|
|
✔ |
✔ |
|
|
✔ |
✔ |
✔ |
|
✔ |
✔ |
|
|
✔ |
✔ |
|
|
✔ |
✔ |
✔ |
Modell
|
AWS AP Southeast 2
(Sydney)
|
AWS AP Northeast 1
(Tokio)
|
|---|---|---|
|
✔ |
✔ |
|
✔ |
✔ |
|
✔ |
|
|
✔ |
|
|
✔ |
✔ |
* Zeigt ein Vorschau-Feature oder ein Modell an. Vorschau-Features sind nicht für Produktions-Workloads geeignet.
Sie können auch jedes feinabgestimmte Modell in jeder unterstützten Region verwenden.
Features¶
Streaming¶
Beide APIs unterstützen Streaming-Antworten mit vom Server gesendeten Ereignissen.
Chat Completions-Streaming¶
Messages API-Streaming¶
Toolaufruf¶
Mit dem Toolaufruf kann das Modell während einer Konversation externe Funktionen aufgerufen werden. Der Workflow umfasst folgende Schritte:
Sie senden eine Anforderung mit einer Liste der verfügbaren Tools.
Das Modell beschließt, ein oder mehrere Tools aufzurufen, und gibt den Namen des Tools und die Argumente zurück.
Sie führen das Tool an Ihrem Ende aus.
Sie senden das Tool-Ergebnis zurück und das Modell generiert eine endgültige Antwort.
Der Toolaufruf wird für OpenAI- und Claude-Modelle unterstützt.
Toolaufruf mit Chat Completions¶
Schritt 1 – Senden der Anforderung mit Tools:
Das Modell antwortet mit einem tool_calls-Array:
Schritt 2 – Ausführen des Tools und Senden des Ergebnisses:
Toolaufruf mit Messages API¶
Schritt 1 – Senden der Anforderung mit Tools:
Das Modell antwortet mit einem``tool_use``-Inhaltsblock:
Schritt 2 – Ausführen des Tools und Senden des Ergebnisses:
Strukturierte Ausgabe¶
Sie können eine strukturierte JSON-Ausgabe anfordern, die einem bestimmten Schema entspricht. Dies wird für OpenAI und Claude-Modelle durch die Chat Completions API unterstützt. Für die Messages API verwenden Sie das tool_use-Muster, um eine strukturierte Ausgabe zu erzwingen.
Strukturierte Ausgabe mit Chat Completions¶
Verwenden Sie das Feld response_format mit einem JSON-Schema, um die Ausgabe des Modells einzuschränken.
Bemerkung
Claude-Modelle unterstützen nur``json_schema`` als Antwortformattyp.OpenAI-Modelle unterstützen zusätzliche Antwortformattypen, wie in der OpenAI API-Referenz dokumentiert.
Strukturierte Ausgabe mit der Messages API¶
Die Messages API hat kein Feld response_format. Definieren Sie stattdessen ein Tool mit dem gewünschten Ausgabeschema und weisen Sie das Modell an, dieses zu verwenden. Die tool_use-Antwort des Modells enthält strukturiertes JSON, das zu Ihrem Schema passt.
Bildeingabe¶
Sie können Bilder in Ihre Anfragen einfügen, wenn Sie Modelle nutzen, die visuelle Inhalte unterstützen. Bilder müssen als base64-codierte Zeichenfolgen bereitgestellt werden. Pro Konversation begrenzt auf 20 Bilder mit max. Anforderungsgröße von 20 MiB.
Die Bildeingabe wird unterstützt für:
Claude-Modelle (
claude-3-7-sonnetund höher)OpenAI-Modelle (
openai-gpt-4.1,openai-gpt-5,openai-gpt-5-chat,openai-gpt-5-mini,openai-gpt-5-nano)
Bildeingabe mit Chat Completions¶
Bildeingabe mit der Messages API¶
Die Messages API verwendet ein anderes Bildformat – einen source-Block mit den Feldern type,``media_type`` und data anstelle einer Daten-URL.
Zwischenspeichern von Eingabeaufforderungen¶
Durch das Caching von Prompts können Sie zuvor verarbeiteten Kontext (z. B. große System-Prompts, Dokumente oder den Konversationsverlauf) für Anforderungen wiederverwenden, was die Latenz und die Kosten reduziert.
OpenAI-Modelle: Das Caching ist implizit. Prompts mit mehr als 1.024 Token werden automatisch zwischengespeichert – es sind keine Anforderungsänderungen erforderlich.
Claude-Modelle Das Caching ist explizit. Fügen Sie
cache_control-Breakpoints zu Inhaltsblöcken hinzu, die zwischengespeichert werden sollen. Nur der Cachetypephemeralwird unterstützt, mit einem 5-Minuten-TTL. Maximal 4 Cache-Breakpoints pro Anforderung.
Prompt-Caching mit Chat Completions¶
Fügen Sie für Claude-Modelle über Chat Completions cache_control zu Inhaltsblöcken hinzu. OpenAI-Modelle werden automatisch zwischengespeichert und benötigen dieses Feld nicht.
Prompt-Caching mit der Messages API¶
Verwenden Sie cache_control für System- oder Benutzerinhaltsblöcken. Nur der Cachetyp ephemeral wird unterstützt, mit einem 5-Minuten-TTL. Pro Anforderung können maximal 4 Cache-Breakpoints gesetzt werden.
Bemerkung
Anthropic-Prompt-Caching hat ein 5-Minuten-TTL Zwischengespeicherte Inhalte, auf die nicht innerhalb von 5 Minuten zugegriffen wird, werden entfernt. OpenAI-Prompt-Caching ist implizit und wird automatisch verwaltet – keine cache_control-Felder erforderlich.
Thinking und Reasoning¶
Thinking mit Chat Completions¶
Für Claude-Modelle verwenden Sie das Objekt reasoning. Für OpenAI-Reasoning-Modelle verwenden Sie das Feld reasoning_effort (Werte: minimal, low, medium, high).
Thinking mit der Messages API¶
Einige Claude-Modelle unterstützen Adaptive Thinking, bei dem das Modell die Argumentationsfähigkeit an die Komplexität der Aufgabe anpasst. Die folgenden Modelle unterstützen Adaptive Thinking:
claude-opus-4-6
Verwenden Sie für die Messages API den Parameter thinking mit type: "adaptive", um Adaptive Thinking zu ermöglichen. Der Parameter output_config.effort bietet eine gewisse Kontrolle über die Denktiefe und akzeptiert die folgenden Werte:
Effort-Level |
Verhalten |
|---|---|
|
Denkt ohne Einschränkungen bei der Denktiefe. Nur Claude Opus 4.6. |
|
Denkt immer. Bietet tiefgreifendes Reasoning für komplexe Aufgaben. |
|
Moderates Denken. Kann den Denkprozess bei sehr einfachen Abfragen überspringen. |
|
Minimiert das Denken. Überspringt den Denkprozess bei einfachen Aufgaben, bei denen es am meisten auf die Geschwindigkeit ankommt. |
Die folgenden Beispiele zeigen, wie Sie einen Messages API-Aufruf mit aktiviertem Adaptive Thinking durchführen:
Die Antwort enthält Denk-Blöcke mit zusammengefasstem Denkprozessen und Denksignaturen. Geben Sie diese Blöcke in Multi-Turn-Konversationen zurück, um den Reasoning-Kontext beizubehalten:
Eine vollständige Beschreibung der Messages API-Unterstützung für Adaptive Thinking finden Sie in der `Claude API-Dokumentation – Adaptives Thinking<https://platform.claude.com/docs/en/build-with-claude/adaptive-thinking>`__.
Beta-Features (Messages API)¶
Die Messages API unterstützt Anthropic-Beta-Features über den anthropic-beta-Header. Übergeben Sie einen oder mehrere Beta-Header-Werte als kommagetrennte Zeichenfolge.
Beta-Header-Wert |
Feature |
|---|---|
|
Token-effiziente Tools |
|
Verschachteltes Denken |
|
Ermöglicht die Ausgabe von Token bis zu 128 K |
|
Entwicklermodus für Raw Thinking bei Claude 4+-Modellen |
|
1-Million-Token-Kontextfenster |
|
Kontextverwaltung |
|
Effort-Parameter für das Denken |
|
Tool für die Toolsuche |
|
Beispiele für die Verwendung von Tools |
Das folgende Beispiel aktiviert das 1-Million-Token-Kontextfenster mit claude-sonnet-4-6:
Sie können mehrere Beta-Features kombinieren, indem Sie eine durch Kommas getrennte Zeichenfolge übergeben:
Chat Completions API-Referenz¶
POST /api/v2/cortex/v1/chat/completions¶
Generiert eine Chat-Vervollständigung unter Verwendung des angegebenen Modells. Das Anforderungs- und Antwortformat folgt der OpenAI Chat Completions API-Spezifikation.
Erforderliche Header¶
Authorization: Bearer tokenAutorisierung für die Anforderung.
tokenist ein JSON-Web-Token (JWT), ein OAuth-Token oder ein programmgesteuertes Zugriffstoken. Weitere Details dazu finden Sie unter Authentifizierung von Snowflake REST APIs mit Snowflake.Content-Type: application/jsonGibt an, dass der Body der Anfrage im JSON-Format vorliegt.
Optionale Header¶
X-Snowflake-Authorization-Token-Type: typeDefiniert die Art des Tokens für die Autorisierung.
Wenn Sie die Kopfzeile
X-Snowflake-Authorization-Token-Typeweglassen, bestimmt Snowflake den Token-Typ, indem es das Token untersucht.Auch wenn diese Kopfzeile optional ist, können Sie sie angeben. Sie können die Kopfzeile auf einen der folgenden Werte setzen:
KEYPAIR_JWT(für Schlüsselpaar-Authentifizierung)OAUTH(für OAuth)PROGRAMMATIC_ACCESS_TOKEN(für programmatische Zugriffstokens)
Accept: application/json, text/event-streamGibt an, dass die Antwort entweder JSON (Fehlerfall) oder vom Server gesendete Ereignisse enthalten wird.
Erforderliche JSON-Felder¶
Feld |
Typ |
Beschreibung |
|---|---|---|
|
string |
Das zu verwendende Modell (siehe Verfügbarkeit der Modelle). Sie können auch den vollqualifizierten Namen eines beliebigen feinabgestimmten Modells im Format |
|
Array |
Ein Array von Nachrichtenobjekten, die die Konversation repräsentieren. Jede Nachricht muss eine |
Häufig verwendete optionale JSON-Felder¶
Feld |
Typ |
Standard |
Beschreibung |
|---|---|---|---|
|
Ganzzahl |
4096 |
Maximale Anzahl von Token in der Antwort. Das theoretische Maximum ist 131.072; jedes Modell hat seine eigene Ausgabebeschränkung. |
|
number |
Variiert je nach Modell |
Steuert die Zufälligkeit. Werte von 0 bis 2. |
|
number |
1.0 |
Steuert die Vielfalt über Kern-Sampling. |
|
boolean |
false |
Ob Teilfortschritte als vom Server gesendete Ereignisse zurückgestreamt werden sollen. |
|
Array |
null |
Eine Liste von Tools, die das Modell aufrufen kann. Jedes Tool muss |
|
string oder object |
|
Steuert, wie das Modell Tools auswählt. Optionen: |
|
Objekt |
null |
Schränkt das Ausgabeformat ein. Verwenden Sie |
|
string |
null |
Für OpenAI-Reasoning-Modelle. Werte: |
|
Objekt |
null |
Für Claude-Modelle. Legen Sie |
Die vollständige Liste der unterstützten Felder pro Modellfamilie finden Sie in der detaillierten Kompatibilitätstabelle.
Statuscodes¶
- 200
OK Anfrage erfolgreich abgeschlossen.
- 400
invalid options object Die optionalen Argumente haben ungültige Werte.
- 400
unknown model model_name Das angegebene Modell ist nicht vorhanden.
- 400
schema validation failed Die Struktur des Antwortschemas ist falsch.
- 400
max tokens of count exceeded Die Anforderung hat die maximale Anzahl der vom Modell unterstützten Token überschritten.
- 400
all requests were throttled by remote service Die Anforderung wurde gedrosselt. Versuchen Sie es später noch einmal.
- 402
budget exceeded Das Budget für den Modellverbrauch wurde überschritten.
- 403
Not Authorized Konto nicht für REST API aktiviert, oder die Standardrolle des aufrufenden Benutzers hat nicht die Datenbankrolle
snowflake.cortex_user.- 429
too many requests Das Nutzungskontingent wurde überschritten. Versuchen Sie es später noch einmal.
- 503
inference timed out Die Anfrage hat zu lange gedauert.
Einschränkungen¶
Wenn nicht gesetzt, ist der
max_completion_tokensStandardwert 4096. Jedes Modell hat seine eigenen Grenzwerte für die Ausgabetoken.Der Toolaufruf wird nur für OpenAI- und Claude-Modelle unterstützt.
Die Verwendung von Audio wird nicht unterstützt.
Bildverstehen wird nur für OpenAI- und Claude-Modelle unterstützt. Pro Konversation begrenzt auf 20 Bilder mit max. Anforderungsgröße von 20 MiB.
Nur Claude-Modelle unterstützen kurzlebige Cache-Kontrollpunkte für das Caching von Eingabeaufforderungen. OpenAI-Modelle unterstützen implizites Caching.
Nur Claude-Modelle unterstützen die Rückgabe des Reasonings in der Antwort.
max_tokensist veraltet. Verwenden Sie stattdessenmax_completion_tokens.Fehlermeldungen werden von Snowflake generiert, nicht vom Modellanbieter.
Detaillierte Kompatibilitätstabelle¶
Die folgenden Tabellen fassen zusammen, welche Felder für Anforderungen und Antworten bei Verwendung der Chat Completions API mit verschiedenen von Snowflake gehosteten Modellfamilien unterstützt werden.
Feld |
OpenAI-Modelle |
Claude-Modelle |
Andere Modelle |
|---|---|---|---|
|
✔ unterstützt |
✔ unterstützt |
✔ unterstützt |
|
Siehe Unterfelder |
Siehe Unterfelder |
Siehe Unterfelder |
|
❌-Fehler |
❌ Ignoriert |
❌ Ignoriert |
|
✔ unterstützt |
✔ Nur Benutzer/Assistent/System |
✔ Nur Benutzer/Assistent/System |
|
✔ unterstützt |
✔ unterstützt |
✔ unterstützt |
|
Siehe Unterfelder |
Siehe Unterfelder |
Siehe Unterfelder |
|
✔ unterstützt |
✔ unterstützt |
✔ unterstützt |
|
✔ unterstützt |
✔ unterstützt |
✔ unterstützt |
|
✔ unterstützt |
✔ unterstützt |
❌-Fehler |
|
❌ Ignoriert |
✔ unterstützt (nur ephemere) |
❌ Ignoriert |
|
❌-Fehler |
❌-Fehler |
❌ Ignoriert |
|
❌-Fehler |
❌ Ignoriert |
❌ Ignoriert |
|
✔ unterstützt |
❌ Ignoriert |
❌ Ignoriert |
|
✔ unterstützt (veraltet) |
❌ Ignoriert |
❌ Ignoriert |
|
✔ unterstützt |
❌ Ignoriert |
❌ Ignoriert |
|
✔ unterstützt |
❌ Ignoriert |
❌ Ignoriert |
|
✔ unterstützt |
✔ unterstützt |
❌ Ignoriert |
|
✔ unterstützt |
✔ nur |
❌ Ignoriert |
|
❌ Ignoriert |
✔ OpenRouter-Format |
❌ Ignoriert |
|
❌-Fehler |
❌ Ignoriert |
❌ Ignoriert |
|
✔ unterstützt |
❌ Ignoriert |
❌ Ignoriert |
|
✔ unterstützt |
❌ Ignoriert |
❌ Ignoriert |
|
✔ unterstützt |
❌ Ignoriert |
❌ Ignoriert |
|
❌ Fehler (veraltet) |
❌ Fehler (veraltet) |
❌ Fehler (veraltet) |
|
✔ unterstützt (Standardeinstellung 4096, max. 131072) |
✔ unterstützt (Standardeinstellung 4096, max. 131072) |
✔ unterstützt (Standardeinstellung 4096, max. 131072) |
|
❌ Ignoriert |
❌ Ignoriert |
❌ Ignoriert |
|
❌ Ignoriert |
❌ Ignoriert |
❌ Ignoriert |
|
✔ unterstützt |
❌ Ignoriert |
❌ Ignoriert |
|
✔ unterstützt |
❌ Ignoriert |
❌ Ignoriert |
|
✔ unterstützt |
❌ Ignoriert |
❌ Ignoriert |
|
✔ unterstützt |
❌ Ignoriert |
❌ Ignoriert |
|
✔ unterstützt |
❌ Ignoriert |
❌ Ignoriert |
|
✔ unterstützt |
❌ ignoriert (verwenden Sie das |
❌ Ignoriert |
|
Siehe Unterfelder |
Siehe Unterfelder |
Siehe Unterfelder |
|
✔ unterstützt (überschreibt |
✔ wird in |
❌ Ignoriert |
|
❌ Ignoriert |
✔ unterstützt |
❌ Ignoriert |
|
✔ unterstützt |
✔ nur |
❌ Ignoriert |
|
❌ Ignoriert |
❌ Ignoriert |
❌ Ignoriert |
|
❌-Fehler |
❌-Fehler |
❌-Fehler |
|
✔ unterstützt |
❌ Ignoriert |
❌ Ignoriert |
|
❌-Fehler |
❌-Fehler |
❌-Fehler |
|
✔ unterstützt |
✔ unterstützt |
✔ unterstützt |
|
Siehe Unterfelder |
Siehe Unterfelder |
Siehe Unterfelder |
|
❌ Ignoriert |
❌ Ignoriert |
❌ Ignoriert |
|
✔ unterstützt |
✔ unterstützt |
✔ unterstützt |
|
✔ unterstützt |
✔ unterstützt |
✔ unterstützt |
|
✔ unterstützt |
✔ nur |
❌ Ignoriert |
|
✔ unterstützt |
✔ nur |
❌-Fehler |
|
✔ unterstützt |
❌ Ignoriert |
❌ Ignoriert |
|
✔ unterstützt |
✔ unterstützt |
✔ unterstützt |
|
✔ unterstützt |
❌ Ignoriert |
❌ Ignoriert |
|
❌-Fehler |
❌ Ignoriert |
❌ Ignoriert |
Feld |
OpenAI-Modelle |
Claude-Modelle |
Andere Modelle |
|---|---|---|---|
|
✔ unterstützt |
✔ unterstützt |
✔ unterstützt |
|
✔ unterstützt |
✔ unterstützt |
✔ unterstützt |
|
✔ unterstützt |
✔ unterstützt |
✔ unterstützt |
|
✔ unterstützt |
✔ unterstützt |
✔ unterstützt |
|
Siehe Unterfelder |
Siehe Unterfelder |
Siehe Unterfelder |
|
✔ unterstützt |
✔ nur einfache Auswahl |
✔ nur einfache Auswahl |
|
✔ unterstützt |
❌ nicht unterstützt |
✔ nur |
|
✔ unterstützt |
❌ nicht unterstützt |
❌ nicht unterstützt |
|
Siehe Unterfelder |
Siehe Unterfelder |
Siehe Unterfelder |
|
✔ unterstützt |
✔ unterstützt |
✔ unterstützt |
|
✔ unterstützt |
✔ unterstützt |
✔ unterstützt |
|
✔ unterstützt |
❌ nicht unterstützt |
❌ nicht unterstützt |
|
❌ nicht unterstützt |
❌ nicht unterstützt |
❌ nicht unterstützt |
|
❌ nicht unterstützt |
❌ nicht unterstützt |
❌ nicht unterstützt |
|
✔ unterstützt |
❌ nicht unterstützt |
❌ nicht unterstützt |
|
✔ unterstützt |
✔ nur |
❌ nicht unterstützt |
|
❌ nicht unterstützt |
✔ OpenRouter-Format |
❌ nicht unterstützt |
|
Siehe Unterfelder |
Siehe Unterfelder |
Siehe Unterfelder |
|
✔ unterstützt |
✔ unterstützt |
✔ unterstützt |
|
✔ unterstützt |
❌ nicht unterstützt |
❌ nicht unterstützt |
|
✔ unterstützt |
❌ nicht unterstützt |
❌ nicht unterstützt |
|
✔ unterstützt |
❌ nicht unterstützt |
❌ nicht unterstützt |
|
✔ unterstützt |
✔ nur |
❌ nicht unterstützt |
|
❌ nicht unterstützt |
✔ OpenRouter-Format |
❌ nicht unterstützt |
|
Siehe Unterfelder |
Siehe Unterfelder |
Siehe Unterfelder |
|
✔ unterstützt |
✔ unterstützt |
✔ unterstützt |
|
✔ unterstützt |
✔ unterstützt |
✔ unterstützt |
|
✔ unterstützt |
✔ unterstützt |
✔ unterstützt |
|
Siehe Unterfelder |
Siehe Unterfelder |
Siehe Unterfelder |
|
❌ nicht unterstützt |
❌ nicht unterstützt |
❌ nicht unterstützt |
|
✔ Nur Lesecache |
✔ Lese- und Schreibcache |
❌ nicht unterstützt |
|
Siehe Unterfelder |
Siehe Unterfelder |
Siehe Unterfelder |
|
✔ unterstützt |
❌ nicht unterstützt |
❌ nicht unterstützt |
|
❌ nicht unterstützt |
❌ nicht unterstützt |
❌ nicht unterstützt |
|
✔ unterstützt |
❌ nicht unterstützt |
❌ nicht unterstützt |
|
✔ unterstützt |
❌ nicht unterstützt |
❌ nicht unterstützt |
|
✔ unterstützt |
❌ nicht unterstützt |
❌ nicht unterstützt |
|
✔ unterstützt |
❌ nicht unterstützt |
❌ nicht unterstützt |
Header |
Unterstützung |
|---|---|
|
✔ erforderlich |
|
✔ unterstützt ( |
|
✔ unterstützt ( |
Header |
Unterstützung |
|---|---|
|
❌ nicht unterstützt |
|
❌ nicht unterstützt |
|
❌ nicht unterstützt |
|
❌ nicht unterstützt |
|
❌ nicht unterstützt |
|
❌ nicht unterstützt |
|
❌ nicht unterstützt |
|
❌ nicht unterstützt |
|
❌ nicht unterstützt |
|
❌ nicht unterstützt |
Mehr erfahren¶
Weitere Anwendungsbeispiele finden Sie in der OpenAI Chat Completions API-Referenz oder dem OpenAI Cookbook.
Zusätzlich zur Kompatibilität mit der Chat Completions API unterstützt Snowflake OpenRouter-kompatible Features für Claude-Modelle. Diese Features werden als zusätzliche Felder auf der Anforderung angezeigt:
Verwenden Sie für das Zwischenspeichern von Eingabeaufforderungen das Feld
cache_control. Siehe die OpenRouter-Dokumentation zum Caching von Prompts.Verwenden Sie für Reasoning-Token das Feld
reasoning. Siehe die OpenRouter-Dokumentation zu Reasoning.
Messages API-Referenz¶
POST /api/v2/cortex/v1/messages¶
Generiert eine Antwort unter Verwendung eines Claude-Modells. Das Anforderungs- und Antwortformat folgt der Anthropic Messages API-Spezifikation.
Bemerkung
Die Messages API unterstützt nur Claude-Modelle. Für andere Modelle verwenden Sie die Chat Completions API.
Erforderliche Header¶
Authorization: Bearer tokenAutorisierung für die Anforderung.
tokenist ein JSON-Web-Token (JWT), ein OAuth-Token oder ein programmgesteuertes Zugriffstoken. Weitere Details dazu finden Sie unter Authentifizierung von Snowflake REST APIs mit Snowflake.Content-Type: application/jsonGibt an, dass der Body der Anfrage im JSON-Format vorliegt.
anthropic-version: 2023-06-01Erforderlicher Anthropic API-Versions-Header.
Optionale Header¶
X-Snowflake-Authorization-Token-Type: typeDefiniert die Art des Tokens für die Autorisierung.
Wenn Sie die Kopfzeile
X-Snowflake-Authorization-Token-Typeweglassen, bestimmt Snowflake den Token-Typ, indem es das Token untersucht.Auch wenn diese Kopfzeile optional ist, können Sie sie angeben. Sie können die Kopfzeile auf einen der folgenden Werte setzen:
KEYPAIR_JWT(für Schlüsselpaar-Authentifizierung)OAUTH(für OAuth)PROGRAMMATIC_ACCESS_TOKEN(für programmatische Zugriffstokens)
anthropic-beta: featureAktiviert Beta-Features. Es werden nur Bedrock-kompatible Beta-Header unterstützt.
Erforderliche JSON-Felder¶
Feld |
Typ |
Beschreibung |
|---|---|---|
|
string |
Das zu verwendende Claude-Modell (siehe Verfügbarkeit der Modelle). |
|
Ganzzahl |
Die maximale Anzahl von zu generierenden Token. |
|
Array |
Ein Array von Nachrichtenobjekten. Jede Nachricht enthält eine |
Unterstützte Features¶
Die Messages API unterstützt das Anthropic Messages API-Standard-Feature-Set für Claude-Modelle, einschließlich:
Textgenerierung und Multi-Turn-Konversationen
Streaming (
"stream": true)Systemmeldungen (über das Feld
systemder obersten Ebene)Toolaufruf (Anthropic-Format mit``name``,
description,input_schema)Bildeingabe (base64-Quellblöcke)
Prompt-Caching (
cache_controlfür Inhaltsblöcke)Erweitertes Thinking (
thinking-Parameter mitbudget_tokens)
Vollständige Details zum Anforderungs- und Antwortschema finden Sie in der ` Anthropic Messages API-Dokumentation <https://docs.anthropic.com/en/api/messages>`_.
Einschränkungen¶
Nur Claude-Modelle. OpenAI, Llama, Mistral und andere Modelle sind über diesen Endpunkt nicht verfügbar.
Keine flexible Verarbeitung oder Prioritätsstufe. Das Feld
service_tierwird nicht unterstützt.Nur Bedrock-Beta-Header. Nur Bedrock-kompatible
anthropic-beta-Header-Werte werden unterstützt.Fehlermeldungen werden von Snowflake und nicht von Anthropic generiert.
Statuscodes¶
- 200
OK Anfrage erfolgreich abgeschlossen.
- 400
invalid_request_error Der Anforderungstext ist fehlerhaft oder enthält ungültige Werte.
- 400
unknown model model_name Das angegebene Modell existiert nicht oder ist kein Claude-Modell.
- 402
budget exceeded Das Budget für den Modellverbrauch wurde überschritten.
- 403
Not Authorized Konto nicht für REST API aktiviert, oder die Standardrolle hat nicht die Datenbankrolle
snowflake.cortex_user.- 429
too many requests Das Nutzungskontingent wurde überschritten. Versuchen Sie es später noch einmal.
- 503
inference timed out Die Anfrage hat zu lange gedauert.
Rateneinschränkungen¶
Um für alle Snowflake-Kunden eine hohe Leistung sicherzustellen, unterliegen die Cortex REST API-Anforderungen Einschränkungen bezüglich der Anforderungsraten. Für Anfragen, die diese Einschränkungen überschreiten, wird ggf. der HTTP-Antwortcode 429 ausgegeben. Snowflake kann diese Einschränkungen gelegentlich anpassen.
Die in den folgenden Tabellen aufgeführten Standardeinschränkungen gelten pro Konto und werden für jedes Modell unabhängig voneinander angewendet. Stellen Sie sicher, dass Ihre Anwendung 429-Antworten ordnungsgemäß verarbeitet, indem Sie die Anforderung mit einem exponentiellen Backoff erneut durchführen.
Wenn Sie diese Einschränkungen erhöhen müssen, wenden Sie sich an den Snowflake-Support.
Modell
|
Verarbeitete Token
pro Minute (TPM)
|
Anfragen pro
Minute (RPM)
|
Maximale Ausgabe (Token)
|
|---|---|---|---|
claude-3-5-sonnet |
300,000 |
300 |
16.384 |
claude-3-7-sonnet |
300,000 |
300 |
16.384 |
claude-sonnet-4-5 |
600.000 |
600 |
16.384 |
claude-haiku-4-5 |
600.000 |
600 |
16.384 |
claude-4-sonnet |
300,000 |
300 |
16.384 |
claude-4-opus |
75.000 |
75 |
16.384 |
deepseek-r1 |
100,000 |
100 |
16.384 |
llama3.1-8b |
400,000 |
400 |
16.384 |
llama3.1-70b |
200,000 |
200 |
16.384 |
llama3.1-405b |
100,000 |
100 |
16.384 |
mistral-7b |
400,000 |
400 |
16.384 |
mistral-large2 |
200,000 |
200 |
16.384 |
openai-gpt-4.1 |
300,000 |
300 |
16.384 |
openai-gpt-5 |
300,000 |
300 |
16.384 |
openai-gpt-5-chat |
300,000 |
300 |
16.384 |
openai-gpt-5-mini |
1.000.000 |
1.000 |
16.384 |
openai-gpt-5-nano |
5.000.000 |
5.000 |
16.384 |
Einschränkungen für Anfrageraten mit regionenübergreifender Inferenz erhöhen¶
Wenn Sie in Ihrem Snowflake-Konto regionenübergreifende Inferenz eingerichtet haben, sind die Rateneinschränkungen bei folgenden Modellen höher:
Modell
|
Verarbeitete Token
pro Minute (TPM)
|
Anfragen pro
Minute (RPM)
|
Maximale Ausgabe (Token)
|
|---|---|---|---|
claude-3-7-sonnet |
600.000 |
600 |
16.384 |
claude-haiku-4-5 |
600.000 |
600 |
16.384 |
claude-sonnet-4-5 |
600.000 |
600 |
16.384 |
claude-4-sonnet |
1.200.000 |
1.200 |
16.384 |
claude-4-opus |
150.000 |
150 |
16.384 |
llama3.1-8b |
800.000 |
400 |
16.384 |
llama3.1-70b |
400,000 |
200 |
16.384 |
llama3.1-405b |
200,000 |
100 |
16.384 |
Fehlerbehebung bei Ereignissen mit Rateneinschränkungen¶
Ein Verstoß gegen die TPM- oder RPM-Einschränkungen führt zu einem 429-Antwortcode. Wenn Ihre REST-API-Nutzung unter der Rateneinschränkung für Anfragen pro Minute liegt, aber dennoch ein 429-Antwortcode empfangen wurde, überprüfen Sie die Token-Nutzungsrate.
Die Cortex-REST-API implementiert Rateneinschränkungen mit dem Muster des Zählers für gleitende Fenster. Die Zähler werden in einem hochverfügbaren Redis-Cluster gespeichert, auf den nur Snowflake Cortex innerhalb des privaten Netzwerks von Snowflake zugreifen kann.
Der Zähler für gleitende Fenster geht davon aus, dass Clientdatenverkehr zur API im vorherigen Zeitfenster gleichmäßig verteilt ist. Bei starkem Datenverkehr könnte diese Annahme zu einer Überschätzung der Anfragerate führen, aber da das Zeitfenster kurz ist, gleicht sich dies schnell wieder aus. Wenden Sie sich an den Snowflake-Support, wenn Sie auf eine solche Überschätzung stoßen und die Einschränkungen erhöhen möchten.
Bekannte Probleme¶
Ablauf des Sitzungstokens¶
Wir empfehlen, sich mit einer der drei in Authentifizierung von Snowflake REST APIs mit Snowflake definierten Methoden zu authentifizieren. Wenn Sie sich jedoch für die Authentifizierung mit einem Snowflake-Sitzungstoken entscheiden, müssen Sie die Aktualisierung des Tokens handhaben, um einen API-Zugriff ohne Unterbrechung sicherzustellen.
Sitzungstoken laufen regelmäßig ab. Wenn eine Anforderung mit einem abgelaufenen Sitzungstoken ausgeführt wird, gibt die REST-API eine 200 OK-Antwort zurück, die den Fehlercode 390112 enthält. In diesem Fall wird die Operation nicht ausgeführt.
Um dieses Verhalten verarbeiten zu können, sollte Ihre Anwendung Folgendes bieten:
Überprüfen Sie jeweils die API-Antwort für den Fehlercode
390112, auch wenn der HTTP-Statuscode200 OKist.Wenn der Fehlercode
390112erkannt wird, aktualisieren Sie das Sitzungstoken, und versuchen Sie erneut die Anforderung.
Bemerkung
Dieses Verhalten betrifft nur Anwendungen, die Snowflake-Sitzungstoken verwenden. Wenn Sie sich mit der Schlüsselpaar-Authentifizierung, OAuth oder mit :ref:`programmgesteuerten Zugriffstoken (PATs) <label-sfrest_authenticating_pat>`authentifizieren, müssen Sie diese Fehlerbehandlung nicht implementieren.
Hinweise zu Kosten¶
Snowflake Cortex REST API-Anforderungen verursachen Kosten, die sich nach der Anzahl der verarbeiteten Token richten. Die Kosten für jede Funktion in Dollar pro Million Token finden Sie in der Snowflake Service Consumption Table.
Ein Token ist die kleinste Texteinheit, die von den Snowflake Cortex-LLM-Funktionen verarbeitet wird, und entspricht etwa vier Textzeichen. Das Verhältnis des ein-/ausgegebene Rohtextes zur Tokenanzahl kann je nach Modell variieren.
Sowohl für Eingabe- als auch für Ausgabe-Token fallen Computekosten an. Wenn Sie die API verwenden, um ein Konversations- oder Chat-Benutzererlebnis zu bieten, werden alle vorherigen Prompts und Antworten verarbeitet, um jede neue Antwort zu generieren, mit entsprechenden Kosten.
