sohojoe commited on
Commit
e630a78
1 Parent(s): 397a2fa

try improved life management

Browse files
Files changed (2) hide show
  1. app.py +24 -12
  2. charles_actor.py +4 -0
app.py CHANGED
@@ -15,6 +15,7 @@ import torch
15
  from sample_utils.turn import get_ice_servers
16
  import json
17
  from typing import List
 
18
 
19
  st.set_page_config(layout="wide")
20
 
@@ -28,8 +29,7 @@ webrtc_ctx = None
28
 
29
  # Initialize Ray
30
  import ray
31
- if not ray.is_initialized():
32
- import subprocess
33
  try:
34
  subprocess.check_output(["ray", "start", "--head"])
35
  except Exception as e:
@@ -40,12 +40,11 @@ if not ray.is_initialized():
40
  ray.init(ray_address, namespace="project_charles")
41
  else:
42
  ray.init(namespace="project_charles")
43
- import platform
44
- print (f"platform:{platform.system()}")
45
- if platform.system() == 'Linux':
46
- charles_actor_proc = subprocess.Popen(["python3", "charles_actor.py"])
47
 
48
 
 
 
 
49
  async def main():
50
  st.title("Project Charles")
51
 
@@ -60,9 +59,13 @@ async def main():
60
  charles_actor_debug_output = st.empty()
61
  environment_state_ouput = st.empty()
62
  with nested_col3:
63
- if st.button('Reboot Server'):
64
- st.write('Rebooting...')
65
- subprocess.run(["sudo", "reboot"])
 
 
 
 
66
 
67
  with col2:
68
  if "streamlit_av_queue" not in st.session_state:
@@ -103,7 +106,7 @@ async def main():
103
  if "streamlit_av_queue" in st.session_state:
104
  st.session_state.streamlit_av_queue.set_looking_listening(looking, listening)
105
  if not webrtc_ctx.state.playing:
106
- system_one_audio_status.write("Stopped.")
107
  await asyncio.sleep(0.1)
108
  continue
109
  if charles_actor is None:
@@ -111,14 +114,23 @@ async def main():
111
  charles_actor = ray.get_actor("CharlesActor")
112
  system_one_audio_status.write("Charles is here.")
113
  except ValueError as e:
114
- system_one_audio_status.write("Charles is sleeping.")
115
- pass
 
 
 
 
 
 
 
116
  if charles_actor is not None:
117
  try:
118
  # new_environment_state = await charles_actor.get_environment_state.remote()
119
  # environment_state_ouput.markdown(f"{new_environment_state}")
120
  charles_debug_str = await charles_actor.get_charles_actor_debug_output.remote()
121
  charles_actor_debug_output.markdown(charles_debug_str)
 
 
122
  except Exception as e:
123
  # assume we disconnected
124
  charles_actor = None
 
15
  from sample_utils.turn import get_ice_servers
16
  import json
17
  from typing import List
18
+ import subprocess
19
 
20
  st.set_page_config(layout="wide")
21
 
 
29
 
30
  # Initialize Ray
31
  import ray
32
+ def init_ray():
 
33
  try:
34
  subprocess.check_output(["ray", "start", "--head"])
35
  except Exception as e:
 
40
  ray.init(ray_address, namespace="project_charles")
41
  else:
42
  ray.init(namespace="project_charles")
 
 
 
 
43
 
44
 
45
+ if not ray.is_initialized():
46
+ init_ray()
47
+
48
  async def main():
49
  st.title("Project Charles")
50
 
 
59
  charles_actor_debug_output = st.empty()
60
  environment_state_ouput = st.empty()
61
  with nested_col3:
62
+ if st.button('Reboot Charles'):
63
+ st.write('Killing RAY...')
64
+ subprocess.check_output(["ray", "start", "--head"])
65
+ st.write('Restarting RAY...')
66
+ init_ray()
67
+ charles_actor = None
68
+ st.write('Reboot Charles')
69
 
70
  with col2:
71
  if "streamlit_av_queue" not in st.session_state:
 
106
  if "streamlit_av_queue" in st.session_state:
107
  st.session_state.streamlit_av_queue.set_looking_listening(looking, listening)
108
  if not webrtc_ctx.state.playing:
109
+ system_one_audio_status.write("Camera has stopped.")
110
  await asyncio.sleep(0.1)
111
  continue
112
  if charles_actor is None:
 
114
  charles_actor = ray.get_actor("CharlesActor")
115
  system_one_audio_status.write("Charles is here.")
116
  except ValueError as e:
117
+ charles_actor_proc = subprocess.Popen(["python3", "charles_actor.py"])
118
+ system_one_audio_status.write("Creating an instance of Charles...")
119
+ # import platform
120
+ # print (f"platform:{platform.system()}")
121
+ # if platform.system() == 'Linux':
122
+ # charles_actor_proc = subprocess.Popen(["python3", "charles_actor.py"])
123
+ # system_one_audio_status.write("Creating Charles.")
124
+ # else:
125
+ # system_one_audio_status.write("Charles is sleeping.")
126
  if charles_actor is not None:
127
  try:
128
  # new_environment_state = await charles_actor.get_environment_state.remote()
129
  # environment_state_ouput.markdown(f"{new_environment_state}")
130
  charles_debug_str = await charles_actor.get_charles_actor_debug_output.remote()
131
  charles_actor_debug_output.markdown(charles_debug_str)
132
+ state = await charles_actor.get_state.remote()
133
+ system_one_audio_status.write(state)
134
  except Exception as e:
135
  # assume we disconnected
136
  charles_actor = None
charles_actor.py CHANGED
@@ -29,17 +29,20 @@ class CharlesActor:
29
  async def _initalize_resources(self):
30
  # Initialize resources
31
  print("000 - create StreamlitAVQueue")
 
32
  from streamlit_av_queue import StreamlitAVQueue
33
  self._streamlit_av_queue = StreamlitAVQueue()
34
  self._out_audio_queue = self._streamlit_av_queue.get_out_audio_queue()
35
 
36
  print("001 - create RespondToPromptActor")
 
37
  from respond_to_prompt_actor import RespondToPromptActor
38
  self._environment_state_actor = EnvironmentStateActor.remote()
39
  self._agent_state_actor = AgentStateActor.remote()
40
  self._respond_to_prompt_actor = RespondToPromptActor.remote(self._environment_state_actor, self._out_audio_queue)
41
 
42
  print("002 - create SpeechToTextVoskActor")
 
43
  from speech_to_text_vosk_actor import SpeechToTextVoskActor
44
  self._speech_to_text_actor = SpeechToTextVoskActor.remote("small")
45
  # self._speech_to_text_actor = SpeechToTextVoskActor.remote("big")
@@ -50,6 +53,7 @@ class CharlesActor:
50
  ]
51
 
52
  print("003 - create Prototypes")
 
53
  from prototypes import Prototypes
54
  self._prototypes = Prototypes()
55
  print("010")
 
29
  async def _initalize_resources(self):
30
  # Initialize resources
31
  print("000 - create StreamlitAVQueue")
32
+ self._state = "000 - creating StreamlitAVQueue"
33
  from streamlit_av_queue import StreamlitAVQueue
34
  self._streamlit_av_queue = StreamlitAVQueue()
35
  self._out_audio_queue = self._streamlit_av_queue.get_out_audio_queue()
36
 
37
  print("001 - create RespondToPromptActor")
38
+ self._state = "001 - creating RespondToPromptActor"
39
  from respond_to_prompt_actor import RespondToPromptActor
40
  self._environment_state_actor = EnvironmentStateActor.remote()
41
  self._agent_state_actor = AgentStateActor.remote()
42
  self._respond_to_prompt_actor = RespondToPromptActor.remote(self._environment_state_actor, self._out_audio_queue)
43
 
44
  print("002 - create SpeechToTextVoskActor")
45
+ self._state = "002 - creating SpeechToTextVoskActor"
46
  from speech_to_text_vosk_actor import SpeechToTextVoskActor
47
  self._speech_to_text_actor = SpeechToTextVoskActor.remote("small")
48
  # self._speech_to_text_actor = SpeechToTextVoskActor.remote("big")
 
53
  ]
54
 
55
  print("003 - create Prototypes")
56
+ self._state = "003 - creating Prototypes"
57
  from prototypes import Prototypes
58
  self._prototypes = Prototypes()
59
  print("010")