vithacocf commited on
Commit
e81deff
·
verified ·
1 Parent(s): 77c0246

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +44 -0
app.py CHANGED
@@ -243,7 +243,51 @@ def run_process(file, question, model_choice, temperature, top_p, external_api_u
243
 
244
  except Exception as e:
245
  return f"ERROR: {type(e).__name__}: {e}", None
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
246
 
 
247
  # ================== UI ==================
248
  def main():
249
  with gr.Blocks(title="OCR Multi-Agent System") as demo:
 
243
 
244
  except Exception as e:
245
  return f"ERROR: {type(e).__name__}: {e}", None
246
+ def run_process_internal_base_v2(file_bytes, filename, mime, question, model_choice, temperature, top_p, batch_size=3):
247
+ api_key = os.environ.get("GOOGLE_API_KEY", DEFAULT_API_KEY)
248
+ if not api_key:
249
+ return "ERROR: Missing GOOGLE_API_KEY.", None
250
+ genai.configure(api_key=api_key)
251
+ model_name = INTERNAL_MODEL_MAP.get(model_choice, "gemini-2.5-flash")
252
+ model = genai.GenerativeModel(model_name=model_name,
253
+ generation_config={"temperature": float(temperature), "top_p": float(top_p)})
254
+
255
+ if file_bytes[:4] == b"%PDF":
256
+ pages = pdf_to_images(file_bytes)
257
+ else:
258
+ pages = [Image.open(io.BytesIO(file_bytes))]
259
+
260
+ user_prompt = (question or "").strip() or PROMPT_FREIGHT_JSON
261
+ all_json_results, all_text_results = [], []
262
+ previous_header_json = None
263
+
264
+ def _safe_text(resp):
265
+ try:
266
+ return resp.text
267
+ except:
268
+ return ""
269
+
270
+ for i in range(0, len(pages), batch_size):
271
+ batch = pages[i:i+batch_size]
272
+ uploaded = []
273
+ for im in batch:
274
+ with tempfile.NamedTemporaryFile(delete=False, suffix=".png") as tmp:
275
+ im.save(tmp.name)
276
+ up = genai.upload_file(path=tmp.name, mime_type="image/png")
277
+ up = genai.get_file(up.name)
278
+ uploaded.append(up)
279
+
280
+ context_prompt = user_prompt
281
+ resp = model.generate_content([context_prompt] + uploaded)
282
+ text = _safe_text(resp)
283
+ all_text_results.append(text)
284
+ for up in uploaded:
285
+ try:
286
+ genai.delete_file(up.name)
287
+ except:
288
+ pass
289
 
290
+ return "\n\n".join(all_text_results), None
291
  # ================== UI ==================
292
  def main():
293
  with gr.Blocks(title="OCR Multi-Agent System") as demo: