ramalMr commited on
Commit
b3b73c4
·
verified ·
1 Parent(s): beea405

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +12 -8
app.py CHANGED
@@ -16,18 +16,18 @@ def extract_text_from_excel(file):
16
  text = ' '.join(df['Unnamed: 1'].astype(str))
17
  return text
18
 
19
- def save_to_csv(sentence, output, filename="synthetic_data.csv"):
20
  with open(filename, mode='a', newline='', encoding='utf-8') as file:
21
  writer = csv.writer(file)
22
- writer.writerow([sentence, output])
23
 
24
- def generate(file, temperature, max_new_tokens, top_p, repetition_penalty, num_similar_sentences):
25
  text = extract_text_from_excel(file)
26
  sentences = text.split('.')
27
  random.shuffle(sentences) # Shuffle sentences
28
 
29
  with tempfile.NamedTemporaryFile(mode='w', newline='', delete=False, suffix='.csv') as tmp:
30
- fieldnames = ['Original Sentence', 'Generated Sentence']
31
  writer = csv.DictWriter(tmp, fieldnames=fieldnames)
32
  writer.writeheader()
33
 
@@ -46,7 +46,7 @@ def generate(file, temperature, max_new_tokens, top_p, repetition_penalty, num_s
46
  }
47
 
48
  try:
49
- stream = client.text_generation(sentence, **generate_kwargs, stream=True, details=True, return_full_text=False)
50
  output = ""
51
  for response in stream:
52
  output += response.token.text
@@ -58,26 +58,30 @@ def generate(file, temperature, max_new_tokens, top_p, repetition_penalty, num_s
58
  if not generated_sentences:
59
  break
60
  generated_sentence = generated_sentences.pop(random.randrange(len(generated_sentences)))
61
- writer.writerow({'Original Sentence': sentence, 'Generated Sentence': generated_sentence})
62
 
63
  except Exception as e:
64
  print(f"Error generating data for sentence '{sentence}': {e}")
65
 
66
  tmp_path = tmp.name
67
 
68
- return tmp_path
69
 
70
  gr.Interface(
71
  fn=generate,
72
  inputs=[
73
  gr.File(label="Upload Excel File", file_count="single", file_types=[".xlsx"]),
 
74
  gr.Slider(label="Temperature", value=0.9, minimum=0.0, maximum=1.0, step=0.05, interactive=True, info="Higher values produce more diverse outputs"),
75
  gr.Slider(label="Max new tokens", value=256, minimum=0, maximum=5120, step=64, interactive=True, info="The maximum numbers of new tokens"),
76
  gr.Slider(label="Top-p (nucleus sampling)", value=0.95, minimum=0.0, maximum=1, step=0.05, interactive=True, info="Higher values sample more low-probability tokens"),
77
  gr.Slider(label="Repetition penalty", value=1.0, minimum=1.0, maximum=2.0, step=0.1, interactive=True, info="Penalize repeated tokens"),
78
  gr.Slider(label="Number of similar sentences", value=10, minimum=1, maximum=20, step=1, interactive=True, info="Number of similar sentences to generate for each original sentence"),
79
  ],
80
- outputs=gr.File(label="Synthetic Data "),
 
 
 
81
  title="SDG",
82
  description="AYE QABIL.",
83
  allow_flagging="never",
 
16
  text = ' '.join(df['Unnamed: 1'].astype(str))
17
  return text
18
 
19
+ def save_to_csv(prompt, sentence, output, filename="synthetic_data.csv"):
20
  with open(filename, mode='a', newline='', encoding='utf-8') as file:
21
  writer = csv.writer(file)
22
+ writer.writerow([prompt, sentence, output])
23
 
24
+ def generate(file, prompt, temperature, max_new_tokens, top_p, repetition_penalty, num_similar_sentences):
25
  text = extract_text_from_excel(file)
26
  sentences = text.split('.')
27
  random.shuffle(sentences) # Shuffle sentences
28
 
29
  with tempfile.NamedTemporaryFile(mode='w', newline='', delete=False, suffix='.csv') as tmp:
30
+ fieldnames = ['Prompt', 'Original Sentence', 'Generated Sentence']
31
  writer = csv.DictWriter(tmp, fieldnames=fieldnames)
32
  writer.writeheader()
33
 
 
46
  }
47
 
48
  try:
49
+ stream = client.text_generation(prompt + sentence, **generate_kwargs, stream=True, details=True, return_full_text=False)
50
  output = ""
51
  for response in stream:
52
  output += response.token.text
 
58
  if not generated_sentences:
59
  break
60
  generated_sentence = generated_sentences.pop(random.randrange(len(generated_sentences)))
61
+ writer.writerow({'Prompt': prompt, 'Original Sentence': sentence, 'Generated Sentence': generated_sentence})
62
 
63
  except Exception as e:
64
  print(f"Error generating data for sentence '{sentence}': {e}")
65
 
66
  tmp_path = tmp.name
67
 
68
+ return tmp_path, output
69
 
70
  gr.Interface(
71
  fn=generate,
72
  inputs=[
73
  gr.File(label="Upload Excel File", file_count="single", file_types=[".xlsx"]),
74
+ gr.Textbox(label="Prompt", placeholder="Enter your prompt here..."),
75
  gr.Slider(label="Temperature", value=0.9, minimum=0.0, maximum=1.0, step=0.05, interactive=True, info="Higher values produce more diverse outputs"),
76
  gr.Slider(label="Max new tokens", value=256, minimum=0, maximum=5120, step=64, interactive=True, info="The maximum numbers of new tokens"),
77
  gr.Slider(label="Top-p (nucleus sampling)", value=0.95, minimum=0.0, maximum=1, step=0.05, interactive=True, info="Higher values sample more low-probability tokens"),
78
  gr.Slider(label="Repetition penalty", value=1.0, minimum=1.0, maximum=2.0, step=0.1, interactive=True, info="Penalize repeated tokens"),
79
  gr.Slider(label="Number of similar sentences", value=10, minimum=1, maximum=20, step=1, interactive=True, info="Number of similar sentences to generate for each original sentence"),
80
  ],
81
+ outputs=[
82
+ gr.File(label="Synthetic Data"),
83
+ gr.Textbox(label="Generated Output")
84
+ ],
85
  title="SDG",
86
  description="AYE QABIL.",
87
  allow_flagging="never",