/ src / __pycache__ / config.cpython-312.pyc
config.cpython-312.pyc
 1 2  �Q�i����dZddlZddlmZddlmZddlmZe�Gd�d�Z	ej�e
 3  dej�d	ej����y#e
$r#ZddlZej d
 4  e���YdZ[ydZ[wwxYw)z1
 5  Configuration Management with Multi-LLM Support
 6  �N)�Path)�load_dotenv)�Optionalc��eZdZUdZej
 7  dd�j
�Zee	d<ej
 8  dd�Z
 9  ee	d<ej
10  dd�Zee	d<ej
11  dd�Zee	d<ej
12  d	d
13  �Z
ee	d	<ej
14  d�xsej
15  dd�Zee	d<ej
16  d
d�Zee	d
<ej
17  dd�Zee	d<ej
18  dd�Zee	d<eej
19  dd��Zee	d<eej
20  dd��Zee	d<eej
21  dd��Zee	d<ej
22  dd�Zee	d<ee�j3�j4j4Zej8j;eej
23  dd��Zej
24  dd�Zee	d<dZ ee	d<ej
25  dd�Z!ee	d<ej
26  d d!�Z"ee	d <e#ej
27  d"d#��Z$e#e	d"<ej
28  d$d%�j
�d&k(Z%e&e	d$<ej
29  d'd%�j
�d&k(Z'e&e	d'<e#ej
30  d(d)��Z(e#e	d(<e)d*e*efd+��Z+e)d*efd,��Z,e)d*e&fd-��Z-e)d*e.fd.��Z/y/)0�Configz9Application configuration with multi-LLM provider support�LLM_PROVIDER�openai�OPENAI_API_KEY��OPENAI_MODELzgpt-4o-mini�ANTHROPIC_API_KEY�ANTHROPIC_MODELzclaude-3-5-sonnet-20241022�GEMINI_API_KEY�GOOGLE_API_KEY�GEMINI_MODELzgemini-2.5-pro�OLLAMA_MODELzqwen3:8b�OLLAMA_BASE_URLzhttp://localhost:11434�EXTRACTION_TEMPz0.2�SUMMARY_TEMPz0.5�EVALUATION_TEMPz0.4�LLAMA_CLOUD_API_KEY�GOOGLE_CREDENTIALS_JSON_FILEz'google-service-account-credentials.json�GOOGLE_SHEET_ID�Sheet1�
31  SHEET_NAME�GOOGLE_CLOUD_STORAGE_BUCKET�HOSTz0.0.0.0�PORT�8000�RELOAD�false�true�DEBUG�WORKERS�4�returnc��|jj�}|dk(r|jS|dk(r|jS|dk(r|jS|dvryy)zk
32          Get API key for current LLM provider
33  
34          Returns:
35              API key string or None
36          r	�	anthropic�gemini)�ollamaN)r�lowerr
37  r
r��cls�providers  ��/Users/furqan/Documents/AI HR Automation/LangGraph Solution/AI HR Automation - LangGraph Python Project/PythonProject/agentic-ai-hr-automation/src/config.py�get_llm_api_keyzConfig.get_llm_api_keyOsb���#�#�)�)�+���x���%�%�%�
��
$��(�(�(�
��
!��%�%�%�
��
#���c���|jj�}|dk(r|jS|dk(r|jS|dk(r|jS|dk(r|j
38  Sy)zi
39          Get model name for current LLM provider
40  
41          Returns:
42              Model name string
43          r	r(r)r*r)rr+rrrrr,s  r/�
get_llm_modelzConfig.get_llm_modeldsk���#�#�)�)�+���x���#�#�#�
��
$��&�&�&�
��
!��#�#�#�
��
!��#�#�#�r1c�l�g}|jdk(r|jd|jf�nY|jdk(r|jd|jf�n,|jdk(r|jd|jf�t
44  jj|j�r#|js;ddl
45  }|jd	�n$ddl
46  }|jd
47  |j�d��|D��cgc]
48  \}}|r�	|��}}}|rtdd
j|�����ycc}}w)zValidate required configurationr	r
49  r(r
r)rrNz=GOOGLE_SHEET_ID not set. Results will not be saved to Sheets.z Google credentials not found at z/. Google Drive and Sheets integration disabled.z Missing required configuration: z, T)r�appendr
50  r
r�os�path�exists�GOOGLE_CREDENTIALS_PATHr�warnings�warn�
51  ValueError�join)r-�required_fieldsr:�name�value�missings      r/�validatezConfig.validateys&�������x�'��"�"�$4�c�6H�6H�#I�J�
�
�
��
,��"�"�$7��9N�9N�#O�P�
�
�
��
)��"�"�$4�c�6H�6H�#I�J��7�7�>�>�#�5�5�6��&�&����
�
�]�^���H�M�M�<�S�=X�=X�<Y�ZI�J�
K�+:�H�?�K�D�%�%�4�?��H���?��	�	�'�@R�?S�T�U�U���Is�>
52  D0�	D0c�l�|j|j�t|j��d�S)z$Get current LLM provider information)r.�model�has_api_key)rr3�boolr0)r-s r/�get_provider_infozConfig.get_provider_info�s4���(�(��&�&�(��� 3� 3� 5�6�
53  �	
54  r1N)0�__name__�
55  __module__�__qualname__�__doc__r6�getenvr+r�str�__annotations__r
56  rr
rrrrr�floatrrrrr�__file__�resolve�parent�BASE_DIRr7r=r9rrrr�intrr rFr#r$�classmethodrr0r3rB�dictrG�r1r/rrs��C�"��	�	�.�(�;�A�A�C�L�#�C�$�"�)�)�$4�b�9�N�C�9�!��	�	�.�-�@�L�#�@�'�R�Y�Y�':�B�?��s�?�$�2�9�9�%6�8T�U�O�S�U�$�"�)�)�$4�5�X�����CS�UW�9X�N�C�X�!��	�	�.�2B�C�L�#�C�"��	�	�.�*�=�L�#�=�$�2�9�9�%6�8P�Q�O�S�Q�#�9�2�9�9�->��#F�G�O�U�G��	��	�	�.�%� @�A�L�%�A�"�9�2�9�9�->��#F�G�O�U�G� )�r�y�y�)>��C���C��H�~�%�%�'�.�.�5�5�H� �g�g�l�l����	�	�0�2[�\���
57  %�2�9�9�%6��;�O�S�;��J���'0�r�y�y�1N�PR�'S���S���	�	�&�)�,�D�#�,��I�B�I�I�f�f�-�.�D�#�.��2�9�9�X�w�/�5�5�7�6�A�F�D�A��"�)�)�G�W�-�3�3�5��?�E�4�?��y�r�y�y��C�0�1�G�S�1�����
����(��c����(������:�
58  �$�
59  ��
60  r1ru$✅ Configuration validated - Using z with z!Configuration validation failed: )rKr6�pathlibr�dotenvr�typingrrrB�printrr3r<�er:r;rWr1r/�<module>r]s����
61  �����
�P
62  �P
63  �h;�
64  �O�O��	�0��1D�1D�0E�V�F�L`�L`�Lb�Kc�
65  d�e���;���H�M�M�5�a�S�9�:�:��;�s�6A"�"B
66  �'B�B
67