收藏
回答

我想用小程序ai接入混元, 貌似cloud.extend找不到AI?

// 云函数入口文件
const cloud = require('wx-server-sdk')

cloud.init({ env: cloud.DYNAMIC_CURRENT_ENV }) // 使用当前云环境
// cloud.extend.AI.register("hunyuan-exp")  // 增加扩展注册


// 云函数入口函数
exports.main = async (event, context) => {
  const { fileID } = event
  
  if (!fileID) {
    return {
      code: -1,
      message: '缺少图片文件ID'
    }
  }
  
  try {
    console.log('开始处理图片,fileID:', fileID)
    
    // 1. 下载图片
    const res = await cloud.downloadFile({
      fileID: fileID,
    }).catch(err => {
      console.error('下载图片失败:', err)
      throw new Error('下载图片失败: ' + err.message)
    })
    
    const buffer = res.fileContent
    console.log('图片下载成功,大小:', buffer.length)
    
    // 2. 将图片转为base64
    const imageBase64 = buffer.toString('base64')
    console.log('图片转换为base64成功')
    
    // 3. 调用混元大模型
    console.log('开始调用AI模型分析')
    
    // 调用hunyuan云函数
    const model = cloud.extend.AI.createModel("hunyuan-exp");
    const result = await model.generateText({
      model: "hunyuan-turbos-latest",
      timeout: 10000,  // 增加10秒超时


      messages: [{
        role: "user",
        content: [
          {
          type: "text",
          text: "请分析这张餐点图片,告诉我:1. 有哪些食材 2. 预估总热量 3. 蛋白质、碳水化合物、脂肪的大致占比 4. 针对减重目标给出建议"
          }, 
          {
          type: "image",
          image_base64: imageBase64
          }
      ]
      }]
    });
     
    

    console.log('AI模型返回原始结果:', result)
    
    if (!result || !result.result || !result.result.choices || !result.result.choices[0].message.content) {
      console.error('AI返回结果无效:', result)
      throw new Error('AI返回结果无效')
    }
    
    // 4. 返回分析结果
    return {
      code: 0,
      data: {
        aiResponse: result.result.choices[0].message.content,
        requestId: context.requestId // 添加请求ID便于追踪
      },
      message: 'AI分析完成'
    }
    
  } catch (err) {
    console.error('分析餐点失败:', err)
    return {
      code: -1,
      message: err.message || '分析失败',
      error: {
        message: err.message,
        stack: err.stack,
        requestId: context.requestId
      }
    }
  }
} 



2025-03-17T03:32:27.200Z 分析餐点失败: TypeError: Cannot read properties of undefined (reading 'AI')

at exports.main (/var/user/index.js:41:32)

at processTicksAndRejections (node:internal/process/task_queues:96:5)

Response RequestId: f824c092-343f-4749-8bf7-5aeb7e7b6af1 RetMsg: {"code":-1,"message":"Cannot read properties of undefined (reading 'AI')","error":{"message":"Cannot read properties of undefined (reading 'AI')","stack":"TypeError: Cannot read properties of undefined (reading 'AI')\n at exports.main (/var/user/index.js:41:32)\n at processTicksAndRejections (node:internal/process/task_queues:96:5)"}}


回答关注问题邀请回答
收藏

1 个回答

登录 后发表内容