Lewati ke isi

Cara mintbot menangani berkas

Saat Anda mengirim foto, dokumen, pesan suara, spreadsheet, tangkapan layar, atau PDF ke agen mintbot Anda — lewat Telegram, panel web, atau API — berkas itu disimpan di VPS milik agen Anda sendiri dan tidak di tempat lain. Berkas tetap di sana selama yang Anda mau, dan LLM menerima salinan kerja yang disiapkan khusus untuknya.

Ini keputusan desain yang sederhana, tetapi dampaknya besar. Layak dijelaskan, karena di sinilah mintbot paling berbeda dari layanan chat AI untuk konsumen pada umumnya.

Diagram: berkas yang diunggah disimpan sebagai berkas asli di VPS agen Anda; adaptor yang dipilih menurut jenis berkas membuat salinan kerja untuk LLM
Berkas asli tetap utuh di VPS Anda — model hanya melihat salinan kerja yang dibuat untuknya.

Alurnya, dari awal sampai akhir

  1. Unggahan tiba di VPS agen. PDF yang Anda seret ke panel web langsung masuk ke VPS Anda. Foto atau berkas yang dikirim lewat Telegram diambil dari Telegram oleh bot mintbot lalu langsung diteruskan ke VPS Anda — hanya diteruskan, tidak pernah disimpan secara terpusat. API lokal agen memeriksa tanda tangan berkas (magic bytes) untuk mengetahui jenis berkas yang sebenarnya (ponsel dan peramban ternyata cukup sering salah memberi label), menghitung hash SHA-256-nya, lalu menulisnya ke /var/lib/mintbot-agent/uploads/<shard>/<sha256>.<ext>. Satu baris dicatat di katalog lokal berisi sumber (telegram / panel / api), ID pengunggah, tipe MIME, dan nama berkas asli. Jika Anda mengirim berkas yang sama dua kali, berkas itu tetap hanya disimpan sekali.

    Jika percakapan berlangsung di dalam sebuah proyek, agen juga menaruh salinannya di folder uploads/ proyek tersebut, agar bisa mengerjakan berkas itu berdampingan dengan isi proyek lainnya.

  2. Berkas asli tidak pernah diubah. Sejak titik ini, tidak ada apa pun di mintbot yang mengubah berkas yang tersimpan. Adaptor yang menyiapkannya untuk LLM hanya membuat salinan kerja — JPEG yang diperkecil, teks hasil dekode. Berkas asli, identik hingga ke tiap bita, tetap ada di disk sampai Anda menghapusnya. Tidak ada penyimpanan pusat, tidak ada batas waktu penyimpanan, tidak ada kebocoran antaragen: setiap VPS agen hanya mengenal berkas milik pemiliknya sendiri.

  3. Model mendapat versi yang dibuat untuknya. Saat agen menunjukkan berkas ke LLM, sebuah dispatcher kecil memilih adaptor yang tepat berdasarkan tipe MIME dan ekstensi:

    Adaptor Menangani Yang diterima model
    Gambar JPG, PNG, WebP, GIF, HEIC (iPhone), AVIF, TIFF, BMP Diperkecil hingga sisi panjangnya 1568 px, dienkode ulang sebagai JPEG q85, dan disertakan langsung dalam permintaan. Dekode berjalan di proses terpisah yang berumur pendek dengan batas memori yang disesuaikan dengan VPS Anda, sehingga foto berukuran raksasa tidak bisa memperlambat agen
    PDF .pdf hingga 32 MB Disertakan sebagai PDF asli — Claude membaca teks dan tata letaknya secara langsung. PDF yang lebih besar tetap di disk, dan agen mengambil teksnya sendiri (misalnya dengan pdftotext)
    Teks .txt, .md, .csv, .json, .yaml, .svg, kode sumber (.py, .js, .ts, .go, .rs, …), log, diff Didekode sebagai UTF-8 (latin-1 sebagai cadangan) dan disertakan hingga 500 KB; berkas yang lebih panjang dipotong di situ, berkas asli lengkapnya tetap di disk
    Audio .mp3, .ogg, .opus, .m4a, .wav, .flac, .aac Pesan suara dari Telegram dan mikrofon panel tiba dalam keadaan sudah ditranskripsi. Berkas audio belum ditranskripsi otomatis — agen menerima lokasinya beserta petunjuk, lalu mentranskripsinya saat Anda memintanya
    Video .mp4, .mov, .webm, .mkv, .avi Belum diekstrak otomatis. Jika Anda minta, agen memasang ffmpeg (setelah lebih dulu memberi tahu berapa ruang disk yang diperlukan) dan mengambil sendiri cuplikan gambar atau trek audionya
    Dokumen Office .docx, .xlsx, .pptx, format lama .doc / .xls / .ppt, .odt, .ods, .odp Belum diekstrak otomatis. Jika Anda minta, agen memasang pustaka pembaca kecil dan mengambil teksnya
    Tidak dikenal Selain itu Catatan berisi nama, jenis, ukuran, dan lokasi berkas di disk, ditambah beberapa bita pertamanya dalam heksadesimal — cukup bagi model untuk mengenali berkas itu dan membukanya dengan alat-alatnya bila tugas memerlukannya

    Setiap salinan kerja disimpan di cache di samping berkas asli sebagai <sha256>.cache/v<N>.json, sehingga saat model membutuhkan berkas itu lagi, berkas langsung termuat. Jika sebuah adaptor berubah, cache dibangun ulang dengan sendirinya.

  4. Tidak ada URL kedaluwarsa di konteks model. Saat gambar atau PDF dikirim ke LLM, berkas itu disertakan dalam permintaan yang sama — tidak ada URL yang nanti bisa menghasilkan 404, tidak ada tautan bertanda tangan dengan batas waktu. Jika model hanya memerlukan penunjuk, URL-nya adalah alamat internal https://agent<id>.<domain>/<panel_token>/api/local/uploads/<upload_id>/raw — dilindungi token panel agen Anda sendiri dan berlaku selama berkas masih ada di disk.

Mengapa ini lebih baik daripada chat AI konsumen

Saat Anda mengunggah foto ke ChatGPT atau PDF ke Claude.ai, berkas itu masuk ke penyimpanan milik penyedia, terikat pada percakapan tersebut, dan kebijakan retensi penyedialah yang menentukan kapan berkas itu hilang. Setelah waktu tertentu, berkas itu lenyap, meskipun Anda masih bisa melihat percakapan tempatnya berada. Pindah ke penyedia lain berarti mulai dari nol.

Satu jebakan umum pada bot Telegram membuat perbedaannya nyata. Telegram menyimpan file_id permanen untuk setiap foto, tetapi tautan unduhan yang didapat bot untuk foto itu hanya dijamin berlaku sekitar satu jam. Bot yang hanya menyimpan tautan itu akan memberi 404 untuk foto kemarin. mintbot menyalin berkas ke arsip agen Anda begitu berkas itu tiba — dan jika Anda membalas foto lama, mintbot mengambilnya lagi lewat file_id permanen. Sejak saat itu, foto itu milik Anda.

Tiga hal muncul dari desain ini:

  • Berkas adalah milik Anda, bukan milik penyedia LLM. Jika bulan depan Anda beralih dari Claude ke GPT, riwayat berkas Anda ikut pindah tanpa berubah, karena tersimpan di VPS Anda — bukan di penyimpanan vendor.
  • Anda bisa bertanya lagi nanti. “Tiga bulan lalu kamu menganalisis kontrak untuk saya — bisa bandingkan dengan draf baru ini?” tetap berjalan, karena berkas aslinya masih ada di disk. Di chat AI konsumen, berkas lama biasanya sudah hilang.
  • Model selalu mendapat versi yang paling bisa ia manfaatkan. Model penglihatan mendapat JPEG yang sudah diperkecil, pembaca teks mendapat UTF-8, pembaca PDF mendapat PDF asli. Ponsel bisa mengunggah HEIC dan semuanya langsung berjalan — dekoder gambar memuat plugin HEIF milik Pillow, dan pemeriksaan tanda tangan berkas menangkap ponsel yang salah melabeli unggahan sebagai application/octet-stream.

Tempat mengelola berkas Anda

Panel web agen memiliki pengelola berkas di Pengaturan → Pengelola berkas. Pengelola ini menampilkan seluruh VPS agen; arsip unggahan di /var/lib/mintbot-agent/uploads/ adalah bagian yang terisi oleh percakapan Anda. Dari sana Anda bisa:

  • Menjelajahi folder, serta mengunduh, mengganti nama, memindahkan, atau menghapus berkas
  • Membuat folder
  • Menyeret dan melepas berkas baru — diunggah per potongan, hingga 4 GB per berkas
  • Menyunting berkas teks kecil (hingga 1 MB) langsung di peramban

Batas ukuran: berkas yang Anda lampirkan di chat bisa berukuran hingga 500 MB; Telegram hanya mengizinkan bot mengambil berkas hingga 20 MB; Pengelola berkas menerima hingga 4 GB per berkas. Di luar itu, satu-satunya batas adalah disk Anda — mintbot selalu menyisakan sedikit ruang kosong agar server tetap berjalan. Jika disk penuh, agen akan memberi tahu Anda dan memberikan tautan langsung ke Pengelola berkas agar Anda bisa mengosongkan ruang — atau cukup minta agen menghapus berkas lama.

Menghapus berkas di Pengelola berkas akan menghilangkannya dari disk, dan agen tidak bisa lagi menunjukkannya ke LLM. Itulah yang membuat berkas asli benar-benar “milik Anda”: hanya Anda yang berhak menghapusnya.

Intinya

Sebagian besar produk chat AI memperlakukan unggahan Anda sebagai konteks percakapan sekali pakai. mintbot memperlakukannya sebagai data Anda — disimpan di VPS Anda, dimiliki oleh Anda, dan diubah sesuai kebutuhan ke bentuk apa pun yang diperlukan model saat itu. Banyak kemampuan mintbot yang lebih menarik dibangun di atas fondasi ini.