Abmacode12 commited on
Commit
df6accb
·
verified ·
1 Parent(s): 3132285

Je vous remercie pour votre travail. J’ai bien récupéré ma clé API OpenAI. Pourriez-vous l’intégrer à notre système afin que l’IA soit pleinement fonctionnelle (chat, génération d’images, etc.) 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

Browse files
Files changed (3) hide show
  1. index.html +4 -2
  2. script.js +103 -2
  3. style.css +24 -0
index.html CHANGED
@@ -34,9 +34,11 @@
34
  <div class="activity-monitor">[ Activité IA en cours... ]</div>
35
  </div>
36
  <div class="chat-messages" id="chatMessages">
37
- <!-- Messages Rosalinda ici -->
 
 
38
  </div>
39
- <div class="chat-input">
40
  <button title="Ajouter un fichier"><i class="fas fa-plus"></i></button>
41
  <button title="Connexion"><i class="fas fa-plug"></i></button>
42
  <input type="text" placeholder="Écrire à Rosalinda..." />
 
34
  <div class="activity-monitor">[ Activité IA en cours... ]</div>
35
  </div>
36
  <div class="chat-messages" id="chatMessages">
37
+ <ai-assistant>
38
+ Bonjour ! Je suis Rosalinda, votre assistante IA. Comment puis-je vous aider aujourd'hui ?
39
+ </ai-assistant>
40
  </div>
41
+ <div class="chat-input">
42
  <button title="Ajouter un fichier"><i class="fas fa-plus"></i></button>
43
  <button title="Connexion"><i class="fas fa-plug"></i></button>
44
  <input type="text" placeholder="Écrire à Rosalinda..." />
script.js CHANGED
@@ -1,4 +1,105 @@
1
 
2
- console.log("Interface Espace Codage chargée.");
 
 
3
 
4
- // Tu pourras ajouter ici les fonctions pour Rosalinda plus tard
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
 
2
+ // Configuration OpenAI
3
+ const OPENAI_API_KEY = "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";
4
+ const OPENAI_API_URL = "https://api.openai.com/v1";
5
 
6
+ // Éléments DOM
7
+ const chatMessages = document.getElementById('chatMessages');
8
+ const chatInput = document.querySelector('.chat-input input');
9
+ const sendButton = document.querySelector('.chat-input button[title="Envoyer"]');
10
+ const codeOutput = document.getElementById('codeOutput');
11
+
12
+ // Gestionnaire d'envoi de message
13
+ sendButton.addEventListener('click', sendMessage);
14
+ chatInput.addEventListener('keypress', (e) => {
15
+ if (e.key === 'Enter') sendMessage();
16
+ });
17
+
18
+ async function sendMessage() {
19
+ const message = chatInput.value.trim();
20
+ if (!message) return;
21
+
22
+ // Afficher le message de l'utilisateur
23
+ addMessage('user', message);
24
+ chatInput.value = '';
25
+
26
+ try {
27
+ // Appel à l'API OpenAI
28
+ const response = await fetch(`${OPENAI_API_URL}/chat/completions`, {
29
+ method: 'POST',
30
+ headers: {
31
+ 'Content-Type': 'application/json',
32
+ 'Authorization': `Bearer ${OPENAI_API_KEY}`
33
+ },
34
+ body: JSON.stringify({
35
+ model: "gpt-4",
36
+ messages: [{ role: "user", content: message }],
37
+ temperature: 0.7
38
+ })
39
+ });
40
+
41
+ const data = await response.json();
42
+ const aiResponse = data.choices[0].message.content;
43
+
44
+ // Afficher la réponse de l'IA
45
+ addMessage('assistant', aiResponse);
46
+
47
+ // Si la réponse contient du code, l'afficher dans la sortie code
48
+ if (aiResponse.includes('```')) {
49
+ const codeBlocks = aiResponse.match(/```[\s\S]*?```/g);
50
+ codeOutput.innerHTML = `<pre><code>${codeBlocks.join('\n\n').replace(/```/g, '')}</code></pre>`;
51
+ }
52
+ } catch (error) {
53
+ console.error('Erreur OpenAI:', error);
54
+ addMessage('assistant', "Désolé, une erreur s'est produite. Veuillez réessayer.");
55
+ }
56
+ }
57
+
58
+ function addMessage(sender, content) {
59
+ const messageDiv = document.createElement('div');
60
+ messageDiv.className = `message ${sender}`;
61
+ messageDiv.innerHTML = `
62
+ <div class="message-content">${content}</div>
63
+ `;
64
+ chatMessages.appendChild(messageDiv);
65
+ chatMessages.scrollTop = chatMessages.scrollHeight;
66
+ }
67
+
68
+ // Fonction pour générer des images
69
+ async function generateImage(prompt) {
70
+ try {
71
+ const response = await fetch(`${OPENAI_API_URL}/images/generations`, {
72
+ method: 'POST',
73
+ headers: {
74
+ 'Content-Type': 'application/json',
75
+ 'Authorization': `Bearer ${OPENAI_API_KEY}`
76
+ },
77
+ body: JSON.stringify({
78
+ prompt: prompt,
79
+ n: 1,
80
+ size: "1024x1024"
81
+ })
82
+ });
83
+
84
+ const data = await response.json();
85
+ return data.data[0].url;
86
+ } catch (error) {
87
+ console.error('Erreur génération image:', error);
88
+ return null;
89
+ }
90
+ }
91
+
92
+ // Exposer la fonction pour le bouton "Nouvelle tâche"
93
+ document.querySelector('.menu button:nth-child(1)').addEventListener('click', () => {
94
+ const prompt = prompt("Décrivez l'image que vous souhaitez générer:");
95
+ if (prompt) {
96
+ generateImage(prompt).then(url => {
97
+ if (url) {
98
+ const resultOutput = document.querySelector('.result-output');
99
+ resultOutput.innerHTML = `<img src="${url}" alt="Image générée" style="max-width:100%;">`;
100
+ }
101
+ });
102
+ }
103
+ });
104
+
105
+ console.log("Interface Espace Codage chargée avec intégration OpenAI.");
style.css CHANGED
@@ -72,6 +72,30 @@ body, html {
72
  padding: 10px;
73
  border: 1px solid #ddd;
74
  overflow-y: auto;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
75
  }
76
  .chat-input {
77
  display: flex;
 
72
  padding: 10px;
73
  border: 1px solid #ddd;
74
  overflow-y: auto;
75
+ display: flex;
76
+ flex-direction: column;
77
+ gap: 10px;
78
+ }
79
+ .message {
80
+ max-width: 80%;
81
+ padding: 10px 15px;
82
+ border-radius: 18px;
83
+ line-height: 1.4;
84
+ }
85
+ .message.user {
86
+ align-self: flex-end;
87
+ background: #6366f1;
88
+ color: white;
89
+ border-bottom-right-radius: 5px;
90
+ }
91
+ .message.assistant {
92
+ align-self: flex-start;
93
+ background: #e0e0e0;
94
+ color: #333;
95
+ border-bottom-left-radius: 5px;
96
+ }
97
+ .message-content {
98
+ white-space: pre-wrap;
99
  }
100
  .chat-input {
101
  display: flex;