Add CRUD functionality for knowledge bases, including routes for listing, creating, updating, and deleting knowledge bases. Update the assistant model to include foreign key references to knowledge bases and modify the assistant configuration to handle external API keys securely. Refactor related services and routes to accommodate these changes, ensuring proper handling of credential resolution and configuration normalization.
57 lines
1.4 KiB
Python
57 lines
1.4 KiB
Python
"""FastAPI 入口。挂载路由,放行前端跨域,启动时建表。
|
|
|
|
启动: uvicorn app:app --reload --port 8000
|
|
|
|
路由分组(对齐 dograh 的 routes/ 结构):
|
|
/health 健康检查
|
|
/api/assistants 助手 CRUD
|
|
/api/credentials 模型凭证 CRUD(key 打码)
|
|
/ws/voice WebRTC 输出(浏览器)
|
|
/ws/stream WS 输出(裸音频流)
|
|
"""
|
|
|
|
from contextlib import asynccontextmanager
|
|
|
|
import config
|
|
import uvicorn
|
|
from db.session import init_db
|
|
from fastapi import FastAPI
|
|
from fastapi.middleware.cors import CORSMiddleware
|
|
|
|
from routes import (
|
|
assistants,
|
|
credentials,
|
|
health,
|
|
knowledge_bases,
|
|
voice_webrtc,
|
|
voice_ws,
|
|
)
|
|
|
|
|
|
@asynccontextmanager
|
|
async def lifespan(_app: FastAPI):
|
|
await init_db() # MVP:启动建表;表稳定后切 alembic
|
|
yield
|
|
|
|
|
|
app = FastAPI(title="AI Video Assistant 平台 - 后端", lifespan=lifespan)
|
|
|
|
app.add_middleware(
|
|
CORSMiddleware,
|
|
allow_origins=config.CORS_ORIGINS,
|
|
allow_credentials=True,
|
|
allow_methods=["*"],
|
|
allow_headers=["*"],
|
|
)
|
|
|
|
app.include_router(health.router)
|
|
app.include_router(assistants.router)
|
|
app.include_router(credentials.router)
|
|
app.include_router(knowledge_bases.router)
|
|
app.include_router(voice_webrtc.router)
|
|
app.include_router(voice_ws.router)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
uvicorn.run("app:app", host=config.HOST, port=config.PORT, reload=True)
|