CodeStral: un guide complet de l'API de génération de code
CodeStral, un modèle génératif de pointe, excelle dans les tâches de génération de code comme le remplissage de milieu (FIM) et l'achèvement du code. Formé sur plus de 80 langages de programmation, c'est un outil polyvalent pour les développeurs travaillant avec des langages communs et moins utilisés. Ce didacticiel détaille comment utiliser efficacement l'API Codestral. Pour un aperçu plus large de CodeStral, consultez mon article sur "What Is Mistral's Codestral".
Points de terminaison de l'API
CodeStral propose deux points de terminaison API principaux:
codestral.mistral.ai
: Idéal pour les utilisateurs individuels et les projets à petite échelle. Actuellement gratuit (jusqu'au 1er août 2024), il passera à un modèle d'abonnement. api.mistral.ai
: Conçu pour les besoins commerciaux et l'utilisation à volume élevé, offrant des limites de taux accrues et un soutien robuste. Mistral recommande codestral.mistral.ai
pour les plugins IDE ou les outils orientés utilisateur, permettant aux utilisateurs de gérer leurs propres clés d'API. api.mistral.ai
est préféré pour d'autres applications en raison de ses limites de taux et de son évolutivité plus élevées. Ce tutoriel se concentre sur codestral.mistral.ai
.
Pour commencer
Obtention d'une clé API:
api.mistral.ai
, accédez à l'onglet Keys API et générez une nouvelle clé. Pour codestral.mistral.ai
, accédez à l'onglet CodeStral (souvent marqué "nouveau"), complétez l'inscription (Remarque: un numéro de téléphone est généralement requis) et accédez à votre clé une fois approuvé.
Authentification (python):
Nous utiliserons la bibliothèque requests
pour créer des fonctions d'authentification pour les deux points de terminaison:
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" #Corrected URL headers = { "Authorization": f"Bearer {api_key}", "Content-Type": "application/json", "Accept": "application/json" } response = requests.post(url, headers=headers, data=json.dumps(data)) return response.json() if response.status_code == 200 else f"Error: {response.status_code}, {response.text}" def call_fim_endpoint(data, api_key=api_key): url = "https://codestral.mistral.ai/v1/fim/completions" #Corrected URL headers = { "Authorization": f"Bearer {api_key}", "Content-Type": "application/json", "Accept": "application/json" } response = requests.post(url, headers=headers, data=json.dumps(data)) return response.json() if response.status_code == 200 else f"Error: {response.status_code}, {response.text}"
Comprendre les points de terminaison
Ferm-in-the-middle (fim) Point de terminaison:
génère du code pour combler l'écart entre un prompt
et un suffix
.
https://codestral.mistral.ai/v1/fim/completions
prompt
, suffix
(facultatif), stop
(facultatif) Exemple:
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)
instruire le point de terminaison:
utilise des instructions pour guider la génération de code.
https://codestral.mistral.ai/v1/chat/completions
prompt
, temperature
(facultatif), max_tokens
(facultatif) Exemple:
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" #Corrected URL headers = { "Authorization": f"Bearer {api_key}", "Content-Type": "application/json", "Accept": "application/json" } response = requests.post(url, headers=headers, data=json.dumps(data)) return response.json() if response.status_code == 200 else f"Error: {response.status_code}, {response.text}" def call_fim_endpoint(data, api_key=api_key): url = "https://codestral.mistral.ai/v1/fim/completions" #Corrected URL headers = { "Authorization": f"Bearer {api_key}", "Content-Type": "application/json", "Accept": "application/json" } response = requests.post(url, headers=headers, data=json.dumps(data)) return response.json() if response.status_code == 200 else f"Error: {response.status_code}, {response.text}"
Utilisation avancée
codestral.mistral.ai
a des limites de 30 demandes par minute et 2000 par jour; api.mistral.ai
a 200 demandes par seconde par espace de travail. Implémentez la logique de réessayer à l'aide de la bibliothèque time
de Python pour gérer les limites de taux. prompt
et temperature
pour affiner le code généré. Intégration
CodeStral s'intègre avec les IDE (VS Code, JetBrains) via des plugins comme Continuer.Dev. Vous pouvez également créer des scripts personnalisés. Voici un exemple pour générer des fonctions de test:
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)
meilleures pratiques
Conclusion
Ce guide fournit une introduction pratique à l'API codestral. Expérimentez et intégrez-le dans votre flux de travail pour améliorer votre processus de développement. Pour en savoir plus sur Mistral, explorez le tutoriel Mistral 7B et le guide pour travailler avec le Mistral Large Model.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!