首页/新闻资讯/正文详情

Linux 离线部署 Ollama + Dify:用 TaoToken 统一 Key 打通 DeepSeek 本地知识库

发布时间:2026/9/25 13:47:32 来源:云帆数科 栏目:资讯中心
Linux 离线部署 Ollama + Dify:用 TaoToken 统一 Key 打通 DeepSeek 本地知识库
1. 离线环境里为什么还要折腾统一 KeyLinux 纯离线部署 Ollama Dify 这件事真正跑起来的人都知道模型加载只是第一关。Ollama 负责把 DeepSeek 跑在本机Dify 负责把知识库、工作流、对话应用编排起来但一旦你开始接多个模型入口——本地 Ollama、远端 DeepSeek、Claude Code、Coding Agent——Key 就会散落在config.toml、settings.json、环境变量、Dify 模型供应商配置里改一处忘一处排查起来非常痛苦。这篇面向的是在 Linux 内网/离线机器上部署 Ollama Dify、用 DeepSeek 做本地知识库的开发者。核心目标不是教你“怎么装”而是把多工具 Key 分散、配置割裂的问题收敛到一个统一入口TaoToken 的 API 通道。你可以把它理解成一个“Key 中转站”本地 Ollama 继续跑离线模型需要外部模型能力时统一走 TaoToken配置只维护一份。下面按真实落地顺序走先确认 Ollama 离线安装与 DeepSeek 模型注册再装 Docker / docker-compose / Dify最后把 TaoToken 的 Key 写进config.toml和settings.json用 CC Switch 做配置切换并给出离线连通性与知识库检索的验证动作。2. TaoToken 前置统一 Key 与 API 通道准备TaoToken 在这里承担的角色很明确给 Ollama、Dify、Claude Code、Coding Agent 提供统一的 API Key 和接入地址避免每个工具各配一套。官网入口是 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content API 基址是 https://taotoken.net/api 不加 UTM。你需要提前准备的东西一个 TaoToken 账号登录后在控制台创建 API Key记录 API Basehttps://taotoken.net/api确认离线机器能访问 TaoToken 的 API 域名离线环境通常通过内网出口或专线放行不要用任何非合规网络手段本地 Ollama 已能跑 DeepSeekDify 已能启动。控制台和 Key 管理入口控制台https://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_contentconsoleutm_campaignrewriteAPI Keyshttps://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi-keysutm_campaignrewrite接入文档https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewrite模型对话https://taotoken.net/chat?utm_sourcetaotoken_aicg_blog_endutm_contentmodel-chatutm_campaignrewriteCoding Planhttps://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcoding-planutm_campaignrewriteClaude Code Anthropic 接入https://taotoken.net/claude-code-anthropic?utm_sourcetaotoken_aicg_blog_endutm_contentclaude-code-anthropicutm_campaignrewrite注意TaoToken 是合规的 API 接入通道不要把它当成任何形式的非法中转。离线环境里如果无法直连请走企业内网合规出口。3. Ollama 离线安装与 DeepSeek 模型注册3.1 确认架构并准备离线包先在目标 Linux 机器上确认 CPU 架构lscpu uname -mx86_64 选ollama-linux-amd64.tgzaarch64/arm64 选ollama-linux-arm64.tgz。把安装包和官方install.sh一起上传到内网服务器同一目录。3.2 改造 install.sh 走本地文件官方脚本默认会去ollama.com下载离线环境必须改成读本地 tgz。关键改动是注释掉远程下载段新增本地安装段# 注释掉原来的 curl 下载逻辑 # curl --fail --show-error --location --progress-bar \ # https://ollama.com/download/ollama-linux-${ARCH}.tgz${VER_PARAM} | \ # $SUDO tar -xzf - -C $OLLAMA_INSTALL_DIR # 新增从本地 tgz 安装 LOCAL_OLLAMA_TGZ./ollama-linux-${ARCH}.tgz${VER_PARAM} if [ -f $LOCAL_OLLAMA_TGZ ]; then status Installing from local file $LOCAL_OLLAMA_TGZ $SUDO tar -xzf $LOCAL_OLLAMA_TGZ -C $OLLAMA_INSTALL_DIR BUNDLE1 if [ ! -e $BINDIR/ollama ]; then $SUDO ln -sf $OLLAMA_INSTALL_DIR/ollama $BINDIR/ollama fi else echo Error: The local file $LOCAL_OLLAMA_TGZ does not exist. exit 1 fi执行安装chmod x install.sh sed -i s/\r$// install.sh # 防止 Windows 换行导致解释器错误 sh install.sh看到The Ollama API is now available at 127.0.0.1:11434和Install complete就说明服务已起来。检查systemctl status ollama curl http://127.0.0.1:11434/api/tags3.3 DeepSeek 模型离线注册在可联网机器上先拉一次模型拿到 blob 文件ollama run deepseek-r1:32b模型文件在/usr/share/ollama/.ollama/models/blobs按大小找到对应 sha256复制成 ggufcd /usr/share/ollama/.ollama/models/blobs ls -lhrt cp sha256-xxxx deepseek-r1-32b.gguf导出 Modelfile 并改 FROM 指向本地 ggufollama show deepseek-r1:32b --modelfile Modelfile # 把 FROM 行改成 # FROM /opt/ollama/deepseek-r1-32b/deepseek-r1-32b.gguf把 gguf 和 Modelfile 上传到内网/opt/ollama/deepseek-r1-32b/注册模型cd /opt/ollama/deepseek-r1-32b/ ollama create deepseek-r1:32b -f Modelfile ollama listollama list能看到deepseek-r1:32b即注册成功。4. Docker、docker-compose 与 Dify 离线安装4.1 Docker 离线安装上传docker-26.1.3.tgz后tar -zxvf docker-26.1.3.tgz cp docker/* /usr/bin/新建/etc/systemd/system/docker.service写入[Unit] DescriptionDocker Application Container Engine Documentationhttps://docs.docker.com Afternetwork-online.target firewalld.service Wantsnetwork-online.target [Service] Typenotify ExecStart/usr/bin/dockerd ExecReload/bin/kill -s HUP $MAINPID LimitNOFILEinfinity LimitNPROCinfinity TimeoutStartSec0 Delegateyes KillModeprocess Restarton-failure StartLimitBurst3 StartLimitInterval60s [Install] WantedBymulti-user.target启动chmod x /etc/systemd/system/docker.service systemctl daemon-reload systemctl enable docker.service systemctl start docker docker version4.2 docker-compose 离线安装把docker-compose-linux-x86_64上传后cp -f docker-compose-linux-x86_64 /usr/local/bin/docker-compose chmod x /usr/local/bin/docker-compose docker-compose version4.3 Dify 离线部署Dify 官方仓库的docker目录包含docker-compose.yaml和.env.example。离线机器上git clone https://github.com/langgenius/dify.git # 或在联网机下载后拷贝 cd dify/docker cp .env.example .env docker-compose up -d docker-compose ps默认 Web 入口是http://内网IP/install首次进入设置管理员账号。Dify 的模型供应商配置里Ollama 填http://内网IP:11434外部模型统一走 TaoToken。5. 用 TaoToken 统一 Keyconfig.toml 与 settings.json 骨架5.1 config.toml 骨架很多 CLI 工具含 Claude Code 类接入用config.toml管理模型通道。统一走 TaoToken 的骨架如下# ~/.config/taotoken/config.toml default_provider taotoken [providers.taotoken] api_base https://taotoken.net/api api_key sk-你的TaoTokenKey model deepseek-chat [providers.ollama_local] api_base http://127.0.0.1:11434 model deepseek-r1:32b [profiles.local_kb] provider ollama_local description 离线知识库检索走本地 DeepSeek [profiles.cloud_reason] provider taotoken description 复杂推理/长文走 TaoToken 统一通道5.2 settings.json 骨架Dify 或编辑器插件侧常用settings.json{ model_providers: { taotoken: { base_url: https://taotoken.net/api, api_key: sk-你的TaoTokenKey, models: [deepseek-chat, claude-sonnet] }, ollama: { base_url: http://127.0.0.1:11434, models: [deepseek-r1:32b] } }, default_provider: taotoken, knowledge_base: { embedding_provider: ollama, embedding_model: nomic-embed-text, retrieval_top_k: 5 } }5.3 CC Switch 切换配置CC Switch 用来在多个 profile 之间快速切换避免手改文件。典型用法# 列出可用 profile cc-switch list # 切到本地知识库 profile cc-switch use local_kb # 切到 TaoToken 统一通道 cc-switch use cloud_reason # 查看当前生效配置 cc-switch current把local_kb和cloud_reason分别指向 Ollama 和 TaoToken日常检索走本地复杂任务走统一 Key配置只维护一份。6. 验证请求与知识库检索6.1 验证 TaoToken 通道curl -s https://taotoken.net/api/v1/chat/completions \ -H Authorization: Bearer sk-你的TaoTokenKey \ -H Content-Type: application/json \ -d { model: deepseek-chat, messages: [{role: user, content: 用一句话说明本地知识库的作用}] }返回choices[0].message.content有内容即通道正常。6.2 验证 Ollama 本地模型curl -s http://127.0.0.1:11434/api/generate \ -d {model:deepseek-r1:32b,prompt:你好,stream:false}6.3 验证 Dify 知识库检索在 Dify 里新建知识库上传一份 PDF/Markdown分段设置 500/50embedding 选 Ollama 的nomic-embed-text。建好后在“召回测试”里输入问题能看到命中分段和相似度分数。再建一个 Chatflow把知识库挂到 LLM 节点前提问后回答里应引用文档内容。7. 本篇常见错排查Ollama 安装报/bin/sh^M解释器错误Windows 换行导致执行sed -i s/\r$// install.sh后重跑。ollama create找不到 ggufModelfile 里 FROM 必须是绝对路径且 gguf 文件权限对 ollama 用户可读chmod 644后重试。Dify 连不上 Ollama容器内127.0.0.1指向容器自身必须填宿主机内网 IP并确认 11434 端口对容器网段开放。TaoToken 请求 401Key 复制时带了空格或用了控制台登录态而非 API Key。到 API Keys 页面重新生成。CC Switch 切换后不生效确认cc-switch current输出与预期一致部分工具需重启进程才读取新配置。知识库召回为空embedding 模型和检索模型不一致或分段过大导致语义被稀释调小分段再测。8. 下一步把统一 Key 用起来离线 Ollama 保证数据不出内网Dify 负责知识库编排TaoToken 把外部模型 Key 收敛成一份配置。接下来你可以按场景分流排障和接入细节看接入文档 https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewrite Key 管理去 https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi-keysutm_campaignrewrite 想先验证模型效果直接开 https://taotoken.net/chat?utm_sourcetaotoken_aicg_blog_endutm_contentmodel-chatutm_campaignrewrite 长期编码和 Agent 任务用 https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcoding-planutm_campaignrewrite 。配置骨架已经给全剩下的就是把你的内网 IP 和 Key 填进去跑一遍第 6 节的验证命令。

相关推荐

【QT】QT项目修改QT设计师界面类类名和文件名的方法:TaoToken 统一 Key 接入 Qt Creator 的配置骨架
【QT】QT项目修改QT设计师界面类类名和文件名的方法:TaoToken 统一 Key 接入 Qt Creator 的配置骨架

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 13:47:32

边缘智能计算与智能边缘计算:概念辨析、技术栈对比与部署实践
边缘智能计算与智能边缘计算:概念辨析、技术栈对比与部署实践

1. 两个词序颠倒的概念,到底差在哪边缘智能计算和智能边缘计算,这两个词你大概率在技术方案书、产品发布会或者招聘JD里都刷到过。我第一次同时看到它们是在一份架构评审文档里,当时团队里两个人为此争了半小时——一个说这是同一件事的两种叫… · 2026/9/25 13:47:32

AI Agent如何落地汽车研发与智能制造:Skill、Memory与MCP实战
AI Agent如何落地汽车研发与智能制造:Skill、Memory与MCP实战

1. 从CNCC2026聊起:AI Agent为什么必须走进工业深水区今年CNCC2026上有个趋势特别明显,就是AI Agent的讨论重心已经从“能不能跑通一个Demo”转向了“能不能在工业场景里稳定干活”。我前后参与了几个汽车研发和智能制造相关的项目,对这个转变… · 2026/9/25 13:47:26

从 PyTorch 模型到多设备本地推理:OpenVINO 快速上手指南
从 PyTorch 模型到多设备本地推理:OpenVINO 快速上手指南

从 PyTorch 模型到多设备本地推理:OpenVINO 快速上手指南 【免费下载链接】openvino OpenVINO™ is an open source toolkit for optimizing and deploying AI inference 项目地址: https://gitcode.com/GitHub_Trending/op/openvino OpenVINO 是 Intel 开源… · 2026/9/25 17:54:33

手写ReAct循环:不靠框架,用while循环搭建Agent推理核心
手写ReAct循环:不靠框架,用while循环搭建Agent推理核心

还在纠结要不要给项目引入 Agent 的时候,我第一个跳出来的念头就是:别给项目加一堆东西,先把你头脑里的推理过程翻译成一个循环。ReAct 这个名字一旦出现,网上搜出来的全是框架、库、Agent 中间件,搞得人以为这是什么重… · 2026/9/25 17:54:09

YOLOV5自动驾驶小车8类交通指示牌数据集与训练部署实践
YOLOV5自动驾驶小车8类交通指示牌数据集与训练部署实践

简介:面向智能小车赛道自动驾驶场景,提供了一套已标注的交通指示牌目标检测数据集,按YOLOv5目录格式整理完毕,可直接用于模型训练和验证,免去自行采集与标注图像的繁琐过程。整套压缩包共2000个文件,以txt标… · 2026/9/25 17:54:03

Buildah 入门实战:从 scratch 到 Dockerfile,构建可移植 OCI 镜像的完整工作流
Buildah 入门实战:从 scratch 到 Dockerfile,构建可移植 OCI 镜像的完整工作流

云原生 【免费下载链接】buildah A tool that facilitates building OCI images. 项目地址: https://gitcode.com/gh_mirrors/bu/buildah 点击查看 免费下载 本文基于 Buildah 官方入门教程(docs/tutorials/01-intro.md)整理并深入扩展&… · 2026/9/25 17:54:03

Atlas 300V 24G推理卡如何高效部署YOLO目标检测
Atlas 300V 24G推理卡如何高效部署YOLO目标检测

1. Atlas 300V 24G的真实定位:它是一张推理卡,不是训练卡最近在群里看到好几个朋友在问同一个问题:“Atlas 300V 24G是运算加速卡吗?”还有人直接拿它对标GPU跑训练,问能不能用来部署YOLO。这个问题其实问到了很多刚接… · 2026/9/25 17:54:03

Atlas 300V实战:CANN部署与YOLO推理全流程
Atlas 300V实战:CANN部署与YOLO推理全流程

1. 拿到Atlas 300V,先搞清楚它到底是一张什么卡如果你最近在搞边缘AI或者服务器端推理,国内市场的视野里大概绕不开昇腾系的产品。我第一次拿到Atlas 300V 24G的时候,心里其实是有个问号的——这玩意儿到底算不算一张“运算加速卡”&#xff… · 2026/9/25 17:53:57

数值优化(Numerical Optimization)学习系列-03-共轭梯度方法(Conjugate Gradient)
数值优化(Numerical Optimization)学习系列-03-共轭梯度方法(Conjugate Gradient)

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:31

创维E900V22D刷机全攻略:S905L3SB芯片兼容性解析与救砖实战
创维E900V22D刷机全攻略:S905L3SB芯片兼容性解析与救砖实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:31

MQTT协议原理与Broker服务器搭建实战:从Mosquitto到EMQX
MQTT协议原理与Broker服务器搭建实战:从Mosquitto到EMQX

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:37

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码