18行代码,纯前端实现ChatGPT聊天机器人

大家好,我是创业时长五年半的张总,喜欢唱、跳、rap、篮球。

最近一年我做了几款AI产品,主要是SD绘画和AI Chat类产品,所以对于各类AI产品开发略有些心得。接下来我会分享如何从0到1开发各种各样的AI产品,以及关于技术、产品、和运营的一些见解。

本文是 《开发ChatGPT聊天机器人的100种姿势》 系列文章的第一篇,我会用N种方式教你从一个简单对话框写到一个完整的应用,每个姿势都力求舒服。

最简AI聊天机器人

千里之行,始于足下

先freestyle一个最简18行代码的ChatGPT聊天机器人。

使用纯HTML、JavaScript实现,不使用任何第三方库。打开网页后会发送"你好"给ChatGPT,ChatGPT收到后会在控制台输出响应的结果。

html 复制代码
<html>
<head>
  <script>
    const headers = new Headers();
    headers.append("Content-Type", "application/json");
    headers.append("Authorization", "Bearer sk-UgtZ6M4qw7Ycfzok0cC1E8C690A04b92B38e381c4c5661D5");
    const body = JSON.stringify({
      model: "gpt-3.5-turbo",
      messages: [{ role: "user", content: "你好" }],
    });
    const requestOptions = { method: 'POST', headers, body };
    fetch("https://ai98.vip/v1/chat/completions", requestOptions)
      .then(response => response.text())
      .then(result => console.log(result))
      .catch(error => console.log('error', error));
  </script>
</head>
</html>

实操

  1. 复制上面的代码,保存为index.html,双击运行
  2. 打开浏览器控制台,如果能看到下面的数据,那么恭喜你,你的第一个AI应用就写好了!

如果报错,去控制台看问题,比如apiKey失效(key是有额度限制的,具体看"注意"事项)

知识要点

  • 设置HTTP请求中header的Authorization属性,这是请求API的秘钥。扩展知识JWT
  • 使用原生Fetch API作为请求方法
  • 调用OpenAI API ,model是请求的模型,messages是消息列表,其中role是消息的角色(system、user、assistant等),content是内容,本文代码中是user角色,表示是用户发送的消息 ``

注意:

  • 因为一些原因,OpenAI官方的API可能无法访问,所以,代码中我使用了代理地址
  • 代码中的sk-xxxx是访问API的key,key是真实的,我免费开放了$10的额度,用完可以再问我要

下期预告

  • 📝 支持连续对话功能,具备上下文记忆

  • 📜 支持Stream流式对话(打字机效果)

  • 🌀 新增加载中的css动效

效果预览:

Sige

文章有写的不好的地方,欢迎指正。

前几期可能没有一些"炫酷"的代码和界面,主打一个简洁、高效,快速上手。

系列代码可以在Github仓库中查看:GitHub - miaoihan/100way-to-build-ai: 开发AI应用的100种姿势

本文用到的工具

vscode、Chrome、Mac自带截图工具、GIF Brewery 3动图录制

参考资料

相关推荐
xifangge20252 小时前
基于 JavaScript 实现 CNC 数控切削参数与螺纹公差纯前端核算引擎
开发语言·前端·javascript
阿里云大数据AI技术2 小时前
云栖实录|从数据闭环到模型闭环,阿里云全栈方案助力多模态AI走向生产
人工智能·agent
“AI国潮设计-小江”2 小时前
【AIGC实战】Python+SDXL批量生成「潮汕英歌舞冰淇淋蛋糕&红桃粿咖啡」IP,固定角色形象批量出甜品商业效果图
开发语言·人工智能·python·prompt·aigc
Leo.yuan3 小时前
企业级AI分析平台技术选型:FineBI(AI原生版)的NL2BI架构与业务适配能力
大数据·人工智能
疯狂奔跑华丽跌倒3 小时前
医药行业数据治理工具选型,需匹配业务与AI落地需求
大数据·人工智能·经验分享
wangruofeng3 小时前
2026 Web 技术选型指南,AI 时代如何选择适合项目的技术栈
前端·aigc·ai编程
飞哥数智坊3 小时前
我用 WorkBuddy 复刻了 Claude 的 Vibe Video,效果不错
人工智能
small_wh1te_coder3 小时前
AI技术总监级拆解大模型|第21讲:大模型微调工程——什么时候用 LoRA?深度拆解 PEFT 低秩分解、QLoRA 与成本账本
人工智能
honkun63 小时前
vue 表格组件 vxe-table 修改滚动条样式,修改滚动条样式,统一宽度、颜色与自动隐藏
前端·javascript·vue.js
紧跟先前的步伐3 小时前
Go AI Agent 实战 02|大语言模型(LLM)到底是怎么工作的
人工智能·语言模型·golang