رضا.
بازگشت به پروژه‌ها

سامانه جستجوی صورتجلسات

Parallel Processing Python-docx Data Cache
گزارش صورتجلسات

معرفی و هدف اصلی

سامانه دسکتاپ بسیار سریع برای جستجوی آنی در متن کامل صدها صورتجلسه آرشیو شده هیئت‌مدیره، همراه با رابط کاربری Dark Elevation.

پشته فناوری

پایتون، pywebview، python-docx برای استخراج متن، و ThreadPoolExecutor برای پردازش موازی و چندنخی.

منطق فنی و قابلیت‌های کلیدی

  • همگام‌سازی افزایشی و موازی (Incremental Scan): سیستم به جای بازخوانی تمام فایل‌ها، تنها فایل‌هایی که زمان ویرایش (mtime) آن‌ها تغییر کرده است را شناسایی می‌کند. این فایل‌ها با استفاده از پردازش موازی (۶ هسته پردازشی) استخراج می‌شوند که سرعت بروزرسانی را به طرز چشمگیری افزایش می‌دهد.
  • ذخیره‌سازی محلی اتمی (Atomic Database): داده‌ها در یک کش محلی (master_text_cache.json) ذخیره می‌شوند. سیستم از روش ذخیره‌سازی اتمی استفاده می‌کند (ساخت فایل موقت و جایگزینی آن) تا در صورت قطع برق یا بسته شدن ناگهانی برنامه، هیچ داده‌ای آسیب نبیند.
  • پالایش هوشمند متون (Smart Text Cleaning): نرم‌افزار در زمان خواندن فایل‌های Word، به طور خودکار خطوط کوتاهی که شامل عبارات کلیدی امضاها (مانند "رئیس هیات مدیره"، "مدیرعامل"، "ناظر جلسه") هستند را شناسایی و حذف می‌کند تا نتایج جستجو دقیق‌تر و پاکیزه‌تر باشند.
  • مرتب‌سازی معنایی (Semantic Sorting): سال‌های عددی (مثلاً ۱۴۰۴، ۱۴۰۳) استخراج شده و به صورت نزولی مرتب می‌شوند. سیستم به قدری هوشمند است که پوشه‌های دارای عباراتی مثل "قبل" یا "قدیم" را تشخیص داده و به درستی در انتهای لیست نمایش می‌دهد.
  • صدور گزارش مستقل: این سامانه توانایی اکسپورت کامل داده‌ها به صورت یک فایل داشبورد dashboard.html یکپارچه (بدون نیاز به بک‌اند) و یا فایل متنی master.md را دارد.

جریان کار (Pipeline)

graph LR A[تشخیص فایل‌های تغییر یافته] --> B[استخراج موازی متن و پاک‌سازی هوشمند] B --> C[بروزرسانی ایمن پایگاه داده محلی] C --> D[جستجوی آنی و استخراج گزارش]