Osaurus:在 Mac 上跑本地大模型的新选择——超轻量、纯原生、兼容 OpenAI
更新时间:2025-08-26
如果你有一台 M 系列芯片的 Mac,想把大模型装到本地、随时离线使用,又嫌 Ollama 还不够快,那就试试 Osaurus。整个安装包只有 7 MB,却号称比 Ollama 快 20%,而且完全开源。
目录
-
Osaurus 到底是什么? -
我的电脑能装吗? -
三分钟完成安装 -
第一次启动:模型管理器长什么样? -
用浏览器就能聊天:API 到底怎么用? -
性能实测:TTFT、吞吐、成功率 -
深入功能:会话缓存、工具调用、聊天模板 -
常见问题 FAQ -
总结:什么时候该选 Osaurus?
1. Osaurus 到底是什么?
一句话:
Osaurus 是一个只面向 Apple Silicon Mac 的本地 LLM 服务,体积 7 MB,内置 SwiftUI 图形界面,兼容 OpenAI 的 REST 接口,背后用的全是 Apple 自家 MLX 框架。
和 Ollama 的区别可以记成三点:
维度 | Osaurus | Ollama |
---|---|---|
运行框架 | Apple MLX | llama.cpp |
安装包大小 | 7 MB | ~200 MB |
适用平台 | macOS 15.5+ M 系列 | 跨平台 |
换句话说,如果你只有一台 M1/M2/M3 的 Mac,Osaurus 把“精简”做到了极致;如果你需要 Windows 或 Intel Mac,那就继续用 Ollama。
2. 我的电脑能装吗?
先自问自答三个问题:
问答 | 条件 |
---|---|
系统版本? | macOS 15.5 及以上 |
芯片型号? | Apple Silicon(M1、M2、M3 …) |
会写代码吗? | 不会也能用,官方提供签名 dmg;会 Xcode 的可以自己编 |
不满足任何一条,就先别折腾了。
3. 三分钟完成安装
方法一:直接下载(不会写代码也能完成)
-
打开 GitHub Releases 页面。 -
下载 Osaurus.dmg
,双击拖进 Applications。 -
首次打开会提示“无法验证开发者”,在系统设置 → 隐私与安全 → 允许即可。
方法二:源码编译(给开发者)
git clone https://github.com/dinoki-ai/osaurus.git
cd osaurus
open osaurus.xcodeproj # 需要 Xcode 16.4+
选中 osaurus
target,按 ⌘R 即可运行。
4. 第一次启动:模型管理器长什么样?
打开应用后会出现一个极简窗口:
-
左上角开关:启动 / 停止 HTTP 服务,默认端口 8080。 -
右上角齿轮:可以改端口,也可以设置模型存放路径(默认 ~/Documents/MLXModels
)。 -
中间列表:自动读取 Hugging Face mlx-community
里的热门模型,显示体积、下载进度条。 -
底部状态栏:实时 CPU、内存折线图。
第一次用,点 “Llama 3.2 3B Instruct 4bit” → Download,大约 2 GB 流量跑完后就能开聊。
5. 用浏览器就能聊天:API 到底怎么用?
Osaurus 把常用接口都做成 OpenAI 格式,用 curl 就能试。
5.1 查看有哪些模型
curl -s http://127.0.0.1:8080/v1/models | jq
返回示例:
{
"object": "list",
"data": [
{
"id": "llama-3.2-3b-instruct-4bit",
"object": "model",
"created": 1724588800,
"owned_by": "mlx-community"
}
]
}
5.2 非流式对话
curl -s http://127.0.0.1:8080/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "llama-3.2-3b-instruct-4bit",
"messages": [{"role":"user","content":"写一首关于恐龙的俳句"}],
"max_tokens": 200
}'
返回:
{
"id": "chatcmpl-123",
"object": "chat.completion",
"choices": [{
"message": {
"role": "assistant",
"content": "远古巨影落,\n骨林深处风声急,\n时光低声吼。"
}
}]
}
5.3 流式对话(SSE)
curl -N http://127.0.0.1:8080/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "llama-3.2-3b-instruct-4bit",
"messages": [{"role":"user","content":"一句话总结侏罗纪公园"}],
"stream": true
}'
终端会一行行蹦字,效果跟 ChatGPT 网页打字一样。
6. 性能实测:TTFT、吞吐、成功率
官方在同样硬件(未透露具体型号)跑了 20 次取平均:
服务器 | 模型 | 首 token 延迟 | 总延迟 | 字符/秒 | 成功率 |
---|---|---|---|---|---|
Osaurus | llama-3.2-3b-instruct-4bit | 191 ms | 1461 ms | 521 | 100% |
Ollama | llama3.2 | 59 ms | 1667 ms | 439 | 100% |
LM Studio | llama-3.2-3b-instruct | 56 ms | 1205 ms | 605 | 100% |
解读:
-
首 token 延迟:Ollama 和 LM Studio 略快,说明 llama.cpp 的预填充确实猛; -
总延迟 + 吞吐:Osaurus 在 Apple Silicon 上用 MLX 的 Metal 内核后发先至,字符/秒最高; -
成功率:三者都 100%,稳定性无需担心。
7. 深入功能:会话缓存、工具调用、聊天模板
7.1 会话重用(KV 缓存)
多轮对话最怕每次都重新算 KV。Osaurus 支持在请求里带 session_id
,同一 id 会复用缓存。
curl -s http://127.0.0.1:8080/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "llama-3.2-3b-instruct-4bit",
"session_id": "demo123",
"messages": [{"role":"user","content":"告诉我一个关于剑龙的事实"}]
}'
注意:并发冲突时会自动建新会话,无需手动管理。
7.2 工具/函数调用(OpenAI 兼容)
-
定义工具:
"tools": [{
"type": "function",
"function": {
"name": "get_weather",
"description": "根据城市名返回天气",
"parameters": {
"type": "object",
"properties": {"city": {"type": "string"}},
"required": ["city"]
}
}
}]
-
发送请求:
curl -s http://127.0.0.1:8080/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "llama-3.2-3b-instruct-4bit",
"messages": [
{"role":"system","content":"可以调用函数简洁回答"},
{"role":"user","content":"上海天气怎样?"}
],
"tools": [...],
"tool_choice": "auto"
}'
-
模型返回:
"tool_calls": [{
"id": "call_1",
"type": "function",
"function": {"name":"get_weather","arguments":"{\"city\":\"Shanghai\"}"}
}]
-
你把真正的天气结果再以 role: tool
回传即可继续对话。
Osaurus 会自动帮你解析带 ```json
代码块或多余空格的格式,减少出错。
7.3 聊天模板(Jinja)
模型自带 tokenizer_config.json
里的 chat_template
会被直接拿来渲染。
如果模板缺失,Osaurus 会用极简格式 fallback:
User: ...
Assistant: ...
系统消息会合并到最前面,无需手动拼接。
8. 常见问题 FAQ
Q1:模型存在哪?能改路径吗?
默认 ~/Documents/MLXModels
,启动前 export OSU_MODELS_DIR=/Volumes/SSD/mlx
即可。
Q2:Intel Mac 能不能用?
不能。Osaurus 只依赖 Apple 的 MLX,而 MLX 只支持 Apple Silicon。
Q3:可以暴露到局域网吗?
目前只监听 127.0.0.1,需要反向代理(如 Nginx)才能对外。
Q4:支持 Whisper 吗?
文档里 /transcribe
是占位符,后续版本才加入。
Q5:和 Python 的 openai 库兼容吗?
完全兼容,把 base_url="http://127.0.0.1:8080/v1"
、api_key="osaurus"
填进去即可。
9. 总结:什么时候该选 Osaurus?
场景 | 建议 |
---|---|
只有 M 系列 Mac,追求极致轻量 | 直接选 Osaurus |
需要 Windows / Intel Mac | 继续用 Ollama |
想体验 Apple MLX 的 Metal 加速 | 拿 Osaurus 做基准测试 |
需要大量并发企业级部署 | 建议等后续版本或上云端 |
一句话总结:Osaurus 把“Mac 原生”做到了极致:体积小、依赖少、接口熟、跑得飞快。
如果你恰好是 M 系列用户,不妨现在就去 GitHub 下一个试试。