Skip to main content
OrbitPilot

به OrbitPilot بگویید که چیزی را به خاطر نسپرد — راستش، به ازای هر پیام (BL-422)

اطلاعیه زیر جعبه چت

یک خط کوچک اکنون زیر نویس OrbitPilot قرار دارد، در پنجره چت متصل و در چت صفحه کامل: "مکالمات به خاطر سپرده می‌شوند تا بهتر بتوانم به شما کمک کنم"، که به صفحه وضعیت حافظه شما لینک می‌زند. اگر طرح شما در حال حاضر شامل تاریخچه چت به عنوان منبع حافظه نیست، آن خط به صراحت می‌گوید — همان دلیل دقیقی که صفحه وضعیت حافظه و یادداشت صداقت در زمان درخواست خود OrbitPilot می‌دهد، هرگز هیچ شک و تردیدی درباره همان واقعیت نیست. مهمانان به جای آن دعوت‌نامه‌ای برای ایجاد یک حساب کاربری رایگان می‌بینند، زیرا هیچ چیزی از آن‌ها هنوز به خاطر سپرده نشده است.

"به خاطر نسپار" به ازای هر پیام

در کنار پیام‌های خودتان — همان سبک نشانه‌ها مانند Catch در پاسخ‌های OrbitPilot — یک آیکون چشم کوچک وجود دارد. آن را لمس کنید و آن پیام به عنوان به خاطر سپرده نشده علامت‌گذاری می‌شود. سه چیز در پی آن می‌آید و کلمات خود صاحب دلیل شکل هر سه مورد هستند: "اگر کاربر آن بخش را برای آن جلسه فعلی و فعال مستثنی کند... OrbitPilot برای آن جلسه و آن لحظه می‌تواند آن را ببیند زیرا باید بتواند مکالمه را با کاربر ادامه دهد. اما بعد، وقتی کاربر جلسه را می‌بندد، آن از حافظه مستثنی می‌شود."

  1. OrbitPilot به پیگیری مکالمه ادامه می‌دهد. مستثنی کردن یک پیام هرگز آن را از آنچه OrbitPilot برای باقی این چت می‌تواند ببیند، حذف نمی‌کند — پاسخ درست بعد از آن و هر چیزی که شما در همان جلسه بعدی بپرسید، هنوز حاوی کل رشته برای کار با آن است.
  2. هرگز به حافظه بلندمدت وارد نمی‌شود. در فرایند ساخت حافظه بعدی (به‌روزرسانی سریع یا بازسازی کامل)، آن پیام و پاسخ آن رد می‌شوند — آن‌ها هرگز به یک بخش حافظه بازگشتنی در هر مکالمه بعدی تبدیل نمی‌شوند. اگر یک ساخت قبلی آن تبادل را به یک بخش تبدیل کرده باشد، ساخت بعدی آن را حذف می‌کند.
  3. هیچ چیز پنهان یا حذف نمی‌شود. پیام دقیقاً در جایی که در تاریخچه مکالمه شما بود باقی می‌ماند، فقط به عنوان "به خاطر سپرده نشده" علامت‌گذاری می‌شود تا بتوانید وضعیت آن را به سرعت ببینید. دکمه پاک‌سازی وجود ندارد — تصمیم به پاک کردن یک پیام از تاریخچه قابل مشاهده خودتان تصمیمی بزرگتر و جداگانه است که صاحب عمداً از اینجا خارج کرده است.

تغییر نظر شما

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

این چگونه کار می‌کند — برای مدیران

هیچ چیزی برای پیکربندی برای تغییر حالت به ازای هر پیام وجود ندارد — این برای هر کاربر وارد شده در دسترس است؛ مهمانان هیچ تاریخچه چت پایداری برای مستثنی کردن چیزی ندارند. متن اطلاعیه مطابق با همان تنظیمات تخصیص منبع/طرح (orbitpilot.chat_history) است که در حال حاضر کنترل می‌کند که آیا تاریخچه چت اصلاً به ساخت حافظه یک کاربر کمک می‌کند یا نه — آن را برای یک طرح در صفحه تخصیص خاموش کنید و اطلاعیه به صراحت به کاربران آن طرح می‌گوید، درست با همان کلماتی که صفحه وضعیت حافظه قبلاً استفاده می‌کند.

این چگونه کار می‌کند — برای توسعه‌دهندگان

OrbitPilotMessage.not_remembered (BooleanField، مقدار پیش‌فرض False) فقط بر روی نوبت کاربر وجود دارد — پاسخ دستیار هرگز به‌طور جداگانه علامت‌گذاری نمی‌شود، زیرا pipeline/extract.py::_extract_chat_history هر پیام کاربر را با پیام دستیار که به آن پاسخ داده، جفت می‌کند و به سادگی ضبط آن جفت را زمانی که پرچم تنظیم شده باشد، رد می‌کند. pair_index همچنان برای یک جفت رد شده پیشرفت می‌کند، بنابراین هر جفت دیگری در همان مکالمه دقیقاً source_id خود را در سراسر ساخت‌ها حفظ می‌کند — مستثنی کردن یک نوبت هرگز مجبور به بازگنجاندن تمام نوبت‌های بعد نمی‌شود.

تغییر حالت پرچم هیچ چیز دیگری را نمی‌نویسد. حذف یک بخش که قبلاً ساخته شده به‌طور طبیعی در ساخت بعدی رخ می‌دهد، از طریق services.run_memory_build با معانی موجود جایگزینی: مسیر افزایشی (به‌روزرسانی سریع) هر OrbitPilotMemoryChunk ذخیره‌شده که کلید (source_key, source_id, chunk_index, content_hash) دیگر در استخراج جدید ظاهر نمی‌شود را حذف می‌کند و بازسازی کامل هر بخش را قبل از بازیابی از استخراج جدید حذف می‌کند — هردو قبلاً برای تغییرات محتوای عادی وجود داشتند و یک جفت چت مستثنی شده همان مسیر را با نیازی به هیچ منطق حذف جدید تحریک می‌کند.

مشاهده: orbitpilot.views.orbitpilot_toggle_remember، نام URL orbitpilot_toggle_remember (POST /orbitpilot/message/remember/, message_id + format=json اختیاری، همان شکل پاسخ دوگانه AJAX/plain-form به عنوان Catch). آیکون‌ها معانی موجود "مشاهده"/"پنهان" را دوباره استفاده می‌کنند (bi-eye / bi-eye-slash) — همان جفت templates/blink/_memory_status.html که قبلاً برای "هوش مصنوعی این را می‌خواند" در برابر "مستثنی شده از حافظه هوش مصنوعی" بر روی یک Blink استفاده می‌شود — به جای ایجاد یک معنای آیکون جدید برای همان ایده. برابری توسط orbitpilot/test_bl422_do_not_remember.py تنظیم شده است.

متن اطلاعیه عمداً ارزان‌تر از آنچه به نظر می‌رسد است و این یک بازگشت واقعی بود که قبل از ارسال آن شناسایی شد. نسخه اول orbitpilot.services.get_chat_memory_notice(user) به resolve_build_sources فراخوانی شد — همین عملکرد صفحه وضعیت حافظه BL-428 و یادداشت صداقت به هنگام درخواست BL-405 استفاده می‌شود — برای توافق کامل با آن صفحات. این تست را شکست داد plans.test_capability_cache.CapabilityCacheSavesQueriesTests: resolve_build_sources دو بار داخلیاً plans.services.get_plan_for_user را فراخوانی می‌کند (یک بار مستقیم، بار دیگر در داخل get_effective_limits) و هیچ‌کدام از این فراخوانی‌ها در کش درخواست plans.capabilities متصل نیستند — یک شکاف مستند و عمدی (یک یادداشت درخواستی در آنجا یک بار امتحان شده و به دلیل خطر کهنگی از دروازه برگشت داده شد). پرداخت این هزینه یک بار در هر درخواست قبلاً پذیرفته شده بود؛ پرداخت آن یک بار در هر بار بارگذاری صفحه، برای هر کاربر وارد شده، در هر صفحه، هزینه‌ای به مراتب بزرگتر است که این ویجت نباید به آن اضافه کند. بنابراین نسخه ارسال شده فقط تخصیص طرح خود تاریخچه چت را بررسی می‌کند — سوئیچ In-RAG مدیر و ردیف تخصیص منبع/طرح آن — از طریق plans.capabilities.get_user_plan خوانده می‌شود (از هر چیزی که چک‌های گیت صفحه خود به‌طور قبلاً کش شده است، استفاده می‌کند؛ در یک درخواست خارج از آن یک پرسش ساده، مثلاً تست‌ها، کاهش می‌یابد). این نیست تجمیع ظرفیت کلی طرح را بازتولید می‌کند (included_sources) — یک منبع می‌تواند در اینجا "تخصیص‌یافته" باشد و هنوز هم از یک ساخت واقعی به دلیل ظرفیت حذف شود (به یافته Q1 SU-101 زیر مراجعه کنید) — که دقیقاً به همین دلیل است که اطلاعیه همیشه کنار یک لینک به صفحه وضعیت حافظه در سطح ظرفیت بزرگتر می‌نشیند، صفحه‌ای که شما به‌طور دلخواه به آن مراجعه می‌کنید، جایی که پرداخت هر هزینه واقعی یک‌بار معامله درست است. از طریق یک chat_memory_notice تگ الگو در orbitpilot/templatetags/orbitpilot_extras.py به الگو متصل شده است (این ویجت هیچ نمای اختصاصی برای انتقال زمینه هر کاربر ندارد).

یادداشتی در مورد مورد تأیید SU-101 Q1

ردیف پرسیده بود که آیا orbitpilot.chat_history در واقع با نیت "آن را روشن نگه‌دار" صاحب پوشش داده شده است. بررسی شد، دو یافته: تخصیص طرح خود تاریخچه چت در هر طرحی که هیچ ردیف مدیریتی وجود نداشته باشد در دسترس است (مقدار پیش‌فرض default_visible=True در ثبت‌نام است) — چیزی برای اعطا وجود ندارد. اما یک سازوکار جداگانه همچنان می‌تواند آن را مستثنی کند: included_sources هر طرح (ظرفیت کلی منبع دانش) به طور پیش‌فرض 3 است و چندین منبع پیش‌فرض قابل مشاهده دیگر در ثبت‌نام قبل از تاریخچه چت در رتبه‌بندی قرار می‌گیرند — بنابراین در هر طرحی که صاحب به‌طور شخصی آن را معرفی نکرده، resolve_build_sources ظرفیت را قبل از رسیدن به تاریخچه چت پر می‌کند. این داده‌های PLAN فعال مدیریتی است، نه یک اصلاح خاص تاریخچه چت و در حال حاضر موضوع یک بررسی جداگانه است (BL-419 / SU-106) — بنابراین در اینجا گزارشی شده، نه تعمیر شده است. به عنوان یک نگهبان بازگشت در orbitpilot/test_bl422_do_not_remember.py SU101Q1SourceCoverageTests, SU101Q1SourceCapFindingTests قفل شده است.

صفحات مرتبط

Docshub: "وضعیت حافظه — یک صفحه، یک حقیقت" (BL-428)، "Catch — تبدیل یک پاسخ OrbitPilot به Blink" (BL-421، الگوی خوشه آیکونی که این دوباره استفاده می‌کند).docs/orbitpilot/TASKS.md.

This guide was translated automatically. Read the English original.

🪐 OrbitPilot

Create a free account and I'll remember your conversations — sign up

🧠 Memory status