SCRIPTS · SENTIMENT SMOKE

manual_sentiment_check.py — Smoke دستی مدل احساس

← بازگشت به فهرست اسکریپت‌ها


مسیر فایل: scripts/manual_sentiment_check.py

مستند کامل زیرسیستم: Sentiment Analysis.


۱. کاراییش به زبان ساده

یک Smoke دستی و خارج از pytest است: مدل واقعی Cardiff XLM-R را لود می‌کند، چند جملهٔ نمونهٔ انگلیسی و فارسی (مثبت / منفی / خنثی‌گونه) را طبقه‌بندی می‌کند و برچسب‌ها را روی ترمینال چاپ می‌کند. هدف، یک چک سریع کیفیت/سلامت مدل است — بدون دیتابیس، بدون Kafka، بدون pipeline کامل.


۲. کجا در پروژه کلی استفاده می‌شود؟

  • زیرسیستم sentiment/: تأیید سریع اینکه classifier و وزن مدل روی ماشین فعلی درست لود می‌شوند.
  • بعد از تغییر مدل پیش‌فرض، ارتقای transformers، یا نصب تازهٔ venv احساس.
  • جایگزین تست خودکار نیست؛ سوئیت‌های sentiment-tests / integration مسیر رسمی تست‌اند. این اسکریپت برای چشم انسان و دیباگ سریع است.
  • در فهرست عملیاتی scripts/ عمداً سبک و مستقل نگه داشته شده تا بدون بالا آوردن کل استک قابل اجرا باشد.

۳. چیکارا می‌کند؟

  1. ریشهٔ مخزن را به sys.path اضافه می‌کند تا from sentiment... هنگام اجرای مستقیم اسکریپت کار کند.
  2. نام مدل پیش‌فرض را از sentiment.config.DEFAULT_MODEL_NAME می‌خواند.
  3. SentimentClassifier را با آن مدل می‌سازد.
  4. یک batch از نمونه‌های ثابت (en+/en-/en~ و fa+/fa-/fa~) را classify می‌کند.
  5. جدول سادهٔ tag / label / text را چاپ می‌کند و با exit 0 خارج می‌شود.

۴. تصمیمات معماری

  • خارج از pytest: لود مدل واقعی کند و سنگین است؛ قاطی کردن آن با unit testهای سریع، بازخورد developer را خراب می‌کند.
  • بدون DB: مرز مسئولیت روشن — فقط مدل و خروجی برچسب، نه صحت pipeline ذخیره‌سازی.
  • نمونه‌های دوزبانهٔ ثابت: پروژه reviews فارسی و انگلیسی دارد؛ smoke باید هر دو را لمس کند.
  • استفاده از API عمومی زیرسیستم (SentimentClassifier): همان مسیری که کد production استفاده می‌کند، نه یک مسیر موازی ad-hoc.
  • اجرا از ریشهٔ مخزن با venv فعال: وابستگی‌های سنگین sentiment فقط در محیط خودش معنی دارند.

۵. دستورات

# از ریشهٔ مخزن، با venv زیرسیستم sentiment فعال
python scripts/manual_sentiment_check.py

پیش‌نیاز: وابستگی‌های بستهٔ sentiment نصب و venv مربوطه فعال باشد. نیازی به Docker / Postgres / Kafka نیست.


← run_tests_in_docker.sh · فهرست اسکریپت‌ها