返回 MoneyPrinterTurbo
llm.py
根目录 / app / controllers / v1 / llm.py
1 from fastapi import Request
2
3 from app.controllers.v1.base import new_router
4 from app.models.schema import (
5 VideoScriptRequest,
6 VideoScriptResponse,
7 VideoSocialMetadataRequest,
8 VideoSocialMetadataResponse,
9 VideoTermsRequest,
10 VideoTermsResponse,
11 )
12 from app.services import llm
13 from app.utils import utils
14
15 # authentication dependency
16 # router = new_router(dependencies=[Depends(base.verify_token)])
17 router = new_router()
18
19
20 @router.post(
21 "/scripts",
22 response_model=VideoScriptResponse,
23 summary="Create a script for the video",
24 )
25 def generate_video_script(request: Request, body: VideoScriptRequest):
26 video_script = llm.generate_script(
27 video_subject=body.video_subject,
28 language=body.video_language,
29 paragraph_number=body.paragraph_number,
30 video_script_prompt=body.video_script_prompt,
31 custom_system_prompt=body.custom_system_prompt,
32 )
33 response = {"video_script": video_script}
34 return utils.get_response(200, response)
35
36
37 @router.post(
38 "/terms",
39 response_model=VideoTermsResponse,
40 summary="Generate video terms based on the video script",
41 )
42 def generate_video_terms(request: Request, body: VideoTermsRequest):
43 video_terms = llm.generate_terms(
44 video_subject=body.video_subject,
45 video_script=body.video_script,
46 amount=body.amount,
47 match_script_order=body.match_materials_to_script,
48 )
49 response = {"video_terms": video_terms}
50 return utils.get_response(200, response)
51
52
53 @router.post(
54 "/social-metadata",
55 response_model=VideoSocialMetadataResponse,
56 summary="Generate social publishing metadata",
57 )
58 def generate_video_social_metadata(
59 request: Request, body: VideoSocialMetadataRequest
60 ):
61 metadata = llm.generate_social_metadata(
62 video_subject=body.video_subject,
63 video_script=body.video_script,
64 language=body.language,
65 platform=body.platform,
66 )
67 return utils.get_response(200, metadata)
68
68 lines PYTHON