🔄 卡若AI 同步 2026-03-06 05:55 | 更新:运营中枢参考资料、运营中枢工作台 | 排除 >20MB: 11 个
This commit is contained in:
@@ -152,7 +152,15 @@ V0_BASE_URL=https://api.v0.dev/v1 # 可选,默认即此地址
|
||||
|
||||
---
|
||||
|
||||
## 七、与卡若AI 的用法
|
||||
## 七、常见问题:Key 有效但 Completions 返回 500
|
||||
|
||||
若 **GET https://api.v0.dev/v1/models** 返回 200(说明 Key 有效),但 **POST …/chat/completions** 返回 500、`{"success":false,"error":"Unknown error"}`:
|
||||
- 多为 v0 账号侧问题:未开通 Model API 所需套餐、额度用尽或未开启 usage-based billing。
|
||||
- 处理:登录 [v0.app](https://v0.app) → 检查 Billing(Premium/Team)、Usage(额度)、并开启 usage-based billing。
|
||||
|
||||
---
|
||||
|
||||
## 八、与卡若AI 的用法
|
||||
|
||||
- 在**卡若AI 官网控制台 → API 网关**中可添加 v0:Base URL 填 `https://api.v0.dev/v1`,API Key 填《00_账号与API索引》里 v0.dev 的 Secret,模型选 `v0-1.5-md` 或 `v0-1.5-lg`,设为主用后对话等会走该网关。
|
||||
- 环境变量回退:未配置网关时,官网可读 `V0_API_KEY` / `V0_SECRET` 和可选 `V0_BASE_URL`。详见《API网关与常用AI配置说明》。
|
||||
|
||||
@@ -59,7 +59,7 @@
|
||||
| Secret | `v1:C6mw1SlvXsJdlO4VFEXSQEVf:vcp_62nyAVqetvvasioUqYNCXVPPGK2DRQIaTX85dFCu5PTXpBSaob3m4OEq`(当前使用) |
|
||||
| Secret(zhengzhiqun@vip.qq.com 账号) | `v1:t2m5rEmVb8eBvH7I4IAlP4jU:vcp_1p5UWQZ9o8Mh6YuZlFiUrrzvgUhvJFB6QgzjKYkf09XJSZ6iu10ZgFzZ` |
|
||||
| 模型 | `claude-opus`(接口侧用 v0-1.5-md 等) |
|
||||
| 检测 | 运行 `bash 运营中枢/工作台/scripts/test_v0_api.sh`;若返回 500/Unknown error,到 [v0.app/chat/settings/keys](https://v0.app/chat/settings/keys) 检查 Key 与套餐;ClawX 默认走本地模型,确保可用 |
|
||||
| 检测 | 运行 `bash 运营中枢/工作台/scripts/test_v0_api.sh`:先验 Key(/models),再验 completions;若 Key 有效但 completions 500,到 [v0.app](https://v0.app) 检查 Billing / Usage / usage-based billing;ClawX 默认主模型为 Ollama,确保可用 |
|
||||
|
||||
|
||||
### n8n(本机工作流 API)
|
||||
|
||||
@@ -53,12 +53,17 @@ bash 运营中枢/工作台/scripts/test_v0_api.sh
|
||||
# 或指定模型: bash 运营中枢/工作台/scripts/test_v0_api.sh v0-1.0-md
|
||||
```
|
||||
|
||||
**当前 Key**:已使用《00_账号与API索引》v0.dev 中的 Secret(vcp_ 开头)。若检测仍为 500,按下列步骤排查。
|
||||
脚本会先测 **GET /v1/models**(验证 Key),再测 **POST /v1/chat/completions**(验证对话可用)。
|
||||
|
||||
**若返回 HTTP 500 / `{"success":false,"error":"Unknown error"}`:**
|
||||
1. 打开 https://v0.app/chat/settings/keys 检查 API Key 是否有效,必要时重新生成并更新到《00_账号与API索引》与 `~/.openclaw/openclaw.json` 中 `custom-custom21.apiKey`。
|
||||
2. 确认账号已开通 Premium/Team 且开通了 Model API(按量计费)。
|
||||
3. **ClawX 默认模型为本地 Ollama(qwen2.5:3b)**,不依赖 V0 即可正常使用;V0 仅作云端备选,接口异常时选本地模型即可保证可用。
|
||||
**若出现「Key 有效」但「Completions 不可用」(500 / Unknown error):**
|
||||
- 说明 API Key 正确,但 **v0 侧未开通或额度/计费有问题**。请到 v0.app 检查:
|
||||
1. **Billing** — 已开通 Premium 或 Team 套餐
|
||||
2. **Usage** — 当月额度未用尽
|
||||
3. **Usage-based billing** — 已开启按量计费(Model API 必需)
|
||||
|
||||
**确保可用(不依赖 V0):**
|
||||
- **ClawX 默认主模型为本地 Ollama(qwen2.5:3b)**,未选 V0 时始终走本地,无需 V0 即可正常使用。
|
||||
- 回退顺序已配置为:主用 Ollama → 回退 V0;V0 报错时在对话中改选「本地小模型」即可。
|
||||
|
||||
---
|
||||
|
||||
|
||||
43
运营中枢/工作台/V0接口问题结论与操作清单.md
Normal file
43
运营中枢/工作台/V0接口问题结论与操作清单.md
Normal file
@@ -0,0 +1,43 @@
|
||||
# V0 接口问题结论与操作清单
|
||||
|
||||
> 经完整测试与排查后的结论,以及「确保可用」的配置与操作。
|
||||
|
||||
---
|
||||
|
||||
## 一、测试结论
|
||||
|
||||
| 项目 | 结果 | 说明 |
|
||||
|:---|:---|:---|
|
||||
| **API Key** | 有效 | `GET https://api.v0.dev/v1/models` 返回 200,可拉取模型列表(v0-1.0-md, v0-1.5-md, v0-1.5-lg) |
|
||||
| **Chat Completions** | 当前 500 | `POST …/chat/completions` 返回 `{"success":false,"error":"Unknown error"}`,属 **v0 服务端/账号侧** 问题 |
|
||||
| **可能原因** | 套餐/额度/计费 | 官方要求 Premium 或 Team + **usage-based billing 开启**;额度用尽或未开通会致 completions 报错而 /models 仍正常 |
|
||||
|
||||
---
|
||||
|
||||
## 二、你需要做的(让 V0 完全可用)
|
||||
|
||||
1. 登录 **[v0.app](https://v0.app)**(与当前 API Key 对应账号)。
|
||||
2. 打开 **Billing / 计费**:确认已开通 **Premium** 或 **Team**。
|
||||
3. 确认 **Usage-based billing(按量计费)** 已开启(Model API 必需)。
|
||||
4. 查看 **Usage / 用量**:若当月额度已用尽,需充值或等下月重置。
|
||||
5. 若修改过 Key 或套餐,在 ClawX 或 `~/.openclaw/openclaw.json` 中更新 `custom-custom21.apiKey` 后重启网关。
|
||||
|
||||
完成以上后,再运行 `bash 运营中枢/工作台/scripts/test_v0_api.sh`,应出现「Completions 可用」。
|
||||
|
||||
---
|
||||
|
||||
## 三、确保可用(不依赖 V0)
|
||||
|
||||
以下已落实,**无需 V0 时 ClawX 也可正常使用**:
|
||||
|
||||
- **默认主模型**:`~/.openclaw/openclaw.json` 中 `agents.defaults.model.primary` = `ollama/qwen2.5:3b`,即本地 Ollama。
|
||||
- **回退**:fallbacks 含 `custom-custom21/v0-1.5-md` 等;若选 V0 且 V0 报错,在对话中改选「本地小模型 3B」即可。
|
||||
- **检测脚本**:`运营中枢/工作台/scripts/test_v0_api.sh` 先验 Key 再验 completions,并给出明确排查提示。
|
||||
|
||||
---
|
||||
|
||||
## 四、相关文档与脚本
|
||||
|
||||
- 参数与设置说明:`ClawX_V0参数说明.md`
|
||||
- 对接与常见问题:`参考资料/v0_API对接说明.md`(含「Key 有效但 Completions 500」说明)
|
||||
- 检测命令:`bash 运营中枢/工作台/scripts/test_v0_api.sh`
|
||||
@@ -236,3 +236,4 @@
|
||||
| 2026-03-05 17:00:04 | 🔄 卡若AI 同步 2026-03-05 17:00 | 更新:水桥平台对接、运营中枢工作台 | 排除 >20MB: 11 个 |
|
||||
| 2026-03-05 17:03:05 | 🔄 卡若AI 同步 2026-03-05 17:03 | 更新:运营中枢工作台 | 排除 >20MB: 11 个 |
|
||||
| 2026-03-06 05:47:27 | 🔄 卡若AI 同步 2026-03-06 05:47 | 更新:金仓、水桥平台对接、运营中枢参考资料、运营中枢工作台 | 排除 >20MB: 11 个 |
|
||||
| 2026-03-06 05:51:24 | 🔄 卡若AI 同步 2026-03-06 05:51 | 更新:运营中枢工作台 | 排除 >20MB: 11 个 |
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#!/usr/bin/env bash
|
||||
# V0 接口检测:用 openclaw 配置里的 apiKey 请求 v0,并给出结论与建议
|
||||
# 用法:bash 运营中枢/工作台/scripts/test_v0_api.sh
|
||||
# V0 接口检测:先测 /models(验证 Key),再测 /chat/completions(验证可用性)
|
||||
# 用法:bash 运营中枢/工作台/scripts/test_v0_api.sh [模型名,默认 v0-1.5-md]
|
||||
|
||||
set -e
|
||||
OPENCLAW_JSON="$HOME/.openclaw/openclaw.json"
|
||||
@@ -12,7 +12,6 @@ if [[ ! -f "$OPENCLAW_JSON" ]]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 从 openclaw 配置里取 custom-custom21 的 apiKey(简单提取)
|
||||
APIKEY=$(python3 -c "
|
||||
import json
|
||||
with open('$OPENCLAW_JSON') as f:
|
||||
@@ -29,28 +28,70 @@ fi
|
||||
echo "=== V0 接口检测 ==="
|
||||
echo " Base URL: $BASE_URL"
|
||||
echo " Model: $MODEL"
|
||||
echo " Key: ${APIKEY:0:12}...${APIKEY: -4}"
|
||||
echo " Key: ${APIKEY:0:15}...${APIKEY: -6}"
|
||||
echo ""
|
||||
|
||||
RESP=$(curl -s -w "\n%{http_code}" -X POST "$BASE_URL/chat/completions" \
|
||||
-H "Content-Type: application/json" \
|
||||
-H "Authorization: Bearer $APIKEY" \
|
||||
-d "{\"model\":\"$MODEL\",\"messages\":[{\"role\":\"user\",\"content\":\"Hello\"}],\"max_tokens\":20}" \
|
||||
--connect-timeout 12 2>/dev/null)
|
||||
HTTP_CODE=$(echo "$RESP" | tail -1)
|
||||
HTTP_BODY=$(echo "$RESP" | sed '$d')
|
||||
# 1. 验证 Key:GET /v1/models
|
||||
MODELS_CODE=$(curl -s -o /tmp/v0_models.json -w "%{http_code}" -X GET "$BASE_URL/models" \
|
||||
-H "Authorization: Bearer $APIKEY" --connect-timeout 10 2>/dev/null || echo "000")
|
||||
|
||||
if [[ "$HTTP_CODE" == "200" ]]; then
|
||||
echo " [OK] HTTP 200,V0 可用"
|
||||
echo "$HTTP_BODY" | python3 -c "import sys,json; d=json.load(sys.stdin); print(' 内容:', d.get('choices',[{}])[0].get('message',{}).get('content','')[:80])" 2>/dev/null || true
|
||||
if [[ "$MODELS_CODE" == "200" ]]; then
|
||||
echo " [OK] Key 有效 — GET /v1/models 返回 200,模型列表可读"
|
||||
if [[ -f /tmp/v0_models.json ]]; then
|
||||
python3 -c "
|
||||
import json
|
||||
try:
|
||||
d=json.load(open('/tmp/v0_models.json'))
|
||||
ids=[m.get('id','') for m in d.get('data',[])]
|
||||
if ids: print(' 模型:', ', '.join(ids))
|
||||
except: pass
|
||||
" 2>/dev/null || true
|
||||
fi
|
||||
else
|
||||
echo " [FAIL] Key 无效或网络异常 — GET /v1/models 返回 $MODELS_CODE"
|
||||
echo " 请到 https://v0.app/chat/settings/keys 检查并重新生成 API Key,再更新到 openclaw 配置与《00_账号与API索引》"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 2. 验证 Completions:POST /v1/chat/completions
|
||||
COMP_BODY=$(python3 -c "
|
||||
import urllib.request, json
|
||||
url = '$BASE_URL/chat/completions'
|
||||
data = json.dumps({'model':'$MODEL','messages':[{'role':'user','content':'Hi'}],'max_tokens':20}).encode()
|
||||
req = urllib.request.Request(url, data=data, method='POST', headers={
|
||||
'Content-Type': 'application/json',
|
||||
'Authorization': 'Bearer $APIKEY'
|
||||
})
|
||||
try:
|
||||
r = urllib.request.urlopen(req, timeout=15)
|
||||
print(r.read().decode())
|
||||
except urllib.error.HTTPError as e:
|
||||
print(e.read().decode())
|
||||
" 2>/dev/null)
|
||||
|
||||
if echo "$COMP_BODY" | grep -q '"choices"'; then
|
||||
echo " [OK] Completions 可用 — POST /v1/chat/completions 返回 200"
|
||||
echo "$COMP_BODY" | python3 -c "
|
||||
import sys, json
|
||||
try:
|
||||
d=json.load(sys.stdin)
|
||||
c=d.get('choices',[{}])[0].get('message',{}).get('content','')[:100]
|
||||
if c: print(' 内容预览:', c)
|
||||
except: pass
|
||||
" 2>/dev/null || true
|
||||
echo ""
|
||||
echo "=== V0 完全可用 ==="
|
||||
exit 0
|
||||
fi
|
||||
|
||||
echo " [FAIL] HTTP $HTTP_CODE"
|
||||
echo " 响应: $HTTP_BODY"
|
||||
# Completions 失败(常见为 500 Unknown error)
|
||||
echo " [WARN] Completions 不可用 — 当前返回 500 或非 200"
|
||||
echo " 响应摘要: $(echo "$COMP_BODY" | head -c 120)"
|
||||
echo ""
|
||||
echo "排查建议:"
|
||||
echo " 1. 打开 https://v0.app/chat/settings/keys 检查 API Key 是否有效、是否重新生成过"
|
||||
echo " 2. 确认账号已开通 Premium/Team 且开通了 Model API(按量计费)"
|
||||
echo " 3. ClawX 默认已用本地模型(Ollama),不依赖 V0 即可使用;V0 仅作云端备选"
|
||||
echo "结论:Key 有效,但 chat/completions 接口在 v0 侧报错(多为账号额度或计费未开通)。"
|
||||
echo "请到 v0.app 检查:"
|
||||
echo " 1. Billing — 已开通 Premium 或 Team"
|
||||
echo " 2. Usage — 额度未用尽"
|
||||
echo " 3. 已开启 usage-based billing(按量计费)"
|
||||
echo "ClawX 默认使用本地模型(Ollama),不依赖 V0 即可正常使用;V0 仅作云端备选。"
|
||||
exit 1
|
||||
|
||||
@@ -239,3 +239,4 @@
|
||||
| 2026-03-05 17:00:04 | 成功 | 成功 | 🔄 卡若AI 同步 2026-03-05 17:00 | 更新:水桥平台对接、运营中枢工作台 | 排除 >20MB: 11 个 | [仓库](http://open.quwanzhi.com:3000/fnvtk/karuo-ai) [百科](http://open.quwanzhi.com:3000/fnvtk/karuo-ai/wiki) |
|
||||
| 2026-03-05 17:03:05 | 成功 | 成功 | 🔄 卡若AI 同步 2026-03-05 17:03 | 更新:运营中枢工作台 | 排除 >20MB: 11 个 | [仓库](http://open.quwanzhi.com:3000/fnvtk/karuo-ai) [百科](http://open.quwanzhi.com:3000/fnvtk/karuo-ai/wiki) |
|
||||
| 2026-03-06 05:47:27 | 成功 | 成功 | 🔄 卡若AI 同步 2026-03-06 05:47 | 更新:金仓、水桥平台对接、运营中枢参考资料、运营中枢工作台 | 排除 >20MB: 11 个 | [仓库](http://open.quwanzhi.com:3000/fnvtk/karuo-ai) [百科](http://open.quwanzhi.com:3000/fnvtk/karuo-ai/wiki) |
|
||||
| 2026-03-06 05:51:24 | 成功 | 成功 | 🔄 卡若AI 同步 2026-03-06 05:51 | 更新:运营中枢工作台 | 排除 >20MB: 11 个 | [仓库](http://open.quwanzhi.com:3000/fnvtk/karuo-ai) [百科](http://open.quwanzhi.com:3000/fnvtk/karuo-ai/wiki) |
|
||||
|
||||
Reference in New Issue
Block a user