From 8c644d0aaedc0389691241defe7fcea3007bb149 Mon Sep 17 00:00:00 2001 From: KiriAky 107 Date: Fri, 4 Sep 2026 12:39:50 +0800 Subject: [PATCH] =?UTF-8?q?feat(frontend):=20=E6=8E=A5=E5=85=A5=E7=9C=9F?= =?UTF-8?q?=E5=AE=9E=E5=AA=92=E4=BD=93=E5=B7=A5=E4=BD=9C=E6=B5=81=E4=B8=8E?= =?UTF-8?q?=E6=A8=A1=E5=9E=8B=E9=85=8D=E7=BD=AE=E5=8D=A1=E7=89=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/components/common/PrimarySidebar.vue | 1 + frontend/src/contracts/index.ts | 11 ++ frontend/src/features/media/MediaView.vue | 151 ++++++++++++++++++ .../features/settings/LocalModelSettings.vue | 65 ++++++++ .../settings/ModelRoutingSettings.spec.ts | 8 +- .../settings/ModelRoutingSettings.vue | 10 +- .../src/features/settings/ProviderForm.vue | 29 +++- .../settings/RequestJsonEditor.spec.ts | 20 +++ .../features/settings/RequestJsonEditor.vue | 42 +++++ .../src/features/settings/SettingsView.vue | 4 + .../src/features/settings/UsageCard.spec.ts | 18 +++ frontend/src/features/settings/UsageCard.vue | 44 +++++ frontend/src/router/index.ts | 1 + frontend/src/services/mediaService.ts | 32 ++++ frontend/src/services/providerService.ts | 5 + 15 files changed, 428 insertions(+), 13 deletions(-) create mode 100644 frontend/src/features/media/MediaView.vue create mode 100644 frontend/src/features/settings/LocalModelSettings.vue create mode 100644 frontend/src/features/settings/RequestJsonEditor.spec.ts create mode 100644 frontend/src/features/settings/RequestJsonEditor.vue create mode 100644 frontend/src/features/settings/UsageCard.spec.ts create mode 100644 frontend/src/features/settings/UsageCard.vue create mode 100644 frontend/src/services/mediaService.ts diff --git a/frontend/src/components/common/PrimarySidebar.vue b/frontend/src/components/common/PrimarySidebar.vue index 9561166..56b1249 100644 --- a/frontend/src/components/common/PrimarySidebar.vue +++ b/frontend/src/components/common/PrimarySidebar.vue @@ -14,6 +14,7 @@ const navItems = [ { name: 'chat', icon: ChatDotRound, label: 'AI 对话' }, { name: 'agent', icon: Cpu, label: '智能体' }, { name: 'tasks', icon: CircleCheck, label: '任务' }, + { name: 'media', icon: Monitor, label: '音视频' }, { name: 'skills', icon: Lightning, label: 'Skill' }, { name: 'plugins', icon: Connection, label: 'Plugin' }, { name: 'mcp-servers', icon: Monitor, label: 'MCP' }, diff --git a/frontend/src/contracts/index.ts b/frontend/src/contracts/index.ts index d550c0a..a8310f6 100644 --- a/frontend/src/contracts/index.ts +++ b/frontend/src/contracts/index.ts @@ -397,7 +397,16 @@ export interface ModelInfo { context_window?: number } +export interface RequestOverride { + capability: 'chat' | 'embedding' | 'transcription' | 'speaker_matching' + model?: string | null + stream?: boolean | null + body: Record +} + export interface ProviderConfig { + version?: number + request_overrides?: RequestOverride[] provider_id: string provider_type: ProviderType name: string @@ -737,6 +746,8 @@ export type ApiProviderType = | 'ollama' export interface ApiProviderConfig { + version?: number + request_overrides?: RequestOverride[] provider_id: string provider_type: ApiProviderType name: string diff --git a/frontend/src/features/media/MediaView.vue b/frontend/src/features/media/MediaView.vue new file mode 100644 index 0000000..23f66bb --- /dev/null +++ b/frontend/src/features/media/MediaView.vue @@ -0,0 +1,151 @@ + + +