diff --git a/document/diag_class.plantuml b/document/diag_class.plantuml
new file mode 100644
index 0000000000000000000000000000000000000000..31e874342eba3836a4b2dc9f436f1a83117ad6ff
--- /dev/null
+++ b/document/diag_class.plantuml
@@ -0,0 +1,78 @@
+@startuml
+
+
+package OpenAi-Php (Lib)
+
+	class OpenAI 
+	{
+		client()
+
+	}
+
+	class OpenAIRequest 
+	{
+		completions()
+	}
+
+	class OpenAICompletionsRequest
+	{
+		create() : Result
+	}
+
+	class OenAIResult
+	{
+		choices : Object;
+	}
+
+	OpenAIRequest --> OpenAI
+	OpenAICompletionsRequest --> OpenAIRequest
+	OenAIResult --> OpenAICompletionsRequest
+	
+
+
+
+
+
+class OpenAIGenerator 
+{
+	question : String
+	code : String
+	test: String
+	useFaker: boolean
+
+	__construct(String, bool, bool)
+	setFaker(Faker)
+	genCode() : String
+	genTest(): String
+	
+	getQuestion() : String
+	getCode() : String
+	getTest() : String
+
+	setQuestion() : String
+	setCode() : String
+	setTest() : String
+
+	__toString() : String
+
+
+	
+
+}
+
+class Faker 
+{
+
+	test : Array;
+	code : Array;
+	random : Int;
+
+	__construct()
+	getCode() : String
+	getTest() : String
+
+}
+
+
+OpenAIGenerator "*" <-- "0..1" Faker : "use"
+@enduml
\ No newline at end of file
diff --git a/document/diag_class.png b/document/diag_class.png
new file mode 100644
index 0000000000000000000000000000000000000000..53dcb39e566604f57f0356f6f48a897a59fd45d0
Binary files /dev/null and b/document/diag_class.png differ
diff --git a/document/diag_etat.plantuml b/document/diag_etat.plantuml
new file mode 100644
index 0000000000000000000000000000000000000000..c6b5f18c2dac92b294107bf198a73ba7f3744879
--- /dev/null
+++ b/document/diag_etat.plantuml
@@ -0,0 +1,24 @@
+@startuml
+NDemande : La demande n'est pas encore envoyé au serveur
+Demande : Le serveur a recu la demande
+Traitement : Le serveur traite la demande
+
+
+RetourClient : Le serveur retourne les données structuré en html au client
+
+[*] --> NDemande
+NDemande --> Demande	
+Demande --> Traitement	
+
+state Traitement {
+EnvoieApi : Le serveur attend le retourne de l'api CHAT GPT
+RetourApi : Le serveur à récupèrer les données
+
+	[*] --> EnvoieApi
+	EnvoieApi --> RetourApi
+	RetourApi --> [*]
+}
+
+Traitement -> RetourClient
+RetourClient --> [*]
+@enduml
\ No newline at end of file
diff --git a/document/diag_etat.png b/document/diag_etat.png
new file mode 100644
index 0000000000000000000000000000000000000000..7d4640aec4c6d9a860b7387c3e9dba30904e2b3d
Binary files /dev/null and b/document/diag_etat.png differ
diff --git a/document/diag_seq.plantuml b/document/diag_seq.plantuml
new file mode 100644
index 0000000000000000000000000000000000000000..37d4384e8de6d99d358d5985322f2b429a5d3db9
--- /dev/null
+++ b/document/diag_seq.plantuml
@@ -0,0 +1,27 @@
+@startuml
+
+title Diag de séquence
+
+actor Client_Navigateur as Client
+control Serveur_Php as Serveur
+queue Librarie as Lib
+database Api_ChatGPT as Lib
+
+autonumber
+Client -> Serveur : Demande la page du formulaire
+Serveur --> Client : Retourne le formulaire à remplir 
+Client -> Serveur : Retourne les données du formulaire au client
+
+
+Serveur -> Lib : Vérifie, formate et crée l'objet pour \nl'envoie des données à l'api
+Lib -> Api : Crée la requête et l'envoie à l'api \n(avec l'aide de curl)
+Api --> Lib : L'api répond avec une requête structurée, \nLa lib traite la requête pour créer un objet Resultat (plus facilement, utilisable)
+Lib --> Serveur : Récupère le text pour l'affichage
+
+Serveur --> Client : Envoie le texte formatter avec du html et du css
+
+
+
+
+
+@enduml
\ No newline at end of file
diff --git a/document/diag_seq.png b/document/diag_seq.png
new file mode 100644
index 0000000000000000000000000000000000000000..0ffc8fc72f772ed4a71066ea9f7ad464e1b7a8f3
Binary files /dev/null and b/document/diag_seq.png differ