33from pydantic import field_validator , model_validator
44from typing_extensions import Self , override
55
6- from pipelex import log
76from pipelex .cogt .exceptions import LLMDeckValidatonError , LLMHandleNotFoundError , LLMPresetNotFoundError , LLMSettingsValidationError
87from pipelex .cogt .llm .llm_models .llm_deck_abstract import LLMDeckAbstract
98from pipelex .cogt .llm .llm_models .llm_engine_blueprint import LLMEngineBlueprint
@@ -51,80 +50,6 @@ def get_llm_setting(self, llm_setting_or_preset_id: LLMSettingOrPresetId) -> LLM
5150 raise LLMPresetNotFoundError (f"LLM preset '{ llm_setting_or_preset_id } ' not found in deck" )
5251 return the_llm_preset
5352
54- @override
55- def get_llm_setting_for_text (self , override : Optional [LLMSettingChoices ] = None ) -> LLMSetting :
56- llm_setting : LLMSettingOrPresetId
57- if replacement := self .llm_choice_overrides .for_text :
58- log .warning (f"General llm setting override for text, '{ self .llm_choice_defaults .for_text } ' -> '{ replacement } '" )
59- llm_setting = replacement
60- elif override and (provided_override_for_text := override .for_text ):
61- llm_setting = provided_override_for_text
62- elif self .llm_choice_defaults .for_text is None :
63- raise ConfigValidationError ("llm_choices.for_text cannot be None" )
64- else :
65- llm_setting = self .llm_choice_defaults .for_text
66-
67- return self .get_llm_setting (llm_setting_or_preset_id = llm_setting )
68-
69- @override
70- def get_llm_setting_for_object (self , override : Optional [LLMSettingChoices ] = None ) -> LLMSetting :
71- log .debug (f"Getting LLM setting for object with provided_override: { override } " )
72- llm_setting : LLMSettingOrPresetId
73- if replacement := self .llm_choice_overrides .for_object :
74- log .warning (f"General llm setting override for object, '{ self .llm_choice_defaults .for_object } ' -> '{ replacement } '" )
75- llm_setting = replacement
76- elif override and (provided_override_for_object := override .for_object ):
77- llm_setting = provided_override_for_object
78- elif self .llm_choice_defaults .for_object is None :
79- raise ConfigValidationError ("llm_choices.for_object cannot be None" )
80- else :
81- llm_setting = self .llm_choice_defaults .for_object
82-
83- return self .get_llm_setting (llm_setting_or_preset_id = llm_setting )
84-
85- @override
86- def get_llm_setting_for_object_direct (self , override : Optional [LLMSettingChoices ] = None ) -> LLMSetting :
87- log .debug (f"Getting LLM preset for object direct with provided_override: { override } " )
88- llm_setting : LLMSettingOrPresetId
89- if replacement := self .llm_choice_overrides .for_object_direct :
90- log .warning (f"General choice override for LLM preset for structured, '{ self .llm_choice_defaults .for_object_direct } ' -> '{ replacement } '" )
91- llm_setting = replacement
92- elif override and (provided_override_for_object_direct := override .for_object_direct ):
93- llm_setting = provided_override_for_object_direct
94- elif self .llm_choice_defaults .for_object_direct is None :
95- raise ConfigValidationError ("llm_choices.for_object_direct cannot be None" )
96- else :
97- llm_setting = self .llm_choice_defaults .for_object_direct
98-
99- return self .get_llm_setting (llm_setting_or_preset_id = llm_setting )
100-
101- @override
102- def get_llm_setting_for_object_list (self , override : Optional [LLMSettingChoices ] = None ) -> LLMSetting :
103- llm_setting : LLMSettingOrPresetId
104- if replacement := self .llm_choice_overrides .for_object_list :
105- log .warning (f"General choice override for LLM preset for structured, '{ self .llm_choice_defaults .for_object_list } ' -> '{ replacement } '" )
106- llm_setting = replacement
107- elif override and (provided_override_for_object_list := override .for_object_list ):
108- llm_setting = provided_override_for_object_list
109- elif self .llm_choice_defaults .for_object_list is None :
110- raise ConfigValidationError ("llm_choices.for_object_list cannot be None" )
111- else :
112- llm_setting = self .llm_choice_defaults .for_object_list
113-
114- return self .get_llm_setting (llm_setting_or_preset_id = llm_setting )
115-
116- @override
117- def get_llm_setting_for_object_list_direct (self , override : Optional [LLMSettingChoices ] = None ) -> LLMSetting :
118- llm_setting : LLMSettingOrPresetId
119- if override and (provided_override_for_object_list_direct := override .for_object_list_direct ):
120- llm_setting = provided_override_for_object_list_direct
121- elif self .llm_choice_defaults .for_object_list_direct is None :
122- raise ConfigValidationError ("llm_choices.for_object_list_direct cannot be None" )
123- else :
124- llm_setting = self .llm_choice_defaults .for_object_list_direct
125-
126- return self .get_llm_setting (llm_setting_or_preset_id = llm_setting )
127-
12853 @override
12954 def find_llm_model (self , llm_handle : str ) -> LLMModel :
13055 llm_models_provider = get_llm_models_provider ()
@@ -202,12 +127,6 @@ def validate_llm_choice_defaults(cls, llm_choice_defaults: LLMSettingChoices) ->
202127 raise ConfigValidationError ("llm_choice_defaults.for_text cannot be None" )
203128 if llm_choice_defaults .for_object is None :
204129 raise ConfigValidationError ("llm_choice_defaults.for_object cannot be None" )
205- if llm_choice_defaults .for_object_direct is None :
206- raise ConfigValidationError ("llm_choice_defaults.for_object_direct cannot be None" )
207- if llm_choice_defaults .for_object_list is None :
208- raise ConfigValidationError ("llm_choice_defaults.for_object_list cannot be None" )
209- if llm_choice_defaults .for_object_list_direct is None :
210- raise ConfigValidationError ("llm_choice_defaults.for_object_list_direct cannot be None" )
211130 return llm_choice_defaults
212131
213132 @field_validator ("llm_choice_overrides" , mode = "after" )
@@ -217,12 +136,6 @@ def validate_llm_choice_overrides(cls, value: LLMSettingChoices) -> LLMSettingCh
217136 value .for_text = None
218137 if value .for_object == LLM_PRESET_DISABLED :
219138 value .for_object = None
220- if value .for_object_direct == LLM_PRESET_DISABLED :
221- value .for_object_direct = None
222- if value .for_object_list == LLM_PRESET_DISABLED :
223- value .for_object_list = None
224- if value .for_object_list_direct == LLM_PRESET_DISABLED :
225- value .for_object_list_direct = None
226139 return value
227140
228141 def add_llm_name_as_handle_with_defaults (self , llm_name : str ):
@@ -237,11 +150,6 @@ def validate_llm_presets(self) -> Self:
237150 raise LLMHandleNotFoundError (f"llm_handle '{ llm_setting .llm_handle } ' for llm_preset '{ llm_preset_id } ' not found in deck" )
238151 return self
239152
240- @model_validator (mode = "after" )
241- def validate_llm_default_choices (self ) -> Self :
242- self ._validate_llm_choices (llm_choices = self .llm_choice_defaults )
243- return self
244-
245153 @model_validator (mode = "after" )
246154 def validate_llm_setting_overrides (self ) -> Self :
247155 self ._validate_llm_choices (llm_choices = self .llm_choice_overrides )
0 commit comments