Groq

KI-Übersetzung mit Groq und Lingo.dev Compiler

Was ist Groq?

Groq ist ein Unternehmen, das hochleistungsfähige KI-Hardware und -Software entwickelt, die für Inferenz mit extrem niedriger Latenz optimiert ist. Seine Lösungen zielen darauf ab, KI-Workloads in Bereichen wie große Sprachmodelle und Echtzeit-Analytik zu beschleunigen, indem sie auf ihre maßgeschneiderte Tensor Streaming Processor-Architektur setzen.

Einrichten des API-Schlüssels

Groq benötigt einen API-Schlüssel zur Authentifizierung von Anfragen vom Lingo.dev Compiler. Wählen Sie die Einrichtungsmethode, die am besten zu Ihrem Workflow passt:

Option 1: Umgebungsvariable (Terminal)

Am besten für schnelle Experimente und Tests ohne Änderung von Dateien geeignet.

Setzen Sie den Schlüssel direkt in Ihrer Terminal-Sitzung:

export GROQ_API_KEY="your-api-key-here"

Dieser Schlüssel ist nur verfügbar, bis Sie Ihr Terminal-Fenster schließen.

Option 2: Projektkonfiguration (.env)

Am besten für projektspezifische Konfiguration und Team-Umgebungen geeignet, in denen jedes Projekt unterschiedliche Anmeldedaten verwenden kann.

Erstellen Sie eine .env-Datei in Ihrem Projektverzeichnis:

touch .env

Fügen Sie die folgende Zeile zur Datei hinzu:

GROQ_API_KEY="your-api-key-here"

Lingo.dev Compiler prüft Umgebungsdateien in dieser Prioritätsreihenfolge:

  1. .env.development (höchste Priorität)
  2. .env.local
  3. .env (niedrigste Priorität)

Werte in Dateien mit höherer Priorität überschreiben diejenigen in Dateien mit niedrigerer Priorität.

Option 3: Globale Konfiguration (Benutzereinstellungen)

Am besten für einzelne Entwickler geeignet, die denselben API-Schlüssel für alle ihre Projekte verwenden möchten.

Erstellen Sie eine Konfigurationsdatei in Ihrem Home-Verzeichnis:

touch ~/.lingodotdevrc

Fügen Sie den folgenden Inhalt zur Datei hinzu:

[llm]
groqApiKey="your-api-key-here"

Diese Konfiguration bleibt über alle Terminal-Sitzungen und Projekte auf Ihrem Gerät bestehen.

Konfigurationspriorität

Wenn mehrere Konfigurationsmethoden verwendet werden, prüft Lingo.dev Compiler API-Schlüssel in dieser Reihenfolge:

  1. Umgebungsvariablen (höchste Priorität)
  2. Projekt .env-Dateien (in ihrer eigenen Prioritätsreihenfolge)
  3. Benutzerkonfigurationsdatei ~/.lingodotdevrc (niedrigste Priorität)

Der erste gültige API-Schlüssel, der gefunden wird, wird verwendet.

Verwendung von Groq

Um Groq zu aktivieren, setzen Sie die models-Eigenschaft in den Compiler-Optionen:

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);

Die Eigenschaft akzeptiert ein Objekt, bei dem:

  • die Schlüssel Paare von Quell- und Zielsprachen sind, wobei * für beliebige Sprachen steht
  • die Werte Modell-Identifikatoren sind (z.B. groq:llama-3.1-8b-instant)

Sie können Groq für Übersetzungen verwenden:

  • zwischen allen Sprachen
  • von einer bestimmten Quellsprache
  • zu einer bestimmten Zielsprache
  • zwischen einer bestimmten Quell- und Zielsprache

Übersetzung aller Sprachen

Verwenden Sie das Wildcard-Muster *:*, um dasselbe Groq-Modell für alle Übersetzungspaare anzuwenden:

const withLingo = lingoCompiler.vite({
  sourceRoot: "src",
  lingoDir: "lingo",
  sourceLocale: "en",
  targetLocales: ["es", "fr", "de", "ja", "pt", "zh"],
  models: {
    // Llama 3.1 8B für alle Übersetzungspaare verwenden
    "*:*": "groq:llama-3.1-8b-instant",
  },
});

Übersetzung von einer bestimmten Quellsprache

Verwenden Sie eine spezifische Quellsprache mit Wildcard-Ziel, um ein Modell für alle Übersetzungen aus dieser Quelle anzuwenden:

const withLingo = lingoCompiler.vite({
  sourceRoot: "src",
  lingoDir: "lingo",
  sourceLocale: "en",
  targetLocales: ["es", "fr", "de", "ja", "pt", "zh"],
  models: {
    // Llama 3.1 70B für alle Übersetzungen aus dem Englischen verwenden
    "en:*": "groq:llama-3.1-70b-versatile",
    // Mixtral für Übersetzungen vom Spanischen in jede Sprache verwenden
    "es:*": "groq:mixtral-8x7b-32768",
    // Fallback für andere Quellsprachen
    "*:*": "groq:llama-3.1-8b-instant",
  },
});

Übersetzung in eine bestimmte Zielsprache

Verwenden Sie einen Wildcard-Quellcode mit einer spezifischen Zielsprache, um ein Modell für alle Übersetzungen in diese Zielsprache anzuwenden:

const withLingo = lingoCompiler.vite({
  sourceRoot: "src",
  lingoDir: "lingo",
  sourceLocale: "en",
  targetLocales: ["es", "fr", "de", "ja", "pt", "zh"],
  models: {
    // Spezialisiertes Modell für Übersetzungen ins Japanische verwenden
    "*:ja": "groq:llama-3.1-70b-versatile",
    // Mixtral für Übersetzungen ins Chinesische verwenden
    "*:zh": "groq:mixtral-8x7b-32768",
    // Gemma 2 für Übersetzungen ins Deutsche verwenden
    "*:de": "groq:gemma2-9b-it",
    // Standard für andere Zielsprachen
    "*:*": "groq:llama-3.1-8b-instant",
  },
});

Übersetzung zwischen spezifischen Sprachen

Definieren Sie exakte Quell-Ziel-Paare für eine präzise Kontrolle darüber, welches Modell bestimmte Sprachkombinationen verarbeitet:

const withLingo = lingoCompiler.vite({
  sourceRoot: "src",
  lingoDir: "lingo",
  sourceLocale: "en",
  targetLocales: ["es", "fr", "de", "ja", "pt", "zh"],
  models: {
    // Spezifische Paare mit optimalen Modellen
    "en:es": "groq:llama-3.1-70b-versatile", // Englisch nach Spanisch
    "en:ja": "groq:llama-3.1-70b-versatile", // Englisch nach Japanisch
    "en:zh": "groq:mixtral-8x7b-32768", // Englisch nach Chinesisch
    "es:en": "groq:llama-3.1-8b-instant", // Spanisch nach Englisch
    "fr:en": "groq:gemma2-9b-it", // Französisch nach Englisch
    "de:en": "groq:gemma2-9b-it", // Deutsch nach Englisch

    // Fallback für nicht spezifizierte Paare
    "*:*": "groq:llama-3.1-8b-instant",
  },
});