当前位置: 首页 > news >正文

火山引擎接入豆包AI(纯前端调用api的方式)

前期准备

先在火山引擎那创建一个自定义推理接入点,地址:https://console.volcengine.com/ark/region:ark+cn-beijing/endpoint?config=%7B%7D

在这里插入图片描述

再点击右边 操作 的 api接入,复制粘贴自己的API Key

在这里插入图片描述

效果

效果

然后就可以去调用接口了
可以用jq模拟的方式,但是不推荐这种方式,因为要等完整的回答太慢了
建议开启流式传输,用Fetch API 实现逐字输出
我的API Key虽然贴出来了,方便大家测试,但是不建议大家直接用我的

代码

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>火山引擎豆包Dome</title></head><body><div id="chat-box"></div></body><script src="https://cdn.staticfile.net/jquery/1.10.2/jquery.min.js"></script><script>// 官网的例子// curl https://ark.cn-beijing.volces.com/api/v3/chat/completions \//   -H "Content-Type: application/json" \//   -H "Authorization: Bearer $ARK_API_KEY" \//   -d '{//     "model": "doubao-1-5-pro-32k-250115",//     "messages": [//       {"role": "system","content": "你是人工智能助手."},//       {"role": "user","content": "你好"}//     ]//   }'// 具体对话let data = {model: "doubao-1-5-pro-32k-250115",stream: true, // 流式传输messages: [{ role: "system", content: "你是人工智能助手." },{ role: "user", content: "你好,我是前端开发,请问我怎么找工作?" },],};// 1.jquery的调用方式,不行,必须关闭流式传输,最多只能等接口全部加载成功后通过计时器模拟,不能逐字输出// let fullResponse = "";// let charIndex = 0;// $.ajax({//   type: "post",//   url: "https://ark.cn-beijing.volces.com/api/v3/chat/completions",//   dataType: "json",//   contentType: "application/json", // 明确指定内容类型//   headers: {//     Authorization: "Bearer b3025ba7-2241-4794-b983-5089b0719ea6",//   },//   data: JSON.stringify(data),//   success: (res) => {//     console.log(res);//     const text = res.choices[0].message.content;//     const timer = setInterval(() => {//       if (charIndex < text.length) {//         fullResponse += text.charAt(charIndex);//         $("#chat-box").text(fullResponse);//         charIndex++;//       } else {//         clearInterval(timer);//       }//     }, 50); // 每50毫秒输出一个字//   },// });// 2.Fetch API 实现逐字输出const chatBox = document.getElementById("chat-box");let fullMessage = "";async function streamChat() {const response = await fetch("https://ark.cn-beijing.volces.com/api/v3/chat/completions",{method: "POST",headers: {"Content-Type": "application/json",Authorization: "Bearer b3025ba7-2241-4794-b983-5089b0719ea6",},body: JSON.stringify(data),});const reader = response.body.getReader();const decoder = new TextDecoder();while (true) {const { done, value } = await reader.read();if (done) {document.querySelector(".typing-cursor")?.remove();break;}const chunk = decoder.decode(value);chunk.split("\n").forEach((line) => {if (line.startsWith("data: ")) {try {const data = JSON.parse(line.slice(6));if (data.choices?.[0]?.delta?.content) {fullMessage += data.choices[0].delta.content;renderMessage(fullMessage);}} catch (e) {}}});}}function renderMessage(text) {chatBox.innerHTML = `<div class="message">${text}</div><span class="typing-cursor"></span>`;chatBox.scrollTop = chatBox.scrollHeight;}streamChat();</script>
</html>
http://www.dtcms.com/a/319922.html

相关文章:

  • Java 大视界 -- Java 大数据在智能教育在线课程互动优化与学习体验提升中的应用(386)
  • E频段芯片解决方案
  • npm 与 npx 区别详解。以及mcp中npx加载原理。
  • 2025年生成式大模型部署与推理优化全景解析
  • 14天搞定Excel公式:告别加班,效率翻倍!
  • 【YOLOv8改进 - 上采样】EUCB:(Efficient Up-convolution Block,高效上卷积块)实现特征图尺度匹配和高效上采样
  • 网络编程基石:域名系统与默认端口号详解
  • 文章采集发布Destoon网站技巧
  • C语言函数与预编译:模块化编程的精髓
  • 【AI论文】细胞锻造(CellForge):虚拟细胞模型的智能体化设计
  • 上岸AAAI 2025:自适应框架+前沿算法,顶会热点方向
  • 【VLLM篇】:原理-实现
  • 【论文阅读】基于元模型的体系知识图谱构建
  • spring boot学习计划
  • 什么是AI Agents
  • 机器学习算法篇(四)决策树算法
  • XCZU19EG-2FFVB1517I FPGA Xilinx AMD ZynqUltraScale+ MPSoC
  • 如何验证Go代理是否设置成功?
  • 深入探索C++模板实现的单例模式:通用与线程安全的完美结合
  • SpringBoot的优缺点
  • MyBatis 操作数据库
  • Orange的运维学习日记--33.DHCP详解与服务部署
  • Linux 系统启动、systemd target 与 root 密码重置指南
  • vector模拟实现
  • Seelen UI:高效的设计与原型制作工具
  • 解决winform中的listbox实现拖拽时,遇到combox控件会闪烁的问题
  • APM-SigNoz可观测性系统搭建
  • TDengine IDMP 文档介绍
  • 密集场所漏检率↓78%!陌讯自适应多模态口罩识别算法实战解析
  • 【bioinfo】ncbiRefSeq数据库下载