Local Hub
本地能力中心。通过 HTTP 调用本机麦克风、摄像头、Ollama、YOLO、Stable Diffusion、TTS/转写、通知、剪贴板、天气、白名单脚本等。当需要「验证是否有声
Description
name: local-hub description: 本地能力中心。通过 HTTP 调用本机麦克风、摄像头、Ollama、YOLO、Stable Diffusion、TTS/转写、通知、剪贴板、天气、白名单脚本等。当需要「验证是否有声音、拍一张照、用本地模型对话、文生图/图生图、朗读、系统通知、读剪贴板、看图描述、列模型、天气、跑脚本」时使用。需先确保 local_hub 服务已启动(workspace/local_hub/run.sh)。 metadata: openclaw: requires: bins: [curl]
Local Hub — 本地能力中心
⚠️ 使用前必读:本 skill 仅包含「调用说明」,不包含服务端代码。实际提供接口的 local_hub 服务需在本机单独部署并先启动。服务未启动时,所有 curl 调用会连接失败。
服务端代码与下载:
- 仓库:https://github.com/DamianLeeMoha/local_hub
- 直接下载 zip:https://github.com/DamianLeeMoha/local_hub/releases/download/v1.0.0/local_hub-v1.0.0.zip
解压后进入目录,创建虚拟环境并安装依赖(python3 -m venv .venv-hub、source .venv-hub/bin/activate、pip install -r requirements.txt),再执行./run.sh。
这是什么:一个跑在你本机的 HTTP 服务(默认 http://127.0.0.1:9000),把麦克风、摄像头、Ollama、YOLO、Stable Diffusion 等统一成一组 API。Silas 通过 exec + curl 调用这些接口,不占用 OpenClaw 的 skill 检索维度,只是「多了一个可调的后端」。
与其它 skills 的关系:和 pptx、screen-capture 等不在同一维度——其它 skills 是「能力目录里的一条」;local_hub 是底层服务。本 skill 只是「调用说明」:告诉 Silas 何时、如何用 curl 去调这个服务。
前置条件
- 服务必须先启动(用户或你在本机执行一次):
cd ~/.openclaw/workspace/local_hub && source .venv-hub/bin/activate && ./run.sh - 健康检查(可选):
curl -s http://127.0.0.1:9000/health返回{"status":"ok",...}表示服务在线。
何时使用
| 需求 | 用哪个接口 | 说明 |
|---|---|---|
| 验证刚才播放的声音是否被听到 | POST /audio/check |
录约 1 秒,返回是否有声音(rms、has_sound) |
| 本机 TTS 朗读一段文字 | POST /audio/tts |
JSON: text, voice(可选);macOS say,返回音频 path |
| 音频转文字 | POST /audio/transcribe |
上传 file 或 form path;需设 TRANSCRIBE_SCRIPT |
| 拍一张摄像头画面 | POST /camera/snapshot |
返回保存的图片路径 |
| 对一张图做目标检测(YOLO) | POST /vision/yolo |
需上传图片(form),返回检测框等 |
| 用视觉模型描述图片 | POST /vision/describe |
上传图片,Ollama llava 等;query model=llava |
| 用本地 Ollama 对话(含 openclaw-distill) | POST /llm/chat |
JSON body:model, prompt, system(可选) |
| 列出本机 Ollama 模型 | GET /llm/models |
返回 models 列表 |
| 文本向量(embedding) | POST /llm/embed |
JSON: model, text |
| 文生图(Stable Diffusion) | POST /image/txt2img |
需本机 A1111 在 7860 端口 |
| 图生图(Stable Diffusion) | POST /image/img2img |
需提供 image_path + prompt |
| 系统通知(macOS) | POST /notify |
JSON: title, body |
| 读/写剪贴板 | GET /clipboard、POST /clipboard |
GET 读文本,POST JSON text 写 |
| 系统状态(音量、电池等) | GET /system/status |
macOS 简要状态 |
| 天气 | GET /weather |
query 可选城市 |
| 执行白名单脚本 | POST /run/script |
JSON: name, params(可选);需配置 RUN_SCRIPT_WHITELIST |
怎么用(curl 示例)
基地址:http://127.0.0.1:9000(若改过端口或主机,以实际为准)。
1. 检查是否有声音(播放后验证)
curl -s -X POST "http://127.0.0.1:9000/audio/check?duration=1&threshold=0.01"
返回示例:{"rms":0.02,"threshold":0.01,"has_sound":true,"duration":1.0}。看 has_sound 为 true/false。
2. 摄像头拍一张
curl -s -X POST http://127.0.0.1:9000/camera/snapshot
返回示例:{"path":"/Users/.../local_hub/data/camera_1234567890.jpg"}。后续可读该文件或交给 describe-image。
3. 本地 Ollama 对话
curl -s -X POST http://127.0.0.1:9000/llm/chat \
-H "Content-Type: application/json" \
-d '{"model":"openclaw-distill","prompt":"你好","system":null}'
返回里有 response 字段即模型回复。可换 qwen2.5:14b、llava 等本机已有模型。
4. YOLO 检测(上传图片)
curl -s -X POST http://127.0.0.1:9000/vision/yolo \
-F "file=@/path/to/image.jpg"
返回 detections 列表及保存路径。
5. 文生图(Stable Diffusion)
curl -s -X POST http://127.0.0.1:9000/image/txt2img \
-H "Content-Type: application/json" \
-d '{"prompt":"a cute robot, high quality","negative_prompt":"","steps":20,"width":512,"height":512}'
返回 paths 数组,为生成图在 local_hub/data/ 下的路径。
6. 图生图
curl -s -X POST http://127.0.0.1:9000/image/img2img \
-H "Content-Type: application/json" \
-d '{"image_path":"/path/to/input.png","prompt":"make it cyberpunk","denoising_strength":0.6,"steps":20}'
7. TTS(朗读并保存音频)
curl -s -X POST http://127.0.0.1:9000/audio/tts \
-H "Content-Type: application/json" \
-d '{"text":"Hello world","voice":"Tingting"}'
8. 系统通知
curl -s -X POST http://127.0.0.1:9000/notify \
-H "Content-Type: application/json" \
-d '{"title":"提醒","body":"会议 5 分钟后开始"}'
9. 剪贴板
# 读取
curl -s http://127.0.0.1:9000/clipboard
# 写入
curl -s -X POST http://127.0.0.1:9000/clipboard -H "Content-Type: application/json" -d '{"text":"复制这段"}'
10. 图片描述(Ollama 视觉模型)
curl -s -X POST "http://127.0.0.1:9000/vision/describe?model=llava" -F "file=@/path/to/image.jpg"
11. 列出 Ollama 模型 / 天气 / 系统状态
curl -s http://127.0.0.1:9000/llm/models
curl -s "http://127.0.0.1:9000/weather?query=Beijing"
curl -s http://127.0.0.1:9000/system/status
12. 执行白名单脚本(需先配置 RUN_SCRIPT_WHITELIST 与 scripts/ 下可执行文件)
curl -s -X POST http://127.0.0.1:9000/run/script \
-H "Content-Type: application/json" \
-d '{"name":"my_script","params":{"key":"value"}}'
执行方式
- 用 exec 调用上述 curl 命令;返回的 JSON 可解析后回复用户(例如「检测到有声音」「已生成图:…」)。
- 若服务未启动,curl 会报连接失败;此时可提示用户先启动
local_hub/run.sh,或说明「本地能力中心未就绪」。
依赖与端口
- local_hub:workspace 内
local_hub/,Python + FastAPI,默认端口 9000。 - Ollama:本机 11434,local_hub 会转调。
- Stable Diffusion:本机需有 A1111 类服务,默认 7860;可通过环境变量
SD_BASE_URL改。
完整 API 与参数见:workspace/local_hub/README.md(若有)。
Reviews (0)
No reviews yet. Be the first to review!
Comments (0)
No comments yet. Be the first to share your thoughts!