open source

This commit is contained in:
Ajay Raj 2023-03-28 00:15:34 -07:00
commit a93bfc1ec9
61 changed files with 4013 additions and 126 deletions

View file

@ -0,0 +1,44 @@
import random
from typing import Generator, Optional
from vocode.streaming.models.agent import (
AgentConfig,
ChatGPTAgentConfig,
LLMAgentConfig,
)
class BaseAgent:
def __init__(self, agent_config: AgentConfig):
self.agent_config = agent_config
def get_agent_config(self) -> AgentConfig:
return self.agent_config
def start(self):
pass
def respond(
self, human_input, is_interrupt: bool = False
) -> tuple[Optional[str], bool]:
raise NotImplementedError
def generate_response(
self, human_input, is_interrupt: bool = False
) -> Generator[str, None, None]:
"""Returns a generator that yields a sentence at a time."""
raise NotImplementedError
def update_last_bot_message_on_cut_off(self, message: str):
"""Updates the last bot message in the conversation history when the human cuts off the bot's response."""
pass
def get_cut_off_response(self) -> Optional[str]:
assert isinstance(self.agent_config, LLMAgentConfig) or isinstance(
self.agent_config, ChatGPTAgentConfig
)
on_cut_off_messages = self.agent_config.cut_off_response.messages
if on_cut_off_messages:
return random.choice(on_cut_off_messages).text
def terminate(self):
pass