今天在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失业号角?的更多相关文章

  1. 码农的好助手:版本管理工具git的使用

    一.什么是github? GitHub 是一个面向开源及私有软件项目的托管平台,因为只支持 Git 作为唯一的版本库格式进行托管,故名 GitHub. GitHub 于 2008 年 4 月 10 日 ...

  2. 一名Java架构师分享自己的从业心得,从码农到架构师我用了八年

    工作了挺久,发现有个挺有意思的现象,从程序员.高级程序员,到现在挂着架构师.专家之类的头衔,伴随着技术和能力的提高,想不明白的事情反而越来越多了. 这些疑问有些来自于跟小伙伴的交流,有些是我的自问自答 ...

  3. R语言码农的Scala学习心得

    为了MLib,最近是铁了心要学好Spark.关注本博客的朋友应该知道我的主力语言是R,无论是训练模型还是做Elasticsearch,都是通过R脚本来操作的.之前的<通过 Spark R 操作 ...

  4. PHP码农在Golang压力下的生存之道-PHP性能优化实践

    随着国内Golang的火爆,phper的生存压力越来越大,在一次内部技术讨论中,gopher甚至提出,要什么php,写php的全部开掉,唉,码农何苦为难码农. 本文试图寻找一种有效实践,减少php w ...

  5. 野路子码农系列(1) 创建Web API

    新工作正式开始了2天,由于客户暂时还没交接数据过来,暂时无事可做.恰逢政佬给某超市做的商品图像识别的项目客户催收了,老板要求赶紧搞个API,于是我就想我来试试吧. 说起API,我其实是一窍不通的,我对 ...

  6. 拥抱Mac之码农篇

    拥抱Mac之码农篇 使用Mac大概两年时间.之前用着公司配的一台27寸的iMac.无奈机械硬盘严重拖慢速度,影响工作心情.于是入手Macbook Retina 13.这两年的开发工作所有在Mac上完毕 ...

  7. 【整理】待毕业.Net码农就业求职储备

    声明:本文题目来源于互联网,仅供即将从学校毕业的.Net码农(当然,我本人也是菜逼一个)学习之用.当然,学习了这些题目不一定会拿到offer,但是针对就业求职做些针对性的准备也是不错的.此外,除了技术 ...

  8. <开心一笑> 码农 黑客和2B程序员之间的区别

    笔记本电脑 码农: 黑客: 2B程序员: 求2的32次方: 码农: System.out.println(Math.pow(2, 32)); 黑客: System.out.println(1L< ...

  9. 经典算法C++版(参考一线码农博文)

    鉴于一线码农的算法博文基本通过C#完成,此处用C++再实现一遍,具体解法可参考其博文. 地址:http://www.cnblogs.com/huangxincheng/category/401959. ...

  10. [2013 eoe移动开发者大会]靳岩:从码农到极客的升级之路

    (国内知名Android开发论坛 eoe开发者社区推荐:http://www.eoeandroid.com/) 前天,2013 eoe 移动开发者大会在国家会议中心召开,eoe 开发者社区创始人靳岩在 ...

随机推荐

  1. 【MIPS】经典指令块集锦

    Directives声明变量值存储 容易将数据段地址和地址上的内容搞混 .data fibs: .space 48 # allocate 12 * 4 = 48 Byte memory, store ...

  2. 三分钟构建高性能WebSocket服务 | 超优雅的Springboot整合Netty方案

    前言 每当使用SpringBoot进行Weboscket开发时,最容易想到的就是spring-boot-starter-websocket(或spring-websocket).它可以让我们使用注解, ...

  3. sudo: unable to resolve host xxxx: Name or service not known

    前言 在 Linux 环境中,我使用 sudo 执行命令,发生报错:sudo: unable to resolve host xxxx: Name or service not known 解决 这个 ...

  4. go context 子Goroutine超时控制

    context使用 Go语言第一形参通常都为context.Context类型,1. 传递上下文 2. 控制子Goroutine超时退出 3. 控制子Goroutine定时退出 package mai ...

  5. ORACLE数据挖掘之 MSET-SPRT

    虽然是熟悉的Oracle数据库,但关于机器学习.数据挖掘这方面的知识笔者起初也是不了解的,文中MSET相关设置来源于同事提供的sample,在测试过程中边查资料边学习吸收,也因此看到了别样的Oracl ...

  6. element-ui和ant-design-vue 数字输入框只能输入大于等于1的整数

    限制输入的是大于等于1的整数 <template> <div> <h1>ant-design-vue 1.xx</h1> <a-input-num ...

  7. 前端必备的 CSS 库,normalize.css

    这是一个小 CSS 样式表,是著名的库,作为 CSS 基础样式的一部分,可消除客户端渲染不一致问题. 地址是 https://necolas.github.io/normalize.css/ 别小看这 ...

  8. 如何优化和提高MaxKB回答的质量和准确性?

    目前 ChatGPT.GLM等生成式人工智能在文本生成.文本到图像生成等在各行各业的都有着广泛的应用,但是由于大模型训练集基本都是构建于网络公开的数据,对于一些实时性的.非公开的或离线的数据是无法获取 ...

  9. elemengui分页

    <!-- 分页模块 --> <template> <div class="block" style="margin-top:20px&quo ...

  10. eolinker校验规则之正则匹配:返回结果校验的方法和案例(正则校验)

    如上图红色箭头,需要校验返回值内是否包含"创建满足条件的优惠券"这一内容 如果需要满足以上校验,最好的方法就是使用正则进行匹配 切换到正则匹配,输入需要校验的内容,即可实现正则匹配 ...