--- license: apache-2.0 library_name: xgboost tags: - text-classification - xgboost - embeddings - sentence-transformers - slack - checkin-detection pipeline_tag: text-classification model_name: "Check-In or Not Classifier" framework: xgboost datasets: - custom language: - en inference: parameters: threshold: 0.5 --- ## 🧠 Check-In vs. Not Check-In Classifier This model is a binary text classifier that determines whether a Slack message is a CHECKIN or NOT_CHECKIN. It was trained using a balanced dataset of real Slack check-ins and synthetic non-check-in examples. The model uses sentence-transformer embeddings combined with an XGBoost classifier. ## 🚀 Use Case This model is designed for automation systems such as Slack bots, n8n workflows, CIC MCP agents, and productivity tracking tools. It detects whether a user message represents real progress or general conversation. Example predictions: "Today I refined the workflow automation" → CHECKIN "Does anyone have the Zoom link?" → NOT_CHECKIN ## 📊 Training Details Dataset size: 4,277 total examples Labels: - **CHECKIN:** 2,139 real Slack check-ins - **NOT_CHECKIN:** 2,139 synthetic non-check-in samples Training achieved **100% accuracy** due to the dataset being clean, consistent, and linearly separable. ## 📁 Repository Structure ``` checkin_or_not_classifier.json README.md ``` ## 🔧 Inference Example ```python from sentence_transformers import SentenceTransformer import xgboost as xgb import numpy as np from huggingface_hub import hf_hub_download # ---------------------------------------------------- # 1. Load the embedding model (must be downloaded locally) # ---------------------------------------------------- # Users must install: pip install sentence-transformers embedder = SentenceTransformer("all-MiniLM-L6-v2") # ---------------------------------------------------- # 2. Download your XGBoost model from HuggingFace Hub # ---------------------------------------------------- model_path = hf_hub_download( repo_id="mjpsm/checkin_or_not_model", filename="checkin_or_not_classifier.json" ) # Load the model booster = xgb.Booster() booster.load_model(model_path) # ---------------------------------------------------- # 3. Prediction function # ---------------------------------------------------- def predict(text: str): emb = embedder.encode([text]) dmatrix = xgb.DMatrix(emb) score = float(booster.predict(dmatrix)[0]) label = "CHECKIN" if score >= 0.5 else "NOT_CHECKIN" return {"label": label, "score": score} # ---------------------------------------------------- # 4. Example usage # ---------------------------------------------------- example = "Today I worked on improving the automation workflow." result = predict(example) print(result) ``` ## 📘 Intended Use This model is intended for binary classification of short messages. It is not intended for sentiment analysis, toxicity detection, or general-purpose NLP tasks. ## 📜 License Apache-2.0 ## ✨ Author Mazamesso “Mazzy” Meba University of North Florida AI Automation & Engineering