Keri sisuni

Kuidas mintbot failidega ümber käib

Kui saadad oma mintboti agendile foto, dokumendi, häälsõnumi, tabeli, ekraanipildi või PDF-i — kas Telegrami, veebipaneeli või API kaudu — siis fail ei läbi keelemudeli poole liikudes mintboti keskinfrastruktuuri. See maandub otse sinu enda agendi VPS-is, jääb sinna nii kauaks, kui sa soovid, ja mudel saab sealt LLM-i jaoks optimeeritud koopia.

See on tagasihoidlik disainiotsus suure mõjuga. Tasub see lahti seletada, sest just selles erineb mintbot enim tavalistest LLM-vestlustoodetest.

Voog otsast lõpuni

  1. Üleslaadimine jõuab agendi VPS-i. Foto Telegramist, veebipaneeli pukseeritud PDF, häälmemo, vestlusesse kleebitud ekraanipilt. Agendi kohalik API võtab baidid vastu, kontrollib faili magic-byte'e, et aru saada, mis fail see päriselt on (telefonid ja brauserid kirjeldavad faile üllatavalt sageli valesti), arvutab SHA-256-räsi ja kirjutab faili sinu agendi VPS-i kataloogi /var/lib/mintbot-agent/uploads/<shard>/<sha256>.<ext>. Kohalikku kataloogi tekib rida allika (telegram / panel / api), üleslaadija ID, MIME-tüübi ja algse failinimega.

  2. Originaal on püha. Sellest hetkest mintbot enam salvestatud faili ei muuda. Adapterid, mis faili LLM-ile ette valmistavad, väljastavad ainult töökoopiaid — väiksemaks tehtud JPEG-e, ümberkodeeritud teksti, eraldatud pisipilte. Baiditäpne originaal jääb kettale, kuni sina selle agendi failihaldurist kustutad. Pole keskset hoidlat, pole säilitusaja taimerit, pole agentidevahelist leket: iga agendi VPS teab ainult oma omaniku failidest.

  3. Mudel saab LLM-i jaoks optimeeritud versiooni. Kui agent otsustab faili mudelile näidata, valib väike dispatcher MIME-tüübi ja laiendi järgi õige adapteri, ja adapter väljastab sisuplokid, mida mudel lugeda saab:

    Adapter Kuidas töötleb Väljund
    Image JPG, PNG, WebP, GIF, HEIC (iPhone), AVIF ja kõik muu, mida Pillow avada oskab Pikem külg skaleeritud 1568 pikslile, ümberkodeeritud JPEG q85-na, mudeli konteksti base64-na
    PDF .pdf kuni 32 MB Base64-na natiivse PDF-ina (Anthropicu mudelid loevad otse)
    Text .md, .csv, .json, .yaml, lähtekood (.py, .js, .ts, .go, .rs, …), logid, diffid UTF-8 dekodeeritud (latin-1 varuks), tekstina kaasa pandud kuni piirini
    Audio .mp3, .ogg, .opus, .m4a, .wav, .flac Telegrami häälsõnumid transkribeerib bot juba samas käigus; otseüleslaadimised saavad praegu kohatäite — Whisper STT tuleb järgmises laines
    Video .mp4, .mov, .webm, .mkv Praegu kohatäide; ffmpeg-keyframe + heli transkriptsioon tulevad järgmises laines
    Office docs .docx, .xlsx, .pptx, .odt, .ods, .odp Praegu kohatäide; natiivne tekstieraldus (python-docx / openpyxl / python-pptx) tuleb järgmises laines
    Unknown Kõik muu Teksti kohatäide: "kasutaja saatis <mime> faili, see on kettal upload-ID-ga <id>" — nii saab mudel vähemalt arutleda selle üle, mis saadeti

    Iga teisendus salvestatakse originaali kõrvale vahemällu failina <sha256>.cache/v<N>.json, nii et teisel korral, kui mudel sama faili vajab, on laadimine hetkega. Adapteri versiooni tõstmine teeb vahemälu automaatselt kehtetuks.

  4. Mudeli konteksti ei lähe aeguvaid URL-e. Kui pilt või PDF läheb LLM-ile, lisatakse see base64-na samasse käiku — pole URL-i, mis võiks hiljem 404-ks muutuda, pole taimeriga allkirjastatud linki. Suuremate failide jaoks, kus mudel vajab ainult viidet, on URL sisemine https://agent<id>.<domain>/<panel_token>/api/local/uploads/<upload_id>/raw — see on kaitstud sinu enda agendi paneeli-tokeniga ja kehtib seni, kuni fail on kettal.

Miks see lööb tarbija-LLM-vestluse üle

Kui sa laadid ChatGPT-sse foto või Claude.ai-sse PDF-i, läheb see pakkuja hoidlasse, on seotud selle vestlusega ja säilitusaja otsustab pakkuja. Mõne aja pärast on fail kadunud, isegi kui sa näed veel seda vestlust, milles see oli. Pakkuja vahetamine tähendab nullist alustamist.

Üks tavaline Telegrami-boti lõks teeb erinevuse käegakatsutavaks. Telegram ise hoiab iga foto jaoks püsivat file_id, aga kolmanda osapoole botid, kes selle file_id järgi faili pärivad, saavad ajutise URL-i, mis aegub 24 tunni pärast. Vanad botid, mis viitavad eilsele fotole, annavad 404. mintbot lahendab selle ühe korraga: esimesel Telegrami faili nägemisel laadib ta baidid püsivalt kehtiva file_id kaudu uuesti alla ja kopeerib need sinu agendi arhiivi. Sellest hetkest on foto sinu oma.

Sellest disainist tuleneb kolm asja:

  • Failid kuuluvad sulle, mitte LLM-i pakkujale. Vahetad järgmisel kuul Claude'i GPT-5 vastu — su failiajalugu tuleb kaasa, puutumatuna, sest see asub sinu VPS-is, mitte pakkuja hoidlas.
  • Saad hiljem uuesti küsida. "Kolm kuud tagasi analüüsisid mu jaoks lepingut — kas võrdleksid seda uue mustandiga?" töötab, sest originaal on endiselt kettal. Tarbija-vestluses on vanem fail tavaliselt kadunud.
  • Mudel saab alati just selle versiooni, mida ta kõige paremini kasutada oskab. Visioonimudelid saavad skaleeritud JPEG-i, tekstilugejad saavad UTF-8, PDF-lugejad saavad natiivse PDF-i. Telefonid saavad HEIC-i üles laadida ja see lihtsalt töötab — Pillow HEIF-plugin laaditakse käivitusel ja magic-byte'ide kontroll parandab ka need juhud, kus telefon märgistab faili valesti application/octet-stream-iks.

Kus oma faile hallata

Agendi veebipaneeli ülaribal on failihaldur. See sirvib kogu agendi VPS-i ning üleslaadimiste arhiiv kataloogis /var/lib/mintbot-agent/uploads/ on see osa, mida sinu vestlused täidavad. Sealt saad:

  • Üleslaaditud faile ümber nimetada, kustutada või liigutada
  • Sirvida kuupäeva, allika või failinime järgi
  • Uusi faile pukseerida (tükkhaaval, toetab mitmegigabaidiseid faile)
  • Väikeseid tekstifaile kohapeal redigeerida

Faili kustutamine paneelist eemaldab nii faili enda kui ka kataloogirea. Agent ei saa seda enam mudelile näidata. See ongi see, mis teeb originaalist „sinu oma": ainult sinul on kustutamisõigus.

Lõpptulemus

Enamik LLM-vestlustooteid kohtleb sinu üleslaadimisi kui ajutist vestluse konteksti. mintbot kohtleb neid kui sinu andmeid — salvestatud sinu VPS-is, sinu omandis, nõudmisel ümber kujundatud just sellisesse vormi, mida mudel sel hetkel kõige paremini kasutada oskab. Suur osa mintboti huvitavamatest võimalustest tuginebki just sellele vundamendile.