【大模型本地运行与部署框架】Ollama的API交互
文章目录
- 简介
- 1 交互方式
- 1.1 使用`curl`命令
- 1.2 使用postman
- 2 endpoints
- 2.1 `POST /api/generate`使用提供的模型为给定提示生成响应。
- 2.2 `POST /api/chat` 在与提供的模型的聊天中生成下一条消息。
简介
本文介绍如何与ollama服务实现交互。在本地启动ollama后,它实际是一个本地服务器,提供了一系列api接口,见其github地址:ollama/api.md
首先,要启动ollama服务,使用命令ollama serve
1 交互方式
在官网中,给出的是可以使用curl
命令进行服务测试。
1.1 使用curl
命令
这种方式也是官方文档中写的示例方式。
curl
名字意思为 client url (客户端url)。
curl
可以通过在命令行工具(terminal、cmd、powershell)里输入URL,向其获取或发送数据。这其实类似于没有图形界面的浏览器,专注于数据传输。
格式: curl [options] <URL>
post请求简单示例:
使用参数 -d
,并指定要发送post请求的数据。
使用json格式数据,必须含有model参数,其次prompt参数等。
请求数据:采用deepseek-r1:1.5b模型,给出具体的提示词
curl http://localhost:11434/api/generate -d '{ "model": "deepseek-r1:1.5b", "prompt": "Why is the sky blue?" }'
响应数据如下:
提示:
如果使用windows的话,cmd会报语法错误,解决方案:将单引号的地方改为双引号 ,将双引号的地方加上转义字符。
示例:
curl http://localhost:11434/api/generate -d "{ \"model\": \"llama3.2\", \"prompt\": \"Why is the sky blue?\"}"
1.2 使用postman
【待补充】
2 endpoints
2.1 POST /api/generate
使用提供的模型为给定提示生成响应。
这是一个流式处理终结点,因此将有一系列响应。最终响应对象将包括来自请求的统计信息和其他数据。
所有参数:
- 如果需要提交图片,使用 base64 编码的列表:
llava bakllava images
- 如果提供空提示,则模型将加载到内存中,返回单个json对象。
curl http://localhost:11434/api/generate -d '{ "model": "deepseek-r1:1.5b" }' #以下响应数据
{"model": "deepseek-r1:1.5b","created_at": "2025-8-25T19:52:07.071755Z","response": "","done": true
}
- 如果提供空提示,并携带参数
keep_alive 0
,则将模型从内存中卸载。
curl http://localhost:11434/api/generate -d '{ "model": "deepseek-r1:1.5b" ,"keep_alive": 0}' #以下响应数据
{"model": "deepseek-r1:1.5b","created_at": "2025-08-25T03:54:03.516566Z","response": "","done": true,"done_reason": "unload"
}
2.2 POST /api/chat
在与提供的模型的聊天中生成下一条消息。
这是一个流式处理终结点,因此将有一系列响应。可以使用禁用流式处理。最终响应对象将包括来自请求的统计信息和其他数据。“stream”: false
所有参数:
curl http://localhost:11434/api/chat -d “{ “model”: “deepseek-r1:1.5b”, “messages”: [ { “role”: “user”, “content”: “why is the sky blue?” } ]}”
【未完待续。。。】