以下是一个可能的实现:

// 创建WebSocket连接
const socket = new WebSocket('ws://localhost:3000/completions?stream=true');

// 获取文本框元素
const textArea = document.getElementById('text-area');

// 监听WebSocket连接打开事件
socket.addEventListener('open', () => {
  console.log('WebSocket连接已打开');

  // 发送聊天请求
  socket.send(JSON.stringify({
    type: 'chat',
    text: ''
  }));
});

// 监听WebSocket消息事件
socket.addEventListener('message', event => {
  const message = JSON.parse(event.data);
  
  // 如果消息类型为stream,则将数据逐字打印到文本框
  if (message.type === 'stream') {
    textArea.value += message.data;
  }
});

// 监听WebSocket连接关闭事件
socket.addEventListener('close', () => {
  console.log('WebSocket连接已关闭');
});

需要注意的是,上述代码仅适用于文本框元素的value属性可以直接设置文本内容,如果需要在其他元素中打印文本,需要使用不同的API。另外,还需要根据具体情况进行调整,例如更改WebSocket连接的URL、调整文本框的ID等。

js调用v1chatcompletions 使用stream为true接收到的数据转为文本逐字打印到文本框

原文地址: https://www.cveoy.top/t/topic/M9e 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录