JohanBeytell commited on
Commit
be9eb51
·
verified ·
1 Parent(s): 7df0a0e

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +39 -41
app.py CHANGED
@@ -142,44 +142,42 @@ def generate_text(seed_text, next_words=30, temperature=0.5):
142
 
143
  return decoded #, gr.update(interactive=True)
144
 
145
- flagged_outputs = []
146
-
147
- def flag_output(prompt, generated_text, next_words, temperature):
148
- if not generated_text.strip():
149
- return "Cannot flag an empty output."
150
-
151
- timestamp = datetime.now().isoformat()
152
-
153
- dataset_id = "InfinitodeLTD/DungenDev-FlaggedOutputs"
154
-
155
- # Load the existing dataset (if it exists) or create an empty DatasetDict
156
- try:
157
- dataset = load_dataset(dataset_id)
158
- except:
159
- dataset = DatasetDict()
160
-
161
- # Prepare new data to append
162
- new_data = [{
163
- "Prompt": prompt,
164
- "Generated Text": generated_text,
165
- "Next Words": next_words,
166
- "Temperature": temperature,
167
- "Timestamp": timestamp
168
- }]
169
-
170
- new_dataset = Dataset.from_list(new_data)
171
-
172
- if "train" in dataset:
173
- dataset["train"] = concatenate_datasets([dataset["train"], new_dataset]) # Append to existing train
174
- else:
175
- dataset["train"] = new_dataset # Create the train split
176
-
177
- dataset.push_to_hub(dataset_id)
178
-
179
- return "Output flagged successfully."
180
-
181
- def enable_flag_button(state):
182
- return gr.update(interactive=state)
183
 
184
  demo = gr.Interface(
185
  fn=generate_text,
@@ -203,9 +201,9 @@ demo = gr.Interface(
203
  ["an evil character name", 30, 0.5]
204
  ],
205
  theme="default",
206
- flagging_mode='manual',
207
- flagging_options=["Incorrect", "Offensive/Hateful", "Harmful/Violent", "Illegal", "NSFW", "Other"],
208
- flagging_dir='flagged_outputs'
209
  )
210
 
211
  demo.queue()
 
142
 
143
  return decoded #, gr.update(interactive=True)
144
 
145
+ # Custom flagging callback to use the existing flagging logic
146
+ class CustomFlaggingCallback(gr.FlaggingCallback):
147
+ def __init__(self, dataset_id):
148
+ self.dataset_id = dataset_id
149
+
150
+ def flag(self, flag_data, flag_option=None, username=None):
151
+ prompt, generated_text, next_words, temperature = flag_data
152
+ timestamp = datetime.now().isoformat()
153
+
154
+ # Custom flagging logic
155
+ try:
156
+ dataset = load_dataset(self.dataset_id)
157
+ except:
158
+ dataset = DatasetDict()
159
+
160
+ new_data = [{
161
+ "Prompt": prompt,
162
+ "Generated Text": generated_text,
163
+ "Next Words": next_words,
164
+ "Temperature": temperature,
165
+ "Timestamp": timestamp
166
+ }]
167
+
168
+ new_dataset = Dataset.from_list(new_data)
169
+
170
+ if "train" in dataset:
171
+ dataset["train"] = concatenate_datasets([dataset["train"], new_dataset]) # Append to existing train
172
+ else:
173
+ dataset["train"] = new_dataset # Create the train split
174
+
175
+ dataset.push_to_hub(self.dataset_id)
176
+ return "Output flagged successfully."
177
+
178
+ # Initialize the custom flagging callback
179
+ dataset_id = "InfinitodeLTD/DungenDev-FlaggedOutputs"
180
+ custom_flag_callback = CustomFlaggingCallback(dataset_id)
 
 
181
 
182
  demo = gr.Interface(
183
  fn=generate_text,
 
201
  ["an evil character name", 30, 0.5]
202
  ],
203
  theme="default",
204
+ flagging_mode="manual",
205
+ flagging_callback=custom_flag_callback
206
+ )
207
  )
208
 
209
  demo.queue()