gongxiangp2/yedir/server/models/GeneratedImage.js
chenpei d0dc94e36d feat: 将弹幕功能替换为AI聊天助手
新功能:
- 创建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助手体验!
2025-10-27 17:45:37 +08:00

76 lines
1.9 KiB
JavaScript
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

const mongoose = require('mongoose');
// 检查模型是否已经存在
if (mongoose.models.GeneratedImage) {
module.exports = mongoose.models.GeneratedImage;
return;
}
const generatedImageSchema = new mongoose.Schema({
// 图片URL
imageUrl: {
type: String,
required: true
},
// 图片类型(如:remove-bg, generate-bg, enhance-image等)
type: {
type: String,
required: true,
enum: [
// 基础图片处理类型
'remove-bg', 'remove-bg-v2', 'generate-bg', 'enhance-image', 'extend-image',
'repaint', 'sketch-to-image', 'poster-generator', 'ai-image-edit-2',
// AI助手类型
'soul-assistant', 'magic-assistant',
// 特殊功能类型
'product-replacement', 'erase', 'erase-tool', 'video-generator',
'tripo3d', 'ocr', 'evaluation',
// 默认类型
'all-images', 'other'
]
},
// 原始图片URL(如果有)
originalImageUrl: {
type: String
},
// 用户ID(如果用户已登录)
userId: {
type: mongoose.Schema.Types.ObjectId,
ref: 'User'
},
// 提示词(如果有)
prompt: {
type: String
},
// 任务ID(如果有)
taskId: {
type: String
},
// 创建时间
createdAt: {
type: Date,
default: Date.now
},
// 元数据(可以存储任何额外信息)
metadata: {
type: mongoose.Schema.Types.Mixed
}
});
// 创建索引以提高查询性能
generatedImageSchema.index({ userId: 1, type: 1, createdAt: -1 });
generatedImageSchema.index({ taskId: 1 });
const GeneratedImage = mongoose.model('GeneratedImage', generatedImageSchema);
module.exports = GeneratedImage;