Sådan håndterer mintbot filer¶
Når du sender et foto, et dokument, en talebesked, et regneark, et skærmbillede eller en PDF til din mintbot-agent — via Telegram, webpanelet eller API'et — bliver filen gemt på din agents egen VPS og ingen andre steder. Den bliver liggende, så længe du vil, og LLM'en får en arbejdskopi, der er gjort klar til den.
Det er en stille designbeslutning med store konsekvenser. Den er værd at forklare, for det er et af de steder, hvor mintbot adskiller sig mest fra almindelige LLM-chattjenester.
Forløbet fra start til slut¶
-
Uploaden når frem til agentens VPS. En PDF, du trækker ind i webpanelet, går direkte til din VPS. Et foto eller en fil, du sender i Telegram, henter mintbot-botten fra Telegram og sender straks videre til din VPS — den bliver kun sendt igennem og aldrig gemt centralt. Agentens lokale API tjekker filens magic bytes for at finde ud af, hvad det reelt er for en fil (telefoner og browsere mærker overraskende ofte filer forkert), beregner en SHA-256-hash og skriver den til
/var/lib/mintbot-agent/uploads/<shard>/<sha256>.<ext>. En række i et lokalt katalog registrerer kilden (telegram / panel / api), uploaderens ID, MIME-typen og det oprindelige filnavn. Sender du den samme fil to gange, bliver den stadig kun gemt én gang.Hvis samtalen foregår i et projekt, lægger agenten også en kopi i projektets mappe
uploads/, så den kan arbejde med filen lige ved siden af resten af projektet. -
Originalen er ukrænkelig. Fra nu af ændrer intet i mintbot den gemte fil. De adaptere, der gør den klar til LLM'en, laver kun arbejdskopier — nedskalerede JPEG-filer, afkodet tekst. Den byte-for-byte-identiske original bliver liggende på disken, indtil du sletter den. Der er ingen central lagerplads, ingen opbevaringstimer og ingen lækage mellem agenter: hver agents VPS kender kun sin egen ejers filer.
-
Modellen får en version, der er lavet til den. Når agenten viser filen til LLM'en, vælger en lille dispatcher den rette adapter ud fra MIME-type og filendelse:
Adapter Håndterer Hvad modellen får Billede JPG, PNG, WebP, GIF, HEIC (iPhone), AVIF, TIFF, BMP Nedskaleret til 1568 px på den lange led, genkodet som JPEG q85 og indsat direkte i forespørgslen. Afkodningen kører i en separat, kortlivet proces med et hukommelsesbudget tilpasset din VPS, så et kæmpe foto ikke kan gøre agenten langsom PDF .pdfop til 32 MBIndsat som ægte PDF — Claude læser tekst og layout direkte. En større PDF bliver på disken, og agenten trækker selv teksten ud (fx med pdftotext)Tekst .txt,.md,.csv,.json,.yaml,.svg, kildekode (.py,.js,.ts,.go,.rs, …), logfiler, diffsAfkodet som UTF-8 (latin-1 som reserve) og indsat op til 500 KB; en længere fil skæres af dér, og hele originalen bliver på disken Lyd .mp3,.ogg,.opus,.m4a,.wav,.flac,.aacTalebeskeder fra Telegram og panelets mikrofon kommer allerede transskriberet. En lydfil bliver endnu ikke transskriberet automatisk — agenten får dens placering og instruktioner og transskriberer den, når du beder om det Video .mp4,.mov,.webm,.mkv,.aviUdtrækkes endnu ikke automatisk. Når du beder om det, installerer agenten ffmpeg(og fortæller først, hvor meget diskplads det kræver) og trækker selv billeder eller lydsporet udOffice-dokumenter .docx,.xlsx,.pptx, ældre.doc/.xls/.ppt,.odt,.ods,.odpUdtrækkes endnu ikke automatisk. Når du beder om det, installerer agenten et lille læsebibliotek og trækker teksten ud Ukendt Alt andet En note med filens navn, type, størrelse og placering på disken samt dens første bytes i hex — nok til, at modellen kan genkende filen og åbne den med sine værktøjer, når opgaven kræver det Hver arbejdskopi caches ved siden af originalen som
<sha256>.cache/v<N>.json, så næste gang modellen skal bruge filen, er den klar med det samme. Når en adapter ændres, genopbygges cachen af sig selv. -
Ingen udløbende URL'er i modellens kontekst. Når et billede eller en PDF sendes til LLM'en, indsættes det i samme forespørgsel — ingen URL, der senere kan give 404, intet signeret link med udløbstid. Hvor modellen kun har brug for en henvisning, er URL'en en intern
https://agent<id>.<domain>/<panel_token>/api/local/uploads/<upload_id>/raw— beskyttet af din agents eget paneltoken og gyldig, så længe filen ligger på disken.
Hvorfor det slår den almindelige LLM-chat¶
Når du uploader et foto til ChatGPT eller en PDF til Claude.ai, havner filen i udbyderens lager, knyttet til den samtale, og udbyderens opbevaringspolitik afgør, hvornår den forsvinder. Efter en vis tid er filen væk, selv om du stadig kan se samtalen, den hørte til. Skifter du udbyder, starter du forfra.
En almindelig faldgrube for Telegram-bots gør forskellen tydelig. Telegram gemmer et permanent file_id for hvert foto, men downloadlinket, som en bot får til det, er kun garanteret gyldigt i omkring en time. Bots, der kun gemmer det link, giver 404 på gårsdagens foto. mintbot kopierer filens bytes til din agents arkiv i samme øjeblik, filen ankommer — og svarer du på et ældre foto, henter den det igen via det permanente file_id. Derefter er fotoet dit.
Tre ting følger af dette design:
- Filerne tilhører dig, ikke LLM-udbyderen. Skifter du fra Claude til GPT næste måned, følger din filhistorik med, urørt, fordi den ligger på din VPS — ikke i en udbyders lager.
- Du kan spørge igen senere. »For tre måneder siden analyserede du en kontrakt for mig — kan du sammenligne den med dette nye udkast?« virker, fordi originalen stadig ligger på disken. I almindelig chat er den ældre fil som regel væk.
- Modellen får altid den version, den bedst kan bruge. Billedmodeller får den nedskalerede JPEG, tekstlæsere får UTF-8, PDF-læsere får ægte PDF. Telefoner kan uploade HEIC, og det virker bare — billeddekoderen indlæser Pillows HEIF-plugin, og magic bytes-tjekket fanger telefoner, der fejlagtigt mærker uploaden som
application/octet-stream.
Hvor du administrerer dine filer¶
Agentens webpanel har en filhåndtering under Indstillinger → Filhåndtering. Den viser hele agentens VPS; uploadarkivet i /var/lib/mintbot-agent/uploads/ er den del, dine samtaler fylder op. Derfra kan du:
- Gennemse mapper og downloade, omdøbe, flytte eller slette filer
- Oprette mapper
- Trække nye filer ind — de uploades i bidder, op til 4 GB pr. fil
- Redigere små tekstfiler (op til 1 MB) direkte i browseren
Størrelsesgrænser: en fil, du vedhæfter i chatten, må være op til 500 MB; Telegram lader kun bots hente filer på op til 20 MB; Filhåndtering tager op til 4 GB pr. fil. Ud over det er den eneste grænse din disk — mintbot lader altid lidt plads være fri, så serveren bliver ved med at køre. Hvis disken bliver fuld, siger agenten det og linker direkte til Filhåndtering, så du kan rydde op — eller du kan bare bede agenten om at slette gamle filer.
Sletter du en fil i Filhåndtering, fjernes den fra disken, og agenten kan ikke længere vise den til LLM'en. Det er det, der gør originalen til »din«: du er den eneste, der kan slette den.
Kort sagt¶
De fleste LLM-chatprodukter behandler dine uploads som engangskontekst i en samtale. mintbot behandler dem som dine data — gemt på din VPS, ejet af dig og omformet efter behov til lige præcis den form, modellen har brug for i øjeblikket. Mange af mintbots mere interessante funktioner bygger på dette fundament.