优化fastapi逻辑

This commit is contained in:
puke
2025-11-05 17:02:44 +08:00
parent 4968d8c612
commit 4823d099fd
4 changed files with 22 additions and 13 deletions

View File

@@ -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(

View File

@@ -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)

View File

@@ -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)

View File

@@ -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