export const PROVIDERS = { "fireworks-ai": { name: "Fireworks AI", max_tokens: 131_000, id: "fireworks-ai", }, nebius: { name: "Nebius AI Studio", max_tokens: 131_000, id: "nebius", }, sambanova: { name: "SambaNova", max_tokens: 8_000, id: "sambanova", }, novita: { name: "Novita", model_id: "HuggingFaceH4/starchat-beta", max_tokens: 0, }, custom: { name: "自定义模型", model_id: process.env.OPENAI_COMPATIBLE_MODEL_ID || "", endpoint: process.env.OPENAI_COMPATIBLE_ENDPOINT || "", apiKey: process.env.OPENAI_COMPATIBLE_API_KEY || "", apiType: "openai", // 默认使用 OpenAI 兼容格式 max_tokens: parseInt(process.env.OPENAI_COMPATIBLE_MAX_TOKENS) || 0, systemPrompt: process.env.OPENAI_COMPATIBLE_SYSTEM_PROMPT || DEFAULT_SYSTEM_PROMPT, } }; // OpenAI兼容的API格式转换 export const convertToOpenAIFormat = (messages) => { return { model: PROVIDERS.custom.model_id, messages, stream: true, max_tokens: PROVIDERS.custom.max_tokens || undefined, temperature: 0.7, }; }; // HuggingFace格式转换 export const convertToHFFormat = (messages) => { // 将消息数组转换为单个字符串 const formattedMessages = messages.map(msg => { if (msg.role === 'system') { return `System: ${msg.content}\n`; } else if (msg.role === 'user') { return `Human: ${msg.content}\n`; } else if (msg.role === 'assistant') { return `Assistant: ${msg.content}\n`; } return ''; }).join(''); return { model: PROVIDERS.custom.model_id, inputs: formattedMessages, parameters: { max_new_tokens: PROVIDERS.custom.max_tokens || 2048, temperature: 0.7, top_p: 0.95, do_sample: true, return_full_text: false, }, }; }; export const updateCustomProvider = (config) => { PROVIDERS.custom = { ...PROVIDERS.custom, ...config, }; }; export const DEFAULT_SYSTEM_PROMPT = `你是一个专业的前端开发助手,擅长编写和优化HTML、CSS和JavaScript代码。请根据用户的需求提供相应的代码建议和修改方案。`;