Ollama 提供了多种方式来调用其服务,包括通过命令行、REST API 以及编程语言(如 Python)进行集成。以下是详细的调用方法:
https://github.com/ollama/ollama/blob/main/docs/api.md
1. 通过命令行调用
Ollama 提供了简单的命令行工具来与模型交互。
启动模型并交互
ollama run <model-name>
例如,使用 deepseek-r1:1.5b
模型:
ollama run deepseek-r1:1.5b
启动后,你可以直接在命令行中输入文本,模型会生成回复。
生成单次回复
如果你只需要生成一次回复,可以使用以下命令:
ollama run deepseek-r1:1.5b "为什么天空是蓝色的?"
2. 通过 REST API 调用
Ollama 提供了 REST API,允许你通过 HTTP 请求与模型交互。
启动 Ollama 服务
首先,确保 Ollama 服务正在运行:
ollama serve
默认情况下,服务会运行在 http://localhost:11434
。
使用 API 生成文本
你可以使用 curl
或其他 HTTP 客户端调用 API。
示例:生成文本
curl -X POST http://localhost:11434/api/generate -d '{
"model": "deepseek-r1:1.5b",
"prompt": "为什么天空是蓝色的?"
}'
API 参数说明:
model
: 要使用的模型名称(如deepseek-r1:1.5b
)。prompt
: 输入的提示文本。stream
: 是否流式返回结果(默认为true
)。options
: 其他选项,如温度(temperature
)、最大 token 数(num_predict
)等。
示例:流式返回
curl -X POST http://localhost:11434/api/generate -d '{
"model": "deepseek-r1:1.5b",
"prompt": "为什么天空是蓝色的?",
"stream": false
}'
示例:设置生成参数
curl -X POST http://localhost:11434/api/generate -d '{
"model": "deepseek-r1:1.5b",
"prompt": "给我讲一个关于哪吒的笑话.",
"stream": false,
"options": {
"temperature": 0.7,
"num_predict": 500
}
}'
3. 通过 Python 调用
你可以使用 Python 的 requests
库或其他 HTTP 客户端库与 Ollama 的 API 交互。
安装依赖
pip install requests
Python 示例代码
import requests
# API 地址
url = "http://localhost:11434/api/generate"
# 请求数据
data = {
"model": "deepseek-r1:1.5b",
"prompt": "为什么天空是蓝色的?",
"stream": False
}
# 发送请求
response = requests.post(url, json=data)
# 打印结果
if response.status_code == 200:
print(response.json())
else:
print("Error:", response.status_code, response.text)
流式处理
如果启用流式返回,可以逐块处理响应:
import requests
url = "http://localhost:11434/api/generate"
data = {
"model": "deepseek-r1:1.5b",
"prompt": "为什么天空是蓝色的?",
"stream": True
}
with requests.post(url, json=data, stream=True) as response:
if response.status_code == 200:
for chunk in response.iter_content(chunk_size=None):
if chunk:
print(chunk.decode("utf-8"), end="")
else:
print("Error:", response.status_code, response.text)
4. 通过 Docker 调用
如果你使用 Docker 部署 Ollama,可以通过 Docker 容器调用服务。
启动 Docker 容器
docker run -d -p 11434:11434 --name ollama ollama/ollama
调用 API
与本地调用方式相同,只需将 localhost
替换为 Docker 容器的 IP 或主机名。
5. 高级功能
Ollama 还支持以下高级功能:
- 多模型管理:同时加载多个模型并切换使用。
- 自定义模型:基于现有模型进行微调或自定义。
- GPU 加速:通过配置启用 GPU 加速(需安装 CUDA 等依赖)。
6. 调试与日志
如果调用服务时遇到问题,可以查看 Ollama 的日志:
ollama logs
总结
Ollama 提供了多种调用服务的方式,包括命令行、REST API 和编程语言集成。通过 REST API,你可以轻松将 Ollama 集成到自己的应用程序中,并通过流式处理、参数调整等功能实现更灵活的使用。