2023-04-10 04:44:31 +02:00
import os
2023-05-10 03:49:39 +02:00
import gradio as gr
2023-04-10 04:44:31 +02:00
# 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 ( ) ]
2023-02-24 23:00:11 +01:00
2023-01-29 03:00:51 +01:00
params = {
2023-02-26 06:37:21 +01:00
" activate " : True ,
" bias string " : " *I am so happy* " ,
2024-01-05 05:48:26 +01:00
" custom string " : " " ,
2023-01-29 03:00:51 +01:00
}
2023-04-07 05:15:45 +02:00
2023-01-27 04:40:39 +01:00
def input_modifier ( string ) :
"""
This function is applied to your text inputs before
they are fed into the model .
2023-04-07 05:15:45 +02:00
"""
2023-02-10 19:24:26 +01:00
return string
2023-01-27 04:40:39 +01:00
2023-04-07 05:15:45 +02:00
2023-01-27 04:40:39 +01:00
def output_modifier ( string ) :
"""
This function is applied to the model outputs .
"""
2023-01-29 03:00:51 +01:00
return string
2023-01-29 14:11:59 +01:00
2023-04-07 05:15:45 +02:00
2023-01-29 14:11:59 +01:00
def bot_prefix_modifier ( string ) :
"""
This function is only applied in chat mode . It modifies
the prefix text for the Bot and can be used to bias its
behavior .
"""
2023-04-07 05:15:45 +02:00
if params [ ' activate ' ] :
2024-01-05 05:48:26 +01:00
if params [ ' custom string ' ] . strip ( ) != ' ' :
2023-04-10 04:44:31 +02:00
return f ' { string } { params [ " custom string " ] . strip ( ) } '
else :
return f ' { string } { params [ " bias string " ] . strip ( ) } '
2023-02-26 06:37:21 +01:00
else :
return string
2023-02-24 23:00:11 +01:00
2023-04-07 05:15:45 +02:00
2023-02-24 23:00:11 +01:00
def ui ( ) :
# Gradio elements
2023-02-26 06:37:21 +01:00
activate = gr . Checkbox ( value = params [ ' activate ' ] , label = ' Activate character bias ' )
2023-04-10 04:44:31 +02:00
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 ' )
2024-01-05 05:48:26 +01:00
custom_string = gr . Textbox ( value = params [ ' custom string ' ] , placeholder = " Enter custom bias string " , label = " Custom Character Bias " , info = ' If not empty, will be used instead of the value above ' )
2023-02-24 23:00:11 +01:00
# Event functions to update the parameters in the backend
2023-04-10 04:44:31 +02:00
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 )
2023-02-26 06:37:21 +01:00
activate . change ( lambda x : params . update ( { " activate " : x } ) , activate , None )