Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 

Repository files navigation

🧠 Cerebras OpenAI API Gateway

一个基于 Flask 的高性能 API 网关,将 Cerebras API 封装为标准的 OpenAI 兼容格式。提供多 Key 轮询、智能限流、自动降级容灾以及全功能的可视化监控面板。

作者:速冻月饼


✨ 主要特性

  • OpenAI 兼容接口:无缝对接各类支持 OpenAI 格式的客户端(如 NextChat, LobeChat, Chatbox 等)。
  • 多 Key 负载均衡:支持配置多个 Cerebras API Key,自动轮询分发请求。
  • 精细化限流控制:精准对齐 Cerebras 官方 Header,支持 TPD (每日 Tokens) 本地精确计算与跨天重置,实时管理 RPM、TPM、RPD、TPD 额度。
  • 全量 Debug 深度调试:支持保存最近 50 条全量报文日志(包含完整 Request/Response Body),提供"一键复制 AI 调试包"功能,方便快捷定位上下文及截断(如 length 限制)等问题。
  • 安全密码鉴权:监控面板支持配置自定义 Token 以及密钥双重密码验证,保障调试数据隐私安全。
  • 磁盘 I/O 优化:引入写盘节流机制(15秒内仅触发一次),在高并发场景下保障服务响应速度与磁盘寿命。
  • 智能容灾与降级
    • 遇到 429 Too Many Requests 时,自动冷却当前 Key 并无缝切换至下一个可用 Key。
    • zai-glm-4.7 模型所有 Key 均不可用时,自动降级至 gpt-oss-120b 处理请求。
  • 可视化监控看板:提供精美的 Web UI,实时展示全局额度水位、物理 Key 状态矩阵、历史请求日志。
  • 思考过程控制:支持对模型的 Reasoning/Thinking 内容进行全局或按请求的显示/隐藏控制。
  • 数据持久化:本地 JSON 持久化存储,重启服务不丢失历史累计统计数据。

🚀 快速部署

1. 环境要求

  • Python 3.8 或更高版本

2. 安装依赖

pip install flask requests tiktoken

3. 配置环境变量

变量名 必填 说明 示例
CEREBRAS_API_KEYS Cerebras 物理 API Key,多个用逗号分隔 key1,key2,key3
CUSTOM_API_KEYS 网关鉴权 Token,配置后客户端需使用此 Token 调用,Debug 页面也会受此保护 my-secret-token
PORT 服务监听端口,默认 10000 8080

4. 启动服务

# 直接运行
python app.py

# 或使用 gunicorn (推荐生产环境)
gunicorn -w 4 -b 0.0.0.0:10000 app:app

📡 API 使用说明

基础信息

  • Base URL: http://<your-server-ip>:10000/v1
  • 可用模型:
    • zai-glm-4.7 (主模型)
    • gpt-oss-120b (备用/降级模型)

调用示例 (Python)

from openai import OpenAI

client = OpenAI(
    api_key="your_custom_api_key",  # 如果设置了 CUSTOM_API_KEYS
    base_url="http://localhost:10000/v1"
)

response = client.chat.completions.create(
    model="zai-glm-4.7",
    messages=[{"role": "user", "content": "Hello!"}],
    stream=True
)

for chunk in response:
    print(chunk.choices[0].delta.content or "", end="")

🖥️ Web 监控面板

启动服务后,通过浏览器访问 http://<your-server-ip>:10000/menu 即可进入管理后台。

路由 功能说明
/menu 主菜单与导航
/status 实时监控看板:查看全局额度水位(包含本地 TPD 计算)、Key 状态矩阵、冷却倒计时
/log 请求日志:最近 100 条请求的轻量回溯
/debug 🔍 深度调试面板:保存最近 50 条完整请求体与响应体,支持双重密码登录及一键复制 AI 调试包
/config ⚙️ 系统配置:查看当前运行的核心参数与版本
/thinkingdisplay 思考控制:动态切换 Thinking 内容的显示策略 (Auto/On/Off)
/health ❤️ 健康检查:微服务状态探针

📝 更新日志 (Changelog)

  • v1.4.6 (当前版本):重大更新
    • 新增 /debug 深度调试面板,支持抓取与展示最近 50 条请求的完整 Request Body 和 Response Body。
    • 新增"📋 一键复制 AI 调试包"功能,轻松排查 Prompt 长度、Reasoning Token 占用及 finish_reason: length 等截断异常。
    • 新增 Debug 页面登录鉴权与 Cookie 记住登录状态机制。
    • 修复全局并发日志锁与变量提取空指问题。
  • v1.4.5:重大更新:实现 TPD 本地独立计算与北京时间凌晨自动重置;新增 15 秒磁盘写盘节流优化;修复流式传输中部分冗余逻辑。
  • v1.4.4:新增 429 错误自动切换 Key 机制;新增 GLM 到 GPT 的自动降级逻辑。
  • v1.4.3:修复 Log 页面移动端自适应显示问题。
  • v1.4.2:新增本地 JSON 持久化,重启不丢失历史累计统计数据。
  • v1.4.1:优化监控看板 UI,增加北京时间显示。

📄 License

本项目仅供学习和交流使用。请遵守 Cerebras 官方 API 的使用条款。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages