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:
@@ -34,6 +34,7 @@
|
||||
"app.sitemapGenerationFailed": "Sitemap generation failed",
|
||||
"app.calendarRegenerationFailed": "Calendar regeneration failed",
|
||||
"app.uploadSiteFailed": "Site upload failed",
|
||||
"app.uploadSiteOfflineMode": "Site upload is blocked while airplane mode is active.",
|
||||
"app.uploadSiteNoCredentials": "Please configure SSH publishing credentials in Settings first.",
|
||||
"app.previewOpenFailed": "Failed to open selected post preview",
|
||||
"app.metadataDiff": "Metadata Diff",
|
||||
@@ -314,6 +315,7 @@
|
||||
"gitSidebar.error.loadRepoStatus": "Unable to load repository status.",
|
||||
"gitSidebar.error.initFailed": "Failed to initialize git repository.",
|
||||
"gitSidebar.error.actionFailed": "Failed to {action}.",
|
||||
"gitSidebar.error.offlineMode": "This action is blocked while airplane mode is active.",
|
||||
"gitSidebar.error.commitFailed": "Failed to commit changes.",
|
||||
"gitSidebar.progress.preparingInit": "Preparing repository initialization...",
|
||||
"gitSidebar.progress.pushingRemote": "Pushing commits to remote... this can take a while for large uploads.",
|
||||
@@ -742,6 +744,7 @@
|
||||
"settings.ai.providerOpenCode": "OpenCode",
|
||||
"settings.ai.providerMistral": "Mistral",
|
||||
"settings.ai.providerOllama": "Ollama (Local)",
|
||||
"settings.ai.providerLmstudio": "LM Studio (Local)",
|
||||
"settings.ai.providerOther": "Other",
|
||||
"settings.ai.ollamaLabel": "Ollama (Local Models)",
|
||||
"settings.ai.ollamaDescription": "Connect to a locally running Ollama instance to use local AI models.",
|
||||
@@ -756,6 +759,28 @@
|
||||
"settings.toast.modelCatalogRefreshFailed": "Failed to refresh model catalog",
|
||||
"settings.toast.ollamaEnabled": "Ollama enabled",
|
||||
"settings.toast.ollamaDisabled": "Ollama disabled",
|
||||
"settings.ai.lmstudioLabel": "LM Studio (Local Models)",
|
||||
"settings.ai.lmstudioDescription": "Connect to a locally running LM Studio instance to use local AI models.",
|
||||
"settings.ai.lmstudioEnable": "Enable LM Studio",
|
||||
"settings.ai.lmstudioCapabilitiesDescription": "Configure capabilities for each LM Studio model. Enable tools for function calling or vision for image analysis.",
|
||||
"settings.ai.lmstudioCapModel": "Model",
|
||||
"settings.ai.lmstudioCapTools": "Tools",
|
||||
"settings.ai.lmstudioCapVision": "Vision",
|
||||
"settings.toast.lmstudioEnabled": "LM Studio enabled",
|
||||
"settings.toast.lmstudioDisabled": "LM Studio disabled",
|
||||
"settings.ai.offlineLabel": "Airplane Mode",
|
||||
"settings.ai.offlineDescription": "When enabled, only locally hosted models (Ollama, LM Studio) are used. Cloud providers are disabled.",
|
||||
"settings.ai.offlineEnable": "Enable Airplane Mode",
|
||||
"settings.ai.offlineChatModel": "Offline Chat Model",
|
||||
"settings.ai.offlineChatModelDescription": "Model used for chat conversations when in airplane mode.",
|
||||
"settings.ai.offlineTitleModel": "Offline Title Model",
|
||||
"settings.ai.offlineTitleModelDescription": "Model used for title generation when in airplane mode.",
|
||||
"settings.ai.offlineImageAnalysisModel": "Offline Image Analysis Model",
|
||||
"settings.ai.offlineImageAnalysisModelDescription": "Model used for image analysis when in airplane mode.",
|
||||
"settings.ai.offlineNoLocalProviders": "No local providers enabled. Enable Ollama or LM Studio first.",
|
||||
"settings.ai.offlineNoLocalModels": "No local models available",
|
||||
"settings.toast.offlineEnabled": "Airplane mode enabled",
|
||||
"settings.toast.offlineDisabled": "Airplane mode disabled",
|
||||
"settings.publishing.sshHostDescription": "The SSH server hostname or IP address.",
|
||||
"settings.publishing.sshUsernameDescription": "Your SSH account username.",
|
||||
"settings.publishing.sshRemotePathDescription": "The destination directory on the remote server where your blog will be published.",
|
||||
@@ -891,6 +916,9 @@
|
||||
"statusBar.theme": "Theme: {theme}",
|
||||
"statusBar.ui": "UI",
|
||||
"statusBar.uiLanguage": "UI language",
|
||||
"statusBar.offlineMode": "Airplane Mode",
|
||||
"statusBar.offlineModeActive": "Airplane Mode (active)",
|
||||
"statusBar.offlineModeTooltip": "Click to toggle airplane mode",
|
||||
"windowTitleBar.toggleSidebar": "Toggle Sidebar",
|
||||
"windowTitleBar.hideSidebar": "Hide Sidebar (Ctrl+B)",
|
||||
"windowTitleBar.showSidebar": "Show Sidebar (Ctrl+B)",
|
||||
|
||||
Reference in New Issue
Block a user