这是一个将Ollama API转换为OpenAI兼容格式的跨平台系统托盘应用,专为macOS和Windows系统设计。
- macOS和Windows双平台支持
- 在系统托盘中运行,不占用桌面空间
- 自动启动Ollama代理服务
- 支持OpenAI兼容的API接口
- 支持聊天完成和文本完成接口
- 支持流式响应
- 支持CORS跨域请求
- 绿色指示器显示服务运行状态
- 可配置端口
/v1/models- 列出可用模型/v1/chat/completions- 聊天完成/v1/completions- 文本完成/health- 健康检查/docs- Swagger UI文档/redoc- ReDoc文档
本应用专为macOS和Windows平台优化,支持多种硬件架构:
- Intel Mac (x86_64): macOS 10.12 或更高版本
- Apple Silicon Mac (ARM64): macOS 11.0 或更高版本
- 自动检测CPU架构并生成对应的原生二进制文件
- 支持Universal Binary兼容性
- Windows x64 (AMD64): Windows 7 或更高版本
- Windows ARM64: Windows 10 ARM 或更高版本
- 自动适配当前系统架构
- 支持Windows 10/11原生性能
- 自动架构检测: 构建过程自动识别当前CPU架构
- 原生性能: 为目标架构生成优化的二进制文件
- 跨架构兼容: 在不同架构间确保API兼容性
- macOS 10.12或更高版本
- Python 3.7或更高版本(仅用于开发和打包)
- Windows 7或更高版本
- Python 3.7或更高版本(仅用于开发和打包)
- Ollama服务已安装并运行
- 确保已安装Ollama并拉取了所需模型
- 根据您的平台选择相应的安装方式:
- macOS: 下载
OllamaProxy.app应用,将应用拖拽到Applications文件夹 - Windows: 下载打包好的
OllamaProxy应用,解压到您希望安装的位置
- macOS: 下载
- 启动应用后,系统托盘会显示🦙图标
- 服务会自动启动,绿色点表示运行中
- 点击系统托盘图标可访问以下功能:
- 启动服务/停止服务:手动控制服务状态
- 端口设置:修改服务端口
- 退出:退出应用
应用使用config.json文件进行配置:
{
"port": 8000,
"ollama_base_url": "http://localhost:11434",
"timeout": 60.0
}├── app.py # 跨平台系统托盘应用主程序(使用pystray)
├── main.py # FastAPI服务核心
├── config.py # 配置管理
├── config.json # 配置文件
├── build.py # 跨平台打包脚本
├── build.sh # macOS构建脚本(自动创建DMG)
├── build.bat # Windows构建脚本(自动创建ZIP)
├── requirements.txt # 依赖列表
├── resources/ # 图标资源文件夹
│ ├── mac.icns # macOS应用图标文件
│ ├── menuicon_16.png # macOS菜单栏16x16 PNG图标文件
│ ├── menuicon_32.png # macOS菜单栏32x32 PNG图标文件
│ └── wintray.ico # Windows系统托盘图标文件
└── README.md # 说明文档
本项目使用统一的跨平台架构:
- 系统托盘: 使用
pystray库实现跨平台系统托盘支持- macOS: 基于 PyObjC 实现
- Windows: 基于 Win32 API 实现
- 核心服务: 使用
FastAPI实现Ollama代理服务 - 打包工具: 使用
PyInstaller生成独立应用 - 图标分离: 应用图标和系统托盘图标分离设计,提供更精细的视觉体验
# 安装依赖
pip install -r requirements.txt
# 运行应用
python app.py# 打包应用(会根据当前平台自动选择合适的打包方式)
python build.pymacOS:
# 使用build.sh脚本,自动构建App并创建DMG安装包
./build.shWindows:
# 使用build.bat脚本,自动构建应用并创建ZIP压缩包
.\build.batmacOS:
dist/OllamaProxy.app- macOS应用程序dist/OllamaProxy.dmg- DMG安装包(自动生成)
Windows:
dist/OllamaProxy/- Windows应用程序目录dist/OllamaProxy.zip- ZIP压缩包(自动生成)
所有构建方法都会:
- 自动检测并安装uv(如果尚未安装)
- 创建或使用现有的虚拟环境
- 在虚拟环境中安装所有依赖
- 使用PyInstaller构建独立的应用程序
- macOS: 自动创建美观的DMG安装包
- Windows: 自动创建便于分发的ZIP压缩包
curl http://localhost:8000/v1/modelscurl http://localhost:8000/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "llama2",
"messages": [
{"role": "user", "content": "Hello!"}
]
}'- 如果应用无法启动,请检查Ollama服务是否正在运行
- 如果端口冲突,请修改config.json中的端口设置
- 如果遇到权限问题:
- macOS: 请在系统偏好设置中授予权限
- Windows: 请以管理员身份运行
MIT

