| Albert API sur GitHub | Modèles Albert sur HuggingFace |
Bot pour Tchap, l'application de messagerie de l'administration française. Ce bot utilise Albert, l'agent conversationnel (large language models, LLM) de l'administration française, pour répondre à des questions sur Tchap, l'application de messagerie de l'administration française.
Le projet est un POC (Proof of Concept - preuve de concept) pour montrer comment un bot peut être utilisé pour répondre à des questions sur Tchap en utilisant Albert. Il s'agit d'un travail WIP (Work In Progress - en cours de développement) et n'est pas (encore) destiné à être utilisé en production.
Le projet est un fork de tchap_bot qui est un bot Matrix pour Tchap, conçu par le Pôle d'Expertise de la Régulation Numérique. La partie bibliothèque (matrix_bot
) est fortement inspirée de https://github.com/imbev/simplematrixbotlib.
Contient :
app/.
: la codebase pour le Tchap bot Albertapp/matrix_bot
: une bibliothèque qui encapsule matrix-nio faire des bots MatrixLe projet utilise un fichier de dépendances et de config pyproject.toml
et non un fichier requirements.txt
. Il est donc nécessaire d'utiliser pip
en version 19.0 ou supérieure, ou bien avec un package manager comme pdm
, pip-tools
, uv
, rye
, hatch
etc. (mais pas poetry
qui n'utilise pas le standard pyproject.toml
).
# Récupération du code avec Git
git clone ${GITHUB_URL}
# Création d'un environnement virtuel Python
python3 -m venv .venv
# Activation de l'environnement virtuel Python
source .venv/bin/activate
# Installation des dépendances
pip install .
Créez le fichier d'environnement app/.env
avec les informations de connexion (ou fournissez-les en variables d'environnement). Vous pouvez vous inspirer du fichier app/.env.example
qui est initialisé avec les valeurs par défaut :
cp app/.env.example app/.env
L'ensemble des variables d'environements disponibles est documenté dans le fichier suivant : app/config.py
Pour lancer le bot executez :
python app
Cette commande stoppera surement si vous ne la lancez pas en mode sudo car elle installe par défault le data/store et le data/session.txt à la racine "/". Vous pouvez lancer l'application pour qu'elle crée ces fichiers dans le dossier du projet directement avec la commande :
export STORE_PATH='./data/store/' && export SESSION_PATH='./data/session.txt' && python app
Si vous voulez développez tout en faisant que le bot reload automatiquement, vous pouvez utiliser par exemple nodemon en module global python et lancer la commande suivante dans un terminal :
nodemon --watch app --ext py --exec "export STORE_PATH='./data/store/' && export SESSION_PATH='./data/session.txt' && python app"
Si vous voulez que vos messages engendrés par le bot se distinguent des autres messages, possiblement envoyé par d'autres bots (comme celui de staging):
nodemon --watch app --ext py --exec "export MESSAGE_PREFIX='[DEV]' && export STORE_PATH='./data/store/' && export SESSION_PATH='./data/session.txt' && python app"
Si vous voulez merger votre branche de dev pour la tester sur beta.tchap (branche staging) :
git checkout staging
git merge <your-branch>
git push origin staging
Le premier sync est assez long, et a priori non bloquant. Si vous avez une interaction avec le bot avant qu'il se soit bien sync vous risquez de le laisser dans un état instable (où le bot n'a pas le listing des rooms).
Le projet est en open source, sous licence MIT. Toutes les contributions sont bienvenues, sous forme de pull requests ou d'ouvertures d'issues sur le repo officiel GitHub.
Pour commencer, consultez CONTRIBUTING.md.
Ce projet est sous licence MIT. Une copie intégrale du texte de la licence se trouve dans le fichier LICENSES/MIT.txt
.