环境声明

  • Microsoft Windows 11 家庭中文版
  • 显卡:RTX3060-6G
  • Python3.11
  • Ollama 0.5.7


安装Ollama

先下载对应的Ollama版本,这里使用Windows版;注意Ollama默认会安装在C盘,所以需要C盘需要足够大的空间

默认下载位置:C:\Users\用户名\AppData\Local\Programs\Ollama\
模型下载位置:C:\Users\用户名.ollama\

image-20250208202926411

在开始菜单中运行Ollama,在任务栏右下角中看到Ollama表示成功运行

image-20250208203918728

在cmd中执行下方命令,如果成功回显则表示Ollama成功安装

1
ollama -v

image-20250208203345793

修改ollama下载模型的位置

创建一个文件夹作为存储Ollama下载模型的位置,然后创建一个系统变量OLLAMA_MODELS,值为文件夹路径

注意:需要重启ollama才会生效!!!

image-20250208223201015

如果已经有下载模型了,可以将C:\Users\用户名\.ollama\models下的所有文件都移动到新的目录下即可

image-20250208224050997

image-20250208223907128

安装Deepseek

Ollama官网中搜索deepseek,下载适合自己的版本

image-20250208203700854

下载的模型越大越牛逼,此处下载的是1.5b的模型,在cmd中执行下方的命令即可下载,出现>>>表示安装完成

1
ollama run deepseek-r1:1.5b

image-20250208204306996

本地测试效果如下(GIF动图),与直接使用deepseek官网的回答差太多了(模型大小问题),建议直接使用官网

image-20250208204306996

image-20250208205541814

安装Chatbox图形界面

使用Ollama安装完成后是没有图形界面的,只能在命令窗口进行交互;可以使用Chatbox调用olllama中的模型

image-20250208210605662

安装完成后运行,选择使用自己的API Key或本地模型,再选择对应的Ollmam Api即可

image-20250208210809150

image-20250208210823254

API域名默认(Ollama需要在运行状态),模型选择自己下载的deepseek模型,其他参数自行调整后保存即可

image-20250208211010337

本地测试效果如下(GIF动图),右边的对话为一些常见的应用示例

image-20250208211010337

Python调用模型

基于ollama库调用

Python版本需要到3.8或更高版本,默认ollmam的api地址是http://localhost:11434/,如果有修改端口记得修改代码

注意ollama服务需要运行,可以执行ollama serve来运行该服务

1
pip install ollama		# 安装ollama库
1
2
3
4
5
6
7
8
"""简单的聊天接口调用示例:注意修改模型的名称"""

import ollama
host="localhost"
port="11434"
client= ollama.Client(host=f"http://{host}:{port}")
res = ollama.chat(model="deepseek-r1:1.5b",stream=False,messages=[{"role": "user","content": "你是谁"}],options={"temperature":0})
print(res)

image-20250208214307374

基于requests调用

相关API文档:Ollama API文档菜鸟教程-Ollama API

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
"""简单的聊天接口调用示例:注意修改模型的名称"""

import requests

host="localhost"
port="11434"
url = f"http://{host}:{port}/api/chat"
model = "deepseek-r1:1.5b"
headers = {"Content-Type": "application/json"}
data = {
"model": model, # 模型选择
"options": {
"temperature": 0. # 为0表示不让模型自由发挥,输出结果相对较固定,>0的话,输出的结果会比较放飞自我
},
"stream": False, # 流式输出
"messages": [{
"role": "system",
"content":"你是谁?"
}] # 对话列表
}
response=requests.post(url,json=data,headers=headers,timeout=60)
res=response.json()

print(res)

image-20250208215137406