mjpsm's picture
Update README.md
8723d13 verified
---
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