پرش به محتویات

چگونه mintbot فایل‌ها را مدیریت می‌کند

وقتی عکس، سند، یادداشت صوتی، صفحه گسترده، اسکرین شات یا PDF را برای عامل mintbot خود ارسال می کنید — از طریق Telegram، پنل وب یا API — فایل در مسیر رسیدن به مدل زبان از زیرساخت مرکزی mintbot عبور نمی‌کند. مستقیماً روی VPS خود عامل شما قرار می‌گیرد، تا زمانی که شما بخواهید در آنجا می‌ماند، و LLM یک کپی تبدیل‌شده دریافت می‌کند که برای آن بهینه‌سازی شده است.

این یک تصمیم طراحی آرام با پیامدهای بلند است. ارزش املای آن را دارد، زیرا یکی از مکان های بزرگ mintbot از گپ LLM مصرف کننده است.

جریان، پایان به پایان

  1. آپلود به عامل VPS می‌رسد. یک عکس از Telegram، یک PDF که به پنل وب کشیده شده است، یک یادداشت صوتی، یک اسکرین شات در چت جایگذاری شده است. API محلی عامل بایت‌ها را می‌پذیرد، هدر فایل را بررسی می‌کند تا بفهمد واقعاً چه نوع فایلی است (گوشی‌ها و مرورگرها اغلب به طرز شگفت‌انگیزی برچسب اشتباه می‌زنند)، آن را با SHA-256 هش می‌کند، و آن را در VPS خود عامل شما روی /var/lib/mintbot-agent/uploads/<shard>/<sha256>.<ext> می‌نویسد. یک ردیف با منبع (تلگرام / پنل / api)، شناسه آپلود کننده، نوع MIME و نام فایل اصلی به کاتالوگ محلی می‌رود.

  2. نسخه اصلی مقدس است. از این نقطه به بعد، هیچ چیزی در داخل mintbot فایل ذخیره شده را تغییر نمی‌دهد. آداپتورهایی که آن را برای LLM آماده می‌کنند، فقط کپی‌های کاری منتشر می‌کنند - JPEG‌های تغییر اندازه، متن رمزگذاری‌شده، تصاویر کوچک استخراج‌شده. بایت به بایت اصلی روی دیسک می‌ماند تا زمانی که آن را از طریق مدیر فایل عامل حذف کنید. هیچ سطل مرکزی، هیچ تایمر نگهداری، هیچ نشت بین عاملی وجود ندارد: هر عامل VPS فقط از بارگذاری‌های مالک خود اطلاع دارد.

  3. مدل یک نسخه بهینه شده LLM دریافت می‌کند. وقتی عامل تصمیم می‌گیرد فایل را به LLM نشان دهد، یک dispatcher کوچک آداپتور مناسب را بر اساس نوع و پسوند MIME انتخاب می‌کند و آداپتور بلوک‌های محتوایی را منتشر می‌کند که مدل می‌تواند بخواند:

    آداپتور دستگیره خروجی
    تصویر JPG، PNG، WebP، GIF، HEIC (iPhone)، AVIF، و هر چیز دیگری که Pillow می تواند باز شود تغییر اندازه به لبه بلند 1568 پیکسل، کدگذاری مجدد به صورت JPEG q85، با پایه 64 در متن مدل
    PDF .pdf ≤ 32 مگابایت Base64-inlined به عنوان PDF اصلی (مدل‌های Anthropic مستقیماً آن را می‌خوانند)
    متن .md، .csv، .json، .yaml، کد منبع (.py، .js، .ts، .go، .rs، …)، گزارش‌ها، تفاوت‌ها UTF-8 رمزگشایی شده (لاتین-1 بازگشتی)، خط‌بندی شده به صورت متن تا سقف اندازه
    صوت Telegram یادداشت‌های صوتی قبلاً توسط ربات رونویسی شده‌اند. آپلودهای مستقیم در حال حاضر دارای یک مکان نگهدار هستند، با Whisper STT در یک موج بعدی
    ویدیو .mp4، .mov، .webm، .mkv جای جای در حال حاضر؛ فریم کلیدی ffmpeg + استخراج رونوشت صوتی در یک موج پیگیری فرود می آید
    اسناد اداری جای جای در حال حاضر؛ استخراج متن بومی (python-docx / openpyxl / python-pptx) در یک موج پیگیری قرار می‌گیرد
    ناشناس هر چیز دیگری مکان‌نمای متن: "کاربر یک فایل <mime> را پیوست کرده است، در شناسه آپلود <id> روی دیسک حفظ می‌شود" — بنابراین مدل حداقل می‌تواند درباره آنچه ارسال شده است استدلال کند

    هر تبدیل در کنار نسخه اصلی در <sha256>.cache/v<N>.json ذخیره می‌شود، بنابراین بار دوم که مدل به آن فایل نیاز دارد، بارگذاری فوری است. ضربه زدن به نسخه آداپتور، حافظه پنهان را به طور خودکار باطل می‌کند.

  4. هیچ نشانی وب در حال انقضا در بافت مدل وجود ندارد. وقتی یک تصویر یا PDF به LLM می‌رود، در همان نوبت با پایه 64 خط‌بندی می‌شود - هیچ نشانی دستیارتی که بعداً بتواند 404 شود، هیچ پیوند امضا شده‌ای با تایمر وجود ندارد. برای فایل‌های بزرگ‌تر که مدل فقط به یک اشاره‌گر نیاز دارد، URL یک https://agent<id>.<domain>/<panel_token>/api/local/uploads/<upload_id>/raw داخلی است - که توسط نشانه پنل خود عامل شما دربندی شده است و تا زمانی که فایل روی دیسک قرار دارد معتبر است.

چرا این تجربه چت LLM مصرف کننده را شکست می‌دهد

وقتی عکسی را در ChatGPT یا PDF را در Claude.ai آپلود می‌کنید، فایل به فضای ذخیره‌سازی ارائه‌دهنده که به آن مکالمه پیوست می‌شود، می‌رود و خط‌مشی حفظ ارائه‌دهنده تصمیم می‌گیرد که چه زمانی ناپدید شود. پس از یک سن خاص، فایل از بین رفته است، حتی اگر هنوز بتوانید مکالمه ای را که در آن زندگی کرده است ببینید. تغییر از یک ارائه‌دهنده به ارائه‌دهنده دیگر به معنای شروع دوباره است.

یک نکتهٔ دردسرساز معمولی Telegram ربات کنتراست را بتن می‌کند. Telegram خود یک file_id دائمی برای هر عکس نگه می‌دارد، اما ربات‌های شخص ثالثی که Telegram file_id دریافت می‌کنند یک URL موقت دریافت می‌کنند که پس از ۲۴ ساعت منقضی می‌شود. ربات‌های قدیمی‌تر که به عکس دیروز ارجاع می‌دهند، یک فایل ۴۰۴ را ارائه می‌کنند. بایت ها را دوباره از طریق file_id معتبر ابدی واکشی می‌کند و آنها را در آرشیو عامل شما کپی می‌کند. از آن لحظه به بعد عکس مال شماست.

سه چیز از این طراحی به دست می آید:

  • فایل‌ها متعلق به شما هستند، نه به ارائه‌دهنده LLM. ماه بعد از Claude به GPT-5 تغییر دهید و سابقه فایل‌تان دست نخورده با شما همراه می‌شود، زیرا روی VPS شما قرار می‌گیرد - نه در سطل فروشنده.
  • می‌توانید بعداً دوباره بپرسید. "سه ماه پیش یک قرارداد را برای من تجزیه و تحلیل کردید - آیا می‌توانید آن را با این پیش‌نویس جدید مقایسه کنید؟" کار می‌کند، زیرا نسخه اصلی هنوز روی دیسک است. با چت مصرف‌کننده، فایل قدیمی‌تر معمولاً از بین می‌رود.
  • مدل همیشه نسخه‌ای را دریافت می‌کند که می‌تواند بهترین استفاده را داشته باشد. مدل‌های Vision JPEG تغییر اندازه می‌گیرند، متن‌خوان‌ها UTF-8 دریافت می‌کنند، PDF-خوان‌ها PDF اصلی را دریافت می‌کنند. گوشی‌ها می‌توانند HEIC را آپلود کنند و فقط کار می‌کند - پلاگین HEIF Pillow در هنگام راه‌اندازی بارگیری می‌شود، و اسنیفر بایت جادویی گوشی‌هایی را می‌گیرد که بارگذاری را اشتباه برچسب application/octet-stream می‌زنند.

کجا فایل‌های خود را مدیریت کنید

پنل وب عامل یک مدیر فایل در نوار بالا دارد. این عامل کامل VPS را مرور می‌کند و آرشیو آپلود در /var/lib/mintbot-agent/uploads/ قسمتی است که مکالمات شما پر شده است. از آنجا می‌توانید:

  • تغییر نام، حذف یا انتقال فایل‌های آپلود شده
  • آنها را بر اساس تاریخ، منبع یا نام فایل مرور کنید
  • بارگذاری‌های جدید را بکشید (تکه‌شده، بنابراین محدودیت اندازه ثابتی وجود ندارد - می‌توانید فایل‌های بسیار بزرگ را تا هر فضای خالی دیسک VPS خود آپلود کنید)
  • فایل‌های متنی کوچک را به صورت درون خطی ویرایش کنید

از آنجایی که آپلودها تکه تکه می‌شوند و مستقیماً روی VPS خودتان قرار می‌گیرند، تنها سقف اندازه فایل دیسک شما است — هیچ سرپوش mintbot تحمیلی وجود ندارد. تا زمانی که درایو جا داشته باشد، ویدیوهای چند گیگابایتی، مجموعه داده‌ها یا تصاویر دیسک به خوبی آپلود می‌شوند. اگر کم است، می‌توانید اندازه VPS را تغییر دهید یا فایل‌های قدیمی را از همین پنل پاک کنید.

با حذف یک فایل از پنل، هم فایل ذخیره‌شده و هم رکورد کاتالوگ آن حذف می‌شود. عامل دیگر نمی تواند آن را به LLM نشان دهد. این چیزی است که اصل را "مال شما" می‌کند: تنها کسی هستید که اختیار حذف آن را دارد.

خط پایین

اکثر محصولات گپ LLM با آپلودهای شما به عنوان زمینه مکالمه زودگذر برخورد می کنند. Mintbot آنها را به‌عنوان داده‌های شما در نظر می‌گیرد - ذخیره شده در VPS شما که متعلق به شماست، قالب‌بندی شده در صورت تقاضا به هر شکلی که مدل نیاز دارد تغییر کند. بیشتر قابلیت‌های جالب‌تر mintbot در بالای این پایه قرار دارد.