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
- Setzen Sie
base_urlaufhttps://api.ablatic.ai. - Authentifizieren Sie sich über den
x-api-key-Header, gesetzt auf Ihrensk-ablatic-...-Key. Das SDK sendet diesen Header für Sie. - Rufen Sie den Endpoint
/v1/messagesauf, 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_formatwird auf/v1/messagesnicht berücksichtigt. Nutzen Sie die OpenAI-Schnittstelle für den JSON-Modus. Siehe OpenAI-Kompatibilität. stop_sequenceswerden 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_controlmarkiert, 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.