Groq
Traduction IA avec Groq et Lingo.dev Compiler
Qu'est-ce que Groq ?
Groq est une entreprise qui conçoit du matériel et des logiciels d'IA haute performance optimisés pour l'inférence à latence ultra-faible. Ses solutions visent à accélérer les charges de travail d'IA dans des domaines comme les grands modèles de langage et l'analytique en temps réel en exploitant son architecture personnalisée de processeur de streaming tensoriel.
Configuration de la clé API
Groq nécessite une clé API pour authentifier les requêtes provenant du Compilateur Lingo.dev. 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 GROQ_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 :
GROQ_API_KEY="votre-clé-api-ici"
Le Compilateur Lingo.dev vérifie les fichiers d'environnement dans cet ordre de priorité :
.env.development
(priorité la plus haute).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]
groqApiKey="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, le Compilateur Lingo.dev vérifie les clés API dans cet ordre :
- Variables d'environnement (priorité la plus haute)
- 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 Groq
Pour activer Groq, 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: {
"*:*": "groq:llama-3.1-8b-instant",
},
});
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èles (par exemple,
groq:llama-3.1-8b-instant
)
Vous pouvez utiliser Groq pour traduire :
- entre toutes les locales
- à partir d'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 Groq à toutes les paires de traduction :
const withLingo = lingoCompiler.vite({
sourceRoot: "src",
lingoDir: "lingo",
sourceLocale: "en",
targetLocales: ["es", "fr", "de", "ja", "pt", "zh"],
models: {
// Utiliser Llama 3.1 8B pour toutes les paires de traduction
"*:*": "groq:llama-3.1-8b-instant",
},
});
Traduction à partir d'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 Llama 3.1 70B pour toutes les traductions depuis l'anglais
"en:*": "groq:llama-3.1-70b-versatile",
// Utiliser Mixtral pour les traductions de l'espagnol vers n'importe quelle langue
"es:*": "groq:mixtral-8x7b-32768",
// Solution de repli pour les autres langues source
"*:*": "groq:llama-3.1-8b-instant",
},
});
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": "groq:llama-3.1-70b-versatile",
// Utiliser Mixtral pour les traductions vers le chinois
"*:zh": "groq:mixtral-8x7b-32768",
// Utiliser Gemma 2 pour les traductions vers l'allemand
"*:de": "groq:gemma2-9b-it",
// Modèle par défaut pour les autres langues cibles
"*:*": "groq:llama-3.1-8b-instant",
},
});
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": "groq:llama-3.1-70b-versatile", // Anglais vers espagnol
"en:ja": "groq:llama-3.1-70b-versatile", // Anglais vers japonais
"en:zh": "groq:mixtral-8x7b-32768", // Anglais vers chinois
"es:en": "groq:llama-3.1-8b-instant", // Espagnol vers anglais
"fr:en": "groq:gemma2-9b-it", // Français vers anglais
"de:en": "groq:gemma2-9b-it", // Allemand vers anglais
// Solution de repli pour les paires non spécifiées
"*:*": "groq:llama-3.1-8b-instant",
},
});