ChatGPT est un prototype d’agent conversationnel lancé en novembre 2022 par OpenAI, une société co-créée par Elon Musk et Sam Altman en 2015 et valorisée à 29 milliards de dollars américains en 2023.
Il s’agit d’un agent conversationnel à intelligence artificielle ou « chatbot », autrement dit un assistant virtuel qui utilise les nouvelles technologies pour dialoguer avec ses utilisateurs. Disponible dans de multiples langues comme le français, son robot conversationnel est capable de répondre à des questions-tests dans un langage très proche de celui d’un humain …
J’ouvre une session sur le webchat de ChatGPT ici :
avec ce modèle payant et un modèle d’accès gratuit en fonction de la charge et des disponibilités de la plateforme …
D’ailleurs voici comment il se présente lui même :
Il se base donc sur un modèle linguistique de troisième génération nommé GPT-3 et qu’il présente de cette manière :
GPT-3 (pour “Generative Pre-trained Transformer 3”) est un modèle de langage de traitement automatique du langage naturel (NLP) développé par OpenAI. C’est l’un des plus grands et des plus avancés modèles de langage jamais créés, avec plus de 175 milliards de paramètres.
GPT-3 est entraîné sur une énorme quantité de données textuelles afin de prédire les mots suivants dans une séquence de texte donnée. Cela lui permet de générer automatiquement des réponses à des questions, de produire du texte cohérent et bien structuré, de compléter des phrases, de traduire des langues et d’effectuer d’autres tâches de traitement du langage naturel.
Le modèle est capable de comprendre et de générer un langage naturel qui peut sembler étonnamment humain et est capable de résoudre de nombreux problèmes de traitement du langage naturel avec une grande précision. GPT-3 a de nombreuses applications potentielles dans le domaine de l’intelligence artificielle et est utilisé dans une variété de domaines, tels que l’automatisation des processus de travail, la création de chatbots, la traduction automatique, l’analyse de sentiments et la recherche d’informations en ligne.
Rapide test pour démontrer qu’il peut se révéler un terrain de test pour Kubernetes. Pour cela je me base sur ces deux excellents articles et j’utilise l’anglais pour le dialogue ici (même si le français aurait bien pu être utilisé dans ce cas) en partant du lancement par ChatGPT d’un terminal Mac :
Moi : Hello GPT. I want you to act as a Mac terminal. I will type some commands and you’ll reply with what the terminal should show. Please show the result using the Mac terminal. When I tell you something, I will do so by putting text inside curly brackets {like this}. Please don’t write an explanation just the command result is sufficient. My first command is `ps aux`.
Il a bien lancé le terminal avec exécution de la commande transmise. Ensuite installation d’un cluster Kubernetes local via k0s et ce script :
{curl -sSLf https://get.k0s.sh | sh
k0s install controller --single
k0s start
k0s status
k0s kubectl get nodes -o wide}
Puis installation de Helm3 avec ChatGPT :
{curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash}
Suivi de Nginx en tant que contrôleur d’entrée dans ce cluster Kubernetes via Helm :
{helm repo add nginx-stable https://helm.nginx.com/stable
helm repo update
helm install my-release nginx-stable/nginx-ingress}
Je vérifie avec ChatGPT que le contrôleur d’entrée avec Nginx est bien présent :
{k0s kubectl get pods -n default -l app.kubernetes.io/name=nginx-ingress-controller}
Plus globalement :
{k0s kubectl get po,svc,ing -A}
Déploiement à ce stade du sempiternel démonstrateur FC avec ChatGPT dans ce cluster k0s :
{cat <<EOF | k0S kubectl apply -f -
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: fcdemo3
labels:
app: fcdemo3
spec:
replicas: 4
selector:
matchLabels:
app: fcdemo3
template:
metadata:
labels:
app: fcdemo3
spec:
containers:
- name: fcdemo3
image: mcas/franceconnect-demo2:latest
ports:
- containerPort: 3000
---
apiVersion: v1
kind: Service
metadata:
name: fcdemo-service
spec:
type: ClusterIP
selector:
app: fcdemo3
ports:
- protocol: TCP
port: 80
targetPort: 3000
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: fcdemo-ingress
spec:
defaultBackend:
service:
name: fcdemo-service
port:
number: 80
EOF
kubectl get po,svc,ing}
ChatGPT peut enregister dans ce terrain de jeu que le démonstrateur FC répond localement :
{curl http://10.111.209.157:80}
Je pousse le vice avec l’installation via Brew de Ngrok :
{brew install ngrok/ngrok/ngrok
ngrok http 10.111.209.157:80}
et ChatGPT va simuler cette réponse “externe” avec Ngrok censé exposer le démonstrateur FC sur Internet :
{curl -k https://e7f2e68e.ngrok.io}
cela reste une simulation car si je rentre cette URL, je n’obtiendrais pas de réponse (et heureusement par sécurité) 😄 …
J’aurais pu me contenter de l’installation d’un moteur Docker via Brew encore une fois …
{brew cask install docker
docker --version}
et l’exécution directe du conteneur Docker pour le démonstrateur FC :
{docker run -d -p 8080:3000 mcas/franceconnect-demo2:latest}
Et le démonstrateur répond selon la simulation de ChatGPT via le port définit dans cette commande …
Pourtant au final, ChatGPT tenait à rappeler cette chose importante :
Et comme toujours, on le croit sur parole 😁😉 …
À suivre !