Google AI

Traduction IA avec Google Gemini et Lingo.dev Compiler

Qu'est-ce que Google AI ?

Google AI Studio est un environnement de développement web permettant de créer, tester et déployer des applications alimentées par les modèles d'IA générative de Google, comme Gemini. Il permet aux développeurs d'expérimenter avec des prompts, d'affiner les réponses et d'intégrer des modèles dans des applications via des API, le tout dans une interface facile à utiliser connectée à Google Cloud.

Configuration de la clé API

Google 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 GOOGLE_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 :

GOOGLE_API_KEY="votre-clé-api-ici"

Lingo.dev Compiler vérifie les fichiers d'environnement dans cet ordre de priorité :

  1. .env.development (priorité la plus haute)
  2. .env.local
  3. .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]
googleApiKey="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 :

  1. Variables d'environnement (priorité la plus élevée)
  2. Fichiers .env du projet (selon leur propre ordre de priorité)
  3. Fichier de configuration utilisateur ~/.lingodotdevrc (priorité la plus basse)

La première clé API valide trouvée est utilisée.

Utilisation de Google AI

Pour activer Google 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: {
    "*:*": "google:gemini-1.5-flash",
  },
});

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, google:gemini-1.5-flash)

Vous pouvez utiliser Google 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 Google à toutes les paires de traduction :

const withLingo = lingoCompiler.vite({
  sourceRoot: "src",
  lingoDir: "lingo",
  sourceLocale: "en",
  targetLocales: ["es", "fr", "de", "ja", "pt", "zh"],
  models: {
    // Utiliser Gemini 1.5 Flash pour toutes les paires de traduction
    "*:*": "google:gemini-1.5-flash",
  },
});

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 Gemini 1.5 Pro pour toutes les traductions depuis l'anglais
    "en:*": "google:gemini-1.5-pro",
    // Utiliser Gemini 1.5 Flash pour les traductions de l'espagnol vers n'importe quelle langue
    "es:*": "google:gemini-1.5-flash",
    // Solution de repli pour les autres langues source
    "*:*": "google:gemini-1.5-flash-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": "google:gemini-1.5-pro",
    // Utiliser Gemini 1.5 Flash pour les traductions vers le chinois
    "*:zh": "google:gemini-1.5-flash",
    // Utiliser Gemini 1.5 Pro pour les traductions vers l'allemand
    "*:de": "google:gemini-1.5-pro-latest",
    // Modèle par défaut pour les autres langues cibles
    "*:*": "google:gemini-1.5-flash",
  },
});

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": "google:gemini-1.5-flash", // Anglais vers espagnol
    "en:ja": "google:gemini-1.5-pro", // Anglais vers japonais
    "en:zh": "google:gemini-1.5-pro", // Anglais vers chinois
    "es:en": "google:gemini-1.5-flash", // Espagnol vers anglais
    "fr:en": "google:gemini-1.5-flash-latest", // Français vers anglais
    "de:en": "google:gemini-1.0-pro", // Allemand vers anglais

    // Solution de repli pour les paires non spécifiées
    "*:*": "google:gemini-1.5-flash",
  },
});