
    `gj
              	      0   U d Z ddlmZ ddlZddlmZ ddddd	d
ddddddddZded<   ddddd	dddddddddddZded<   ddej                  j                  d      idd d!d"d# ej                  d$d%      d%d&d'd d(Zded)<   dd*ddd+Zd,ed-<   d/d.Zy)0z=OSS provider definitions for LLM, embedder, and vector store.    )annotationsN)AnyOpenAITOPENAI_API_KEYz
gpt-5-miniopenai_base_url)label	needs_keyenv_vardefault_modelbase_url_keyzOllama (local)Fzllama3.1:8bzhttp://localhost:11434ollama_base_urlollama)r   r	   r   default_urlr   pip_dep)openair   zdict[str, dict[str, Any]]LLM_PROVIDERStext-embedding-3-smalli   )r   r	   r
   r   r   dimsnomic-embed-texti   )r   r	   r   r   r   r   r   EMBEDDER_PROVIDERSQdrantpathz~/.hermes/mem0_qdrantzqdrant-client)r   default_configr   PGVector	localhosti8  USERpostgres)hostportuserdbnamezpsycopg2-binary)qdrantpgvectorVECTOR_PROVIDERSi   )r   ztext-embedding-3-largeztext-embedding-ada-002r   zdict[str, int]
KNOWN_DIMSc           	        g }dt         fdt        fdt        ffD ]  \  }}| j                  |      }|rt	        |t
              s|j                  d|        >|j                  dd      }||vsUdj                  |j                               }|j                  d| d	| d
|         | j                  di       }|j                  d      dk(  r4|j                  di       }|j                  d      s|j                  d       |S )zKValidate an OSS config dict. Returns list of error strings (empty = valid).llmembeddervector_storezMissing required section: provider z, zUnknown z provider 'z
'. Valid: r#   configr    z/PGVector requires 'user' in vector_store.config)	r   r   r$   get
isinstancedictappendjoinkeys)	
oss_configerrorssectionregistryblockprovider_idvalidvscfgs	            U/root/.hermes/venv/lib/python3.12/site-packages/plugins/memory/mem0/_oss_providers.pyvalidate_oss_configr=   C   s   F$m4zCU6V .0@AC 	Yw'Jud3MM6wi@Aii
B/h&IIhmmo.EMMHWI[ZPUwWX	Y 
	+B	vvjZ'ffXr"wwvMMKLM    )r3   r/   returnz	list[str])__doc__
__future__r   ostypingr   r   __annotations__r   r   
expandusergetenvr$   r%   r=    r>   r<   <module>rH      s   C " 	  #%) "&/),( ( #1) "+/)1 - , !277#5#56M#NO" #.ibiiPVXbFcoyz$/ +  #""	
N r>   