mirror of
https://hubproxy.babadafafafafa.cn/https://github.com/yunionio/cloudpods.git
synced 2026-09-20 08:03:53 +08:00
115 lines
3.7 KiB
Markdown
115 lines
3.7 KiB
Markdown
# aiproxy 功能测试(climc + 小米 MiMo)
|
||
|
||
本文用 **climc** 配置 aiproxy 资源,并通过 **curl** 调用 `POST /v1/chat/completions` 验证 **xiaomi** catalog(`api.xiaomimimo.com`)。
|
||
|
||
> **安全**:请勿将 MiMo API Key 写入脚本或提交到 Git。使用环境变量 `MIMO_API_KEY`。若 Key 曾泄露,请到小米开放平台轮换。
|
||
|
||
通义千问(DashScope)测试见 [functional-test-climc.md](./functional-test-climc.md)。
|
||
|
||
## 前置条件
|
||
|
||
| 项 | 说明 |
|
||
|----|------|
|
||
| 服务 | aiproxy **主节点**已部署,Keystone 中已注册 `aiproxy` public endpoint |
|
||
| 数据库 | 主节点已执行 `InitDB`,catalog 含 `xiaomi` 及 `mimo-*` 模型 |
|
||
| 客户端 | 已 `source /etc/yunion/rcadmin`,`climc` 可用 |
|
||
| 工具 | `jq` |
|
||
| 网络 | aiproxy 节点能访问 `https://api.xiaomimimo.com` |
|
||
|
||
```bash
|
||
source /etc/yunion/rcadmin
|
||
export CLIMC_OUTPUT_FORMAT=json
|
||
bash scripts/test/aiproxy/aiproxy-functional-test.sh
|
||
# 交互菜单中选择 xiaomi,输入 MiMo API Key
|
||
```
|
||
|
||
或快捷入口(默认选中 `xiaomi`):
|
||
|
||
```bash
|
||
export MIMO_API_KEY='你的 MiMo API Key'
|
||
bash scripts/test/aiproxy/aiproxy-functional-test-mimo.sh
|
||
```
|
||
|
||
预置模型:`export AIPROXY_FT_PROVIDER=xiaomi AIPROXY_FT_MODEL=mimo-v2.5-pro`
|
||
|
||
按 provider 自动命名的资源(可覆盖 `AIPROXY_FT_KEY_NAME` 等):
|
||
|
||
| 变量 | 默认(xiaomi) |
|
||
|------|----------------|
|
||
| `AIPROXY_FT_KEY_NAME` | `aiproxy-ft-xiaomi` |
|
||
| `AIPROXY_FT_VK_NAME` | `aiproxy-ft-xiaomi-vk` |
|
||
| `AIPROXY_FT_ROUTING_NAME` | `aiproxy-ft-xiaomi-routing` |
|
||
| `AIPROXY_FT_MODEL` | 交互默认 `mimo-v2-flash` |
|
||
|
||
## 手动步骤摘要
|
||
|
||
### Catalog
|
||
|
||
```bash
|
||
climc ai-provider-show xiaomi
|
||
climc ai-model-show xiaomi-mimo-v2-flash
|
||
```
|
||
|
||
`config.base_url` 应为 `https://api.xiaomimimo.com`。
|
||
|
||
### ai_key
|
||
|
||
```bash
|
||
climc ai-key-create mimo-ft \
|
||
--ai-provider-id xiaomi \
|
||
--secret "${MIMO_API_KEY}" \
|
||
--weight 10 \
|
||
--enabled
|
||
```
|
||
|
||
### 路由与 chat
|
||
|
||
```bash
|
||
climc ai-virtual-key-create aiproxy-mimo-ft-vk
|
||
climc ai-routing-create aiproxy-mimo-ft-routing \
|
||
--priority 10 \
|
||
--models '[{"ai_provider_id":"xiaomi","ai_model_id":"mimo-v2-flash","priority":1}]'
|
||
|
||
AIPROXY_URL="$(climc endpoint-list --service aiproxy --interface public --limit 1 \
|
||
--output-format json | jq -r '.data[0].url')"
|
||
VK="$(climc ai-virtual-key-show aiproxy-mimo-ft-vk --output-format json | jq -r '.virtual_key')"
|
||
|
||
curl -k -sS "${AIPROXY_URL%/}/v1/chat/completions" \
|
||
-H "Authorization: Bearer ${VK}" \
|
||
-H "Content-Type: application/json" \
|
||
-d '{"model":"mimo-v2-flash","messages":[{"role":"user","content":"hi"}],"max_tokens":64}' | jq .
|
||
```
|
||
|
||
### 流式
|
||
|
||
`scripts/test/aiproxy/aiproxy-functional-test-mimo.sh` 在非流式通过后默认执行 step 7(`stream: true`)。跳过:`export AIPROXY_FT_SKIP_STREAM=1`。
|
||
|
||
```bash
|
||
curl -k -sS -N -o /tmp/aiproxy-mimo-stream.sse \
|
||
"${AIPROXY_URL%/}/v1/chat/completions" \
|
||
-H "Authorization: Bearer ${VK}" \
|
||
-H "Content-Type: application/json" \
|
||
-d '{"model":"mimo-v2-flash","stream":true,"messages":[{"role":"user","content":"hi"}],"max_tokens":64}'
|
||
```
|
||
|
||
catalog 中其它模型:`mimo-v2.5-pro`、`mimo-v2-pro`、`mimo-v2.5`、`mimo-v2-omni`(id 形如 `xiaomi-mimo-v2.5-pro`)。
|
||
|
||
## 常见问题
|
||
|
||
**上游 401**
|
||
检查 `MIMO_API_KEY` 是否有效;确认 `ai_key` 已 `--enabled` 且 `ai_provider_id=xiaomi`。
|
||
|
||
**`no ai_routing matched`**
|
||
virtual key 与 routing 须在同一 climc 项目下创建。
|
||
|
||
**与 DashScope 脚本冲突**
|
||
MiMo 脚本使用独立的 vk/routing/key 名称;勿与 `aiproxy-ft-vk` 混用同一 routing 的 model 列表。
|
||
|
||
## 清理
|
||
|
||
```bash
|
||
climc ai-routing-delete aiproxy-mimo-ft-routing
|
||
climc ai-virtual-key-delete aiproxy-mimo-ft-vk
|
||
climc ai-key-delete mimo-ft
|
||
```
|