一、概述

1. 案例介绍

华为开发者空间,是为全球开发者打造的专属开发者空间,致力于为每位开发者提供一台云主机、一套开发工具和云上存储空间,汇聚昇腾、鲲鹏、GaussDB、欧拉等华为各项根技术的开发工具资源,并提供配套案例指导开发者 从开发编码到应用调测,基于华为根技术生态高效便捷的知识学习、技术体验、应用创新。

OpenHands(原 OpenDevin)是一个由 AI 驱动的软件开发代理平台,OpenHands 代理可以完成人类开发者能做的所有事情:修改代码、运行命令、浏览网页、调用 API,甚至还能从 StackOverflow 复制代码片段。

本案例通过华为开发者空间 - 云开发环境部署OpenHands平台,并接入华为MaaS提供的DeepSeek-R1模型,体验探索OpenHands如何从繁重的代码中解放我们的双手。

2. 适用对象

  • 企业
  • 个人开发者
  • 高校学生

3. 案例时间

本案例总时长预计60分钟。

4. 案例流程

说明:

  1. 领取代金券开通华为云MaaS DeepSeek-R1服务;
  2. 创建并远程连接华为开发者空间 - 云开发环境
  3. 安装OpenHands平台;
  4. OpenHands接入华为云MaaS DeepSeek-R1模型;
  5. 新建对话,体验OpenHands功能。

5. 资源总览

本案例预计花费0元。

资源名称 规格 单价(元) 时长(分钟)
华为开发者空间 - 云开发环境 鲲鹏通用计算增强型 kc1 | 2vCPUs | 4G | HCE 免费 60

最新案例动态,请查阅 《华为开发者空间云开发环境部署OpenHands,解锁AI赋能的高效编程搭档》。小伙伴快来领取华为开发者空间进行实操吧!

二、环境准备

1. 开通MaaS DeepSeek-R1服务

1.1 领取代金券和购买套餐包

华为开发者空间为开发者带来百万Token代金券福利,点击领取链接,按照指引进行代金券的领取和套餐包的购买,本案例推荐使用DeepSeek-R1。

1.2 开通商用模型服务

代金券领取完毕后前往ModelArts Studio进行商用模型开通。进入MaaS控制台页面,点击在线推理 -> 商用服务 -> 开通模型服务,这里以DeepSeek-R1-64K,然后点击一键开通
注意:步骤1.1中若是购买的DeepSeek-R1-64K套餐包,在MaaS中开通时请开通DeepSeek-R1-64K,同理若购买DeepSeek-V3-64K时,请开通DeepSeek-V3-64K。

在这里插入图片描述
在这里插入图片描述

1.3 获取模型调用参数

这里拿DeepSeek-R1-64K模型为例,开通完毕后点击调用说明,版本选择DeepSeek-R1主推版,进入页面后点击OpenAI SDK可以看到API地址model参数

点击API Key管理,进入页面后,点击右上角创建API Key标签和描述可以自定义,输入完毕后点击创建(注意:创建好的API Key只会显示这一次,请妥善保存)

在这里插入图片描述

2. 创建并连接云开发环境

2.1 创建云开发环境

登录华为开发者空间,进入开发平台-云开发环境,点击新建开发环境参考以下参数配置创建,点击确定

配置项 配置说明
环境名称 自定义
开放端口 支持范围8080-8089,最多可以配置5个端口,默认22已开放。这里推荐配置8081,8082,8083,8084,8085
默认账号 默认developer,保持默认即可
密码 自定义

在操作列点击更多-开机

2.2 连接云开发环境

云开发环境创建后,点击远程连接,下载本地环境对应的客户端,这里以Windows x64环境为例。

客户端配置华为云账号的密钥(AK/SK)信息(AK是Access Key ID,SK是Secret Access Key),在开华为云控制台我的凭证页面创建访问密钥,可以参考获取AK/SK文档。

在客户端工具所在目录打开cmd命令窗口,输入hdspace config,配置Access Key ID和Secert Access Key。

配置完成后可以查看云开发环境实例ID。

hdspace devenv list

新建隧道,使用本地端口(这里使用1234,可变更)映射云开发环境的22端口,用于远程连接云开发环境。

hdspace devenv start-tunnel --instance-id=***********(云开发环境实例ID) --local-port=1234

新建终端命令窗口,远程连接云开发环境(developer是创建云开发环境时设置的默认账户)。

ssh developer@127.0.0.1 -p 1234

*注意:由于使用cmd终端命令窗口会频繁断开重连,可以参考《本地CodeArts IDE基于华为开发者空间云开发环境完成小游戏开发》案例的“1. 下载CodeArts IDE并安装RemoteShell插件”和“2. 连接云开发环境”步骤实现CodeArts IDE for Python连接云开发环境。

三、 安装OpenHands平台

远程连接到云开发环境后,在云开发环境中安装OpenHands。

1. 安装docker

在云开发环境中下载并解压docker环境安装包。

wget https://dtse-mirrors.obs.cn-north-4.myhuaweicloud.com/case/0054/docker-install.zip
unzip docker-install.zip

执行安装脚本。

cd docker-install
sudo bash ./install_docker.sh

配置镜像加速。

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
    "registry-mirrors": [
    "https://22fe11df4d7841bb8ca3e8fe24f477ee.mirror.swr.myhuaweicloud.com",
    "https://docker.mirrors.ustc.edu.cn",
    "https://hub-mirror.c.163.com",
    "https://mirror.baidubce.com",
    "https://docker.1ms.run",
    "https://hub-mirror.c.163.com",
    "https://docker.1panel.live"
  ]
}
EOF

重启容器。

sudo systemctl restart docker

2. 部署OpenHands平台

拉取镜像,会要耗费一定时间。

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

运行服务。这里端口映射选择本地的8085端口,保证在创建云开发环境时开放端口范围内,以便后续对云开发环境端口创建隧道,访问OpenHands 图形界面。

sudo docker run -it --rm --pull=always \
    -e SANDBOX_RUNTIME_CONTAINER_IMAGE=docker.all-hands.dev/all-hands-ai/runtime:0.55-nikolaik \
    -e LOG_ALL_EVENTS=true \
    -v /var/run/docker.sock:/var/run/docker.sock \
    -v ~/.openhands:/.openhands \
    -p 8085:3000 \
    --add-host host.docker.internal:host-gateway \
    --name openhands-app \
    docker.all-hands.dev/all-hands-ai/openhands:0.55

本地创建隧道,使用本地端口(这里使用5000,可变更)映射云开发环境的8085端口,用于通过本地访问云开发环境部署的OpenHands。

hdspace devenv start-tunnel --instance-id=***********(云开发环境实例ID) --remote-port=8085 --local-port=5000

以上步骤都完成后,我们就可以在本地浏览器访问http://127.0.0.1:3000访问OpenHands图形界面。

3. 配置模型

首次打开应用时,系统会提示您选择 LLM 提供商并添加 API 密钥。。这里可以先配置任意填写API Key,然后点击Save保存。

接入前面开通的MaaS DeepSeek-R1模型,在OpenHands图形界面点击左下角设置,在LLM配置页,开启高级配置并配置模型信息。配置参考:

配置项 配置说明
Advanced 开启
Custom Model 这里填:openrouter/DeepSeek-R1,DeepSeek-R1为1.3 获取模型调用参数步骤中的model参数
Base URL 1.3 获取模型调用参数步骤中的API地址
API Key 1.3 获取模型调用参数步骤中的API Key
模型名称 1.3 获取模型调用参数步骤中的model参数
其他 保持默认

模型添加完成点击右下角Save Changes按钮保存。

4. 体验OpenHands

模型配置完成后,回到主页,点击Launch from Scratch开启一个新的对话。

启动需要等待几分钟,我们可以看到OpenHands对话界面一些关键性:

  • 聊天面板:显示用户和OpenHands之间的对话以及OpenHands在这里解释它的操作;
  • Changes:显示OpenHands执行的文件更改记录;
  • VS Code:嵌入式VS Code用于浏览和修改文件;
  • Terminal:一个供OpenHands和用户运行终端命令的空间;
  • Jupyter:显示OpenHands执行过的所有Python命令,便于使用OpenHands执行数据可视化任务;
  • App:作为OpenHands运行应用程序时显示web服务器,使用户可以与运行中的应用程序进行交互;
  • Browser:用于OpenHands浏览网站,是非交互式的。

等待启动完成提示"Agent is awaiting user input"即可进行对话,如:“用python写一个简单的oa系统首页并运行,然后在浏览器访问展示效果。”

可以在聊天面板看到OpenHands的操作及解释,可以在Changes看到文件更改记录。

在Terminal看到OpenHands运行的终端命令输出。

最后可以在Browser看到生成的OA系统首页效果。(如果出现不成功情况可以重复提问)

至此,该案例到这里就完成啦。

更多的OpenHands功能探索,可以访问:https://docs.all-hands.dev/usage/getting-started

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐