Node.js rewrite: Express + микросервисная архитектура
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
/**
|
||||
* Централизованная конфигурация приложения 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,
|
||||
};
|
||||
Reference in New Issue
Block a user