多人编程新方式:cpolar 让 OpenHands 远程开发更轻松
推荐
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站
前言
你有没有想过,和朋友一起写代码可以像一起编辑文档一样简单?不需要复杂的设置,不用对着屏幕大喊 “点那个按钮”,每个人都能同时修改代码,还能看到对方的操作?OpenHands 就是这样一个神奇的工具,但很多人因为不知道怎么让远程的朋友也能访问,只能放弃这个好用的功能。
其实,解决这个问题很简单,只需要一个小小的工具 ——cpolar。它能把你电脑上的 OpenHands 项目 “分享” 到互联网上,让远程的队友就像坐在你旁边一样操作。小张的团队就是这样做的:“以前配置远程开发环境要查半天教程,现在用 cpolar,跟着提示点几下鼠标就好了,我们三个不同城市的人,现在每天都能一起写代码,效率比以前高多了。”
cpolar 为什么这么好用?打个比方,你的电脑就像一个带密码锁的盒子,OpenHands 项目是盒子里的玩具。没有 cpolar 的时候,远程的朋友找不到这个盒子,更打不开锁。cpolar 就像给盒子装了一个 “快递柜”,你把玩具放进快递柜,朋友凭密码就能取到,而且只有你指定的人才能打开。整个过程安全又方便,不需要你懂任何复杂的网络知识。
接下来,我们就来手把手教你怎么用 OpenHands 和 cpolar 搭建多人编程环境。保证全程都是简单的鼠标操作,没有难懂的命令,即使你是编程新手也能学会。
【视频教程】
**OpenHands(前身是OpenDevin)**是一款基于大语言模型(LLM)的AI编程助手。想象一下,你有一个经验丰富的软件工程师24小时在线为你服务,是不是很爽?没错,这就是OpenHands!它可以帮你:
-
生成全新代码:从零开始写代码不再是难题。
-
增强现有代码功能:优化你的代码,让它更加高效、简洁。
-
智能调试除错:自动检测并修复bug,再也不用担心程序崩溃了。
-
支持多种编程语言:无论你是Python、Java还是C++大神,OpenHands都能完美适配。
2、部署OpenHands步骤
打开终端输入这行命令把项目拉取下来。
docker pull docker.all-hands.dev/all-hands-ai/runtime:0.39-nikolaik
接着输入这行命令运行项目。
docker run -it --rm --pull=always -e SANDBOX_RUNTIME_CONTAINER_IMAGE=docker.all-hands.dev/all-hands-ai/runtime:0.39-nikolaik -e LOG_ALL_EVENTS=true -v /var/run/docker.sock:/var/run/docker.sock -v ~/.openhands-state:/.openhands-state -p 3000:3000 --add-host host.docker.internal:host-gateway --name openhands-app docker.all-hands.dev/all-hands-ai/openhands:0.39
稍等片刻后打开浏览器,输入localhost:3000,就能看到Openhands的界面啦!部署方法就这么简单!
3、简单使用openhands
第一次运行的时候,会弹出一个窗口,让我们选择大模型提供商、模型并输入API密钥。
他这里推荐这个provider,这个是国外线上付费的,但是对国内不太友好。
我这里建议选择本地部署好的大模型,优点是免费,隐私性强,也没有token数限制,还有其他模型大家可以自行选择,设置好后,点击Save保存
回到主页,我们开启一个新的对话。
中间告诉我们需要等待启动,这里我们稍等一下。可以看到左边是类似于chat GPT一样的对话窗口,有各种各样的功能,有增加测试覆盖,自动合并PR、修复readme文件和清理依赖
上方的changes可以看到你问题的变更历史记录,
vscode存放着你的项目目录,稍后AI生成的文件会保存到这里
这里是终端,可以运行输出的代码或测试
后面的browser是可以看到你问题转变为网页输出
我这里提问:编写一个打印 “hello world!” 的 bash 脚本
(提示词:Write a bash script hello.sh that prints “hello world!”)
能看到这里报错了,没关系是正常的,他自己会一步步修改错误。
点开vscode能看到他已经生成了文件
输出完成了,他这里告诉我你可以在命令行中输入这个命令chmod +x hello.sh让这个脚本有可执行权限,再输入./hello.sh验证输出结果
点击上方terminal我们来试一下。已经有权限了,能看到我们已经成功输出了hello world。
第一个脚本已经完成了,我们继续让他修改代码,让它接受一个名字,作为第一个参数,但默认为“world”
还是报错,别担心我们稍等一会
这里提示我已经完成了,现在可以使用一个可选的名字参数运行它,比如Alice,它将输出hello Alice!如果没有提供参数,它就会默认为hello world!
我们打开vscode看到成功多加了一个变量参数,然后我们来测试一下。打开terminal,输入./hello.sh gezi,修改后面参数为gezi。能看到成功输出了,效率还是很高的
4、安装cpolar内网穿透
访问cpolar官网: https://www.cpolar.com 点击免费使用
注册一个账号,并下载最新版本的Cpolar。
登录成功后,点击下载Cpolar到本地并安装(一路默认安装即可)本教程选择下载Windows版本。
Cpolar安装成功后,在浏览器上访问http://localhost:9200,使用cpolar账号登录,登录后即可看到Cpolar web 配置界面,结下来在web 管理界面配置即可。
5、配置公网地址
登录cpolar web UI管理界面后,点击左侧仪表盘的隧道管理——创建隧道:
- 隧道名称:可自定义,本例使用了:openhands,注意不要与已有的隧道名称重复
- 协议:http
- 本地地址:3000
- 域名类型:随机域名
- 地区:选择China Top
点击创建:
创建成功后,打开左侧在线隧道列表,可以看到刚刚通过创建隧道生成了两个公网地址,接下来就可以在其他电脑或者移动端设备(异地)上,使用任意一个地址在浏览器中访问即可。
现在就已经成功实现使用cpolar生成的公网地址异地远程访问本地部署的openhands啦!
小结
为了方便演示,我们在上边的操作过程中使用cpolar生成的HTTP公网地址隧道,其公网地址是随机生成的。这种随机地址的优势在于建立速度快,可以立即使用。然而,它的缺点是网址是随机生成,这个地址在24小时内会发生随机变化,更适合于临时使用。
如果有长期使用openhands,或者异地访问与使用其他本地部署的服务的需求,但又不想每天重新配置公网地址,还想让公网地址好看又好记并体验更多功能与更快的带宽,那我推荐大家选择使用固定的二级子域名方式来配置公网地址。
6、配置固定二级子域名公网地址
使用cpolar为其配置二级子域名,该地址为固定地址,不会随机变化。
注意需要将cpolar套餐升级至基础套餐或以上,且每个套餐对应的带宽不一样。【cpolar.cn已备案】
点击左侧的预留,选择保留二级子域名,地区选择china top,然后设置一个二级子域名名称,我这里演示使用的是openhands,大家可以自定义。填写备注信息,点击保留。
保留成功后复制保留的二级子域名地址:
登录cpolar web UI管理界面,点击左侧仪表盘的隧道管理——隧道列表,找到所要配置的隧道openhands,点击右侧的编辑
。
修改隧道信息,将保留成功的二级子域名配置到隧道中
- 域名类型:选择二级子域名
- Sub Domain:填写保留成功的二级子域名
- 地区: China Top
点击更新
更新完成后,打开在线隧道列表,此时可以看到随机的公网地址已经发生变化,地址名称也变成了保留和固定的二级子域名名称。
最后,我们使用固定的公网地址在任意设备的浏览器中访问,可以看到成功访问本地部署的OpenHands 页面,这样一个永久不会变化的二级子域名公网网址即设置好了。
总结
用 OpenHands 和 cpolar 实现多人远程编程真的很简单:先在电脑上打开 OpenHands 创建项目,然后运行 cpolar 生成一个链接,把链接发给队友,他们点击链接就能加入。程序员小李说:“以前远程协作写代码像打仗,现在用这个方法,就像大家坐在同一个房间,沟通顺畅多了,项目进度快了一倍。” 这个方法不仅操作简单,还很安全,不用担心代码泄露。如果你经常需要和别人一起写代码,一定要试试这个组合,让编程变得更轻松有趣。
本篇文章知识点来源[cpolar官网][https://www.cpolar.com]
- cpolar博客:配置二级子域名: https://www.cpolar.com/blog/configure-the-secondary-subdomain-name
- cpolar博客:配置自定义域名: https://www.cpolar.com/blog/configure-your-own-domain-name
- cpolar博客:配置固定TCP端口地址: https://www.cpolar.com/blog/configure-fixed-tcp-port-address
- cpolar博客:配置固定FTP地址: https://www.cpolar.com/blog/configure-fixed-ftp-address