feat: complete huihui square avatar workflows

This commit is contained in:
stefanfeng
2026-07-24 14:04:21 +08:00
parent 2ef58a44b8
commit e3bda469bb
68 changed files with 8062 additions and 132 deletions

View File

@@ -0,0 +1,49 @@
import os
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker, declarative_base, Session
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
DB_FILE = os.path.join(BASE_DIR, "avatar.db")
engine = create_engine(
f"sqlite:///{DB_FILE}",
connect_args={"check_same_thread": False},
)
SessionLocal = sessionmaker(bind=engine, autoflush=False, expire_on_commit=False)
Base = declarative_base()
def get_db():
db = SessionLocal()
try:
yield db
finally:
db.close()
def init_db():
import models
Base.metadata.create_all(bind=engine)
# 轻量迁移为已存在的表补充新列SQLite 不支持自动 ALTER逐列尝试
_try_add_columns(
("qa_pairs", "enabled", "BOOLEAN DEFAULT 1"),
("knowledge_docs", "vectorized", "BOOLEAN DEFAULT 0"),
("knowledge_docs", "embedding_model", "VARCHAR DEFAULT ''"),
("knowledge_docs", "chunk_count", "INTEGER DEFAULT 0"),
("knowledge_docs", "vectorized_at", "TIMESTAMP"),
("avatars", "owner_id", "VARCHAR DEFAULT ''"),
)
def _try_add_columns(*cols):
with engine.connect() as conn:
for table, col, ddl in cols:
try:
conn.exec_driver_sql(f"ALTER TABLE {table} ADD COLUMN {col} {ddl}")
conn.commit()
except Exception:
# 列已存在(或全新库由 create_all 建好)则忽略
pass