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.
- 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).
- Utilization of GPT-4 or Llama 3 with RAG (Retrieval-Augmented Generation).
- Integration via LangChain or LlamaIndex.
- Indexing of internal documents (PDF, Word, etc.).
- FastAPI API for chatbot interaction.
- Upload functionality for new documents (user manuals, FAQ guides, etc.).
- Web Interface with Streamlit:
- AI chat zone
- Document upload
- Question history
- Vectorization with SentenceTransformer.
- Vector storage in FAISS or Chroma.
- LLM calls (via local or cloud API based on constraints).
| 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 |
helpbot_ai/(complete code)mock-client-brief.md(simulated brief)README.md(objectives + tech + demo)- Demo video (explaining the project on camera or screencast)
# 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 8501docker-compose up --build- API REST pour les interactions avec le chatbot
- Pipeline RAG avec LangChain
- Vectorisation avec SentenceTransformer
- Stockage vectoriel avec Chroma
- Support LLM Ollama/OpenAI
- Interface chat intuitive
- Upload de documents PDF
- Historique des conversations
- Statistiques d'utilisation
- Ingestion: Chargement et découpage des documents PDF
- Vectorisation: Transformation en embeddings avec SentenceTransformer
- Indexation: Stockage dans Chroma DB
- Recherche: Récupération des passages pertinents
- Génération: Réponse contextuelle via LLM
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
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..."
}Télécharge et indexe un nouveau document PDF.
Request: Multipart form avec fichier PDF
Response:
{
"message": "Document filename.pdf uploaded and processed successfully."
}Vérification de l'état de l'API.
Response:
{
"status": "ok"
}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- Ollama: llama3, mistral, codellama
- OpenAI: gpt-3.5-turbo, gpt-4
- Autres: Compatible avec l'API LangChain
- Démarrer l'application (voir Installation)
- Accéder à l'interface: http://localhost:8501
- Télécharger des documents: Utilisez la sidebar pour uploader des PDFs
- Poser des questions: Tapez vos questions dans le chat
- Consulter l'historique: Les conversations sont sauvegardées dans la session
- "Comment réinitialiser mon mot de passe?"
- "Où trouver la documentation d'installation?"
- "Quelles sont les fonctionnalités du module RH?"
- Guides utilisateurs (PDF)
- Documentation technique (PDF)
- FAQ et procédures (PDF)
- Manuels d'installation (PDF)
- Modifier
backend/main.pypour ajouter des endpoints - Étendre
backend/rag_pipeline/pipeline.pypour la logique RAG - Tester avec
pytest(à implémenter)
- Modifier
frontend/app.pypour l'interface - Ajouter des composants Streamlit
- Tester l'interface utilisateur
# Tests backend (à implémenter)
cd backend && python -m pytest
# Tests frontend (à implémenter)
cd frontend && python -m pytest# Build et déploiement
docker-compose -f docker-compose.prod.yml up -d
# Monitoring des logs
docker-compose logs -f- AWS: ECS, Lambda, ou EC2
- Google Cloud: Cloud Run, Compute Engine
- Azure: Container Instances, App Service
- 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
# Exemple de configuration sécurisée
app.add_middleware(
CORSMiddleware,
allow_origins=["https://yourdomain.com"],
allow_credentials=True,
allow_methods=["GET", "POST"],
allow_headers=["*"],
)- Cache des embeddings pour éviter le recalcul
- Pagination des résultats de recherche
- Compression des réponses API
- CDN pour les assets statiques
- Logs structurés avec
logging - Métriques avec
prometheus - Alertes avec
grafana
- Fork le projet
- Créer une branche feature (
git checkout -b feature/AmazingFeature) - Commit les changements (
git commit -m 'Add some AmazingFeature') - Push vers la branche (
git push origin feature/AmazingFeature) - Ouvrir une Pull Request
- Python: PEP 8, type hints
- Documentation: Docstrings pour toutes les fonctions
- Tests: Coverage minimum 80%
Ce projet est sous licence MIT. Voir le fichier LICENSE pour plus de détails.
- Documentation: Voir
INSTALLATION.md - Issues: Utiliser GitHub Issues
- Discussions: GitHub Discussions
- Email: support@helpbot-llm.com
- Discord: Serveur Discord
- Twitter: @HelpBotLLM
- Support multi-langues
- Interface d'administration
- Analytics avancées
- API webhooks
- Support documents Word/Excel
- Intégration Slack/Teams
- Mode hors-ligne
- Clustering de réponses
- IA conversationnelle avancée
- Personnalisation par utilisateur
- Marketplace de plugins
- Support multi-tenant
- 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