agenticSeek/sources/interaction.py

47 lines
1.3 KiB
Python

from sources.text_to_speech import Speech
from sources.utility import pretty_print
class Interaction:
def __init__(self, agents, tts_enabled: bool = False):
self.tts_enabled = tts_enabled
self.agents = agents
self.speech = Speech()
self.is_active = True
self.last_query = None
self.last_answer = None
if tts_enabled:
self.speech.speak("Hello Sir, we are online and ready. What can I do for you ?")
def is_active(self):
return self.is_active
def read_stdin(self) -> str:
buffer = ""
while buffer == "" or buffer.isascii() == False:
try:
buffer = input(f">>> ")
except EOFError:
return None
if buffer == "exit" or buffer == "goodbye":
return None
return buffer
def get_user(self):
query = self.read_stdin()
if query is None:
self.is_active = False
return
self.last_query = query
return query
def think(self):
self.last_answer, _ = self.agents[0].answer(self.last_query, self.speech)
def show_answer(self):
pretty_print(self.last_answer, color="output")
if self.tts_enabled:
self.speech.speak(self.last_answer)