MCP est un système de question-réponse avancé utilisant la technique RAG (Retrieval-Augmented Generation) pour fournir des réponses précises et contextuelles basées sur un corpus de documents.
Fonctionnalités
- ? Recherche sémantique dans les documents
- ? Mise en cache intelligente avec Redis
- ? Stockage persistant avec MongoDB
- ? Intégration avec OpenAI pour les embeddings et la génération de texte
- ? Monitoring et métriques du système
- ? Gestion asynchrone des opérations
Prérequis
- Python 3.9+
- MongoDB Community Edition
- Redis
- Clé API OpenAI
Installation
-
Cloner le dépôt :
git clone https://github.com/votre-username/mcp.git
cd mcp
-
Installer les dépendances système :
# MongoDB
brew tap mongodb/brew
brew install mongodb-community
brew services start mongodb-community
# Redis
brew install redis
brew services start redis
-
Configurer l'environnement Python :
python -m venv .venv
source .venv/bin/activate # Sur Unix/macOS
pip install -r requirements.txt
-
Configurer les variables d'environnement :
cp .env.example .env
# Éditer .env avec vos configurations
Utilisation rapide
from src.rag import RAGWorkflow
# Initialisation
rag = RAGWorkflow()
# Ingestion de documents
await rag.ingest_documents("chemin/vers/documents")
# Interrogation
response = await rag.query("Votre question ici ?")
Documentation
Tests
python -m pytest tests/ -v
Structure du projet
mcp/
├── src/
│ ├── __init__.py
│ ├── rag.py # Workflow RAG principal
│ ├── models.py # Modèles de données
│ ├── mongo_operations.py # Opérations MongoDB
│ ├── redis_operations.py # Opérations Redis
│ └── database.py # Configuration de la base de données
├── tests/
│ ├── __init__.py
│ ├── test_mcp.py
│ └── test_mongo_integration.py
├── prompts/
│ ├── system_prompt.txt
│ ├── query_prompt.txt
│ └── response_prompt.txt
├── docs/
│ ├── installation.md
│ ├── usage.md
│ ├── architecture.md
│ └── api.md
├── requirements.txt
├── .env.example
└── README.md
Contribution
- Fork le projet
- Créer une branche pour votre fonctionnalité (
git checkout -b feature/AmazingFeature
)
- Commit vos changements (
git commit -m 'Add some AmazingFeature'
)
- Push vers la branche (
git push origin feature/AmazingFeature
)
- Ouvrir une Pull Request
Licence
Ce projet est sous licence MIT. Voir le fichier LICENSE pour plus de détails.
Votre Nom - @votre_twitter
Lien du projet : https://github.com/votre-username/mcp