天猫精灵语音自动化查询ECS服务器内存剩余-基于Python实现

简介: 最近比较忙,又不太擅长开发,但是想着社区的活动还是要参加一下的哈哈哈哈哈哈,俺略懂一些python,于是选用python作为后端FaaS的语言进行简单的脚本编写

开发能力我还是太弱了,但是平常接触python会多一点,包括一些自动化运维之类的开发。我这里就编写一个简单的python后端脚本,通过paramiko模块ssh功能,实现天猫精灵通过语音召唤还有内存吗”,自动化去查询我在阿里云上的ECS服务器内存剩余。

后续有时间,我可能会丰富一下功能,加入一些常用的运维查询功能。


天猫精灵技能应用平台提供了从语音交互模型定义、语义解析理解能力,到技能开发、测试、部署的一整套开发工具和便捷的可视化操作工作台,帮助开发者高效地将各类技能应用快速接入到天猫精灵音箱以及精灵生态硬件终端。

目前平台支持以下几种应用类型的接入:

  • 语音技能
  • 灵活定义语音交互方式,开发业务逻辑代码、创建屏显页面来响应任意的用户语音请求。
  • 小程序
  • 支持将支付宝小程序快速迁移到天猫精灵设备,同时也可利用内容模板小程序快速完成内容变现。
  • 安卓Android APP应用
  • 支持快速接入安卓生态应用,与天猫精灵带屏端设备无缝打通,同时支持语音交互能力。
  • H5网页小游戏
  • 无需开发,支持现成H5网页小游戏的快速接入,同时支持语音唤起。



一、创建语言技能

选择自定义技能

 

 

image.png

 

填写基本的信息,输入调用词,通过喊这个调用词实现唤出

选择FAAS

image.png

 

进入技能后,选择后端服务,选择服务部署,选择阿里云云原生开发

image.png

 

 

选择关联阿里云账户

 

image.png

 

授权访问

image.png

 

完成后选择Python开发语言,选择空白模板

image.png

 

完成后端的服务部署

image.png

 

二、配置语音交互模型

我这里实现比较简单,后端没有从前端json获取参数,交互就随意配置了

配置意图,简单写个名称

image.png

可以配置一些固定问答

 

image.png

 

三、后端代码开发

进入代码编辑,前往webide

image.png

进入给的默认模板index

image.png

 

大概看一下给的模板代码

 

import logging
import json
import base64
#导入模块
def handler(event, context):
    request = json.loads(event)
    logger = logging.getLogger()
    body = base64.b64decode(request['body']).decode()
    data = json.loads(body) 
    logger.info(data)
#定义了获取json数据,存放在body
#响应数据库,回复内容在reply里面
    response = {
        "isBase64Encoded": "false",
        "statusCode": "200",
        "headers": {"content-type": "application/json"},
        "body": {
            "returnCode": "0",
            "returnErrorSolution": "",
            "returnMessage": "",
            "returnValue": {
                "reply": "欢迎使用",
                "resultType": "RESULT",
                "executeCode": "SUCCESS",
                "msgInfo": ""
            }
        }
    }

 

我们可以做个简单测试,看一下前端传参数json大概有什么,在reply这里将数据包的内容body显示。这样后续可以针对json包提取数据做其他功能

image.png

 

测试一下,可以看到json结构

image.png

 

 

 

PS:我后来发现原来在fc的日志里也可以看到,当然可以在日志里看了,为什么我一开始没想到呜呜QAQ

image.png

 

修改我们代码,我们通过paramiko模块实现SSH功能,在收到唤醒的请求后,直接运行ssh登录到服务器并执行查询内存的shell命令

# @by : Taoreset
import logging
import json
import base64
import paramiko   #导入paramiko模块
def handler(event, context):
    request = json.loads(event)
    logger = logging.getLogger()
    body = base64.b64decode(request['body']).decode()
    data = json.loads(body)
    logger.info(data)
   #在收到唤醒的请求后,直接进入ecs_mem_free()函数
    replydata = ecs_mem_free()
    response = {
        "isBase64Encoded": "false",
        "statusCode": "200",
        "headers": {"content-type": "application/json"},
        "body": {
            "returnCode": "0",
            "returnErrorSolution": "",
            "returnMessage": "",
            "returnValue": {
               "reply": replydata,   #返回结果
                "resultType": "RESULT",
                "executeCode": "SUCCESS",
                "msgInfo": ""
            }
        }
    }
    return response
#定义一个执行SSH查询内存命令的函数
def ecs_mem_free():
    cmd = 'cat /proc/meminfo |grep -w "MemFree" | tr -cd "[0-9]"'  ##执行的shell命令
    user = '用户名'
    passwd = '密码'
    host = '服务器地址'
    ssh = paramiko.SSHClient()
   ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    ssh.connect(host,'22',user,passwd)
    stdin, stdout, stderr = ssh.exec_command(cmd)
    res,err = stdout.read(),stderr.read()
    result = res if res else err
    ans = "您的ECS内存还有: "+result.decode()+' KB'
    ssh.close()
    return ans

 

 

由于paramiko不在平台的内置模块里,我们需要手动在终端执行打包下载paramiko模块依赖

python -m pip install --upgrade pip
pip install -t . paramiko

image.png

 

所有修改完成了,需要在git里提交一下,修改保存到codeup代码仓库

image.png

 

最后部署,部署到预发环境进行测试

image.png

 

 

四、测试

最后效果,当然,剩余内存在动态变更

image.png

直接输入唤醒词,返回ECS上的查询结果。也可以定义一些固定的数据,进行预设的问答

image.png

 

后续可以将开发完成的技能进行发布,我这里功能太简单了,纯属体验,就不发布啦

image.png

就玩玩儿,图一乐

相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
相关文章
|
6月前
|
安全 JavaScript 开发者
Python 自动化办公神器|一键转换所有文档为 PDF
本文介绍一个自动化批量将 Word、Excel、PPT、TXT、HTML 及图片转换为 PDF 的 Python 脚本。支持多格式识别、错误处理与日志记录,适用于文档归档、报告整理等场景,大幅提升办公效率。仅限 Windows 平台,需安装 Office 及相关依赖。
352 0
|
7月前
|
Web App开发 存储 前端开发
Python+Selenium自动化爬取携程动态加载游记
Python+Selenium自动化爬取携程动态加载游记
|
4月前
|
存储 数据采集 监控
Python定时爬取新闻网站头条:从零到一的自动化实践
在信息爆炸时代,本文教你用Python定时爬取腾讯新闻头条,实现自动化监控。涵盖请求、解析、存储、去重、代理及异常通知,助你构建高效新闻采集系统,适用于金融、电商、媒体等场景。(238字)
666 2
|
10月前
|
机器学习/深度学习 数据采集 API
Python自动化解决滑块验证码的最佳实践
Python自动化解决滑块验证码的最佳实践
|
7月前
|
数据采集 人工智能 API
推荐一款Python开源的AI自动化工具:Browser Use
Browser Use 是一款基于 Python 的开源 AI 自动化工具,融合大型语言模型与浏览器自动化技术,支持网页导航、数据抓取、智能决策等操作,适用于测试、爬虫、信息提取等多种场景。
975 4
推荐一款Python开源的AI自动化工具:Browser Use
|
5月前
|
数据采集 监控 Shell
无需Python:Shell脚本如何成为你的自动化爬虫引擎?
Shell脚本利用curl/wget发起请求,结合文本处理工具构建轻量级爬虫,支持并行加速、定时任务、增量抓取及分布式部署。通过随机UA、异常重试等优化提升稳定性,适用于日志监控、价格追踪等场景。相比Python,具备启动快、资源占用低的优势,适合嵌入式或老旧服务器环境,复杂任务可结合Python实现混合编程。
|
10月前
|
弹性计算 异构计算
阿里云服务器多少钱一小时?在哪查询1小时价格表?
阿里云服务器按量付费模式下,1小时费用因实例规格而异。例如,2核2G的ECS经济型e实例为0.094元/小时,而更高配置的GPU服务器可达211.68元/小时。用户可通过阿里云ECS页面“立即购买”并选择“按量付费”,查看不同配置的实时价格。此外,包年包月模式通常更划算,如轻量应用服务器2核2G仅需99元/年,但不支持按量付费。更多详情可访问阿里云官网查询。
676 71
|
7月前
|
存储 数据采集 数据可视化
Python自动化分析知网文献:爬取、存储与可视化
Python自动化分析知网文献:爬取、存储与可视化
|
7月前
|
数据采集 存储 监控
Python爬虫自动化:定时监控快手热门话题
Python爬虫自动化:定时监控快手热门话题
|
7月前
|
安全 数据库 数据安全/隐私保护
Python办公自动化实战:手把手教你打造智能邮件发送工具
本文介绍如何使用Python的smtplib和email库构建智能邮件系统,支持图文混排、多附件及多收件人邮件自动发送。通过实战案例与代码详解,帮助读者快速实现办公场景中的邮件自动化需求。
640 0

热门文章

最新文章

推荐镜像

更多