hannahcyberey commited on
Commit
914bde0
·
1 Parent(s): 7a7a151
Files changed (1) hide show
  1. app.py +29 -3
app.py CHANGED
@@ -33,6 +33,7 @@ scheduler = load_scheduler()
33
 
34
 
35
  HEAD = """
 
36
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.7.2/css/all.min.css" integrity="sha512-Evv84Mr4kqVGRNSgIGL/F/aIDqQb7xQ2vcrdIwxfjThSH8CSR7PBEakCr51Ck+w+/U6swU2Im1vVX0SVk9ABhg==" crossorigin="anonymous" referrerpolicy="no-referrer" />
37
  """
38
 
@@ -95,7 +96,6 @@ div#banner {
95
  div#model-state p {
96
  font-size: 14px;
97
  }
98
-
99
  }
100
 
101
  div#steering-toggle {
@@ -129,6 +129,20 @@ div#coeff-slider .wrap .head {
129
  margin-bottom: 0;
130
  }
131
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
132
  """
133
 
134
 
@@ -149,6 +163,9 @@ slider_ticks = """\
149
  </datalist>\
150
  """
151
 
 
 
 
152
 
153
  JS = """
154
  async() => {
@@ -159,10 +176,19 @@ async() => {
159
  sliderNode.insertAdjacentHTML('afterend', "%s");
160
  sliderNode.setAttribute("list", "values");
161
 
 
 
 
 
 
 
 
 
 
162
  document.querySelector('span.min_value').remove();
163
  document.querySelector('span.max_value').remove();
164
  }
165
- """ % (slider_info, slider_ticks)
166
 
167
 
168
  def initialize_instance(request: gr.Request):
@@ -325,7 +351,7 @@ with gr.Blocks(title="LLM Censorship Steering", theme=theme, head=HEAD, css=CSS,
325
  with gr.Column(scale=1):
326
  with gr.Row():
327
  steer_toggle = Toggle(label="Steering", info="Turn off to generate original outputs", value=True, interactive=True, scale=2, elem_id="steering-toggle")
328
- coeff = gr.Slider(label="Coefficient:", value=-1.0, minimum=-2, maximum=2, step=0.1, scale=8, show_reset_button=False, elem_id="coeff-slider")
329
 
330
  @gr.on(inputs=[steer_toggle], outputs=[steer_toggle, coeff], triggers=[steer_toggle.change])
331
  def update_toggle(toggle_value):
 
33
 
34
 
35
  HEAD = """
36
+ <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js" integrity="sha384-YvpcrYf0tY3lHB60NNkmXc5s9fDVZLESaAA55NDzOxhy9GkcIdslK1eN7N6jIeHz" crossorigin="anonymous"></script>
37
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.7.2/css/all.min.css" integrity="sha512-Evv84Mr4kqVGRNSgIGL/F/aIDqQb7xQ2vcrdIwxfjThSH8CSR7PBEakCr51Ck+w+/U6swU2Im1vVX0SVk9ABhg==" crossorigin="anonymous" referrerpolicy="no-referrer" />
38
  """
39
 
 
96
  div#model-state p {
97
  font-size: 14px;
98
  }
 
99
  }
100
 
101
  div#steering-toggle {
 
129
  margin-bottom: 0;
130
  }
131
  }
132
+
133
+ .tooltip {
134
+ word-wrap: break-word;
135
+ width: 12rem;
136
+ }
137
+ .tooltip-inner {
138
+ filter: alpha(opacity=100);
139
+ font-size: var(--block-info-text-size);
140
+ text-align: center;
141
+ padding: .4rem .2rem;
142
+ background-color: var(--neutral-500);
143
+ border-width: 1px;
144
+ border-radius: var(--block-radius);
145
+ }
146
  """
147
 
148
 
 
163
  </datalist>\
164
  """
165
 
166
+ coeff_info = """\
167
+ <href='#' id='coeff-info' data-bs-toggle='tooltip' style='padding-left: 3px;' data-bs-html='true' data-bs-trigger='hover focus' data-bs-placement='right' data-bs-html='true' title='Recommended range is -1~1 (Outputs may be unexpected outside this range)'><i class='fa-solid fa-circle-question'></i></span>\
168
+ """
169
 
170
  JS = """
171
  async() => {
 
176
  sliderNode.insertAdjacentHTML('afterend', "%s");
177
  sliderNode.setAttribute("list", "values");
178
 
179
+ const coeffBox = document.querySelector("div#coeff-slider label span");
180
+ coeffBox.insertAdjacentHTML('afterend', "%s");
181
+
182
+
183
+ var tooltipTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="tooltip"]'))
184
+ var tooltipList = tooltipTriggerList.map(function (tooltipTriggerEl) {
185
+ return new bootstrap.Tooltip(tooltipTriggerEl)
186
+ })
187
+
188
  document.querySelector('span.min_value').remove();
189
  document.querySelector('span.max_value').remove();
190
  }
191
+ """ % (slider_info, slider_ticks, coeff_info)
192
 
193
 
194
  def initialize_instance(request: gr.Request):
 
351
  with gr.Column(scale=1):
352
  with gr.Row():
353
  steer_toggle = Toggle(label="Steering", info="Turn off to generate original outputs", value=True, interactive=True, scale=2, elem_id="steering-toggle")
354
+ coeff = gr.Slider(label="Coefficient", value=-1.0, minimum=-2, maximum=2, step=0.1, scale=8, show_reset_button=False, elem_id="coeff-slider")
355
 
356
  @gr.on(inputs=[steer_toggle], outputs=[steer_toggle, coeff], triggers=[steer_toggle.change])
357
  def update_toggle(toggle_value):