frendyrachman commited on
Commit
2637922
·
verified ·
1 Parent(s): 6ad9fee

Update app.py

Browse files

Update banking analysis format

Files changed (1) hide show
  1. app.py +19 -19
app.py CHANGED
@@ -57,20 +57,20 @@ def gemini_analysis(images, tanggal_berangkat, tanggal_pulang, tanggal_biometrik
57
  ---
58
  DAFTAR SYARAT DOKUMEN YANG WAJIB DIPERIKSA:
59
  1. Paspor: WAJIB ADA, aktif min. 6 bulan setelah Tanggal Pulang Perjalanan, Ada tanda tangan, Lampirkan paspor lama jika ada, Copy paspor sponsor jika disponsori.
60
- 2. Fotokopi Paspor: Tidak wajib ada, Halaman depan & tanda tangan, Semua visa perjalanan sebelumnya jika ada (terutama 5 tahun terakhir).
61
  3. Pas Foto: Wajib ada, background putih, Wajah terlihat 80%, alis terlihat, tidak berbayang.
62
  4. Kartu Keluarga (KK): Wajib ada, Minimal versi 2019 atau memiliki barcode, Sesuai status, Harus ditranslate untuk VFS Germany.
63
  5. Akte Nikah/Surat Nikah/Bukti nikah/Surat Cerai/ Bukti Cerai: Wajib ada jika sudah menikah/bercerai, Tidak perlu jika belum, Halaman biodata suami/istri, Jika istri ikut, wajib ada Surat Izin Suami.
64
- 6. KTP: Wajib ada, Nama harus sama dengan paspor, KK dan dokumen-dokumen lain. Jika nama berbeda wajib Surat Beda Nama.
65
- 7. KTP Sponsor: Wajib ada jika disponsori.
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 terakhir hingga tanggal biometrik: WAJIB ADA, Atas nama pribadi, tertera Cap & logo bank, nama, nomor rekening, Saldo stabil min. Rp 35 juta/orang dari 3 bulan hingga 1 minggu sebelum tanggal biometrik.
70
- 12. Rekening Koran Sponsor 3 bulan terakhir hingga tanggal biometrik: WAJIB ADA jika disponsori, Atas & sponsor, tertera Cap & logo bank, nama, nomor rekening, Saldo stabil min. Rp 35 juta/orang dari 3 bulan hingga 1 minggu sebelum tanggal biometrik.
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
  {
@@ -119,17 +119,17 @@ def gemini_analysis(images, tanggal_berangkat, tanggal_pulang, tanggal_biometrik
119
  ---
120
  TEMPLATE PESAN PEMBERITAHUAN (notice_msg):
121
  Berikut kami informasikan kekurangan dokumen yang *WAJIB* dibawa saat biometric visa schengen nanti ya :
122
- 1. Pas Foto (3,5 x 4,5 cm)
123
- 2. Paspor Asli
124
- 3. Fotokopi paspor
125
  4. ...
126
  5. ...
127
  # dan seterusnya dokumen dokumen lain yang belum lengkap dan perlu revisi berdasarkan hasil analisa
128
  ---
129
  TEMPLATE SUMMARY:
130
- List Dokumen yang sudah valid: ....
131
- List Dokumen yang belum ada / perlu diperbaiki / perlu cek ulang : ...
132
- Analisis detail keseluruhan : ...
133
  ---
134
  '''
135
 
@@ -139,8 +139,8 @@ def gemini_analysis(images, tanggal_berangkat, tanggal_pulang, tanggal_biometrik
139
  model="gemini-2.0-flash-lite",
140
  contents=[prompt_with_date] + images,
141
  config=GenerateContentConfig(
142
- temperature=0.2,
143
- top_p=0.2,
144
  response_mime_type="application/json"
145
  )
146
  )
@@ -180,7 +180,7 @@ def process_and_zip_all_images(images, zip_name="All_PDF_Docs.zip"):
180
  prompt_3 = '''Anda adalah asisten yang membantu menamai file gambar dokumen.
181
  Tugas Anda adalah mengidentifikasi jenis dokumen pada gambar ini dan memberikan nama file yang sesuai.
182
  Jawaban Anda *harus* berupa *salah satu* nama file dari daftar berikut:
183
- ['paspor', 'pasfoto', 'kartukeluarga', 'buktinikah', 'KTP', 'suratkelahiran', 'suratsponsor', 'suratkerja', 'NIB', 'SIUP', 'suratjaminanstaff', 'suratsekolah', 'kontrakkerja', 'suratpensiun', 'rekeningkoran', 'rekeningkoransponsor', 'slipgaji', 'bankreference', 'bankreferencesponsor']
184
  Jawaban Anda *hanya* boleh berupa teks yang *persis sama* dengan salah satu item dalam daftar tersebut.
185
  Jangan tambahkan penjelasan, tanda kutip, titik, atau teks tambahan lainnya.
186
  Contoh:
@@ -281,7 +281,7 @@ def main_process(files, tanggal_berangkat, tanggal_pulang, tanggal_biometrik, dp
281
  # Gradio UI update: add ".zip" to accepted file types
282
  with gr.Blocks() as demo:
283
  gr.Markdown("# 🧠 Noura the Document Checker ✈️ ")
284
- gr.Markdown("Last Updated: June 9 2025")
285
 
286
  file_input = gr.File(
287
  label="Upload PDFs, Images or ZIP files (Multiple Supported)",
 
57
  ---
58
  DAFTAR SYARAT DOKUMEN YANG WAJIB DIPERIKSA:
59
  1. Paspor: WAJIB ADA, aktif min. 6 bulan setelah Tanggal Pulang Perjalanan, Ada tanda tangan, Lampirkan paspor lama jika ada, Copy paspor sponsor jika disponsori.
60
+ 2. Fotokopi Paspor: Wajib ada, tertera Halaman depan & tanda tangan, Semua visa perjalanan sebelumnya jika ada (terutama 5 tahun terakhir).
61
  3. Pas Foto: Wajib ada, background putih, Wajah terlihat 80%, alis terlihat, tidak berbayang.
62
  4. Kartu Keluarga (KK): Wajib ada, Minimal versi 2019 atau memiliki barcode, Sesuai status, Harus ditranslate untuk VFS Germany.
63
  5. Akte Nikah/Surat Nikah/Bukti nikah/Surat Cerai/ Bukti Cerai: Wajib ada jika sudah menikah/bercerai, Tidak perlu jika belum, Halaman biodata suami/istri, Jika istri ikut, wajib ada Surat Izin Suami.
64
+ 6. KTP: WAJIB ADA, Nama harus sama dengan paspor, KK dan dokumen-dokumen lain. Jika nama berbeda wajib ada Surat Keterangan Beda Nama.
65
+ 7. KTP Sponsor: WAJIB ADA JIKA DISPONSORI.
66
+ 8. Akta Kelahiran / Surat Kelahiran / Bukti Kelahiran / Ijazah: Wajib ada jika 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 Peserta: WAJIB ADA, Atas nama pribadi, tertera Cap & logo bank, nama, nomor rekening, Saldo minimal Rp 35 juta/orang hingga 7 hari sebelum Tanggal Biometrik. Tampilkan tanggal-bulan-tahun terakhir rekening koran pada analisis.
70
+ 12. Rekening Koran Sponsor: WAJIB ADA JIKA DISPONSORI, Atas nama sponsor, tertera Cap & logo bank, nama, nomor rekening, Saldo minimal Rp 35 juta/orang hingga 7 hari sebelum Tanggal Biometrik. Tampilkan tanggal-bulan-tahun terakhir rekening koran pada analisis.
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. Berbeda dengan rekening koran. Surat yang menyatakan bahwa peserta tersebut adalah nasabah bank terkait. Jika hanya rekening koran, maka bagian dokumen ini tidak valid.
73
+ 15. Surat Referensi Bank Sponsor: WAJIB ADA JIKA DISPONSORI. Berbeda dengan rekening koran. Berupa surat yang menyatakan bahwa pemberi sponsor tersebut adalah nasabah bank terkait. Jika hanya rekening koran sponsor, maka bagian dokumen ini tidak valid.
74
  ---
75
  TEMPLATE OUTPUT JAWABAN DALAM FORMAT JSON:
76
  {
 
119
  ---
120
  TEMPLATE PESAN PEMBERITAHUAN (notice_msg):
121
  Berikut kami informasikan kekurangan dokumen yang *WAJIB* dibawa saat biometric visa schengen nanti ya :
122
+ 1. Pas Foto (3,5 x 4,5 cm) # ini wajib dicantumkan dan dibawa terlepas valid atau tidak
123
+ 2. Paspor Asli # ini wajib dicantumkan dan dibawa terlepas valid atau tidak
124
+ 3. Fotokopi paspor # ini wajib dicantumkan dan dibawa terlepas valid atau tidak
125
  4. ...
126
  5. ...
127
  # dan seterusnya dokumen dokumen lain yang belum lengkap dan perlu revisi berdasarkan hasil analisa
128
  ---
129
  TEMPLATE SUMMARY:
130
+ List Dokumen yang sudah valid: .... \n
131
+ List Dokumen yang invalid : ... \n
132
+ Analisis detail keseluruhan dari masing-masing dokumen: ... # sebutkan detail analisa masing-masing dokumen, apa yang menyebabkan dokumen-dokumen tersebut invalid
133
  ---
134
  '''
135
 
 
139
  model="gemini-2.0-flash-lite",
140
  contents=[prompt_with_date] + images,
141
  config=GenerateContentConfig(
142
+ temperature=0.1,
143
+ top_p=0.1,
144
  response_mime_type="application/json"
145
  )
146
  )
 
180
  prompt_3 = '''Anda adalah asisten yang membantu menamai file gambar dokumen.
181
  Tugas Anda adalah mengidentifikasi jenis dokumen pada gambar ini dan memberikan nama file yang sesuai.
182
  Jawaban Anda *harus* berupa *salah satu* nama file dari daftar berikut:
183
+ ['paspor', 'fotokopipaspor', 'pasfoto', 'kartukeluarga', 'buktinikah', 'bukticerai', 'ktp', 'buktikelahiran', 'suratsponsor', 'guaranteeletter', 'suratkerja', 'NIB' 'SIUP', 'suratjaminanstaff', 'suratsekolah', 'kontrakkerja', 'suratpensiun', 'rekeningkoran', 'slipgaji', 'suratreferensibank']
184
  Jawaban Anda *hanya* boleh berupa teks yang *persis sama* dengan salah satu item dalam daftar tersebut.
185
  Jangan tambahkan penjelasan, tanda kutip, titik, atau teks tambahan lainnya.
186
  Contoh:
 
281
  # Gradio UI update: add ".zip" to accepted file types
282
  with gr.Blocks() as demo:
283
  gr.Markdown("# 🧠 Noura the Document Checker ✈️ ")
284
+ gr.Markdown("Last Updated: June 10 2025")
285
 
286
  file_input = gr.File(
287
  label="Upload PDFs, Images or ZIP files (Multiple Supported)",