跳到主要内容

wx-server-sdk 调用

通过微信云开发内置的 wx-server-sdk 在云函数中调用 CloudBase AI 大模型,无需额外安装依赖,支持文本生成、流式输出等能力。

前置条件

  • 已开通微信云开发环境
  • wx-server-sdk 3.0.5-beta.1 或更高版本(支持 cloud.ai()
  • 已购买 Token 资源包并启用模型开关(见 接入大模型

版本说明

cloud.ai() 接口需要 wx-server-sdk 3.0.5-beta.1 或更高版本。可在云函数的 package.json 中指定版本:

{
"dependencies": {
"wx-server-sdk": "3.0.5-beta.1"
}
}

初始化

const cloud = require('wx-server-sdk')

cloud.init({
env: cloud.DYNAMIC_CURRENT_ENV,
timeout: 60000 // AI 生成可能耗时较长,建议设置较长超时时间
})

exports.main = async (event, context) => {
const ai = cloud.ai()
// 使用 AI 功能
}
超时配置

AI 模型生成文本可能需要较长时间,建议将 timeout 设置为 60000(60 秒)或更高,避免请求超时。

文本生成

generateText() - 非流式

一次性返回完整结果。

const ai = cloud.ai()
const model = ai.createModel('cloudbase')

const result = await model.generateText({
model: 'hy3-preview',
messages: [{ role: 'user', content: '介绍一下李白' }],
})

console.log(result.text) // 生成的文本
console.log(result.usage) // Token 使用量
console.log(result.messages) // 完整消息历史

返回值

属性类型说明
textstring生成的文本
messagesChatModelMessage[]完整消息历史
usageUsageToken 使用量
rawResponsesunknown[]原始模型响应
errorunknown错误信息(如有)

streamText() - 流式

流式返回文本,适用于实时对话场景。

const ai = cloud.ai()
const model = ai.createModel('cloudbase')

const res = await model.streamText({
model: 'hy3-preview',
messages: [{ role: 'user', content: '介绍一下李白' }],
})

// 方式一:迭代文本流(推荐)
for await (const text of res.textStream) {
console.log(text) // 增量文本
}

// 方式二:迭代数据流,获取完整响应数据
for await (const data of res.dataStream) {
console.log(data) // 包含 choices、usage 等完整信息
}

// 获取最终结果
const messages = await res.messages
const usage = await res.usage

返回值

属性类型说明
textStreamAsyncIterable<string>增量文本流
dataStreamAsyncIterable<DataChunk>完整数据流
messagesPromise<ChatModelMessage[]>最终消息历史
usagePromise<Usage>最终 Token 使用量

完整示例

AI 聊天接口

const cloud = require('wx-server-sdk')

cloud.init({
env: cloud.DYNAMIC_CURRENT_ENV,
timeout: 60000
})

exports.main = async (event, context) => {
const { messages } = event

const ai = cloud.ai()
const model = ai.createModel('cloudbase')

try {
const result = await model.generateText({
model: 'hy3-preview',
messages
})

return {
success: true,
text: result.text,
usage: result.usage
}
} catch (error) {
return {
success: false,
error: error.message
}
}
}

流式响应

const cloud = require('wx-server-sdk')

cloud.init({
env: cloud.DYNAMIC_CURRENT_ENV,
timeout: 60000
})

exports.main = async (event, context) => {
const { messages } = event

const ai = cloud.ai()
const model = ai.createModel('cloudbase')

const res = await model.streamText({
model: 'hy3-preview',
messages
})

// 收集完整文本
let fullText = ''
for await (const text of res.textStream) {
fullText += text
}

const usage = await res.usage

return {
text: fullText,
usage
}
}

与 @cloudbase/node-sdk 的差异

特性wx-server-sdk@cloudbase/node-sdk
安装内置,无需安装npm install @cloudbase/node-sdk
版本要求3.0.5-beta.1+3.16.0+
初始化cloud.init()tcb.init()
AI 入口cloud.ai()app.ai()
图片生成支持支持
适用场景微信云函数微信云函数 / 云托管 / 独立 Node.js 服务