首页 快三官方开奖有假介绍 产品展示 新闻动态
  • 首页
  • 快三官方开奖有假介绍
  • 产品展示
  • 新闻动态
  • 新闻动态

    你的位置:快三官方开奖有假 > 新闻动态 > Deepseek本地部署详细指南!从 Ollama 到个人知识库应用

    Deepseek本地部署详细指南!从 Ollama 到个人知识库应用

    发布日期:2025-03-07 15:12    点击次数:137

    丨作者:lushen 每个人都能拥有专属 AI 助手,安全高效,开启智能化知识管理新体验。

    系统介绍

    mbp pro

    图片

    一、Ollama 安装与配置

    1.1 跨平台安装指南

    Ollama 作为本地运行大模型的利器,支持三大主流操作系统:

    # macOS一键安装# Windows用户访问官网 https://ollama.com/download 下载安装包# Linux安装(Ubuntu/Debian为例)curl -fsSL https://ollama.com/install.sh | sudo bashsudo usermod -aG ollama $USER  # 添加用户权限sudo systemctl start ollama    # 启动服务

    1.2 服务验证

    ollama -v# 输出ollama version is 0.5.7
    出现上述则表示安装成功,可浏览器访问http://localhost:11434/验证二、Deepseek 模型部署2.1 模型下载与加载

    以 deepseek r1 模型为例:

    访问https://ollama.com/library/deepseek-r1,默认为 7b 模型,如需其他模型,可以在当前页搜索所需模型

    模型详情页复制安装命令ollama run deepseek-r1 

    安装完成后在终端执行:

    ollama run deepseek-r1# 执行后pulling manifestpulling 96c415656d37... 100% ▕██████████████▏ 4.7 GBpulling 369ca498f347... 100% ▕██████████████▏ 387 Bpulling 6e4c38e1172f... 100% ▕██████████████▏ 1.1 KBpulling f4d24e9138dd... 100% ▕██████████████▏ 148 Bpulling 40fb844194b2... 100% ▕██████████████▏ 487 Bverifying sha256 digestwriting manifestsuccess> > > Send a message (/? for help)> > > `> > > 当看到上述提示,即可开始模型对话。

    mac 后台标识

    图片

    win 后台标识

    见任务栏托盘区

    2.2 模型验证测试

    运行交互式对话测试:

    请用Python写一个快速排序算法

    当看到完整代码输出,说明模型已成功加载。

    硬件要求建议:

    最低配置:16GB 内存 + 8GB 显存

    推荐配置:32GB 内存 + 16GB 显存(RTX 3060 级别)

    三、安装交互 ui3.1 chatbox

    下载地址chatboxai.app

    配置本地模型

    进入设置页面

    图片

    选择 ollama api (本地部署)

    配置本机地址,默认http://127.0.0.1:11434

    图片

    至此即可开启问答模式

    3.2 Page Assist 浏览器插件 

    安装地址Page Assist - 本地 AI 模型的 Web UI

    安装后简单配置即可开启问答模式,功能丰富,可以参考官方引导

    本插件支持本地知识库建设,因本次使用 Dify 建设,在此不赘述。

    图片

    四、Dify 知识库搭建

    参考文档地址Docker Compose 部署

    4.1 环境准备

    1.拉取源代码,准备环境

    # mac os# 克隆 Dify 源代码至本地环境。git clone https://github.com/langgenius/dify.git# 进入 Dify 源代码的 Docker 目录cd dify/docker# 复制环境配置文件cp .env.example .env

    2.启动 Docker 容器(需要先安装 D ocker)

    docker compose up -d# 如果版本是 Docker Compose V1,使用以下命令:docker-compose up -d# 正常返回[+] Running 74/9 ✔ db Pulled                                                    834.2s ✔ sandbox Pulled                                              1120.7s ✔ weaviate Pulled                                              526.5s ✔ web Pulled                                                   174.0s ✔ redis Pulled                                                 893.7s ✔ api Pulled                                                  2919.8s ✔ worker Pulled                                               2919.8s ✔ ssrf_proxy Pulled                                            494.0s ✔ nginx Pulled                                                 184.7s[+] Running 11/11 ✔ Network docker_default             Created                     0.0s ✔ Network docker_ssrf_proxy_network  Created                     0.0s ✔ Container docker-db-1              Started                     1.1s ✔ Container docker-web-1             Started                     1.1s ✔ Container docker-redis-1           Started                     1.1s ✔ Container docker-sandbox-1         Started                     1.1s ✔ Container docker-weaviate-1        Started                     1.1s ✔ Container docker-ssrf_proxy-1      Started                     1.1s ✔ Container docker-api-1             Started                     0.7s ✔ Container docker-worker-1          Started                     0.7s ✔ Container docker-nginx-1           Started                     0.8s

    在此阶段可能会遇到下列失败的情况,可以尝试切换源解决 我当时的条件

    修改配置后重启 docker

    办公网环境下docker compose up -d[+] Running 9/9 ✘ web Error        context canceled                             14.9s ✘ redis Error      context canceled                             14.9s ✘ db Error         context canceled                             14.9s ✘ nginx Error      context canceled                             14.9s ✘ ssrf_proxy Error context canceled                             14.9s ✘ sandbox Error    Head 'https://registry-1.do...               14.9s ✘ api Error        context canceled                             14.9s ✘ worker Error     context canceled                             14.9s ✘ weaviate Error   context canceled                             14.9sError response from daemon: Head 'https://registry-1.docker.io/v2/langgenius/dify-sandbox/manifests/0.2.10': Get 'https://auth.docker.io/token?scope=repository:langgenius/dify-sandbox:pull&service=registry.docker.io': EOF

    解决方法

    右上角齿轮图标进入设置 -> Docker engine,在配置中添加

    写入以下内容 ocker)

    {  // ...  'registry-mirrors': [    'https://docker.hpcloud.cloud',    'https://docker.m.daocloud.io',    'https://docker.unsee.tech',    'https://docker.1panel.live',    'http://mirrors.ustc.edu.cn',    'https://docker.chenby.cn',    'http://mirror.azure.cn',    'https://dockerpull.org',    'https://dockerhub.icu',    'https://hub.rat.dev'  ]}
    4.2 Dify 创建聊天

    访问http://localhost/(默认 80 端口) 进入 dify

    首次进入初始化设置账号密码

    点击 Dify 平台右上角头像 → 设置 → 模型供应商,选择 Ollama,轻点“添加模型”。

    图片

    图片

    在配置 url 时,因为是 docker 服务,http://localhost:11434 存在无法访问的情况,可以尝试http://host.docker.internal:11434

    4.至此,可以开始创建应用,在主页选择 全部 -> 创建空白应用 -> 填入应用信息即可

    图片

    4.3 Dify 知识库创建

    主页选择 知识库 -> 创建知识库 -> 上传知识 -> 等待处理完成

    图片

    进入聊天应用,选择刚才创建的知识库,即可开始带有私域知识的沟通

    图片

    五、应用测试5.1 翻译场景

    1.本地客户端具有部分国际化测试文件需要执行翻译,格式示例如下,多层嵌套的 json 格式,value 为string类型。需要利用大模型对整个 json 文件进行翻译,将中文翻译为英文后按原格式返回

    // zh.json{  'window': {    'willUnload': {      'title': '确认刷新当前页面吗?',      'message': '系统可能不会保存您做的更改',      'unload_bt': '重新加载',      'cancel_bt': '取消'    }  }}ocker)

    2.实际应用测试,以deepseek-r1:7b/14b模型做测试。得到结果如下

    3.执行脚本trans.js 

    const fs = require('fs');const axios = require('axios');// 1. 读取本地JSON文件const readJsonFile = (filePath) => {  return new Promise((resolve, reject) => {    fs.readFile(filePath, 'utf8', (err, data) => {      if (err) {        reject(err);      } else {        resolve(JSON.parse(data));      }    });  });};const MODEL = 'deepseek-r1:14b';// 2. 调用本地大模型接口进行翻译const translateText = async (text, key) => {  let response;  try {    console.time(`run worker ${key}`);    response = await axios.post('http://localhost:11434/api/generate', {      // model: 'deepseek-r1:7b',      model: MODEL,      prompt: `有部分客户端国际化的配置文件,内容为json格式,需要翻译,要求按步骤进行翻译:      1. 将中文翻译为英文      2. 保持原有json格式不变,将value替换成翻译后的文本      3. 你始终以合法的JSON格式响应,返回结果格式如: {'key1':'翻译后的文本1','key2':'翻译后的文本2'},直接返回结果,不需要符号包裹      配置文件      '''${JSON.stringify(text)}'''`,      stream: false,    });    console.timeEnd(`run worker ${key}`);    const splitText = '</think>';    const startIndex = response.data.response.indexOf(splitText);    const result = response.data.response      .slice(startIndex + splitText.length)      .trim()      .replace(/<<+|>>+/g, '');    // console.log('response.data.response:', response.data.response, JSON.parse(result), result)    return JSON.parse(result); // 假设接口返回的翻译结果在response.data.translatedText中  } catch (error) {    console.error('翻译出错:', key);    return translateText(text, key); // 如果翻译失败,返回原文  }};// 3. 并行翻译逻辑(手动控制并发)const translateJson = async (jsonData, concurrency = 5) => {  const entries = Object.entries(jsonData);  const translatedData = {};  let currentIndex = 0; // 当前处理的任务索引  // 定义工作线程:每个线程不断处理下一个任务  const worker = async () => {    while (currentIndex < entries.length) {      const index = currentIndex++;      if (index >= entries.length) break; // 所有任务已完成      const [key, value] = entries[index];      try {        translatedData[key] = await translateText(value, key);      } catch (error) {        translatedData[key] = value; // 保留原文      }    }  };  // 启动指定数量的工作线程  const workers = Array(concurrency).fill(null).map(worker);  await Promise.all(workers); // 等待所有线程完成  const result = {};  // 保持原有顺序  entries.forEach(([key, value]) => {    result[key] = translatedData[key] 
    

    上一篇:itch 一周游戏汇:1月20日

    下一篇:没有了