Skip to content

C-Vellen/Chatbot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

😺 Projet de Chatbot 😺

📋 Généralités :

  • python3.12 / django 5.2
  • principales librairies utiisées :
    • langchain, langraph
    • django-rest framework
  • API openai pour les LLM
  • base de donnée mysql ou postgresql
  • auteur : Christophe Vellen

‍🎓 Démonstration : ici [accès protégé par mot de passe]

🧰 Fonctionnalités :

  • accueil :

Aperçu de l'application

  • résumé d'un texte
  • conversation simple (sans mémorisation)
  • résumé d'un texte + conversation à partir de ce texte (avec mémorisation des échanges)

Aperçu de l'application

  • résumé d'une video youtube + conversation à partir de cette video (avec mémorisation des échanges)

Aperçu de l'application

  • réglages des modèles :
    • choix d'un modèle parmi ceux de l'API openai : platform.openai.com
    • choix de la température (plus ou moins créatif)
    • choix de la verbosité

Aperçu de l'application

  • réglage des prompts système :
    • modification et enregistrement des prompts pour le résumé
    • modification et enregistrement des prompts système

Aperçu de l'application

🛠 Installation :

  • installer pyenv, poetry et python3 v3.12 :
    curl https://pyenv.run | bash
    curl -sSL https://install.python-poetry.org | python3
    pyenv local 3.12.10
  • cloner le projet :
    git clone https://github.com/C-Vellen/Chatbot.git
  • créer une base de donnée Mysql ou Postgresql

  • en développement, créer et paramétrer src/src/settings/develop.py, ou bien définir des variables d'environnement :

        SECRET_KEY = 'xxxxxxxxxxxxxxxxxxxx'
        RELOAD = True
        ALLOWED_HOSTS = ["127.0.0.1", "localhost"]
        CSRF_TRUSTED_ORIGINS = ["http://127.0.0.1:8000", "http://localhost:8000"]
        PROTOCOL = "http"
        DATABASES = {
            'default':  {
                'ENGINE': 'django.db.backends.postgresql' ou 'django.db.backends.mysql,
                'NAME': 'xxxxxxxxxxxx',
                'USER': 'xxxxxxxxxxxx',
                'PASSWORD': 'xxxxxxxxxxxxx',
                'HOST': '127.0.0.1',
                'PORT': xxxx,
            }
        }
        
  • en production, créer et paramétrer src/src/settings/production.py ou bien définir des variables d'environnement,:

        SECRET_KEY = 'xxxxxxxxxxxxxxxxxxxx'
        DEBUG = False
        ALLOWED_HOSTS = ['www.xxxxx.xx', ... ]
        CSRF_TRUSTED_ORIGINS = ['https://www.xxxxx.xx', ... ]
        PROTOCOL = 'https'
        SITE_ID = 1
        DATABASES = {
            'default':  {
                'ENGINE': 'django.db.backends.postgresql' ou 'django.db.backends.mysql',
                'NAME': 'xxxxxxxxxxxx',
                'USER': 'xxxxxxxxxxxx',
                'PASSWORD': 'xxxxxxxxxxxxx',
                'HOST': '127.0.0.1',
                'PORT': xxxx,
            }
        }
        STATIC_ROOT = 'chemin vers fichiers statiques sur le serveur'
        MEDIA_ROOT =  'chemin vers fichiers media sur le serveur'
  • définir en variable d'environnement l'API token pour accéder aux modèles d'openai :

        OPENAI_API_KEY='xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
  • installer les dépendances, définies dans le fichier pyproject.toml :

        poetry install
  • activer l'environnement virtuel: sur console du serveur, à la racine du projet:

        source .venv/bin/activate
    • première migration de la base de donnée :
        ./src/manage.py migrate
    • création du superuser (administrateur):
        ./src/manage.py createsuperuser
    • pré-remplissage de la base de données (valeurs par défaut dans dossiers fixtures/):
        ./src/manage.py loaddata home.json tuning.json
    • initialisation tailwind :
        ./src/manage.py tailwind install
        ./src/manage.py tailwind build
    • collecte des fichiers statiques (en production) :
        ./src/manage.py collectstatic
    • lancer le serveur (voir ci-dessous), se connecter en tant qu'administrateur et aller sur l'administration django
      • modifier le user : entrer subId (random), nom, prénom, group (auteur, gestionnaire, admin)
      • compléter les champs image et fichier des tables home/libelles et home/defaultcontent

🚀 Lancement du serveur de développement :

```bash
    source .venv/bin/activate
    ./src/manage.py tailwind dev
```

About

Chaine conversationnelle: résumé d'un texte ou d'une video servant de base à une conversation.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published