IA: ChatGPT comme terrain de jeu ou de test pour Kubernetes …
Tags: kubernetes, chatgpt, ai, docker
Published: 2023-02-28 23:16:07

---
title: IA: ChatGPT comme terrain de jeu ou de test pour Kubernetes …
published: true
date: 2023-02-28 23:06:41 UTC
tags: kubernetes,chatgpt,ai,docker
canonical_url: https://deep75.medium.com/ia-chatgpt-comme-terrain-de-jeu-ou-de-test-pour-kubernetes-85877e450c92
---

![](https://cdn-images-1.medium.com/max/1024/1*kajKPI-jcGsHkYYQka0I6g.png)
_https://openai.com/blog/chatgpt_

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 …

- [ChatGPT - Wikipédia](https://fr.wikipedia.org/wiki/ChatGPT)
- [Introducing ChatGPT](https://openai.com/blog/chatgpt)

J’ouvre une session sur le webchat de ChatGPT ici :

[**_https://chat.openai.com/chat_**](https://chat.openai.com/chat)

[Introducing ChatGPT](https://openai.com/blog/chatgpt)

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 …

[Introducing ChatGPT Plus](https://openai.com/blog/chatgpt-plus)

D’ailleurs voici comment il se présente lui même :

![](https://cdn-images-1.medium.com/max/1024/1*m_1KVkq9IHATAgERu42mlg.png)

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.

[GPT-3 - Wikipédia](https://fr.wikipedia.org/wiki/GPT-3)

![](https://cdn-images-1.medium.com/max/800/1*9HPZgajvyf1QscxTA9OWNQ.png)
_Architecture du modèle GPT_

![](https://cdn-images-1.medium.com/max/577/0*keyVUBmTkAMoMcH8.jpg)

Rapide test pour démontrer qu’il peut se révéler un terrain de test pour Kubernetes. Pöur cela je me base sur ces deux excellents articles :

[Building A Virtual Machine inside ChatGPT](https://www.engraved.blog/building-a-virtual-machine-inside/)

![](https://cdn-images-1.medium.com/max/1024/0*fQjDifzQiimtpcEv.png)

[How I turned ChatGPT into Kubernetes and Helm Playground in 5 Minutes](https://collabnix.com/how-i-turned-chatgpt-into-kubernetes-and-helm-playground-in-5-minutes/)

> 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`._**

![](https://cdn-images-1.medium.com/max/1024/1*six3I2upmkpZtMVOWqe8XQ.png)

Il a bien lancé le terminal avec éxecution de la commande transmise. Ensuite installation d’un cluster Kubernetes local via k0s et ce script :

[k0s | Kubernetes distribution for bare-metal, on-prem, edge, IoT](https://k0sproject.io/)

```bash
{curl -sSLf https://get.k0s.sh | sh
k0s install controller --single
k0s start
k0s status
k0s kubectl get nodes -o wide}
```

![](https://cdn-images-1.medium.com/max/1024/1*g3w6qgYqy7Gf3SritNhUGA.png)

Puis installation de helm3 avec ChatGPT :

```bash
{curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash}
```

[Installing Helm](https://helm.sh/docs/intro/install/)

![](https://cdn-images-1.medium.com/max/1024/1*m-wy7He29mKz_QnqnMlqQA.png)

Suivi de Nginx en tant que contrôleur d’entrée dans ce cluster Kubernetes via Helm :

[Installation with Helm](https://docs.nginx.com/nginx-ingress-controller/installation/installation-with-helm/)

```bash
{helm repo add nginx-stable https://helm.nginx.com/stable
helm repo update
helm install my-release nginx-stable/nginx-ingress}
```

![](https://cdn-images-1.medium.com/max/1024/1*D6oEmWWCQqv7j23Q_TjCgw.png)

Je vérifie avec ChatGPT que le contrôleur d’entrée avec Nginx est bien présent :

```bash
{k0s kubectl get pods -n default -l app.kubernetes.io/name=nginx-ingress-controller}
```

![](https://cdn-images-1.medium.com/max/1024/1*HRnJF2s5YMauLxZiIn2irA.png)

Plus globalement :

```bash
{k0s kubectl get po,svc,ing -A}
```

![](https://cdn-images-1.medium.com/max/1024/1*Cv1_8FisdbaOWS8kuXp8Cg.png)

Déploiement à ce stade du sempiternel démonstrateur FC avec ChatGPT dans ce cluster **_k0s_**  :

```yaml
{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}
```

![](https://cdn-images-1.medium.com/max/1024/1*OP-pTg1Zl4R4rhVnqJAbng.png)

![](https://cdn-images-1.medium.com/max/1024/1*2OSpaNUXDVNNpzgPQDdMZg.png)

ChatGPT peut enregister dans ce terrain de jeu que le démonstrateur FC répond localement :

```bash
{curl http://10.111.209.157:80}
```

![](https://cdn-images-1.medium.com/max/1024/1*iF0Ekqre-as0yZiaSRY6xA.png)

Je pousse le vice avec l’installation via Brew de Ngrok :

- [ngrok - Online in One Line](https://ngrok.com/)
- [ngrok](https://formulae.brew.sh/cask/ngrok)

```bash
{brew install ngrok/ngrok/ngrok
ngrok http 10.111.209.157:80}
```

![](https://cdn-images-1.medium.com/max/1024/1*ZX8IABV9U1JlriZ57IGJDg.png)

et ChatGPT va simuler cette réponse “externe” avec Ngrok censé exposer le démonstrateur FC sur Internet :

```bash
{curl -k https://e7f2e68e.ngrok.io}
```

![](https://cdn-images-1.medium.com/max/1024/1*2hfiy-oWVPFR6_8fYGA_bA.png)

cela reste une simulation car si je rentre cette URL, je n’obtiendrais pas de réponse (et heureusement par sécurité) 😄 …

![](https://cdn-images-1.medium.com/max/1024/1*qnK8Tja0KkAmz4HvdIYgdQ.png)

J’aurais pu me contenter de l’installation d’un moteur Docker via Brew encore une fois …

[Docker for Mac: Homebrew Step-by-Step Tutorial | Cprime](https://www.cprime.com/resources/blog/docker-for-mac-with-homebrew-a-step-by-step-tutorial/)

```bash
{brew cask install docker
docker --version}
```

![](https://cdn-images-1.medium.com/max/1024/1*YoGPRqjtmYNGrBwbXuI-Tg.png)

et l’exécution directe du conteneur Docker pour le démonstrateur FC :

```bash
{docker run -d -p 8080:3000 mcas/franceconnect-demo2:latest}
```

![](https://cdn-images-1.medium.com/max/1024/1*S5MDhVCclsVn9fdPXOCBBg.png)

Et le démonstrateur répond selon la simulation de ChatGPY via le port définit dans cette commande …

![](https://cdn-images-1.medium.com/max/1024/1*uYPF-XLYkjnKw8fPVOXN8w.png)

Pourtant au final, ChatGPT tenait à rappeler cette chose importante :

![](https://cdn-images-1.medium.com/max/1024/1*VPN-0WKqNTrKgUSi6urXAg.png)

Et comme toujours, on le croit sur parole 😁😉 …

![](https://cdn-images-1.medium.com/max/1024/0*h-HqdPsyAz_bfo6b.jpg)

À suivre !