From fd9c246cc9548ae52ee5dd88e96da356c29ac20e Mon Sep 17 00:00:00 2001 From: Ajay Raj Date: Tue, 14 Mar 2023 18:11:22 -0700 Subject: [PATCH] configurable cut off response --- pyproject.toml | 2 +- simple_conversation.py | 8 ++++---- vocode/models/agent.py | 6 ++++++ 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 8d0b130..3826e6e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "vocode" -version = "0.1.34" +version = "0.1.35" description = "The all-in-one voice SDK" authors = ["Ajay Raj "] license = "MIT License" diff --git a/simple_conversation.py b/simple_conversation.py index b451042..4279fa1 100644 --- a/simple_conversation.py +++ b/simple_conversation.py @@ -19,6 +19,7 @@ from vocode.models.transcriber import ( ) from vocode.models.agent import ( ChatGPTAgentConfig, + CutOffResponse, FillerAudioConfig, RESTfulUserImplementedAgentConfig, WebSocketUserImplementedAgentConfig, @@ -46,12 +47,11 @@ if __name__ == "__main__": transcriber_config=DeepgramTranscriberConfig.from_input_device( microphone_input ), - agent_config=WebSocketUserImplementedAgentConfig( + agent_config=ChatGPTAgentConfig( initial_message=BaseMessage(text="Hello!"), + prompt_preamble="The AI is having a pleasant conversation about life", generate_responses=True, - respond=WebSocketUserImplementedAgentConfig.RouteConfig( - url="wss://9b1ff0eee874.ngrok.app/respond", - ), + cut_off_response=CutOffResponse(), ), synthesizer_config=AzureSynthesizerConfig.from_output_device(speaker_output), ) diff --git a/vocode/models/agent.py b/vocode/models/agent.py index abc923a..4de9514 100644 --- a/vocode/models/agent.py +++ b/vocode/models/agent.py @@ -45,12 +45,17 @@ class AgentConfig(TypedModel, type=AgentType.BASE): send_filler_audio: Union[bool, FillerAudioConfig] = False +class CutOffResponse(BaseModel): + messages: list[BaseMessage] = [BaseMessage(text="Sorry?")] + + class LLMAgentConfig(AgentConfig, type=AgentType.LLM): prompt_preamble: str expected_first_prompt: Optional[str] = None model_name: str = LLM_AGENT_DEFAULT_MODEL_NAME temperature: float = LLM_AGENT_DEFAULT_TEMPERATURE max_tokens: int = LLM_AGENT_DEFAULT_MAX_TOKENS + cut_off_response: Optional[CutOffResponse] = None class ChatGPTAlphaAgentConfig(AgentConfig, type=AgentType.CHAT_GPT_ALPHA): @@ -66,6 +71,7 @@ class ChatGPTAgentConfig(AgentConfig, type=AgentType.CHAT_GPT): generate_responses: bool = False temperature: float = LLM_AGENT_DEFAULT_TEMPERATURE max_tokens: int = LLM_AGENT_DEFAULT_MAX_TOKENS + cut_off_response: Optional[CutOffResponse] = None class InformationRetrievalAgentConfig(