{"id":24084090,"url":"https://github.com/salim4n/ignition-bot","last_synced_at":"2026-02-21T14:02:36.276Z","repository":{"id":271019066,"uuid":"900908969","full_name":"salim4n/ignition-bot","owner":"salim4n","description":"Microservice chatbot LLM RAG","archived":false,"fork":false,"pushed_at":"2025-02-02T13:54:46.000Z","size":105,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-01T14:57:06.112Z","etag":null,"topics":["azure-storage","azure-table-storage","dockerfile","embeddings","express","langchain-js","rag","sentence-encoder","telegram-bot","template","tensorflowjs","typescript"],"latest_commit_sha":null,"homepage":"https://ignition-bot.onrender.com/vectors","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/salim4n.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-12-09T17:35:56.000Z","updated_at":"2025-02-03T17:12:05.000Z","dependencies_parsed_at":"2025-01-04T20:39:17.060Z","dependency_job_id":"b5e051e9-2af2-4c96-8618-bca5a06ec703","html_url":"https://github.com/salim4n/ignition-bot","commit_stats":null,"previous_names":["salim4n/ignition-bot"],"tags_count":0,"template":true,"template_full_name":null,"purl":"pkg:github/salim4n/ignition-bot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/salim4n%2Fignition-bot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/salim4n%2Fignition-bot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/salim4n%2Fignition-bot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/salim4n%2Fignition-bot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/salim4n","download_url":"https://codeload.github.com/salim4n/ignition-bot/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/salim4n%2Fignition-bot/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29682749,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-21T13:29:26.630Z","status":"ssl_error","status_checked_at":"2026-02-21T13:26:50.125Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["azure-storage","azure-table-storage","dockerfile","embeddings","express","langchain-js","rag","sentence-encoder","telegram-bot","template","tensorflowjs","typescript"],"created_at":"2025-01-10T00:19:20.810Z","updated_at":"2026-02-21T14:02:36.235Z","avatar_url":"https://github.com/salim4n.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Microservice pour Bot Intelligent avec OpenAI\n\nCe 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.\n\n## Fonctionnalités\n\n- **Vectorisation et Stockage**: Deux exemples de scripts (`script.js` et `aestetica.js`) montrent comment envoyer et vectoriser des données sur Azure Table Storage.\n- **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.\n- **API Routes**: Deux routes API sont disponibles :\n  - `/search` : Pour interagir avec le bot -\u003e POST\n  - `/vectors` : Pour tester la récupération de vecteurs -\u003e GET\n- **Surveillance avec Telegram**: Telegram est utilisé pour surveiller les questions et réponses du bot.\n\n## Prérequis\n\n- Node.js\n- npm ou yarn\n- Compte Azure avec Table Storage configuré\n- Clé API OpenAI\n- Token et ID de chat Telegram\n- Docker (optionnel, pour l'utilisation du Dockerfile)\n\n## Installation\n\n### Créer la table Azure\n[![Youtube video](http://img.youtube.com/vi/aZIluap-4mo/0.jpg)](http://www.youtube.com/watch?v=aZIluap-4mo \"How to create an azure table on azure\")\n\n### Avec Docker\n\n1. Clonez le dépôt :\n   ```bash\n   git clone https://github.com/votre-utilisateur/votre-projet.git\n   cd votre-projet\n   ```\n\n2. Créez un fichier `.env` à la racine du projet avec les valeurs suivantes :\n   ```env\n   AZURE_STORAGE_CONNECTION_STRING=\"your-connection-string\"\n   AZURE_STORAGE_TABLE_NAME=\"your-table-name\"\n   OPENAI_API_KEY=\"your-openai-api-key\"\n   PORT=3002\n   BOT_TOKEN=\"you-bot-token\"\n   CHAT_ID=\"your*chat-id\"\n   ```\n\n3. Construisez et démarrez le conteneur Docker :\n   ```bash\n   docker build -t votre-projet .\n   docker run -p 3002:3002 --env-file .env votre-projet\n   ```\n\n### Sans Docker\n\n1. Clonez le dépôt :\n   ```bash\n   git clone https://github.com/votre-utilisateur/votre-projet.git\n   cd votre-projet\n   ```\n\n2. Installez les dépendances :\n   ```bash\n   npm install\n   ```\n\n3. Configurez les variables d'environnement en créant un fichier `.env` à la racine du projet avec les valeurs suivantes :\n   ```env\n   AZURE_STORAGE_CONNECTION_STRING=\"your-connection-string\"\n   AZURE_STORAGE_TABLE_NAME=\"your-table-name\"\n   OPENAI_API_KEY=\"your-openai-api-key\"\n   PORT=3002\n   BOT_TOKEN=\"you-bot-token\"\n   CHAT_ID=\"your*chat-id\"\n   ```\n\n4. Démarrez le serveur :\n   ```bash\n   npm start\n   ```\n\n## Utilisation\n\n### Vectorisation et Stockage\n\nLes 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.\n\n### Récupération et Encodage\n\nLe 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.\n\n### API Routes\n\n- **/search**: Utilisez cette route pour interagir avec le bot.\n- **/vectors**: Utilisez cette route pour tester la récupération de vecteurs.\n\n### Surveillance avec Telegram\n\nTelegram 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`.\n\n## Dockerfile\n\nLe Dockerfile est configuré pour construire et exécuter l'application dans un conteneur Docker. Voici son contenu :\n\n```dockerfile\n# Use Node.js LTS version as the base image\nFROM node:20-slim\n\n# Set working directory\nWORKDIR /usr/src/app\n\n# Copy package files\nCOPY package*.json ./\n\n# Install dependencies\nRUN npm install\n\n# Copy TypeScript configuration\nCOPY tsconfig.json ./\n\n# Copy source code\nCOPY src/ ./src/\n\n# Build TypeScript code\nRUN npm run build\n\n# Expose the port your app runs on\nEXPOSE 3000\n\n# Command to run the application\nCMD [\"npm\", \"start\"]\n```\n\n## Contribution\n\nLes contributions sont les bienvenues ! N'hésitez pas à ouvrir une issue ou à soumettre une pull request.\n\n## Licence\n\nCe projet est sous licence MIT. Voir le fichier [LICENSE](LICENSE) pour plus de détails.\n\n## Contact\n\nPour toute question ou suggestion, veuillez contacter [Salim Laimeche](mailto:laimeche160@gmail.com)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsalim4n%2Fignition-bot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsalim4n%2Fignition-bot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsalim4n%2Fignition-bot/lists"}