新功能: - 创建AI聊天助手组件(AIChatWidget) - 支持文字+图片多模态对话 - 集成Gemini AI API - 支持图片编辑和内容生成 - 实时对话历史管理 - 优雅的UI设计,支持黑夜模式 技术实现: - 后端API代理Gemini API(/api/ai-chat) - 支持最多5张图片上传 - 流式响应处理 - 对话历史管理 - Base64图片处理 配置: - 在.env中添加Gemini API配置 - GEMINI_API_KEY - GEMINI_API_BASE_URL - GEMINI_MODEL 替换原弹幕功能,提供更强大的AI助手体验!
51 lines
1.5 KiB
JavaScript
Executable File
51 lines
1.5 KiB
JavaScript
Executable File
const winston = require('winston');
|
|
const path = require('path');
|
|
const fs = require('fs');
|
|
|
|
// 确保日志目录存在
|
|
const logDir = path.join(__dirname, '../logs');
|
|
if (!fs.existsSync(logDir)) {
|
|
fs.mkdirSync(logDir, { recursive: true });
|
|
}
|
|
|
|
// 创建Winston日志记录器
|
|
const logger = winston.createLogger({
|
|
level: process.env.LOG_LEVEL || 'info',
|
|
format: winston.format.combine(
|
|
winston.format.timestamp({
|
|
format: 'YYYY-MM-DD HH:mm:ss'
|
|
}),
|
|
winston.format.printf(info => `${info.timestamp} ${info.level}: ${info.message}`)
|
|
),
|
|
transports: [
|
|
// 控制台输出
|
|
new winston.transports.Console({
|
|
format: winston.format.combine(
|
|
winston.format.colorize(),
|
|
winston.format.printf(info => `${info.timestamp} ${info.level}: ${info.message}`)
|
|
)
|
|
}),
|
|
// 文件输出
|
|
new winston.transports.File({
|
|
filename: path.join(logDir, 'error.log'),
|
|
level: 'error'
|
|
}),
|
|
new winston.transports.File({
|
|
filename: path.join(logDir, 'combined.log')
|
|
})
|
|
]
|
|
});
|
|
|
|
// 简单的日志函数
|
|
function log(level, message) {
|
|
logger.log(level, message);
|
|
}
|
|
|
|
// 导出日志函数
|
|
module.exports = {
|
|
error: (message) => log('error', message),
|
|
warn: (message) => log('warn', message),
|
|
info: (message) => log('info', message),
|
|
debug: (message) => log('debug', message),
|
|
logger
|
|
};
|