百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

微信小程序如何调用 DeepSeek?腾讯云开发:最少仅需3行代码

haoteby 2025-02-17 12:13 59 浏览


2月11日,腾讯云开发宣布能力上新,开发者能够基于最新的小程序基础库,最少仅需输入3行代码,就可以将满血版 DeepSeek 大模型能力接入到小程序中,快速实现智能对话、文本生成等功能。其中,云开发新用户首月套餐免费,并享有100万token。



据介绍,开发者可以通过 SDK 直接调用大模型,在小程序中构建文本生成、智能补全、智能翻译等应用场景;也可以通过 SDK 调用智能体对话能力,结合配置欢迎语、提示词、知识库等对话能力模块,打造专门的AI对话场景。云开发提供了一整套接入智能体的 API 接口,包括基础对话、对话历史保存、对话反馈收集、次轮问题推荐等,方便开发者快速接入。开发者也可以基于云开发提供的成熟 UI 组件,快速在小程序中植入 AI 对话能力。



据了解,云开发的 AI 能力不仅能接入小程序,还支持微信订阅号、服务号、小程序客服等多种微信生态能力的接入,并将在近期支持企业微信的接入。此外,云开发后续还计划推出工具调用、多 Agent 串联、工作流编排等AI能力,进一步方便开发者打造小程序智能应用。

云开发支持DeepSeek接入小程序教程:

准备工作

l 注册一个微信小程序账号,并且创建本地小程序工程项目

l 小程序基础库需要在 3.7.1 及以上版本,具备 wx.cloud.extend.AI 对象

l 小程序需要开通「云开发」,可在小程序开发工具中点击工具栏里的「云开发」按钮进行开通,并创建环境(PS:对于首次使用云开发的用户,第一个月套餐免费):



指引一:调用大模型,实现文本生成

在小程序中,直接调用大模型的文本生成能力,实现最简单的文本生成。

这里以一个“七言绝句”生成器的简单 Demo 为例:

第 1 步:初始化云开发环境

在小程序代码中,通过以下代码进行云开发环境初始化:

wx.cloud.init({

env: "<云开发环境ID>",

});


其中 "<云开发环境ID>" 需替换为实际云开发环境 ID。初始化成功后,就可使用 wx.cloud.extend.AI 调用 AI 能力。

第 2 步: 创建 AI 模型,并调用生成文本

在小程序基础库 3.7.1 及以上,以调用 DeepSeek-R1 模型为例,小程序端的代码如下:

// 创建模型实例,这里我们使用 deepseek 大模型

const model = wx.cloud.extend.AI.createModel("deepseek");


// 我们先设定好 AI 的系统提示词,这里以七言绝句生成为例

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);

}

// 输出结果:

// "# 咏玉龙雪山\n"

// "皑皑峻岭入云巅,玉骨冰肌傲九天。\n"

// "雪影岚光添胜景,神山圣境韵绵绵。\n"


可见,仅需几行小程序代码,就可以通过云开发直接调用大模型的文本生成能力。


指引二:通过 Agent(智能体)实现智能对话

通过调用大模型的文本生成接口,可以快速实现一问一答的场景。但对于一个完整的对话功能来说,仅仅有一个大模型的输入、输出还不够,还需要把大模型变为完整的 Agent,才能更好地与用户进行对话。


云开发的 AI 能力不仅提供了原始的大模型接入,还提供了 Agent 接入的能力,开发者可以在云开发上定义自己的 Agent,然后通过小程序直接调用 Agent 进行对话。

第 1 步:初始化云开发环境

在小程序代码中,通过以下代码进行云开发环境初始化:



wx.cloud.init({

env: "<云开发环境ID>",

});


其中 "<云开发环境ID>" 需替换为实际云开发环境 ID。初始化成功后,就可使用 wx.cloud.extend.AI 调用 AI 能力。

第 2 步:创建一个 Agent

进入云开发平台,创建一个新的 Agent。



这里可以选择模板创建,也可以自行输入提示词和欢迎语,创建一个自定义的 Agent。

为了简单,我们直接创建一个模板:



点击页面中上方的“复制 ID”,我们会获得一个 bot-id,即 Agent 的唯一标识,在下面的代码中会用到。

第 3 步:在小程序中实现与 Agent 的对话

刚才创建了一个“小程序开发专家”的 Agent 智能体,下面来试试与它进行对话,看他能不能处理云开发常见的报错问题。

在小程序中,使用以下代码直接调用刚刚我们创建的 Agent,进行对话:



// 用户的输入,这里我们以某个报错信息为例

const userInput = "我的小程序这个报错是什么意思:FunctionName parameter could not be found";


const res = await wx.cloud.extend.AI.bot.sendMessage({

data: {

botId: "xxx-bot-id", // 第2步中获取的Agent唯一标识

msg: userInput, // 用户的输入

history: [] // 历史对话的内容,这里我们是第一轮对话,所以可以不传入

},

});

for await (let x of res.textStream) {

console.log(x);

}

// 输出结果:

// "### 报错解释\n"

// "**错误信息:** `FunctionName \n"

// "parameter could not be found` \n

// "这个错误通常表示在调用某个函数时,\n"

// "指定的函数名参数没有找到。具体来说,\n"

// "可能是以下几种情况之一:\n"

// ……



我们也可以把对话内容记录下来,重复调用 Agent 的接口,从而实现多轮对话



const res = await wx.cloud.extend.AI.bot.sendMessage({

data: {

botId: "xxx-bot-id", // 第2步中获取的Agent唯一标识

msg: userInput, // 用户的输入

history: [

{ role: "user", message: "我这个报错是什么意思?……"},

{ role: "bot", message: "### 报错解释……" },

{ role: "user",message: "那我要如何操作来修复呢?" }

// ……

]

},

});


第 4 步:实现更加丰富的聊天功能

云开发的 Agent 不仅有多轮对话的能力,我们在 SDK 中还提供了实现对话所需的多种能力,包含:

l 获取聊天记录

l 发送、获取用户反馈

l 获取推荐次轮问题

下面是一些代码示例:

获取聊天记录


await wx.cloud.extend.AI.bot.getChatRecords({

botId: "botId-xxx",

pageNumber: 1,

pageSize: 10,

sort: "asc",

});

传入 botId、分页信息和排序方式,获取指定 Agent 的聊天记录。

发送反馈与获取反馈

发送用户反馈:


const res = await wx.cloud.extend.AI.bot.sendFeedback({

userFeedback: {

botId: "botId-xxx",

recordId: "recordId-xxx",

comment: "非常棒",

rating: 5,

tags: ["优美"],

aiAnswer: "落英缤纷",

input: "来个成语",

type: "upvote",

},

});


获取次轮推荐问题



const res = await wx.cloud.extend.AI.bot.getRecommendQuestions({

data: {

botId: "xxx-bot-id",

msg: "介绍一下 Python 语言",

},

});

for await (let x of res.textStream) {

console.log(x);

}


data 参数中设置 botId 和用户消息 msg,通过遍历 textStream 获取推荐问题。


云开发在 SDK 中提供了一整套接入 Agent(智能体)的 API 接口,包括基础对话、对话历史保存、对话反馈收集、次轮问题推荐等。小程序开发者可在 云开发平台中创建 Agent,然后在小程序前端代码中直接调用 wx.cloud.extend.AI 下的各类接口直接与 Agent 进行交互。

指引三:使用云开发 AI 对话组件,快速接入 AI 对话

为了方便开发者快速在自己的小程序里实现 AI 对话功能,云开发提供了一个 AI 对话的小程序组件供开发者直接使用,效果如下图:



第 1 步:下载对话组件代码包,并安装依赖

组件下载地址:
https://weda.cloud.tencent.com/ai-resource/agent-ui.zip

下载组件包后,解压,然后将组件包放入小程序项目内,假设放在小程序根目录下的 components/agent-ui 目录下:




由于对话组件的体积较大,开发者使用小程序子包的形式来引入。在小程序项目的 app.json 中,我们引入组件包:


{

"lazyCodeLoading": "requiredComponents",

"subpackages": [

{

"root": "components/agent-ui",

"name": "agent-ui",

"pages": []

}

]

}


在小程序根目录,运行以下命令,安装组件依赖:


npm install ./components/agent-ui


然后点击小程序开发工具菜单栏的「工具」-「构建NPM」,等待构建成功。


第 2 步:对话组件初始化

接下来在小程序中使用上文里植入的对话组件。

首先实现对话组件的异步加载,以及初始化,这个流程推荐放在小程序的 onLaunch 生命周期中:


// app.js

App({

onLaunch: function () {

wx.cloud.init({

env: '<云开发环境ID>',

});


require

.async('./components/agent-ui/index.js')

.then(module => {

module.clientSDK.init({

envID: '<云开发环境ID>', // 云开发环境Id

})

})

}

});


第 3 步:创建新页面,引入组件,实现对话交互

创建一个新的小程序页面,作为对话组件的载体。



在页面的 index.json 配置文件中,我们声明引入对话组件:


{ "usingComponents": {

"agent-ui": "/components/agent-ui/dist/Agent-UI/index"

},

"componentPlaceholder": {

"agent-ui": "block"

}

}

随后便可以直接在页面中使用 AI 对话组价了:



// index.js

Page({

data: {

bot: {

botId: "<填入 Agent ID>"

}

}

});



总结

这篇文章一共介绍了云开发的以下三种方式接入大模型,分别适用于不同的场景:

1. 通过 SDK 直接调用大模型:适用于非对话类的通用场景,如文本生成、智能补全、智能翻译等。

2. 通过 SDK 调用 Agent(智能体)对话能力:这种方式适合专门的 AI 对话场景,支持配置欢迎语、提示词、知识库等对话中需要的能力。

3. 使用 AI 对话组件:这种方式对于专业前端开发者更友好,可以基于云开发提供的 UI 组件,快速在小程序中植入 AI 对话能力。


以上的三种小程序接入AI的方式,云开发将完整的代码示例放在了代码仓库中,供大家参考:

l Gitee:https://gitee.com/TencentCloudBase/cloudbase-ai-example

l Github:https://github.com/TencentCloudBase/cloudbase-ai-example


当然,不只是小程序,云开发的 AI 能力也支持通过 Web 应用、Node.js、 HTTP API 来对大模型进行调用,可以参考以下文档:

l Web 应用接入:
https://docs.cloudbase.net/ai/sdk-reference/init

l Node.js 接入:
https://docs.cloudbase.net/ai/sdk-reference/init

l HTTP API 接入:
https://docs.cloudbase.net/http-api/ai-bot/ai-agent-%E6%8E%A5%E5%85%A5


l 腾讯云开发主页:
https://tcb.cloud.tencent.com/

l 云开发官方文档:
https://docs.cloudbase.net/

— 完 —

量子位 QbitAI · 头条号签

关注我们,第一时间获知前沿科技动态约

相关推荐

一日一技:用Python程序将十进制转换为二进制

用Python程序将十进制转换为二进制通过将数字连续除以2并以相反顺序打印其余部分,将十进制数转换为二进制。在下面的程序中,我们将学习使用递归函数将十进制数转换为二进制数,代码如下:...

十进制转化成二进制你会吗?#数学思维

六年级奥赛起跑线:抽屉原理揭秘。同学们好,我是你们的奥耀老师。今天一起来学习奥赛起跑线第三讲二进制计数法。例一:把十进制五十三化成二进制数是多少?首先十进制就是满十进一,二进制就是满二进一。二进制每个...

二进制、十进制、八进制和十六进制,它们之间是如何转换的?

在学习进制时总会遇到多种进制转换的时候,学会它们之间的转换方法也是必须的,这里分享一下几种进制之间转换的方法,也分享两个好用的转换工具,使用它们能够大幅度的提升你的办公和学习效率,感兴趣的小伙伴记得点...

c语言-2进制转10进制_c语言 二进制转十进制

#include<stdio.h>intmain(){charch;inta=0;...

二进制、八进制、十进制和十六进制数制转换

一、数制1、什么是数制数制是计数进位的简称。也就是由低位向高位进位计数的方法。2、常用数制计算机中常用的数制有二进制、八进制、十进制和十六进制。...

二进制、十进制、八进制、十六进制间的相互转换函数

二进制、十进制、八进制、十六进制间的相互转换函数1、输入任意一个十进制的整数,将其分别转换为二进制、八进制、十六进制。2、程序代码如下:#include<iostream>usingna...

二进制、八进制、十进制和十六进制等常用数制及其相互转换

从大学开始系统的接触计算机专业,到现在已经过去十几年了,今天整理一下基础的进制转换,希望给还在上高中的表妹一个入门的引导,早日熟悉这个行业。一、二进制、八进制、十进制和十六进制是如何定义的?二进制是B...

二进制如何转换成十进制?_二进制如何转换成十进制例子图解

随着社会的发展,电器维修由继电器时代逐渐被PLC,变频器,触摸屏等工控时代所替代,特别是plc编程,其数据逻辑往往涉及到数制二进制,那么二进制到底是什么呢?它和十进制又有什么区别和联系呢?下面和朋友们...

二进制与十进制的相互转换_二进制和十进制之间转换

很多同学在刚开始接触计算机语言的时候,都会了解计算机的世界里面大多都是二进制来表达现实世界的任何事物的。当然现实世界的事务有很多很多,就拿最简单的数字,我们经常看到的数字大多都是十进制的形式,例如:我...

十进制如何转换为二进制,二进制如何转换为十进制

用十进制除以2,除的断的,商用0表示;除不断的,商用1表示余0时结束假如十进制用X表示,用十进制除以2,即x/2除以2后为整数的(除的断的),商用0表示;除以2除不断的,商用1表示除完后的商0或1...

十进制数如何转换为二进制数_十进制数如何转换为二进制数举例说明

我们经常听到十进制数和二进制数,电脑中也经常使用二进制数来进行计算,但是很多人却不清楚十进制数和二进制数是怎样进行转换的,下面就来看看,十进制数转换为二进制数的方法。正整数转二进制...

二进制转化为十进制,你会做吗?一起来试试吧

今天孩子问把二进制表示的110101改写成十进制数怎么做呀?,“二进制”简单来说就是“满二进一”,只用0和1共两个数字表示,同理我们平常接触到的“十进制”是“满十进一”,只用0-9共十个数字表示。如果...

Mac终于能正常打游戏了!苹果正逐渐淘汰Rosetta转译

Mac玩家苦转译久矣!WWDC2025苹果正式宣判Rosetta死刑,原生游戏时代终于杀到。Metal4光追和AI插帧技术直接掀桌,连Steam都连夜扛着ARM架构投诚了。看到《赛博朋克2077》...

怎么把视频的声音提出来转为音频?音频提取,11款工具实测搞定

想把视频里的声音单独保存为音频文件(MP3/AAC/WAV/FLAC)用于配音、播客、听课或二次剪辑?本文挑出10款常用工具,给出实测可复现的操作步骤、优缺点和场景推荐。1)转换猫mp3转换器(操作门...

6个mp4格式转换器测评:转换速度与质量并存!

MP4视频格式具有兼容性强、视频画质高清、文件体积较小、支持多种编码等特点,适用于网络媒体传播。如果大家想要将非MP4格式的视频转换成MP4的视频格式的话,可以使用MP4格式转换器更换格式。本文分别从...