当前位置: 首页 > backend >正文

零基础入门:5分钟学会OpenHands远程编程环境搭建

文章目录

    • 前言
    • 1、关于OpenHands
    • 2、部署OpenHands步骤
    • 3、简单使用openhands
    • 4、安装cpolar内网穿透
    • 5、配置公网地址
    • 6、配置固定二级子域名公网地址
    • 总结

前言

在数字化浪潮中,软件工程师们常常面对复杂的编程挑战。当冗长的代码结构和难以定位的逻辑错误消耗着宝贵的时间时,您是否期待着更高效的解决方案?此刻,我们向您推荐划时代的AI开发工具——OpenHands

这款智能编程平台突破性地整合了代码生成与自动化调试两大核心功能。它不仅能根据需求智能生成代码片段,更能实时扫描程序异常,精准定位并修正潜在缺陷。对于追求效率的开发者而言,这无疑是技术革新的里程碑。

image-20250530185443158

1、关于OpenHands

**OpenHands(前身是OpenDevin)**是一款基于大语言模型(LLM)的AI编程助手。想象一下,你有一个经验丰富的软件工程师24小时在线为你服务,是不是很爽?没错,这就是OpenHands!它可以帮你:

  • 生成全新代码:从零开始写代码不再是难题。

  • 增强现有代码功能:优化你的代码,让它更加高效、简洁。

  • 智能调试除错:自动检测并修复bug,再也不用担心程序崩溃了。

  • 支持多种编程语言:无论你是Python、Java还是C++大神,OpenHands都能完美适配。

    721e2edc80ab127d0194227b973d9154

2、部署OpenHands步骤

打开终端输入这行命令把项目拉取下来。

docker pull docker.all-hands.dev/all-hands-ai/runtime:0.39-nikolaik

image-20250530185700930

接着输入这行命令运行项目。

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

image-20250530185714889

稍等片刻后打开浏览器,输入localhost:3000,就能看到Openhands的界面啦!部署方法就这么简单!

image-20250530185748833

3、简单使用openhands

第一次运行的时候,会弹出一个窗口,让我们选择大模型提供商、模型并输入API密钥。

他这里推荐这个provider,这个是国外线上付费的,但是对国内不太友好。

image-20250530185818679

我这里建议选择本地部署好的大模型,优点是免费,隐私性强,也没有token数限制,还有其他模型大家可以自行选择,设置好后,点击Save保存

image-20250530185845947

回到主页,我们开启一个新的对话。

image-20250530185911009

中间告诉我们需要等待启动,这里我们稍等一下。可以看到左边是类似于chat GPT一样的对话窗口,有各种各样的功能,有增加测试覆盖,自动合并PR、修复readme文件和清理依赖

image-20250530185937567

上方的changes可以看到你问题的变更历史记录,

image-20250530190000173

vscode存放着你的项目目录,稍后AI生成的文件会保存到这里

image-20250530190011782

这里是终端,可以运行输出的代码或测试

image-20250530190023109

后面的browser是可以看到你问题转变为网页输出

image-20250530190037860

我这里提问:编写一个打印 “hello world!” 的 bash 脚本

(提示词:Write a bash script hello.sh that prints “hello world!”)

image-20250603105421228

能看到这里报错了,没关系是正常的,他自己会一步步修改错误。

image-20250603105447055

点开vscode能看到他已经生成了文件

image-20250603105520906

输出完成了,他这里告诉我你可以在命令行中输入这个命令chmod +x hello.sh让这个脚本有可执行权限,再输入./hello.sh验证输出结果

image-20250603105539656

点击上方terminal我们来试一下。已经有权限了,能看到我们已经成功输出了hello world。

image-20250603105600374

第一个脚本已经完成了,我们继续让他修改代码,让它接受一个名字,作为第一个参数,但默认为“world”

image-20250603105620823

还是报错,别担心我们稍等一会

image-20250603105628704

这里提示我已经完成了,现在可以使用一个可选的名字参数运行它,比如Alice,它将输出hello Alice!如果没有提供参数,它就会默认为hello world!

image-20250603105646487

我们打开vscode看到成功多加了一个变量参数,然后我们来测试一下。打开terminal,输入./hello.sh gezi,修改后面参数为gezi。能看到成功输出了,效率还是很高的

image-20250603105716193

4、安装cpolar内网穿透

访问cpolar官网: https://www.cpolar.com 点击免费使用注册一个账号,并下载最新版本的Cpolar。

img

登录成功后,点击下载Cpolar到本地并安装(一路默认安装即可)本教程选择下载Windows版本。

image-20240319175308664

Cpolar安装成功后,在浏览器上访问http://localhost:9200,使用cpolar账号登录,登录后即可看到Cpolar web 配置界面,结下来在web 管理界面配置即可。

img

5、配置公网地址

登录cpolar web UI管理界面后,点击左侧仪表盘的隧道管理——创建隧道:

  • 隧道名称:可自定义,本例使用了:openhands,注意不要与已有的隧道名称重复
  • 协议:http
  • 本地地址:3000
  • 域名类型:随机域名
  • 地区:选择China Top

点击创建:

image-20250603105836981

创建成功后,打开左侧在线隧道列表,可以看到刚刚通过创建隧道生成了两个公网地址,接下来就可以在其他电脑或者移动端设备(异地)上,使用任意一个地址在浏览器中访问即可。

image-20250603105903543

现在就已经成功实现使用cpolar生成的公网地址异地远程访问本地部署的openhands啦!

image-20250603105941105

小结

为了方便演示,我们在上边的操作过程中使用cpolar生成的HTTP公网地址隧道,其公网地址是随机生成的。这种随机地址的优势在于建立速度快,可以立即使用。然而,它的缺点是网址是随机生成,这个地址在24小时内会发生随机变化,更适合于临时使用。

如果有长期使用openhands,或者异地访问与使用其他本地部署的服务的需求,但又不想每天重新配置公网地址,还想让公网地址好看又好记并体验更多功能与更快的带宽,那我推荐大家选择使用固定的二级子域名方式来配置公网地址。

6、配置固定二级子域名公网地址

使用cpolar为其配置二级子域名,该地址为固定地址,不会随机变化。

注意需要将cpolar套餐升级至基础套餐或以上,且每个套餐对应的带宽不一样。【cpolar.cn已备案】

点击左侧的预留,选择保留二级子域名,地区选择china top,然后设置一个二级子域名名称,我这里演示使用的是openhands,大家可以自定义。填写备注信息,点击保留。

image-20250603110035736

保留成功后复制保留的二级子域名地址:

image-20250603110050085

登录cpolar web UI管理界面,点击左侧仪表盘的隧道管理——隧道列表,找到所要配置的隧道openhands,点击右侧的编辑

image-20250603110110237

修改隧道信息,将保留成功的二级子域名配置到隧道中

  • 域名类型:选择二级子域名
  • Sub Domain:填写保留成功的二级子域名
  • 地区: China Top

点击更新

image-20250603110124516

更新完成后,打开在线隧道列表,此时可以看到随机的公网地址已经发生变化,地址名称也变成了保留和固定的二级子域名名称。

image-20250603110144554

最后,我们使用固定的公网地址在任意设备的浏览器中访问,可以看到成功访问本地部署的OpenHands 页面,这样一个永久不会变化的二级子域名公网网址即设置好了。

image-20250603110217266

总结

通过OpenHands本地开发环境与cpolar远程连接技术的结合,开发者已成功构建了灵活的分布式编程体系。该方案突破了传统办公场景的物理限制,无论身处办公场景还是移动环境,均可实现无缝代码协作。这种跨场景的开发模式将重构您的工作流,建议立即体验OpenHands带来的效率革新。

本指南详细演示了Windows平台上的OpenHands部署流程及cpolar内网穿透配置方案,成功构建了可长期稳定的远程访问通道。通过二级子域名的智能绑定技术,确保了服务地址的持久可用性,为团队协作提供了可靠的基础设施支持。

欢迎就具体实施细节展开技术探讨,您的实践反馈将助力优化完善本解决方案。让我们共同探索AI辅助编程与远程开发技术的融合潜力,推动软件开发领域的持续创新。

http://www.xdnf.cn/news/12864.html

相关文章:

  • 在Pnetlab6上绕过TPM、安全启动和 RAM 检查安装windows 11笔记
  • 构建AI中台:从技术孤岛到智能服务能力平台化
  • 自然语言处理——语言模型
  • 基于定制开发开源AI智能名片S2B2C商城小程序的首屏组件优化策略研究
  • gorm 配置数据库
  • LLMs 系列科普文(11)
  • 25.【.NET8 实战--孢子记账--从单体到微服务--转向微服务】--单体转微服务--用户服务接口
  • vscode 配置 latex
  • Python-Flask
  • MCP Resource模块详解
  • 386. 字典序排数
  • 达梦数据库字段类型 varchar 转 text
  • Python初体验学习笔记
  • 电路图识图基础知识-电动机正反转控制电路详解(二十)
  • 省略号和可变参数模板
  • OPENCV图形计算面积、弧长API讲解(2)
  • 做题笔记(ctfshow)
  • LeetCode - 145. 二叉树的后序遍历
  • JavaScript 内置对象全解析
  • QRadioButton(续)+ CheckBox + QLabel(2)
  • 【Go语言基础【20】】Go的包与工程
  • c#,Powershell,mmsys.cpl,使用Win32 API展示音频设备属性对话框
  • JavaWeb预习(jdbc)
  • 拼多多官方内部版 7.58.0 | 极限精简,只有2.5M
  • 【笔记】Poetry虚拟环境创建示例
  • Prompt Tuning(提示调优)到底训练优化的什么部位
  • DiscuzX3.5发帖json api
  • maven 1.0.0idea的使用说明
  • Vue3学习(watchEffect,标签的ref属性,计数器,defineExpose)
  • SpringCloud学习笔记-4