Ce projet est un microservice basé sur Express et TypeScript, intégrant LangChain, TensorFlow.js, Azure Table Storage, et Telegram. Il permet de créer un bot intelligent en utilisant les capacités de traitement du langage naturel d'OpenAI. Telegram est utilisé uniquement pour surveiller les questions et réponses.
- Vectorisation et Stockage: Deux exemples de scripts (
script.js
etaestetica.js
) montrent comment envoyer et vectoriser des données sur Azure Table Storage. - Récupération et Encodage: Utilisation de LangChain avec une classe custom retriever pour le RAG (Retrieval-Augmented Generation) avec Sentence Encoder Lite sur le backend TensorFlow.js.
- API Routes: Deux routes API sont disponibles :
/search
: Pour interagir avec le bot -> POST/vectors
: Pour tester la récupération de vecteurs -> GET
- Surveillance avec Telegram: Telegram est utilisé pour surveiller les questions et réponses du bot.
- Node.js
- npm ou yarn
- Compte Azure avec Table Storage configuré
- Clé API OpenAI
- Token et ID de chat Telegram
- Docker (optionnel, pour l'utilisation du Dockerfile)
-
Clonez le dépôt :
git clone https://github.com/votre-utilisateur/votre-projet.git cd votre-projet
-
Créez un fichier
.env
à la racine du projet avec les valeurs suivantes :AZURE_STORAGE_CONNECTION_STRING="your-connection-string" AZURE_STORAGE_TABLE_NAME="your-table-name" OPENAI_API_KEY="your-openai-api-key" PORT=3002 BOT_TOKEN="you-bot-token" CHAT_ID="your*chat-id"
-
Construisez et démarrez le conteneur Docker :
docker build -t votre-projet . docker run -p 3002:3002 --env-file .env votre-projet
-
Clonez le dépôt :
git clone https://github.com/votre-utilisateur/votre-projet.git cd votre-projet
-
Installez les dépendances :
npm install
-
Configurez les variables d'environnement en créant un fichier
.env
à la racine du projet avec les valeurs suivantes :AZURE_STORAGE_CONNECTION_STRING="your-connection-string" AZURE_STORAGE_TABLE_NAME="your-table-name" OPENAI_API_KEY="your-openai-api-key" PORT=3002 BOT_TOKEN="you-bot-token" CHAT_ID="your*chat-id"
-
Démarrez le serveur :
npm start
Les scripts script.js
et aestetica.js
montrent comment envoyer et vectoriser des données sur Azure Table Storage. Vous pouvez les utiliser comme exemples pour vectoriser vos propres données.
Le fichier rag.service.ts
contient la logique pour la récupération et l'encodage des vecteurs. Vous pouvez modifier le système de prompt dans ce fichier pour adapter le comportement du bot à vos besoins.
- /search: Utilisez cette route pour interagir avec le bot.
- /vectors: Utilisez cette route pour tester la récupération de vecteurs.
Telegram est utilisé pour surveiller les questions et réponses du bot. Assurez-vous que votre bot Telegram est configuré avec le token et l'ID de chat fournis dans le fichier .env
.
Le Dockerfile est configuré pour construire et exécuter l'application dans un conteneur Docker. Voici son contenu :
# Use Node.js LTS version as the base image
FROM node:20-slim
# Set working directory
WORKDIR /usr/src/app
# Copy package files
COPY package*.json ./
# Install dependencies
RUN npm install
# Copy TypeScript configuration
COPY tsconfig.json ./
# Copy source code
COPY src/ ./src/
# Build TypeScript code
RUN npm run build
# Expose the port your app runs on
EXPOSE 3000
# Command to run the application
CMD ["npm", "start"]
Les contributions sont les bienvenues ! N'hésitez pas à ouvrir une issue ou à soumettre une pull request.
Ce projet est sous licence MIT. Voir le fichier LICENSE pour plus de détails.
Pour toute question ou suggestion, veuillez contacter Salim Laimeche