diff --git a/app/controllers/v1/llm.py b/app/controllers/v1/llm.py new file mode 100644 index 0000000..e382637 --- /dev/null +++ b/app/controllers/v1/llm.py @@ -0,0 +1,32 @@ +from fastapi import Request +from app.controllers.v1.base import new_router +from app.models.schema import VideoScriptResponse, VideoScriptRequest, VideoTermsResponse, VideoTermsRequest +from app.services import llm +from app.utils import utils +from app.controllers import base + +# 认证依赖项 +# router = new_router(dependencies=[Depends(base.verify_token)]) +router = new_router() + + +@router.post("/generate_video_script", response_model=VideoScriptResponse, summary="Generate a video script") +def generate_video_script(request: Request, body: VideoScriptRequest): + video_script = llm.generate_script(video_subject=body.video_subject, + language=body.video_language, + paragraph_number=body.paragraph_number) + response = { + "video_script": video_script + } + return utils.get_response(200, response) + + +@router.post("/generate_video_terms", response_model=VideoTermsResponse, summary="Generate video terms by video script") +def generate_video_terms(request: Request, body: VideoTermsRequest): + video_terms = llm.generate_terms(video_subject=body.video_subject, + video_script=body.video_script, + amount=body.amount) + response = { + "video_terms": video_terms + } + return utils.get_response(200, response) diff --git a/app/models/schema.py b/app/models/schema.py index b686000..32644b6 100644 --- a/app/models/schema.py +++ b/app/models/schema.py @@ -115,6 +115,32 @@ class VideoParams: paragraph_number: Optional[int] = 1 +class VideoScriptParams: + """ + { + "video_subject": "春天的花海", + "video_language": "", + "paragraph_number": 1 + } + """ + video_subject: Optional[str] = "春天的花海" + video_language: Optional[str] = "" + paragraph_number: Optional[int] = 1 + + +class VideoTermsParams: + """ + { + "video_subject": "", + "video_script": "", + "amount": 5 + } + """ + video_subject: Optional[str] = "春天的花海" + video_script: Optional[str] = "春天的花海,如诗如画般展现在眼前。万物复苏的季节里,大地披上了一袭绚丽多彩的盛装。金黄的迎春、粉嫩的樱花、洁白的梨花、艳丽的郁金香……" + amount: Optional[int] = 5 + + class BaseResponse(BaseModel): status: int = 200 message: Optional[str] = 'success' @@ -129,6 +155,14 @@ class TaskQueryRequest(BaseModel): pass +class VideoScriptRequest(VideoScriptParams, BaseModel): + pass + + +class VideoTermsRequest(VideoTermsParams, BaseModel): + pass + + ###################################################################################################### ###################################################################################################### ###################################################################################################### @@ -166,3 +200,29 @@ class TaskQueryResponse(BaseResponse): } }, } + + +class VideoScriptResponse(BaseResponse): + class Config: + json_schema_extra = { + "example": { + "status": 200, + "message": "success", + "data": { + "video_script": "春天的花海,是大自然的一幅美丽画卷。在这个季节里,大地复苏,万物生长,花朵争相绽放,形成了一片五彩斑斓的花海..." + } + }, + } + + +class VideoTermsResponse(BaseResponse): + class Config: + json_schema_extra = { + "example": { + "status": 200, + "message": "success", + "data": { + "video_terms": [] + } + }, + } diff --git a/app/router.py b/app/router.py index 6cedbb7..3822743 100644 --- a/app/router.py +++ b/app/router.py @@ -8,8 +8,9 @@ Resources: """ from fastapi import APIRouter -from app.controllers.v1 import video +from app.controllers.v1 import video, llm root_api_router = APIRouter() # v1 root_api_router.include_router(video.router) +root_api_router.include_router(llm.router)