Kurs
Codestral ist ein hochmodernes generatives Modell, das für Codegenerierung optimiert ist, darunter Fill-in-the-Middle (FIM) und Codevervollständigung. Es wurde auf über 80 Programmiersprachen trainiert und glänzt sowohl in gängigen als auch in seltener verwendeten Sprachen — ein vielseitiges Werkzeug für Entwickler.
Über die Codestral API lässt sich die Codegenerierung automatisieren und nahtlos in Workflows integrieren. In diesem Tutorial bekommst du eine Schritt-für-Schritt-Anleitung zur Nutzung der Codestral API.
Wenn du zuerst einen Überblick zu Codestral willst, lies meinen Artikel What is Mistral’s Codestral.
Codestral API-Endpunkte
Codestral bietet zwei zentrale API-Endpunkte für unterschiedliche Anforderungen:
- codestral.mistral.ai: Ideal für einzelne Nutzer und kleinere Integrationen. Dieser Endpunkt ist derzeit bis zum 1. August 2024 kostenlos, danach wird er als monatliches Abo angeboten.
- api.mistral.ai: Für Unternehmen und anspruchsvolle Use Cases mit höheren Ratenlimits und robuster Unterstützung für großskalige Anwendungen.
Mistral empfiehlt den Endpunkt codestral.mistral.ai, wenn du Codestral als Teil eines IDE-Plugins nutzen oder Tools bauen willst, die Endpunkte direkt für Nutzer zugänglich machen, damit sie ihre eigenen API-Schlüssel verwenden können.
Für alle anderen Anwendungsfälle empfiehlt Mistral den Endpunkt api.mistral.ai, da er höhere Ratenlimits bietet und besser für Business-Anwendungen geeignet ist.
In diesem Tutorial verwenden wir den Endpunkt codestral.mistral.ai, um die Fähigkeiten von Codestral zu demonstrieren.
Erste Schritte mit der Codestral API
API-Schlüssel anfordern
Um die Codestral API zu nutzen, brauchst du ein Mistral-AI-Konto und einen API-Schlüssel. Gehe so vor:
Schritt 1: Registrieren
Besuche die Registrierungsseite von Mistral AI und erstelle ein Konto.
Schritt 2: API-Schlüssel holen
Für api.mistral.ai wechsle zum Tab API Keys und klicke auf Create new key, um deinen API-Schlüssel zu generieren.

Für codestral.mistral.ai: Wechsle zum Tab Codestral (mit dem „New“-Badge unterhalb des Tabs API Keys) und folge den Anweisungen, um deinen API-Schlüssel zu erhalten. Beachte, dass es derzeit eine Warteliste gibt und du zur Anmeldung eine Telefonnummer angeben musst. Nach Freigabe erhältst du Zugriff auf deinen API-Schlüssel sowie zwei codestral.mistral.ai-spezifische Endpunkte auf derselben Seite, wie unten gezeigt:

Dieser Artikel nutzt die codestral.mistral.ai-Endpunkte, um Codestral zu demonstrieren. Alle Beispiele sind entsprechend darauf zugeschnitten.
Authentifizierung
Zur Authentifizierung unserer API-Anfragen erstellen wir zwei Python-Funktionen mit der Bibliothek requests. Diese Funktionen übernehmen die Kommunikation mit den beiden Codestral-API-Endpunkten und fügen den API-Schlüssel zur Authentifizierung in die Request-Header ein. Hier sind die beiden Funktionen:
call_chat_endpoint— Aufruf des Chat-Endpunktshttps://codestral.mistral.ai/v1/chat/completions.call_fim_endpoint— Aufruf des Completion-Endpunktshttps://codestral.mistral.ai/v1/fim/completions.
So funktioniert das in Python:
import requests
import json
api_key = 'INSERT YOUR API KEY HERE'
def call_chat_endpoint(data, api_key=api_key):
url = "<https://codestral.mistral.ai/v1/chat/completions>"
headers = {
"Authorization": f"Bearer {api_key}",
"Content-Type": "application/json",
"Accept": "application/json"
}
response = requests.post(url, headers=headers, data=json.dumps(data))
if response.status_code == 200:
return response.json()
else:
return f"Error: {response.status_code}, {response.text}"
def call_fim_endpoint(data, api_key=api_key):
url = "<https://codestral.mistral.ai/v1/fim/completions>"
headers = {
"Authorization": f"Bearer {api_key}",
"Content-Type": "application/json",
"Accept": "application/json"
}
response = requests.post(url, headers=headers, data=json.dumps(data))
if response.status_code == 200:
return response.json()
else:
return f"Error: {response.status_code}, {response.text}"
Die Codestral-API-Endpunkte verstehen
Nachdem wir den API-Schlüssel geholt und die Authentifizierungsfunktionen eingerichtet haben, schauen wir uns an, wie wir die beiden Endpunkte von Codestral zur Codegenerierung nutzen. Wir starten mit dem Fill-in-the-Middle-(FIM)-Endpunkt.
Fill-in-the-Middle-Endpunkt
Der Fill-in-the-Middle-Endpunkt generiert Code, der zwischen einem Startpunkt (Prompt) und einem optionalen Endpunkt (Suffix) passt. Das ist besonders hilfreich, wenn ein bestimmtes Codefragment innerhalb einer größeren Struktur erzeugt werden soll.
API-Endpunkt-URL: https://codestral.mistral.ai/v1/fim/completions
Parameter:
prompt: Der Startpunkt des Codes.suffix(optional): Der Endpunkt des Codes.stop(optional): Eine Token-Sequenz, bei der die Generierung stoppt.
Beispiel:
prompt = "def fibonacci(n: int):"
suffix = "n = int(input('Enter a number: '))\\nprint(fibonacci(n))"
data = {
"model": "codestral-latest",
"prompt": prompt,
"suffix": suffix,
"temperature": 0
}
response = call_fim_endpoint(data)

Instruct-Endpunkt
Der Instruct-Endpunkt ermöglicht es, dem Modell Anweisungen für die Codegenerierung zu geben. Er eignet sich für offenere Aufgaben der Codeerstellung.
API-Endpunkt-URL: https://codestral.mistral.ai/v1/chat/completions
Parameter:
prompt: Die Anweisung für die Codegenerierungsaufgabe.temperature(optional): Steuert die Zufälligkeit des generierten Codes.max_tokens(optional): Begrenzt die Länge des generierten Codes.
Beispiel:
prompt = "Please write me a function that adds up two numbers"
data = {
"model": "codestral-latest",
"messages": [
{
"role": "user",
"content": prompt
}
],
"temperature": 0
}
response = call_chat_instruct_endpoint(data)

Fortgeschrittene API-Nutzung
Ratenlimits
Die Endpunkte haben unterschiedliche Ratenlimits:
- codestral.mistral.ai: 30 Anfragen pro Minute und 2000 Anfragen pro Tag.
- api.mistral.ai: 200 Anfragen pro Sekunde pro Workspace.
Um einen reibungslosen Betrieb sicherzustellen und Nutzungseinschränkungen nicht zu überschreiten, ist ein gutes Ratenlimit-Management entscheidend. Eine wirksame Strategie ist Retry-Logik: Eine Anfrage wird nach einer definierten Wartezeit pausiert und erneut gesendet — dafür können wir in Python die Bibliothek time nutzen.
Alternativ kannst du deine API-Nutzung mitloggen, um innerhalb der erlaubten Limits zu bleiben. Protokolliere die Anzahl der Requests und vergleiche sie mit den Ratenlimits.
Fehlerbehandlung
Häufige Fehlercodes sind:
- 401 Unauthorized: Ungültiger API-Schlüssel oder fehlende Authentifizierung.
- 429 Too Many Requests: Ratenlimit überschritten.
- 500 Internal Server Error: Serverprobleme auf Seiten von Mistral AI.
Bei 401 Unauthorized prüfe den API-Schlüssel und ob er korrekt in den Request-Headern enthalten ist.
Bei 429 Too Many Requests implementiere eine Retry-Logik, um nach einer Wartezeit erneut anzufragen.
Retry-Logik hilft auch bei 500 Internal Server Error, um die Anfrage später erneut zu versuchen.
Ausgabe anpassen
Um Format und Stil der Ausgabe zu steuern, kannst du Parameter wie Prompt (konkreter oder allgemeiner formulieren) und Temperature (Kreativität des Modells) anpassen.
Probiere diese Parameter aus, um die Balance zwischen Kreativität und Vorhersagbarkeit in der Codegenerierung zu finden.
Codestral API integrieren
Codestral ist nicht nur eine eigenständige API — du kannst sie in bestehende Entwicklungsworkflows einbinden. Schauen wir uns zwei gängige Wege an: über IDE- und Texteditor-Integrationen oder mit eigenen Skripten.
IDEs und Texteditoren
Codestral integriert sich per Plugin oder Erweiterung nahtlos in beliebte IDEs und Editoren. Du kannst Codestral zum Beispiel mit Continue.dev für VS Code oder JetBrains einrichten:
- Installiere die Erweiterung Continue für VS Code oder JetBrains.
- Wähle Mistral API als Provider und Codestral als Modell.
- Klicke auf Get API Key, um den Codestral-API-Schlüssel zu holen.
- Klicke auf Add model, dadurch wird die config.json automatisch befüllt.
Eigene Skripte
Du kannst eigene Skripte oder Anwendungen bauen, die die Codestral API für Codegenerierung nutzen. Hier ein einfaches Beispielskript, das Testfunktionen erzeugt:
prompt="""Sure, here is a simple function in Python that adds up two numbers:
def add_two_numbers(num1, num2):
return num1 + num2
You can use this function like this:
result = add_two_numbers(5, 3)
print(result) # Outputs: 8
This function takes two arguments, num1 and num2, and returns their sum.\ndef test_add_two_numbers():"""
suffix=""
data = { "model": "codestral-latest", "prompt": prompt, "suffix": suffix, "temperature": 0 }
response = call_fim_endpoint(data)

Best Practices für die Nutzung der Codestral API
Damit du das Maximum aus Codestral herausholst, hier einige Best Practices für eine effektive und verantwortungsvolle Nutzung der API.
Klare und präzise Prompts
Bei der Arbeit mit der Codestral API ist Klarheit entscheidend. Formuliere Prompts oder Anweisungen eindeutig und unmissverständlich, um die gewünschte Codeausgabe zu erhalten. Mit konkreten, kontextreichen Prompts lenkst du das Modell in die richtige Richtung.
Iteratives Verfeinern
Die Optimierung deiner Interaktionen mit der Codestral API ist ein iterativer Prozess. Experimentiere mit Parametern, Prompts und Eingaben, um die gewünschten Ergebnisse zu erreichen. Analysiere die generierten Codes und nutze die Erkenntnisse, um deine Prompts anzupassen. So steigerst du Qualität und Relevanz der Ergebnisse Schritt für Schritt.
Verantwortungsvoller Einsatz
Ein verantwortungsvoller Einsatz der Codestral API ist wichtig. Achte darauf, dass deine Nutzung ethischen und rechtlichen Standards entspricht. Vermeide das Generieren von Code mit potenziell schädlichem Zweck. Halte dich an sichere und ethische Programmierpraktiken und respektiere Privatsphäre sowie Rechte anderer. So trägst du zu einem positiven und nachhaltigen Entwicklungsumfeld bei.
Fazit
Dieses Tutorial hat dir eine praxisnahe Einführung in die Nutzung der Codestral API zur Codegenerierung gegeben. Wir haben die verschiedenen Endpunkte, Best Practices und Integrationsoptionen erkundet.
Probier die API aus und finde heraus, wie sie deinen Entwicklungsworkflow nach vorne bringt.
Wenn du mehr über Mistral lernen willst, sieh dir dieses Mistral 7B Tutorial und diesen Guide für die Arbeit mit dem Mistral Large Model an.
Ryan ist ein führender Datenwissenschaftler, der sich auf die Entwicklung von KI-Anwendungen mit LLMs spezialisiert hat. Er ist Doktorand für natürliche Sprachverarbeitung und Wissensgraphen am Imperial College London, wo er auch seinen Master in Informatik gemacht hat. Außerhalb der Datenwissenschaft schreibt er einen wöchentlichen Substack-Newsletter, The Limitless Playbook, in dem er eine umsetzbare Idee von den besten Denkern der Welt teilt und gelegentlich über zentrale KI-Konzepte schreibt.
