首页 / 知识库 / 系统架构体系 / 项目到底如何部署

17 - AI 能力直接调云端 API

我们这套项目里有”AI 应用”这一环。现代做法是:不自己部署大模型,直接调用云端 AI API。这一章讲清为什么,以及调用时要注意什么。

为什么不自己部署大模型

你当然可以把一个开源大模型下载下来自己跑,但对绝大多数应用来说,这是个糟糕的主意:

  • :大模型要跑在昂贵的 GPU 上,一张卡一个月就得几千上万,还得一直开着
  • :模型部署、显存优化、推理加速,都是专门的技术活
  • 不划算:你的流量没那么大时,一张 GPU 大部分时间在空转烧钱
  • 更新累:模型迭代飞快,自己维护永远追不上

这和”自己买服务器 vs 用 Serverless”是同一个道理:通用的重活,交给专业的云服务,你只管调用。

现代做法:调云端 AI API

云厂商/大模型厂商把模型能力做成了 API,你像调用一个普通 HTTP 接口一样调它,按调用量付费:

  • 阿里云:通义千问(DashScope)
  • 字节:豆包(火山方舟)
  • 其他:智谱、月之暗面、DeepSeek 等,大多兼容 OpenAI 的调用格式

你的后端(跑在 Serverless 上)在需要 AI 能力时,就去调这个 API,拿到结果返回给前端。

# 后端里调用 AI API 的示意(伪代码)
import os, requests

def ask_ai(question: str) -> str:
    resp = requests.post(
        "https://ai-provider.com/v1/chat/completions",
        headers={"Authorization": f"Bearer {os.environ['AI_API_KEY']}"},  # 密钥走环境变量
        json={"model": "qwen-plus", "messages": [{"role": "user", "content": question}]},
    )
    return resp.json()["choices"][0]["message"]["content"]

[配图:Serverless 后端把用户问题转发给”AI 云 API”(画成一朵带大脑图标的云),拿到回答再返回给前端]

调用时要注意的几件事

1. 密钥管理(最重要)

AI API 的密钥(API Key)等于钱包,泄露了别人能拿你的钱刷调用。

  • 绝不写进前端代码(前端代码用户能看到源码,等于把钥匙贴门上)
  • 一定由后端持有并调用,密钥放环境变量 / Secrets
  • 前端只和你自己的后端说话,后端再去调 AI

2. 成本控制

AI API 按 token(字数) 计费,可能是项目里最大的开销。

  • 控制 prompt 长度、限制返回长度
  • 给用户做用量限制 / 限流,防止被恶意刷爆
  • 用量告警,别等账单来了才发现

3. 限流与重试

API 有调用频率上限(QPS 限制)。高并发时要做好排队、重试、降级(比如繁忙时提示用户稍后再试)。

4. 超时与长任务

AI 生成可能较慢。结合第 14 章:如果生成很久,别让一个请求死等(Serverless 有时长限制),可以用流式返回(一边生成一边吐字)或异步任务

这一切怎么串起来

回到全景图:用户提问 → 前端发给你的后端 → 后端带着密钥去调 AI 云 API → 拿到回答 → 存进云数据库 → 返回前端。

AI 能力是”借来的”(云 API),数据是”自己存的”(云数据库),后端只是中间的”调度员”。

小结

  • 别自己部署大模型(贵、难、不划算),直接调云端 AI API(通义、豆包等)。
  • 后端持有密钥去调,密钥绝不进前端、放环境变量
  • 注意:成本(按 token 计费)、限流重试、超时/长任务用流式或异步。
  • AI 能力借云 API,数据存云数据库,后端做调度。

数据库和 AI 都用云服务了。这背后其实有一个统一的原则在支撑——无状态思维。下一章把它讲透。


下一章 → 18 - 无状态思维:现代后端的核心原则