Spaces:
Build error
Build error
| import os | |
| import uuid | |
| from dotenv import load_dotenv | |
| load_dotenv(".env") | |
| currently_dir = os.path.dirname(os.path.abspath(__file__)) | |
| artifacts_dir = os.path.join(currently_dir, "artifacts") | |
| media_dir = os.path.join(currently_dir, "media") | |
| if not os.path.exists(artifacts_dir): | |
| os.makedirs(artifacts_dir) | |
| mic_record_location = os.path.join(artifacts_dir, "mic_record.wav") | |
| system_sound_location = os.path.join(artifacts_dir, "system_sound.wav") | |
| just_screenshot_path = os.path.join(artifacts_dir, "screenshot.png") | |
| screenshot_path = os.path.join(artifacts_dir, "screenshot_with_text.png") | |
| the_profile = "default" | |
| def set_profile(profile): | |
| """Set the active profile.""" | |
| print("Setting profile to", profile) | |
| global the_profile | |
| the_profile = profile | |
| def get_profile(): | |
| """Get the active profile.""" | |
| global the_profile | |
| return the_profile | |
| def get_history_db(): | |
| """Get the history database path based on the active profile.""" | |
| global the_profile | |
| return os.path.join(artifacts_dir, f"history_{the_profile}.db") | |
| openaikey = os.path.join(artifacts_dir, "openaikey.db") | |
| def save_api_key(api_key): | |
| """Save the OpenAI API key to a file.""" | |
| with open(openaikey, "w") as f: | |
| f.write(api_key) | |
| def load_api_key(): | |
| """Load the OpenAI API key from a file or environment variables.""" | |
| if not os.path.exists(openaikey): | |
| env = os.getenv("OPENAI_API_KEY") | |
| if env: | |
| save_api_key(env) | |
| return env | |
| else: | |
| return "CHANGE_ME" | |
| with open(openaikey, "r") as f: | |
| return f.read() | |
| openai_url_db = os.path.join(artifacts_dir, "openai_url.db") | |
| def save_openai_url(url): | |
| """Save the custom OpenAI base URL to a file.""" | |
| with open(openai_url_db, "w") as f: | |
| f.write(url) | |
| def load_openai_url(): | |
| """Load the custom OpenAI base URL from a file.""" | |
| if not os.path.exists(openai_url_db): | |
| return "default" | |
| with open(openai_url_db, "r") as f: | |
| return f.read() | |
| model_settings_db = os.path.join(artifacts_dir, "model_settings.db") | |
| def save_model_settings(model): | |
| """Save the model settings to a file.""" | |
| with open(model_settings_db, "w") as f: | |
| f.write(model) | |
| def load_model_settings(): | |
| """Load the model settings from a file.""" | |
| if not os.path.exists(model_settings_db): | |
| return "gpt-4o" | |
| with open(model_settings_db, "r") as f: | |
| return f.read() | |
| just_text_model = os.path.join(artifacts_dir, "just_text_model.db") | |
| def activate_just_text_model(): | |
| """Activate the just text model.""" | |
| with open(just_text_model, "w") as f: | |
| f.write("1") | |
| def deactivate_just_text_model(): | |
| """Deactivate the just text model.""" | |
| with open(just_text_model, "w") as f: | |
| f.write("0") | |
| def is_just_text_model_active(): | |
| """Check if the just text model is active.""" | |
| if not os.path.exists(just_text_model): | |
| return False | |
| with open(just_text_model, "r") as f: | |
| return f.read() == "1" | |
| # Define paths for icons and other media | |
| icon_16_path = os.path.join(media_dir, "icon_16.png") | |
| icon_24_path = os.path.join(media_dir, "icon_24.png") | |
| icon_32_path = os.path.join(media_dir, "icon_32.png") | |
| icon_48_path = os.path.join(media_dir, "icon_48.png") | |
| icon_48_active_path = os.path.join(media_dir, "icon_48_active.png") | |
| icon_256_path = os.path.join(media_dir, "icon_256.png") | |
| screenshot_icon_path = os.path.join(media_dir, "Screenshot.png") | |
| audio_icon_path = os.path.join(media_dir, "Audio.png") | |
| microphone_icon_path = os.path.join(media_dir, "Microphone.png") | |
| up_icon_path = os.path.join(media_dir, "Up.png") | |
| down_icon_path = os.path.join(media_dir, "Down.png") | |
| double_down_icon_path = os.path.join(media_dir, "Double_down.png") | |
| click_sound_path = os.path.join(media_dir, "boop.mp3") | |
| gca_logo_path = os.path.join(media_dir, "gca_logo.png") | |
| agents = [] # Placeholder for agents data | |
| groqkey = os.path.join(artifacts_dir, "groqkey.db") | |
| def save_groq_api_key(api_key): | |
| """Save the Groq API key to a file.""" | |
| with open(groqkey, "w") as f: | |
| f.write(api_key) | |
| def load_groq_api_key(): | |
| """Load the Groq API key from a file or environment variables.""" | |
| if not os.path.exists(groqkey): | |
| env = os.getenv("GROQ_API_KEY") | |
| if env: | |
| save_api_key(env) | |
| return env | |
| else: | |
| return "CHANGE_ME" | |
| with open(groqkey, "r") as f: | |
| return f.read() | |
| user_id_db = os.path.join(artifacts_dir, "user_id.db") | |
| def save_user_id(): | |
| """Save a unique user ID to a file.""" | |
| with open(user_id_db, "w") as f: | |
| uuid4 = str(uuid.uuid4()) | |
| f.write(uuid4) | |
| return uuid4 | |
| def load_user_id(): | |
| """Load the unique user ID from a file.""" | |
| if not os.path.exists(user_id_db): | |
| return save_user_id() | |
| with open(user_id_db, "r") as f: | |
| return f.read() | |
| collapse_setting = os.path.join(artifacts_dir, "collapse_setting.db") | |
| def activate_collapse_setting(): | |
| """Activate the collapse setting.""" | |
| with open(collapse_setting, "w") as f: | |
| f.write("1") | |
| def deactivate_collapse_setting(): | |
| """Deactivate the collapse setting.""" | |
| with open(collapse_setting, "w") as f: | |
| f.write("0") | |
| def is_collapse_setting_active(): | |
| """Check if the collapse setting is active.""" | |
| if not os.path.exists(collapse_setting): | |
| return False | |
| with open(collapse_setting, "r") as f: | |
| return f.read() == "1" | |
| # Define font directory path | |
| font_dir = os.path.join(media_dir, "SF-Pro-Text-Bold.otf") | |
| style_setting = os.path.join(artifacts_dir, "style_setting.db") | |
| def activate_dark_mode(): | |
| """Activate the dark mode setting.""" | |
| with open(style_setting, "w") as f: | |
| f.write("1") | |
| def deactivate_dark_mode(): | |
| """Deactivate the dark mode setting.""" | |
| with open(style_setting, "w") as f: | |
| f.write("0") | |
| def is_dark_mode_active(): | |
| """Check if the dark mode setting is active.""" | |
| if not os.path.exists(style_setting): | |
| return True | |
| with open(style_setting, "r") as f: | |
| return f.read() == "1" | |
| googlekey = os.path.join(artifacts_dir, "googlekey.db") | |
| def save_google_api_key(api_key): | |
| """Save the Google Generative AI API key to a file.""" | |
| with open(googlekey, "w") as f: | |
| f.write(api_key) | |
| def load_google_api_key(): | |
| """Load the Google Generative AI API key from a file or environment variables.""" | |
| if not os.path.exists(googlekey): | |
| env = os.getenv("GOOGLE_API_KEY") | |
| if env: | |
| save_api_key(env) | |
| return env | |
| else: | |
| return "CHANGE_ME" | |
| with open(googlekey, "r") as f: | |
| return f.read() | |
| predefined_agents_setting = os.path.join(artifacts_dir, "predefined_agents_setting.db") | |
| def activate_predefined_agents_setting(): | |
| """Activate the predefined agents setting setting.""" | |
| with open(predefined_agents_setting, "w") as f: | |
| f.write("1") | |
| def deactivate_predefined_agents_setting(): | |
| """Deactivate the predefined agents setting setting.""" | |
| with open(predefined_agents_setting, "w") as f: | |
| f.write("0") | |
| def is_predefined_agents_setting_active(): | |
| """Check if the predefined agents setting setting is active.""" | |
| if not os.path.exists(predefined_agents_setting): | |
| return True | |
| with open(predefined_agents_setting, "r") as f: | |
| return f.read() == "1" | |
| online_tools_setting = os.path.join(artifacts_dir, "online_tools.db") | |
| def activate_online_tools_setting(): | |
| """Activate the online_tools setting.""" | |
| with open(online_tools_setting, "w") as f: | |
| f.write("1") | |
| def deactivate_online_tools_setting(): | |
| """Deactivate the online_tools setting.""" | |
| with open(online_tools_setting, "w") as f: | |
| f.write("0") | |
| def is_online_tools_setting_active(): | |
| """Check if the online_tools setting is active.""" | |
| if not os.path.exists(online_tools_setting): | |
| return False | |
| with open(online_tools_setting, "r") as f: | |
| return f.read() == "1" | |
| auto_stop_recording_setting = os.path.join(artifacts_dir, "auto_stop_recording.db") | |
| def activate_auto_stop_recording_setting(): | |
| """Activate the auto_stop_recording setting.""" | |
| with open(auto_stop_recording_setting, "w") as f: | |
| f.write("1") | |
| def deactivate_auto_stop_recording_setting(): | |
| """Deactivate the auto_stop_recording setting.""" | |
| with open(auto_stop_recording_setting, "w") as f: | |
| f.write("0") | |
| def is_auto_stop_recording_setting_active(): | |
| """Check if the auto_stop_recording setting is active.""" | |
| if not os.path.exists(auto_stop_recording_setting): | |
| return True | |
| with open(auto_stop_recording_setting, "r") as f: | |
| return f.read() == "1" | |
| pvporcupine_api_key = os.path.join(artifacts_dir, "pvporcupine_api_key.db") | |
| def save_pvporcupine_api_key(api_key): | |
| """Save the Pvporcupine AI API key to a file.""" | |
| with open(pvporcupine_api_key, "w") as f: | |
| f.write(api_key) | |
| def load_pvporcupine_api_key(): | |
| """Load the Pvporcupine AI API key from a file or environment variables.""" | |
| if not os.path.exists(pvporcupine_api_key): | |
| return "CHANGE_ME" | |
| with open(pvporcupine_api_key, "r") as f: | |
| return f.read() | |
| wake_word_setting = os.path.join(artifacts_dir, "wake_word_setting.db") | |
| def activate_wake_word(): | |
| """Activate the wake_word_setting setting.""" | |
| with open(wake_word_setting, "w") as f: | |
| f.write("1") | |
| def deactivate_wake_word(): | |
| """Deactivate the wake_word_setting setting.""" | |
| with open(wake_word_setting, "w") as f: | |
| f.write("0") | |
| def is_wake_word_active(): | |
| """Check if the wake_word_setting setting is active.""" | |
| try: | |
| import pyaudio | |
| except ImportError: | |
| return False | |
| if not os.path.exists(wake_word_setting): | |
| return True | |
| with open(wake_word_setting, "r") as f: | |
| return f.read() == "1" | |
| wake_word_screen_setting = os.path.join(artifacts_dir, "wake_word_screen_setting.db") | |
| def activate_wake_word_screen_setting(): | |
| """Activate the wake_word_screen setting.""" | |
| with open(wake_word_screen_setting, "w") as f: | |
| f.write("1") | |
| def deactivate_wake_word_screen_setting(): | |
| """Deactivate the wake_word_screen setting.""" | |
| with open(wake_word_screen_setting, "w") as f: | |
| f.write("0") | |
| def is_wake_word_screen_setting_active(): | |
| """Check if the wake_word_screen setting is active.""" | |
| if not os.path.exists(wake_word_screen_setting): | |
| return True | |
| with open(wake_word_screen_setting, "r") as f: | |
| return f.read() == "1" | |
| continuously_conversations_setting = os.path.join( | |
| artifacts_dir, "continuously_conversations_setting.db" | |
| ) | |
| def activate_continuously_conversations_setting(): | |
| """Activate the continuously_conversations setting.""" | |
| with open(continuously_conversations_setting, "w") as f: | |
| f.write("1") | |
| def deactivate_continuously_conversations_setting(): | |
| """Deactivate the continuously_conversations setting.""" | |
| with open(continuously_conversations_setting, "w") as f: | |
| f.write("0") | |
| def is_continuously_conversations_setting_active(): | |
| """Check if the continuously_conversations setting is active.""" | |
| if not os.path.exists(continuously_conversations_setting): | |
| return False | |
| with open(continuously_conversations_setting, "r") as f: | |
| return f.read() == "1" | |
| tts_model_settings_db = os.path.join(artifacts_dir, "tts_model_settings.db") | |
| def save_tts_model_settings(model): | |
| """Save the tts model settings to a file.""" | |
| with open(tts_model_settings_db, "w") as f: | |
| f.write(model) | |
| def load_tts_model_settings(): | |
| """Load the tts model settings from a file.""" | |
| if not os.path.exists(tts_model_settings_db): | |
| return "openai" | |
| with open(tts_model_settings_db, "r") as f: | |
| return f.read() | |
| stt_model_settings_db = os.path.join(artifacts_dir, "stt_model_settings.db") | |
| def save_stt_model_settings(model): | |
| """Save the stt model settings to a file.""" | |
| with open(stt_model_settings_db, "w") as f: | |
| f.write(model) | |
| def load_stt_model_settings(): | |
| """Load the stt model settings from a file.""" | |
| if not os.path.exists(stt_model_settings_db): | |
| return "openai" | |
| with open(stt_model_settings_db, "r") as f: | |
| return f.read() | |
| logo_active_setting = os.path.join(artifacts_dir, "logo_active_setting.db") | |
| def activate_logo_active_setting(): | |
| """Activate the logo_active_setting.""" | |
| with open(logo_active_setting, "w") as f: | |
| f.write("1") | |
| def deactivate_logo_active_setting(): | |
| """Deactivate the logo_active_setting.""" | |
| with open(logo_active_setting, "w") as f: | |
| f.write("0") | |
| def is_logo_active_setting_active(): | |
| """Check if the logo_active_setting is active.""" | |
| if not os.path.exists(logo_active_setting): | |
| return False | |
| with open(logo_active_setting, "r") as f: | |
| return f.read() == "1" | |
| logo_file_path = os.path.join(artifacts_dir, "loog_file.db") | |
| def save_logo_file_path(model): | |
| """Save the logo_file_path to a file.""" | |
| with open(logo_file_path, "w") as f: | |
| f.write(model) | |
| def load_logo_file_path(): | |
| """Load the logo_file_path from a file.""" | |
| if not os.path.exists(logo_file_path): | |
| return icon_256_path | |
| with open(logo_file_path, "r") as f: | |
| return f.read() | |
| custom_logo_path = os.path.join(artifacts_dir, "custom_logo_path.png") | |
| long_gca_setting = os.path.join(artifacts_dir, "long_gca_setting.db") | |
| def activate_long_gca_setting(): | |
| """Activate the long_gca_setting.""" | |
| with open(long_gca_setting, "w") as f: | |
| f.write("1") | |
| def deactivate_long_gca_setting(): | |
| """Deactivate the long_gca_setting.""" | |
| with open(long_gca_setting, "w") as f: | |
| f.write("0") | |
| def is_long_gca_setting_active(): | |
| """Check if the long_gca_setting is active.""" | |
| if not os.path.exists(long_gca_setting): | |
| return True | |
| with open(long_gca_setting, "r") as f: | |
| return f.read() == "1" | |
| location_setting = os.path.join(artifacts_dir, "location_setting.db") | |
| def save_location_setting(model): | |
| """Save the location_setting to a file.""" | |
| with open(location_setting, "w") as f: | |
| f.write(model) | |
| def load_location_setting(): | |
| """Load the location_setting from a file.""" | |
| if not os.path.exists(location_setting): | |
| return "right" | |
| with open(location_setting, "r") as f: | |
| return f.read() | |