58 lines
3 KiB
Python
58 lines
3 KiB
Python
from vocode.streaming.agent.base_agent import BaseAgent
|
|
from vocode.streaming.agent.chat_gpt_agent import ChatGPTAgent
|
|
from vocode.streaming.agent.echo_agent import EchoAgent
|
|
from vocode.streaming.agent.information_retrieval_agent import InformationRetrievalAgent
|
|
from vocode.streaming.agent.llm_agent import LLMAgent
|
|
from vocode.streaming.models.agent import AgentConfig, AgentType
|
|
from vocode.streaming.models.synthesizer import SynthesizerConfig, SynthesizerType
|
|
from vocode.streaming.models.transcriber import TranscriberConfig, TranscriberType
|
|
from vocode.streaming.synthesizer.azure_synthesizer import AzureSynthesizer
|
|
from vocode.streaming.synthesizer.base_synthesizer import BaseSynthesizer
|
|
from vocode.streaming.synthesizer.eleven_labs_synthesizer import ElevenLabsSynthesizer
|
|
from vocode.streaming.synthesizer.google_synthesizer import GoogleSynthesizer
|
|
from vocode.streaming.synthesizer.rime_synthesizer import RimeSynthesizer
|
|
from vocode.streaming.transcriber.assembly_ai_transcriber import AssemblyAITranscriber
|
|
from vocode.streaming.transcriber.base_transcriber import BaseTranscriber
|
|
from vocode.streaming.transcriber.deepgram_transcriber import DeepgramTranscriber
|
|
from vocode.streaming.transcriber.google_transcriber import GoogleTranscriber
|
|
|
|
|
|
def create_transcriber(transcriber_config: TranscriberConfig) -> BaseTranscriber:
|
|
if transcriber_config.type == TranscriberType.DEEPGRAM:
|
|
return DeepgramTranscriber(transcriber_config)
|
|
elif transcriber_config.type == TranscriberType.GOOGLE:
|
|
return GoogleTranscriber(transcriber_config)
|
|
elif transcriber_config.type == TranscriberType.ASSEMBLY_AI:
|
|
return AssemblyAITranscriber(transcriber_config)
|
|
else:
|
|
raise Exception("Invalid transcriber config")
|
|
|
|
|
|
def create_agent(agent_config: AgentConfig) -> BaseAgent:
|
|
if agent_config.type == AgentType.LLM:
|
|
return LLMAgent(agent_config=agent_config)
|
|
elif agent_config.type == AgentType.CHAT_GPT:
|
|
return ChatGPTAgent(agent_config=agent_config)
|
|
elif agent_config.type == AgentType.ECHO:
|
|
return EchoAgent(agent_config=agent_config)
|
|
elif agent_config.type == AgentType.INFORMATION_RETRIEVAL:
|
|
return InformationRetrievalAgent(
|
|
agent_config=agent_config,
|
|
)
|
|
raise Exception("Invalid agent config", agent_config.type)
|
|
|
|
|
|
def create_synthesizer(synthesizer_config: SynthesizerConfig) -> BaseSynthesizer:
|
|
if synthesizer_config.type == SynthesizerType.GOOGLE:
|
|
return GoogleSynthesizer(synthesizer_config)
|
|
elif synthesizer_config.type == SynthesizerType.AZURE:
|
|
return AzureSynthesizer(synthesizer_config)
|
|
elif synthesizer_config.type == SynthesizerType.ELEVEN_LABS:
|
|
kwargs = {}
|
|
if synthesizer_config.voice_id:
|
|
kwargs["voice_id"] = synthesizer_config.voice_id
|
|
return ElevenLabsSynthesizer(synthesizer_config, **kwargs)
|
|
elif synthesizer_config.type == SynthesizerType.RIME:
|
|
return RimeSynthesizer(synthesizer_config)
|
|
else:
|
|
raise Exception("Invalid synthesizer config")
|