Docs
Kompatibilität

Anthropic-Kompatibilität

Verwenden Sie das Anthropic-SDK mit Ablatic

Richten Sie das offizielle Anthropic-SDK auf Ablatic aus und behalten Sie Ihren Code. Der Endpoint /v1/messages ist ein Drop-in-Ersatz für die Anthropic Messages API.

Was Sie ändern

  1. Setzen Sie base_url auf https://api.ablatic.ai.
  2. Authentifizieren Sie sich über den x-api-key-Header, gesetzt auf Ihren sk-ablatic-...-Key. Das SDK sendet diesen Header für Sie.
  3. Rufen Sie den Endpoint /v1/messages auf, den das SDK standardmäßig anspricht.

Der anthropic-version-Header wird akzeptiert. Das SDK setzt ihn automatisch, Sie müssen ihn also nicht hinzufügen.

Python

from anthropic import Anthropic

client = Anthropic(
    base_url="https://api.ablatic.ai",
    api_key="sk-ablatic-...",
)

resp = client.messages.create(
    model="talos",
    max_tokens=1024,
    messages=[{"role": "user", "content": "Hello"}],
)
print(resp.content[0].text)

max_tokens ist auf dieser Schnittstelle erforderlich. Die Anthropic Messages API verlangt es, daher wird eine Anfrage ohne diesen Wert abgelehnt.

Streaming

Setzen Sie stream=True und lesen Sie die benannten SSE-Events, die die Anthropic API verwendet: message_start, dann content_block_start, content_block_delta, content_block_stop, dann message_delta und message_stop. Auf dieser Schnittstelle gibt es keine data: [DONE]-Zeile.

with client.messages.stream(
    model="talos",
    max_tokens=1024,
    messages=[{"role": "user", "content": "Write a haiku about Linz"}],
) as stream:
    for text in stream.text_stream:
        print(text, end="")

Dokumente

Hängen Sie ein PDF mit Anthropics document-Block an. Es wird nichts gespeichert, und der Upload-Schritt entfällt.

import base64

pdf = base64.standard_b64encode(open("report.pdf", "rb").read()).decode()

msg = client.messages.create(
    model="talos",
    max_tokens=1024,
    messages=[{
        "role": "user",
        "content": [
            {"type": "document", "source": {
                "type": "base64", "media_type": "application/pdf", "data": pdf,
            }},
            {"type": "text", "text": "Wie hoch ist der Rechnungsbetrag?"},
        ],
    }],
)

Ein PDF mit Textebene wird als Text extrahiert, bis zu 200.000 Zeichen. Ein Scan oder Foto-PDF wird zu Seitenbildern gerendert und vom Vision-Modell gelesen: höchstens 20 Seiten. Dateien beschreibt beide Wege und den Sonderfall gemischter PDFs.

source.type akzeptiert auch "text" für ein reines Textdokument. Eine "url"-Quelle wird nie abgerufen, und die Anfrage liefert trotzdem 200: Talos teilt dem Modell mit, dass die URL nicht aufgelöst wurde, die Antwort kommt also ohne das Dokument zurück. Laden Sie die Datei selbst herunter und senden Sie die Bytes.

Besonderheiten dieser Schnittstelle

Lesen Sie diese, bevor Sie Optionen von der Anthropic API übernehmen.

  • Strukturierte Ausgaben sind hier nicht verfügbar. response_format wird auf /v1/messages nicht berücksichtigt. Nutzen Sie die OpenAI-Schnittstelle für den JSON-Modus. Siehe OpenAI-Kompatibilität.
  • stop_sequences werden akzeptiert, aber ignoriert. Verlassen Sie sich nicht darauf, um die Generierung abzuschneiden.
  • Prompt-Caching ist real und wird abgerechnet. Der Server cacht Prompt-Präfixe automatisch, und cache_control markiert, welche Präfixe geprimt werden, und formt die Usage-Aufschlüsselung passend zum Anthropic-Format. Gecachte Reads kosten einen Bruchteil des Input-Tarifs; der erste Write wird zum normalen Input-Tarif berechnet, ohne Aufschlag. Siehe Nutzung und Abrechnung.
  • Frühere thinking-Blöcke werden verworfen. Vorheriger Reasoning-Inhalt wird nicht in eine Folgeanfrage zurückgeführt.

Nächste Schritte