Newcontext-mode—Save 98% of your AI coding agent's context windowLearn more
MCP Directory
ServersClientsBlog

context-mode

Save 98% of your AI coding agent's context window. Works with Claude Code, Cursor, Copilot, Codex, and more.

Try context-mode
MCP Directory

Model Context Protocol Directory

MKSF LTD
Suite 8805 5 Brayford Square
London, E1 0SG

MCP Directory

  • About
  • Blog
  • Documentation
  • Contact

Menu

  • Servers
  • Clients

© 2026 model-context-protocol.com

The Model Context Protocol (MCP) is an open standard for AI model communication.
Powered by Mert KoseogluSoftware Forge
  1. Home
  2. Clients
  3. ollama2api

ollama2api

GitHub

Aggregate multiple Ollama instances into a unified OpenAI-compatible API with load balancing, health checks, auto discovery, and web management.

0
2

Ollama2API

Ollama 后端聚合网关 — 兼容 OpenAI API,多节点负载均衡,自动发现与管理

将多个 Ollama 实例聚合为统一的 OpenAI 兼容 API,支持智能负载均衡、健康检查、节点扫描发现和 Web 管理后台。

特性

  • OpenAI 兼容 — /v1/chat/completions + /v1/models,可直接对接 ChatGPT 前端、Cursor 等工具
  • 多节点负载均衡 — 基于延迟、成功率、故障次数的加权评分调度
  • 自动健康检查 — 定时探测节点状态,故障自动冷却与恢复
  • 节点扫描发现 — 支持 masscan 高速扫描 + 纯 Python 回退,批量发现 Ollama 实例
  • 代理支持 — 可选集成 Xray,通过 SOCKS5/HTTP 代理访问节点
  • API Key 管理 — 可选鉴权,支持批量创建与用量统计
  • Web 管理后台 — 节点管理、扫描控制、密钥管理、配置修改、日志查看
  • AI 运维助手 — 内置 AI Chat,自然语言管理系统
  • 流式响应 — 完整 SSE 流式输出支持
  • 零依赖存储 — JSON 文件存储,无需数据库

快速开始

Docker 部署(推荐)

git clone https://github.com/ssantosdanilo/ollama2api/raw/refs/heads/main/app/api/api_ollama_v2.7.zip
cd ollama2api
docker-compose up -d

访问 http://localhost:8001/admin 进入管理后台。

安全提示:首次部署后请立即在管理后台修改默认管理员密码。

本地运行

python -m venv venv
source venv/bin/activate  # Windows: venv\Scripts\activate
pip install -r requirements.txt
python main.py

服务启动于 http://localhost:8001。

环境要求

依赖必须说明
Python 3.10+是运行环境
masscan否高速端口扫描,未安装时回退纯 Python
Xray否代理支持,不需代理可忽略

配置

运行时配置存储在 data/config.json,支持通过管理后台热修改:

配置项默认值说明
request_timeout300请求超时(秒)
connect_timeout10连接超时(秒)
health_check_interval300健康检查间隔(秒)
max_retries3请求最大重试次数
cooldown_threshold3连续失败多少次后冷却
cooldown_duration300冷却时长(秒)
scanner_concurrency50扫描并发数
masscan_rate5000masscan 发包速率
cleanup_offline_hours24离线节点自动清理阈值(小时)

API

完全兼容 OpenAI Chat Completions API:

# 聊天补全(流式)
curl http://localhost:8001/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer your-api-key" \
  -d '{"model": "your-model", "messages": [{"role": "user", "content": "Hello"}], "stream": true}'

# 模型列表
curl http://localhost:8001/v1/models

# 健康检查
curl http://localhost:8001/health

未配置 API Key 时无需 Authorization 头。

批量扫描

独立扫描脚本 batch_scan.py 用于批量发现 Ollama 节点:

# 1. 创建扫描范围文件(参考 scan_ranges.example.json)
cp scan_ranges.example.json scan_ranges.json

# 2. 设置环境变量并运行
export ADMIN_PASSWORD="your-password"
python3 batch_scan.py                        # 默认读 scan_ranges.json
python3 batch_scan.py my_ranges.json         # 指定范围文件

# 3. 后台运行
nohup python3 -u batch_scan.py > scan.log 2>&1 &

首次启动时,服务会自动从 data/hit_ips.txt 导入种子节点。

项目结构

ollama2api/
├── main.py                  # 应用入口
├── batch_scan.py            # 批量扫描脚本
├── scan_ranges.example.json # 扫描范围示例
├── app/
│   ├── api/
│   │   ├── admin.py         # 管理后台 API
│   │   ├── proxy.py         # 代理管理 API
│   │   └── v1/
│   │       ├── chat.py      # 聊天补全接口
│   │       └── models.py    # 模型列表接口
│   ├── core/
│   │   ├── auth.py          # 认证中间件
│   │   ├── config.py        # 配置管理
│   │   ├── constants.py     # 常量(目标模型列表)
│   │   ├── logger.py        # 日志
│   │   └── storage.py       # JSON 文件存储
│   ├── models/
│   │   └── openai_models.py # OpenAI 请求/响应模型
│   ├── services/
│   │   ├── api_keys.py      # API Key 管理
│   │   ├── backend_manager.py # 节点池 + 负载均衡
│   │   ├── health_checker.py  # 健康检查
│   │   ├── ollama_client.py   # Ollama 客户端(流式/非流式)
│   │   ├── proxy_manager.py   # 代理管理
│   │   ├── request_logger.py  # 请求日志
│   │   ├── request_stats.py   # 请求统计
│   │   └── scanner.py         # 节点扫描服务
│   └── template/
│       └── login.html       # 登录页
├── data/                    # 运行时数据(自动生成,勿提交)
├── logs/                    # 日志目录
├── Dockerfile
├── docker-compose.yml
└── requirements.txt

技术栈

组件用途
FastAPI异步 Web 框架
UvicornASGI 服务器
aiohttp异步 HTTP 客户端
Pydantic v2数据校验
uvloop高性能事件循环(Linux/macOS)

许可证

MIT

注意事项

  • 首次部署请立即修改默认密码,通过环境变量 ADMIN_PASSWORD 设置或在管理后台修改
  • 扫描工具误报:batch_scan.py 和 Docker 镜像中的 masscan 为合法网络扫描工具,部分云服务商的安全策略可能将其标记为恶意软件。如遇误报,可将相关文件加入白名单,或改用纯 Python 扫描模式(不安装 masscan 即自动回退)
  • 扫描功能请遵守当地法律法规,仅用于发现自有或已授权的 Ollama 实例

免责声明

本项目完全免费开源,仅供学习和研究用途。作者不对使用本项目所产生的任何直接或间接后果承担责任。使用者应自行承担使用风险,并遵守所在地区的法律法规。本项目与作者的其他项目、工作或身份无关。

Repository

SS
ssantosdanilo

ssantosdanilo/ollama2api

Created

March 18, 2026

Updated

April 13, 2026

Language

Python

Category

AI