Ollama 提供了一套 RESTful API,让你可以通过 HTTP 请求来调用模型的各种功能。这一章我们先来整体了解一下这套 API。
简单来说,Ollama API 就是一个 HTTP 服务。你发送 HTTP 请求,它返回结果。跟调用任何 Web API 没什么本质区别。
默认情况下,Ollama 启动后会在本地监听 11434 端口:
http://localhost:11434
你可以用 curl、Postman,或者任何能发 HTTP 请求的工具来调用。
先来个最简单的例子,检查服务是否正常运行:
curl http://localhost:11434/api/version
返回:
{
"version": "0.1.27"
}
看到版本号就说明服务正常。
再试一个生成文本的请求:
curl http://localhost:11434/api/generate -d '{
"model": "llama3.2",
"prompt": "说一句问候语"
}'
模型会返回类似这样的结果:
{
"model": "llama3.2",
"created_at": "2024-01-15T10:00:00Z",
"response": "你好!很高兴见到你!",
"done": true
}
Ollama 的 API 设计比较简洁,主要分几个模块:
| 模块 | 端点前缀 | 功能 |
|---|---|---|
| 生成 | /api/generate | 文本生成 |
| 聊天 | /api/chat | 多轮对话 |
| 嵌入 | /api/embeddings | 文本向量化 |
| 模型管理 | /api/tags, /api/show 等 | 模型 CRUD |
| 系统信息 | /api/version, /api/ps | 状态查询 |
大多数 API 接受 JSON 格式的请求体:
curl http://localhost:11434/api/chat -d '{
"model": "llama3.2",
"messages": [
{"role": "user", "content": "你好"}
]
}'
响应也是 JSON:
{
"model": "llama3.2",
"created_at": "2024-01-15T10:00:00Z",
"message": {
"role": "assistant",
"content": "你好!有什么可以帮你的吗?"
},
"done": true
}
最基础的功能,给一个提示词,模型生成后续内容:
curl http://localhost:11434/api/generate -d '{
"model": "llama3.2",
"prompt": "Python 的优点有哪些?"
}'
支持多轮对话,保持上下文:
curl http://localhost:11434/api/chat -d '{
"model": "llama3.2",
"messages": [
{"role": "user", "content": "我叫小明"},
{"role": "assistant", "content": "你好小明!"},
{"role": "user", "content": "我叫什么名字?"}
]
}'
将文本转换为向量,用于相似度计算、RAG 等场景:
curl http://localhost:11434/api/embeddings -d '{
"model": "llama3.2",
"prompt": "这是一段需要向量化的文本"
}'
通过 API 管理模型:
# 列出已安装的模型
curl http://localhost:11434/api/tags
# 拉取新模型
curl http://localhost:11434/api/pull -d '{
"name": "mistral:7b"
}'
你可能会问,直接用命令行 ollama run 不是更简单吗?
确实,如果只是自己用,命令行够用了。但在这些场景下,API 更合适:
应用集成
你开发了一个应用,需要调用 AI 能力。通过 API,可以把 Ollama 当作后端服务。
多用户场景
多个用户同时使用,需要管理并发、会话等。API 层可以做这些控制。
服务化部署
把 Ollama 部署在服务器上,客户端通过网络调用。这在生产环境很常见。
与其他系统集成
比如接入 LangChain、LlamaIndex 这类框架,它们都通过 API 与模型交互。
Ollama 提供了 OpenAI 兼容接口,这意味着:
兼容接口地址:
http://localhost:11434/v1
后面会专门讲这个兼容层怎么用。
默认监听本地:
http://127.0.0.1:11434
可以通过环境变量修改:
OLLAMA_HOST=0.0.0.0:11434 ollama serve
这样其他机器也能访问。
如果要从网页调用 API,需要配置 CORS:
OLLAMA_ORIGINS="*" ollama serve
或者指定允许的域名:
OLLAMA_ORIGINS="https://example.com" ollama serve