File tree Expand file tree Collapse file tree 1 file changed +25
-0
lines changed Expand file tree Collapse file tree 1 file changed +25
-0
lines changed Original file line number Diff line number Diff line change 1+ from pydantic import BaseModel , Field
2+
3+ from pydantic_settings import BaseSettings , SettingsConfigDict
4+
5+
6+ def test_env_source_when_load_multi_nested_config (env ):
7+ # export my_prefix_llm__embeddings__openai__keys='["sk-..."]'
8+ # export my_prefix_llm__embeddings__qwen__keys='["sk-..."]'
9+ class EmbeddingModel (BaseModel ):
10+ model : str = 'text-embedding-3-small'
11+ keys : list [str ] = Field (default_factory = list )
12+
13+ class LLM (BaseModel ):
14+ embeddings : dict [str , EmbeddingModel ] = Field (default_factory = dict )
15+
16+ class LLMSettings (BaseSettings ):
17+ llm : LLM = Field (default_factory = lambda : LLM ())
18+
19+ model_config = SettingsConfigDict (env_prefix = 'my_prefix_' , env_nested_delimiter = '__' )
20+
21+ env .set ('my_prefix_llm__embeddings__openai__keys' , '["sk-..."]' )
22+ env .set ('my_prefix_llm__embeddings__qwen__keys' , '["sk-..."]' )
23+ llm_setting = LLMSettings ()
24+ assert llm_setting .llm .embeddings ['openai' ].keys == ['sk-...' ]
25+ assert llm_setting .llm .embeddings ['qwen' ].keys == ['sk-...' ]
You can’t perform that action at this time.
0 commit comments