Spaces:
Sleeping
Sleeping
Peter Michael Gits
feat: Add Streamlit-native WebRTC speech-to-text using unmute.sh patterns
21fac9b | import os | |
| from typing import List, Optional | |
| from pydantic_settings import BaseSettings | |
| from pydantic import Field | |
| class Config(BaseSettings): | |
| """Configuration for ChatCal Voice-Enabled Hugging Face deployment.""" | |
| # Application | |
| app_name: str = Field(default="ChatCal Voice Assistant", env="APP_NAME") | |
| app_env: str = Field(default="production", env="APP_ENV") | |
| # Groq API (primary LLM) | |
| groq_api_key: str = Field(..., env="GROQ_API_KEY") | |
| # Anthropic (fallback LLM) | |
| anthropic_api_key: Optional[str] = Field(None, env="ANTHROPIC_API_KEY") | |
| # Gemini API (fallback LLM) | |
| gemini_api_key: Optional[str] = Field(None, env="GEMINI_API_KEY") | |
| # Google Calendar | |
| google_calendar_id: str = Field(default="pgits.job@gmail.com", env="GOOGLE_CALENDAR_ID") | |
| google_client_id: Optional[str] = Field(None, env="GOOGLE_CLIENT_ID") | |
| google_client_secret: Optional[str] = Field(None, env="GOOGLE_CLIENT_SECRET") | |
| # Security | |
| secret_key: str = Field(..., env="SECRET_KEY") | |
| # Timezone | |
| default_timezone: str = Field(default="America/New_York", env="DEFAULT_TIMEZONE") | |
| # Working Hours Configuration | |
| weekday_start_time: str = Field(default="07:30", env="WEEKDAY_START_TIME") | |
| weekday_end_time: str = Field(default="18:30", env="WEEKDAY_END_TIME") | |
| weekend_start_time: str = Field(default="10:30", env="WEEKEND_START_TIME") | |
| weekend_end_time: str = Field(default="16:30", env="WEEKEND_END_TIME") | |
| working_hours_timezone: str = Field(default="America/New_York", env="WORKING_HOURS_TIMEZONE") | |
| # Chat Settings | |
| max_conversation_history: int = Field(default=20, env="MAX_CONVERSATION_HISTORY") | |
| session_timeout_minutes: int = Field(default=30, env="SESSION_TIMEOUT_MINUTES") | |
| # Contact Information | |
| my_phone_number: str = Field(..., env="MY_PHONE_NUMBER") | |
| my_email_address: str = Field(..., env="MY_EMAIL_ADDRESS") | |
| # Email Service Configuration | |
| smtp_server: str = Field(default="smtp.gmail.com", env="SMTP_SERVER") | |
| smtp_port: int = Field(default=587, env="SMTP_PORT") | |
| smtp_username: Optional[str] = Field(None, env="SMTP_USERNAME") | |
| smtp_password: Optional[str] = Field(None, env="SMTP_PASSWORD") | |
| email_from_name: str = Field(default="ChatCal Voice Assistant", env="EMAIL_FROM_NAME") | |
| # Testing Configuration | |
| testing_mode: bool = Field(default=True, env="TESTING_MODE") | |
| # Audio Services Configuration (Hugging Face spaces) | |
| stt_service_url: str = Field( | |
| default="https://huggingface.co/spaces/pgits/stt-gpu-service", | |
| env="STT_SERVICE_URL" | |
| ) | |
| tts_service_url: str = Field( | |
| default="https://huggingface.co/spaces/pgits/tts-gpu-service", | |
| env="TTS_SERVICE_URL" | |
| ) | |
| # Voice Settings | |
| default_voice: str = Field(default="v2/en_speaker_6", env="DEFAULT_VOICE") | |
| enable_voice_responses: bool = Field(default=True, env="ENABLE_VOICE_RESPONSES") | |
| class Config: | |
| env_file = ".env" | |
| env_file_encoding = "utf-8" | |
| case_sensitive = False | |
| # Global config instance | |
| config = Config() |