Moeeldouma commited on
Commit
228c3d2
Β·
verified Β·
1 Parent(s): 2cd103d

Sync export fidelity fixes + more AI providers

Browse files
Files changed (1) hide show
  1. packages/ai/models.mjs +29 -0
packages/ai/models.mjs CHANGED
@@ -13,6 +13,17 @@ export const PROVIDERS = {
13
  deepinfra: { label: "DeepInfra (open models)", baseUrl: "https://api.deepinfra.com/v1/openai", keyEnv: "DEEPINFRA_API_KEY" },
14
  // Groq β€” STT + TTS only.
15
  groq: { label: "Groq", baseUrl: "https://api.groq.com/openai/v1", keyEnv: "GROQ_API_KEY" },
 
 
 
 
 
 
 
 
 
 
 
16
  };
17
 
18
  // role: 'chat' | 'stt' | 'tts'
@@ -38,6 +49,24 @@ export const MODELS = {
38
  "deepinfra:Qwen/Qwen2.5-72B-Instruct": { provider: "deepinfra", model: "Qwen/Qwen2.5-72B-Instruct", role: "chat", label: "Structured", tools: true, maxTokens: 2048, notes: "Strong JSON/structured output for scene generation." },
39
  "deepinfra:meta-llama/Meta-Llama-3.1-8B-Instruct": { provider: "deepinfra", model: "meta-llama/Meta-Llama-3.1-8B-Instruct", role: "chat", label: "Lite", tools: true, maxTokens: 1024, notes: "Cheapest/fastest (~$0.03 / 1M); fine for simple edits & fill-scene." },
40
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
41
  // ---- Speech-to-text (word-level timestamps) ----
42
  "groq:whisper-large-v3-turbo": { provider: "groq", model: "whisper-large-v3-turbo", role: "stt", label: "Whisper v3 Turbo (Groq)", notes: "Fast STT, word+segment timestamps; ~$0.04/audio-hour (not token-capped). NO diarization." },
43
  "groq:whisper-large-v3": { provider: "groq", model: "whisper-large-v3", role: "stt", label: "Whisper v3 (Groq)", notes: "Higher accuracy STT, word+segment timestamps. NO diarization." },
 
13
  deepinfra: { label: "DeepInfra (open models)", baseUrl: "https://api.deepinfra.com/v1/openai", keyEnv: "DEEPINFRA_API_KEY" },
14
  // Groq β€” STT + TTS only.
15
  groq: { label: "Groq", baseUrl: "https://api.groq.com/openai/v1", keyEnv: "GROQ_API_KEY" },
16
+
17
+ // ── Bring your own big-name model ── all OpenAI-compatible (Bearer key β†’ /chat/completions), so the
18
+ // same client serves them. A provider only appears in the app when its key is set (availableModels()).
19
+ openai: { label: "OpenAI (GPT)", baseUrl: "https://api.openai.com/v1", keyEnv: "OPENAI_API_KEY" },
20
+ // Anthropic (Claude) via its OpenAI-compatible endpoint (docs.anthropic.com β†’ OpenAI SDK compatibility).
21
+ anthropic: { label: "Anthropic (Claude)", baseUrl: "https://api.anthropic.com/v1", keyEnv: "ANTHROPIC_API_KEY" },
22
+ // Google Gemini via its OpenAI-compatible endpoint.
23
+ gemini: { label: "Google (Gemini)", baseUrl: "https://generativelanguage.googleapis.com/v1beta/openai", keyEnv: "GEMINI_API_KEY" },
24
+ // OpenRouter β€” ONE key β†’ Claude, Gemini, GPT, Llama, DeepSeek, Mistral … (model id = "vendor/model").
25
+ // The simplest way to run "any famous model": set OPENROUTER_API_KEY and pick from openrouter.ai/models.
26
+ openrouter: { label: "OpenRouter (any model)", baseUrl: "https://openrouter.ai/api/v1", keyEnv: "OPENROUTER_API_KEY" },
27
  };
28
 
29
  // role: 'chat' | 'stt' | 'tts'
 
49
  "deepinfra:Qwen/Qwen2.5-72B-Instruct": { provider: "deepinfra", model: "Qwen/Qwen2.5-72B-Instruct", role: "chat", label: "Structured", tools: true, maxTokens: 2048, notes: "Strong JSON/structured output for scene generation." },
50
  "deepinfra:meta-llama/Meta-Llama-3.1-8B-Instruct": { provider: "deepinfra", model: "meta-llama/Meta-Llama-3.1-8B-Instruct", role: "chat", label: "Lite", tools: true, maxTokens: 1024, notes: "Cheapest/fastest (~$0.03 / 1M); fine for simple edits & fill-scene." },
51
 
52
+ // ---- OpenAI GPT (set OPENAI_API_KEY) ----
53
+ "openai:gpt-4o": { provider: "openai", model: "gpt-4o", role: "chat", label: "GPT-4o", tools: true, maxTokens: 2048, notes: "OpenAI flagship multimodal." },
54
+ "openai:gpt-4o-mini": { provider: "openai", model: "gpt-4o-mini", role: "chat", label: "GPT-4o mini", tools: true, maxTokens: 2048, notes: "Cheaper/faster OpenAI." },
55
+
56
+ // ---- Anthropic Claude β€” OpenAI-compatible endpoint (set ANTHROPIC_API_KEY) ----
57
+ "anthropic:claude-sonnet-5": { provider: "anthropic", model: "claude-sonnet-5", role: "chat", label: "Claude Sonnet", tools: true, maxTokens: 2048, notes: "Anthropic balanced β€” great tool-caller. Edit the model id for other Claudes (e.g. claude-opus-4-8)." },
58
+ "anthropic:claude-haiku-4-5-20251001": { provider: "anthropic", model: "claude-haiku-4-5-20251001", role: "chat", label: "Claude Haiku", tools: true, maxTokens: 2048, notes: "Fast/cheap Anthropic." },
59
+
60
+ // ---- Google Gemini β€” OpenAI-compatible endpoint (set GEMINI_API_KEY) ----
61
+ "gemini:gemini-2.0-flash": { provider: "gemini", model: "gemini-2.0-flash", role: "chat", label: "Gemini Flash", tools: true, maxTokens: 2048, notes: "Fast Google model." },
62
+ "gemini:gemini-1.5-pro": { provider: "gemini", model: "gemini-1.5-pro", role: "chat", label: "Gemini Pro", tools: true, maxTokens: 2048, notes: "Higher-quality Google model." },
63
+
64
+ // ---- OpenRouter β€” one key β†’ any famous model (set OPENROUTER_API_KEY; ids from openrouter.ai/models) ----
65
+ "openrouter:anthropic/claude-3.5-sonnet": { provider: "openrouter", model: "anthropic/claude-3.5-sonnet", role: "chat", label: "Claude (OpenRouter)", tools: true, maxTokens: 2048, notes: "Claude via one OpenRouter key." },
66
+ "openrouter:google/gemini-2.0-flash-001": { provider: "openrouter", model: "google/gemini-2.0-flash-001", role: "chat", label: "Gemini (OpenRouter)", tools: true, maxTokens: 2048, notes: "Gemini via OpenRouter." },
67
+ "openrouter:openai/gpt-4o-mini": { provider: "openrouter", model: "openai/gpt-4o-mini", role: "chat", label: "GPT (OpenRouter)", tools: true, maxTokens: 2048, notes: "GPT via OpenRouter." },
68
+ "openrouter:deepseek/deepseek-chat": { provider: "openrouter", model: "deepseek/deepseek-chat", role: "chat", label: "DeepSeek (OpenRouter)", tools: true, maxTokens: 2048, notes: "DeepSeek via OpenRouter." },
69
+
70
  // ---- Speech-to-text (word-level timestamps) ----
71
  "groq:whisper-large-v3-turbo": { provider: "groq", model: "whisper-large-v3-turbo", role: "stt", label: "Whisper v3 Turbo (Groq)", notes: "Fast STT, word+segment timestamps; ~$0.04/audio-hour (not token-capped). NO diarization." },
72
  "groq:whisper-large-v3": { provider: "groq", model: "whisper-large-v3", role: "stt", label: "Whisper v3 (Groq)", notes: "Higher accuracy STT, word+segment timestamps. NO diarization." },