一行 fetch 调用的魔力:把 DeepSeek 大模型搬进你的前端

30 阅读4分钟

前端开发的演进之路

Web 1.0 时代

在早期的 Web 1.0 时代,前端开发相对简单:

  • 用户输入 URL 或点击链接(体验较为死板)
  • 向服务端发送请求
  • 服务器(node/java)处理请求,查询数据库,生成 HTML 字符串
  • 返回整个 HTML 页面给浏览器
  • HTML/CSS/JS 职责单一,服务器端返回的 JS 只做简单交互

Web 2.0 时代

随着技术发展,前端体验有了质的飞跃:

  • JavaScript 开始主动请求后端服务器
  • 实现了更丰富的交互体验:
    • 滚动加载更多数据,提供富应用体验
    • 不需要刷新页面,通过 fetch 获取新数据,DOM 直接更新
    • 社交功能(如点赞)通过 JS fetch API 实现
// Web 2.0 示例:无需刷新页面获取数据
fetch('https://api.github.com/users/pose203/repos')
  .then(res => res.json())
  .then(data => {
    document.querySelector('#reply').innerHTML += data.map(repo => `
      <ul><li>${repo.name}</li></ul>`).join('')
  })

Fetch:前端请求的革命

Fetch API 的特点与应用

Fetch API 是现代前端开发中不可或缺的工具,它彻底改变了前端与服务端的交互方式:

  • 无刷新数据获取

    • 滚动到底部后,加载更多数据,提供 Web 2.0 富应用体验
    • 用户可以持续看到新的内容,无需等待整页刷新
  • 简洁而强大的语法

    • 基于 Promise,支持链式调用
    • 不需要刷新页面,主动去服务端取数据,直接通过 DOM 更新页面
  • 社交功能实现

    • 点赞等功能通过 js fetch api 实现
    • 用户操作即时反馈,无需等待页面重载
  • 前端自主性

    • 前端获得了主动请求数据的能力
    • 可控制何时、如何获取数据并展示

Fetch 在 AI 时代的新角色

进入 LLM AI 时代后,fetch 的价值得到了进一步扩展:

  • 作为连接前端与 AI 大模型的桥梁
  • 通过 fetch 调用可以直接获取大模型的能力
  • 使智能前端真正成为可能

WebLLM:AI 驱动的智能前端时代

大模型与前端的融合

  • 大模型在哪?
    • 远程部署
    • 通过 HTTP API 请求访问
  • LLM 服务的特点
    • API 调用方式统一
    • fetch 赋予了 JS 连接 AI 能力的新生命

WebLLM 的核心价值

智能前端的新战场就是如何将 DeepSeek 等大模型能力无缝引入前端应用,让 AI 能力直接服务于用户界面。

HTTP 请求的构成

与大模型交互的 HTTP 请求主要包含:

  1. 请求行:定义请求方法和 URL

    GET http://www.baidu.com
    POST https://api.deepseek.com/chat/completions
    
  2. 请求头:包含元数据和认证信息

    {
      content-Type: application/json
      Authorization: Bearer 1234567890 凭证
    }
    
  3. 请求体 包含发送给大模型的具体内容和参数

实现 WebLLM:DeepSeek 集成实例

项目运行方式

直接在浏览器中打开 'index.html' 文件即可

完整代码实现

// 定义 API 端点
const endpoint = "https://api.deepseek.com/chat/completions"

// 设置请求头
const headers = {
  'Content-Type': 'application/json',
  Authorization: `Bearer sk-69e882216f0e46228a116ddfbd6f9d82`
}

// 构建请求体
const payload = {
  model: 'deepseek-chat',
  messages: [
    // chat 三种角色
    // 1. 系统角色 只会出现一次 设置系统的角色 开始会话之前
    // 2. 用户角色
    // 3. 助手角色
    { role: 'system', content: 'You are a helpful assistant.'},
    { role: 'user', content: '你好 Deepseek'}
  ]
}

// 发送请求并处理响应
fetch(endpoint, {
  method: 'POST',
  headers: headers,
  // HTTP 请求传输只能是字符串或二进制
  body: JSON.stringify(payload)
  // 请求+LLM 生成需要花时间
  // HTTP 是基于请求响应的简单协议
})
.then(res => res.json())
// 解析返回的 JSON 数据也要花时间
.then(data => {
  console.log(data);
  document.querySelector('#reply').innerHTML = data.choices[0].message.content
})

结语:前端的新未来

从 Web 1.0 到 Web 2.0,再到如今的 AI 智能前端时代,前端开发经历了巨大的变革。fetch 这个 API 不仅改变了我们与后端服务交互的方式,现在更成为连接前端与 AI 大模型的关键桥梁。

WebLLM 代表了前端开发的新方向 —— 通过简单的 API 调用,我们能将强大的人工智能能力直接引入网页应用,为用户提供更智能、更个性化的体验。智能前端的时代已经到来,大模型能力将成为前端开发的标配工具。