jp22082001 commited on
Commit
697fa2b
·
1 Parent(s): d792ddc

Auto-update via watch script

Browse files
Files changed (1) hide show
  1. app.py +36 -32
app.py CHANGED
@@ -162,40 +162,44 @@ def respond(message, history, system_prompt, max_tokens, temperature, disable_th
162
  prompt_parts.append(f"<|user|>\n{img_tags}{user_text}<|end|>\n<|assistant|>\n")
163
  prompt = "".join(prompt_parts)
164
 
165
- # Prepare inputs
166
- if image_paths:
167
- print(f"[inference] Processing prompt with {len(image_paths)} images...", flush=True)
168
- images = og.Images.open(*image_paths)
169
- inputs = processor(prompt, images=images)
170
- else:
171
- print("[inference] Processing text-only prompt for Phi-3...", flush=True)
172
- try:
173
- inputs = processor(prompt)
174
- except Exception:
175
- inputs = tokenizer.encode(prompt)
 
 
 
 
 
 
 
 
176
 
177
- # Set up generator parameters
178
- params = og.GeneratorParams(model)
179
- if hasattr(inputs, 'set_inputs') or not isinstance(inputs, (list, tuple)):
180
- params.set_inputs(inputs)
181
- else:
182
- params.input_ids = inputs
183
 
184
- params.set_search_options(
185
- max_length=int(max_tokens),
186
- temperature=temperature
187
- )
188
-
189
- # Stream output
190
- generator = og.Generator(model, params)
191
- partial = ""
192
- while not generator.is_done():
193
- generator.compute_logits()
194
- generator.generate_next_token()
195
- new_token = generator.get_next_tokens()[0]
196
- decoded = tokenizer.decode([new_token])
197
- partial += decoded
198
- yield partial
199
  else:
200
  # Qwen modes
201
  llm = _load_llm(mode)
 
162
  prompt_parts.append(f"<|user|>\n{img_tags}{user_text}<|end|>\n<|assistant|>\n")
163
  prompt = "".join(prompt_parts)
164
 
165
+ try:
166
+ # Prepare inputs
167
+ if image_paths:
168
+ print(f"[inference] Processing prompt with {len(image_paths)} images...", flush=True)
169
+ images = og.Images.open(*image_paths)
170
+ inputs = processor(prompt, images=images)
171
+ else:
172
+ print("[inference] Processing text-only prompt for Phi-3...", flush=True)
173
+ try:
174
+ inputs = processor(prompt)
175
+ except Exception:
176
+ inputs = tokenizer.encode(prompt)
177
+
178
+ # Set up generator parameters
179
+ params = og.GeneratorParams(model)
180
+ if hasattr(inputs, 'set_inputs') or not isinstance(inputs, (list, tuple)):
181
+ params.set_inputs(inputs)
182
+ else:
183
+ params.input_ids = inputs
184
 
185
+ params.set_search_options(
186
+ max_length=int(max_tokens),
187
+ temperature=temperature
188
+ )
 
 
189
 
190
+ # Stream output
191
+ generator = og.Generator(model, params)
192
+ partial = ""
193
+ while not generator.is_done():
194
+ generator.compute_logits()
195
+ generator.generate_next_token()
196
+ new_token = generator.get_next_tokens()[0]
197
+ decoded = tokenizer.decode([new_token])
198
+ partial += decoded
199
+ yield partial
200
+ except Exception as e:
201
+ print(f"[inference] Error during Phi-3 generation: {e}", flush=True)
202
+ yield f"⚠️ **Error during model inference**: {str(e)}\n\n*This was caught gracefully to prevent the Space from crashing. Please try again or rephrase.*"
 
 
203
  else:
204
  # Qwen modes
205
  llm = _load_llm(mode)