open source
This commit is contained in:
parent
70b6e17c69
commit
a93bfc1ec9
61 changed files with 4013 additions and 126 deletions
44
vocode/streaming/agent/base_agent.py
Normal file
44
vocode/streaming/agent/base_agent.py
Normal 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
|
||||
Loading…
Add table
Add a link
Reference in a new issue