55 lines
2.5 KiB
JavaScript
55 lines
2.5 KiB
JavaScript
/**
|
|
* Централизованная конфигурация приложения Say.
|
|
* Все секреты — из переменных окружения, без хардкода.
|
|
*/
|
|
|
|
const PORT = parseInt(process.env.PORT, 10) || 3000;
|
|
|
|
// --- API (единый эндпоинт aillm.ru) ---
|
|
const API_BASE = process.env.API_BASE || 'https://api.aillm.ru';
|
|
const API_KEY = process.env.API_KEY || '';
|
|
|
|
// --- Whisper ---
|
|
const WHISPER_URL = process.env.WHISPER_URL || `${API_BASE}/v1/audio/transcriptions`;
|
|
const WHISPER_MODEL = process.env.WHISPER_MODEL || 'whisper-large-v3';
|
|
|
|
// --- Три LLM-профиля ---
|
|
const LLM_PROFILES = [
|
|
{
|
|
id: 'ddm',
|
|
name: 'DDM-120',
|
|
description: 'Быстрая модель, общие вопросы',
|
|
url: process.env.LLM_URL_DDM || `${API_BASE}/v1/chat/completions`,
|
|
model: process.env.LLM_MODEL_DDM || 'ddm-120',
|
|
systemPrompt: process.env.LLM_SYSTEM_DDM || 'Ты — полезный ассистент. Отвечай кратко и по делу на том же языке, что и запрос.',
|
|
temperature: parseFloat(process.env.LLM_TEMP_DDM || '0.7'),
|
|
maxTokens: parseInt(process.env.LLM_TOKENS_DDM, 10) || 1024,
|
|
},
|
|
{
|
|
id: 'qwen',
|
|
name: 'Qwen',
|
|
description: 'Мощная модель, сложные задачи',
|
|
url: process.env.LLM_URL_QWEN || `${API_BASE}/v1/chat/completions`,
|
|
model: process.env.LLM_MODEL_QWEN || 'qwen-plus',
|
|
systemPrompt: process.env.LLM_SYSTEM_QWEN || 'Ты — эксперт-аналитик. Отвечай развернуто, структурированно, на языке запроса.',
|
|
temperature: parseFloat(process.env.LLM_TEMP_QWEN || '0.7'),
|
|
maxTokens: parseInt(process.env.LLM_TOKENS_QWEN, 10) || 2048,
|
|
},
|
|
{
|
|
id: 'deepseek',
|
|
name: 'DeepSeek',
|
|
description: 'Глубокая аналитика, код, рассуждения',
|
|
url: process.env.LLM_URL_DEEPSEEK || `${API_BASE}/v1/chat/completions`,
|
|
model: process.env.LLM_MODEL_DEEPSEEK || 'deepseek-chat',
|
|
systemPrompt: process.env.LLM_SYSTEM_DEEPSEEK || 'Ты — глубокий аналитик и программист. Думай step-by-step, отвечай на языке запроса.',
|
|
temperature: parseFloat(process.env.LLM_TEMP_DEEPSEEK || '0.7'),
|
|
maxTokens: parseInt(process.env.LLM_TOKENS_DEEPSEEK, 10) || 4096,
|
|
},
|
|
];
|
|
|
|
module.exports = {
|
|
PORT, API_BASE, API_KEY,
|
|
WHISPER_URL, WHISPER_MODEL,
|
|
LLM_PROFILES,
|
|
};
|