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请见上方表格
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。