"use client"; import { useState, useEffect } from "react"; import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card"; import { Button } from "@/components/ui/button"; import { Textarea } from "@/components/ui/textarea"; import { Badge } from "@/components/ui/badge"; import { useTranslationStore } from "@/lib/store"; import { Save, Loader2, Brain, BookOpen, Sparkles, Trash2 } from "lucide-react"; export default function ContextGlossaryPage() { const { settings, updateSettings, applyPreset, clearContext } = useTranslationStore(); const [isSaving, setIsSaving] = useState(false); const [localSettings, setLocalSettings] = useState({ systemPrompt: settings.systemPrompt, glossary: settings.glossary, }); useEffect(() => { setLocalSettings({ systemPrompt: settings.systemPrompt, glossary: settings.glossary, }); }, [settings]); const handleSave = async () => { setIsSaving(true); try { updateSettings(localSettings); await new Promise((resolve) => setTimeout(resolve, 500)); } finally { setIsSaving(false); } }; const handleApplyPreset = (preset: 'hvac' | 'it' | 'legal' | 'medical') => { applyPreset(preset); // Need to get the updated values from the store after applying preset setTimeout(() => { setLocalSettings({ systemPrompt: useTranslationStore.getState().settings.systemPrompt, glossary: useTranslationStore.getState().settings.glossary, }); }, 0); }; const handleClear = () => { clearContext(); setLocalSettings({ systemPrompt: "", glossary: "", }); }; // Check which LLM providers are configured const isOllamaConfigured = settings.ollamaUrl && settings.ollamaModel; const isOpenAIConfigured = !!settings.openaiApiKey; const isWebLLMAvailable = typeof window !== 'undefined' && 'gpu' in navigator; return (

Context & Glossary

Configure translation context and glossary for LLM-based providers.

{/* LLM Provider Status */}
πŸ€– Ollama {isOllamaConfigured ? 'βœ“' : 'β—‹'} 🧠 OpenAI {isOpenAIConfigured ? 'βœ“' : 'β—‹'} πŸ’» WebLLM {isWebLLMAvailable ? 'βœ“' : 'β—‹'}
{/* Info Banner */}

Context & Glossary settings apply to all LLM providers: Ollama, OpenAI, and WebLLM. Use them to improve translation quality with domain-specific instructions.

{/* Left Column */}
{/* System Prompt */} System Prompt Instructions for the LLM to follow during translation. Works with Ollama, OpenAI, and WebLLM.