frendyrachman commited on
Commit
83a70ce
·
verified ·
1 Parent(s): 01d7f15

Update app.py

Browse files

Add formated notification output

Files changed (1) hide show
  1. app.py +31 -16
app.py CHANGED
@@ -11,20 +11,7 @@ import datetime
11
  from docx import Document
12
  import time
13
  import random
14
- from google.genai.types import (
15
- FunctionDeclaration,
16
- GenerateContentConfig,
17
- GoogleSearch,
18
- HarmBlockThreshold,
19
- HarmCategory,
20
- MediaResolution,
21
- Part,
22
- Retrieval,
23
- SafetySetting,
24
- Tool,
25
- ToolCodeExecution,
26
- VertexAISearch,
27
- )
28
 
29
 
30
  def extract_zip_and_collect_files(zip_file_path):
@@ -72,6 +59,7 @@ def gemini_analysis(images, tanggal_berangkat, tanggal_pulang, api_key):
72
  prompt = f'''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.
73
  Gunakan {tanggal_berangkat} sebagai tanggal berangkat, dan {tanggal_pulang} sebagai tanggal kepulangan.
74
  Pastikan data seperti nama, tanggal, tujuan dan lainnya konsisten antar dokumen. Semua jawaban dalam format text. Jangan tambahkan formating seperti * atau #
 
75
  ---
76
  DAFTAR SYARAT DOKUMEN YANG WAJIB DIPERIKSA:
77
  1. Paspor
@@ -127,6 +115,33 @@ def gemini_analysis(images, tanggal_berangkat, tanggal_pulang, api_key):
127
  - List dokumen yang sudah valid: ...
128
  - List dokumen yang tidak valid perlu pemeriksaan ulang: ...
129
  ---
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
130
  '''
131
 
132
  # Perform document analysis
@@ -168,7 +183,7 @@ def process_and_zip_valid_images(images, docs_list, api_key, zip_name="Valid_Doc
168
  client = genai.Client(api_key=api_key)
169
 
170
  # Prompt untuk klasifikasi nama file
171
- prompt = '''Anda adalah asisten yang membantu menamai file gambar dokumen.
172
  Tugas Anda adalah mengidentifikasi jenis dokumen pada gambar ini dan memberikan nama file yang sesuai.
173
  Jawaban Anda *harus* berupa *salah satu* nama file dari daftar berikut:
174
  ['paspor', 'pasfoto', 'kartukeluarga', 'buktinikah', 'KTP', 'suratkelahiran', 'suratsponsor', 'suratkerja', 'NIB', 'SIUP', 'suratjaminanstaff', 'suratsekolah', 'kontrakkerja', 'suratpensiun', 'rekeningkoran', 'slipgaji', 'other']
@@ -187,7 +202,7 @@ Output:
187
  for image in images:
188
  response = client.models.generate_content(
189
  model="gemini-2.0-flash",
190
- contents=[prompt, image],
191
  config=GenerateContentConfig(
192
  temperature=0.2,
193
  top_p=0.2
 
11
  from docx import Document
12
  import time
13
  import random
14
+ from google.genai.types import GenerateContentConfig
 
 
 
 
 
 
 
 
 
 
 
 
 
15
 
16
 
17
  def extract_zip_and_collect_files(zip_file_path):
 
59
  prompt = f'''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.
60
  Gunakan {tanggal_berangkat} sebagai tanggal berangkat, dan {tanggal_pulang} sebagai tanggal kepulangan.
61
  Pastikan data seperti nama, tanggal, tujuan dan lainnya konsisten antar dokumen. Semua jawaban dalam format text. Jangan tambahkan formating seperti * atau #
62
+ Terakhir, buat pesan pemberitahuan berdasarkan hasil analisa dokumen-dokumen dengan format dari contoh di bawah.
63
  ---
64
  DAFTAR SYARAT DOKUMEN YANG WAJIB DIPERIKSA:
65
  1. Paspor
 
115
  - List dokumen yang sudah valid: ...
116
  - List dokumen yang tidak valid perlu pemeriksaan ulang: ...
117
  ---
118
+ CONTOH PESAN PEMBERITAHUAN:
119
+ 🌻 *(WISH TRAVELERS) UPDATE DOKUMEN PENGAJUAN VISA* 🌻
120
+ Penting, mohon di baca sampai habis ya kak 🙏🏻
121
+ Ini adalah nomor sistem, tidak dapat membalas pesan. Apabila ada pertanyaan, silahkan hubungi mimin WT wa.me/6282123038484
122
+
123
+ Halo Kak selamat malam 😊
124
+
125
+ Berikut kami informasikan kekurangan dokumen yang *WAJIB* dibawa saat biometric visa schengen tanggal Tanggal Biometrik nanti ya :
126
+
127
+ ▪️ Kak Gina
128
+ 1. PASPOR ASLI (pastikan sudah ada halaman kolom tanda tangan pemegang paspor dan sudah ditandatangani)
129
+ 2. REVISI STATEMENT LETTER PENSIUN ASLI (ubah kalimat “holiday to west europe” menjadi “holiday to france and other schengen countries”)
130
+ 3. REVISI GUARANTEE LETTER ASLI (ubah kalimat “vacation to west european countries” menjadi “vacation to france and other schengen countries”)
131
+ 4. UPDATE REKENING KORAN PRIBADI 20 JUNI S/D 16 AGUSTUS 2023
132
+ 5. INFO EMAIL PRIBADI (mohon segera diinfokan ke nomor di atas untuk di isi di form pengajuan visa)
133
+
134
+ ▪️ Kak Hanisma (mohon segera konfirmasi, apakah biaya perjalanan dengan rekening sendiri atau disponsori anak ?). Mohon biaya perjalanan dalam setiap surat tidak berbeda beda 🙏🏻
135
+ 1. PASPOR ASLI (pastikan sudah ada halaman kolom tanda tangan pemegang paspor dan sudah ditandatangani)
136
+ 2. COPY PASPOR BARU HALAMAN BIODATA
137
+ 3. COPY E-KTP
138
+ 4. PASPHOTO 2 LEMBAR (sesuai format dan ketentuan, atau bisa juga foto di TLS saja sebelum biometrik)
139
+ 5. 💧REVISI STATEMENT LETTER PENSIUN ASLI (ubah kalimat “holiday to france” menjadi “holiday to france and other schengen countries”) + COPY EKTP/ PASPOR ANAK + REKENING KORAN ANAK 1 MEI S/D 16 AGUSTUS 2023 <- apabila di sponsori anak
140
+ 💧REVISI STATEMENT LETTER PENSIUN ASLI (ubah kalimat "holiday to france" menjadi "holiday to france and other schengen countries" dan kalimat "will be borne by my son" menjadi "will be borne by my self") <- apabila tidak di sponsori anak
141
+ 6. REVISI GUARANTEE LETTER ASLI (ubah kalimat "vacation to france" menjadi "vacation to france and other schengen countries", kalimat "kindly grant them" menjadi "kindly grant her", hapus setiap kata his dan he) <- apabila tidak disponsori anak
142
+ 7. UPDATE REKENING KORAN PRIBADI 1 JUNI S/D 16 AGUSTUS 2023
143
+ 8. INFO EMAIL PRIBADI (mohon segera diinfokan ke nomor di atas untuk di isi di form pengajuan visa)
144
+
145
  '''
146
 
147
  # Perform document analysis
 
183
  client = genai.Client(api_key=api_key)
184
 
185
  # Prompt untuk klasifikasi nama file
186
+ prompt_3 = '''Anda adalah asisten yang membantu menamai file gambar dokumen.
187
  Tugas Anda adalah mengidentifikasi jenis dokumen pada gambar ini dan memberikan nama file yang sesuai.
188
  Jawaban Anda *harus* berupa *salah satu* nama file dari daftar berikut:
189
  ['paspor', 'pasfoto', 'kartukeluarga', 'buktinikah', 'KTP', 'suratkelahiran', 'suratsponsor', 'suratkerja', 'NIB', 'SIUP', 'suratjaminanstaff', 'suratsekolah', 'kontrakkerja', 'suratpensiun', 'rekeningkoran', 'slipgaji', 'other']
 
202
  for image in images:
203
  response = client.models.generate_content(
204
  model="gemini-2.0-flash",
205
+ contents=[prompt_3, image],
206
  config=GenerateContentConfig(
207
  temperature=0.2,
208
  top_p=0.2