小程序直接调用 AI 能力和通过 `wx-server-sdk` 在云函数中调用 AI 能力
小程序直接调用 AI 能力和通过 wx-server-sdk 在云函数中调用 AI 能力,各有其特点和适用场景。以下是两者的对比:
1. 调用方式
-
小程序直接调用
- 方式:在小程序前端代码中直接调用云开发的 AI 能力,使用
wx.cloud.extend.AI。 - 代码示例:
// 初始化云开发环境 wx.cloud.init({ env: "<云开发环境ID>", }); // 调用大模型生成文本 const model = wx.cloud.extend.AI.createModel("deepseek"); const systemPrompt = "请严格按照七言绝句或七言律诗的格律要求创作……"; const userInput = "帮我写一首赞美玉龙雪山的诗"; const res = await model.streamText({ data: { model: "deepseek-r1", messages: [ { role: "system", content: systemPrompt }, { role: "user", content: userInput }, ], }, }); for await (let str of res.textStream) { console.log(str); }
- 方式:在小程序前端代码中直接调用云开发的 AI 能力,使用
-
通过
wx-server-sdk在云函数中调用-
方式:在云函数中使用
wx-server-sdk调用云开发的 AI 能力,然后通过小程序前端调用云函数。 -
代码示例:
// 云函数代码 const cloud = require('wx-server-sdk'); cloud.init({ env: cloud.DYNAMIC_CURRENT_ENV, }); exports.main = async (event, context) => { const model = cloud.ai.createModel('deepseek'); const systemPrompt = "请严格按照七言绝句或七言律诗的格律要求创作……"; const userInput = event.userInput; const res = await model.streamText({ data: { model: 'deepseek-r1', messages: [ { role: 'system', content: systemPrompt }, { role: 'user', content: userInput }, ], }, }); let result = ''; for await (let str of res.textStream) { result += str; } return { result: result, }; };小程序前端调用云函数:
wx.cloud.callFunction({ name: 'text-generation', data: { userInput: '帮我写一首赞美玉龙雪山的诗', }, success: function(res) { console.log(res.result); }, fail: console.error, });
-
2. 适用场景
-
小程序直接调用
- 优点:
- 简单快速:直接在小程序前端调用,代码简单,开发快速。
- 低延迟:用户操作后立即调用,响应速度快。
- 缺点:
- 安全性较低:AI 调用的逻辑和配置暴露在前端,可能被用户篡改或滥用。
- 功能受限:只能实现简单的调用逻辑,无法进行复杂的数据处理或业务逻辑。
- 适用场景:
- 简单场景:如简单的文本生成、智能对话等,不需要复杂逻辑处理。
- 快速原型开发:快速验证功能,快速上线。
- 优点:
-
通过
wx-server-sdk在云函数中调用- 优点:
- 安全性高:AI 调用逻辑在服务器端处理,用户无法直接访问,安全性更高。
- 功能强大:可以在云函数中进行复杂的数据处理、业务逻辑处理,实现更复杂的功能。
- 可扩展性强:可以方便地扩展功能,如调用多个 AI 模型、处理用户数据等。
- 缺点:
- 开发复杂:需要编写云函数代码,开发和部署相对复杂。
- 延迟较高:需要通过网络调用云函数,响应时间可能较长。
- 适用场景:
- 复杂场景:需要进行复杂逻辑处理,如多轮对话、数据处理等。
- 安全性要求高:需要保护 AI 调用逻辑,防止用户篡改或滥用。
- 扩展性强:需要在未来扩展功能,如调用多个 AI 模型、处理用户数据等。
- 优点:
3. 性能和成本
-
小程序直接调用
- 性能:响应速度快,用户操作后立即调用。
- 成本:调用次数直接计入小程序的 AI 调用额度,成本相对较低。
-
通过
wx-server-sdk在云函数中调用- 性能:响应时间可能较长,因为需要通过网络调用云函数。
- 成本:除了 AI 调用成本外,还需要考虑云函数的调用成本。
4. 总结
- 小程序直接调用适用于简单、快速的场景,开发简单,响应速度快,但安全性较低,功能受限。
- 通过
wx-server-sdk在云函数中调用适用于复杂、安全性要求高的场景,功能强大,可扩展性强,但开发复杂,响应时间可能较长,成本较高。
根据具体需求选择合适的调用方式,可以更好地实现项目目标。
浙公网安备 33010602011771号