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 @@ + + +