【微信小程序(云开发模式)变通实现DeepSeek支持语音】
整体架构
- 前端(微信小程序):
- 使用微信小程序云开发能力,实现录音功能。
- 将录音文件上传到云存储。
- 调用云函数进行语音识别和 DeepSeek 处理。
- 界面模仿 DeepSeek,支持文本编辑。
- 后端(云函数 + Node.js):
- 使用云函数调用腾讯云语音识别(ASR)服务。
- 调用 DeepSeek API 处理文本。
步骤 1:初始化云开发环境
-
在微信开发者工具中创建小程序项目,并开通云开发。
-
在
project.config.json
中配置云函数目录:json
复制
{"cloudfunctionRoot": "cloud/functions/" }
-
初始化云开发环境:
javascript
复制
wx.cloud.init({env: 'your-env-id', // 替换为你的云环境 IDtraceUser: true });
步骤 2:编写云函数
1. 云函数结构
复制
cloud/
├── functions/
│ ├── asr/ # 语音识别云函数
│ │ ├── index.js
│ │ ├── config.json
│ │ └── package.json
│ ├── deepseek/ # DeepSeek 处理云函数
│ │ ├── index.js
│ │ ├── config.json
│ │ └── package.json
2. 语音识别云函数 (asr/index.js
)
javascript
复制
const tencentcloud = require('tencentcloud-sdk-nodejs');
const AsrClient = tencentcloud.asr.v20190614.Client;
const fs = require('fs');
const path = require('path');exports.main = async (event, context) => {const { fileID } = event;// 下载录音文件const fileContent = await wx.cloud.downloadFile({fileID: fileID});const audioPath = fileContent.tempFilePath;const audioData = fs.readFileSync(audioPath, { encoding: 'base64' });// 调用腾讯云语音识别const client = new AsrClient({credential: {secretId: process.env.TENCENT_SECRET_ID, // 从环境变量获取secretKey: process.env.TENCENT_SECRET_KEY},region: 'ap-guangzhou',profile: {httpProfile: {endpoint: 'asr.tencentcloudapi.com'}}});const params = {EngineModelType: '16k_zh',VoiceFormat: 'wav',Data: audioData};try {const response = await client.SentenceRecognition(params);return {success: true,data: response.Result};} catch (error) {return {success: false,message: error.message};}
};
3. DeepSeek 处理云函数 (deepseek/index.js
)
javascript
复制
const axios = require('axios');exports.main = async (event, context) => {const { text } = event;try {const response = await axios.post('https://api.deepseek.com/v1/chat/completions',{model: 'deepseek-chat',messages: [{ role: 'system', content: '你是一个文本处理助手。' },{ role: 'user', content: text }]},{headers: {'Content-Type': 'application/json','Authorization': `Bearer ${process.env.DEEPSEEK_API_KEY}` // 从环境变量获取}});return {success: true,data: response.data.choices[0].message.content};} catch (error) {return {success: false,message: error.message};}
};
4. 安装依赖
在云函数目录下运行:
bash
复制
npm install tencentcloud-sdk-nodejs axios
5. 配置环境变量
在云开发控制台中,为云函数配置环境变量:
TENCENT_SECRET_ID
: 腾讯云 SecretIdTENCENT_SECRET_KEY
: 腾讯云 SecretKeyDEEPSEEK_API_KEY
: DeepSeek API 密钥
步骤 3:编写小程序前端
1. 页面结构
复制
miniprogram/
├── pages/
│ ├── index/
│ │ ├── index.js # 页面逻辑
│ │ ├── index.wxml # 页面结构
│ │ └── index.wxss # 页面样式
├── app.js # 小程序逻辑
├── app.json # 小程序配置
└── app.wxss # 全局样式
2. 页面逻辑 (index.js
)
javascript
复制
Page({data: {isRecording: false, // 是否正在录音recordTime: 0, // 录音时长resultText: '', // 识别结果editedText: '', // 编辑后的文本isLoading: false // 加载状态},// 开始录音startRecord() {this.setData({ isRecording: true, recordTime: 0 });this.recorderManager = wx.getRecorderManager();this.recorderManager.start({format: 'wav',sampleRate: 16000,numberOfChannels: 1,encodeBitRate: 48000});this.timer = setInterval(() => {this.setData({ recordTime: this.data.recordTime + 1 });}, 1000);this.recorderManager.onStop(async (res) => {clearInterval(this.timer);this.setData({ isRecording: false });await this.uploadAudio(res.tempFilePath); // 上传录音文件});},// 停止录音stopRecord() {if (this.recorderManager) {this.recorderManager.stop();}},// 上传录音文件async uploadAudio(filePath) {this.setData({ isLoading: true });try {// 上传到云存储const uploadRes = await wx.cloud.uploadFile({cloudPath: `audios/${Date.now()}.wav`,filePath: filePath});// 调用语音识别云函数const asrRes = await wx.cloud.callFunction({name: 'asr',data: { fileID: uploadRes.fileID }});if (asrRes.result.success) {this.setData({ resultText: asrRes.result.data, editedText: asrRes.result.data });} else {wx.showToast({ title: '识别失败', icon: 'none' });}} catch (error) {wx.showToast({ title: '上传失败', icon: 'none' });} finally {this.setData({ isLoading: false });}},// 编辑文本handleEditText(e) {this.setData({ editedText: e.detail.value });},// 调用 DeepSeek 处理文本async processText() {const { editedText } = this.data;if (!editedText) {wx.showToast({ title: '请输入文本', icon: 'none' });return;}this.setData({ isLoading: true });try {const deepseekRes = await wx.cloud.callFunction({name: 'deepseek',data: { text: editedText }});if (deepseekRes.result.success) {this.setData({ resultText: deepseekRes.result.data });} else {wx.showToast({ title: '处理失败', icon: 'none' });}} catch (error) {wx.showToast({ title: '网络错误', icon: 'none' });} finally {this.setData({ isLoading: false });}}
});
3. 页面结构 (index.wxml
)
xml
复制
<view class="container"><!-- 录音按钮 --><view class="record-button"><buttonbindtap="{{isRecording ? 'stopRecord' : 'startRecord'}}"class="{{isRecording ? 'stop-button' : 'start-button'}}">{{isRecording ? '停止录音' : '开始录音'}}</button><text class="record-time" wx:if="{{isRecording}}">录音中:{{recordTime}}s</text></view><!-- 识别结果 --><view class="result-box"><text class="result-title">识别结果:</text><textareavalue="{{editedText}}"bindinput="handleEditText"placeholder="识别结果将显示在这里"class="result-text"></textarea></view><!-- 处理按钮 --><button bindtap="processText" class="process-button">调用 DeepSeek 处理</button><!-- 处理结果 --><view class="result-box"><text class="result-title">处理结果:</text><textareavalue="{{resultText}}"placeholder="处理结果将显示在这里"disabledclass="result-text"></textarea></view><!-- 加载状态 --><view class="loading" wx:if="{{isLoading}}"><text>处理中...</text></view>
</view>
运行 HTML
4. 页面样式 (index.wxss
)
css
复制
.container {padding: 20px;background-color: #F5F5F5;min-height: 100vh;
}.record-button {display: flex;flex-direction: column;align-items: center;margin-bottom: 20px;
}.start-button {background-color: #07C160;color: white;width: 80%;
}.stop-button {background-color: #F5222D;color: white;width: 80%;
}.record-time {margin-top: 10px;font-size: 14px;color: #666666;
}.result-box {width: 100%;margin-top: 20px;
}.result-title {font-size: 16px;font-weight: bold;color: #333333;margin-bottom: 10px;
}.result-text {width: 100%;height: 100px;background-color: #FFFFFF;border: 1px solid #CCCCCC;border-radius: 5px;padding: 10px;font-size: 14px;color: #333333;
}.process-button {margin-top: 20px;background-color: #1890FF;color: white;width: 80%;
}.loading {margin-top: 20px;font-size: 14px;color: #666666;text-align: center;
}
步骤 4:测试
- 在微信开发者工具中运行小程序。
- 测试录音、语音识别、文本编辑和 DeepSeek 处理功能。
注意事项
- 云函数部署:
- 确保云函数已上传并部署。
- 环境变量:
- 在云开发控制台中正确配置环境变量。
- 录音权限:
- 确保小程序已获取录音权限。
相关文章:
【微信小程序(云开发模式)变通实现DeepSeek支持语音】
整体架构 前端(微信小程序): 使用微信小程序云开发能力,实现录音功能。将录音文件上传到云存储。调用云函数进行语音识别和 DeepSeek 处理。界面模仿 DeepSeek,支持文本编辑。 后端(云函数 Node.js&#…...
前端使用 crypto-js库AES加解密
前端使用 crypto-js库AES加解密 为什么需要前端加密? 现在项目使用http协议,且登录界面的用户登录密码是明文传输,项目真正上线后,存在信息泄露风险。 所以准备用前端框架加密处理用户输入的密码再传输。 crypto-js 库 crypto…...
七天MySQL密集学习计划
七天MySQL密集学习计划 第1天:MySQL基础和环境搭建 上午(理论安装) 数据库基本概念MySQL是什么关系型数据库基础安装MySQL Windows/Mac下安装步骤MySQL Workbench安装 基本配置和连接 下午(基础操作) 数据库和表的…...
Python程序常用的配置文件格式及例子(上)
Python 中常用的配置文件格式有多种,每种格式都有其特点和适用场景。以下是常见的配置文件类型及简要说明: 1. INI 格式 特点:简单键值对,支持分节(Section)。文件扩展名:.ini, .cfgPython 库&…...
Go语言对于MySQL的基本操作
一.下载依赖 终端中输入: go get -u github.com/go-sql-driver/mysql 导入包 import ("database/sql"_ "github.com/go-sql-driver/mysql" ) 二.案例 package main//go get-u github.com/go-sql-driver/mysql 获取驱动 import ("databa…...
一键批量txt转DWG,DWG转txt——插件实现 CAD c#二次开发
如下图,我们有大量dwg需要转为txt格式,或txt格式坐标需要转为dwg格式,此插件可一键完成一个文件夹下所有文件的转换。 插件使用方式 命令行输入: netload 加载此dll插件, 输入: dwg2txt 可将dwg转为t…...
SpringBoot 集成 Minio (附带工具类)
Minio 官方文档: https://www.minio.org.cn/docs/minio/container/index.html MinIO是一个对象存储解决方案,它提供了与Amazon Web Services S3兼容的API,并支持所有核心S3功能。 MinIO有能力在任何地方部署 - 公有云或私有云,裸…...
图论——Prim算法
53. 寻宝(第七期模拟笔试) 题目描述 在世界的某个区域,有一些分散的神秘岛屿,每个岛屿上都有一种珍稀的资源或者宝藏。国王打算在这些岛屿上建公路,方便运输。 不同岛屿之间,路途距离不同,国王希望你可以规划建公路的方案,如何可以以最短的总公路距离将 所有岛屿联通…...
Linux系统上后门程序的原理细节,请仔细解释一下
在Linux系统上,后门程序通常通过隐蔽的方式绕过正常的安全机制,允许攻击者未经授权访问系统。以下是其工作原理的详细解释: 1. 隐蔽性 隐藏进程:后门程序常通过修改进程列表或使用rootkit技术隐藏自身,避免被ps、top…...
Cursor与Blender-MCP生成3D模型
随着DeepSeek的热度,各行各业接入AI智能,当然作为一个深受3D爱好者喜爱的软件——Blender,也接入了AI智能,通过Blender-MCP,开启一场Blender的智能化模型创建的世界之旅。 目录 1.准备工作2.环境配置2.1 Mac安装2.2 W…...
Object 转 JSONObject 并排除null和““字符串
public static JSONObject objToJSONObject(Object obj) throws Exception{//创建一个 HashMap 对象 map,用于存储对象的属性名和属性值。//key 是属性名(String 类型),value 是属性值(Object 类型)Map<…...
物联网为什么用MQTT不用 HTTP 或 UDP?
先来两个代码对比,上传温度数据给服务器。 MQTT代码示例 // MQTT 客户端连接到 MQTT 服务器 mqttClient.connect("mqtt://broker.server.com:8883", clientId) // 订阅特定主题 mqttClient.subscribe("sensor/data", qos1) // …...
LeetCode135☞分糖果
关联LeetCode题号135 本题特点 贪心两次遍历,一次正序遍历,只比较左边,左边比右边大的情况 i-1 i一次倒序遍历,只比较右边的,右边比左边大 i1 i 本题思路 class Solution:def candy(self, ratings: List[int]) -&g…...
YOLO魔改之频率分割模块(FDM)
目标检测原理 目标检测是一种将目标分割和识别相结合的图像处理技术,旨在从图像中定位并识别特定目标。深度学习方法,如Faster R-CNN和YOLO系列,已成为主流解决方案。这些方法通常采用两阶段或单阶段策略,通过卷积神经网络(CNN)提取特征并进行分类和定位。 在小目标检测中…...
AI学习——卷积神经网络(CNN)入门
作为人类,我们天生擅长“看”东西:一眼就能认出猫狗、分辨红绿灯、读懂朋友的表情……但计算机的“眼睛”最初是一片空白。直到卷积神经网络(CNN)的出现,计算机才真正开始理解图像。今天,我们就用最通俗的…...
【资源损坏类故障】:详细了解坏块
目录 1、物理坏块与逻辑坏块 1.1、物理坏块 1.2、逻辑坏块 2、两个坏块相关的参数 2.1、db_block_checksum 2.2、db_block_checking 3、检测坏块 3.1、告警日志 3.2、RMAN 3.3、ANALYZE 3.4、数据字典 3.5、DBVERIFY 4、修复坏块 4.1、RMAN修复 4.2、DBMS_REPA…...
Django系列教程(13)——Cookie和Session应用场景及案例
目录 什么是cookie,cookie的应用场景及缺点 Django中如何使用cookie Cookie使用示例 什么是session及session的工作原理 Django中如何使用会话session Session使用示例 小结 HTTP协议本身是”无状态”的,在一次请求和下一次请求之间没有任何状态保…...
给管理商场消防安全搭建消防安全培训小程序全过程
一、需求沟通 “我是管理商场消防安全的嘛,做这个的作用呢,1是商场的所有商户员工可以看平面或者视频随时自学, 2是我们定期培训必修课程、考试,这个需要留存他们的手签字的签到表确认我们讲给他们听了(免责很重要&am…...
YOLOv11 目标检测
本文章不再赘述anaconda的下载以及虚拟环境的配置,博主使用的python版本为3.8 1.获取YOLOv11的源工程文件 链接:GitHub - ultralytics/ultralytics: Ultralytics YOLO11 🚀 直接下载解压 2.需要自己准备的文件 文件结构如下:红…...
数据库原理实验报告:Powerdesigner建模E-R模型并转换表
注:此实验并不完整,仅供参考,如需完整版请私我留言 一、实验目的: 二、实验工具: 三、实验要求: 四、实验过程: 图文并茂,每一步都包含详细图片,总共11页word!…...
【愚公系列】《高效使用DeepSeek》018-错题本整理
🌟【技术大咖愚公搬代码:全栈专家的成长之路,你关注的宝藏博主在这里!】🌟 📣开发者圈持续输出高质量干货的"愚公精神"践行者——全网百万开发者都在追更的顶级技术博主! 👉 江湖人称"愚公搬代码",用七年如一日的精神深耕技术领域,以"…...
面试八股 —— Redis篇
重点:缓存 和 分布式锁 缓存(穿透,击穿,雪崩) 降级可作为系统的保底策略,适用于穿透,击穿,雪崩 1.缓存穿透 2.缓存击穿 3.缓存雪崩 缓存——双写一致性 1.强一致性业务(…...
maven的安装配置
目录 一、官网下载压缩包 二、配置环境变量 设置 MAVEN_HOME 添加 MAVEN_HOME\bin 到 PATH 三、配置本机仓库和远程仓库 四、配置idea 一、官网下载压缩包 Download Apache Maven – Maven 如上图。选择这个压缩包 选择好文件,下载完后,配置环境变…...
SpringCloud系列教程(十四):Sentinel持久化
Sentinel之前已经搭建和应用成功了,但是它有一个很大的缺点就是官方没有提供持久化的方案,从项目源码上看感觉这款工具也没有完成的太好,所以需要我们去对它进行二次开发。要补充的功能大概如下: 1、将Sentinel接入nacos中&#…...
深度学习处理时间序列(1)
不同类型的时间序列任务 时间序列(timeseries)是指定期测量获得的任意数据,比如每日股价、城市每小时耗电量或商店每周销售额。无论是自然现象(如地震活动、鱼类种群的演变或某地天气)还是人类活动模式(如…...
微前端 qiankun vite vue3
文章目录 简介主应用 qiankun-main vue3 vite子应用 qiankun-app-vue2 webpack5子应用 qiankun-react webpack5子应用 quankun-vue3 vite遇到的问题 简介 主要介绍以qiankun框架为基础,vite 搭建vue3 项目为主应用,wepack vue2 和 webpack react 搭建的…...
【ArduPilot】Windows下使用Optitrack通过MAVProxy连接无人机实现定位与导航
Windows下使用Optitrack通过MAVProxy连接无人机实现定位与导航 配置动捕系统无人机贴动捕球配置无人机参数使用MAVProxy连接Optitrack1、连接无人机3、设置跟踪刚体ID4、校正坐标系5、配置IP地址(非Loopback模式)6、启动动捕数据推流 结语 在GPS信号弱或…...
【GPT入门】第24课 langfuse介绍
【GPT入门】第24课 langfuse介绍 1. langfuse概念与作用2. 代码3. 页面效果4. 设计模式1. 装饰器模式2. 上下文管理模式1. langfuse概念与作用 Langfuse是一款专为大规模语言模型(LLM)应用开发设计的开源平台。其作用主要包括以下几个方面: 提升开发效率:通过消除LLM应用构…...
基于javaweb的SpringBoot食品溯源系统设计与实现(源码+文档+部署讲解)
技术范围:SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容:免费功能设计、开题报告、任务书、中期检查PPT、系统功能实现、代码编写、论文编写和辅导、论…...
SVN简明教程——下载安装使用
SVN教程目录 一、开发中的实际问题二、简介2.1 版本控制2.2 Subversion2.3 Subversion的优良特性2.4 工作原理2.5 SVN基本操作 三、Subversion的安装与配置1. 服务器端程序版本2. 下载源码包3. 下载二进制安装包4. 安装5. 配置版本库① 为什么要配置版本库?② 创建目…...
AJAX的理解和原理还有概念
你想问的可能是 AJAX(Asynchronous JavaScript and XML) ,它并不是一门新的编程语言,而是一种在无需重新加载整个网页的情况下,能够与服务器进行异步通信并更新部分网页的技术。以下从基本概念、原理、优点、使用场景等…...
利用AI让数据可视化
1. 从问卷星上下载一份答题结果。 序号用户ID提交答卷时间所用时间来源来源详情来自IP总分1、《中华人民共和国电子商务法》正式实施的时间是()。2、()可以判断企业在行业中所处的地位。3、()是指店铺内有…...
FOC——Butterworth (巴特沃斯)数字滤波器(2025.03.18)
参考链接1: [DSP] Butterworth (巴特沃斯)数字滤波器设计参考 参考链接2: 陈佩青《数字信号处理教程》 参考链接3: ButterWorthFIlter(巴特沃斯滤波器) 在此感谢各位前辈大佬的总结,写这个只是为了记录学习大佬资料的过程,内容基本…...
Redis如何实现持久化
Redis如何实现持久化 Redis默认将所有数据存储在内存中,虽然读写效率极高,但存在两大风险 数据易失性:进程重启或服务器宕机导致内存数据丢失。恢复成本高:无法直接通过内存重建大规模数据集。 Redis作为高性能的键值数据库&…...
docker安装rabbitmq并配置hyperf使用
为满足您的高标准需求,我将分步骤为您详细解释如何通过Docker安装RabbitMQ服务器,并展示如何配置PHP的Hyperf框架来使用RabbitMQ。 安装RabbitMQ: 获取RabbitMQ镜像在终端中运行以下命令来拉取RabbitMQ的官方Docker镜像: docker …...
极空间NAS部署gitea教程
极空间NAS部署gitea步骤教程 背景1. 准备镜像1.1 极空间官方1.2 Win系统docker再上传1.3 镜像转录 2. MySql配置2.1 容器配置2.2 命令行配置 3. gitea配置3.1 容器配置3.2 打开网页3.3 网页配置安装 参考资料 背景 极空间Nas和别的Nas不同的地方就在于,他不是那种标…...
大模型学习-从零开始在colab训练大模型
目录 写这篇文章的目的 1.准备训练所需的文件 2.将压缩包上传到谷歌云盘 使用colab 3.训练 写这篇文章的目的 这篇文章是对:大模型学习-在colab中训练并更换模型_colab调整模型-CSDN博客的一个优化,因为在之前的博文中,我是提供了一个现…...
【商城实战(38)】Spring Boot:从本地事务到分布式事务,商城数据一致性的守护之旅
【商城实战】专栏重磅来袭!这是一份专为开发者与电商从业者打造的超详细指南。从项目基础搭建,运用 uniapp、Element Plus、SpringBoot 搭建商城框架,到用户、商品、订单等核心模块开发,再到性能优化、安全加固、多端适配…...
漏洞知识点《PHP数组绕过深入解析》
在PHP中,通过数组绕过安全限制的核心原理与PHP语言特性和底层实现机制密切相关。以下是具体原因及技术细节分析: 一、PHP参数解析机制的特性 PHP的$_GET、$_POST等超全局变量支持将用户输入自动解析为数组。例如,通过URL参数?username[0]a…...
【极光 Orbit·STC8x】05. GPIO库函数驱动LED流动
【极光 OrbitSTC8】05. GPIO库函数驱动LED流动 七律 逐光流转 八灯列阵若星河,状态为舟渡长波。 寄存器中藏玄机,Switch语句定山河。 循环往复如潮涌,步骤变量掌沉浮。 单片机前展锋芒,代码织就光之舞。 摘要 本文基于STC8H8K6…...
SSH配置过程及无法正常链接问题的解决【小白教学】
1.尝试克隆github上的项目,发现无法正常下载【之前有些是可以的】 git clone https://github.com/mogualla/PythonRobotics.git --depth 3 出现下面的提示【错误】: Cloning into PythonRobotics... fatal: unable to access https://github.com/mogua…...
总结 HTTP 协议的基本格式, 相关知识以及抓包工具fiddler的使用
目录 1 HTTP是什么 2 HTTP协议格式 3 HTTP请求(Request) 3.1 认识URL 3.2 方法 3.3 认识请求"报头"(header) 3.3.1 Host 3.3.2 Content-Length 3.3.3 Content-Type 3.3.4 User-Agent (简称UA) 3.3.5 Referer 3.3.6 Cookie和Session 4 HTTP响应详解 4.…...
Conda 虚拟环境创建:加不加 Python 版本的深度剖析
在 conda 中创建虚拟环境时,是否指定 Python 具体版本会直接影响环境构建的底层逻辑、依赖管理方式以及后续开发的可控性。 一、核心机制对比 不指定 Python 版本 (conda create -n env_name) 默认继承基础环境版本 Conda 会使用当前基础环境(如 base&am…...
docker的anythingllm和open-webui压缩包分享(国内镜像拉取,百度云压缩包分享)
文章目录 前言第一部分:镜像获取🚀 方式一:切换国内下载镜像✅1. 下载anythingllm✅ 2. 下载open-webui 🚀方式二:下载我分享的百度云✅ anythingllm压缩包百度云链接❎ open-webui压缩包 第二部分:下载之后…...
C#命令行参数用法
C#命令行参数用法 static void Main(string[] args){Application.EnableVisualStyles();Application.SetCompatibleTextRenderingDefault(false);// 解析命令行参数if (args.Length > 0){// 这里处理命令行参数,例如:打开文件、设置配置等// 例如&…...
Unity3D开发AI桌面精灵/宠物系列 【二】 语音唤醒 ivw 的两种方式-Windows本地或第三方讯飞等
Unity3D 交互式AI桌面宠物开发系列【二】ivw 语音唤醒 该系列主要介绍怎么制作AI桌面宠物的流程,我会从项目开始创建初期到最终可以和AI宠物进行交互为止,项目已经开发完成,我会仔细梳理一下流程,分步讲解。 这篇文章主要讲有关于…...
Matlab概率区间预测全家桶更新了,新增光伏出力区间预测,4种分布可供预测
基本介绍 适用于matlab2020及以上。可任意选择置信区间,区间覆盖率picp、区间平均宽度百分比等等,可用于预测不确定性,效果如图所示,采用KDE,4种分布进行预测,有对比,可以替换成自己的数据。 …...
第2章:容器核心原理:深入理解Namespace、Cgroup与联合文件系统
第2章:容器核心原理:深入理解Namespace、Cgroup与联合文件系统 作者:DogDog_Shuai 阅读时间:约20分钟 难度:中级 目录 1. 引言2. Linux容器核心技术3. Namespace详解4. Cgroup详解5. 联合文件系统6. 容器运行时原理...
用css绘制收银键盘
最近需求说需要自己弄个收银键盘,于是乎直接上手搓 主要基于Vue3写的,主要是CSS <template><view class"container"><view class"info"><image class"img" src"" mode"">&l…...
aws训练快速入门教程
AWS 相关核心概念 简洁地介绍一下AWS训练云服务的核心关联概念: AWS核心服务层: 基础设施层: EC2(计算), S3(存储), RDS(数据库)等人工智能层: SageMaker(训练平台), AI服务等 机器学习服务分级: 高层: 预构建AI服务(开箱即用)中层: SageMaker(主要训练平台)底层: 框架和基…...