@@ -28,7 +28,7 @@ def __init__(
2828 self ,
2929 provider_name : str ,
3030 model_data : Optional [Dict [str , Any ]] = None ,
31- existing_model_ids : List [str ] = None ,
31+ existing_model_ids : Optional [ List [str ] ] = None ,
3232 parent = None ,
3333 ):
3434 super ().__init__ (parent )
@@ -61,6 +61,7 @@ def __init__(
6161 self .capabilities_tool_use_checkbox = QCheckBox ("Tool Use" )
6262 self .capabilities_thinking_checkbox = QCheckBox ("Thinking" )
6363 self .capabilities_vision_checkbox = QCheckBox ("Vision" )
64+ self .capabilities_stream_checkbox = QCheckBox ("Stream" )
6465
6566 self .input_price_edit = QDoubleSpinBox ()
6667 self .input_price_edit .setDecimals (6 ) # Increased precision
@@ -83,6 +84,7 @@ def __init__(
8384 capabilities_layout .addWidget (self .capabilities_tool_use_checkbox )
8485 capabilities_layout .addWidget (self .capabilities_thinking_checkbox )
8586 capabilities_layout .addWidget (self .capabilities_vision_checkbox )
87+ capabilities_layout .addWidget (self .capabilities_stream_checkbox )
8688 capabilities_layout .addStretch () # To push checkboxes to the left
8789 form_layout .addRow ("Capabilities:" , capabilities_layout )
8890
@@ -115,6 +117,7 @@ def populate_fields(self, data: Dict[str, Any]):
115117 "thinking" in current_capabilities
116118 )
117119 self .capabilities_vision_checkbox .setChecked ("vision" in current_capabilities )
120+ self .capabilities_stream_checkbox .setChecked ("stream" in current_capabilities )
118121
119122 self .input_price_edit .setValue (data .get ("input_token_price_1m" , 0.0 ))
120123 self .output_price_edit .setValue (data .get ("output_token_price_1m" , 0.0 ))
@@ -130,11 +133,12 @@ def get_model_data(self) -> Dict[str, Any]:
130133 capabilities_list .append ("thinking" )
131134 if self .capabilities_vision_checkbox .isChecked ():
132135 capabilities_list .append ("vision" )
136+ if self .capabilities_stream_checkbox .isChecked ():
137+ capabilities_list .append ("stream" )
133138
134139 # Ensure Model Pydantic types are respected
135140 return {
136141 "id" : self .id_edit .text ().strip (),
137- "provider" : self .provider_name , # Name of the custom provider
138142 "name" : self .name_edit .text ().strip (),
139143 "description" : self .description_edit .toPlainText ().strip (),
140144 "capabilities" : capabilities_list ,
@@ -254,13 +258,11 @@ def clear_and_disable_form(self):
254258 self .api_base_url_edit .clear ()
255259 self .api_key_edit .clear ()
256260 self .default_model_id_edit .clear ()
257- self .is_stream_checkbox .setChecked (False )
258261
259262 self .name_edit .setEnabled (False )
260263 self .api_base_url_edit .setEnabled (False )
261264 self .api_key_edit .setEnabled (False )
262265 self .default_model_id_edit .setEnabled (False )
263- self .is_stream_checkbox .setEnabled (False )
264266
265267 self .save_button .setEnabled (False )
266268 self .remove_button .setEnabled (False )
@@ -294,7 +296,6 @@ def on_provider_selected(self, current_item, previous_item):
294296 self .api_base_url_edit .setText (provider_data .get ("api_base_url" , "" ))
295297 self .api_key_edit .setText (provider_data .get ("api_key" , "" ))
296298 self .default_model_id_edit .setText (provider_data .get ("default_model_id" , "" ))
297- self .is_stream_checkbox .setChecked (provider_data .get ("is_stream" , False ))
298299
299300 # Clear and reload header fields
300301 self .clear_header_fields ()
@@ -311,7 +312,6 @@ def on_provider_selected(self, current_item, previous_item):
311312 self .api_base_url_edit .setEnabled (True )
312313 self .api_key_edit .setEnabled (True )
313314 self .default_model_id_edit .setEnabled (True )
314- self .is_stream_checkbox .setEnabled (True )
315315
316316 self .save_button .setEnabled (True )
317317 self .remove_button .setEnabled (True )
@@ -358,9 +358,6 @@ def add_new_provider_triggered(self):
358358 self .default_model_id_edit .setEnabled (True )
359359 self .default_model_id_edit .clear ()
360360
361- self .is_stream_checkbox .setEnabled (True )
362- self .is_stream_checkbox .setChecked (False )
363-
364361 # Clear existing headers and enable adding new ones
365362 self .clear_header_fields ()
366363 self .add_header_button .setEnabled (True )
@@ -425,14 +422,12 @@ def init_ui(self):
425422 self .api_base_url_edit = QLineEdit ()
426423 self .api_key_edit = QLineEdit ()
427424 self .default_model_id_edit = QLineEdit ()
428- self .is_stream_checkbox = QCheckBox ("Enable Streaming" )
429425
430426 form_layout .addRow ("Name:" , self .name_edit )
431427 form_layout .addRow ("Type:" , self .type_display )
432428 form_layout .addRow ("Base URL:" , self .api_base_url_edit )
433429 form_layout .addRow ("API Key:" , self .api_key_edit )
434430 form_layout .addRow ("Default Model ID:" , self .default_model_id_edit )
435- form_layout .addRow ("Streaming:" , self .is_stream_checkbox )
436431
437432 editor_layout .addLayout (form_layout )
438433
@@ -501,7 +496,6 @@ def init_ui(self):
501496 self .api_base_url_edit .setEnabled (False )
502497 self .api_key_edit .setEnabled (False )
503498 self .default_model_id_edit .setEnabled (False )
504- self .is_stream_checkbox .setEnabled (False )
505499 self .save_button .setEnabled (False )
506500
507501 self .setLayout (main_layout )
@@ -608,7 +602,6 @@ def save_provider_details(self):
608602 api_base_url = self .api_base_url_edit .text ().strip ()
609603 api_key = self .api_key_edit .text ().strip ()
610604 default_model_id = self .default_model_id_edit .text ().strip ()
611- is_stream = self .is_stream_checkbox .isChecked ()
612605
613606 if not name or not api_base_url :
614607 QMessageBox .warning (
@@ -645,7 +638,6 @@ def save_provider_details(self):
645638 "api_key" : api_key ,
646639 "default_model_id" : default_model_id ,
647640 "available_models" : available_models_data , # List of model dictionaries
648- "is_stream" : is_stream ,
649641 "extra_headers" : extra_headers , # Add the extra_headers field
650642 }
651643
0 commit comments