Spaces:
Running
Running
github-actions[bot]
Sync from GitHub Viciy2023/Qwen2API-A@b372de2fdb435c7fa78fc69c146257a58c842fba
4289eb1 | const express = require('express') | |
| const bodyParser = require('body-parser') | |
| const config = require('./config/index.js') | |
| const cors = require('cors') | |
| const { logger } = require('./utils/logger') | |
| const { initSsxmodManager } = require('./utils/ssxmod-manager') | |
| const app = express() | |
| const path = require('path') | |
| const fs = require('fs') | |
| const paths = require('./utils/paths') | |
| const modelsRouter = require('./routes/models.js') | |
| const chatRouter = require('./routes/chat.js') | |
| const cliChatRouter = require('./routes/cli.chat.js') | |
| const verifyRouter = require('./routes/verify.js') | |
| const accountsRouter = require('./routes/accounts.js') | |
| const settingsRouter = require('./routes/settings.js') | |
| const usageRouter = require('./routes/usage.js') | |
| if (config.dataSaveMode === 'file') { | |
| if (!fs.existsSync(paths.dataFilePath)) { | |
| fs.mkdirSync(paths.dataDir, { recursive: true }) | |
| fs.writeFileSync(paths.dataFilePath, JSON.stringify({"accounts": [] }, null, 2)) | |
| } | |
| } | |
| // 初始化 SSXMOD Cookie 管理器 | |
| initSsxmodManager() | |
| app.use(bodyParser.json({ limit: '128mb' })) | |
| app.use(bodyParser.urlencoded({ limit: '128mb', extended: true })) | |
| app.use(cors()) | |
| // API路由 | |
| app.use(modelsRouter) | |
| app.use(chatRouter) | |
| app.use(cliChatRouter) | |
| app.use(verifyRouter) | |
| app.use('/api', accountsRouter) | |
| app.use('/api', settingsRouter) | |
| app.use('/api', usageRouter) | |
| app.use(express.static(path.join(__dirname, '../public/dist'))) | |
| app.get('*', (req, res) => { | |
| res.sendFile(path.join(__dirname, '../public/dist/index.html'), (err) => { | |
| if (err) { | |
| logger.error('管理页面加载失败', 'SERVER', '', err) | |
| res.status(500).send('服务器内部错误') | |
| } | |
| }) | |
| }) | |
| // 处理错误中间件(必须放在所有路由之后) | |
| app.use((err, req, res, next) => { | |
| logger.error('服务器内部错误', 'SERVER', '', err) | |
| res.status(500).send('服务器内部错误') | |
| }) | |
| // 服务器启动信息 | |
| const serverInfo = { | |
| address: config.listenAddress || 'localhost', | |
| port: config.listenPort, | |
| outThink: config.outThink ? '开启' : '关闭', | |
| searchInfoMode: config.searchInfoMode === 'table' ? '表格' : '文本', | |
| dataSaveMode: config.dataSaveMode, | |
| logLevel: config.logLevel, | |
| enableFileLog: config.enableFileLog | |
| } | |
| if (config.listenAddress) { | |
| app.listen(config.listenPort, config.listenAddress, () => { | |
| logger.server('服务器启动成功', 'SERVER', serverInfo) | |
| logger.info('开源地址: https://github.com/Rfym21/Qwen2API', 'INFO') | |
| logger.info('电报群聊: https://t.me/nodejs_project', 'INFO') | |
| }) | |
| } else { | |
| app.listen(config.listenPort, () => { | |
| logger.server('服务器启动成功', 'SERVER', serverInfo) | |
| logger.info('开源地址: https://github.com/Rfym21/Qwen2API', 'INFO') | |
| logger.info('电报群聊: https://t.me/nodejs_project', 'INFO') | |
| }) | |
| } | |