Ollama
Lokale KI-Übersetzung mit Ollama und Lingo.dev Compiler
Was ist Ollama?
Ollama ermöglicht es Ihnen, große Sprachmodelle lokal auf Ihrem Gerät auszuführen. Es bietet vollständigen Datenschutz, keine API-Kosten und funktioniert offline. Sie können aus Modellen wie Llama, Mistral, Gemma und Qwen wählen. Ollama arbeitet mit Lingo.dev Compiler zusammen und ermöglicht die Übersetzung Ihrer Anwendungsinhalte mit lokalen Modellen.
Erste Schritte
Schritt 1. Ollama installieren
macOS
brew install ollama
Linux
curl -fsSL https://ollama.com/install.sh | sh
Windows
- Navigieren Sie zu ollama.com/download.
- Laden Sie den Installer herunter und führen Sie ihn aus.
Schritt 2. Ollama starten
Falls Ollama noch nicht läuft, starten Sie es mit folgendem Befehl:
ollama serve
Schritt 2. Ein Modell herunterladen
ollama pull llama3.1
Verwendung von Ollama
Um Ollama 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: {
"*:*": "ollama:llama3.1",
},
});
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.
ollama:llama3.1
)
Sie können Ollama 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 Ollama-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 für alle Übersetzungspaare verwenden
"*:*": "ollama:llama3.1",
},
});
### Übersetzung von einer spezifischen Quellsprache
Verwenden Sie eine spezifische Quellsprache mit Wildcard-Ziel, um ein Modell für alle Übersetzungen aus dieser Quelle anzuwenden:
```tsx
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:*": "ollama:llama3.1:70b",
// Mixtral für Übersetzungen aus dem Spanischen in jede Sprache verwenden
"es:*": "ollama:mixtral",
// Fallback für andere Quellsprachen
"*:*": "ollama:gemma2",
},
});
### Übersetzung in eine spezifische Zielsprache
Verwenden Sie eine Wildcard-Quelle mit spezifischer Zielsprache, um ein Modell für alle Übersetzungen in diese Zielsprache anzuwenden:
```tsx
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": "ollama:qwen2",
// Mixtral für Übersetzungen ins Chinesische verwenden
"*:zh": "ollama:mixtral",
// Mistral für Übersetzungen ins Deutsche verwenden
"*:de": "ollama:mistral",
// Standard für andere Zielsprachen
"*:*": "ollama:llama3.1",
},
});
### Übersetzung zwischen spezifischen Sprachen
Definieren Sie exakte Quell-Ziel-Paare für eine präzise Kontrolle darüber, welches Modell bestimmte Sprachkombinationen verarbeitet:
```tsx
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": "ollama:gemma2", // Englisch nach Spanisch
"en:ja": "ollama:qwen2", // Englisch nach Japanisch
"en:zh": "ollama:qwen2", // Englisch nach Chinesisch
"es:en": "ollama:llama3.1", // Spanisch nach Englisch
"fr:en": "ollama:mistral", // Französisch nach Englisch
"de:en": "ollama:phi3", // Deutsch nach Englisch
// Fallback für nicht spezifizierte Paare
"*:*": "ollama:llama3.1",
},
});