Mistral AI
KI-Übersetzung mit Mistral und Lingo.dev Compiler
Was ist Mistral AI?
Mistral AI ist ein französisches Unternehmen für künstliche Intelligenz, das sich auf die Entwicklung von Open-Weight Large Language Models spezialisiert hat, die effizient, anpassbar und für eine Vielzahl von Anwendungen zugänglich sein sollen. Das Unternehmen legt Wert auf Transparenz und Leistung und veröffentlicht Modelle, die im Vergleich zu vielen Wettbewerbern effizient auf kleinerer Hardware laufen können.
Einrichten des API-Schlüssels
Mistral AI 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 MISTRAL_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 Konfigurationen 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:
MISTRAL_API_KEY="your-api-key-here"
Lingo.dev Compiler prüft Umgebungsdateien in dieser Prioritätsreihenfolge:
.env.development
(höchste Priorität).env.local
.env
(niedrigste Priorität)
Werte in Dateien mit höherer Priorität überschreiben die 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]
mistralApiKey="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 der Lingo.dev Compiler die API-Schlüssel in dieser Reihenfolge:
- Umgebungsvariablen (höchste Priorität)
- Projekt .env-Dateien (in ihrer eigenen Prioritätsreihenfolge)
- Benutzerkonfigurationsdatei
~/.lingodotdevrc
(niedrigste Priorität)
Der erste gültige API-Schlüssel, der gefunden wird, wird verwendet.
Verwendung von Mistral AI
Um Mistral AI 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: {
"*:*": "mistral:mistral-large-latest",
},
});
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.
mistral:mistral-large-latest
)
Sie können Mistral AI verwenden, um zu übersetzen:
- zwischen allen Sprachen
- von einer bestimmten Quellsprache
- in eine bestimmte Zielsprache
- zwischen einer bestimmten Quell- und Zielsprache
Übersetzung aller Sprachen
Verwenden Sie das Wildcard-Muster *:*
, um dasselbe Mistral-Modell für alle Übersetzungspaare anzuwenden:
const withLingo = lingoCompiler.vite({
sourceRoot: "src",
lingoDir: "lingo",
sourceLocale: "en",
targetLocales: ["es", "fr", "de", "ja", "pt", "zh"],
models: {
// Mistral Large für alle Übersetzungspaare verwenden
"*:*": "mistral:mistral-large-latest",
},
});
Ü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: {
// Mistral Large für alle Übersetzungen aus dem Englischen verwenden
"en:*": "mistral:mistral-large-latest",
// Mixtral für Übersetzungen vom Spanischen in jede Sprache verwenden
"es:*": "mistral:mixtral-8x7b",
// Fallback für andere Quellsprachen
"*:*": "mistral:mistral-small-latest",
},
});
Übersetzung in eine bestimmte Zielsprache
Verwenden Sie eine Wildcard-Quelle 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": "mistral:mistral-large-latest",
// Mixtral für Übersetzungen ins Chinesische verwenden
"*:zh": "mistral:mixtral-8x22b",
// Mistral Large für Übersetzungen ins Französische verwenden (Stärke von Mistral)
"*:fr": "mistral:mistral-large-latest",
// Standard für andere Zielsprachen
"*:*": "mistral:mistral-small-latest",
},
});
Ü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": "mistral:mistral-small-latest", // Englisch nach Spanisch
"en:ja": "mistral:mistral-large-latest", // Englisch nach Japanisch
"en:zh": "mistral:mixtral-8x22b", // Englisch nach Chinesisch
"en:fr": "mistral:mistral-large-latest", // Englisch nach Französisch (Exzellenz)
"es:en": "mistral:mistral-nemo", // Spanisch nach Englisch
"fr:en": "mistral:mistral-medium-latest", // Französisch nach Englisch
"de:en": "mistral:codestral", // Deutsch nach Englisch (technisch)
// Fallback für nicht spezifizierte Paare
"*:*": "mistral:mistral-small-latest",
},
});