使用 OpenHands 完成任务
引言
试用 OpenHands 完成任务。
过程
模型选择
openhands 默认的多种模型提供商基本都是国外的,包括 OpenAI、Anthropic、Google 等。但是国内使用非常麻烦,正好 11 月 12 号阿里开源了 qwen2.5-coder, 可以使用看一下效果。
这里使用 ollama 来启动 qwen2.5-coder:32b。
1 | ollama server |
然后再用 nginx 反向代理 ollama 的 11434 端口到 0.0.0.0:11435。
测试:
1 | curl -X POST http://localhost:11435/v1/chat/completions -H "Content-Type: application/json" -d '{"messages": [{"role": "user", "content": "你好"}]}' |
这一步是因为如果用 docker 启动 OpenHands 的话,不使用 network=host, 是没有办法将 localhost 或者 127.0.0.1 映射到 docker 容器中的 ip 的,除此之外也考虑到其他软件的使用,所以这一步还是推荐做一下。
下载和配置 OpenHands
OpenHands 的下载相当简单,直接使用 docker 拉取镜像即可。如果遇到端口冲突可以修改 3000 端口为自定义端口 (前面的是真实端口)。
1 | docker pull docker.all-hands.dev/all-hands-ai/runtime:0.13-nikolaik |
在 web 界面选择 Advanced Options, 配置如下:
- Custom Model 选择
ollama/qwen2.5-coder:32b
- Base URL 选择
http://[ip]:11435
- API Key 留空
- Agent 选择
CodeActAgent
- Security Analyzer (Optional) 选择
None
实际体验中发现他会自动调用网页浏览器来获取信息,所以建议网络设置成 host 而不是 bridge。
1 | docker run -it --pull=always \ |
结论
成功是成功了,但是效果只能说一般,首先是运行太慢,其次是生成代码的效果一般。
我先后使用了 7b 和 32b,7b 是直接无法做到对于工作区的操作,32b 的效果要好一些,但是依然效果非常有限。
所以最终还是选择了 openrouter.ai 的 claude-3-5-sonnet-20241022
api 来完成任务。
后续 (20241206), 非常非常贵!!! 上次一次构建花了我 40 块钱的样子,完成度也就和 blot.new 差不多,但是那个免费啊…
引用
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.
Comment