frendyrachman commited on
Commit
f9f33fc
·
verified ·
1 Parent(s): 77d971f

ADDED TANGGAL BIOMETRIK

Browse files
Files changed (1) hide show
  1. app.py +13 -13
app.py CHANGED
@@ -49,7 +49,7 @@ def process_pdfs(pdf_files, dpi):
49
 
50
 
51
  # Function to analyze the extracted image using Google GenAI
52
- def gemini_analysis(images, tanggal_berangkat, tanggal_pulang):
53
  client = genai.Client(api_key='AIzaSyBpviFHkaEF-GAjMMl28dIS1poikhBqq_w')
54
  # Define your prompt
55
  prompt = '''Anda bertugas memvalidasi kelengkapan, kesesuaian dan konsistensi data dari dokumen individual berdasarkan syarat Visa di bawah. Cukup fokus pada syarat yang diberikan tanpa mengambil referensi lain.
@@ -66,11 +66,11 @@ def gemini_analysis(images, tanggal_berangkat, tanggal_pulang):
66
  8. Akta Kelahiran / Surat Kelahiran / Bukti Kelahiran / Ijazah: Wajib jika ada anak-anak atau disponsori orang lain.
67
  9. Surat Sponsor (Guarantee Letter): Wajib ada. Bisa dari universitas, dinas/perusahaan, orang tua, atau orang lain (misal. suami). Wajib berbahasa Inggris, tertera Tujuan negara, tanggal trip, Siapa penanggung biaya, Wajib ada tulisan yang menjaminan kembali ke Indonesia.
68
  10. Status Pekerjaan (WAJIB ADA salah satu): Pegawai (Surat kerja + Slip gaji 3 bulan), Pemilik usaha (NIB/SIUP + Surat jaminan staf), Pelajar (Surat sekolah/universitas + kartu pelajar), Freelancer/Onlineshop (Kontrak kerja & 5 bukti transaksi), Pensiun (Surat pensiun + guarantee keluarga).
69
- 11. Rekening Koran 3 bulan: WAJIB ADA, Atas nama pribadi & sponsor, tertera Cap & logo bank, nama, nomor rekening, Saldo stabil min. Rp 35 juta/orang.
70
  12. Rekening Koran Sponsor 3 bulan: WAJIB ADA jika disponsori, Atas & sponsor, tertera Cap & logo bank, nama, nomor rekening, Saldo stabil min. Rp 35 juta/orang.
71
  13. Slip Gaji: Wajib ada jika pekerja, 3 bulan terakhir sebelum tanggal berankgat, Jika suami lengkap, istri cukup lampirkan rekening koran suami.
72
- 14. Surat Referensi Bank: Wajib ada. Menyatakan bahwa peserta tersebut adalah nasabah bank terkait
73
- 15. Surat Referensi Bank Sponsor: Wajib ada jika disponsori. Menyatakan bahwa pemberi sponsor tersebut adalah nasabah bank terkait
74
  ---
75
  TEMPLATE OUTPUT JAWABAN DALAM FORMAT JSON:
76
  {
@@ -134,7 +134,7 @@ def gemini_analysis(images, tanggal_berangkat, tanggal_pulang):
134
  '''
135
 
136
  # Perform document analysis
137
- prompt_with_date = f'Tanggal Berangkat={tanggal_berangkat}. Tanggal pulang={tanggal_pulang}\n\n{prompt}'
138
  response = client.models.generate_content(
139
  model="gemini-2.0-flash-lite",
140
  contents=[prompt_with_date] + images,
@@ -225,7 +225,7 @@ Output:
225
  zipf.write(pdf_path, arcname=f"{doc_name}.pdf")
226
  return zip_path
227
 
228
- def main_process(files, tanggal_berangkat, tanggal_pulang, dpi):
229
  all_images = []
230
  image_paths_for_zip = []
231
 
@@ -251,7 +251,7 @@ def main_process(files, tanggal_berangkat, tanggal_pulang, dpi):
251
  raise ValueError(f"File {file_path} is not a valid image, PDF, or ZIP.")
252
 
253
  # Generate summary from images
254
- raw_output, analysis_str, summary, invalid_list_str, notice_msg, form_filling_str, token_usage = gemini_analysis(all_images, tanggal_berangkat, tanggal_pulang)
255
  rdf = random.randint(5, 10)
256
  time.sleep(rdf)
257
 
@@ -300,11 +300,11 @@ with gr.Blocks() as demo:
300
  placeholder="Masukan Tanggal Kepulangan",
301
  type="text"
302
  )
303
- # api_key = gr.Textbox(
304
- # label="Gemini API Key",
305
- # placeholder="Masukan Kode API",
306
- # type="text"
307
- # )
308
  dpi_slider = gr.Slider(
309
  minimum=100,
310
  maximum=400,
@@ -335,7 +335,7 @@ with gr.Blocks() as demo:
335
 
336
  run_btn.click(
337
  fn=main_process,
338
- inputs=[file_input, tanggal_berangkat, tanggal_pulang, dpi_slider],
339
  outputs=[download_output_docx, form_filling_output, download_valid_zip, invalid_list_output, raw_output, summary_output, notice_msg, token_usage]
340
  )
341
 
 
49
 
50
 
51
  # Function to analyze the extracted image using Google GenAI
52
+ def gemini_analysis(images, tanggal_berangkat, tanggal_pulang, tanggal_biometrik):
53
  client = genai.Client(api_key='AIzaSyBpviFHkaEF-GAjMMl28dIS1poikhBqq_w')
54
  # Define your prompt
55
  prompt = '''Anda bertugas memvalidasi kelengkapan, kesesuaian dan konsistensi data dari dokumen individual berdasarkan syarat Visa di bawah. Cukup fokus pada syarat yang diberikan tanpa mengambil referensi lain.
 
66
  8. Akta Kelahiran / Surat Kelahiran / Bukti Kelahiran / Ijazah: Wajib jika ada anak-anak atau disponsori orang lain.
67
  9. Surat Sponsor (Guarantee Letter): Wajib ada. Bisa dari universitas, dinas/perusahaan, orang tua, atau orang lain (misal. suami). Wajib berbahasa Inggris, tertera Tujuan negara, tanggal trip, Siapa penanggung biaya, Wajib ada tulisan yang menjaminan kembali ke Indonesia.
68
  10. Status Pekerjaan (WAJIB ADA salah satu): Pegawai (Surat kerja + Slip gaji 3 bulan), Pemilik usaha (NIB/SIUP + Surat jaminan staf), Pelajar (Surat sekolah/universitas + kartu pelajar), Freelancer/Onlineshop (Kontrak kerja & 5 bukti transaksi), Pensiun (Surat pensiun + guarantee keluarga).
69
+ 11. Rekening Koran 3 bulan: WAJIB ADA, Atas nama pribadi, tertera Cap & logo bank, nama, nomor rekening, Saldo stabil min. Rp 35 juta/orang hingga 1 minggu sebelum tanggal biometrik.
70
  12. Rekening Koran Sponsor 3 bulan: WAJIB ADA jika disponsori, Atas & sponsor, tertera Cap & logo bank, nama, nomor rekening, Saldo stabil min. Rp 35 juta/orang.
71
  13. Slip Gaji: Wajib ada jika pekerja, 3 bulan terakhir sebelum tanggal berankgat, Jika suami lengkap, istri cukup lampirkan rekening koran suami.
72
+ 14. Surat Referensi Bank: Wajib ada. Surat yang menyatakan bahwa peserta tersebut adalah nasabah bank terkait. Berbeda dengan rekening koran.
73
+ 15. Surat Referensi Bank Sponsor: Wajib ada jika disponsori. Berupa surat yang menyatakan bahwa pemberi sponsor tersebut adalah nasabah bank terkait. Berbeda dengan rekening koran.
74
  ---
75
  TEMPLATE OUTPUT JAWABAN DALAM FORMAT JSON:
76
  {
 
134
  '''
135
 
136
  # Perform document analysis
137
+ prompt_with_date = f'Tanggal Berangkat={tanggal_berangkat}. Tanggal pulang={tanggal_pulang}. Tanggal Biometrik={tanggal_biometrik}\n\n{prompt}'
138
  response = client.models.generate_content(
139
  model="gemini-2.0-flash-lite",
140
  contents=[prompt_with_date] + images,
 
225
  zipf.write(pdf_path, arcname=f"{doc_name}.pdf")
226
  return zip_path
227
 
228
+ def main_process(files, tanggal_berangkat, tanggal_pulang, tanggal_biometrik, dpi):
229
  all_images = []
230
  image_paths_for_zip = []
231
 
 
251
  raise ValueError(f"File {file_path} is not a valid image, PDF, or ZIP.")
252
 
253
  # Generate summary from images
254
+ raw_output, analysis_str, summary, invalid_list_str, notice_msg, form_filling_str, token_usage = gemini_analysis(all_images, tanggal_berangkat, tanggal_pulang, tanggal_biometrik)
255
  rdf = random.randint(5, 10)
256
  time.sleep(rdf)
257
 
 
300
  placeholder="Masukan Tanggal Kepulangan",
301
  type="text"
302
  )
303
+ tanggal_biometrik = gr.Textbox(
304
+ label="Tanggal Biometrik",
305
+ placeholder="Masukan Tanggal Biometrik",
306
+ type="text"
307
+ )
308
  dpi_slider = gr.Slider(
309
  minimum=100,
310
  maximum=400,
 
335
 
336
  run_btn.click(
337
  fn=main_process,
338
+ inputs=[file_input, tanggal_berangkat, tanggal_pulang, tanggal_biometrik, dpi_slider],
339
  outputs=[download_output_docx, form_filling_output, download_valid_zip, invalid_list_output, raw_output, summary_output, notice_msg, token_usage]
340
  )
341