优化fastapi逻辑
This commit is contained in:
@@ -16,6 +16,11 @@ from api.schemas.content import (
|
|||||||
TitleGenerateRequest,
|
TitleGenerateRequest,
|
||||||
TitleGenerateResponse,
|
TitleGenerateResponse,
|
||||||
)
|
)
|
||||||
|
from pixelle_video.utils.content_generators import (
|
||||||
|
generate_narrations_from_topic,
|
||||||
|
generate_image_prompts,
|
||||||
|
generate_title,
|
||||||
|
)
|
||||||
|
|
||||||
router = APIRouter(prefix="/content", tags=["Content Generation"])
|
router = APIRouter(prefix="/content", tags=["Content Generation"])
|
||||||
|
|
||||||
@@ -40,9 +45,10 @@ async def generate_narration(
|
|||||||
try:
|
try:
|
||||||
logger.info(f"Generating {request.n_scenes} narrations from text")
|
logger.info(f"Generating {request.n_scenes} narrations from text")
|
||||||
|
|
||||||
# Call narration generator service
|
# Call narration generator utility function
|
||||||
narrations = await pixelle_video.narration_generator(
|
narrations = await generate_narrations_from_topic(
|
||||||
text=request.text,
|
llm_service=pixelle_video.llm,
|
||||||
|
topic=request.text,
|
||||||
n_scenes=request.n_scenes,
|
n_scenes=request.n_scenes,
|
||||||
min_words=request.min_words,
|
min_words=request.min_words,
|
||||||
max_words=request.max_words
|
max_words=request.max_words
|
||||||
@@ -76,8 +82,9 @@ async def generate_image_prompt(
|
|||||||
try:
|
try:
|
||||||
logger.info(f"Generating image prompts for {len(request.narrations)} narrations")
|
logger.info(f"Generating image prompts for {len(request.narrations)} narrations")
|
||||||
|
|
||||||
# Call image prompt generator service
|
# Call image prompt generator utility function
|
||||||
image_prompts = await pixelle_video.image_prompt_generator(
|
image_prompts = await generate_image_prompts(
|
||||||
|
llm_service=pixelle_video.llm,
|
||||||
narrations=request.narrations,
|
narrations=request.narrations,
|
||||||
min_words=request.min_words,
|
min_words=request.min_words,
|
||||||
max_words=request.max_words
|
max_words=request.max_words
|
||||||
@@ -93,7 +100,7 @@ async def generate_image_prompt(
|
|||||||
|
|
||||||
|
|
||||||
@router.post("/title", response_model=TitleGenerateResponse)
|
@router.post("/title", response_model=TitleGenerateResponse)
|
||||||
async def generate_title(
|
async def generate_title_endpoint(
|
||||||
request: TitleGenerateRequest,
|
request: TitleGenerateRequest,
|
||||||
pixelle_video: PixelleVideoDep
|
pixelle_video: PixelleVideoDep
|
||||||
):
|
):
|
||||||
@@ -110,9 +117,11 @@ async def generate_title(
|
|||||||
try:
|
try:
|
||||||
logger.info("Generating title from text")
|
logger.info("Generating title from text")
|
||||||
|
|
||||||
# Call title generator service
|
# Call title generator utility function
|
||||||
title = await pixelle_video.title_generator(
|
title = await generate_title(
|
||||||
text=request.text
|
llm_service=pixelle_video.llm,
|
||||||
|
content=request.text,
|
||||||
|
strategy="llm"
|
||||||
)
|
)
|
||||||
|
|
||||||
return TitleGenerateResponse(
|
return TitleGenerateResponse(
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ from loguru import logger
|
|||||||
from api.dependencies import PixelleVideoDep
|
from api.dependencies import PixelleVideoDep
|
||||||
from api.schemas.image import ImageGenerateRequest, ImageGenerateResponse
|
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)
|
@router.post("/generate", response_model=ImageGenerateResponse)
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ from loguru import logger
|
|||||||
from api.dependencies import PixelleVideoDep
|
from api.dependencies import PixelleVideoDep
|
||||||
from api.schemas.llm import LLMChatRequest, LLMChatResponse
|
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)
|
@router.post("/chat", response_model=LLMChatResponse)
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ from api.dependencies import PixelleVideoDep
|
|||||||
from api.schemas.tts import TTSSynthesizeRequest, TTSSynthesizeResponse
|
from api.schemas.tts import TTSSynthesizeRequest, TTSSynthesizeResponse
|
||||||
from pixelle_video.utils.tts_util import get_audio_duration
|
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)
|
@router.post("/synthesize", response_model=TTSSynthesizeResponse)
|
||||||
@@ -33,7 +33,7 @@ async def tts_synthesize(
|
|||||||
# Call TTS service
|
# Call TTS service
|
||||||
audio_path = await pixelle_video.tts(
|
audio_path = await pixelle_video.tts(
|
||||||
text=request.text,
|
text=request.text,
|
||||||
voice_id=request.voice_id
|
voice=request.voice_id
|
||||||
)
|
)
|
||||||
|
|
||||||
# Get audio duration
|
# Get audio duration
|
||||||
|
|||||||
Reference in New Issue
Block a user