WERBEPLATZ VERFÜGBAR · PARTNERSCHAFTEN WILLKOMMEN

Grok in eigene Anwendungen integrieren: API-Keys, Modellparameter und Function Calling

365Finds Editorial
11.430 Wiki-Artikel erfasst

365 Wiki mit deiner KI nutzen

Kopiere den Prompt unten, füge ihn in deine gewohnte KI ein und stelle direkt deine Frage.

Vollständigen Skill herunterladen

Probiere es zuerst mit dem Prompt aus. Wenn du 365 Wiki häufig nutzt, installiere den vollständigen 365Wiki Skill, damit du ihn nicht jedes Mal einfügen musst. Ohne bevorzugte KI funktionieren auch die Webversionen von Gemini oder Microsoft Copilot.

Die Integration der Grok-Modelle von xAI in eigene Software- und Unternehmenssysteme ermöglicht Entwicklern den Zugriff auf fortschrittliche logische Inferenz, sehr große Kontextfenster und Echtzeit-Datenverarbeitung. Die xAI-Plattform stellt unter dem Endpunkt https://api.x.ai/v1 eine vollständig OpenAI-kompatible REST-Schnittstelle bereit. Dadurch können Entwickler vorhandene OpenAI-SDKs direkt weiterverwenden oder offizielle Pakete wie xai-sdk sowie @ai-sdk/xai einbinden.

Eine produktionsreife Implementierung erfordert drei technische Kernschritte: das sichere Verwalten der API-Zugangsschlüssel, die feine Abstimmung der Laufzeitparameter für konsistente Modellausgaben und die Orchestrierung von Function Calling (Tool Calling), um Grok an lokale Microservices, interne Datenbanken und externe APIs anzubinden.


1. Beschaffung und Konfiguration der xAI-API-Zugangsdaten

Um auf die Grok-API zuzugreifen, sind ein aktives Konto im xAI Developer Portal, aufgeladenes Guthaben und die Erstellung eines API-Keys erforderlich.

Schritt 1: Kontoerstellung und API-Key-Generierung

  1. Rufen Sie die xAI Console unter https://console.x.ai auf.
  2. Richten Sie ein Abrechnungsprofil ein und laden Sie Nutzungsguthaben auf.
  3. Öffnen Sie den Bereich API Keys und erzeugen Sie einen neuen Schlüssel.
  4. Speichern Sie den generierten Schlüssel in den Umgebungsvariablen Ihres Systems und committen Sie ihn keinesfalls in Ihr Git-Repository:
export XAI_API_KEY="xai-ihr-api-key-hier"

In lokalen Entwicklungsumgebungen empfiehlt sich die Speicherung in einer nicht versionierten .env-Datei:

XAI_API_KEY=xai-ihr-api-key-hier

Schritt 2: Initialisierung des Clients

Dank der Kompatibilität mit dem OpenAI-Standard muss lediglich die Basis-URL auf https://api.x.ai/v1 gesetzt werden.

Python (OpenAI SDK)

import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ.get("XAI_API_KEY"),
    base_url="https://api.x.ai/v1",
)

TypeScript / Node.js (OpenAI SDK)

import OpenAI from "openai";

const client = new OpenAI({
  apiKey: process.env.XAI_API_KEY,
  baseURL: "https://api.x.ai/v1",
});

2. Modellauswahl und Feinabstimmung der Laufzeitparameter

Die Wahl des geeigneten Modells und die passende Parametrisierung gewährleisten die optimale Balance zwischen Latenz, Token-Kosten und Antwortpräzision.

Wichtige Produktionsmodelle im Überblick

Modell-IdentifierHauptstärkenKontextfensterTypische Einsatzbereiche
grok-4.7Flaggschiff-Modell für tiefgehende logische Inferenz und anspruchsvolle Tool-Orchestrierung500.000 TokensKomplexe Agenten-Workflows, Code-Reviews, anspruchsvolle Entscheidungslogik
grok-4.3Kosteneffizientes Modell mit hoher Verarbeitungsgeschwindigkeit1.000.000 TokensVerarbeitung umfangreicher Dokumente, große RAG-Pipelines, Kundensupport-Chatbots
grok-build-0.1Extrem schnelles, leichtgewichtiges Modell für Programmieraufgaben256.000 TokensInline-Code-Vervollständigung, Syntaxprüfung und Entwickler-Automatisierung

Wesentliche Inferenzparameter

Bei Aufrufen von chat.completions.create oder responses.create steuern die folgenden Parameter das Modellverhalten:


3. Grundlagen von Function Calling (Tool Calling)

Function Calling versetzt Grok in die Lage, selbstständig zu erkennen, wann externe Operationen (wie Datenbankabfragen oder API-Aufrufe) erforderlich sind. Das Modell konstruiert strukturierte Argumente gemäß dem bereitgestellten JSON-Schema und übergibt diese zur Ausführung an Ihre Anwendung.

Server-Tools vs. Client-Funktionen

xAI unterstützt zwei verschiedene Tool-Kategorien:

  1. Integrierte Server-Tools (Built-in Tools): Umfassen Websuche (web_search), Suche auf X (x_search) und Codeausführung in einer Sandbox (code_execution). Diese werden direkt und automatisch auf den xAI-Servern verarbeitet.
  2. Benutzerdefinierte Client-Funktionen (Function Calling): Benutzerdefinierte Funktionen, die in der Infrastruktur Ihrer Anwendung laufen. Wenn Grok eine solche Funktion anfordert, pausiert die API und liefert Funktionsnamen und Parameter zurück. Beide Tool-Arten können in einer Anfrage kombiniert werden.

Vorgaben für das JSON-Schema

Das Funktionsschema unter parameters muss exakt den Standards von JSON Schema entsprechen:

Steuerungsparameter


4. Vollständiges Implementierungsbeispiel in Python

Das folgende Skript zeigt die Definition einer Abfragefunktion, die Bereitstellung des Schemas, das Abfangen der Tool-Calls von Grok, die lokale Ausführung und die Rückgabe der Ergebnisse für die finale Formulierung der Antwort:

import json
import os
from openai import OpenAI

# Client für xAI-Endpunkt initialisieren
client = OpenAI(
    api_key=os.environ.get("XAI_API_KEY"),
    base_url="https://api.x.ai/v1",
)

# 1. Lokale Geschäftsfunktion definieren
def get_customer_order(order_id: str) -> dict:
    """Simulierte Datenbankabfrage für Kundenaufträge."""
    order_db = {
        "ORD-9821": {
            "order_id": "ORD-9821",
            "status": "Versendet",
            "items": ["Mechanische Tastatur", "USB-C-Schnellladekabel"],
            "delivery_date": "2026-10-02",
        },
        "ORD-5432": {
            "order_id": "ORD-5432",
            "status": "In Vorbereitung",
            "items": ["Kopfhörer mit Geräuschunterdrückung"],
            "delivery_date": "2026-10-05",
        },
    }
    return order_db.get(order_id, {"error": "Bestellnummer nicht gefunden"})

# Zuordnung verfügbarer Funktionen
available_tools = {
    "get_customer_order": get_customer_order,
}

# 2. Schema für Grok definieren
tools = [
    {
        "type": "function",
        "function": {
            "name": "get_customer_order",
            "description": "Ermittelt Lieferstatus und Artikeldetails zu einer bestimmten Bestellnummer.",
            "parameters": {
                "type": "object",
                "properties": {
                    "order_id": {
                        "type": "string",
                        "description": "Alphanumerische Bestellnummer, z. B. ORD-9821",
                    }
                },
                "required": ["order_id"],
            },
        },
    }
]

# 3. Erste Benutzeranfrage erstellen
messages = [
    {
        "role": "system",
        "content": "Du bist ein Kundenservice-Assistent. Verwende die Tools, um den Status präzise und freundlich mitzuteilen.",
    },
    {
        "role": "user",
        "content": "Können Sie bitte den aktuellen Lieferstatus für die Bestellung ORD-9821 überprüfen?",
    },
]

# 4. Erste API-Anfrage senden
response = client.chat.completions.create(
    model="grok-4.7",
    messages=messages,
    tools=tools,
    tool_choice="auto",
    temperature=0.1,  # Niedrige Temperatur für stabile Parametererzeugung
)

response_message = response.choices[0].message
tool_calls = response_message.tool_calls

# 5. Tool-Aufrufe verarbeiten, falls angefordert
if tool_calls:
    # Assistenten-Nachricht mit den Tool-Calls zum Verlauf hinzufügen
    messages.append(response_message)

    for tool_call in tool_calls:
        func_name = tool_call.function.name
        func_args = json.loads(tool_call.function.arguments)

        if func_name in available_tools:
            target_func = available_tools[func_name]
            output = target_func(**func_args)

            # Ergebnis mit passender tool_call_id anfügen
            messages.append(
                {
                    "role": "tool",
                    "tool_call_id": tool_call.id,
                    "content": json.dumps(output, ensure_ascii=False),
                }
            )

    # 6. Finale Antwort von Grok basierend auf den Daten anfordern
    second_response = client.chat.completions.create(
        model="grok-4.7",
        messages=messages,
    )
    final_text = second_response.choices[0].message.content
    print("Finale Antwort:\n", final_text)
else:
    print("Direkte Antwort:\n", response_message.content)

5. Best Practices für den Produktivbetrieb

  1. Strikte Wurzelobjekt-Validierung: Deklarieren Sie in parameters ausnahmslos "type": "object". Felder außerhalb von properties führen zu Syntaxfehlern mit dem Status 400.
  2. Idempotenz bei parallelen Aufrufen: Da parallel_tool_calls standardmäßig aktiv ist, können mehrere schreibende Aktionen simultan angefragt werden. Sichern Sie lokale Handler gegen unbeabsichtigte Doppelbuchungen ab.
  3. Strukturierte Fehlerbehandlung: Bei internen Timeouts oder Datenbankfehlern sollte der Prozess nicht abstürzen. Liefern Sie stattdessen eine strukturierte JSON-Fehlermeldung (z. B. {"error": "Datenbank antwortet nicht rechtzeitig"}) an Grok zurück, damit das Modell den Benutzer angemessen informieren kann.
  4. Schutz vor Ratenbegrenzung (Rate Limits): Fangen Sie HTTP 429-Fehler durch exponentielles Backoff (Exponential Backoff) mit automatischen Wiederholungsversuchen ab.
  5. Schutz des API-Schlüssels: Binden Sie XAI_API_KEY niemals in Frontend-Code (wie browserbasiertes JavaScript oder mobile Apps) ein. Sämtliche Anfragen müssen über ein vertrauenswürdiges Backend-Gateway geleitet werden.

Referenzen