mirror of
https://github.com/oobabooga/text-generation-webui.git
synced 2024-11-22 08:07:56 +01:00
Added dropdown to character bias. (#986)
This commit is contained in:
parent
dba2000d2b
commit
8178fde2cb
@ -1,8 +1,23 @@
|
|||||||
import gradio as gr
|
import gradio as gr
|
||||||
|
import os
|
||||||
|
|
||||||
|
# get the current directory of the script
|
||||||
|
current_dir = os.path.dirname(os.path.abspath(__file__))
|
||||||
|
|
||||||
|
# check if the bias_options.txt file exists, if not, create it
|
||||||
|
bias_file = os.path.join(current_dir, "bias_options.txt")
|
||||||
|
if not os.path.isfile(bias_file):
|
||||||
|
with open(bias_file, "w") as f:
|
||||||
|
f.write("*I am so happy*\n*I am so sad*\n*I am so excited*\n*I am so bored*\n*I am so angry*")
|
||||||
|
|
||||||
|
# read bias options from the text file
|
||||||
|
with open(bias_file, "r") as f:
|
||||||
|
bias_options = [line.strip() for line in f.readlines()]
|
||||||
|
|
||||||
params = {
|
params = {
|
||||||
"activate": True,
|
"activate": True,
|
||||||
"bias string": " *I am so happy*",
|
"bias string": " *I am so happy*",
|
||||||
|
"use custom string": False,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -11,7 +26,6 @@ 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
|
return string
|
||||||
|
|
||||||
|
|
||||||
@ -19,7 +33,6 @@ def output_modifier(string):
|
|||||||
"""
|
"""
|
||||||
This function is applied to the model outputs.
|
This function is applied to the model outputs.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
return string
|
return string
|
||||||
|
|
||||||
|
|
||||||
@ -29,9 +42,11 @@ def bot_prefix_modifier(string):
|
|||||||
the prefix text for the Bot and can be used to bias its
|
the prefix text for the Bot and can be used to bias its
|
||||||
behavior.
|
behavior.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
if params['activate']:
|
if params['activate']:
|
||||||
return f'{string} {params["bias string"].strip()} '
|
if params['use custom string']:
|
||||||
|
return f'{string} {params["custom string"].strip()} '
|
||||||
|
else:
|
||||||
|
return f'{string} {params["bias string"].strip()} '
|
||||||
else:
|
else:
|
||||||
return string
|
return string
|
||||||
|
|
||||||
@ -39,8 +54,29 @@ def bot_prefix_modifier(string):
|
|||||||
def ui():
|
def ui():
|
||||||
# Gradio elements
|
# Gradio elements
|
||||||
activate = gr.Checkbox(value=params['activate'], label='Activate character bias')
|
activate = gr.Checkbox(value=params['activate'], label='Activate character bias')
|
||||||
string = gr.Textbox(value=params["bias string"], label='Character bias')
|
dropdown_string = gr.Dropdown(choices=bias_options, value=params["bias string"], label='Character bias', info='To edit the options in this dropdown edit the "bias_options.txt" file')
|
||||||
|
use_custom_string = gr.Checkbox(value=False, label='Use custom bias textbox instead of dropdown')
|
||||||
|
custom_string = gr.Textbox(value="", placeholder="Enter custom bias string", label="Custom Character Bias", info='To use this textbox activate the checkbox above')
|
||||||
|
|
||||||
# Event functions to update the parameters in the backend
|
# Event functions to update the parameters in the backend
|
||||||
string.change(lambda x: params.update({"bias string": x}), string, None)
|
def update_bias_string(x):
|
||||||
|
if x:
|
||||||
|
params.update({"bias string": x})
|
||||||
|
else:
|
||||||
|
params.update({"bias string": dropdown_string.get()})
|
||||||
|
return x
|
||||||
|
|
||||||
|
def update_custom_string(x):
|
||||||
|
params.update({"custom string": x})
|
||||||
|
|
||||||
|
dropdown_string.change(update_bias_string, dropdown_string, None)
|
||||||
|
custom_string.change(update_custom_string, custom_string, None)
|
||||||
activate.change(lambda x: params.update({"activate": x}), activate, None)
|
activate.change(lambda x: params.update({"activate": x}), activate, None)
|
||||||
|
use_custom_string.change(lambda x: params.update({"use custom string": x}), use_custom_string, None)
|
||||||
|
|
||||||
|
# Group elements together depending on the selected option
|
||||||
|
def bias_string_group():
|
||||||
|
if use_custom_string.value:
|
||||||
|
return gr.Group([use_custom_string, custom_string])
|
||||||
|
else:
|
||||||
|
return dropdown_string
|
||||||
|
Loading…
Reference in New Issue
Block a user