Skip to content

Repository files navigation

HelpBot LLM - Intelligent Assistant for Technical Support Center

Project Overview

This project aims to develop an intelligent AI assistant, HelpBot LLM, to streamline technical support operations for a Tunisian SME. The assistant will automate responses to frequently asked questions, provide personalized solutions from existing documentation, and assist human support agents in formulating better responses.

Key Features

  • 24/7 AI Assistant: Responds to simple questions in natural language.
  • PDF Documentation Search: Reads and understands internal user guides.
  • "Support Copilot" Mode: Suggests responses to human agents within the ticketing interface.
  • Confidential Data Handling: Local hosting to ensure data privacy (no direct OpenAI API usage).

Technical Solution

LLM & RAG

  • Utilization of GPT-4 or Llama 3 with RAG (Retrieval-Augmented Generation).
  • Integration via LangChain or LlamaIndex.
  • Indexing of internal documents (PDF, Word, etc.).

Backend (FastAPI)

  • FastAPI API for chatbot interaction.
  • Upload functionality for new documents (user manuals, FAQ guides, etc.).

Frontend (Streamlit)

  • Web Interface with Streamlit:
    • AI chat zone
    • Document upload
    • Question history

RAG Pipeline

  • Vectorization with SentenceTransformer.
  • Vector storage in FAISS or Chroma.
  • LLM calls (via local or cloud API based on constraints).

Project Roadmap

Phase Tasks Duration
Study FAQ collection + documentation + model testing 2 days
RAG Indexing + internal search engine 3 days
Chatbot LLM integration + RAG logic 3 days
UI Streamlit or Web Interface + usage dashboard 2 days
Client Demo Documentation + video + GitHub repository 2 days

Deliverables

  • helpbot_ai/ (complete code)
  • mock-client-brief.md (simulated brief)
  • README.md (objectives + tech + demo)
  • Demo video (explaining the project on camera or screencast)

Installation et Démarrage

Installation Rapide

# Cloner le projet
git clone <repository-url>
cd helpbot_ai

# Installation des dépendances
cd backend && pip install -r requirements.txt
cd ../frontend && pip install -r requirements.txt

# Démarrage
# Terminal 1: Backend
cd backend && uvicorn main:app --reload --host 0.0.0.0 --port 8000

# Terminal 2: Frontend  
cd frontend && streamlit run app.py --server.address 0.0.0.0 --server.port 8501

Avec Docker

docker-compose up --build

Architecture Technique

Backend (FastAPI)

  • API REST pour les interactions avec le chatbot
  • Pipeline RAG avec LangChain
  • Vectorisation avec SentenceTransformer
  • Stockage vectoriel avec Chroma
  • Support LLM Ollama/OpenAI

Frontend (Streamlit)

  • Interface chat intuitive
  • Upload de documents PDF
  • Historique des conversations
  • Statistiques d'utilisation

Pipeline RAG

  1. Ingestion: Chargement et découpage des documents PDF
  2. Vectorisation: Transformation en embeddings avec SentenceTransformer
  3. Indexation: Stockage dans Chroma DB
  4. Recherche: Récupération des passages pertinents
  5. Génération: Réponse contextuelle via LLM

Structure du Projet

helpbot_ai/
├── backend/
│   ├── main.py                 # API FastAPI
│   ├── rag_pipeline/
│   │   ├── __init__.py
│   │   └── pipeline.py         # Logique RAG
│   ├── docs/                   # Documents uploadés
│   ├── requirements.txt
│   └── Dockerfile
├── frontend/
│   ├── app.py                  # Interface Streamlit
│   ├── requirements.txt
│   └── Dockerfile
├── README.md
├── INSTALLATION.md
├── mock-client-brief.md
├── docker-compose.yml
└── .env.example

API Endpoints

POST /chat

Envoie une question au chatbot et reçoit une réponse.

Request:

{
  "query": "Comment configurer le logiciel?",
  "history": [["user", "Bonjour"], ["assistant", "Bonjour! Comment puis-je vous aider?"]]
}

Response:

{
  "response": "Pour configurer le logiciel, suivez ces étapes..."
}

POST /upload_document

Télécharge et indexe un nouveau document PDF.

Request: Multipart form avec fichier PDF

Response:

{
  "message": "Document filename.pdf uploaded and processed successfully."
}

GET /health

Vérification de l'état de l'API.

Response:

{
  "status": "ok"
}

Configuration

Variables d'Environnement

Copiez .env.example vers .env et configurez:

LLM_MODEL=llama3
OPENAI_API_KEY=your_key_here
VECTOR_DB_PATH=./chroma_db
BACKEND_HOST=0.0.0.0
BACKEND_PORT=8000
STREAMLIT_HOST=0.0.0.0
STREAMLIT_PORT=8501

Modèles LLM Supportés

  • Ollama: llama3, mistral, codellama
  • OpenAI: gpt-3.5-turbo, gpt-4
  • Autres: Compatible avec l'API LangChain

Utilisation

  1. Démarrer l'application (voir Installation)
  2. Accéder à l'interface: http://localhost:8501
  3. Télécharger des documents: Utilisez la sidebar pour uploader des PDFs
  4. Poser des questions: Tapez vos questions dans le chat
  5. Consulter l'historique: Les conversations sont sauvegardées dans la session

Exemples d'Usage

Questions Fréquentes

  • "Comment réinitialiser mon mot de passe?"
  • "Où trouver la documentation d'installation?"
  • "Quelles sont les fonctionnalités du module RH?"

Types de Documents Supportés

  • Guides utilisateurs (PDF)
  • Documentation technique (PDF)
  • FAQ et procédures (PDF)
  • Manuels d'installation (PDF)

Développement

Ajouter de Nouvelles Fonctionnalités

Backend

  1. Modifier backend/main.py pour ajouter des endpoints
  2. Étendre backend/rag_pipeline/pipeline.py pour la logique RAG
  3. Tester avec pytest (à implémenter)

Frontend

  1. Modifier frontend/app.py pour l'interface
  2. Ajouter des composants Streamlit
  3. Tester l'interface utilisateur

Tests

# Tests backend (à implémenter)
cd backend && python -m pytest

# Tests frontend (à implémenter)
cd frontend && python -m pytest

Déploiement

Production avec Docker

# Build et déploiement
docker-compose -f docker-compose.prod.yml up -d

# Monitoring des logs
docker-compose logs -f

Déploiement Cloud

  • AWS: ECS, Lambda, ou EC2
  • Google Cloud: Cloud Run, Compute Engine
  • Azure: Container Instances, App Service

Sécurité

Bonnes Pratiques

  • Utiliser HTTPS en production
  • Configurer l'authentification utilisateur
  • Limiter la taille des fichiers uploadés
  • Valider les entrées utilisateur
  • Chiffrer les données sensibles

Configuration Sécurisée

# Exemple de configuration sécurisée
app.add_middleware(
    CORSMiddleware,
    allow_origins=["https://yourdomain.com"],
    allow_credentials=True,
    allow_methods=["GET", "POST"],
    allow_headers=["*"],
)

Performance

Optimisations

  • Cache des embeddings pour éviter le recalcul
  • Pagination des résultats de recherche
  • Compression des réponses API
  • CDN pour les assets statiques

Monitoring

  • Logs structurés avec logging
  • Métriques avec prometheus
  • Alertes avec grafana

Contribution

Comment Contribuer

  1. Fork le projet
  2. Créer une branche feature (git checkout -b feature/AmazingFeature)
  3. Commit les changements (git commit -m 'Add some AmazingFeature')
  4. Push vers la branche (git push origin feature/AmazingFeature)
  5. Ouvrir une Pull Request

Standards de Code

  • Python: PEP 8, type hints
  • Documentation: Docstrings pour toutes les fonctions
  • Tests: Coverage minimum 80%

Licence

Ce projet est sous licence MIT. Voir le fichier LICENSE pour plus de détails.

Support

Ressources

  • Documentation: Voir INSTALLATION.md
  • Issues: Utiliser GitHub Issues
  • Discussions: GitHub Discussions

Contact

Roadmap

Version 1.1 (Q2 2024)

  • Support multi-langues
  • Interface d'administration
  • Analytics avancées
  • API webhooks

Version 1.2 (Q3 2024)

  • Support documents Word/Excel
  • Intégration Slack/Teams
  • Mode hors-ligne
  • Clustering de réponses

Version 2.0 (Q4 2024)

  • IA conversationnelle avancée
  • Personnalisation par utilisateur
  • Marketplace de plugins
  • Support multi-tenant

Remerciements

  • LangChain pour le framework RAG
  • Streamlit pour l'interface utilisateur
  • FastAPI pour l'API backend
  • Chroma pour la base de données vectorielle
  • Ollama pour les modèles LLM locaux

About

An intelligent AI assistant for technical support, combining LLMs with RAG to automate FAQs, search internal documentation, and assist agents through a local, secure interface.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages