o
    9j                     @  sD  d Z ddlmZ ddlZddlmZ ee jjZ	e	d Z
e
d Ze
d Ze	d d	 Ze	d
 ZeeefD ]	Zejddd q5dbddZe  dcddZeddZeddZddddddd d!d"d#d$d%Zed&d'Zed(d)Zed*d+Zed,d-Zed.d/Zeed0d1Zeed2d3Zed4d5Zed6d7Zed8d9Z eed:d;Z!ed<d=Z"ed>d?Z#ed@dAZ$edBd=Z%edCd=Z&edDdEZ'edFdGZ(edHd=Z)edId=Z*eedJdKZ+eedLdMZ,eedNdOZ-eedPdQZ.g dRZ/eedSdKZ0eedTdUZ1eedVdWZ2eedXdKZ3edYd/Z4eedZd[Z5ddd]d^Z6ded`daZ7dS )fu   Zentrale Konfiguration für den Plappi-MVP.

Alles über Umgebungsvariablen überschreibbar, damit derselbe Code
unverändert auf der VM (Handy-Client) und später auf dem Raspberry Pi läuft.
    )annotationsN)Pathdataaudiouploadsclientswebz
.brain-cwdT)parentsexist_okreturnNonec                  C  s   t d } |  s
dS | jdd D ]+}| }|r#|ds#d|vr$q|dd\}}tj	| | dd	 qdS )
uZ   Lädt plappi-mvp/.env (gitignored) in os.environ, ohne bestehende Werte zu überschreiben.z.envNzutf-8)encoding#=   "')
BASE_DIRexists	read_text
splitlinesstrip
startswithsplitosenviron
setdefault)envflinekv r!   2/home/nk/hobo-godmode/plappi-mvp/backend/config.py_load_dotenv   s   $r#   keystrdefaultc                 C  s   t j| |S N)r   r   get)r$   r&   r!   r!   r"   _env&   s   r)   PLAPPI_CHILD_LANGdePLAPPI_TARGET_LANGsrDeutschSerbischEnglisch	Kroatischu	   Türkischu   FranzösischSpanischItalienischRussischPolnischArabisch)r+   r-   enhrtrfresitruplarPLAPPI_WHISPER_CLIz-/home/agent/whisper.cpp/build/bin/whisper-cliPLAPPI_WHISPER_MODELz-/home/agent/whisper.cpp/models/ggml-small.binPLAPPI_FFMPEGffmpegPLAPPI_CLAUDE_CLIz/home/nk/.local/bin/claudePLAPPI_DIALOG_MODELhaikuPLAPPI_DIALOG_TIMEOUT45PLAPPI_HISTORY_TURNS8PLAPPI_VOICEzde-AT-IngridNeuralPLAPPI_TTS_RATEz-8%PLAPPI_TTS_PITCHz+0HzPLAPPI_PORT8800ELEVENLABS_API_KEY ELEVENLABS_VOICE_IDJBFqnCBsd6RMkjVDRZzbELEVENLABS_MODELeleven_multilingual_v2ELEVENLABS_AGENT_IDPLAPPI_PICOVOICE_KEYPLAPPI_WAKEWORDPlappiPLAPPI_PV_BUILTIN	BumblebeePLAPPI_PV_KEYWORD_URLPLAPPI_PV_MODEL_URLPLAPPI_EXP_RECEPTIVE3PLAPPI_EXP_PRODUCTIVE10PLAPPI_W_SPONTAN4PLAPPI_W_PROMPTED1)r               <   x      PLAPPI_MAX_EXP_SESSIONPLAPPI_MIN_GAP_CLUSTER2PLAPPI_CONFIRM_REVIEW14PLAPPI_SESSIONS_MASTEREDPLAPPI_LEARNING_MODELPLAPPI_LEARNING_TIMEOUT180dictc                	   C  s   t ttttttttdS )uy   Was der Browser-Client zum Start wissen muss (keine Server-Secrets außer dem
    bewusst client-seitigen Picovoice-Key).)wakeword_enabledwakeword_labelpicovoice_access_keypicovoice_builtin_keywordpicovoice_keyword_urlpicovoice_model_url
child_langtarget_lang)boolPICOVOICE_ACCESS_KEYWAKEWORD_LABELPICOVOICE_BUILTIN_KEYWORDPICOVOICE_KEYWORD_URLPICOVOICE_MODEL_URL
CHILD_LANGTARGET_LANGr!   r!   r!   r"   client_configm   s   r   codec                 C  s   t | | S r'   )
LANG_NAMESr(   )r   r!   r!   r"   	lang_name|   s   r   )r   r   )r$   r%   r&   r%   r   r%   )r   rv   )r   r%   r   r%   )8__doc__
__future__r   r   pathlibr   __file__resolveparentr   DATA_DIR	AUDIO_DIR
UPLOAD_DIRWEB_DIR	BRAIN_CWD_dmkdirr#   r)   r   r   r   WHISPER_CLIWHISPER_MODELFFMPEG
CLAUDE_CLIDIALOG_MODELintDIALOG_TIMEOUTHISTORY_TURNSrK   rL   rM   SERVER_PORTrP   rR   rT   rV   r   r   r   r   r   EXPOSURES_FOR_RECEPTIVE!EXPOSURES_FOR_PRODUCTIVE_BASELINEWEIGHT_SPONTANEOUSWEIGHT_PROMPTEDBOX_DAYSMAX_EXPOSURES_PER_SESSIONMIN_GAP_SAME_CLUSTER_NEWCONFIRMATION_REVIEW_DAYSDISTINCT_SESSIONS_FOR_MASTEREDLEARNING_MODELLEARNING_TIMEOUTr   r   r!   r!   r!   r"   <module>   sl    






















