For the complete documentation index, see llms.txt. This page is also available as Markdown.

Python-SDK mit Unsloth verbinden

Anleitung zum Aufrufen der lokalen API von Unsloth aus Python mit den offiziellen OpenAI- oder Anthropic-SDKs, einschließlich Streaming, Vision, Funktionsaufrufen und den integrierten serverseitigen Tools von Unsloth.

Unsloth stellt drei OpenAI-kompatible Dialekte unter derselben Basis-URL bereit. Chat Completions, Responses und Anthropic Messages, sodass jedes gängige Python-SDK damit funktioniert. Du änderst nur die base_url und api_key am Client; alles andere (Streaming, Tool-Aufrufe, Vision, strukturierte Ausgabe) verhält sich so, wie es die SDK-Dokumentation beschreibt. Diese Seite behandelt die zwei SDKs, zu denen die meisten Entwickler zuerst greifen: das offizielle OpenAI Python SDK und das offizielle Anthropic Python SDK.

Wenn du dir nicht sicher bist, welche URL / welcher Schlüssel / welcher Modellname zu verwenden ist, lies zuerst die API-Übersicht. Dort wirst du durch das Starten, Laden eines Modells und das Erstellen eines sk-unsloth-… Schlüssels geführt.

🔑 Voraussetzungen

Bevor du die folgenden Snippets ausführst, benötigst du:

  • Unsloth lokal ausgeführt mit geladenem Modell (achte auf den Port: typischerweise 8000 oder 8888).

  • Einen sk-unsloth-… API-Schlüssel erstellt aus Einstellungen → API.

  • Ein Modellname. Der Name des GGUF-Modells in Unsloth (z. B. qwen-local, unsloth/Qwen3.6-27B-GGUF). Falls du ihn vergessen hast, führe Folgendes aus:

    curl http://localhost:8888/v1/models -H "Authorization: Bearer sk-unsloth-…"

    und kopiere das id Feld.

Setze den Schlüssel als Umgebungsvariable, damit du ihn nie in Code einfügst:

export UNSLOTH_STUDIO_AUTH_TOKEN=sk-unsloth-xxxxxxxxxxxx

🤖 OpenAI SDK

Unsloths /v1/chat/completions Endpunkt ist ein Drop-in für das OpenAI Python SDK. Der Client behandelt Unsloth wie jeden anderen OpenAI-kompatiblen Anbieter.

1. Installiere das SDK:

pip install openai

2. Erstelle einen Client mit Verweis auf Unsloth:

import os
from openai import OpenAI

client = OpenAI(
    base_url="http://localhost:8888/v1",              # dein unsloth-Port + /v1
    api_key=os.environ["UNSLOTH_STUDIO_AUTH_TOKEN"],     # dein sk-unsloth-…-Schlüssel
)

Einfache Chat Completion

Streaming

Setze stream=True und iteriere über den zurückgegebenen Generator:

Bilder (Vision)

Hänge ein Bild als image_url Inhaltsteil an. Unsloth akzeptiert entweder eine HTTP(S)-URL oder eine data: Base64-URI:

Das geladene Modell muss multimodal sein. Wenn du ein rein textbasiertes Modell lädst, wird die Vision-Anfrage strukturell erfolgreich sein, aber das Modell kann das Bild nicht „sehen“.

Funktionsaufrufe (OpenAI-Tools)

Übergib OpenAI-ähnliche tools und (optional) tool_choice und Unsloth leitet sie an das Backend weiter. Dein Client ist dafür verantwortlich, jeden Tool-Aufruf auszuführen und das Ergebnis im nächsten Durchlauf zurückzugeben:

Unsloth-Server-Tools (Kurzform)

Zusätzlich zu OpenAI-artigen Tools auf Client-Seite kann Unsloth Python, bashund Websuche serverseitig ausführen und die Ergebnisse automatisch zurückstreamen. Aktiviere dies über den extra_body Parameter, damit die Felder direkt an Unsloth durchgereicht werden:

Die session_id ist optional. Verwende sie, um den Tool-Status (z. B. einen Python-Kernel) über Aufrufe hinweg beizubehalten.

enabled_tools unterstützt derzeit "python", "bash"und "web_search". Tool-Ergebnisse werden als tool_result Ereignisse zurückgestreamt, sodass das Modell sie in seinem nächsten Durchlauf sehen kann.

Modelle auflisten

🧠 Anthropic SDK

Unsloths /v1/messages Endpunkt ist ein Drop-in für das Anthropic Python SDK.

1. Installiere das SDK:

2. Erstelle einen Client mit Verweis auf Unsloth:

Einfache Nachricht

Streaming

Das SDK stellt einen Kontextmanager bereit, der Text-Deltas liefert:

Bilder (Vision)

Anthropic-artiger Bildinhalt verwendet einen source Block mit Base64-Daten:

Tool-Aufrufe (Anthropic-Tools)

Übergib Anthropic-ähnliche tools mit einem input_schema und Unsloth leitet sie nativ weiter:

Unsloth-Server-Tools (Kurzform)

Die gleiche enable_tools / enabled_tools / session_id Kurzform funktioniert auch bei /v1/messages gib es einfach weiter extra_body:

Unsloth gibt benutzerdefinierte tool_result SSE-Ereignisse für die Sicht des Modells auf die Ausgabe jedes Tool-Aufrufs aus. Das Anthropic SDK reicht diese unverändert über seinen Ereignisstrom weiter.

JSON-Dekodierung (response_format)

Unsloth unterstützt OpenAI-artige strukturierte Ausgaben über response_format. Übergib ein JSON-Schema, und das Modell wird darauf beschränkt, JSON auszugeben, das diesem entspricht.

Die strict: True Flag weist Unsloth an, das Schema während der Dekodierung durchzusetzen, statt sich darauf zu verlassen, dass das Modell sich von selbst daran hält. additionalProperties: False und required funktionieren wie in standardmäßigem JSON Schema.

Die Terminalausgabe sollte ungefähr so aussehen:

🧪 Ein SDK auswählen

Beide SDKs funktionieren mit Unsloth. Die richtige Wahl hängt von deinem restlichen Stack ab:

  • Verwende das OpenAI SDK wenn dein Code bereits vom OpenAI-Python-Paket abhängt, du OpenAI-ähnliche tools / tool_choicemöchtest oder du die Responses API aufrufen willst.

  • Verwende das Anthropic SDK wenn dein Code bereits vom Anthropic-Paket abhängt, du Anthropics input_schema Tool-Format bevorzugst oder du die nativen Streaming-Ereignistypen von Anthropic möchtest.

Du kannst beide im selben Projekt verwenden. Unsloth stellt sie über denselben Port bereit, sodass ein einzelner sk-unsloth-… Schlüssel beide authentifiziert.

❔ Fehlerbehebung

401 Unauthorized Die UNSLOTH_STUDIO_AUTH_TOKEN Umgebungsvariable ist nicht gesetzt oder der Schlüssel ist falsch. Setze sie erneut und prüfe mit echo $UNSLOTH_STUDIO_AUTH_TOKEN.

404 Not Found aus dem OpenAI SDK Prüfe, dass base_url endet mit /v1. Das OpenAI SDK hängt Endpunktpfade unverändert an die Basis-URL an.

404 Not Found aus dem Anthropic SDK Prüfe, dass base_url endet nicht mit /v1. Das Anthropic SDK fügt /v1/messages selbst hinzu.

extra_body Felder gelangen nicht zu Unsloth Stelle sicher, dass du eine aktuelle openai / anthropic SDK-Version verwendest. Ältere Versionen verwerfen unbekannte Felder stillschweigend. Aktualisiere mit pip install -U openai anthropic.

Streaming „hängt“ und gibt dann alles auf einmal aus Alles, was deine Ausgabe umhüllt, puffert. In einem Skript print(..., flush=True); in einem Notebook ist es normalerweise in Ordnung; hinter einem Proxy musst du das Response-Buffering auf dem Proxy deaktivieren.

Bei Problemen auf Endpunkt-Ebene (falscher Port, Modell wird nicht geladen, Verbindung verloren usw.) siehe die API-Übersichtsseite.

Optional: Server-Standardwerte setzen

Du kannst das Standardverhalten des Servers vor der Verbindung mit dem Python SDK konfigurieren, wenn du den unsloth run Befehl verwendest.

Verwende --reasoning off um das Denken auszuschalten, oder --reasoning on um es für Modelle zu aktivieren, die Reasoning unterstützen.

Dadurch wird der Server auf 0.0.0.0:8888gestartet, sodass andere Geräte in deinem lokalen Netzwerk sich verbinden können.

Diese Einstellungen werden zu den Server-Standardeinstellungen, wenn Anfragen keine eigenen Generierungsparameter angeben.

Werte auf Anfrageebene wie temperature, top_p, max_tokensund stream können die Standardwerte für diese Anfrage weiterhin überschreiben.

Zuletzt aktualisiert

War das hilfreich?