源码在最后面 调用的不是文心官方接口
可以正常聊天 有打字动画
效果图

源代码
<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>聊天界面</title>
    <style>
        body {
            font-family: Arial, sans-serif;
            background-color: #121212;
            margin: 0;
            padding: 0;
            color: #ffffff;
        }
        .chat-container {
            width: 400px;
            margin: 50px auto;
            background-color: #1f1f1f;
            border-radius: 10px;
            box-shadow: 0 4px 20px rgba(0, 0, 0, 0.5);
            overflow: hidden;
            padding: 20px;
        }
        .system-message {
            text-align: center;
            background-color: #ff4d4d;
            padding: 10px;
            border-radius: 5px;
            margin: 10px 0;
            cursor: pointer;
            color: #ffffff;
        }
        .message {
            display: flex;
            align-items: flex-start;
            margin-bottom: 15px;
            cursor: pointer;
        }
        .avatar {
            width: 40px;
            height: 40px;
            border-radius: 50%;
            margin-right: 10px;
        }
        .message-content {
            max-width: 70%;
            background-color: #2c2c2c;
            border-radius: 10px;
            padding: 10px;
            position: relative;
            box-shadow: 0 2px 10px rgba(0, 0, 0, 0.3);
        }
        .message-content p {
            margin: 0;
            word-wrap: break-word;
            color: #ffffff;
        }
        .username {
            font-size: 12px;
            color: #ff9999;
            margin-bottom: 5px;
        }
        .message.left {
            justify-content: flex-start;
        }
        .message.right {
            justify-content: flex-end;
        }
        .message.right .message-content {
            background-color: #ff4d4d;
            color: white;
        }
        .message.right .avatar {
            margin-left: 10px;
            margin-right: 0;
        }
        .input-group {
            display: flex;
            align-items: center;
            margin-top: 20px;
        }
        .input-group input[type="text"] {
            flex: 1;
            padding: 10px;
            border: 1px solid #ccc;
            border-radius: 5px;
            outline: none;
            color: #ffffff;
            background-color: #1f1f1f;
        }
        .input-group button {
            padding: 10px 15px;
            border: none;
            border-radius: 5px;
            background-color: #ff4d4d;
            color: white;
            cursor: pointer;
            outline: none;
            box-shadow: 0 2px 5px rgba(0, 0, 0, 0.3);
        }
        .input-group button:hover {
            background-color: #cc2e2e;
        }
    </style>
</head>
<body>
<div class="chat-container">
    <div class="system-message" id="system-message-1" onclick="showId('system-message-1')">AI聊天</div>
    
    <!-- 省略其他聊天消息 -->
    
    <div class="input-group">
        <input type="text" id="user-input" placeholder="输入你的消息...">
        <button onclick="sendMessage()">发送</button>
    </div>
</div>
<script>
function sendMessage() {
    var userInput = document.getElementById('user-input').value;
    if (userInput.trim()!== '') {
        // 添加用户发送的消息
        var messageElement = document.createElement('div');
        messageElement.classList.add('message', 'right');
        messageElement.innerHTML = `
            <div class="message-content">
                <div class="username">我</div>
                <p>${userInput}</p>
            </div>
            <img src="https://via.placeholder.com/40" alt="头像" class="avatar">
        `;
        document.querySelector('.chat-container').appendChild(messageElement);
        // 清空输入框
        document.getElementById('user-input').value = '';
        // 添加 AI 正在输入的消息
        var aiMessageElement = document.createElement('div');
        aiMessageElement.classList.add('message', 'left');
        aiMessageElement.innerHTML = `
            <img src="https://via.placeholder.com/40" alt="头像" class="avatar">
            <div class="message-content">
                <div class="username">AI</div>
                <p>正在输入...</p>
            </div>
        `;
        document.querySelector('.chat-container').appendChild(aiMessageElement);
        // 进行 API 请求
        fetch(`https://api.lolimi.cn/API/AI/wx.php?msg=${encodeURIComponent(userInput)}`)
          .then(response => response.json())
          .then(data => {
                // 先删除原有的“正在输入...”
                aiMessageElement.querySelector('p').textContent = '';
                // 使用打字特效更新 AI 的消息内容
                typeWriterEffect(aiMessageElement.querySelector('p'), data.data.output);
            })
          .catch(error => {
                console.error('请求出错:', error);
                // 在出错时也可以更新 AI 的消息内容
                aiMessageElement.querySelector('p').textContent = '出错了,请稍后再试。';
            });
    }
}
// 打字特效函数
function typeWriterEffect(element, text, speed = 50) {
    let index = 0;
    let interval = setInterval(() => {
        if (index < text.length) {
            element.textContent += text.charAt(index);
            index++;
        } else {
            clearInterval(interval);
        }
    }, speed);
}
</script>
</body>
</html>
 
JavaScript API调用方法(与上面无关)
 
 1. 定义API URL 
 
     - 定义要调用的API的URL 
 
     - 例如“https://api.oioweb.cn/api/common/Get60sWorldInsight” 
 
 
 2. 使用Fetch API发起请求 
 
     - 使用 
 fetch函数发起 
 GET请求 
 
     - 
 fetch函数返回一个 
 Promise,该 
 Promise在请求完成时解析为一个 
 Response对象。 
 
 
 3. 处理响应 
 
     - 检查响应是否成功 
 
     - 如果响应成功,调用 
 json()解析响应体为JSON格式。 
 
     - 
 json()方法也返回一个 
 Promise,该 
 Promise在解析完成后解析为一个 
 JavaScript对象。 
 
 
 4. 提取数据 
 
     - 从解析后的 
 JavaScript对象中提取 
 “result”字段的数据。 
 
代码实现
// 定义API URL
const url = 'https://api.oioweb.cn/api/common/Get60sWorldInsight';
// 使用fetch API发起请求
fetch(url)
  .then(response => {
    // 检查响应是否成功
    if (!response.ok) {
      throw new Error(`HTTP error! Status: ${response.status}`);
    }
    // 解析JSON响应
    return response.json();
  })
  .then(data => {
    // 提取'result'数据
    const result = data.result;
    // 输出结果到控制台
    console.log(result);
  })
  .catch(error => {
    // 处理任何发生的错误
    console.error('There was a problem with the fetch operation:', error);
  }); 



















