kevalfst commited on
Commit
dd3284f
Β·
verified Β·
1 Parent(s): 2b9d671

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +10 -18
app.py CHANGED
@@ -2,40 +2,32 @@ import gradio as gr
2
  from transformers import pipeline, AutoTokenizer, AutoModelForSeq2SeqLM
3
  import json
4
 
5
- model_name = "google/flan-t5-xl"
 
6
  tokenizer = AutoTokenizer.from_pretrained(model_name)
7
  model = AutoModelForSeq2SeqLM.from_pretrained(model_name)
 
8
  generator = pipeline("text2text-generation", model=model, tokenizer=tokenizer)
9
 
10
  def generate_json(prompt):
11
- # Revise the instruction to make it explicit for valid JSON output
12
- instruction = (
13
- "Return only a valid JSON object, with no additional text. "
14
- "The JSON object must contain exactly the keys: "
15
- '"title", "author", "tags". '
16
- "For the following prompt, generate this JSON object. "
17
- f"Prompt: {prompt}"
18
- )
19
- result = generator(instruction, max_length=512, do_sample=False)
20
- generated_text = result[0]["generated_text"].strip()
21
-
22
- # Debug: print the raw output to inspect the format
23
- print(f"Raw Model Output: {generated_text}")
24
-
25
  try:
26
  parsed = json.loads(generated_text)
27
  formatted_json = json.dumps(parsed, indent=2)
28
  except Exception as e:
29
  formatted_json = f"Raw Output:\n{generated_text}\n\nError parsing JSON: {e}"
30
-
31
  return formatted_json
32
 
33
  demo = gr.Interface(
34
  fn=generate_json,
35
  inputs=gr.Textbox(lines=4, label="Enter Prompt"),
36
  outputs=gr.Textbox(lines=20, label="Generated JSON"),
37
- title="Lightweight JSON Generator",
38
- description="Enter a prompt describing the structure or content you want in JSON format."
39
  )
40
 
41
  demo.queue()
 
2
  from transformers import pipeline, AutoTokenizer, AutoModelForSeq2SeqLM
3
  import json
4
 
5
+ # 🧠 Use model fine-tuned for JSON generation
6
+ model_name = "mrm8488/t5-base-finetuned-json-generation"
7
  tokenizer = AutoTokenizer.from_pretrained(model_name)
8
  model = AutoModelForSeq2SeqLM.from_pretrained(model_name)
9
+
10
  generator = pipeline("text2text-generation", model=model, tokenizer=tokenizer)
11
 
12
  def generate_json(prompt):
13
+ instruction = f"Generate JSON: {prompt}"
14
+ result = generator(instruction, max_length=256, do_sample=False)
15
+ generated_text = result[0]["generated_text"]
16
+
 
 
 
 
 
 
 
 
 
 
17
  try:
18
  parsed = json.loads(generated_text)
19
  formatted_json = json.dumps(parsed, indent=2)
20
  except Exception as e:
21
  formatted_json = f"Raw Output:\n{generated_text}\n\nError parsing JSON: {e}"
22
+
23
  return formatted_json
24
 
25
  demo = gr.Interface(
26
  fn=generate_json,
27
  inputs=gr.Textbox(lines=4, label="Enter Prompt"),
28
  outputs=gr.Textbox(lines=20, label="Generated JSON"),
29
+ title="Accurate JSON Generator",
30
+ description="Uses a fine-tuned model to reliably generate JSON from natural language prompts."
31
  )
32
 
33
  demo.queue()