feat: AI套图分层方案 + Gemini集成 - 4种图案类型处理 + 正片叠底 + 宽高比 + 模型选择

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-02-07 16:59:56 +08:00
parent 12395d8eca
commit dae906aba7
277 changed files with 15009 additions and 19922 deletions

31
Server/app/models/chat.py Normal file
View File

@@ -0,0 +1,31 @@
"""
AI 对话模型
- ChatSession: 对话会话(按用户隔离)
- ChatMessage: 对话消息
"""
from sqlalchemy import Column, Integer, String, DateTime, Text, ForeignKey, func
from app.db import Base
class ChatSession(Base):
"""对话会话表 — 每个用户可以有多个对话"""
__tablename__ = "chat_sessions"
id = Column(Integer, primary_key=True, index=True)
user_id = Column(Integer, ForeignKey("users.id"), nullable=False, index=True)
username = Column(String(64), nullable=False, index=True)
title = Column(String(200), default="新对话") # 对话标题(取首条消息摘要)
created_at = Column(DateTime(timezone=True), server_default=func.now())
updated_at = Column(DateTime(timezone=True), server_default=func.now(), onupdate=func.now())
class ChatMessage(Base):
"""对话消息表"""
__tablename__ = "chat_messages"
id = Column(Integer, primary_key=True, index=True)
session_id = Column(Integer, ForeignKey("chat_sessions.id", ondelete="CASCADE"), nullable=False, index=True)
role = Column(String(20), nullable=False) # user / assistant / system
content = Column(Text, nullable=False) # 消息内容
tool_calls = Column(Text, nullable=True) # 工具调用 JSON预留
created_at = Column(DateTime(timezone=True), server_default=func.now())