Skip to content
 
📑标签
🏷python 🏷env 🏷ollama 🏷AIGC

🗒初墨

🍊Hello,各位好,我是面包!

2025年春节,国产大模型DeepSeek-R1凭借“推理能力吊打GPT-4”的传说火遍全网,但官方服务器被挤爆的惨状让网友直呼“用了个寂寞”。与其苦等云端响应,不如将这颗“AI大脑”搬回家!

本文部署的1.5b模型属于最低级的模型,其性能远远不如deepseek的v3满血版,可根据自己的电脑配置安装相应的模型版本

一、召唤AI管家-Ollama

访问ollama官网,点击Download↓,然后选择Windows安装ollama

📖FAQS

Q1:下载安全警告

若下载时出现*Setup.exe可能会损害你的设备,是否仍要保留?的报错时,选择保留即可。

Q2:下载太慢
  1. 进入Github的ollama,右键复制最新版的Setup.exe链接

  2. 然后进入Github加速网站,粘贴链接进行下载(可能有时效性)

验证ollama下载

sh
ollama --version

看到版本号说明成功召唤AI管家!

sh
ollama version is 0.5.7

二、搭建模型地基-部署deepseek-r1大模型

ollama官网搜索deepseek-r1

安装1.5b大模型

sh
ollama run deepseek-r1:1.5b

检查是否安装成功

sh
ollama

运行1.5b模型

sh
ollama run deepseek-r1:1.5b

进入对话模式

sh
>>> 你的问题
<think>
深度思索
</think>
deepseek的回答

📖FAQS

Q1:AI复读机模式

您好!我是由中国的深度求索(DeepSeek)公司开发的智能助手DeepSeek-R1。有关模型和产品的详细内容请参考官方文档……

sh
>>> 科学是什么?
<think>

您好!我是由中国的深度求索(DeepSeek)公司开发的智能助手DeepSeek-R1。有关模型和产品的详细内容请参考官方文档。如果您
有任何关于科学的问题或需要帮助,请随时告诉我,我会尽力提供相关信息或建议。

希望这些建议对您有帮助。
如果你还想了解其他方面的知识,请随时告诉我!

解决方法

  1. 重启ollama
  2. 避免提出**是什么类似格式的提问

三、打造AI控制台-Chatbox本地可视化应用

进入Chatbox AI官网安装chatbox AI

Chatbox AI 是一款 AI 客户端应用和智能助手,支持众多先进的 AI 模型和 API

然后进入设置,选择API和模型

小纸条

API类型:Ollama 模型选择:deepseek-r1:1.5b

聊天区域展示

四、驯服满血神兽-部署deepseek671B满血版(暂未跑通)

安装wget

进入https://eternallybored.org/misc/wget/网站下载wget的zip文件

下载hfd

sh
wget https://hf-mirror.com/hfd/hfd.sh
chmod a+x hfd.sh

环境变量

linux

sh
export HF_ENDPOINT=https://hf-mirror.com

windows:(powershell)

sh
$env:HF_ENDPOINT = "https://hf-mirror.com"

下载模型

sh
./hfd.sh gpt2

下载数据集

sh
./hfd.sh wikitext --dataset
sh
./hfd.sh 模型名称 --tool aria2c -x 16
sh
./hfd.sh unsloth/Deepseek-R1-GGUF --include Deepseek-R1-Q4_K_M/*

五、打造专属AI军火库-使用 Python 调用 R1-API

1. 申请API-以英伟达的deepseek-API为例

访问NVIDIA Build 平台,登录你的NVIDIA账号,然后搜索deepseek-r1,其实一般在首页第一个就是deepseek-r1的大模型了,点击进入,

然后记录你的url地址model名称,获取你的API密钥

创建密钥

2. API调用代码

安装requests

sh
pip install requests

# 或

pip3 install requests

运行代码

py
# deepseek.py 

import requests

API_KEY = "sk-你的密钥"  # 1.写你的 API Key

url = "https://api.deepseek.com/chat/completions" #2.修改成你的API获取url,后两级一般不用改
headers = {
    "Content-Type": "application/json",
    "Authorization": f"Bearer {API_KEY}"
}

data = {
    "model": "deepseek-reasoner",  # 3.指定使用模型
    "messages": [
        {"role": "system", "content": "你是一个专业的助手"},
        {"role": "user", "content": "你是谁?"}
    ],
    "stream": False  # 关闭流式传输
}

response = requests.post(url, headers=headers, json=data)

if response.status_code == 200:
    result = response.json()
    print(result['choices'][0]['message']['content'])
else:
    print("请求失败,错误码:", response.status_code)

多轮对话

py
messages = [
    {"role": "system", "content": "你是一位诗人"},
    {"role": "user", "content": "写一首关于春天的诗"},
    {"role": "assistant", "content": "春风拂面柳丝长..."},
    {"role": "user", "content": "请继续补充第二段"}
]

流式传输模式

py
data["stream"] = True

response = requests.post(url, headers=headers, json=data, stream=True)

for line in response.iter_lines():
    if line:
        decoded_line = line.decode('utf-8')
        print(decoded_line)
py
# deepseek.py 

import requests

# 填写你的 API Key
API_KEY = "sk-你的 API Key"  

url = "https://api.deepseek.com/chat/completions"
headers = {
    "Content-Type": "application/json",
    "Authorization": f"Bearer {API_KEY}"
}

data = {
    "model": "deepseek-chat",  # 指定使用 R1 模型(deepseek-reasoner)或者 V3 模型(deepseek-chat)
    "messages": [
        {"role": "system", "content": "你是一个专业的助手"},
        {"role": "user", "content": "你是谁?"}
    ],
    "stream": False  # 关闭流式传输
}

data["stream"] = True

response = requests.post(url, headers=headers, json=data, stream=True)

for line in response.iter_lines():
    if line:
        decoded_line = line.decode('utf-8')
        print(decoded_line)

📖FAQS

Q1:如何区分 V3 和 R1 模型?

以deepseek的官方API为例:

V3:model: "deepseek-chat"

R1:model: "deepseek-reasoner"

本质上是model的名称区别,但哪怕是同一个模型在不同服务商上的API model名称也不一样

Q2:出现 401 错误?

检查 API Key 是否填写正确 确认密钥未过期

Q3:出现「No module named 'requests'」?

检查是否:

在正确的终端执行了 pip install requests

VSCode 使用的是正确的 Python 解释器(见上文)

Q4:出现 requests.exceptions.JSONDecodeError: Expecting value: line 1 column 1?

嗯……,跟“服务器繁忙”一个道理,可能用的人太多,响应失败了。

错误提示 Expecting value: line 1 column 1 (char 0) 表示 json() 方法期望收到的是一个有效的 JSON 数据,但实际收到的内容为空。这可能是因为 API 没有返回数据,或者返回的是一个空的响应体。

Q5:为什么启用流式输出后一直出现 keep-alive?

嗯……,跟“服务器繁忙”一个道理,可能用的人太多,所以一直处于长连接状态。

📕文渊阁