1.本地部署
1.1 ollama
Ollama软件通过其高度优化的推理引擎和先进的内存管理机制,显著提升了大型语言模型在本地设备上的运行效率。其核心采用了量化技术(Quantization)以降低模型的计算复杂度和存储需求,同时结合 张量并行计算(Tensor Parallelism)和混合精度计算(Mixed Precision Computing) ,在FP16、INT8等低精度格式下实现高效的数值运算,从而大幅减少显存占用并加速推理过程。此外,Ollama支持动态批处理(Dynamic Batching)和分布式推理(Distributed Inference) ,能够根据输入请求动态调整资源分配,并通过多GPU或节点间的高效通信协议(如NCCL)实现弹性扩展,突破单机硬件限制。为确保兼容性,Ollama内置了对主流框架(如PyTorch、TensorFlow)的支持,并通过ONNX Runtime 和TensorRT进一步优化模型性能,同时提供灵活的API接口和模块化设计,允许用户进行自定义微调(Fine-tuning)和Prompt工程,满足多样化应用场景需求。
1.1.1 下载安装
https://ollama.com/download
双击打开安装,ollama默认只能安装在C盘,占用:4.6G 空间。
C:\用户\用户名称\AppData\Local\Programs\Ollama
我的电脑中安装目录:C:\Users\Administrator\AppData\Local\Programs\Ollama
1.1.2 环境变量
默认ollama去下载部署deepseek模型时,会放在C盘 C:\Users\Administrator\.ollama\models
文件夹中。修改环境变量,可以让后续模型下载到其他盘符。
OLLAMA_MODELS D:\ollama\models
配置好之后,ollama重启 或 重启电脑 让环境变量生效。
1.2 deepseek部署
https://ollama.com/library/deepseek-r1
根据自己电脑配置部署模型规模
模型规模 | 硬盘 | 显存需求 | 内存 | 显卡要求 |
---|---|---|---|---|
1.5B | 1.1 GB | ~2-3 GB | ~4-6 GB | 单卡(RTX 3060/3090/4090) |
7B | 4.7 GB | ~8-12 GB | ~16-24 GB | 单卡(RTX 3090/4090/A100) |
8B | 4.9 GB | ~9-13 GB | ~18-26 GB | 单卡(RTX 3090/4090/A100) |
14B | 9.0 GB | ~16-20 GB | ~32-40 GB | 单卡(A100 40GB) |
32B | 20 GB | ~35-45 GB | ~70-90 GB | 单卡(A100 80GB)或多卡并行 |
70B | 43 GB | ~75-90 GB | ~150-180 GB | 多卡(A100/H100 + NVLink) |
671B | 404 GB | ~700-900 GB | ~1.4-1.8 TB | 多卡集群(A100/H100 + NVLink) |
执行命令本地部署:
python
ollama run deepseek-r1:1.5b
2.deepseek调用

ollama中的服务可以用两种方式启动,默认监听本机localhost 和 端口11434
- 在终端执行命令: ollama serve
- 找到ollama图标,点击运行
2.1 终端调用
python
C:\Users\Administrator>ollama list
NAME ID SIZE MODIFIED
deepseek-r1:1.5b a42b25d8c10a 1.1 GB 4 hours ago
C:\Users\Administrator>ollama run deepseek-r1:1.5b
>>>
>>> 学习python的路径?
<think>
好吧,我现在要学习Python了。我对它还不是很了解,所以得一步一步来。首先,我应该确定我的学习目标是什么。可能是从基础开始,比如语
法和基本概念,然后逐步深入到更高级的内容。
...
>>> /bye

2.2 API调用
对话相关的API有两个:
- /api/generate,用于一次性生成特定文本的场景。
- /api/chat,针对多轮对话上下文生成的回复消息。
接下来,结合案例来使用API来调用,需要安装Python环境 和 requests 模块。
示例:/api/generate
该 API 主要用于基于给定的提示信息生成文本内容。它适用于一次性生成特定文本的场景,不涉及对话上下文的维护.
请求参数
model:要使用的模型名称,例如 `deepseek-r1:1.5b`。
prompt:提示信息,即向模型提供的输入文本,模型会根据该提示生成相应的内容。
可选参数:还可以包含其他参数来控制生成的行为,
如 `temperature`(控制生成文本的随机性,值越大越随机)、`max_tokens`(限制生成文本的最大令牌数)等。
示例请求体
{
"model": "llama2",
"prompt": "写一首关于春天的诗",
"temperature": 0.7,
"max_tokens": 200
}
python
import requests
res = requests.post(
url="http://localhost:11434/api/generate",
json={
"model": "deepseek-r1:1.5b",
"prompt": "写一首关于春天的诗",
"stream": False
}
)
data_dict = res.json()
print(data_dict)
示例:/api/chat
bash
用于模拟对话交互,它会维护对话的上下文,使得模型能够根据之前的对话内容生成合适的回复,实现更自然、连贯的对话效果。
请求参数
model:要使用的模型名称。
messages:一个包含对话消息的列表,每个消息对象包含 role(角色,如 user 表示用户消息,assistant 表示模型回复)和 content(消息内容)。
同样可以包含可选参数来控制生成行为。
示例请求体
{
"model": "deepseek-r1:1.5b",
"messages": [
{"role": "user","content": "你好"}
],
"temperature": 0.8
}
python
import requests
res = requests.post(
url="http://localhost:11434/api/chat",
json={
"model": "deepseek-r1:1.5b",
"messages": [
{"role": "user", "content": "你好"}
],
"stream": False
}
)
data_dict = res.json()
print(data_dict)

可以将对话保存下来,生成对话:
python
import requests
message_list = []
while True:
text = input("请输入:")
user_dict = {"role": "user", "content": text}
message_list.append(user_dict)
res = requests.post(
url="http://localhost:11434/api/chat",
json={
"model": "deepseek-r1:1.5b",
"messages": message_list,
"stream": False
}
)
data_dict = res.json()
res_msg_dict = data_dict['message']
print(res_msg_dict)
message_list.append(res_msg_dict)

2.3 网页交互
搭建一个网站,在内部进行访问使用。
第1步:电脑安装nodejs
https://nodejs.org/zh-cn/download
第2步:下载网站源码
https://github.com/ollama-webui/ollama-webui-lite
下载并解压至任意目录。例如:F:\ollama-webui-lite-main 【不要有中文路径】
第3步:安装依赖并启动网站
打开CMD终端进入项目目录并执行相关命令。
python
C:\Users\Administrator>F:
F:\>cd F:\ollama-webui-lite-main
F:\ollama-webui-lite-main>
F:\ollama-webui-lite-main>npm ci
F:\ollama-webui-lite-main>npm run dev -- --port=9001

访问网站:http://localhost:9001/
3.微信收发信息
wxauto 是一个基于UIAutomation开发的用于实现微信自动化得库。
消息发送:支持发送文字、图片、文件、@群好友、引用消息等功能
聊天记录:可获取好友的聊天记录内容
监听消息:实时获取指定监听好友(群)的新消息
所用开发环境:Python 3.12.6 + PC微信 3.9.12(目前最新)
实现原理:在电脑安装PC微信,基于wxauto自动控制微信界面来实现收发消息等功能。
安装wxauto
python
pip install wxauto==3.9.11.17.5
发消息
python
from wxauto import WeChat
wx = WeChat()
wx.SendMsg(msg="你好呀", who="xxx_888") # 指定人/群发消息
# wx.SendMsg(msg="你好呀", who="群名", at=["张三","张开"]) # 群消息+@指定人
# wx.SendMsg(filepath="F:\xxx.png", who="用户或群")
# wx.SendMsg(filepath=["文件A","文件B","F:\xxx.png"], who="用户或群")
收消息(所有)
python
from wxauto import WeChat
wx = WeChat()
while True:
# 等待接受收到的最新消息
# {"用户昵称A":[消息对象1,消息对象2,消息对象3], "用户昵称B":[消息对象1,消息对象2,消息对象3], }
msg_dict = wx.GetNextNewMessage()
for username, msg_list in msg_dict.items():
print("昵称:", username)
# [消息对象1, 消息对象2, 消息对象3]
for msg in msg_list:
print("\t消息", msg.type, msg.content)
收消息(指定用户)
python
from wxauto import WeChat
wx = WeChat()
wx.AddListenChat(who="运营")
wx.AddListenChat(who="xxx_888")
while True:
# { "用户A聊天窗口":[消息对象1,消息对象2,消息对象3], "用户B聊天窗口":[消息对象1,消息对象2,消息对象3]}
listen_dict = wx.GetListenMessage()
for chat_win,message_list in listen_dict.items():
# 用户或群名
chat_user = chat_win.who
# [消息对象1,消息对象2,消息对象3]
for msg in message_list:
if msg.type != "friend":
continue
print(chat_user, msg.content)
# 回复消息
# chat_win.SendMsg("回复的内容")
time.sleep(5)
👏欢迎贡献代码和改进项目!