Spaces:
Sleeping
Sleeping
Sync export fidelity fixes + more AI providers
Browse files- 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." },
|