Skip to content

Commit 87a837a

Browse files
committed
feat:add api interface:generate_video_script and generate_video_terms
1 parent 53ba189 commit 87a837a

File tree

3 files changed

+94
-1
lines changed

3 files changed

+94
-1
lines changed

app/controllers/v1/llm.py

+32
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
from fastapi import Request
2+
from app.controllers.v1.base import new_router
3+
from app.models.schema import VideoScriptResponse, VideoScriptRequest, VideoTermsResponse, VideoTermsRequest
4+
from app.services import llm
5+
from app.utils import utils
6+
from app.controllers import base
7+
8+
# 认证依赖项
9+
# router = new_router(dependencies=[Depends(base.verify_token)])
10+
router = new_router()
11+
12+
13+
@router.post("/generate_video_script", response_model=VideoScriptResponse, summary="Generate a video script")
14+
def generate_video_script(request: Request, body: VideoScriptRequest):
15+
video_script = llm.generate_script(video_subject=body.video_subject,
16+
language=body.video_language,
17+
paragraph_number=body.paragraph_number)
18+
response = {
19+
"video_script": video_script
20+
}
21+
return utils.get_response(200, response)
22+
23+
24+
@router.post("/generate_video_terms", response_model=VideoTermsResponse, summary="Generate video terms by video script")
25+
def generate_video_terms(request: Request, body: VideoTermsRequest):
26+
video_terms = llm.generate_terms(video_subject=body.video_subject,
27+
video_script=body.video_script,
28+
amount=body.amount)
29+
response = {
30+
"video_terms": video_terms
31+
}
32+
return utils.get_response(200, response)

app/models/schema.py

+60
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,32 @@ class VideoParams:
115115
paragraph_number: Optional[int] = 1
116116

117117

118+
class VideoScriptParams:
119+
"""
120+
{
121+
"video_subject": "春天的花海",
122+
"video_language": "",
123+
"paragraph_number": 1
124+
}
125+
"""
126+
video_subject: Optional[str] = "春天的花海"
127+
video_language: Optional[str] = ""
128+
paragraph_number: Optional[int] = 1
129+
130+
131+
class VideoTermsParams:
132+
"""
133+
{
134+
"video_subject": "",
135+
"video_script": "",
136+
"amount": 5
137+
}
138+
"""
139+
video_subject: Optional[str] = "春天的花海"
140+
video_script: Optional[str] = "春天的花海,如诗如画般展现在眼前。万物复苏的季节里,大地披上了一袭绚丽多彩的盛装。金黄的迎春、粉嫩的樱花、洁白的梨花、艳丽的郁金香……"
141+
amount: Optional[int] = 5
142+
143+
118144
class BaseResponse(BaseModel):
119145
status: int = 200
120146
message: Optional[str] = 'success'
@@ -129,6 +155,14 @@ class TaskQueryRequest(BaseModel):
129155
pass
130156

131157

158+
class VideoScriptRequest(VideoScriptParams, BaseModel):
159+
pass
160+
161+
162+
class VideoTermsRequest(VideoTermsParams, BaseModel):
163+
pass
164+
165+
132166
######################################################################################################
133167
######################################################################################################
134168
######################################################################################################
@@ -166,3 +200,29 @@ class Config:
166200
}
167201
},
168202
}
203+
204+
205+
class VideoScriptResponse(BaseResponse):
206+
class Config:
207+
json_schema_extra = {
208+
"example": {
209+
"status": 200,
210+
"message": "success",
211+
"data": {
212+
"video_script": "春天的花海,是大自然的一幅美丽画卷。在这个季节里,大地复苏,万物生长,花朵争相绽放,形成了一片五彩斑斓的花海..."
213+
}
214+
},
215+
}
216+
217+
218+
class VideoTermsResponse(BaseResponse):
219+
class Config:
220+
json_schema_extra = {
221+
"example": {
222+
"status": 200,
223+
"message": "success",
224+
"data": {
225+
"video_terms": []
226+
}
227+
},
228+
}

app/router.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,9 @@
88
"""
99
from fastapi import APIRouter
1010

11-
from app.controllers.v1 import video
11+
from app.controllers.v1 import video, llm
1212

1313
root_api_router = APIRouter()
1414
# v1
1515
root_api_router.include_router(video.router)
16+
root_api_router.include_router(llm.router)

0 commit comments

Comments
 (0)