@makolabs/ripple
Version:
Simple Svelte 5 powered component library ✨
45 lines (44 loc) • 1.65 kB
JavaScript
import { browser } from '$app/environment';
import { dev } from '$app/environment';
export function getAIConfig() {
if (!browser) {
return {
provider: 'openai'
};
}
const config = {
// eslint-disable-next-line @typescript-eslint/no-explicit-any
provider: import.meta.env.VITE_AI_PROVIDER || 'openai',
apiKey: import.meta.env.VITE_OPENAI_API_KEY,
model: import.meta.env.VITE_OPENAI_MODEL || 'gpt-4-turbo-preview',
baseUrl: import.meta.env.VITE_OPENAI_BASE_URL || 'https://api.openai.com/v1'
};
// In development, provide helpful warnings
if (dev && !config.apiKey && config.provider === 'openai') {
console.warn('⚠️ OpenAI API key not found. Set VITE_OPENAI_API_KEY in your .env file');
console.warn('💡 Create a .env file with: VITE_OPENAI_API_KEY=sk-your-key-here');
}
return config;
}
export function validateAIConfig(config) {
switch (config.provider) {
case 'openai':
return !!config.apiKey;
case 'anthropic':
return !!config.apiKey;
case 'ollama':
return !!config.baseUrl;
default:
return false;
}
}
// Environment variables guide
export const ENV_GUIDE = {
openai: [
'VITE_OPENAI_API_KEY=sk-your-openai-key',
'VITE_OPENAI_MODEL=gpt-4-turbo-preview (optional)',
'VITE_OPENAI_BASE_URL=https://api.openai.com/v1 (optional)'
],
anthropic: ['VITE_ANTHROPIC_API_KEY=your-anthropic-key', 'VITE_AI_PROVIDER=anthropic'],
ollama: ['VITE_OLLAMA_BASE_URL=http://localhost:11434', 'VITE_AI_PROVIDER=ollama']
};