Team Ai
Apppublic

Ray1mo/codegenius-ai-assistant-bot

sourceHugging Faceupdated 1y agoView on Hugging Face
0likes
script.js92 linesDownload Raw Back to root
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