
    i%                     f    d dl Z d dlmZ d dlmZ d dlmZ  e        	 	 	 d	dedee   dee   fdZ	y)
    N)Optional)
ChatOpenAI)load_dotenvtemperaturemodel_name_overrideproviderc           	      $   |<t        |      j                         j                         }|dvrt        d      |dk(  }n8t	        j
                  d      xs dj                         j                         dk(  }|rJt	        j
                  d      }|xs t	        j
                  dd	      }|st        d
      t        |||       S t	        j
                  d      }|xs t	        j
                  dd      }|st        d      t        |d|| ddd      S )aQ  
    Factory for LLM. Optional provider overrides env:
    - provider="openai" -> OpenAI (OPENAI_API_KEY, OPENAI_MODEL_NAME)
    - provider="openrouter" -> OpenRouter (OPENROUTER_API_KEY, OPENROUTER_MODEL_NAME)
    - provider=None -> use USE_OPENAI env (true -> OpenAI, else OpenRouter).
    Other provider strings raise ValueError.
    >   openai
openrouterz/provider must be one of: 'openai', 'openrouter'r
   
USE_OPENAIfalsetrueOPENAI_API_KEYOPENAI_MODEL_NAMEzgpt-4o-miniz(OPENAI_API_KEY not found in environment.)openai_api_key
model_namer   OPENROUTER_API_KEYOPENROUTER_MODEL_NAMEz"tngtech/deepseek-r1t2-chimera:freez,OPENROUTER_API_KEY not found in environment.zhttps://openrouter.ai/api/v1z%https://github.com/vaibhavk/profilingzUser Profiling Engine)zHTTP-RefererzX-Title)r   openai_api_baser   r   
extra_body)strstriplower
ValueErrorosgetenvr   )r   r   r   provider_norm
use_openaiapi_keyr   s          @/var/www/html/userprofiledev.eatanceapp.com/core/llm_provider.pyget_llmr!      s    H++-335 88NOO"h.
ii-8??AGGIVS
)),-(YBII6I=,Y
GHH"!#
 	
 ))01(tBII6MOs,t
KLL":!# G2	
 		
    )gffffff?NN)
r   typingr   langchain_openair   dotenvr   floatr   r!    r"   r    <module>r(      sH    	  '   )-"/
/
!#/
 sm/
r"   