目录
一、OllamaAPI {#一、OllamaAPI}
1. 查看本地已下载模型 http://localhost:11434/api/tags
- 功能:列出本地已下载的模型。
- 响应格式:
{
"models": [
{
"name": "<model-name>", // 模型名称
"size": "<model-size>", // 模型大小
"modified_at": "<timestamp>" // 修改时间
}
]
}
- 示例请求:
curl http://localhost:11434/api/tags
2.拉取模型(Pull Model)
- 端点:
POST /api/pull
- 功能:从模型库中拉取模型。
- 请求格式:
{
"name": "<model-name>" // 模型名称
}
- 响应格式:
{
"status": "downloading", // 下载状态
"digest": "<model-digest>" // 模型摘要
}
- 示例请求:
curl http://localhost:11434/api/pull -d '{
"name": "deepseek-coder"
}'
3. 调用模型生成文本(Generate Text)
- 端点:
POST /api/generate
- 功能:向模型发送提示词(prompt),并获取生成的文本。
- 请求格式:
{
"model": "<model-name>", // 模型名称
"prompt": "<input-text>", // 输入的提示词
"stream": false, // 是否启用流式响应(默认 false)
"options": { // 可选参数
"temperature": 0.7, // 温度参数
"max_tokens": 100 // 最大 token 数
}
}
- 响应格式:
{
"response": "<generated-text>", // 生成的文本
"done": true // 是否完成
}
- 示例请求:
curl http://localhost:11434/api/generate -d '{
"model": "deepseek-r1",
"prompt": "帮我制定AI学习计划",
"stream": false
}'
4. 聊天(Chat)
- 端点:
POST /api/chat
- 功能:支持多轮对话,模型会记住上下文。
- 请求格式:
{
"model": "<model-name>", // 模型名称
"messages": [ // 消息列表
{
"role": "user", // 用户角色
"content": "<input-text>" // 用户输入
}
],
"stream": false, // 是否启用流式响应
"options": { // 可选参数
"temperature": 0.7,
"max_tokens": 100
}
}
- 响应格式:
{
"message": {
"role": "assistant", // 助手角色
"content": "<generated-text>" // 生成的文本
},
"done": true
}
- 示例请求:
curl http://localhost:11434/api/chat -d '{
"model": "deepseek-r1",
"messages": [
{
"role": "user",
"content": "帮我制定AI学习计划"
}
],
"stream": false
}'
二、命令行调用{#二、命令行调用}
//启动ollama服务
ollama serve
//停止ollama服务
ps aux | grep ollama
kill -9 {ollama serve的PID}
//查看本地模型
ollama ls
//拉取远程模型
ollama pull deepseek-r1
//运行本地模型
ollama run deepseek-r1
进入会话后的操作命令:
(myenv) MBP-WD6RT4MYFV-0157:~ xxx$ Ollama run deepseek-r1
>>> /help
Available Commands:
/set Set session variables
/show Show model information
/load <model> Load a session or model
/save <model> Save your current session
/clear Clear session context
/bye Exit
/?, /help Help for a command
/? shortcuts Help for keyboard shortcuts
Use """ to begin a multi-line message.
三、API调用{#三、API调用}
查看ollama运行状态 http://127.0.0.1:11434/
,查看本地已下载模型 http://127.0.0.1:11434/api/tags
通过curl调用本地api - 单轮会话:
curl http://localhost:11434/api/generate -d '{
"model": "deepseek-r1",
"prompt": "制定AI学习计划",
"stream": false
}'
通过curl调用本地api - 多轮会话(记住上下文):
curl http://localhost:11434/api/chat -d '{
"model": "deepseek-r1",
"messages": [
{
"role": "user",
"content": "帮我制定AI学习计划"
}
],
"stream": false
}'
四、Python脚本调用{#四、Python脚本调用}
步骤 1:创建虚拟环境
- 打开终端或命令行。
- 创建虚拟环境:
在项目目录下运行以下命令创建一个名为myenv
的虚拟环境:
python3 -m venv myenv
步骤 2:激活虚拟环境
- 激活虚拟环境:
- 在Linux 或 macOS上:
source myenv/bin/activate
- 在Windows上:
myenv\Scripts\activate
激活后,你的终端提示符会显示虚拟环境的名称,例如:
(myenv) user@host:~$
步骤 3:安装依赖
- 安装
requests
库:
在激活的虚拟环境中,运行以下命令安装requests
库:
pip3 install requests
步骤 4:编写 Python 脚本
- 创建脚本文件:
在桌面目录下创建一个名为ollama_api_call.py
的文件。 - 编写脚本内容:
打开ollama_api_call.py
文件,并写入以下代码:
import requests
# 设置 API 端点和请求数据
url = "http://localhost:11434/api/chat" # Ollama API 端点
headers = {"Content-Type": "application/json"} # 请求头
data = {
"model": "deepseek-r1", # 模型名称
"messages": [
{"role": "user", "content": "为什么天空是蓝色的?"} # 用户输入的消息
],
"stream": False, # 是否启用流式响应
"options": {"temperature": 0.7} # 可选参数,例如温度
}
# 发送 POST 请求
response = requests.post(url, json=data, headers=headers)
# 检查响应状态码
if response.status_code == 200:
# 打印响应内容
print("API 响应:")
print(response.json())
else:
print(f"请求失败,状态码:{response.status_code}")
print(f"错误信息:{response.text}")
步骤 5:运行脚本
- 运行脚本:
在激活的虚拟环境中,运行以下命令执行脚本:
python ollama_api_call.py
python /Users/xxx/Desktop/ollama_api_call.py
步骤 6:查看输出
- 查看输出结果:
如果 Ollama 服务正在运行且 API 调用成功,你将看到类似以下的输出:
{
"message": {
"role": "assistant",
"content": "天空是蓝色的,是因为大气中的气体分子会散射太阳光中的蓝色光波,而蓝色光波的波长较短,散射效果更明显。"
},
"done": true
}