大模型(含deepseek r1)本地部署利器ollama的API操作指南
ollama介绍:
Ollama 是一个开源的大型语言模型(LLM)平台,旨在让用户能够轻松地在本地运行、管理和与大型语言模型进行交互。它支持多种预训练的大型语言模型(如 LLaMA2、Mistral、Gemma、DeepSeek 等),并提供了一个简单高效的方式来加载和使用这些模型。
- 出现
Error: something went wrong, please see the ollama server logs for details
的问题原因 主要是网络问题导致的,尤其是设置了代理环境变量(终端FQ目的) - 关于DeepSeek本地部署指南(ollama的应用)可以看下我之前写的文章:DeepSeek R1本地与线上满血版部署:超详细手把手指南
ollama 的API:
官方api操作手册如下:https://github.com/ollama/ollama/blob/main/docs/api.md
下面是ollama官网所有API的命令供参考:
命令 | 描述 | 请求方法 | 请求URL | 请求体/参数 | 响应示例 | 中文说明 |
---|---|---|---|---|---|---|
Generate a completion | 根据给定的提示生成文本响应。 | POST | /api/generate |
{"model": "llama3.2", "prompt": "Why is the sky blue?"} |
{"model": "llama3.2", "response": "The sky is blue because...", "done": true} |
使用指定模型生成文本响应,支持流式响应。 |
Generate a chat completion | 生成聊天对话中的下一条消息。 | POST | /api/chat |
{"model": "llama3.2", "messages": [{"role": "user", "content": "Hello!"}]} |
{"message": {"role": "assistant", "content": "Hello! How are you today?"}} |
用于生成聊天机器人回复,支持对话历史和流式响应。 |
Create a Model | 创建模型(从其他模型、safetensors目录或GGUF文件)。 | POST | /api/create |
{"model": "mario", "from": "llama3.2", "system": "You are Mario"} |
{"status": "success"} |
创建新模型,支持从现有模型或文件创建。 |
List Local Models | 列出本地可用的模型。 | GET | /api/tags |
无请求体 | {"models": [{"name": "llama3:latest", "size": 3825819519, ...}]} |
列出本地已有的模型及其相关信息。 |
Show Model Information | 显示模型的详细信息(包括参数、模板等)。 | POST | /api/show |
{"model": "llama3.2"} |
{"modelfile": "...", "parameters": "...", "template": "...", ...} |
获取指定模型的详细信息。 |
Copy a Model | 复制一个现有模型到新的名称。 | POST | /api/copy |
{"source": "llama3.2", "destination": "llama3-backup"} |
返回200 OK | 将一个模型复制为另一个名称。 |
Delete a Model | 删除一个模型及其数据。 | DELETE | /api/delete |
{"model": "llama3:13b"} |
返回200 OK | 删除指定模型。 |
Pull a Model | 从Ollama库下载模型。 | POST | /api/pull |
{"model": "llama3.2"} |
{"status": "success"} |
下载模型到本地,支持断点续传。 |
Push a Model | 将模型上传到Ollama库。 | POST | /api/push |
{"model": "mattw/pygmalion:latest"} |
{"status": "success"} |
将本地模型上传到Ollama库。 |
Generate Embeddings | 生成文本的嵌入向量。 | POST | /api/embed |
{"model": "all-minilm", "input": "Why is the sky blue?"} |
{"embeddings": [[0.010071029, -0.0017594862, ...]]} |
使用指定模型生成文本的嵌入向量。 |
List Running Models | 列出当前加载到内存中的模型。 | GET | /api/ps |
无请求体 | {"models": [{"name": "mistral:latest", "size": 5137025024, ...}]} |
列出当前运行的模型及其相关信息。 |
Version | 获取Ollama版本信息。 | GET | /api/version |
无请求体 | {"version": "0.5.1"} |
获取Ollama服务器的版本号。 |
如果你在使用ollama输入任何命令出现如下错误时就可以使用api来操作:
Error: something went wrong, please see the ollama server logs for details
这个错误主要是网络问题导致的,尤其是代理环境变量(终端FQ)
有两种解决办法:
方法一:
# 检查http_proxy变量是否存在
echo $http_proxy
# 检查https_proxy变量是否存在
echo $https_proxy
如果输出内容了,说明设置了代理,请移除
# 移除HTTP代理环境变量
unset http_proxy
# 移除HTTPS代理环境变量
unset https_proxy
# 再检查http_proxy变量是否存在
echo $http_proxy
# 再检查https_proxy变量是否存在
echo $https_proxy
输出为空,再试试ollama命令应该就可以了。
如果你希望永久移除这些代理环境变量,可以编辑你的终端配置文件,例如编辑你的.zshrc文件(这是zsh的配置文件),并删除或注释掉其中设置代理变量的行。
例如编辑zshrc文件:
// 注释掉类似下面的内容
export http_proxy="http://your-proxy-server:port"
export https_proxy="http://your-proxy-server:port"
// 保存文件后再执行
source ~/.zshrc
然后稳妥起见再重启下终端,再试试ollama命令应该就可以了。
方法二:如果不想修改自己的代理环境变量,可以直接通过API操作命令代替ollama命令
举例来说:
// 终端直接运行下面命令来pull模型
curl http://你的电脑ip地址:11434/api/pull -d '{"model": "deepseek-r1:1.5b"}'
// 获取正在运行的模型
curl http://你的电脑ip地址:11434/api/ps
详细API请见上方表格
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)