AIvoices/server-fastapi/classic_route.py
2026-05-09 18:38:57 +05:30

55 lines
1.6 KiB
Python

"""Classic STT -> LLM -> TTS pipeline builder."""
from __future__ import annotations
import os
from character_prompt import LANGUAGE_LEARNING_PAL_PROMPT
from loguru import logger
from models.llm import create_llm_service
from models.stt import create_stt_service
from models.tts import create_tts_service
from pipecat.audio.vad.silero import SileroVADAnalyzer
from pipecat.audio.vad.vad_analyzer import VADParams
from pipecat.processors.aggregators.llm_context import LLMContext
from pipecat.processors.aggregators.llm_response_universal import (
LLMContextAggregatorPair,
LLMUserAggregatorParams,
)
def build_classic_route(input_processor, context: LLMContext):
stt_provider = os.getenv("CLASSIC_STT_PROVIDER", "deepgram")
llm_provider = os.getenv("CLASSIC_LLM_PROVIDER", "openai")
tts_provider = os.getenv("CLASSIC_TTS_PROVIDER", "elevenlabs")
logger.info(
"Building classic route with stt={} llm={} tts={}",
stt_provider,
llm_provider,
tts_provider,
)
stt = create_stt_service(stt_provider)
llm = create_llm_service(
llm_provider,
system_instruction=LANGUAGE_LEARNING_PAL_PROMPT,
)
tts = create_tts_service(tts_provider)
user_aggregator, assistant_aggregator = LLMContextAggregatorPair(
context,
user_params=LLMUserAggregatorParams(
vad_analyzer=SileroVADAnalyzer(params=VADParams(stop_secs=1))
),
)
processors = [
input_processor,
stt,
user_aggregator,
llm,
tts,
]
return processors, assistant_aggregator