From 4823d099fd9d87ff342645f1b7bb40c582460b46 Mon Sep 17 00:00:00 2001 From: puke <1129090915@qq.com> Date: Wed, 5 Nov 2025 17:02:44 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96fastapi=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/routers/content.py | 27 ++++++++++++++++++--------- api/routers/image.py | 2 +- api/routers/llm.py | 2 +- api/routers/tts.py | 4 ++-- 4 files changed, 22 insertions(+), 13 deletions(-) diff --git a/api/routers/content.py b/api/routers/content.py index ba2c28e..fec51f8 100644 --- a/api/routers/content.py +++ b/api/routers/content.py @@ -16,6 +16,11 @@ from api.schemas.content import ( TitleGenerateRequest, TitleGenerateResponse, ) +from pixelle_video.utils.content_generators import ( + generate_narrations_from_topic, + generate_image_prompts, + generate_title, +) router = APIRouter(prefix="/content", tags=["Content Generation"]) @@ -40,9 +45,10 @@ async def generate_narration( try: logger.info(f"Generating {request.n_scenes} narrations from text") - # Call narration generator service - narrations = await pixelle_video.narration_generator( - text=request.text, + # Call narration generator utility function + narrations = await generate_narrations_from_topic( + llm_service=pixelle_video.llm, + topic=request.text, n_scenes=request.n_scenes, min_words=request.min_words, max_words=request.max_words @@ -76,8 +82,9 @@ async def generate_image_prompt( try: logger.info(f"Generating image prompts for {len(request.narrations)} narrations") - # Call image prompt generator service - image_prompts = await pixelle_video.image_prompt_generator( + # Call image prompt generator utility function + image_prompts = await generate_image_prompts( + llm_service=pixelle_video.llm, narrations=request.narrations, min_words=request.min_words, max_words=request.max_words @@ -93,7 +100,7 @@ async def generate_image_prompt( @router.post("/title", response_model=TitleGenerateResponse) -async def generate_title( +async def generate_title_endpoint( request: TitleGenerateRequest, pixelle_video: PixelleVideoDep ): @@ -110,9 +117,11 @@ async def generate_title( try: logger.info("Generating title from text") - # Call title generator service - title = await pixelle_video.title_generator( - text=request.text + # Call title generator utility function + title = await generate_title( + llm_service=pixelle_video.llm, + content=request.text, + strategy="llm" ) return TitleGenerateResponse( diff --git a/api/routers/image.py b/api/routers/image.py index 7912f2b..172fafe 100644 --- a/api/routers/image.py +++ b/api/routers/image.py @@ -8,7 +8,7 @@ from loguru import logger from api.dependencies import PixelleVideoDep from api.schemas.image import ImageGenerateRequest, ImageGenerateResponse -router = APIRouter(prefix="/image", tags=["Image"]) +router = APIRouter(prefix="/image", tags=["Basic Services"]) @router.post("/generate", response_model=ImageGenerateResponse) diff --git a/api/routers/llm.py b/api/routers/llm.py index b9986a7..205f7f4 100644 --- a/api/routers/llm.py +++ b/api/routers/llm.py @@ -8,7 +8,7 @@ from loguru import logger from api.dependencies import PixelleVideoDep from api.schemas.llm import LLMChatRequest, LLMChatResponse -router = APIRouter(prefix="/llm", tags=["LLM"]) +router = APIRouter(prefix="/llm", tags=["Basic Services"]) @router.post("/chat", response_model=LLMChatResponse) diff --git a/api/routers/tts.py b/api/routers/tts.py index af63225..3c37788 100644 --- a/api/routers/tts.py +++ b/api/routers/tts.py @@ -9,7 +9,7 @@ from api.dependencies import PixelleVideoDep from api.schemas.tts import TTSSynthesizeRequest, TTSSynthesizeResponse from pixelle_video.utils.tts_util import get_audio_duration -router = APIRouter(prefix="/tts", tags=["TTS"]) +router = APIRouter(prefix="/tts", tags=["Basic Services"]) @router.post("/synthesize", response_model=TTSSynthesizeResponse) @@ -33,7 +33,7 @@ async def tts_synthesize( # Call TTS service audio_path = await pixelle_video.tts( text=request.text, - voice_id=request.voice_id + voice=request.voice_id ) # Get audio duration