Feature/lmstudio provider (#30)
* chore: just a plan update * Add LM Studio as local AI provider (OpenAI-compatible, like Ollama) * Convert WebP thumbnails to JPEG before image analysis for LM Studio compatibility * Strengthen language enforcement in image analysis prompt for local models * Use i18n localized prompts for image analysis instead of English instructions * Add airplane mode (Flugmodus) with status bar toggle and offline model preferences * Fix flightmode: persist model IDs, skip network when offline, airplane icon * Auto-fallback to offline models in airplane mode for chat, title, and image analysis * Auto-select first local model as offline fallback when no explicit offline model configured * Block git fetch/pull/push and site upload in airplane mode * fix: thumbnails optimized for AI * fix: error handling in airplane mode --------- Co-authored-by: hugo <hugoms@me.com>
This commit is contained in:
@@ -78,5 +78,7 @@
|
||||
"render.month.9": "Sept.",
|
||||
"render.month.10": "Oktober",
|
||||
"render.month.11": "Nov.",
|
||||
"render.month.12": "Dezember"
|
||||
"render.month.12": "Dezember",
|
||||
"ai.imageAnalysis.system": "Du erzeugst Bild-Metadaten. Schreibe alle Werte auf Deutsch.\n\nRegeln:\n- \"title\": kurzer beschreibender Titel (3-8 Wörter)\n- \"alt\": sachliche Beschreibung des Sichtbaren (5-12 Wörter). Keine Interpretationen. Kein Präfix \"Bild von\".\n- \"caption\": ansprechende Blog-Bildunterschrift (5-20 Wörter)\n\nAntworte ausschließlich mit JSON: {\"title\": \"...\", \"alt\": \"...\", \"caption\": \"...\"}",
|
||||
"ai.imageAnalysis.user": "Analysiere dieses Bild. Antworte mit JSON auf Deutsch."
|
||||
}
|
||||
|
||||
@@ -78,5 +78,7 @@
|
||||
"render.month.9": "September",
|
||||
"render.month.10": "October",
|
||||
"render.month.11": "November",
|
||||
"render.month.12": "December"
|
||||
"render.month.12": "December",
|
||||
"ai.imageAnalysis.system": "You generate image metadata. Write all values in English.\n\nRules:\n- \"title\": short descriptive title (3-8 words)\n- \"alt\": factual description of what is visible (5-12 words). No interpretations. No \"Image of\" prefix.\n- \"caption\": engaging blog caption (5-20 words)\n\nRespond with JSON only: {\"title\": \"...\", \"alt\": \"...\", \"caption\": \"...\"}",
|
||||
"ai.imageAnalysis.user": "Analyze this image. Respond with JSON in English."
|
||||
}
|
||||
|
||||
@@ -78,5 +78,7 @@
|
||||
"render.month.9": "septiembre",
|
||||
"render.month.10": "octubre",
|
||||
"render.month.11": "noviembre",
|
||||
"render.month.12": "diciembre"
|
||||
"render.month.12": "diciembre",
|
||||
"ai.imageAnalysis.system": "Generas metadatos de imagen. Escribe todos los valores en español.\n\nReglas:\n- \"title\": título descriptivo corto (3-8 palabras)\n- \"alt\": descripción factual de lo visible (5-12 palabras). Sin interpretaciones. Sin prefijo \"Imagen de\".\n- \"caption\": pie de foto atractivo para blog (5-20 palabras)\n\nResponde solo con JSON: {\"title\": \"...\", \"alt\": \"...\", \"caption\": \"...\"}",
|
||||
"ai.imageAnalysis.user": "Analiza esta imagen. Responde con JSON en español."
|
||||
}
|
||||
|
||||
@@ -78,5 +78,7 @@
|
||||
"render.month.9": "septembre",
|
||||
"render.month.10": "octobre",
|
||||
"render.month.11": "novembre",
|
||||
"render.month.12": "décembre"
|
||||
"render.month.12": "décembre",
|
||||
"ai.imageAnalysis.system": "Tu génères des métadonnées d'image. Écris toutes les valeurs en français.\n\nRègles :\n- \"title\" : titre descriptif court (3-8 mots)\n- \"alt\" : description factuelle de ce qui est visible (5-12 mots). Pas d'interprétations. Pas de préfixe \"Image de\".\n- \"caption\" : légende de blog engageante (5-20 mots)\n\nRéponds uniquement en JSON : {\"title\": \"...\", \"alt\": \"...\", \"caption\": \"...\"}",
|
||||
"ai.imageAnalysis.user": "Analyse cette image. Réponds en JSON en français."
|
||||
}
|
||||
|
||||
@@ -78,5 +78,7 @@
|
||||
"render.month.9": "settembre",
|
||||
"render.month.10": "ottobre",
|
||||
"render.month.11": "novembre",
|
||||
"render.month.12": "dicembre"
|
||||
"render.month.12": "dicembre",
|
||||
"ai.imageAnalysis.system": "Generi metadati per immagini. Scrivi tutti i valori in italiano.\n\nRegole:\n- \"title\": titolo descrittivo breve (3-8 parole)\n- \"alt\": descrizione fattuale di ciò che è visibile (5-12 parole). Nessuna interpretazione. Nessun prefisso \"Immagine di\".\n- \"caption\": didascalia blog coinvolgente (5-20 parole)\n\nRispondi solo con JSON: {\"title\": \"...\", \"alt\": \"...\", \"caption\": \"...\"}",
|
||||
"ai.imageAnalysis.user": "Analizza questa immagine. Rispondi con JSON in italiano."
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user