一、用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;
}