| | --- |
| | 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 |
| | |
| | |
| | |
| | |