deepseek互动 调用官方API html页面源码-建站教程

deepseek互动 调用官方API html页面源码 需要在185行替换为自己实际的API密钥

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>J.A.R.V.I.S 智能助手</title>
    <style>
        :root {
            --primary-blue: #3b82f6;
            --ai-yellow: #eab308;
            --bg-color: #f8fafc;
        }

        body {
            font-family: 'Segoe UI', system-ui, sans-serif;
            background: var(--bg-color);
            margin: 0;
            padding: 20px;
        }

        .jarvis-container {
            max-width: 800px;
            margin: 0 auto;
            background: white;
            border-radius: 16px;
            box-shadow: 0 10px 15px rgba(0,0,0,0.05);
            overflow: hidden;
        }

        .chat-area {
            height: 70vh;
            padding: 30px;
            overflow-y: auto;
            background: linear-gradient(135deg, #f8fafc 0%, #f1f5f9 100%);
            position: relative;
        }

        .message {
            margin: 20px 0;
            opacity: 0;
            animation: messageAppear 0.4s cubic-bezier(0.18, 0.89, 0.32, 1.28) forwards;
        }

        @keyframes messageAppear {
            from { opacity: 0; transform: translateY(20px); }
            to { opacity: 1; transform: translateY(0); }
        }

        .user-message {
            margin-left: 25%;
            background: white;
            border: 2px solid var(--primary-blue);
            border-radius: 20px 20px 5px 20px;
            padding: 18px;
        }

        .jarvis-message {
            margin-right: 25%;
            background: white;
            border: 2px solid var(--ai-yellow);
            border-radius: 20px 20px 20px 5px;
            padding: 18px;
            position: relative;
        }

        .thinking-overlay {
            position: absolute;
            top: 0;
            left: 0;
            right: 0;
            bottom: 0;
            background: rgba(255,255,255,0.9);
            display: none;
            justify-content: center;
            align-items: center;
            font-size: 1.2em;
            color: var(--ai-yellow);
        }

        .thinking-text {
            animation: pulse 1.5s infinite;
        }

        @keyframes pulse {
            0%, 100% { opacity: 1; }
            50% { opacity: 0.5; }
        }

        .copy-toolbar {
            position: absolute;
            top: 10px;
            right: 15px;
            display: flex;
            gap: 8px;
            opacity: 0;
            transition: opacity 0.3s;
        }

        .message:hover .copy-toolbar {
            opacity: 1;
        }

        .copy-btn {
            background: none;
            border: 1px solid #ddd;
            border-radius: 4px;
            padding: 4px 8px;
            cursor: pointer;
            transition: all 0.2s;
        }

        .copy-btn:hover {
            background: #f1f5f9;
        }

        .input-panel {
            padding: 20px;
            background: white;
            border-top: 2px solid #e2e8f0;
        }

        .input-group {
            display: flex;
            gap: 12px;
        }

        input {
            flex: 1;
            padding: 16px;
            border: 2px solid #e2e8f0;
            border-radius: 12px;
            font-size: 16px;
            transition: border-color 0.3s;
        }

        input:focus {
            outline: none;
            border-color: var(--primary-blue);
        }

        button[type="submit"] {
            padding: 16px 32px;
            background: var(--primary-blue);
            color: white;
            border: none;
            border-radius: 12px;
            cursor: pointer;
            transition: transform 0.2s;
        }

        button[type="submit"]:hover {
            transform: translateY(-1px);
        }

        .paragraph {
            margin: 12px 0;
            line-height: 1.8;
            white-space: pre-wrap;
        }
    </style>
</head>
<body>
    <div class="jarvis-container">
        <div class="chat-area" id="chatArea">
            <div class="thinking-overlay" id="thinkingOverlay">
                <div class="thinking-text">&#128993; 贾维斯正在思考中...</div>
            </div>
        </div>

        <div class="input-panel">
            <form class="input-group">
                <input
                    type="text"
                    id="userInput"
                    placeholder="输入您的指令..."
                    autocomplete="off"

                >
                <button type="submit" id="submitBtn">发送</button>
            </form>
        </div>
    </div>

    <script>
        const API_KEY = 'YOUR_API_KEY'; // 替换为实际API密钥
        const API_ENDPOINT = 'https://api.deepseek.com/v1/chat/completions';
        let isProcessing = false;

        // 智能文本格式化
        function formatResponse(text) {
            return text.split(/\n{2,}/g).map(paragraph => {
                return `<div class="paragraph">${paragraph.replace(/\n/g, '<br>')}</div>`;
            }).join('');
        }

        function createMessageElement(role, content) {
            const messageId = `msg-${Date.now()}`;
            const element = document.createElement('div');
            element.className = `message ${role}-message`;
            element.innerHTML = `
                <div class="content" id="${messageId}">
                    ${formatResponse(content)}
                </div>
                <div class="copy-toolbar">
                    <button class="copy-btn">复制</button>
                </div>
            `;
            return element;
        }

        async function sendMessage() {
            if (isProcessing) return;

            const inputField = document.getElementById('userInput');
            const message = inputField.value.trim();
            if (!message) return;

            try {
                isProcessing = true;
                inputField.disabled = true;
                document.getElementById('thinkingOverlay').style.display = 'flex';

                // 添加用户消息
                const userElement = createMessageElement('user', message);
                document.getElementById('chatArea').appendChild(userElement);

                // API请求
                const response = await fetch(API_ENDPOINT, {
                    method: 'POST',
                    headers: {
                        'Content-Type': 'application/json',
                        'Authorization': `Bearer ${API_KEY}`
                    },
                    body: JSON.stringify({
                        model: "deepseek-chat",
                        messages: [{ role: "user", content: message }],
                        temperature: 0.7,
                        presence_penalty: 0.6
                    })
                });

                if (!response.ok) throw new Error(`API错误: ${response.status}`);

                const data = await response.json();
                const reply = data.choices[0].message.content;

                // 添加AI响应
                const aiElement = createMessageElement('jarvis', reply);
                document.getElementById('chatArea').appendChild(aiElement);

            } catch (error) {
                const errorElement = createMessageElement('jarvis', `&#9888;&#65039; 系统错误: ${error.message}`);
                document.getElementById('chatArea').appendChild(errorElement);
            } finally {
                inputField.value = '';
                inputField.disabled = false;
                isProcessing = false;
                document.getElementById('thinkingOverlay').style.display = 'none';
                chatArea.scrollTop = chatArea.scrollHeight;
            }
        }

        // 复制功能
        function copyContent(elementId) {
            const element = document.getElementById(elementId);
            const text = element.innerText.replace(/\n{3,}/g, '\n\n');
            navigator.clipboard.writeText(text);
        }

        // 智能输入处理
        function handleKeyDown(e) {
            if (e.key === 'Enter' && !e.shiftKey) {
                e.preventDefault();
                sendMessage();
            }
        }

        // 初始化滚动定位
        const chatArea = document.getElementById('chatArea');
        chatArea.scrollTop = chatArea.scrollHeight;
        // 绑定表单提交事件
        document.querySelector('form').addEventListener('submit', (e) => {
            e.preventDefault();
            sendMessage();
        });

        // 绑定输入框键盘事件
        document.getElementById('userInput').addEventListener('keydown', handleKeyDown);

        // 绑定复制按钮事件(补充功能)
        document.addEventListener('click', (e) => {
            if (e.target.classList.contains('copy-btn')) {
                const messageId = e.target.closest('.message').querySelector('.content').id;
                copyContent(messageId);
            }
        });
    </script>
</body>
</html>

🚨如当前文章或资源存在一些违规,麻烦友友们点击此链接进行举报,站长会第一时间进行处理,非常感谢!

THE END
点赞9

猜你喜欢

2026-07-23
惊悚片
《恐怖丈母娘》电影高清完整版视频在线观看 全集
#2021#恐怖丈母娘
《恐怖丈母娘》美国2021年电影,提供高清在线观看服务,正片,导演:David DeCoteau,主演:戴·扬、爱丽珊·麦卡蒂、杰基·哈里
35分钟前 20
动画电影
《Healin.Good.光之美少女.梦想的小镇心动不已》电影高清完整版视频在线观看 全集
《Healin.Good.光之美少女.梦想的小镇心动不已》日本2021年电影,提供高清在线观看服务,正片,导演:中村亮太,主演:悠木碧、...
35分钟前 · 21
顺义区龙湾屯中学第一美女校花王瑾石写真照片-高中校花图片,美女校花图片大全
海量高清校花图片每日更新,清纯、性感、最美校花门系列一网打尽。带你领略校园女神的多样魅力!顺义区龙湾屯中学校花资料姓名:王瑾石学校:顺义区龙湾屯中学生日:9月16日...
izike
《发动机的噪音》电影高清完整版视频在线观看 全集-izike
剧情片#2026#剧情 视频
《发动机的噪音》电影高清完整版视频在线观看 全集
《发动机的噪音》加拿大2026年电影,提供高清在线观看服务,正片,导演:Philippe Grégoire,主演:Robert Naylor、Arnmundur E...
1小时前 32 0
剧情片 视频
《全体登船》电影高清完整版视频在线观看 全集
《全体登船》美国2021年电影,提供高清在线观看服务,正片,导演:J.J. Jia,主演:George Stumpf、Effy Han、Glen Caspillo
#2021#全体登船#剧情
1小时前 21 0
美女校花图片
顺义区第九中学最美女校花庞雯宇写真照片-高中校花图片,美女校花图片大全
海量高清校花图片每日更新,清纯、性感、最美校花门系列一网打尽。带你领略校园女神的多样魅力!顺义区第九中学校花资料姓名:庞...
1小时前 · 26
剧情片#2021#剧情 视频
《天竺葵》电影高清完整版视频在线观看 全集
《天竺葵》土耳其2021年电影,提供高清在线观看服务,正片,导演:恰厄尔·博库特,主演:Ilayda Elif Elhih、Ali Seçkiner Alici、埃夫伦·杜亚尔
1小时前 21 0
《天竺葵》电影高清完整版视频在线观看 全集-izike
短剧#2026#中国大陆 视频
《绝世邪医》电影高清完整版视频在线观看 全集
《绝世邪医》中国大陆2026年电影,提供高清在线观看服务,全集完结,主演:孙虎城、朱艺莉
1小时前 37 0
《绝世邪医》电影高清完整版视频在线观看 全集-izike
2026-07-23
美女校花图片
梅县龙虎中学第一美女校花梁洁妤写真照片-高中校花图片,美女校花图片大全
#唯美校花#性感校花图片
海量高清校花图片每日更新,清纯、性感、最美校花门系列一网打尽。带你领略校园女神的多样魅力!梅县龙虎中学校花资料姓名:梁洁妤学校:梅县龙虎中学生日:5月18日星座:金牛座身高:168.5 cm体...
2小时前 20
《WWE:幕后追踪 第3季》综艺高清完整版视频在线观看 全集
《WWE:幕后追踪 第3季》美国2026年综艺,提供高清在线观看服务,第5期完结
232026.07
美女校花图片
青岛盲人高级中学第一美女校花王睿天写真照片-高中校花图片,美女校花图片大全
海量高清校花图片每日更新,清纯、性感、最美校花门系列一网打尽。带你领略校园女神的多样魅力!青岛盲人高级中学校花资料姓名:王睿天学校:青岛盲人高级中学生日:2月23日星座:双鱼座身高:168.7 cm体重:51.9 kg...
2小时前 41 0
美女校花图片
延安中学附属虹桥机场学校最美女校花牛力桦写真照片-高中校花图片,美女校花图片大全
海量高清校花图片每日更新,清纯、性感、最美校花门系列一网打尽。带你领略校园女神的多样魅力!延安中学附属虹桥机场学校校花资料姓名:牛力桦学校:延安中学附属虹桥机场...
#唯美校花#延安中学附属虹桥机场学校#性感校花图片
2小时前 27 0
短剧
《重生追妻,夫人别逃》电影高清完整版视频在线观看 全集
《重生追妻,夫人别逃》中国大陆2026年电影,提供高清在线观看服务,全集完结,主演:王楚贤、薛景元
3小时前 · 36