手撸一个 deepseek 本地联网版且私有化部署(ollama + deepseek + langchain + searxXNG + flask)

前言

之前写过一篇 openwebui 和博查结合的 deepseek 联网教程,但是考虑到灵活性、安全性和成本问题,还是决定自己搭一个全部本地私有化的,用 langchain 框架进行开发,通篇代码都在教程里,不夹私货~

一、准备环境

  1. ollama,用于在本地运行、部署和管理大型语言模型(LLMs)。
  2. deepseek 模型,本文用的 deepseek-r1:14b。
  3. searxXNG,免费的互联网搜索引擎,用户既不被跟踪也不被分析。
  4. langchain,大语言模型应用程序的开发框架,主要 python 实现。
  5. flask,python编写的web应用框架,本文主要用来对外提供api。

二、ollama 及 deepseek 部署安装

之前写过类似教程,这里就不在写了,传送门:

保姆级教程 本地部署 deepseek + ollama + open-webui + cuda + cudnn

ollama导出导入模型 解决下载模型慢问题 deepseek + ollama + Cherry Studio 客户端(离线部署)

三、searxXNG 部署安装

  1. 基于 docker 安装,先去下载需要的配置文件,地址:https://github.com/searxng/searxng-docker
  2. 下载完,进到根目录,修改以下内容:

① 修改 docker-compose.yaml 的端口,开放外网访问(公网服务器还是要限制下,白名单或者代理之类的):

在这里插入图片描述
② 修改 Caddyfile 文件的默认 80 和 443 端口,Caddy除了应用的端口外,默认还会监听 80 和 443,为了防止和别的软件冲突,这里还是修改下:
在这里插入图片描述
③ 应用端口可以看自己情况调整,保持和 docker-compose 里面的一致:
在这里插入图片描述
④ 修改 searxng 目录下的 settings.yml 的内容

  • secret_key 随便改一个
  • limiter 改为 false,否定通过 api 会访问不了
  • 添加 json 格式,方面 api 调用
# see https://docs.searxng.org/admin/settings/settings.html#settings-use-default-settings
use_default_settings: true
server:
  # base_url is defined in the SEARXNG_BASE_URL environment variable, see .env and docker-compose.yml
  secret_key: "admin@123456"  # change this!
  limiter: false  # can be disabled for a private instance
  image_proxy: true

search:  
  formats:
  - html
  - json

ui:
  static_use_hash: true
redis:
  url: redis://redis:6379/0

⑤ 构建并启动镜像,执行命令:

docker-compose up -d

访问localhost:8080,如下:
在这里插入图片描述

在网页上要想正常使用,还需在配置下,点击右上角首选项:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

搜索引擎好多国外的,国内用不了,所以只要勾选国内能用的,如下:

在这里插入图片描述
在这里插入图片描述

配置完之后点保存就可以正常使用了

在这里插入图片描述
在这里插入图片描述

三、开发环境准备

本文使用的 conda 管理 python 环境,创建一个 langchain 的虚拟机环境

conda create -n langchain python=3.11

使用 langchain 虚拟环境

conda activate langchain

切换pip镜像源

pip config set global.index-url https://mirrors.aliyun.com/pypi/simple

本文用的到依赖都在存在 requirements.txt 里面,如下:

aiohappyeyeballs==2.4.6
aiohttp==3.11.12
aiosignal==1.3.2
annotated-types==0.7.0
anyio==4.8.0
attrs==25.1.0
beautifulsoup4==4.13.3
blinker==1.9.0
certifi==2025.1.31
charset-normalizer==3.4.1
click==8.1.8
colorama==0.4.6
dataclasses-json==0.6.7
faiss==1.9.0
Flask==3.1.0
frozenlist==1.5.0
greenlet==3.1.1
h11==0.14.0
html2text==2024.2.26
httpcore==1.0.7
httpx==0.28.1
httpx-sse==0.4.0
idna==3.10
itsdangerous==2.2.0
Jinja2==3.1.6
jsonpatch==1.33
jsonpointer==3.0.0
langchain==0.3.20
langchain-community==0.3.19
langchain-core==0.3.41
langchain-experimental==0.3.4
langchain-ollama==0.2.3
langchain-text-splitters==0.3.6
langsmith==0.3.8
MarkupSafe==3.0.2
marshmallow==3.26.1
mkl-service==2.4.0
multidict==6.1.0
mypy-extensions==1.0.0
ollama==0.4.7
orjson==3.10.15
propcache==0.2.1
pydantic==2.10.6
pydantic-settings==2.8.1
pydantic_core==2.27.2
pypdf==5.3.1
python-dotenv==1.0.1
PyYAML==6.0.2
requests==2.32.3
requests-toolbelt==1.0.0
sniffio==1.3.1
soupsieve==2.6
SQLAlchemy==2.0.38
tenacity
### 部署 DeepSeek-Ollama-Flask 本地化 AI 对话系统的教程 #### 环境准备 为了成功部署基于 DeepSeekOllamaFlask本地化 AI 对话系统,需先准备好运行环境。推荐的操作系统为 Ubuntu 或 Windows,并确保已安装必要的工具和依赖项。 1. **安装 Ollama** 使用 `curl` 命令下载并安装 Ollama 工具链。此过程简单快捷,适合初学者快速入门[^2]。 ```bash curl -fsSL https://ollama.com/install.sh | sh ``` 2. **启动服务** 安装完成后,通过 systemd 启动 Ollama 服务以保持后台稳定运行。 ```bash sudo systemctl start ollama ``` 3. **加载预训练模型** 下载适用于中文场景的 DeepSeek 模型变体,建议使用量化本以减少内存占用。 ```bash export OLLAMA_MODELS=https://mirror.zhcdn.com ollama pull deepseek-chat:7b-quant ``` #### 构建对话接口 完成基础设置后,可以进一步扩展功能,例如通过 Flask 提供 Web UI 接口以便于用户操作。 1. **创建 Flask 应用程序** 初始化一个新的 Python 文件用于定义 RESTful API 路由逻辑。 ```python from flask import Flask, request, jsonify app = Flask(__name__) @app.route('/chat', methods=['POST']) def chat(): data = request.json prompt = data.get('prompt') response = generate_response(prompt) # 自定义函数封装生成器调用 return jsonify({'response': response}) if __name__ == '__main__': app.run(debug=True) ``` 2. **集成 LangChain 改善体验** 利用 LangChain 实现更复杂的上下文管理机制,提升多轮对话连贯性和效率[^3]。 3. **测试与调试** 在实际发布前务必充分验证各项核心功能是否正常运作,尤其是涉及敏感数据处理部分应格外谨慎对待隐私保护措施落实情况。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值