ikraamkb commited on
Commit
14e7320
·
verified ·
1 Parent(s): c55ca48

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +12 -9
app.py CHANGED
@@ -87,31 +87,34 @@ gpt_tokenizer = AutoTokenizer.from_pretrained("microsoft/phi-1_5")
87
  gpt_model = AutoModelForCausalLM.from_pretrained("microsoft/phi-1_5")
88
 
89
  def rewrite_answer(question, short_answer):
90
- prompt = (
91
- f"Question: {question}\n"
92
- f"Short Answer: {short_answer}\n"
93
- f"Now write a full sentence answering the question:"
94
- )
95
  inputs = gpt_tokenizer(prompt, return_tensors="pt")
96
  with torch.no_grad():
97
  outputs = gpt_model.generate(
98
  **inputs,
99
  max_new_tokens=50,
100
  do_sample=True,
101
- top_p=0.95,
102
- temperature=0.7,
 
103
  pad_token_id=gpt_tokenizer.eos_token_id
104
  )
105
 
106
  generated = gpt_tokenizer.decode(outputs[0], skip_special_tokens=True)
107
 
108
- if "Now write a full sentence answering the question:" in generated:
109
- rewritten = generated.split("Now write a full sentence answering the question:")[-1].strip()
 
110
  else:
111
  rewritten = generated.strip()
112
 
 
 
 
 
113
  return rewritten
114
 
 
115
  def answer_question_from_image(image, question):
116
  if image is None or not question.strip():
117
  return "Please upload an image and ask a question.", None
 
87
  gpt_model = AutoModelForCausalLM.from_pretrained("microsoft/phi-1_5")
88
 
89
  def rewrite_answer(question, short_answer):
90
+ prompt = f"Write a full sentence to answer this:\nQ: {question}\nA: {short_answer}\nFull sentence:"
 
 
 
 
91
  inputs = gpt_tokenizer(prompt, return_tensors="pt")
92
  with torch.no_grad():
93
  outputs = gpt_model.generate(
94
  **inputs,
95
  max_new_tokens=50,
96
  do_sample=True,
97
+ top_k=40,
98
+ top_p=0.9,
99
+ temperature=0.6,
100
  pad_token_id=gpt_tokenizer.eos_token_id
101
  )
102
 
103
  generated = gpt_tokenizer.decode(outputs[0], skip_special_tokens=True)
104
 
105
+ # Try to isolate the answer portion
106
+ if "Full sentence:" in generated:
107
+ rewritten = generated.split("Full sentence:")[-1].strip()
108
  else:
109
  rewritten = generated.strip()
110
 
111
+ # Fallback to basic templating if model fails
112
+ if not rewritten or len(rewritten.split()) < 3:
113
+ rewritten = f"The answer to the question '{question}' is: {short_answer}."
114
+
115
  return rewritten
116
 
117
+
118
  def answer_question_from_image(image, question):
119
  if image is None or not question.strip():
120
  return "Please upload an image and ask a question.", None