AIGC是生成式人工智能的缩写,生成式人工智能对人类社会、人工智能的意义是里程碑式的。为什么这么说呢。
AIGC改变了基础的生产力工具。“人和动物的区别是人会使用工具,而工具也标志着生产力的高低。可以认为是科技的进步。”
作为普通的IT工作者(运维工程师),如何迎接AI时代的到来,如何拥抱使用AIGC呢,下面分享一下python中使用aiXcoder和通义灵码的实践。
一、PyCharm安装插件
aiXcoder是一款智能化软件开发助手,能结合上下文为用户生成完整且更符合实际场景的代码行或者代码块,同时提供生成代码、自动生成单元测试、Bug自动修复、代码解释、生成注释等功能。
1、安装aiXcoder
打开pycharm,依次选择“文件”-“设置”。
点击“插件”,搜索aiXcoder,进行安装。
安装完成后重启pycharm。
通义灵码,是一款基于通义大模型的智能编码辅助工具,提供行级/函数级实时续写、自然语言生成代码、单元测试生成、代码注释生成、代码解释、研发智能问答、异常报错排查等能力,并针对阿里云 SDK/API 的使用场景调优,为开发者带来高效、流畅的编码体验。
2、安装通义灵码
打开pycharm,依次选择“文件”-“设置”,点击“插件”,搜索tongyi,进行安装。安装完成后重启pycharm。
二、编写运维脚本
首先,仅需要一条注释信息:
# 编写Python运维脚本,用于检查windows服务器上的磁盘空间并发送警告邮件
aiXcoder就会自动生成代码,只需按tab键接受自动生成的代码就可以。
可以看到代码的注释信息也已自动生成。
# -*- coding: utf-8 -*- -*- coding: utf-8 -*-
# 编写Python运维脚本,用于检查windows服务器上的磁盘空间并发送警告邮件
import os
import smtplib
from email.mime.text import MIMEText
from email.header import Header
from email.mime.multipart import MIMEMultipart
# 获取磁盘使用率
def get_disk_usage(os):
# 获取磁盘使用率
disk_usage = os.popen('wmic logicaldisk get name, freespace, size').read()
# 获取磁盘名称
disk_name = disk_usage.split('\n')[1].split()[0]
# 获取磁盘剩余空间
disk_free = disk_usage.split('\n')[1].split()[1]
def check_disk():
disk_info = os.popen('wmic logicaldisk get size,freespace')
# print(disk_info)
disk_info = disk_info.readlines()
# print(disk_info)
disk_info = disk_info[2:]
# print(disk_info)
for disk in disk_info:
disk = disk.strip().split()
if int(disk[1]) > 1000000000:
return disk[0]
return None
接着,继续按下回车键,代码接着还会自动生成。
然后,稍微修改一下磁盘空间告警规则和邮箱相关的信息,功能就实现了。
最后,使用通义灵码的智能问答。对代码进行“生成优化建议”等功能。
经过对话式的问答,通义灵码给出以下建议:
1、潜在问题与风险提醒
2、代码优化方向
3、优化后的代码示例
4、代码修改说明 安全性问题: 使用环境变量(os.getenv)来获取发送者邮箱地址、SMTP服务器地址和密码,避免硬编码和明文密码的风险。 异常处理: 特化地捕获smtplib.SMTPException来处理邮件发送过程中可能出现的错误,而不是捕获所有异常。 边界条件: 添加了validate_email函数来验证电子邮件地址的格式,并在发送邮件之前检查收件人列表是否为空或包含无效地址。
5、代码优化方向的实现
可以说通义灵码像一个经验最最最丰富工程师、顾问,给建议举事例,非常智能的助手。
三、最终效果
脚本优化修改好后,进行打包,然后放到目标电脑上运行。
打包命令:
# 切换到脚本文件所在目录
pyinstaller.exe -F -w 检查磁盘空间.py
测试效果如下:
四、总结
aiXcoder和通义灵码整体使用体验非常棒,只需简单的一条注释信息,然后就是一路回车确认就可以自动编写出代码。当然,其中还需要工程师进行注释信息的修改调整,但总体架构思路方向已经有了。
此次做为事例编写的脚本需要优化的地方还很多,比如:磁盘所在的服务器名称,磁盘盘符等信息没有显示,邮件的主题、内容等都需要优化(通义灵码已经给出非常多优化建议,其中还包括了安全性问题)。我们作为“当事人”(工程师)确认采不采纳就好了。
以上简单的事例说明AIGC作为智能编程助手大有可为。目前对于我这个辛苦的“搬砖工”来说,AI算是“编程助理”,我只需提问式的工作,然后由AI完成。
目前我的工作岗位是工程师,但是展望一下不远的将来,AI将会自主工作和创新工作,不需要我的干预。我做的可能只是打开IDE(pycharm)然后交由AI完成工作,还可能我接下来要做什么都需要AI的指示,我听命由AI。。。