Mistral AI
Traduction IA avec Mistral et Lingo.dev Compiler
Qu'est-ce que Mistral AI ?
Mistral AI est une entreprise française d'intelligence artificielle spécialisée dans le développement de modèles de langage à grande échelle à poids ouverts, conçus pour être efficaces, personnalisables et accessibles pour un large éventail d'applications. L'entreprise met l'accent sur la transparence et la performance, en publiant des modèles qui peuvent fonctionner efficacement sur des infrastructures plus modestes par rapport à de nombreux concurrents.
Configuration de la clé API
Mistral AI nécessite une clé API pour authentifier les requêtes provenant de Lingo.dev Compiler. Choisissez la méthode de configuration qui correspond le mieux à votre flux de travail :
Option 1 : Variable d'environnement (Terminal)
Idéale pour les expérimentations rapides et les tests sans modifier de fichiers.
Définissez la clé directement dans votre session de terminal :
export MISTRAL_API_KEY="votre-clé-api-ici"
Cette clé sera disponible uniquement jusqu'à la fermeture de votre fenêtre de terminal.
Option 2 : Configuration de projet (.env)
Idéale pour la configuration spécifique à un projet et les environnements d'équipe où chaque projet peut utiliser des identifiants différents.
Créez un fichier .env
à la racine de votre projet :
touch .env
Ajoutez la ligne suivante au fichier :
MISTRAL_API_KEY="votre-clé-api-ici"
Lingo.dev Compiler vérifie les fichiers d'environnement dans cet ordre de priorité :
.env.development
(priorité la plus élevée).env.local
.env
(priorité la plus basse)
Les valeurs dans les fichiers de priorité supérieure remplacent celles des fichiers de priorité inférieure.
Option 3 : Configuration globale (Paramètres utilisateur)
Idéale pour les développeurs individuels qui souhaitent utiliser la même clé API pour tous leurs projets.
Créez un fichier de configuration dans votre répertoire personnel :
touch ~/.lingodotdevrc
Ajoutez le contenu suivant au fichier :
[llm]
mistralApiKey="votre-clé-api-ici"
Cette configuration persiste à travers toutes les sessions de terminal et tous les projets sur votre machine.
Priorité de configuration
Lorsque plusieurs méthodes de configuration sont utilisées, Lingo.dev Compiler vérifie les clés API dans cet ordre :
- Variables d'environnement (priorité la plus élevée)
- Fichiers .env du projet (dans leur propre ordre de priorité)
- Fichier de configuration utilisateur
~/.lingodotdevrc
(priorité la plus basse)
La première clé API valide trouvée est utilisée.
Utilisation de Mistral AI
Pour activer Mistral AI, définissez la propriété models
dans les options du compilateur :
import react from "@vitejs/plugin-react";
import lingoCompiler from "lingo.dev/compiler";
import { type UserConfig } from "vite";
// https://vite.dev/config/
const viteConfig: UserConfig = {
plugins: [react()],
};
const withLingo = lingoCompiler.vite({
sourceRoot: "src",
lingoDir: "lingo",
sourceLocale: "en",
targetLocales: ["es", "fr", "de", "ja"],
rsc: false,
useDirective: false,
debug: false,
models: {
"*:*": "mistral:mistral-large-latest",
},
});
export default withLingo(viteConfig);
Cette propriété accepte un objet où :
- les clés sont des paires de locales source et cible, avec
*
représentant n'importe quelle locale - les valeurs sont des identifiants de modèle (par exemple,
mistral:mistral-large-latest
)
Vous pouvez utiliser Mistral AI pour traduire :
- entre toutes les locales
- depuis une locale source spécifique
- vers une locale cible spécifique
- entre une locale source et une locale cible spécifiques
Traduction de toutes les locales
Utilisez le modèle générique *:*
pour appliquer le même modèle Mistral à toutes les paires de traduction :
const withLingo = lingoCompiler.vite({
sourceRoot: "src",
lingoDir: "lingo",
sourceLocale: "en",
targetLocales: ["es", "fr", "de", "ja", "pt", "zh"],
models: {
// Utiliser Mistral Large pour toutes les paires de traduction
"*:*": "mistral:mistral-large-latest",
},
});
Traduction depuis une locale source spécifique
Utilisez une locale source spécifique avec une cible générique pour appliquer un modèle à toutes les traductions depuis cette source :
const withLingo = lingoCompiler.vite({
sourceRoot: "src",
lingoDir: "lingo",
sourceLocale: "en",
targetLocales: ["es", "fr", "de", "ja", "pt", "zh"],
models: {
// Utiliser Mistral Large pour toutes les traductions depuis l'anglais
"en:*": "mistral:mistral-large-latest",
// Utiliser Mixtral pour les traductions de l'espagnol vers n'importe quelle langue
"es:*": "mistral:mixtral-8x7b",
// Solution de repli pour les autres langues source
"*:*": "mistral:mistral-small-latest",
},
});
Traduction vers une locale cible spécifique
Utilisez une source générique avec une locale cible spécifique pour appliquer un modèle à toutes les traductions vers cette cible :
const withLingo = lingoCompiler.vite({
sourceRoot: "src",
lingoDir: "lingo",
sourceLocale: "en",
targetLocales: ["es", "fr", "de", "ja", "pt", "zh"],
models: {
// Utiliser un modèle spécialisé pour les traductions vers le japonais
"*:ja": "mistral:mistral-large-latest",
// Utiliser Mixtral pour les traductions vers le chinois
"*:zh": "mistral:mixtral-8x22b",
// Utiliser Mistral Large pour les traductions vers le français (point fort de Mistral)
"*:fr": "mistral:mistral-large-latest",
// Modèle par défaut pour les autres langues cibles
"*:*": "mistral:mistral-small-latest",
},
});
Traduction entre locales spécifiques
Définissez des paires source-cible exactes pour un contrôle précis sur le modèle qui gère des combinaisons linguistiques spécifiques :
const withLingo = lingoCompiler.vite({
sourceRoot: "src",
lingoDir: "lingo",
sourceLocale: "en",
targetLocales: ["es", "fr", "de", "ja", "pt", "zh"],
models: {
// Paires spécifiques avec modèles optimaux
"en:es": "mistral:mistral-small-latest", // Anglais vers espagnol
"en:ja": "mistral:mistral-large-latest", // Anglais vers japonais
"en:zh": "mistral:mixtral-8x22b", // Anglais vers chinois
"en:fr": "mistral:mistral-large-latest", // Anglais vers français (excellence)
"es:en": "mistral:mistral-nemo", // Espagnol vers anglais
"fr:en": "mistral:mistral-medium-latest", // Français vers anglais
"de:en": "mistral:codestral", // Allemand vers anglais (technique)
// Solution de repli pour les paires non spécifiées
"*:*": "mistral:mistral-small-latest",
},
});