feat: expand AI workflow support and refresh docs

This commit is contained in:
2026-03-12 13:47:42 +08:00
parent 8688422578
commit 4ecab597f4
28 changed files with 4806 additions and 1907 deletions

View File

@@ -2,8 +2,10 @@ from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker, declarative_base
from app.core.config import settings
# 数据库连接字符串,默认使用 SQLite 本地文件
SQLALCHEMY_DATABASE_URL = getattr(settings, "DATABASE_URL", "sqlite:///./designercep.db")
# 数据库连接字符串SQLite 相对路径已在配置层解析为 Server 目录下的绝对路径
SQLALCHEMY_DATABASE_URL = getattr(
settings, "DATABASE_URL", "sqlite:///./designercep.db"
)
# 创建数据库引擎
engine = create_engine(
@@ -81,7 +83,8 @@ def seed_data():
db.close()
def ensure_migrations():
# 轻量级迁移: SQLite 动态添加缺失列
# 轻量级迁移:仅作为本地 SQLite 的兜底补列逻辑。
# 正式环境请优先使用 Alembic见 Server/migrations/README.md
if not SQLALCHEMY_DATABASE_URL.startswith("sqlite"):
return
with engine.connect() as conn:
@@ -152,3 +155,27 @@ def ensure_migrations():
add_col("users", "consecutive_check_in", "INTEGER DEFAULT 0")
if not has_column("users", "last_check_in_date"):
add_col("users", "last_check_in_date", "DATE NULL")
if not has_column("users", "ai_provider"):
add_col("users", "ai_provider", "VARCHAR(32) NULL")
if not has_column("users", "ai_api_key"):
add_col("users", "ai_api_key", "TEXT NULL")
if not has_column("users", "ai_base_url"):
add_col("users", "ai_base_url", "VARCHAR(255) NULL")
if not has_column("users", "ai_chat_base_url"):
add_col("users", "ai_chat_base_url", "VARCHAR(255) NULL")
if not has_column("users", "ai_vision_base_url"):
add_col("users", "ai_vision_base_url", "VARCHAR(255) NULL")
if not has_column("users", "ai_image_base_url"):
add_col("users", "ai_image_base_url", "VARCHAR(255) NULL")
if not has_column("users", "ai_model"):
add_col("users", "ai_model", "VARCHAR(120) NULL")
if not has_column("users", "ai_vision_model"):
add_col("users", "ai_vision_model", "VARCHAR(120) NULL")
if not has_column("users", "ai_image_model"):
add_col("users", "ai_image_model", "VARCHAR(120) NULL")
# chat_sessions 会话工作流字段
if not has_column("chat_sessions", "active_skill_id"):
add_col("chat_sessions", "active_skill_id", "VARCHAR(80) NULL")
if not has_column("chat_sessions", "workflow_state"):
add_col("chat_sessions", "workflow_state", "TEXT NULL")