最近很多做小程序的朋友问我:能不能给小程序加个AI对话功能?用户可以在小程序里直接问问题、查资料,不用跳到别的App。

答案是:可以,而且不难。ChatGPT API是最成熟的方案,一个小功能可能几十块钱的API费用就够了。这篇文章把整个过程拆开讲,从注册到跑通代码,你照着做就行。

💡 省钱提醒: 如果你是第一次接AI API,建议先用GPT-4o-mini模型测试,价格是GPT-4o的1/30,效果够用。

一、准备工作

1. 注册OpenAI账号

访问 platform.openai.com,用邮箱注册。需要海外手机号验证,如果没有的话可以在接码平台花几块钱搞定。

2. 获取API Key

登录后左侧菜单点「API Keys」→「Create new secret key」,复制保存好。注册时送的$5赠金够测几百次。

3. 确认小程序有云函数能力

微信/抖音小程序都有云开发能力,建议把小程序的API调用放在云函数里,不要把API Key直接写在前端代码中。

⚠️ 安全提醒: API Key放在前端代码里会被别人抓包看到,一定要通过自己的服务器或云函数中转。

二、后端:写一个ChatGPT API中转接口

小程序不能直接调OpenAI的API(跨域问题),需要一个后端接口做中转。最简单的方案是用Node.js写一个云函数。

云函数代码(Node.js)

// 微信云函数:chatgpt_proxy
const cloud = require('wx-server-sdk')
cloud.init()

// 引入axios用于请求
const axios = require('axios')

exports.main = async (event, context) => {
  const { message } = event  // 用户发来的消息

  try {
    const resp = await axios.post(
      'https://api.openai.com/v1/chat/completions',
      {
        model: 'gpt-4o-mini',
        messages: [
          { role: 'system', content: '你是一个有用的助手。' },
          { role: 'user', content: message }
        ],
        max_tokens: 1024,
        temperature: 0.7
      },
      {
        headers: {
          'Authorization': `Bearer ${process.env.OPENAI_API_KEY}`,
          'Content-Type': 'application/json'
        },
        timeout: 30000  // 30秒超时
      }
    )

    return {
      code: 0,
      reply: resp.data.choices[0].message.content
    }
  } catch (err) {
    return {
      code: -1,
      error: err.message
    }
  }
}

云函数的环境变量里配好 OPENAI_API_KEY 就行。微信云开发控制台 → 云函数 → 版本管理 → 环境变量。

三、前端:小程序调云函数

小程序的页面代码也很简单:

// pages/chat/chat.js
Page({
  data: {
    messages: [],   // 聊天记录
    input: '',      // 输入框内容
    isLoading: false
  },

  // 发送消息
  async sendMessage() {
    const text = this.data.input.trim()
    if (!text || this.data.isLoading) return

    // 把用户消息加到列表
    this.setData({
      messages: [...this.data.messages, { role: 'user', text }],
      input: '',
      isLoading: true
    })

    // 调云函数
    wx.cloud.callFunction({
      name: 'chatgpt_proxy',
      data: { message: text }
    }).then(res => {
      const reply = res.result.reply
      this.setData({
        messages: [...this.data.messages, { role: 'ai', text: reply }],
        isLoading: false
      })
    }).catch(err => {
      this.setData({
        messages: [...this.data.messages, { role: 'ai', text: '抱歉,出错了,请稍后再试' }],
        isLoading: false
      })
    })
  }
})

页面模板(wxml)就一个聊天界面,上面显示消息列表,底部输入框+发送按钮。样式不复杂,用flex布局就能搞定。

四、费用控制:别让API烧光你的预算

很多人最担心的是费用问题。我来算笔账:

做个简单的小程序AI功能,月费通常在几十到一百元左右。控制费用的几个方法:

五、踩坑记录

坑1:小程序请求超时

ChatGPT API响应时间不稳定,有时候要10-20秒。小程序云函数默认超时3秒,要手动改成30秒。

坑2:流式输出体验更好

上面给的代码是等待全部返回再一次性显示。更好的体验是用SSE(流式输出),让AI一边生成一边显示,用户不用干等。但流式输出在云函数里实现稍微复杂一点。

坑3:内容过滤

OpenAI有内容安全过滤,敏感话题会拒绝回答。如果你做的是成人向或医疗类的小程序,建议用国产模型(DeepSeek、通义千问)更友好。

📌 小建议: 如果要做的功能不复杂,先用GPT-4o-mini跑通原型,上线后看用户反馈再决定要不要升级模型或换国产API降成本。

六、总结

给小程序加AI聊天功能,核心就三步:注册OpenAI → 写云函数中转 → 前端调用。技术门槛不高,主要花时间在调优用户体验上。

如果你没时间自己搞,或者项目比较复杂(需要流式输出、多轮对话、知识库等),可以找我们做。下面有联系方式。

需要帮你的小程序接入AI功能?

我们提供ChatGPT/DeepSeek/通义千问等AI模型的小程序集成服务,按项目报价,支持分期。

提交需求获取报价