接入文档

MiaoLiCi 提供 OpenAI 兼容协议——把 base_url 指向我们,剩下的代码一行不用动。本文档覆盖快速开始、SDK 示例、API 参考与进阶用法。

介绍

MiaoLiCi 是一个统一的大模型网关,把 OpenAI、Anthropic、Google、DeepSeek 等主流厂商的 API 抹平为同一套 OpenAI 兼容接口。你只需要管理一份密钥、看一份账单、读一份日志。

整体架构:

5 分钟快速开始

  1. 访问 控制台,注册账号(注册即送 ¥2 体验额度)
  2. 进入「令牌管理」,点击「创建令牌」,复制以 sk-miaolici- 开头的密钥
  3. 在你的项目里把 OPENAI_API_BASE 改成 https://miaolici.top/v1
  4. OPENAI_API_KEY 改成刚才复制的密钥
  5. 跑一条请求,去「使用日志」核对——成功 ✅
提示:所有现有的 OpenAI SDK / LangChain / LlamaIndex / Cline / Cursor / Claude Code 都开箱即用,因为它们都支持自定义 base_url。

认证与令牌

令牌按用户隔离,可设置:

建议生产环境每个服务一个独立令牌,便于审计与撤销。

curl

curl
curl https://miaolici.top/v1/chat/completions \
  -H "Authorization: Bearer $MIAOLICI_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "claude-opus-4-7",
    "messages": [
      {"role": "user", "content": "用一句话介绍 MiaoLiCi"}
    ],
    "stream": false
  }'

Python (openai)

使用官方 openai SDK ≥ 1.0:

python
from openai import OpenAI

client = OpenAI(
    api_key="sk-miaolici-xxx",
    base_url="https://miaolici.top/v1",
)

resp = client.chat.completions.create(
    model="gpt-5",
    messages=[{"role": "user",
               "content": "Hi"}],
    temperature=0.7,
)
print(resp.choices[0].message.content)

Node.js

javascript
import OpenAI from "openai";

const client = new OpenAI({
  apiKey: process.env.MIAOLICI_KEY,
  baseURL: "https://miaolici.top/v1",
});

const resp = await client.chat.completions.create({
  model: "claude-sonnet-4-6",
  messages: [{ role: "user", content: "Hi" }],
});
console.log(resp.choices[0].message.content);

Go

go
package main

import (
    "context"
    "fmt"
    openai "github.com/sashabaranov/go-openai"
)

func main() {
    cfg := openai.DefaultConfig("sk-miaolici-xxx")
    cfg.BaseURL = "https://miaolici.top/v1"
    cli := openai.NewClientWithConfig(cfg)

    resp, _ := cli.CreateChatCompletion(context.Background(),
        openai.ChatCompletionRequest{
            Model: "gemini-3-pro",
            Messages: []openai.ChatCompletionMessage{
                {Role: "user", Content: "Hi"},
            },
        })
    fmt.Println(resp.Choices[0].Message.Content)
}

Chat Completions

POST /v1/chat/completions ——与 OpenAI 接口完全一致。常用参数:

参数类型说明
modelstring模型 ID,如 gpt-5claude-opus-4-7
messagesarray消息历史,role ∈ {system, user, assistant, tool}
streamboolean是否启用 SSE 流式输出
temperaturenumber采样温度 0–2,建议 0.7
max_tokensinteger输出 token 上限
toolsarray函数调用 / MCP 工具定义
response_formatobject结构化输出,{"type":"json_object"}

Embeddings

POST /v1/embeddings ——支持 text-embedding-3-largebge-m3voyage-3 等。

Images / Vision

多模态调用通过 messages[].content 数组传入:

json
{
  "model": "gpt-5",
  "messages": [{
    "role": "user",
    "content": [
      {"type": "text",
       "text": "这张图里有什么?"},
      {"type": "image_url",
       "image_url": {"url": "https://..."}}
    ]
  }]
}

Audio

支持 Whisper-v4 转写与 OpenAI / ElevenLabs TTS:

Prompt Cache

Anthropic 与 OpenAI 都支持 prompt cache。在请求里加 cache_control 即可命中:

命中后输入按 1.25× 输入价 × 10% 计费,可节省 87% 重复请求成本。命中信息会写到日志「详情」字段中。

流式响应

设置 stream: true 后会返回 SSE 流,每帧符合 OpenAI Chunk 格式。

错误码

HTTP含义处理建议
400请求参数错误检查 JSON 结构与必填字段
401认证失败检查 Authorization 头是否携带正确 Token
402额度不足到「钱包管理」充值
429触发限流退避重试,或升级到 ClaudeMax 分组
500上游错误稍后重试,会自动绕路

速率与限额

默认分组:60 RPM · 200 RPS · 单请求 ≤ 1M token

ClaudeMax:不限速 · 单请求 ≤ 1M token · 长文档优化

Enterprise:按合同约定,可定制私有渠道与专属速率上限。

如果你看到 429,先到「使用日志」筛选这一分钟的请求量;若确认接近上限请升级分组,或者邮件 hi@miaolici.top 申请临时提额。
最后更新:2026-05-19 📩 报告文档问题