📖

Ollama / OpenRouter

API 文档与调试中心

开放 API · 无缝接入

统一代理入口,提供对 Ollama 模型池的稳健访问

借助 Cloudflare Workers、Redis 与 PostgreSQL 的调度链路,Ollama API Pool 输出符合 OpenAI 规范的接口形态,支持多账户轮询、故障熔断与实时统计。该页面保持与登录入口一致的浅色布局,方便公开访客与内部成员共享一致体验。

⚡ 智能调度

轮询分配与故障即刻切换,确保多模型池持续稳定对外提供服务。

🛡️ 按需鉴权

客户端仅持有 Token,真实上游密钥全程保存在代理池内,降低泄露风险。

📊 全链可视

结合公开统计页可视化监控请求量、成功率与热门模型,秒级刷新。

🔁 快速调试

在线测试台支持同步/流式两种响应,提供模板与复制能力帮助集成。

🧭 项目运行概览

本节聚焦 Ollama / OpenRouter API Pool 的运行方式与关键能力,帮助你快速了解代理池的交付边界、观测入口与部署实践。

🌍 服务形态

运行于 Cloudflare Workers 边缘网络,所有接口遵循 OpenAI 官方协议(/v1/chat/completions、/v1/models),默认开启 SSE 流式能力。

🔌 Provider 组合

内置 OllamaOpenRouter 两个提供方,可通过环境变量 DISABLE_OLLAMA / DISABLE_OPENROUTER 随时开关。

⚙️ 调度策略

多密钥轮询 + 连续失败熔断,自动禁用故障 Key 并在后台提示管理员复查,保障长期稳定的成功率。

🔐 鉴权体系

客户端仅需携带 Authorization: Bearer CLIENT_TOKEN,后台可视化管理 Token 生命周期,支持每日签到自动延长有效期。

🗄️ 数据链路

PostgreSQL 存储主数据,Redis 缓存热点统计,Cloudflare KV 用作兜底。统计缓存默认 30 秒刷新,可按需调整。

📈 可观测性

/stats 提供公开指标,管理员可通过 /admin/stats/dashboard 查看更细粒度的数据、执行健康检查与批量操作。

👉 开发者建议:首次集成可依次完成“管理员生成客户端 Token → 在下方快速开始模块替换 Base URL → 访问公开统计确认流量 → 登录后台监控 Key 健康”,即可在分钟级完成上线闭环。

🚀 快速开始

完成以下步骤即可在几分钟内调用 Ollama 模型。

Step 01

获取 API Token

联系管理员或登陆控制台生成专属 Token,可设置过期时间与并发配额,全部 Token 会在后台可视化管理。

Step 02

确认请求端点

OpenAI 兼容接口:/v1/chat/completions/v1/models。直接替换原有 Base URL 即可完成迁移。

Step 03

添加 Authorization

在请求头写入 Authorization: Bearer YOUR_API_TOKEN。后续可进入 公开统计 监控请求表现。

📖 API 参考

所有接口遵循 OpenAI 官方协议,支持 JSON 与 SSE 流式输出。

请求参数

参数 类型 必填 说明
model string 模型名称,如 "llama2"、"llama3.2"、"mistral" 等。
messages array 对话消息数组,元素包含 role 与 content 字段。
stream boolean - 是否启用流式响应,默认 false。
temperature number - 温度系数 (0-2),默认 0.7。
max_tokens number - 最大生成 Token 数量,默认跟随模型配置。

请求示例

{
  "model": "llama2",
  "messages": [
    {
      "role": "system",
      "content": "You are a helpful assistant."
    },
    {
      "role": "user",
      "content": "Hello, how are you?"
    }
  ],
  "stream": false,
  "temperature": 0.7
}

响应示例

{
  "id": "chatcmpl-123",
  "object": "chat.completion",
  "created": 1677652288,
  "model": "llama2",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "Hello! I'm doing well, thank you for asking."
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 20,
    "completion_tokens": 15,
    "total_tokens": 35
  }
}

获取模型列表 (GET /v1/models)

返回当前可用模型集合,配合公开统计页面掌握池内状态。

{
  "object": "list",
  "data": [
    {
      "id": "llama2",
      "object": "model",
      "created": 1234567890,
      "owned_by": "ollama"
    },
    {
      "id": "mistral",
      "object": "model",
      "created": 1234567890,
      "owned_by": "ollama"
    }
  ]
}

🧪 在线测试

无需离开页面即可调试聊天补全接口,支持同步与流式两种模式。

实时调用生产环境

模型列表会从 /v1/models 接口动态加载。

模板加载中...

🧰 SDK 调用示例

参考以下代码片段快速接入常见语言环境。

Python (requests)

import requests

url = 'https://ollama-api-pool.h7ml.workers.dev/v1/chat/completions'
headers = {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer YOUR_API_TOKEN'
}
payload = {
    'model': 'llama2',
    'messages': [
        {'role': 'user', 'content': 'Hello!'}
    ]
}

response = requests.post(url, headers=headers, json=payload)
print(response.json())

JavaScript (Fetch)

const response = await fetch('https://ollama-api-pool.h7ml.workers.dev/v1/chat/completions', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer YOUR_API_TOKEN'
  },
  body: JSON.stringify({
    model: 'llama2',
    messages: [
      { role: 'user', content: 'Hello!' }
    ]
  })
});

const data = await response.json();
console.log(data);

⚠️ 常见错误码

出现错误时建议同步查看公开统计以确认资源状态。

状态码 说明 排查建议
401 Token 无效或过期 确认 Token 是否正确,必要时重新生成。
429 请求频率超限 降低调用频率或联系管理员提升额度。
503 暂无可用 API Key 等待调度恢复或补充新的上游密钥。