2025年1月以来,DeepSeek热度越来越高,DeepSeek成本价格低廉,性能卓越,在 AI 行业引起了广泛关注。本地部署在数据安全、性能、定制化、成本、离线可用性和技术自主性方面具有显著优势,本文将详细介绍deepseek如何进行本地化部署。

一:ollama安装

ollama地址:https://ollama.com/

1:ollama介绍

  • Ollama 是一个开源的本地大语言模型运行框架,专为在本地机器上便捷部署和运行大型语言模型(LLM)而设计。 
  • Ollama 支持多种操作系统,包括 macOS、Windows、Linux 以及通过 Docker 容器运行。 
  • Ollama 提供对模型量化的支持,可以显著降低显存要求,使得在普通家用计算机上运行大型模型成为可能。
  • Ollama 支持多种流行的大型语言模型,包括但不限于 DeepSeek、qwen、codegeex4、phi4、llama 等,我们可以根据自己的需求选择合适的模型进行本地运行。

2:ollama安装

(1):windows安装

直接在Ollama官网选择windows安装包下载下来直接安装即可

image.png

(2):linux安装

参考地址:https://github.com/ollama/ollama/blob/main/docs/linux.md

curl -fsSL https://ollama.com/install.sh | sh

设置ollama开机自启动

创建一个ollama用户和用户组

sudo useradd -r -s /bin/false -U -m -d /usr/share/ollama ollama
sudo usermod -a -G ollama $(whoami)

在以下位置创建服务文件/etc/systemd/system/ollama.service

[Unit]
Description=Ollama Service
After=network-online.target

[Service]
ExecStart=/usr/bin/ollama serve
User=ollama
Group=ollama
Restart=always
RestartSec=3
Environment="PATH=$PATH"

[Install]
WantedBy=default.target

设置开机自启

sudo systemctl daemon-reload
sudo systemctl enable ollama

3:ollama运行检测

在浏览器上访问:http://localhost:11434,显示Ollama is running,表示ollama运行成功

image.png

ollama --version

查看安装的ollma版本信息

image.png

二:deepseek模型安装

在ollama官网我们可以找到支持的语言模型,这里我安装的是deepseek-r1:1.5b模型

deepseek-r1 提供多个版本,参数量越大,模型的性能越强大,但也需要更多的存储和计算资源。例如:1.5b 模型参数为15亿/1.1GB,7b 模型参数约为 70亿/4.7GB,14b 模型参数约为 140亿/9GB

ollama run deepseek-r1:1.5b #下载并运行deepseek-r1:1.5b模型

image.png

如上就表示deepseek-r1:1.5b模型安装成功了,这时候我们就是用在命令行中和deepseek进行聊天了

image.png

三:deepseek的API调用介绍

Ollama 提供了一个用于运行和管理模型的 REST API,以下是使用该 API 的示例

参考地址:https://github.com/ollama/ollama/blob/main/docs/api.md

1:文本生成

流式传输请求

curl http://localhost:11434/api/generate -d '{
  "model": "deepseek-r1:1.5b",
  "prompt": "Why is the sky blue?"
}'

无流媒体请求

当流媒体关闭时,一次回复即可收到响应。

curl http://localhost:11434/api/generate -d '{
  "model": "deepseek-r1:1.5b",
  "prompt": "Why is the sky blue?",
  "stream": false
}'

php实现调用API

原生curl调用

//初始化 cURL 会话
$ch = curl_init();

// 设置 URL 和选项
$url = "http://localhost:11434/api/generate";
$data = json_encode([
    "model" => "deepseek-r1:1.5b",
    "prompt" => "Why is the sky blue?",
    "stream" => false
]);

curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));

// 执行 cURL 请求并获取响应
$response = curl_exec($ch);

// 检查是否有错误发生
if (curl_errno($ch)) {
    echo 'Error:' . curl_error($ch);
} else {
    // 输出响应
    echo $response;
}

// 关闭 cURL 会话
curl_close($ch);

使用yiisoft/yii2-httpclient拓展调用

$data = [
    "model" => "deepseek-r1:1.5b",
    "prompt" => "Why is the sky blue?",
    "stream" =>  false
];
$client = new \yii\httpclient\Client();
$response = $client->createRequest()
    ->setMethod('POST') // 请求方式
    ->setUrl('http://localhost:11434/api/generate')
    ->setData($data)
    ->setFormat(\yii\httpclient\Client::FORMAT_JSON)
    ->send();
var_dump(($response->data));

2:与模型聊天

流式传输请求

curl http://localhost:11434/api/chat -d '{
  "model": "deepseek-r1:1.5b",
  "messages": [
    {
      "role": "user",
      "content": "why is the sky blue?"
    }
  ]
}'

无流媒体请求

curl http://localhost:11434/api/chat -d '{
  "model": "deepseek-r1:1.5b",
  "messages": [
    {
      "role": "user",
      "content": "why is the sky blue?"
    }
  ],
  "stream": false
}'

php实现调用API

原生curl调用

//初始化 cURL 会话
$ch = curl_init();

// 设置 URL 和选项
$url = 'http://localhost:11434/api/chat';
$data = [
    'model' => 'deepseek-r1:1.5b',
    'messages' => [
        [
            'role' => 'user',
            'content' => 'why is the sky blue?'
        ]
    ],
    'stream' => false
];

// 将数据编码为 JSON 格式
$jsonData = json_encode($data);

// 设置 cURL 选项
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $jsonData);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));

// 执行 cURL 请求并获取响应
$response = curl_exec($ch);

// 检查是否有错误发生
if (curl_errno($ch)) {
    echo 'Error:' . curl_error($ch);
} else {
    // 输出响应
    echo $response;
}

// 关闭 cURL 会话
curl_close($ch);

使用yiisoft/yii2-httpclient拓展调用

$data = [
    'model' => 'deepseek-r1:1.5b',
    'messages' => [
        [
            'role' => 'user',
            'content' => 'why is the sky blue?'
        ]
    ],
    'stream' => false
];
$client = new \yii\httpclient\Client();
$response = $client->createRequest()
    ->setMethod('POST') // 请求方式
    ->setUrl('http://localhost:11434/api/chat')
    ->setData($data)
    ->setFormat(\yii\httpclient\Client::FORMAT_JSON)
    ->send();
var_dump(($response->data));

huaweichenai
692 声望115 粉丝