diff --git a/openless-all/app/src/pages/Settings.tsx b/openless-all/app/src/pages/Settings.tsx index 50bedbff..899fa63a 100644 --- a/openless-all/app/src/pages/Settings.tsx +++ b/openless-all/app/src/pages/Settings.tsx @@ -200,10 +200,11 @@ function Toggle({ on, onToggle }: { on: boolean; onToggle?: (next: boolean) => v } const LLM_PRESETS = [ - { id: 'ark', name: 'ARK(火山方舟)', baseUrl: 'https://ark.cn-beijing.volces.com/api/v3', modelPlaceholder: 'deepseek-v3-2' }, - { id: 'deepseek', name: 'DeepSeek', baseUrl: 'https://api.deepseek.com/v1', modelPlaceholder: 'deepseek-chat' }, - { id: 'openai', name: 'OpenAI', baseUrl: 'https://api.openai.com/v1', modelPlaceholder: 'gpt-4o' }, - { id: 'custom', name: '自定义', baseUrl: '', modelPlaceholder: '' }, + { id: 'ark', name: 'ARK(火山方舟)', baseUrl: 'https://ark.cn-beijing.volces.com/api/v3', modelPlaceholder: 'deepseek-v3-2' }, + { id: 'deepseek', name: 'DeepSeek', baseUrl: 'https://api.deepseek.com/v1', modelPlaceholder: 'deepseek-chat' }, + { id: 'siliconflow', name: '硅基流动', baseUrl: 'https://api.siliconflow.cn/v1', modelPlaceholder: 'Qwen/Qwen2.5-7B-Instruct' }, + { id: 'openai', name: 'OpenAI', baseUrl: 'https://api.openai.com/v1', modelPlaceholder: 'gpt-4o' }, + { id: 'custom', name: '自定义', baseUrl: '', modelPlaceholder: '' }, ] as const; type LlmPresetId = typeof LLM_PRESETS[number]['id']; @@ -211,8 +212,9 @@ type LlmPresetId = typeof LLM_PRESETS[number]['id']; const ASR_DEFAULT_RESOURCE_ID = 'volc.bigasr.sauc.duration'; const ASR_PRESETS = [ - { id: 'volcengine', name: '火山引擎 bigasr' }, - { id: 'whisper', name: 'OpenAI Whisper(兼容)' }, + { id: 'volcengine', name: '火山引擎 bigasr' }, + { id: 'siliconflow', name: '硅基流动 SenseVoice' }, + { id: 'whisper', name: 'OpenAI Whisper(兼容)' }, ] as const; type AsrPresetId = typeof ASR_PRESETS[number]['id']; @@ -304,6 +306,14 @@ function ProvidersSection() { + ) : asrProvider === 'siliconflow' ? ( + <> + + + + ) : ( <> @@ -586,6 +596,14 @@ function PermissionPill({ status }: { status: PermissionStatus | 'loading' }) { } function AboutSection() { + const [qqCopied, setQqCopied] = useState(false); + + const copyQq = () => { + navigator.clipboard?.writeText('1078960553'); + setQqCopied(true); + setTimeout(() => setQqCopied(false), 1500); + }; + return (
@@ -603,8 +621,24 @@ function AboutSection() {
openExternal('https://github.com/appergb/openless/releases')}>打开 Releases + openExternal('https://github.com/appergb/openless')}>GitHub openExternal('https://github.com/appergb/openless#readme')}>README - openExternal('https://github.com/appergb/openless/issues')}>GitHub Issues + openExternal('https://github.com/appergb/openless/issues')}>GitHub Issues + +
+ 1078960553 + + {qqCopied && 已复制} +
+
本地优先