-- 模型资源种子数据。依赖应用启动时写入 interface_definitions。

INSERT INTO model_resources
  (id, name, capability, interface_type, values, secrets, enabled, is_default)
VALUES
  ('model_001', 'DeepSeek-Chat', 'LLM', 'openai-llm',
   '{"modelId":"deepseek-chat","apiUrl":"https://api.deepseek.com/v1","temperature":0.7}',
   '{"apiKey":"replace-me"}', TRUE, TRUE),
  ('model_002', 'SiliconFlow-TeleSpeechASR', 'ASR', 'openai-asr',
   '{"modelId":"TeleAI/TeleSpeechASR","apiUrl":"https://api.siliconflow.cn/v1","language":"zh"}',
   '{"apiKey":"replace-me"}', TRUE, FALSE),
  ('model_003', 'SiliconFlow-Qwen3-Embedding-4B', 'Embedding', 'openai-embedding',
   '{"modelId":"Qwen/Qwen3-Embedding-4B","apiUrl":"https://api.siliconflow.cn/v1"}',
   '{"apiKey":"replace-me"}', TRUE, TRUE),
  ('model_004', 'SiliconFlow-CosyVoice2-0.5B', 'TTS', 'openai-tts',
   '{"modelId":"FunAudioLLM/CosyVoice2-0.5B","apiUrl":"https://api.siliconflow.cn/v1","voice":"FunAudioLLM/CosyVoice2-0.5B:anna","speed":1.0,"sourceSampleRate":24000}',
   '{"apiKey":"replace-me"}', TRUE, FALSE),
   '{"apiKey":"replace-me"}', TRUE, FALSE),
  ('model_005', '讯飞语音识别', 'ASR', 'xfyun-asr',
   '{"apiUrl":"https://iat-api.xfyun.cn/v2/iat","language":"zh_cn","domain":"iat","accent":"mandarin","dynamicCorrection":false,"frameSize":1280}',
   '{"appId":"replace-me","apiKey":"replace-me","apiSecret":"replace-me"}', TRUE, TRUE),
  ('model_006', 'Paraformer 识别', 'ASR', 'dashscope-asr',
   '{"modelId":"paraformer-realtime-v2","apiUrl":"https://dashscope.aliyuncs.com/api/v1/services/audio/asr","language":"zh"}',
   '{"apiKey":"replace-me"}', TRUE, FALSE),
  ('model_007', '讯飞语音合成', 'TTS', 'xfyun-tts',
   '{"apiUrl":"https://tts-api.xfyun.cn/v2/tts","voice":"xiaoyan","speed":50,"volume":50,"pitch":50,"sourceSampleRate":16000}',
   '{"appId":"replace-me","apiKey":"replace-me","apiSecret":"replace-me"}', TRUE, TRUE),
  ('model_008', 'CosyVoice 合成', 'TTS', 'dashscope-tts',
   '{"modelId":"cosyvoice-v1","apiUrl":"https://dashscope.aliyuncs.com/api/v1/services/audio/tts","voice":"longxiaochun"}',
   '{"apiKey":"replace-me"}', TRUE, FALSE),
  ('model_009', 'GPT Realtime', 'Realtime', 'openai-realtime',
   '{"modelId":"gpt-4o-realtime-preview","apiUrl":"https://api.openai.com/v1/realtime"}',
   '{"apiKey":"replace-me"}', TRUE, TRUE),
  ('model_010', 'Gemini Live', 'Realtime', 'gemini-realtime',
   '{"modelId":"gemini-2.0-flash-live","apiUrl":"https://generativelanguage.googleapis.com/v1beta"}',
   '{"apiKey":"replace-me"}', TRUE, FALSE),
  ('model_011', 'text-embedding-3', 'Embedding', 'openai-embedding',
   '{"modelId":"text-embedding-3-small","apiUrl":"https://api.openai.com/v1/embeddings"}',
   '{"apiKey":"replace-me"}', TRUE, FALSE)
ON CONFLICT (id) DO UPDATE SET
  name = EXCLUDED.name,
  capability = EXCLUDED.capability,
  interface_type = EXCLUDED.interface_type,
  values = EXCLUDED.values,
  secrets = EXCLUDED.secrets,
  enabled = EXCLUDED.enabled,
  is_default = EXCLUDED.is_default,
  updated_at = now();
