Linux本地部署开源项目OpenHands基于AI的软件开发代理平台及公网访问

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。

非常期待和您一起在这个小小的网络世界里共同探索、学习和成长。💝💝💝 ✨✨ 欢迎订阅本专栏 ✨✨

博客目录

    • 前言
    • [1. Linux 部署 OpenHands](#1. Linux 部署 OpenHands)
    • [2. OpenHands 功能介绍](#2. OpenHands 功能介绍)
    • [3. 公网使用 OpenHands](#3. 公网使用 OpenHands)
      • [3.1 内网穿透工具安装](#3.1 内网穿透工具安装)
      • [3.2 创建远程连接公网地址](#3.2 创建远程连接公网地址)
    • [4. 固定 OpenHands 公网地址](#4. 固定 OpenHands 公网地址)

前言

本篇文章介绍如何在 Linux 本地部署开源项目 OpenHands 基于人工智能的软件开发代理平台,并结合 cpolar 实现公网访问。

OpenHands(此前称为 OpenDevin)是一个基于人工智能的软件开发代理平台,旨在通过 AI 技术增强软件开发流程。该平台支持开发者执行各种任务,包括代码编写、命令行操作以及网页浏览等,其功能几乎与人类开发者相当。

OpenHands 采用 MIT 许可证发布,并强调社区驱动的开发模式。项目主要使用 Python 编程语言构建,同时运行依赖于 Docker 环境。因此,熟悉容器化技术对于贡献或使用该项目尤为重要。

OpenHands 代理可以执行人类开发人员可以执行的任何操作:修改代码、运行命令、浏览网页、调用 API,甚至从 StackOverflow 复制代码片段。

接下来本地部署 OpenHands。

1. Linux 部署 OpenHands

本篇文章演示环境:Ubuntu22.04

运行 OpenHands 最简单的方法是使用 Docker 进行部署,如果没有安装 Docker,可以查看这篇教程进行安装:Docker 安装------Linux、Windows、MacOS - cpolar 极点云官网

输入以下命令来运行以下命令拉取 OpenHands 镜像:

shell 复制代码
sudo docker pull docker.all-hands.dev/all-hands-ai/runtime:0.14-nikolaik

使用以下命令启动 OpenHands 容器:

shell 复制代码
sudo docker run -it --pull=always \
    -e SANDBOX_RUNTIME_CONTAINER_IMAGE=docker.all-hands.dev/all-hands-ai/runtime:0.14-nikolaik \
    -e LOG_ALL_EVENTS=true \
    -v /var/run/docker.sock:/var/run/docker.sock \
    -p 3000:3000 \
    --add-host host.docker.internal:host-gateway \
    --name openhands-app \
    docker.all-hands.dev/all-hands-ai/openhands:0.14

打开浏览器输入 localhost:3000 启动并可以访问。

2. OpenHands 功能介绍

首次运行时,会弹出设置窗口。

用户需要选择 LLM 提供商、LLM 模型并输入 API 密钥。

可通过点击 UI 中的齿轮图标随时调整设置。如需使用自定义模型,可在高级选项中手动输入模型名称和 Base URL。

设置好后,点击 Save 保存

接下来验证下 OpenHands,输入下提示词请求,例如:请编写一个 bash 脚本 hello.sh,打印 "hello world!"

回到 OpenHands,可以看到左侧显示提示词,右侧给出了对应回答

接下来我想让他使用 HTML 创建一个简单的计算器,点击生成,可以看到右侧出现了相应文件的代码

在输入框中让它运行这个项目,可以看到在对话框中输出了链接

验证一下这个简单的计算器生成是否正确,这里我使用 VsCode 打开并运行代码。

一个简易的计算器就生成好了,如果不满意就可以回到 OpenHands,继续输入要求生成新的代码。

虽然在本地环境中部署 OpenHands 已经能够显著提升你的开发效率,但如果你希望从任何地方都能随时随地访问这个强大的工具,就需要解决内网穿透的问题。这时,Cpolar 就成为了你的得力助手。

Cpolar 是一款功能强大且易于使用的内网穿透工具,它能够在几秒钟内将你的本地服务暴露到公网上。无论你是在办公室、家里还是在旅途中,Cpolar 都能确保你能够轻松访问 OpenHands,而无需复杂的网络配置或昂贵的服务器托管费用。

接下来教大家如何安装 Cpolar 并且将 OpenHands 实现公网使用。

3. 公网使用 OpenHands

3.1 内网穿透工具安装

下面是安装 cpolar 步骤:

Cpolar 官网地址: https://www.cpolar.com

使用一键脚本安装命令

shell 复制代码
sudo curl https://get.cpolar.sh | sh

安装完成后,执行下方命令查看 cpolar 服务状态:(如图所示即为正常启动)

shell 复制代码
sudo systemctl status cpolar

Cpolar 安装和成功启动服务后,在浏览器上输入 ubuntu 主机 IP 加 9200 端口即:【http://localhost:9200】访问 Cpolar 管理界面,使用 Cpolar 官网注册的账号登录,登录后即可看到 cpolar web 配置界面,接下来在 web 界面配置即可:

3.2 创建远程连接公网地址

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

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

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

如下图所示,成功实现使用公网地址异地远程访问本地部署的 OpenHands,跟上面一样,配置好模型即可使用。

使用上面的 cpolar https 公网地址,在任意设备的浏览器进行访问,即可成功看到 OpenHands 界面,这样一个利用公网地址可以进行远程访问的隧道就创建好了,隧道使用了 cpolar 的公网域名,无需自己购买云服务器,可节省大量资金。使用 cpolar 创建隧道即可发布到公网进行远程访问,新域名登录,可能需要重新登陆!

4. 固定 OpenHands 公网地址

由于以上使用 cpolar 所创建的隧道使用的是随机公网地址,24 小时内会随机变化,不利于长期远程访问。因此我们可以为其配置二级子域名,该地址为固定地址,不会随机变化。

登录 cpolar 官网,点击左侧的预留,选择保留二级子域名,地区选择 china vip,然后设置一个二级子域名名称,填写备注信息,点击保留。

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

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

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

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

点击更新

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

最后,我们使用固定的公网地址访问 OpenHands 界面可以看到访问成功,一个永久不会变化的远程访问方式即设置好了。

通过本文的引导,你已经成功在本地环境中部署了 OpenHands,并学会了如何使用 Cpolar 内网穿透工具实现其公网访问。无论你在何处,都能够随时随地利用这个强大的开发助手提升你的工作效率。

OpenHands 不仅是一个工具,更是一种创新的开发方式。它能够帮助你自动化日常任务、提高代码质量,并让你有更多时间专注于核心业务逻辑。而 Cpolar 则确保了这些功能在任何网络环境下都能稳定运行。

希望本文的内容对你有所帮助,如果你有任何疑问或建议,欢迎在评论区留言交流。让我们共同探索更多的可能性,开创更加高效和智能的开发未来!

觉得有用的话点个赞 👍🏻 呗。

❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄

💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍

🔥🔥🔥Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙

相关推荐
迅易科技1 小时前
借助腾讯云质检平台的新范式,做工业制造企业质检的“AI慧眼”
人工智能·视觉检测·制造
watermelonoops1 小时前
Deepin和Windows传文件(Xftp,WinSCP)
linux·ssh·deepin·winscp·xftp
古希腊掌管学习的神2 小时前
[机器学习]XGBoost(3)——确定树的结构
人工智能·机器学习
疯狂飙车的蜗牛2 小时前
从零玩转CanMV-K230(4)-小核Linux驱动开发参考
linux·运维·驱动开发
ZHOU_WUYI2 小时前
4.metagpt中的软件公司智能体 (ProjectManager 角色)
人工智能·metagpt
靴子学长3 小时前
基于字节大模型的论文翻译(含免费源码)
人工智能·深度学习·nlp
AI_NEW_COME4 小时前
知识库管理系统可扩展性深度测评
人工智能
远游客07134 小时前
centos stream 8下载安装遇到的坑
linux·服务器·centos
马甲是掉不了一点的<.<4 小时前
本地电脑使用命令行上传文件至远程服务器
linux·scp·cmd·远程文件上传
jingyu飞鸟4 小时前
centos-stream9系统安装docker
linux·docker·centos