diff --git a/main.ts b/main.ts index 9118693..8857196 100644 --- a/main.ts +++ b/main.ts @@ -43,6 +43,7 @@ interface LLMAgentSettings { markerStart: string; markerStop: string; + voskModelPath: string; showVoicePanel: boolean; lastActiveGraphId: string | null; @@ -78,6 +79,7 @@ const DEFAULT_SETTINGS: LLMAgentSettings = { markerStart: 'старт', markerStop: 'стоп', + voskModelPath: '', showVoicePanel: false, lastActiveGraphId: null, @@ -536,6 +538,20 @@ class SampleSettingTab extends PluginSettingTab { }) ); + new Setting(containerEl) + .setName('Путь к модели Vosk') + .setDesc('Абсолютный путь к папке с распакованной языковой моделью (например: C:\\vosk-models\\vosk-model-small-ru)') + .addText((text) => + text + .setPlaceholder('Путь к модели на диске') + .setValue(this.plugin.settings.voskModelPath) + .onChange(async (value) => { + this.plugin.settings.voskModelPath = value.replace(/"/g, '').trim(); // Убираем кавычки, если скопировали путь как путь + await this.plugin.saveSettings(); + await this.plugin.syncSettings(); + }) + ); + containerEl.createEl('h2', { text: 'Управление ссылками и файлами' }); new Setting(containerEl) diff --git a/src/components/ChatPanel.ts b/src/components/ChatPanel.ts index 06d2ec6..dd5ec07 100644 --- a/src/components/ChatPanel.ts +++ b/src/components/ChatPanel.ts @@ -169,7 +169,8 @@ export class ChatPanel { if (this.props.plugin.settings) { this.props.plugin.settings.defaultModel = model; - // TODO: Сохранение настройки здесь может привести к зацикливанию + // TODO: Сохранение настройки здесь может привести к зацикливанию и не уверен, что вообще стоит здесь менять defaultModel + // TODO: Это костыль для устранения бага со сбросом выбора модели при отправке запроса, нужно выяснить его причину // Не обязательно сохранять в файл сразу, но ChatView должен видеть актуальное значение }