
    Fd3                         d Z ddlZddlZddlmZ ddlZddlZddlmZ ddl	m
Z
 ddlZ G d d          Zded	dfd
ZdS )zMConfiguration class to store the state of bools for different scripts access.    N)List)AutoGPTPluginTemplate)Forec                      e Zd ZdZddZd dZdedefdZej	        
                    ej	                            e          d	d
          ZefdeddfdZdeddfdZdeddfdZdeddfdZdeddfdZdeddfdZdeddfdZdeddfdZdeddfdZdeddfdZdeddfdZdeddfdZdeddfdZdeddfdZdeddfdZdeddfdZ deddfdZ!dS )!ConfigzW
    Configuration class to store the state of bools for different scripts access.
    returnNc                    d| _         d| _        d| _        d| _        d| _        d| _        d| _        d| _        d| _        t          j
        dd          | _        t          j
        dd          | _        t          j
        dd	          d
k    | _        t          j
        d          }|r|                    d          | _        ng | _        t          j
        dd          | _        t          j
        dt          j
        d                    }|r|                    d          | _        n	ddg| _        t          j
        dt          j
        d                    }|r|                    d          | _        ng | _        t          j
        dd          | _        t          j
        dd          | _        t          j
        dd          | _        t          j
        dd          | _        t          j
        dd          | _        t          j
        dd          | _        t          j
        d           | _        t          j
        d!          | _        t7          t          j
        d"d#                    | _        t          j
        d$          d
k    | _        t          j
        d%d	          d
k    | _        t          j
        d&d
          d
k    | _        | j        rH|                                   | j!        tD          _#        | j$        tD          _%        | j&        tD          _'        n3t          j
        d'd          rt          j
        d'          tD          _%        | j        | j        tD          _(        t          j
        d(d	          d
k    | _)        t          j
        d)          | _*        t          j
        d*t          j
        d+                    | _+        t          j
        d,d-          | _,        t          j
        d.          rd/}n#| j*        rd0}nt          j
        d1          rd2}nd3}t          j
        d4|          | _-        t          j
        d5          | _.        t          j
        d6          | _/        t          j
        d7          | _0        t          j
        d8t          j
        d9                    | _1        t          j
        d:          | _2        tg          t          j
        d;d<                    | _4        t          j
        d=          | _5        t          j
        d>d?          | _6        t          j
        d@dA          | _7        t          j
        dB          | _8        t          j
        dCdD          | _9        t          j
        dE          | _:        t          j
        dFdG          | _;        t          j
        dHd
          d
k    | _<        t          j
        dIdJ          | _=        t          j
        dKdL          | _>        t          j
        dMdN          | _?        t          j
        dOdP          | _@        tg          t          j
        dQdR                    | _A        t          j
        dSdT          | _B        t          j
        dUd
          d
k    | _C        t          j
        dVdW          | _D        g | _E        g | _F        t          j
        dX          }|r|                    d          | _G        ng | _G        t          j
        dY          }|r|                    d          | _H        ng | _H        ddZlImJ} t          j
        d[|          | _K        | L                                 t          j
        d\          d
k    | _M        dS )]zInitialize the Config classNFr   AUTHORISE_COMMAND_KEYyEXIT_KEYnPLAIN_OUTPUTFalseTrueDISABLED_COMMAND_CATEGORIES,SHELL_COMMAND_CONTROLdenylistSHELL_DENYLISTDENY_COMMANDSsudosuSHELL_ALLOWLISTALLOW_COMMANDSAI_SETTINGS_FILEzai_settings.yamlPROMPT_SETTINGS_FILEzprompt_settings.yamlFAST_LLM_MODELzgpt-3.5-turboSMART_LLM_MODELEMBEDDING_MODELtext-embedding-ada-002BROWSE_SPACY_LANGUAGE_MODELen_core_web_smOPENAI_API_KEYOPENAI_ORGANIZATIONTEMPERATURE0	USE_AZUREEXECUTE_LOCAL_COMMANDSRESTRICT_TO_WORKSPACEOPENAI_API_BASE_URLOPENAI_FUNCTIONSELEVENLABS_API_KEYELEVENLABS_VOICE_IDELEVENLABS_VOICE_1_IDSTREAMELEMENTS_VOICEBrianUSE_MAC_OS_TTSmacos
elevenlabsUSE_BRIAN_TTSstreamelementsgttsTEXT_TO_SPEECH_PROVIDERGITHUB_API_KEYGITHUB_USERNAMEGOOGLE_API_KEYGOOGLE_CUSTOM_SEARCH_ENGINE_IDCUSTOM_SEARCH_ENGINE_IDIMAGE_PROVIDER
IMAGE_SIZE   HUGGINGFACE_API_TOKENHUGGINGFACE_IMAGE_MODELzCompVis/stable-diffusion-v1-4AUDIO_TO_TEXT_PROVIDERhuggingfaceHUGGINGFACE_AUDIO_TO_TEXT_MODELSD_WEBUI_URLzhttp://localhost:7860SD_WEBUI_AUTHUSE_WEB_BROWSERchromeHEADLESS_BROWSER
USER_AGENTzxMozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36MEMORY_BACKEND	json_fileMEMORY_INDEXzauto-gpt-memory
REDIS_HOST	localhost
REDIS_PORT6379REDIS_PASSWORD WIPE_REDIS_ON_STARTPLUGINS_DIRpluginsALLOWLISTED_PLUGINSDENYLISTED_PLUGINS)DEFAULT_PLUGINS_CONFIG_FILEPLUGINS_CONFIG_FILECHAT_MESSAGES_ENABLED)Nworkspace_pathfile_logger_path
debug_modecontinuous_modecontinuous_limit
speak_modeskip_repromptallow_downloads	skip_newsosgetenvauthorise_keyexit_keyplain_outputsplitdisabled_command_categoriesshell_command_controlshell_denylistshell_allowlistai_settings_fileprompt_settings_filefast_llm_modelsmart_llm_modelembedding_modelbrowse_spacy_language_modelopenai_api_keyopenai_organizationfloattemperature	use_azureexecute_local_commandsrestrict_to_workspaceload_azure_configopenai_api_typeopenaiapi_typeopenai_api_baseapi_baseopenai_api_versionapi_versionorganizationopenai_functionselevenlabs_api_keyelevenlabs_voice_idstreamelements_voicetext_to_speech_providergithub_api_keygithub_usernamegoogle_api_keygoogle_custom_search_engine_idimage_providerint
image_sizehuggingface_api_tokenhuggingface_image_modelaudio_to_text_providerhuggingface_audio_to_text_modelsd_webui_urlsd_webui_authselenium_web_browserselenium_headless
user_agentmemory_backendmemory_index
redis_host
redis_portredis_passwordwipe_redis_on_startplugins_dirrV   plugins_openaiplugins_allowlistplugins_denylistautogpt.pluginsrY   plugins_config_fileload_plugins_configchat_messages_enabled)selfrk   rm   rn   default_tts_providerr   r   rY   s           IC:\Users\Administrator\Downloads\Auto-GPT-master\autogpt\config\config.py__init__zConfig.__init__   s   #'%)$ !"$Y'>DD	*c22Ing>>&H&(i0M&N&N#& 	2/J/P/PQT/U/UD,,/1D,%'Y/F
%S%S" #3RY5O5OPP 	1"0"6"6s";";D#)4.D )$5ryAQ7R7RSS 	&#2#8#8#=#=D  #%D  "	*<>P Q Q$&I"$:%
 %
! !i(8/JJ!y):OLL!y):<TUU+-9)+;,
 ,
( !i(899#%9-B#C#C  =#!>!>??;//69I.88FB 	# I-v66&@ 	" > 	?""$$$"2FO"2FO!%!8FY,d33 	? i(=>>FO#/"&":F "	*<g F F& P"$),@"A"A#%9!29-D#E#E$
 $
  %'I.Dg$N$N! 9%&& 	*#*  $ 	*#/  Y'' 	*#3  #) ')y%';(
 (
$ !i(899!y):;; i(899.0i,bi8Q.R.R/
 /
+ !i(899bic::;;%'Y/F%G%G"')y%'F(
 (
$ ')i0H-&X&X#/1y-0
 0
, In6MNNY77 %'I.?$J$J!!#+=v!F!F&!P
 )E
 
 !i(8+FFIn6GHH)L+>>bif==>> i(8"==#%9-BF#K#Kv#U 9]I>>46  I&;<< 	(%6%<%<S%A%AD""%'D" 9%9:: 	'$4$:$:3$?$?D!!$&D! 	@?????#%9!#>$
 $
  	  """%'Y/F%G%G6%Q"""    autogpt.plugins.PluginsConfigc                 R    ddl m} |                    |           | _        | j        S )Nr   )PluginsConfig)global_config)autogpt.plugins.plugins_configr   load_configplugins_config)r   r   s     r   r   zConfig.load_plugins_config   s6    @@@@@@+77d7KK""r   modelc                     || j         k    r| j        d         S || j        k    r| j        d         S |dk    r| j        d         S dS )z
        Returns the relevant deployment id for the model specified.

        Parameters:
            model(str): The model to map to the deployment id.

        Returns:
            The matching deployment id if found, otherwise an empty string.
        fast_llm_model_deployment_idsmart_llm_model_deployment_idr    embedding_model_deployment_idrS   )rq    azure_model_to_deployment_id_maprr   )r   r   s     r   !get_azure_deployment_id_for_modelz(Config.get_azure_deployment_id_for_model   sp     D'''8.  d***8/  ...8/  2r   z../..z
azure.yamlconfig_filec                 v   t          |          5 }t          j        |t          j                  pi }ddd           n# 1 swxY w Y   |                    d          pd| _        |                    d          pd| _        |                    d          pd| _        |                    d	i           | _        dS )
a  
        Loads the configuration parameters for Azure hosting from the specified file
          path as a yaml file.

        Parameters:
            config_file(str): The path to the config yaml file. DEFAULT: "../azure.yaml"

        Returns:
            None
        )LoaderNazure_api_typeazureazure_api_baserS   azure_api_versionz2023-03-15-previewazure_model_map)	openyamlload
FullLoadergetr}   r   r   r   )r   r   fileconfig_paramss       r   r|   zConfig.load_azure_config   s	    + 	J$ Id4?CCCIrM	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J,001ABBMg,001ABBHb122J6J 	 1>0A0ABSUW0X0X---s   #?AAvaluec                     || _         dS )zSet the continuous mode value.N)r_   r   r   s     r   set_continuous_modezConfig.set_continuous_mode       $r   c                     || _         dS )zSet the continuous limit value.N)r`   r   s     r   set_continuous_limitzConfig.set_continuous_limit   s     %r   c                     || _         dS )zSet the speak mode value.N)ra   r   s     r   set_speak_modezConfig.set_speak_mode       r   c                     || _         dS )zSet the fast LLM model value.N)rq   r   s     r   set_fast_llm_modelzConfig.set_fast_llm_model       #r   c                     || _         dS )zSet the smart LLM model value.N)rr   r   s     r   set_smart_llm_modelzConfig.set_smart_llm_model   r   r   c                     || _         dS )z-Set the model to use for creating embeddings.N)rs   r   s     r   set_embedding_modelzConfig.set_embedding_model  r   r   c                     || _         dS )zSet the OpenAI API key value.N)ru   r   s     r   set_openai_api_keyzConfig.set_openai_api_key  r   r   c                     || _         dS )z!Set the ElevenLabs API key value.N)r   r   s     r   set_elevenlabs_api_keyzConfig.set_elevenlabs_api_key  s    "'r   c                     || _         dS )z$Set the ElevenLabs Voice 1 ID value.N)r   r   s     r   set_elevenlabs_voice_1_idz Config.set_elevenlabs_voice_1_id  s    #(   r   c                     || _         dS )z$Set the ElevenLabs Voice 2 ID value.N)elevenlabs_voice_2_idr   s     r   set_elevenlabs_voice_2_idz Config.set_elevenlabs_voice_2_id  s    %*"""r   c                     || _         dS )zSet the Google API key value.N)r   r   s     r   set_google_api_keyzConfig.set_google_api_key  r   r   c                     || _         dS )z&Set the custom search engine id value.N)r   r   s     r   set_custom_search_engine_idz"Config.set_custom_search_engine_id  s    .3+++r   c                     || _         dS )zSet the debug mode value.N)r^   r   s     r   set_debug_modezConfig.set_debug_mode   r   r   c                     || _         dS )zSet the plugins value.N)rV   r   s     r   set_pluginszConfig.set_plugins$  s    r   c                     || _         dS )zSet the temperature value.N)rx   r   s     r   set_temperaturezConfig.set_temperature(  s     r   namec                     || _         dS )zSet the memory backend name.N)r   )r   r   s     r   set_memory_backendzConfig.set_memory_backend,  s    "r   )r   N)r   r   )"__name__
__module____qualname____doc__r   r   strr   re   pathjoindirname__file__AZURE_CONFIG_FILEr|   boolr   r   r   r   r   r   r   r   r   r   r   r   r   r   listr   r   r    r   r   r   r      s        eR eR eR eRN# # # #s s    2 RW__X%>%>VV3D Y YS Y Y Y Y Y(% %$ % % % %&# &$ & & & & D  T        $ $ $ $ $ $% % % % % %% % % % % %$ $ $ $ $ $(C (D ( ( ( ()s )t ) ) ) )+s +t + + + +$ $ $ $ $ $4 4 4 4 4 4 D  T         $    !S !T ! ! ! !#s #t # # # # # #r   r   configr   c                    | j         st          t          j        dz   t          j        z              t          d           t          d          }d}|                                }t          j        ||          rg|t          j
        d<   t                              |           t          t          j        dz   t          j        z   dz   dz   t          j        z              dS t          d	           t          d
           dS dS )zNCheck if the OpenAI API key is set in config.py or as an environment variable.zEPlease set your OpenAI API key in .env or as an environment variable.zFYou can get your key from https://platform.openai.com/account/api-keysz>If you do have the key, please enter your OpenAI API key now:
z
^sk-\w{48}r#   z!OpenAI API key successfully set!
z0NOTE: The API key you've set is only temporary.
z/For longer sessions, please set it in .env filezInvalid OpenAI API key!   N)ru   printr   REDRESETinputstripresearchre   environcfgr   GREENORANGEexit)r   ru   key_patterns      r   check_openai_api_keyr  1  s(     HUVj	
 	
 	

 	VWWWM
 
 $'--//9[.11 	+9BJ'("">222
67+ FF D	D
 *     +,,,GGGGG3 r   )r   re   r  typingr   r~   r   auto_gpt_plugin_templater   coloramar   autogptr   r  r   r   r   <module>r     s    S S 				 				         : : : : : :       `# `# `# `# `# `# `# `#F	 D      r   