- Add new database management targets: db-up, db-schema, db-seed-interface-definitions, and db-init to streamline database setup and seeding processes. - Update db-seed and db-reset dependencies to include new initialization steps for better data integrity. - Introduce new SQL files for schema definition and interface definitions seeding, ensuring a consistent database structure. - Refactor existing seed scripts to align with new dependencies and improve clarity in database operations.
120 lines
8.4 KiB
SQL
120 lines
8.4 KiB
SQL
-- Built-in interface definitions. Mirrors backend/services/interface_catalog.py.
|
|
|
|
INSERT INTO interface_definitions
|
|
(interface_type, name, capability, field_schema, enabled, version)
|
|
VALUES
|
|
('openai-llm', 'OpenAI Compatible LLM', 'LLM',
|
|
$$ {"fields":[
|
|
{"key":"modelId","label":"Model ID","group":"values","type":"text","required":true},
|
|
{"key":"apiUrl","label":"API URL","group":"values","type":"url","required":true},
|
|
{"key":"apiKey","label":"API Key","group":"secrets","type":"password","required":true},
|
|
{"key":"temperature","label":"Temperature","group":"values","type":"number","required":false,"default":0.7}
|
|
]} $$::jsonb, TRUE, 1),
|
|
('openai-asr', 'OpenAI Compatible ASR', 'ASR',
|
|
$$ {"fields":[
|
|
{"key":"modelId","label":"Model ID","group":"values","type":"text","required":true},
|
|
{"key":"apiUrl","label":"API URL","group":"values","type":"url","required":true},
|
|
{"key":"apiKey","label":"API Key","group":"secrets","type":"password","required":true},
|
|
{"key":"language","label":"Language","group":"values","type":"text","required":false,"default":"zh"}
|
|
]} $$::jsonb, TRUE, 1),
|
|
('openai-tts', 'OpenAI Compatible TTS', 'TTS',
|
|
$$ {"fields":[
|
|
{"key":"modelId","label":"Model ID","group":"values","type":"text","required":true},
|
|
{"key":"apiUrl","label":"API URL","group":"values","type":"url","required":true},
|
|
{"key":"apiKey","label":"API Key","group":"secrets","type":"password","required":true},
|
|
{"key":"voice","label":"Voice","group":"values","type":"text","required":false},
|
|
{"key":"speed","label":"Speed","group":"values","type":"number","required":false,"default":1.0},
|
|
{"key":"sourceSampleRate","label":"Source Sample Rate","group":"values","type":"number","required":false,"default":24000}
|
|
]} $$::jsonb, TRUE, 1),
|
|
('openai-embedding', 'OpenAI Compatible Embedding', 'Embedding',
|
|
$$ {"fields":[
|
|
{"key":"modelId","label":"Model ID","group":"values","type":"text","required":true},
|
|
{"key":"apiUrl","label":"API URL","group":"values","type":"url","required":true},
|
|
{"key":"apiKey","label":"API Key","group":"secrets","type":"password","required":true},
|
|
{"key":"dimensions","label":"Dimensions","group":"values","type":"number","required":false}
|
|
]} $$::jsonb, TRUE, 1),
|
|
('openai-realtime', 'OpenAI Realtime', 'Realtime',
|
|
$$ {"fields":[
|
|
{"key":"modelId","label":"Model ID","group":"values","type":"text","required":true},
|
|
{"key":"apiUrl","label":"API URL","group":"values","type":"url","required":true},
|
|
{"key":"apiKey","label":"API Key","group":"secrets","type":"password","required":true},
|
|
{"key":"voice","label":"Voice","group":"values","type":"text","required":false}
|
|
]} $$::jsonb, TRUE, 1),
|
|
('stepfun-realtime', 'StepFun StepAudio Realtime', 'Realtime',
|
|
$$ {"fields":[
|
|
{"key":"modelId","label":"Model ID","group":"values","type":"text","required":true},
|
|
{"key":"apiUrl","label":"API URL","group":"values","type":"url","required":true},
|
|
{"key":"apiKey","label":"API Key","group":"secrets","type":"password","required":true},
|
|
{"key":"voice","label":"Voice","group":"values","type":"text","required":true,"default":"linjiajiejie"},
|
|
{"key":"inputSampleRate","label":"Input Sample Rate","group":"values","type":"number","required":false,"default":24000},
|
|
{"key":"outputSampleRate","label":"Output Sample Rate","group":"values","type":"number","required":false,"default":24000},
|
|
{"key":"prefixPaddingMs","label":"VAD Prefix Padding (ms)","group":"values","type":"number","required":false,"default":500},
|
|
{"key":"silenceDurationMs","label":"VAD Silence Duration (ms)","group":"values","type":"number","required":false,"default":300},
|
|
{"key":"energyAwakenessThreshold","label":"VAD Energy Threshold","group":"values","type":"number","required":false,"default":2500}
|
|
]} $$::jsonb, TRUE, 1),
|
|
('xfyun-asr', 'Xfyun Streaming ASR', 'ASR',
|
|
$$ {"fields":[
|
|
{"key":"apiUrl","label":"WebSocket URL","group":"values","type":"url","required":true},
|
|
{"key":"appId","label":"App ID","group":"secrets","type":"password","required":true},
|
|
{"key":"apiKey","label":"API Key","group":"secrets","type":"password","required":true},
|
|
{"key":"apiSecret","label":"API Secret","group":"secrets","type":"password","required":true},
|
|
{"key":"language","label":"Language","group":"values","type":"text","required":false,"default":"zh_cn"},
|
|
{"key":"domain","label":"Domain","group":"values","type":"text","required":false,"default":"iat"},
|
|
{"key":"accent","label":"Accent","group":"values","type":"text","required":false,"default":"mandarin"},
|
|
{"key":"dynamicCorrection","label":"Dynamic Correction","group":"values","type":"boolean","required":false,"default":false},
|
|
{"key":"frameSize","label":"Frame Size","group":"values","type":"number","required":false,"default":1280}
|
|
]} $$::jsonb, TRUE, 1),
|
|
('xfyun-tts', 'Xfyun TTS', 'TTS',
|
|
$$ {"fields":[
|
|
{"key":"apiUrl","label":"WebSocket URL","group":"values","type":"url","required":true},
|
|
{"key":"appId","label":"App ID","group":"secrets","type":"password","required":true},
|
|
{"key":"apiKey","label":"API Key","group":"secrets","type":"password","required":true},
|
|
{"key":"apiSecret","label":"API Secret","group":"secrets","type":"password","required":true},
|
|
{"key":"voice","label":"Voice","group":"values","type":"text","required":false},
|
|
{"key":"speed","label":"Speed","group":"values","type":"number","required":false,"default":50},
|
|
{"key":"volume","label":"Volume","group":"values","type":"number","required":false,"default":50},
|
|
{"key":"pitch","label":"Pitch","group":"values","type":"number","required":false,"default":50},
|
|
{"key":"sourceSampleRate","label":"Source Sample Rate","group":"values","type":"number","required":false,"default":16000}
|
|
]} $$::jsonb, TRUE, 1),
|
|
('xfyun-super-tts', 'Xfyun Super TTS', 'TTS',
|
|
$$ {"fields":[
|
|
{"key":"apiUrl","label":"WebSocket URL","group":"values","type":"url","required":true},
|
|
{"key":"appId","label":"App ID","group":"secrets","type":"password","required":true},
|
|
{"key":"apiKey","label":"API Key","group":"secrets","type":"password","required":true},
|
|
{"key":"apiSecret","label":"API Secret","group":"secrets","type":"password","required":true},
|
|
{"key":"voice","label":"Voice","group":"values","type":"text","required":false},
|
|
{"key":"speed","label":"Speed","group":"values","type":"number","required":false,"default":50},
|
|
{"key":"volume","label":"Volume","group":"values","type":"number","required":false,"default":50},
|
|
{"key":"pitch","label":"Pitch","group":"values","type":"number","required":false,"default":50},
|
|
{"key":"oralLevel","label":"Oral Level","group":"values","type":"text","required":false,"default":"mid"},
|
|
{"key":"sourceSampleRate","label":"Source Sample Rate","group":"values","type":"number","required":false,"default":24000},
|
|
{"key":"textAggregationMode","label":"Text Aggregation Mode","group":"values","type":"text","required":false,"default":"token"}
|
|
]} $$::jsonb, TRUE, 1),
|
|
('dashscope-asr', 'DashScope ASR', 'ASR',
|
|
$$ {"fields":[
|
|
{"key":"modelId","label":"Model ID","group":"values","type":"text","required":true},
|
|
{"key":"apiUrl","label":"API URL","group":"values","type":"url","required":true},
|
|
{"key":"apiKey","label":"API Key","group":"secrets","type":"password","required":true},
|
|
{"key":"language","label":"Language","group":"values","type":"text","required":false,"default":"zh"}
|
|
]} $$::jsonb, TRUE, 1),
|
|
('dashscope-tts', 'DashScope TTS', 'TTS',
|
|
$$ {"fields":[
|
|
{"key":"modelId","label":"Model ID","group":"values","type":"text","required":true},
|
|
{"key":"apiUrl","label":"API URL","group":"values","type":"url","required":true},
|
|
{"key":"apiKey","label":"API Key","group":"secrets","type":"password","required":true},
|
|
{"key":"voice","label":"Voice","group":"values","type":"text","required":false}
|
|
]} $$::jsonb, TRUE, 1),
|
|
('gemini-realtime', 'Gemini Realtime', 'Realtime',
|
|
$$ {"fields":[
|
|
{"key":"modelId","label":"Model ID","group":"values","type":"text","required":true},
|
|
{"key":"apiUrl","label":"API URL","group":"values","type":"url","required":true},
|
|
{"key":"apiKey","label":"API Key","group":"secrets","type":"password","required":true}
|
|
]} $$::jsonb, TRUE, 1)
|
|
ON CONFLICT (interface_type) DO UPDATE SET
|
|
name = EXCLUDED.name,
|
|
capability = EXCLUDED.capability,
|
|
field_schema = EXCLUDED.field_schema,
|
|
enabled = TRUE,
|
|
version = EXCLUDED.version,
|
|
updated_at = now();
|