Spaces:
Sleeping
Sleeping
Update app.py
Browse filesAdd formated notification output
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 |
-
|
| 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=[
|
| 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
|