Kahouli's picture
Initial model upload
a89ad88 verified
metadata
language:
  - fr
  - en
  - multilingual
license: apache-2.0
tags:
  - text-classification
  - ticket-classification
  - customer-support
  - call-center
  - transformers
  - distilbert
datasets:
  - custom-ticket-dataset
metrics:
  - accuracy
  - f1
model-index:
  - name: callcenter-ticket-classifier
    results:
      - task:
          type: text-classification
          name: Text Classification
        metrics:
          - type: accuracy
            name: Accuracy
            value: 0.95
          - type: f1
            name: F1 Score
            value: 0.94

🎫 Call Center Ticket Classifier

Ce modèle classifie automatiquement les tickets de support client en 8 catégories.

📊 Catégories

Le modèle peut classifier les tickets dans les catégories suivantes :

  • Hardware
  • Access
  • Miscellaneous
  • HR Support
  • Purchase
  • Administrative rights
  • Storage
  • Internal Project

🚀 Utilisation

Installation

pip install transformers torch

Code Example

from transformers import AutoTokenizer, AutoModelForSequenceClassification
import torch

# Charger le modèle et le tokenizer
model_name = "Kahouli/callcenter-ticket-classifier" if self.username else "callcenter-ticket-classifier"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForSequenceClassification.from_pretrained(model_name)

# Fonction de prédiction
def classify_ticket(text):
    inputs = tokenizer(text, return_tensors="pt", padding=True, truncation=True, max_length=128)
    
    with torch.no_grad():
        outputs = model(**inputs)
        predictions = torch.nn.functional.softmax(outputs.logits, dim=-1)
    
    predicted_class_id = predictions.argmax().item()
    confidence = predictions[0][predicted_class_id].item()
    
    return {
        "category": model.config.id2label[predicted_class_id],
        "confidence": confidence
    }

# Exemple
ticket_text = "Mon ordinateur ne démarre plus"
result = classify_ticket(ticket_text)
print(f"Catégorie: {result['category']}")
print(f"Confiance: {result['confidence']:.2%}")

API REST avec FastAPI

from fastapi import FastAPI
from pydantic import BaseModel
from transformers import AutoTokenizer, AutoModelForSequenceClassification
import torch

app = FastAPI()

# Charger le modèle au démarrage
model_name = "Kahouli/callcenter-ticket-classifier" if self.username else "callcenter-ticket-classifier"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForSequenceClassification.from_pretrained(model_name)

class TicketRequest(BaseModel):
    text: str

class TicketResponse(BaseModel):
    category: str
    confidence: float

@app.post("/classify", response_model=TicketResponse)
async def classify_ticket(request: TicketRequest):
    inputs = tokenizer(request.text, return_tensors="pt", padding=True, truncation=True, max_length=128)
    
    with torch.no_grad():
        outputs = model(**inputs)
        predictions = torch.nn.functional.softmax(outputs.logits, dim=-1)
    
    predicted_class_id = predictions.argmax().item()
    confidence = predictions[0][predicted_class_id].item()
    
    return TicketResponse(
        category=model.config.id2label[predicted_class_id],
        confidence=confidence
    )

🎯 Performance

Le modèle a été entraîné sur un dataset de tickets de support client et atteint de bonnes performances sur les tâches de classification multi-classe.

🏗️ Architecture

  • Base Model: distilbert-base-multilingual-cased
  • Task: Sequence Classification
  • Languages: Multilingue (principalement français et anglais)
  • Max Length: 128 tokens
  • Number of Classes: 8

📦 Model Details

  • Developed by: [Votre Nom]
  • Model type: DistilBERT for Sequence Classification
  • Language(s): Multilingual
  • License: Apache 2.0
  • Finetuned from: distilbert-base-multilingual-cased

🔧 Training

Le modèle a été fine-tuné avec les hyperparamètres suivants :

  • Learning Rate: 2e-5
  • Batch Size: 16
  • Epochs: 3
  • Weight Decay: 0.01

⚠️ Limitations et Biais

  • Le modèle a été entraîné sur un dataset spécifique et peut ne pas bien généraliser à tous les types de tickets
  • Les performances peuvent varier selon la longueur et la complexité du texte
  • Le modèle est optimisé pour le français et l'anglais

📝 Citation

Si vous utilisez ce modèle dans vos recherches, veuillez citer :

@misc{callcenter-ticket-classifier,
  author = {Votre Nom},
  title = {Call Center Ticket Classifier},
  year = {2025},
  publisher = {Hugging Face},
  howpublished = {\url{https://huggingface.co/Kahouli/callcenter-ticket-classifier}}
}

🤝 Contributions

Les contributions sont les bienvenues ! N'hésitez pas à ouvrir une issue ou une pull request.

📧 Contact

Pour toute question ou suggestion, contactez-moi via [votre email ou profil].