小程序开发中的 AI 应用实践:从理论到实战


在前面的文章中,我们讨论了 AI 开发工具的使用方法和注意事项。今天,让我们通过具体的实战案例,深入探讨如何在小程序开发中应用 AI 技术。

一、云函数开发实践

1. AI 对话功能的实现

系统设计
// 云函数配置
{
   
  "name": "aiChat",
  "timeout": 20,  // 超时时间设置为20秒
  "triggers": [], // 触发器配置
  "vpc": false    // VPC配置
}

// 系统角色设定
const SYSTEM_PROMPT = `你是Moodo的AI助手,一个专注于情感支持和心理健康的AI伙伴。
请遵循以下原则:
1. 保持温暖、友好的态度
2. 用同理心倾听用户
3. 提供积极的建议
4. 不做具体的心理诊断
5. 使用简单的中文
6. 回复长度适中(60-240字)
7. 适时给予鼓励`
核心实现
// aiChat/index.js
const cloud = require('wx-server-sdk')
const axios = require('axios')

exports.main = async (event, context) => {
   
  const {
    content, sessionId } = event
  const wxContext = cloud.getWXContext()
  const db = cloud.database()

  try {
   
    // 1. 保存用户消息
    const userMessage = await saveUserMessage(db, {
   
      sessionId,
      content,
      openid: wxContext.OPENID
    })

    // 2. 获取历史消息
    const history = await getHistoryMessages(db, {
   
      sessionId,
      openid: wxContext.OPENID,
      limit: 5
    })

    // 3. 调用 AI API
    const aiResponse = await callAIAPI({
   
      messages: [
        {
    role: 'system', content: SYSTEM_PROMPT },
        ...history,
        {
    role: 'user', content }
      ]
    })

    // 4. 保存 AI 回复
    await saveAIResponse(db, {
   
      sessionId,
      content: aiResponse,
      openid: wxContext.OPENID,
      replyTo: userMessage._id
    })

    return {
    content: aiResponse }
  } catch (error) {
   
    handleError(error)
  }
}
错误处理优化
// 错误处理函数
function handleError(error) {
   
  // 网络错误
  if (error.code === 'ECONNABORTED') {
   
    throw new Error('网络请求超时,请重试')
  }

  // API 错误
  if (error.response) {
   
    switch (error.response.status) {
   
      case 401:
        throw new Error('API 认证失败')
      case 429:
        throw new Error('请求过于频繁,请稍后再试')
      case 500:
        throw new Error('服务器错误,请稍后重试')
      default:
        throw new Error('请求失败,请重试')
    }
  }

  // 其他错误
  console.error('AI 对话错误:', error)
  throw new Error('系统错误,请稍后重试')
}

2. 数据库设计实践

集合设计
// 1. 聊天记录集合
db.collection('chat_records').add({
   
  data: {
   
    sessionId: String,    // 会话ID
    role: String,  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

京河小蚁

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值