Spaces:
Sleeping
Sleeping
/* | |
* @ts-nocheck | |
* Preventing TS checks with files presented in the video for a better presentation. | |
*/ | |
import { env } from 'node:process'; | |
export function getAPIKey(cloudflareEnv: Env, provider: string, userApiKeys?: Record<string, string>) { | |
/** | |
* The `cloudflareEnv` is only used when deployed or when previewing locally. | |
* In development the environment variables are available through `env`. | |
*/ | |
// First check user-provided API keys | |
if (userApiKeys?.[provider]) { | |
return userApiKeys[provider]; | |
} | |
// Fall back to environment variables | |
switch (provider) { | |
case 'Anthropic': | |
return env.ANTHROPIC_API_KEY || cloudflareEnv.ANTHROPIC_API_KEY; | |
case 'OpenAI': | |
return env.OPENAI_API_KEY || cloudflareEnv.OPENAI_API_KEY; | |
case 'Google': | |
return env.GOOGLE_GENERATIVE_AI_API_KEY || cloudflareEnv.GOOGLE_GENERATIVE_AI_API_KEY; | |
case 'Groq': | |
return env.GROQ_API_KEY || cloudflareEnv.GROQ_API_KEY; | |
case 'HuggingFace': | |
return env.HuggingFace_API_KEY || cloudflareEnv.HuggingFace_API_KEY; | |
case 'OpenRouter': | |
return env.OPEN_ROUTER_API_KEY || cloudflareEnv.OPEN_ROUTER_API_KEY; | |
case 'Deepseek': | |
return env.DEEPSEEK_API_KEY || cloudflareEnv.DEEPSEEK_API_KEY; | |
case 'Mistral': | |
return env.MISTRAL_API_KEY || cloudflareEnv.MISTRAL_API_KEY; | |
case 'OpenAILike': | |
return env.OPENAI_LIKE_API_KEY || cloudflareEnv.OPENAI_LIKE_API_KEY; | |
case 'Together': | |
return env.TOGETHER_API_KEY || cloudflareEnv.TOGETHER_API_KEY; | |
case 'xAI': | |
return env.XAI_API_KEY || cloudflareEnv.XAI_API_KEY; | |
case 'Cohere': | |
return env.COHERE_API_KEY; | |
case 'AzureOpenAI': | |
return env.AZURE_OPENAI_API_KEY; | |
default: | |
return ''; | |
} | |
} | |
export function getBaseURL(cloudflareEnv: Env, provider: string) { | |
switch (provider) { | |
case 'Together': | |
return env.TOGETHER_API_BASE_URL || cloudflareEnv.TOGETHER_API_BASE_URL; | |
case 'OpenAILike': | |
return env.OPENAI_LIKE_API_BASE_URL || cloudflareEnv.OPENAI_LIKE_API_BASE_URL; | |
case 'LMStudio': | |
return env.LMSTUDIO_API_BASE_URL || cloudflareEnv.LMSTUDIO_API_BASE_URL || 'http://localhost:1234'; | |
case 'Ollama': { | |
let baseUrl = env.OLLAMA_API_BASE_URL || cloudflareEnv.OLLAMA_API_BASE_URL || 'http://localhost:11434'; | |
if (env.RUNNING_IN_DOCKER === 'true') { | |
baseUrl = baseUrl.replace('localhost', 'host.docker.internal'); | |
} | |
return baseUrl; | |
} | |
default: | |
return ''; | |
} | |
} | |