# Conflicts: # src/control_backend/agents/ri_communication_agent.py # src/control_backend/core/config.py # src/control_backend/main.py
88 lines
2.5 KiB
Python
88 lines
2.5 KiB
Python
from pydantic import BaseModel
|
|
from pydantic_settings import BaseSettings, SettingsConfigDict
|
|
|
|
|
|
class ZMQSettings(BaseModel):
|
|
internal_pub_address: str = "tcp://localhost:5560"
|
|
internal_sub_address: str = "tcp://localhost:5561"
|
|
ri_command_address: str = "tcp://localhost:0000"
|
|
ri_communication_address: str = "tcp://*:5555"
|
|
vad_agent_address: str = "tcp://localhost:5558"
|
|
|
|
|
|
class AgentSettings(BaseModel):
|
|
# connection settings
|
|
host: str = "localhost"
|
|
|
|
# agent names
|
|
bdi_core_name: str = "bdi_core_agent"
|
|
bdi_belief_collector_name: str = "belief_collector_agent"
|
|
text_belief_extractor_name: str = "text_belief_extractor_agent"
|
|
vad_name: str = "vad_agent"
|
|
llm_name: str = "llm_agent"
|
|
test_name: str = "test_agent"
|
|
transcription_name: str = "transcription_agent"
|
|
ri_communication_name: str = "ri_communication_agent"
|
|
robot_speech_name: str = "robot_speech_agent"
|
|
|
|
# default SPADE port
|
|
default_spade_port: int = 5222
|
|
|
|
|
|
class BehaviourSettings(BaseModel):
|
|
sleep_s: float = 1.0
|
|
comm_setup_max_retries: int = 5
|
|
socket_poller_timeout_ms: int = 100
|
|
|
|
# VAD settings
|
|
vad_prob_threshold: float = 0.5
|
|
vad_initial_since_speech: int = 100
|
|
vad_non_speech_patience_chunks: int = 3
|
|
|
|
# transcription behaviour
|
|
transcription_max_concurrent_tasks: int = 3
|
|
transcription_words_per_minute: int = 300
|
|
transcription_words_per_token: float = 0.75 # (3 words = 4 tokens)
|
|
transcription_token_buffer: int = 10
|
|
|
|
|
|
class LLMSettings(BaseModel):
|
|
local_llm_url: str = "http://localhost:1234/v1/chat/completions"
|
|
local_llm_model: str = "openai/gpt-oss-20b"
|
|
request_timeout_s: int = 120
|
|
|
|
|
|
class VADSettings(BaseModel):
|
|
repo_or_dir: str = "snakers4/silero-vad"
|
|
model_name: str = "silero_vad"
|
|
sample_rate_hz: int = 16000
|
|
|
|
|
|
class SpeechModelSettings(BaseModel):
|
|
# model identifiers for speech recognition
|
|
mlx_model_name: str = "mlx-community/whisper-small.en-mlx"
|
|
openai_model_name: str = "small.en"
|
|
|
|
|
|
class Settings(BaseSettings):
|
|
app_title: str = "PepperPlus"
|
|
|
|
ui_url: str = "http://localhost:5173"
|
|
|
|
zmq_settings: ZMQSettings = ZMQSettings()
|
|
|
|
agent_settings: AgentSettings = AgentSettings()
|
|
|
|
behaviour_settings: BehaviourSettings = BehaviourSettings()
|
|
|
|
vad_settings: VADSettings = VADSettings()
|
|
|
|
speech_model_settings: SpeechModelSettings = SpeechModelSettings()
|
|
|
|
llm_settings: LLMSettings = LLMSettings()
|
|
|
|
model_config = SettingsConfigDict(env_file=".env")
|
|
|
|
|
|
settings = Settings()
|