ChatGPT Codex试用心得,码农的可靠助手or失业号角?
今天在chatgpt网页上收到了chatgpt的灰度推送,可以尝试gpt的codex代码助手了,迫不及待的尝试了一番,有一些坑和注意事项在本文进行了汇总,方便其他园子里的有plus的小伙伴尝鲜,下面开始正文。
note:由于之前没有用过类似的编码助手,包括copilot和cursor等等,所以我也是一个坑一个坑的趟完的,本文完全适合0基础的小伙伴上手。
首先对codex做一个基础的了解,codex不同于网页上使用chatgpt那种问答助手,也不同于claude的computer use那种帮你操控你自己电脑的助手,而是通过授权连接github你的仓库,在它自己的隔离沙箱中帮你敲代码的助手。
所以你需要准备一个github仓库,并且需要从chatgpt连接它,让chatgpt有权限拉取代码以及提交rp
第一步:访问https://chatgpt.com/codex/。根据引导会进入创建环境页面,点击github组织,选择添加github账号,对引导你到github上创建连接授权服务
在这里你可以选择你的所有仓库,也可以选择部分仓库(根据你自己的需求)。
创建好以后回到https://chatgpt.com/codex/settings/environment/create会列出你的账号下的仓库(私有仓库我没测过,公开的是有的)这个过程大概会有3-5分钟同步。这里会遇到第一个坑,即仓库怎么搜索都不出来。原因在于github的索引服务是懒加载,如果你的仓库没有活跃or很低活跃,就不会被索引。这时候你需要主动的索引一下。索引的方法是在浏览器访问这个urlhttps://github.com/search?q=repo:{你的账号}/{你的仓库} import&type=code。以我的DDD脚手架项目为例:
https://github.com/search?q=repo:sd797994/DDDScaffold import&type=code
等待数分钟后,仓库就可以被正确的搜索出来了。
接下来选择好你的仓库,你需要进行沙箱的初始化(就是装软件包)。chatgpt默认提供的软件包并不包含.net环境,所以我们需要准备一份脚本让容器初始化的时候自动安装dotnet sdk。
把这段脚本根据你自己的需求调整好以后。放置到脚本栏,点击连接终端,chatgpt就会自动初始化沙箱容器
#!/usr/bin/env bash
set -e # 1) 可按需修改的变量
DOTNET_DIR="$HOME/.dotnet" # 安装目录
CHANNEL="STS" # LTS=8.x,STS=9.x,或具体版本号 # 2) 检测机器架构并映射到官方脚本支持的值
UNAME_M="$(uname -m)"
case "$UNAME_M" in
x86_64) ARCH="x64" ;;
aarch64) ARCH="arm64" ;;
armv7l|armv7*) ARCH="arm" ;;
*)
echo "不支持的架构: $UNAME_M"
exit 1
;;
esac # 3) 下载并执行官方安装脚本(这里不再传 --quality 参数)
curl -sSL https://dot.net/v1/dotnet-install.sh -o /tmp/dotnet-install.sh
chmod +x /tmp/dotnet-install.sh /tmp/dotnet-install.sh \
--install-dir "$DOTNET_DIR" \
--channel "$CHANNEL" \
--architecture "$ARCH" # 4) 将 dotnet 路径加到当前 shell 以及 ~/.bashrc
export DOTNET_ROOT="$DOTNET_DIR"
export PATH="$DOTNET_DIR:$PATH"
if ! grep -q 'DOTNET_ROOT' ~/.bashrc 2>/dev/null; then
{
echo ''
echo '# .NET SDK'
echo "export DOTNET_ROOT=\"$HOME/.dotnet\""
echo "export PATH=\"\$DOTNET_ROOT:\$PATH\""
} >> ~/.bashrc
fi # 5) 验证安装是否成功
"$DOTNET_DIR/dotnet" --info
运行完毕正确的打印了dotnet info后就表示你的容器设置完毕了,可以点击保存环境。至于代理网络看你需求,如果你在开发过程中还需要agent通过外网访问资源则需要打开,否则建议关闭。
接下来就可以回到首页选择你的仓库和分支,就可以进行玩耍了
除了一般的对仓库进行提问,写代码也是可以的
当它工作完成后,你可以选择创建PR。这样你的github的就能获取到agent上传的记录,可以按需选择合并到主干/分支。这样你就搞定了一个需求
以上内容基本就是教你如何一步一步让AI来帮你写代码的。不知道各位小伙伴看了之后是会心一笑还是背脊发凉呢。
ChatGPT Codex试用心得,码农的可靠助手or失业号角?的更多相关文章
- 码农的好助手:版本管理工具git的使用
一.什么是github? GitHub 是一个面向开源及私有软件项目的托管平台,因为只支持 Git 作为唯一的版本库格式进行托管,故名 GitHub. GitHub 于 2008 年 4 月 10 日 ...
- 一名Java架构师分享自己的从业心得,从码农到架构师我用了八年
工作了挺久,发现有个挺有意思的现象,从程序员.高级程序员,到现在挂着架构师.专家之类的头衔,伴随着技术和能力的提高,想不明白的事情反而越来越多了. 这些疑问有些来自于跟小伙伴的交流,有些是我的自问自答 ...
- R语言码农的Scala学习心得
为了MLib,最近是铁了心要学好Spark.关注本博客的朋友应该知道我的主力语言是R,无论是训练模型还是做Elasticsearch,都是通过R脚本来操作的.之前的<通过 Spark R 操作 ...
- PHP码农在Golang压力下的生存之道-PHP性能优化实践
随着国内Golang的火爆,phper的生存压力越来越大,在一次内部技术讨论中,gopher甚至提出,要什么php,写php的全部开掉,唉,码农何苦为难码农. 本文试图寻找一种有效实践,减少php w ...
- 野路子码农系列(1) 创建Web API
新工作正式开始了2天,由于客户暂时还没交接数据过来,暂时无事可做.恰逢政佬给某超市做的商品图像识别的项目客户催收了,老板要求赶紧搞个API,于是我就想我来试试吧. 说起API,我其实是一窍不通的,我对 ...
- 拥抱Mac之码农篇
拥抱Mac之码农篇 使用Mac大概两年时间.之前用着公司配的一台27寸的iMac.无奈机械硬盘严重拖慢速度,影响工作心情.于是入手Macbook Retina 13.这两年的开发工作所有在Mac上完毕 ...
- 【整理】待毕业.Net码农就业求职储备
声明:本文题目来源于互联网,仅供即将从学校毕业的.Net码农(当然,我本人也是菜逼一个)学习之用.当然,学习了这些题目不一定会拿到offer,但是针对就业求职做些针对性的准备也是不错的.此外,除了技术 ...
- <开心一笑> 码农 黑客和2B程序员之间的区别
笔记本电脑 码农: 黑客: 2B程序员: 求2的32次方: 码农: System.out.println(Math.pow(2, 32)); 黑客: System.out.println(1L< ...
- 经典算法C++版(参考一线码农博文)
鉴于一线码农的算法博文基本通过C#完成,此处用C++再实现一遍,具体解法可参考其博文. 地址:http://www.cnblogs.com/huangxincheng/category/401959. ...
- [2013 eoe移动开发者大会]靳岩:从码农到极客的升级之路
(国内知名Android开发论坛 eoe开发者社区推荐:http://www.eoeandroid.com/) 前天,2013 eoe 移动开发者大会在国家会议中心召开,eoe 开发者社区创始人靳岩在 ...
随机推荐
- CompletableFuture API介绍及使用
1. 介绍 CompletableFuture 是 Java 8 引入的一个用于异步编程的类,位于 java.util.concurrent 包中.它是对 Future 的增强,提供了更强大的功能来支 ...
- ORACLE SQL中执行先后次序的问题
分享一个经验 需求:Oracle中,根据COST优先级取最优先的一条记录脚本: select ... from ... where ... and rownum=1 order by cost 实际不 ...
- JLabel展示文本和图片--java进阶day03
1.JLabel 我们想要在窗体中展示图片或者文本是不能直接展示的,文本和图片必须要放在JLabel这个组件中 JLabel实质是窗体中的一块区域,创建了一个JLabel对象意味着在窗体中开辟了一块区 ...
- 【Spring】JdbcTemplate的使用方法
概念和准备 什么是 JdbcTemplate Spring 框架对 JDBC 进行封装,使用 JdbcTemplate 方便实现对数据库操作 准备工作 引入相关 jar 包 在 spring 配置文件 ...
- 【手机】三星手机刷机解决SecSetupWizard已停止
三星手机恢复出厂设置之后,出现SecSetupWizard已停止的解决方案 零.问题 我手上有一部同学给的三星 GT-S6812I,这几天搞了张新卡,多余出的卡就放到这个手机上玩去了.因为是获取了ro ...
- MCP数据脱敏应用开发
一.概述 数据脱敏(Data Masking),又称数据漂白.数据去隐私化或数据变形. 定义 指对某些敏感信息通过脱敏规则进行数据的变形,实现敏感隐私数据的可靠保护.在涉及客户安全数据或者一些商业性敏 ...
- php -S命令开启一个纯php的web服务、命令行直接运行php代码
php -S ip:port 命令可以开启一个纯php的web服务,如: php -S 127.0.0.1:8080 # ip指定为localhost也是可以的 tips:端口号必填,服务的根目录即 ...
- Python3正则表达式(一)
Python3正则表达式 正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配. Python 自1.5版本起增加了re 模块,它提供 Perl 风格的正则表达式模式. r ...
- 20K star!让网页设计秒变手绘风,这个开源库太有创意了!
"Rough.js 是一个轻量级的图形库(仅8KB),能够为网页元素赋予自然的手绘质感.通过独特的算法模拟人类绘画的不规则性,开发者只需几行代码即可为图表.流程图.UI组件等数字内容注入生动 ...
- WPF封装一个懒加载下拉列表控件(支持搜索)
因为项目中PC端前端针对基础数据选择时的下拉列表做了懒加载控件,PC端使用现成的组件,为保持两端的选择方式统一,WPF客户端上也需要使用懒加载的下拉选择. WPF这种懒加载的控件未找到现成可用的组件, ...