Update backend schema
This commit is contained in:
56
api/main.py
56
api/main.py
@@ -6,6 +6,9 @@ import os
|
||||
from app.db import Base, engine
|
||||
from app.routers import assistants, history, knowledge
|
||||
|
||||
# 配置
|
||||
PORT = int(os.getenv("PORT", 8100))
|
||||
|
||||
|
||||
@asynccontextmanager
|
||||
async def lifespan(app: FastAPI):
|
||||
@@ -52,22 +55,59 @@ def init_default_data():
|
||||
from sqlalchemy.orm import Session
|
||||
from app.db import SessionLocal
|
||||
from app.models import Voice
|
||||
|
||||
|
||||
db = SessionLocal()
|
||||
try:
|
||||
# 检查是否已有数据
|
||||
if db.query(Voice).count() == 0:
|
||||
# 插入默认声音
|
||||
# SiliconFlow CosyVoice 2.0 预设声音 (8个)
|
||||
# 参考: https://docs.siliconflow.cn/cn/api-reference/audio/create-speech
|
||||
voices = [
|
||||
Voice(id="v1", name="Xiaoyun", vendor="Ali", gender="Female", language="zh", description="Gentle and professional."),
|
||||
Voice(id="v2", name="Kevin", vendor="Volcano", gender="Male", language="en", description="Deep and authoritative."),
|
||||
Voice(id="v3", name="Abby", vendor="Minimax", gender="Female", language="en", description="Cheerful and lively."),
|
||||
Voice(id="v4", name="Guang", vendor="Ali", gender="Male", language="zh", description="Standard newscast style."),
|
||||
Voice(id="v5", name="Doubao", vendor="Volcano", gender="Female", language="zh", description="Cute and young."),
|
||||
# 男声 (Male Voices)
|
||||
Voice(id="alex", name="Alex", vendor="SiliconFlow", gender="Male", language="en",
|
||||
description="Steady male voice.", is_system=True),
|
||||
Voice(id="benjamin", name="Benjamin", vendor="SiliconFlow", gender="Male", language="en",
|
||||
description="Deep male voice.", is_system=True),
|
||||
Voice(id="charles", name="Charles", vendor="SiliconFlow", gender="Male", language="en",
|
||||
description="Magnetic male voice.", is_system=True),
|
||||
Voice(id="david", name="David", vendor="SiliconFlow", gender="Male", language="en",
|
||||
description="Cheerful male voice.", is_system=True),
|
||||
# 女声 (Female Voices)
|
||||
Voice(id="anna", name="Anna", vendor="SiliconFlow", gender="Female", language="en",
|
||||
description="Steady female voice.", is_system=True),
|
||||
Voice(id="bella", name="Bella", vendor="SiliconFlow", gender="Female", language="en",
|
||||
description="Passionate female voice.", is_system=True),
|
||||
Voice(id="claire", name="Claire", vendor="SiliconFlow", gender="Female", language="en",
|
||||
description="Gentle female voice.", is_system=True),
|
||||
Voice(id="diana", name="Diana", vendor="SiliconFlow", gender="Female", language="en",
|
||||
description="Cheerful female voice.", is_system=True),
|
||||
# 中文方言 (Chinese Dialects) - 可选扩展
|
||||
Voice(id="amador", name="Amador", vendor="SiliconFlow", gender="Male", language="zh",
|
||||
description="Male voice with Spanish accent."),
|
||||
Voice(id="aelora", name="Aelora", vendor="SiliconFlow", gender="Female", language="en",
|
||||
description="Elegant female voice."),
|
||||
Voice(id="aelwin", name="Aelwin", vendor="SiliconFlow", gender="Male", language="en",
|
||||
description="Deep male voice."),
|
||||
Voice(id="blooming", name="Blooming", vendor="SiliconFlow", gender="Female", language="en",
|
||||
description="Fresh and clear female voice."),
|
||||
Voice(id="elysia", name="Elysia", vendor="SiliconFlow", gender="Female", language="en",
|
||||
description="Smooth and silky female voice."),
|
||||
Voice(id="leo", name="Leo", vendor="SiliconFlow", gender="Male", language="en",
|
||||
description="Young male voice."),
|
||||
Voice(id="lin", name="Lin", vendor="SiliconFlow", gender="Female", language="zh",
|
||||
description="Standard Chinese female voice."),
|
||||
Voice(id="rose", name="Rose", vendor="SiliconFlow", gender="Female", language="en",
|
||||
description="Soft and gentle female voice."),
|
||||
Voice(id="shao", name="Shao", vendor="SiliconFlow", gender="Male", language="zh",
|
||||
description="Deep Chinese male voice."),
|
||||
Voice(id="sky", name="Sky", vendor="SiliconFlow", gender="Male", language="en",
|
||||
description="Clear and bright male voice."),
|
||||
Voice(id="ael西山", name="Ael西山", vendor="SiliconFlow", gender="Female", language="zh",
|
||||
description="Female voice with Chinese dialect."),
|
||||
]
|
||||
for v in voices:
|
||||
db.add(v)
|
||||
db.commit()
|
||||
print("✅ 默认声音数据已初始化")
|
||||
print("✅ 默认声音数据已初始化 (SiliconFlow CosyVoice 2.0)")
|
||||
finally:
|
||||
db.close()
|
||||
|
||||
Reference in New Issue
Block a user