- xiao9di 的博客
DeepSeek本地布署
- 2025-2-7 14:36:39 @
一、用Ollama下载模型
在ollama的官网(https://ollama.com)下载对应平台的软件,安装好后, 右下角会看到可爱的羊驼的图标。
在ollama官网左上上第三个Models中找到DeepSeek模型。 进入这个界面后,点击下拉菜单,可以看到多个版本。数字越大, 要求的显存也越大, 如果是集成显卡, 可以选第一个1.5b。
ollama -v //查看版本,测试是否安装成功
ollama list//查看安装的模型列表
ollama rm 模型名 //删除已经安装的模型
复制右边对应的命令, 如ollama run deepseek-r1:1.5b
在Windows平台, 按win+R键, 打开运行,输入cmd
, 打开终端, 粘贴上面的命令。 然后开始拉取相应的大模型。
完成后就可以和DeepSeek对话了。 但这个界面是文字界面, 对于图片,公式等的显示不友好。
下面我们来装一个美观的图文交互界面:
二、安装Docker
docker官网(https://www.docker.com)
三、安装Open WebUI
网址(https://github.com/open-webui/open-webui)
找到If Ollama is on your computer, use this command
这一项,点击右边的按钮复制这个指令:
docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main
再次打开命令行窗口,黏贴刚才复制的命令,安装Open WebUI。
安装完成后,你会发现你的Docker界面里多了Open WebUI的条目。
四、在图形化界面下运行DeepSeek
还记得之前装好的Ollama吗?你需要在命令行窗口里再次执行:ollama run deepseek-r1:1.5b
保持命令行窗口开启,然后点击Docker桌面端。
在docker中, 找到WebUI, 点击端口,打开网页,网址( http://localhost:3000/ )。
首次使用,会打开一个网页,点击“开始使用”: 把你之前注册的账号名字密码填进去,登录 这里点击“确认,开始使用”: 图形界面的DeepSeek-R1,准备就绪,随时待命!
原教程参考网址:
https://mp.weixin.qq.com/s/JUe73lGnnXv-13B8oME_Rg
//DS判断素数的函数
#include <cmath>
bool isPrime(int n) {
if (n <= 1) {
return false;
}
if (n <= 3) {
return true;
}
if (n % 2 == 0 || n % 3 == 0) {
return false;
}
for (int i = 5; i * i <= n; i += 6) {
if (n % i == 0 || n % (i + 2) == 0) {
return false;
}
}
return true;
}
//DS埃氏筛
#include <iostream>
#include <cstring>
using namespace std;
bool* isPrime = new bool[1000000+1];
void sieve(int n) {
memset(isPrime, true, sizeof(bool) * (n+1));
isPrime[0] = isPrime[1] = false;
for (int i = 2; i * i <= n; ++i) {
if (isPrime[i]) {
for (int j = i * i; j <= n; j += i) {
isPrime[j] = false;
}
}
}
delete[] isPrime;
}
int main() {
int n = 1000000;
sieve(n);
int cnt = 0;
for (int i = 2; i <= n; ++i) {
if (isPrime[i]) {
cnt++;
}
}
cout << cnt << endl;
return 0;
}
//DS 欧拉线性筛
#include <vector>
#include<iostream>
using namespace std;
int main() {
int n = 100000000;//8次方, 大概6s
if (n < 2) {
return 0;
}
vector<bool> is_prime(n + 1, true);
is_prime[0] = is_prime[1] = false;
vector<int> primes;
for (int i = 2; i <= n; ++i) {
if (is_prime[i]) {
primes.push_back(i);
for (int j = i * 2; j <= n; j += i) {
is_prime[j] = false;
}
}
}
int cnt = 0;
for (int p : primes) {
cnt++;
//cout << p << " ";
}
cout << cnt << endl;
return 0;
}