CentOS 8.0 安装docker 报错:Problem: package docker-ce-3:19.03.8-3.el7.x86_64 requires containerd.io >= 1.2.2-3
2020/03/16
Openstack Masakari task流程源码分析
2020/01/09
后端云网站主题 NexT -> 3-hexo
2020/01/01
Openstack运维常见问题记录(4)
2020/01/01
Openstack Stein 部署遇到的问题
2019/09/20
jetbrains windows版全家桶破解
2019/08/28
xshell隧道转发的三种类型
2019/08/27
任正非5月18日接受日本媒体采访的中文纪要
2019/06/15
华为云可能也要被美国釜底抽薪
2019/05/21
属于华为的荣耀时刻
2019/05/20
sriov计算节点转ovs计算节点脚本
2019/04/19
Openstack Placement
2019/04/18
POWER架构服务器作为计算节点
2018/10/21
OpenStack实践SR-IOV计算节点
2018/10/14
Openstack运维常见问题记录(3)
2018/09/29
ceph数据存储的几个概念
2018/09/05
Openstack运维常见问题记录(2)
2018/08/28
Openstack运维常见问题记录(1)
2018/08/26
Openstack两组容易混淆的概念
2018/08/16
自动化测试工具Serverwalker介绍
2018/07/14
Openstack中的虚拟机的cpu绑定
2018/07/13
华为的发展已越来越不需要运营商
2018/05/10
OpenStack Pike dashboard noVNC 不能访问
2018/04/14
JetBrains PyCharm 2018.1.1 x64专业版永久激活
2018/04/14
vm被systemd删除
2018/04/14
虚拟机无法启动
2018/04/14
部署实时OpenStack实例
2018/01/23
支持windows虚拟机和linux虚拟机分区调度
2018/01/23
Openstack Pike本地yum源搭建
2017/12/28
脚本安装Openstack Pike
2017/12/28
Kata Containers
2017/12/08
Raft算法和Gossip协议
2017/11/12
Openstack Vitrage(根因分析)
2017/11/10
实时操作系统
2017/11/08
2017/08/01
云主机的指令集配置
2017/07/31
AI大环境下的运营商
2017/07/20
cpu-pinning CPU绑定
2017/07/20
NUMA 非一致性内存访问
2017/07/20
内存虚拟化
2017/07/19
resize失败原因调查
2017/07/04
挂载云硬盘
2017/06/30
Ocata nova evacuate bug
2017/06/28
gerrit触发jenkins执行脚本自动构建rpm包
2017/06/28
gerrit install
2017/06/28
JIRA安装
2017/06/27
compute node ha 主流开源实现
2017/06/22
热迁移失败总结
2017/06/15
Collectd 和 InfluxDB 的部署和使用
2017/06/15
本地存储条件下的热迁移
2017/06/14
Doctor framework
2017/06/14
将快速疏散功能加入VM HA程序中
2017/06/10
新增OpenStack NOVA API用于强制计算节点nova-compute服务down
2017/06/08
vm挂载卷,镜像,vm实例的共享存储架构
2017/06/07
后端云网站全部url http -> https
2017/05/06
windows虚拟机激活失败问题
2017/05/04
ansible简单使用
2017/05/03
pci-api support
2017/05/02
cyborg agent
2017/05/01
获取虚机内存
2017/05/01
FPGA用户用例提案
2017/05/01
云环境中GPU配置
2017/04/29
华为和运营商们
2017/03/10
访问google
2017/03/07
Openstack Ocata初体验
2017/02/24
去QQ广告
2017/02/17
openstack两个region分别用各自glance服务->共用glance服务
2017/02/08
Openstack Cyborg 项目介绍
2017/01/07
xshell工具在开发中的使用技巧
2016/12/24
python,NFV项目开发--vim
2016/09/02
网络不通的情况下,不通过dashboard,在未装图形化系统上查看openstack 创建的vm
2016/08/18
Load Balance(LVS实现方式)
2016/07/05
VNFD模板参数化
2016/07/05
OPNFV Prediction
2016/06/11
openstack token管理
2016/06/11
OPNFV项目生命周期
2015/12/20
OPNFV的管理体制和会员制
2015/12/20
OPNFV简介(4) - 对所有人开放
2015/12/19
OPNFV简介(3) - 和上游关系
2015/12/19
OPNFV简介(2) - overview
2015/12/19
OPNFV简介(1) - 背景
2015/12/18
本篇用Github Copilot重写上篇 集成GPT-4的Cursor 的文章里的代码。
在写代码之前,先说下Github Copilot在写文档写文章上的使用体验。
Github Copilot不仅可以用来写代码,也可以用于写文档。实际上篇公众号关于 集成GPT-4的Cursor 的文章里的内容,我就是用Github Copilot辅助完成的。Github Copilot的使用体验非常好,我只需要输入一些关键词,比如“集成GPT-4的Cursor”,然后就会自动给我补全接下来的内容,很多时候正是我需要的内容,只要按下tab键就会自动补全到文章里,这个过程非常快,非常方便。不像ChatGPT,bing AI需要在另外的聊天窗口执行后复制到文章里,这个过程又慢又繁琐,Github Copilot可以将AI无缝接入到编辑的光标下,适合人和AI的无缝融合。
更神奇的是,我文章里用到了大量的图片,Github Copilot也能自动识别图片的信息和图片里的文字,因为在补全相关文字的时候,应该是扫描过插入的图片后,综合图片的信息后给出的文字。
下面开始用Github Copilot写代码:
Github Copilot的代码补全功能和Cursor不太一样的地方是,Cursor会给出完整的代码,而Github Copilot往往只给出一部分代码,或者一个完整的函数,且需要通过tab键决定是否采用Github Copilot的建议,整个过程往往还需要自己去写点代码。但这个过程也非常流畅,非常方便。Github Copilot更体现了Copilot,飞行副驾驶,重在辅助。
和Github Copilot一起完成的代码如下:
from PIL import Image
import argparse
def convert(image_file):
image = Image.
open(image_file)
image = image.convert('L')
chars = "@%#*+=-:. "
result = ""
for i in range(image.height):
for j in range(image.width):
gray = image.getpixel((j, i))
unit = (256.0 + 1) / len(chars)
result += chars[int(gray / unit)]
result += '\n'
return result
def main():
parser = argparse.ArgumentParser()
parser.add_argument('file')
parser.add_argument('-o', '--output')
parser.add_argument('--width', type=int, default=80)
parser.add_argument('--height', type=int, default=80)
args = parser.parse_args()
image_file = args.file
width = args.width
height = args.height
output = args.output
result = convert(image_file)
if output:
with open(output, 'w') as f:
f.write(result)
else:
with open('output.txt', 'w') as f:
f.write(result)
if __name__ == '__main__':
main()
运行代码:
PS C:\Users\hanwei\Documents\GitHub\backendcloud-3-hexo\themes> python main.py .\golang.png
发现生成的图片太大了,整个屏幕只能显示一小部分,比如上面的耳朵和眼睛。
对比下Cursor生成的代码,应该先将图像的像素压缩下。
def convert(image_file):
image = Image.open(image_file)
加一行改成
def convert(image_file):
image = Image.open(image_file)
image = image.resize((80, 80), Image.NEAREST)
再运行一次:
比例不对,后加的代码里的参数,用了80,80,原来的横图压缩成了正方形的图,压缩的太廋了,不调整了,意思一下就行。
下面使用Github Copilot Lab。Github Copilot Lab可以让AI解释代码,将代码翻译成其他编程语言,让AI写注释,写文档,让AI增加debug代码,让AI写单元测试,让AI修改程序让程序更健壮。
虽然笔者第一时间加入了等待列表,现在还在github copilot X等待列表,没有体验过X,但是感觉Github Copilot和Github Copilot Lab的结合已经有了github copilot X的宣传的主要功能。
下面,先删除所有注释,让Github Copilot Lab重新写注释:
让AI解释下这段代码:
让AI将这段Python代码翻译成Golang代码:
import argparse
import image
import os
func main() {
parser := argparse.NewParser("image", "Converts a image to ASCII art")
parser.String("1", "file", &argparse.Options{Required: true, Help: "Image file"})
parser.String("o", "output", &argparse.Options{Required: false, Help: "Output file", Default: ""})
parser.Int("W", "width", &argparse.Options{Required: false, Help: "Width of the output image", Default: 80})
parser.Int("H", "height", &argparse.Options{Required: false, Help: "Height of the output image", Default: 80})
err := parser.Parse(os.Args)
if err != nil {
fmt.Println(err)
return
imageFile := parser.String("file")
width := parser.Int("width")
height := parser.Int("height")
output := parser.String("output")
result := convert(imageFile, width, height)
if output != "" {
err := ioutil.WriteFile(output, []byte(result), 0644)
if err != nil {
fmt.Println(err)
return
} else {
err := ioutil.WriteFile("output.txt", []byte(result), 0644)
if err != nil {
fmt.Println(err)
return
func convert(imageFile string, width int, height int) string {
img, err := image.Open(imageFile)
if err != nil {
fmt.Println(err)
return ""
img = img.Resize(width, height, image.NearestNeighbor)
img = img.Convert(image.L)
chars := "@%#*+=-:. "
result := ""
for i := 0; i < img.Height(); i++ {
for j := 0; j < img.Width(); j++ {
gray := img.At(j, i)
unit := (256.0 + 1) / len(chars)
result += string(chars[int(gray/unit)])
result += "
return result
转载请注明来源,欢迎指出任何有错误或不够清晰的表达。可以邮件至 backendcloud@gmail.com