o
    Blj
                     @  sN   d Z ddlmZ ddlZddlmZmZ ddlmZ e	e
Zddd
dZdS )u   Factory LLM según Settings.    )annotationsN)Settingsget_settings)LanguageModelsettingsSettings | Nonereturnr   c                 C  s*  | pt  }|jp	d  }|j}|r%tdt||j r dn|j	 nt
d|j	 |dkraddlm} |j r@t
d td|j|j ||j|j|j|j|j|j|j||j|jdd	S |d
krddlm} td|j|j ||jpyd
|j|j|j|jdd||j|jd
ddS td|d)Nopenaiz.Bot system prompt cargado (%d chars) fuente=%sBOT_SYSTEM_PROMPTuD   Sin BOT_SYSTEM_PROMPT ni archivo %s — se usará el default del LLMr   )OpenAiLanguageModeluS   OPENAI_ASSISTANT_ID definido pero ignorado (Assistants deprecada → Responses API)z3LLM provider=openai model=%s base=%s modo=responses)api_keymodeltemperature
max_tokenstop_pfrequency_penaltypresence_penaltysystem_promptbase_urltimeoutprovider_nameollamaz$LLM provider=ollama model=%s base=%sg        F)r   r   r   r   r   r   r   r   r   r   r   use_responseszLLM_PROVIDER desconocido: u   . Usá 'openai' u 'ollama'.)r   llm_providerstriplowerresolved_bot_system_promptloggerinfolenbot_system_promptbot_system_prompt_filewarningllm.openai_llmr   openai_assistant_idopenai_modelopenai_base_urlopenai_api_keyopenai_temperatureopenai_max_tokensopenai_top_popenai_frequency_penaltyopenai_presence_penaltyopenai_timeoutollama_modelollama_base_urlollama_api_keyollama_timeout
ValueError)r   cfgproviderr   r    r5   5/var/www/html/bot-asterisk-ari/backend/llm/factory.pycreate_language_model   sz   


r7   )N)r   r   r   r   )__doc__
__future__r   loggingconfigr   r   llm.protocolsr   	getLogger__name__r   r7   r5   r5   r5   r6   <module>   s    
