Просмотр исходного кода

Add support for extensions parameters

Still experimental
oobabooga 3 лет назад
Родитель
Сommit
6da94e358c
2 измененных файлов с 29 добавлено и 2 удалено
  1. 6 2
      extensions/example/script.py
  2. 23 0
      server.py

+ 6 - 2
extensions/example/script.py

@@ -1,14 +1,18 @@
+params = {
+    "input suffix": " *I say as I make a funny face*",
+}
+
 def input_modifier(string):
 def input_modifier(string):
     """
     """
     This function is applied to your text inputs before
     This function is applied to your text inputs before
     they are fed into the model.
     they are fed into the model.
     """ 
     """ 
 
 
-    return string.replace(' ', '#')
+    return string + params["input suffix"]
 
 
 def output_modifier(string):
 def output_modifier(string):
     """
     """
     This function is applied to the model outputs.
     This function is applied to the model outputs.
     """
     """
 
 
-    return string.replace(' ', '_')
+    return string

+ 23 - 0
server.py

@@ -606,6 +606,29 @@ if args.chat or args.cai_chat:
             with gr.Tab('Upload TavernAI Character Card'):
             with gr.Tab('Upload TavernAI Character Card'):
                 upload_img_tavern = gr.File(type='binary')
                 upload_img_tavern = gr.File(type='binary')
 
 
+        if args.extensions is not None:
+            extensions_ui_elements = []
+            gr.Markdown('## Extensions parameters')
+            for ext in sorted(extension_state, key=lambda x : extension_state[x][1]):
+                if extension_state[ext][0] == True:
+                    params = eval(f"extensions.{ext}.script.params")
+                    for param in params:
+                        if type(params[param] == str):
+                            extensions_ui_elements.append(gr.Textbox(value=params[param], label=param))
+
+            def update_extensions_parameters(*kwargs):
+                i = 0
+                for ext in sorted(extension_state, key=lambda x : extension_state[x][1]):
+                    if extension_state[ext][0] == True:
+                        params = eval(f"extensions.{ext}.script.params")
+                        for param in params:
+                            if len(kwargs) >= i+1:
+                                params[param] = eval(f"kwargs[{i}]")
+                                i += 1
+
+            btn_extensions = gr.Button("Apply")
+            btn_extensions.click(update_extensions_parameters, [*extensions_ui_elements], [])
+
         input_params = [textbox, length_slider, preset_menu, model_menu, name1, name2, context, check, history_size_slider]
         input_params = [textbox, length_slider, preset_menu, model_menu, name1, name2, context, check, history_size_slider]
         if args.cai_chat:
         if args.cai_chat:
             gen_event = btn.click(cai_chatbot_wrapper, input_params, display1, show_progress=args.no_stream, api_name="textgen")
             gen_event = btn.click(cai_chatbot_wrapper, input_params, display1, show_progress=args.no_stream, api_name="textgen")