Ray1mo/codegenius-ai-assistant-bot
0
1 2 3 4document.addEventListener('DOMContentLoaded', () => {5 const userInput = document.getElementById('user-input');6 const sendBtn = document.getElementById('send-btn');7 const chatMessages = document.getElementById('chat-messages');8 9 const addMessage = (sender, message) => {10 const messageDiv = document.createElement('div');11 messageDiv.className = sender === 'bot' ? 12 'bot-message bg-blue-50 p-4 rounded-lg new-message' : 13 'user-message bg-gray-100 p-4 rounded-lg ml-auto new-message';14 15 if (sender === 'bot') {16 messageDiv.innerHTML = `17 <div class="flex items-start gap-3">18 <div class="bg-blue-100 p-2 rounded-full">19 <i data-feather="cpu" class="text-blue-500"></i>20 </div>21 <div>22 ${marked.parse(message)}23 </div>24 </div>25 `;26 } else {27 messageDiv.innerHTML = marked.parse(message);28 }29 30 chatMessages.appendChild(messageDiv);31 messageDiv.scrollIntoView({ behavior: 'smooth' });32 feather.replace();33 };34 35 // Initial greeting36 addMessage('bot', "SwiftCoder here. What code do you need?");37 38 const getAIResponse = async (userMessage) => {39 const response = await fetch('https://api.openai.com/v1/chat/completions', {40 method: 'POST',41 headers: {42 'Content-Type': 'application/json',43 'Authorization': `Bearer YOUR_OPENAI_API_KEY`44 },45 body: JSON.stringify({46 model: "gpt-4o",47 messages: [{48 role: "system",49 content: "You are SwiftCoder AI, an ultra-responsive coding assistant. Characteristics:\n" +50 "- Respond in ANY language matching the user's input language\n" +51 "- Always lead with working code\n" +52 "- Keep responses concise (max 3 sentences unless asked for more)\n" +53 "- Skip intros/disclaimers unless specifically requested\n" +54 "- First response: 'SwiftCoder here. What code do you need?'\n" +55 "- If explanation needed, provide it AFTER the code\n" +56 "- Always ask if modifications are needed after each solution\n" +57 "- Example response pattern:\n" +58 "```lang\n[CODE]\n```\n" +59 "Brief context/example. Need modification?"60 }, {61 role: "user",62 content: userMessage63 }],64 temperature: 0.365 })66 });67 68 const data = await response.json();69 return data.choices[0].message.content;70 };71 72 const handleSendMessage = async () => {73 const message = userInput.value.trim();74 if (!message) return;75 76 addMessage('user', message);77 userInput.value = '';78 79 try {80 const response = await getAIResponse(message);81 addMessage('bot', response);82 } catch (error) {83 addMessage('bot', "Error: Couldn't process request. Try again.");84 console.error(error);85 }86 };87 88 sendBtn.addEventListener('click', handleSendMessage);89 userInput.addEventListener('keypress', (e) => {90 if (e.key === 'Enter') handleSendMessage();91 });92 