84 lines
2.1 KiB
JavaScript
84 lines
2.1 KiB
JavaScript
const logger = require('../utils/logger');
|
|
|
|
const groqConfig = {
|
|
// API Configuration
|
|
apiKey: process.env.GROQ_API_KEY,
|
|
model: process.env.GROQ_MODEL || 'moonshotai/kimi-k2-instruct-0905',
|
|
baseURL: process.env.GROQ_BASE_URL || 'https://api.groq.com',
|
|
|
|
// Model-specific configurations
|
|
models: {
|
|
MODEL1: {
|
|
model: 'moonshotai/kimi-k2-instruct-0905',
|
|
temperature: 0.3,
|
|
maxTokens: 300,
|
|
topP: 0.9,
|
|
systemPrompt: `You are MODEL1, an expert engineering reasoning system. Your primary function is to analyze complex engineering problems and create detailed, step-by-step plans to solve them.`
|
|
},
|
|
QUERYMODEL: {
|
|
model: 'moonshotai/kimi-k2-instruct-0905',
|
|
temperature: 0.5,
|
|
maxTokens: 400,
|
|
topP: 0.9,
|
|
systemPrompt: `You are QUERYMODEL, an expert engineering execution system. Your primary function is to execute engineering plans using various tools and resources.`
|
|
}
|
|
},
|
|
|
|
// Rate limiting
|
|
rateLimit: {
|
|
requestsPerMinute: 60,
|
|
requestsPerHour: 1000,
|
|
burstLimit: 10
|
|
},
|
|
|
|
// Retry configuration
|
|
retry: {
|
|
maxRetries: 3,
|
|
retryDelay: 1000,
|
|
backoffMultiplier: 2
|
|
},
|
|
|
|
// Timeout configuration
|
|
timeout: {
|
|
request: 30000, // 30 seconds
|
|
connection: 10000 // 10 seconds
|
|
},
|
|
|
|
// Logging configuration
|
|
logging: {
|
|
logRequests: process.env.NODE_ENV === 'development',
|
|
logResponses: process.env.NODE_ENV === 'development',
|
|
logErrors: true
|
|
}
|
|
};
|
|
|
|
const validateConfig = () => {
|
|
const errors = [];
|
|
|
|
if (!groqConfig.apiKey) {
|
|
errors.push('GROQ_API_KEY is required');
|
|
}
|
|
|
|
if (!groqConfig.model) {
|
|
errors.push('GROQ_MODEL is required');
|
|
}
|
|
|
|
if (errors.length > 0) {
|
|
logger.error('Groq configuration errors:', errors);
|
|
throw new Error(`Groq configuration invalid: ${errors.join(', ')}`);
|
|
}
|
|
|
|
logger.info('Groq configuration validated successfully');
|
|
return true;
|
|
};
|
|
|
|
const getModelConfig = (modelType) => {
|
|
return groqConfig.models[modelType] || groqConfig.models.MODEL1;
|
|
};
|
|
|
|
module.exports = {
|
|
groqConfig,
|
|
validateConfig,
|
|
getModelConfig
|
|
};
|