新功能: - 创建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助手体验!
172 lines
3.7 KiB
JavaScript
Executable File
172 lines
3.7 KiB
JavaScript
Executable File
const mongoose = require('mongoose');
|
|
|
|
// 检查模型是否已经存在
|
|
if (mongoose.models.Setting) {
|
|
module.exports = mongoose.models.Setting;
|
|
return;
|
|
}
|
|
|
|
const settingSchema = new mongoose.Schema({
|
|
// 通用设置字段
|
|
key: {
|
|
type: String,
|
|
unique: true,
|
|
sparse: true
|
|
},
|
|
value: {
|
|
type: mongoose.Schema.Types.Mixed
|
|
},
|
|
updatedAt: {
|
|
type: Date,
|
|
default: Date.now
|
|
},
|
|
|
|
// 主题设置字段
|
|
theme: {
|
|
primaryColor: {
|
|
type: String,
|
|
default: '#5b00d7'
|
|
},
|
|
// 可以在这里添加更多主题相关设置,如次要颜色、暗色模式等
|
|
},
|
|
|
|
// 系统功能开关
|
|
systemFeatures: {
|
|
registrationEnabled: {
|
|
type: Boolean,
|
|
default: true
|
|
}
|
|
},
|
|
|
|
// 功能配置设置
|
|
featureSettings: {
|
|
defaultCredits: {
|
|
type: Number,
|
|
default: 10
|
|
},
|
|
removeBgCost: {
|
|
type: Number,
|
|
default: 1
|
|
},
|
|
generateBgCost: {
|
|
type: Number,
|
|
default: 2
|
|
},
|
|
imageAnalysisCost: {
|
|
type: Number,
|
|
default: 1
|
|
}
|
|
},
|
|
|
|
// 评价分析关键词预设
|
|
evaluationKeywords: {
|
|
type: [String],
|
|
default: []
|
|
},
|
|
|
|
// 视觉模型预设信息
|
|
visualModelPreset: {
|
|
type: String,
|
|
default: ''
|
|
},
|
|
|
|
// 优化模型预设信息
|
|
optimizationPreset: {
|
|
type: String,
|
|
default: ''
|
|
},
|
|
|
|
// 生成背景预设信息
|
|
generateBgPreset: {
|
|
type: String,
|
|
default: ''
|
|
},
|
|
|
|
// 攻心评价预设信息
|
|
persuasiveReviewPreset: {
|
|
type: String,
|
|
default: ''
|
|
},
|
|
|
|
// 爆款标题预设信息
|
|
viralTitlePreset: {
|
|
type: String,
|
|
default: ''
|
|
},
|
|
|
|
// AI灵魂助手预设信息
|
|
soulAssistantPreset: {
|
|
type: String,
|
|
default: ''
|
|
},
|
|
|
|
// 侧边栏功能显示设置
|
|
sidebarFeatures: {
|
|
type: mongoose.Schema.Types.Mixed,
|
|
default: {
|
|
'remove-bg': true,
|
|
'generate-bg': true,
|
|
'repaint': true,
|
|
'image-enhancer': true,
|
|
'sketch-to-image': true,
|
|
'image-extender': true,
|
|
'poster-generator': true,
|
|
'visual-analysis': true,
|
|
'virtual-model': true,
|
|
'video-generator': true,
|
|
'tripo3d': true,
|
|
'evaluation-analyzer': true,
|
|
'remove-bg-v2': true,
|
|
'ocr-tool': true,
|
|
'erase-tool': true,
|
|
'product-replacement': true,
|
|
'scene-fission': true,
|
|
'soul-assistant': true,
|
|
'ai-image-edit': true
|
|
}
|
|
},
|
|
|
|
// 侧边栏功能密码设置
|
|
sidebarFeaturePasswords: {
|
|
type: Object,
|
|
default: {}
|
|
},
|
|
|
|
// 侧边栏功能标签提示设置
|
|
sidebarFeatureTags: {
|
|
type: Object,
|
|
default: {}
|
|
},
|
|
|
|
// 全站弹窗广告设置
|
|
sitePopupAd: {
|
|
type: Object,
|
|
default: {
|
|
enabled: false,
|
|
title: '',
|
|
content: '',
|
|
buttonText: '我知道了',
|
|
popupId: ''
|
|
}
|
|
},
|
|
|
|
// 导航栏版本号设置
|
|
navbarVersion: {
|
|
type: Object,
|
|
default: {
|
|
enabled: false,
|
|
version: '',
|
|
position: 'right'
|
|
}
|
|
}
|
|
});
|
|
|
|
// 添加更新时间的中间件
|
|
settingSchema.pre('save', function(next) {
|
|
this.updatedAt = new Date();
|
|
next();
|
|
});
|
|
|
|
const Setting = mongoose.model('Setting', settingSchema);
|
|
|
|
module.exports = Setting;
|