From 477ea8407eb03c5242b5b6447a887affe8820878 Mon Sep 17 00:00:00 2001 From: Ajay Raj Date: Fri, 3 Mar 2023 10:42:45 -0800 Subject: [PATCH] update example + add chatgpt configs --- simple_conversation.py | 10 ++++++---- user_implemented_agent.py | 3 ++- vocode/models/agent.py | 8 +++++++- 3 files changed, 15 insertions(+), 6 deletions(-) diff --git a/simple_conversation.py b/simple_conversation.py index a696a8c..cebf61e 100644 --- a/simple_conversation.py +++ b/simple_conversation.py @@ -5,7 +5,7 @@ import signal from vocode.conversation import Conversation from vocode.helpers import create_microphone_input_and_speaker_output from vocode.models.transcriber import DeepgramTranscriberConfig -from vocode.models.agent import ChatGPTAgentConfig, RESTfulUserImplementedAgentConfig, WebSocketUserImplementedAgentConfig, EchoAgentConfig +from vocode.models.agent import ChatGPTAgentConfig, RESTfulUserImplementedAgentConfig, WebSocketUserImplementedAgentConfig, EchoAgentConfig, ChatGPTAlphaAgentConfig, ChatGPTAgentConfig from vocode.models.synthesizer import AzureSynthesizerConfig from vocode.user_implemented_agent.restful_agent import RESTfulAgent @@ -14,15 +14,17 @@ logging.root.setLevel(logging.INFO) if __name__ == "__main__": - microphone_input, speaker_output = create_microphone_input_and_speaker_output(use_default_devices=True) + microphone_input, speaker_output = create_microphone_input_and_speaker_output(use_default_devices=False) conversation = Conversation( input_device=microphone_input, output_device=speaker_output, transcriber_config=DeepgramTranscriberConfig.from_input_device(microphone_input), - agent_config=EchoAgentConfig( + agent_config=WebSocketUserImplementedAgentConfig( initial_message="Hello!", - generate_responses=False, + respond=WebSocketUserImplementedAgentConfig.RouteConfig( + url="wss://a8ea877c9548.ngrok.io/respond" + ) ), synthesizer_config=AzureSynthesizerConfig.from_output_device(speaker_output) ) diff --git a/user_implemented_agent.py b/user_implemented_agent.py index 9db9ac1..cd744c2 100644 --- a/user_implemented_agent.py +++ b/user_implemented_agent.py @@ -4,7 +4,8 @@ from vocode.user_implemented_agent.websocket_agent import WebSocketAgent class EchoAgent(WebSocketAgent): async def respond(self, input: str) -> str: - return input + print(input) + return ''.join(i + j for i, j in zip(input, ' ' * len(input))) if __name__ == "__main__": agent = EchoAgent() diff --git a/vocode/models/agent.py b/vocode/models/agent.py index 2f573f5..ded85bd 100644 --- a/vocode/models/agent.py +++ b/vocode/models/agent.py @@ -6,6 +6,7 @@ from .model import TypedModel, BaseModel class AgentType(str, Enum): BASE = "base" LLM = "llm" + CHAT_GPT_ALPHA = "chat_gpt_alpha" CHAT_GPT = "chat_gpt" ECHO = "echo" INFORMATION_RETRIEVAL = "information_retrieval" @@ -21,9 +22,14 @@ class LLMAgentConfig(AgentConfig, type=AgentType.LLM): prompt_preamble: str expected_first_prompt: Optional[str] = None +class ChatGPTAlphaAgentConfig(AgentConfig, type=AgentType.CHAT_GPT_ALPHA): + prompt_preamble: str + expected_first_prompt: Optional[str] = None + class ChatGPTAgentConfig(AgentConfig, type=AgentType.CHAT_GPT): prompt_preamble: str expected_first_prompt: Optional[str] = None + generate_responses: bool = False class InformationRetrievalAgentConfig( AgentConfig, type=AgentType.INFORMATION_RETRIEVAL @@ -90,4 +96,4 @@ class AgentReadyMessage(WebSocketAgentMessage, type=WebSocketAgentMessageType.AG pass class AgentStopMessage(WebSocketAgentMessage, type=WebSocketAgentMessageType.AGENT_STOP): - pass \ No newline at end of file + pass