当前位置: 首页 > news >正文

基于Ollama安装deepseek-r1模型搭建本地知识库(Dify、MaxKb、Open-WebUi、AnythingLLM、RAGFlow、FastGPT)

大模型

    • 安装Ollama
      • 使用win系统安装
      • 使用sh脚本安装
      • 使用docker安装
    • 下载大模型
    • 搭建WebUI工具和本地知识库
      • Docker安装Dify
        • 配置本地知识库
      • Docker安装MaxKb
        • 配置本地知识库
      • Docker安装Open-WebUi
        • 配置本地知识库
      • Docker安装AnythingLLM
        • 配置本地知识库
      • Docker安装RAGFlow
        • 配置本地知识库
      • Docker安装FastGPT
        • 配置本地知识库

大模型(LLM,Large Language Model)指的是 参数量巨大、基于深度学习训练的人工智能模型,用于 自然语言处理(NLP) 任务,如文本生成、对话、翻译、代码补全等。它们通常由数十亿到万亿级别的参数组成,能够理解和生成类似人类的文本。

  • 大模型的核心特点
    ✅ 超大规模参数:从 数十亿(Billion)到万亿(Trillion)级别参数,比如 GPT-4、Gemini、DeepSeek、Qwen、ChatGLM 等。
    ✅ 基于 Transformer 架构:大多数大模型使用 Transformer 作为基础(如 GPT, LLaMA, Mistral, Baichuan 等)。
    ✅ 支持多任务处理:可以进行 文本理解、摘要、代码生成、图像识别(多模态)等。
    ✅ 可微调(Fine-tuning):可以通过 LoRA、QLoRA、P-tuning 等技术针对特定领域优化。
    ✅ 可本地部署或云端 API 访问:如 OpenAI 的 GPT-4 需 API 调用,而 LLaMA、DeepSeek 可本地运行。

大模型的主要类型

大模型可以按照应用方向划分为以下几类:

  • 语言大模型(LLM, Large Language Model)
    用于 文本生成、对话 AI、代码生成 等,如:GPT-4 OpenAI、DeepSeek、Qwen
    适用领域:Chatbot、知识库问答、智能助手等

  • 代码大模型(Code LLM)
    用于 代码补全、自动编程,如:DeepSeek-Coder、CodeLlama、BigCode
    适用领域:IDE 代码补全、AI 编程助手(如 Copilot)

  • 多模态大模型(Multimodal LLM)
    支持 文本 + 图像 + 语音 处理,如:Gemini、Qwen-VL、CogView
    适用领域:图像理解、OCR 识别、智能创作(如 Midjourney)。

  • 知识检索增强(RAG, Retrieval-Augmented Generation)
    大模型结合知识库,如:LangChain、LlamaIndex
    适用领域:智能客服、文档问答、搜索增强(如 ChatGPT+自有数据)。

大模型的训练方式

  • 预训练(Pre-training):使用大量文本数据进行 自回归(Autoregressive) 或 自编码(Autoencoder) 训练。
  • 指令微调(Instruction Tuning):对大模型进行 任务特定优化(如聊天、代码生成)。
  • RLHF(人类反馈强化学习):通过 人类评分 调整模型行为(如 ChatGPT 的训练)。
  • 蒸馏(Distillation):将大模型知识压缩到小模型,提高推理速度(如 DeepSeek 1.5B 可能是 67B 的蒸馏版本)。

轻量级本地 LLM 运行工具(适合个人用户):适用于 Windows / Mac / Linux,零基础可用:

✅ Ollama(推荐 🌟)
特点:一键运行 LLM,支持 GGUF 量化,CLI & API 兼容 OpenAI
适用场景:轻量级 LLM 运行,本地聊天
支持模型:LLaMA, Mistral, DeepSeek, Qwen, Gemma
✅ LM Studio
特点:本地 GUI 可视化,支持 GGUF
适用场景:零基础使用,轻量聊天
支持模型:LLaMA, Mistral, DeepSeek
✅ GPT4All
特点:轻量级 GUI,本地 AI 聊天
适用场景:本地离线 AI 助手
支持模型:GPT4All, LLaMA, Mistral

安装Ollama

本实验主要使用win系统安装ollama部署deepseek-r1(1.5b、7b、8b、14b、32b等参数)并搭建对接市面上各个开源的WebUI工具和本地知识库

Ollama是一款跨平台推理框架客户端(MacOS、Windows、Linux),旨在无缝部署大型语言模型 (LLM),例如 Llama 2、Mistral、Llava 等。Ollama 的一键式设置支持 LLM 的本地执行,通过将数据保存在自己的机器上,提供增强的数据隐私和安全性。

使用win系统安装

官网

  • 下载win版本即可

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

  • 下载后双击默认会安装在C盘

在这里插入图片描述

  • 创建大模型下载目录并配置系统变量

在这里插入图片描述

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

OLLAMA_HOST 
0.0.0.0
OLLAMA_ORIGINS
*
OLLAMA_MODELS
C:\OLLAMA_MODELS(自定义模型保存位置,按照自身需求设置路径)
  • 打开powershell执行ollama能查看到命令即可

在这里插入图片描述

命令使用

  • serve
    启动 Ollama 服务器,使其处于运行状态,等待处理请求

用法示例:

ollama serve
  • create
    从 Modelfile 创建一个新的模型

用法示例:

ollama create my-model
  • show

显示特定模型的信息,如版本、参数等
用法示例:

ollama show my-model
  • run
    运行一个模型,通常用于推理任务(如聊天、生成文本等)

用法示例:

ollama run my-model
  • stop
    停止正在运行的模型。

用法示例:

ollama stop my-model
  • pull
    从注册表(服务器)拉取一个模型到本地

用法示例:

ollama pull my-model
  • push
    将本地模型推送到注册表(服务器)

用法示例:

ollama push my-model
  • list
    列出本地可用的模型

用法示例:

ollama list
  • ps
    列出当前正在运行的模型。

用法示例:

ollama ps
  • cp
    复制一个模型。

用法示例:

ollama cp my-model new-model
  • rm
    删除本地的一个模型。

用法示例:

ollama rm my-model
  • 对于多行输入,可以使用以下方式换行"“”:

用法示例:

>>> """Hello,
... world!
... """
I'm a basic program that prints the famous "Hello, world!" message to the console.

使用sh脚本安装

系统Ubuntu2404:注意需要配置显卡,不然只能跑内存

root@huhy:~# curl -fsSL https://ollama.com/install.sh | sh
>>> Cleaning up old version at /usr/local/lib/ollama
>>> Installing ollama to /usr/local
>>> Downloading Linux amd64 bundle
######################################################################## 100.0%
>>> Creating ollama user...
>>> Adding ollama user to render group...
>>> Adding ollama user to video group...
>>> Adding current user to ollama group...
>>> Creating ollama systemd service...
>>> Enabling and starting ollama service...
Created symlink /etc/systemd/system/default.target.wants/ollama.service → /etc/systemd/system/ollama.service.
>>> The Ollama API is now available at 127.0.0.1:11434.
>>> Install complete. Run "ollama" from the command line.
WARNING: No NVIDIA/AMD GPU detected. Ollama will run in CPU-only mode.
root@huhy:~# systemctl status ollama
● ollama.service - Ollama ServiceLoaded: loaded (/etc/systemd/system/ollama.service; enabled; preset: enabled)Active: active (running) since Tue 2025-02-11 07:28:07 UTC; 2min 29s agoMain PID: 4219 (ollama)Tasks: 9 (limit: 4556)Memory: 30.4M (peak: 30.6M)CPU: 88msCGroup: /system.slice/ollama.service└─4219 /usr/local/bin/ollama serveFeb 11 07:28:07 huhy ollama[4219]: [GIN-debug] GET    /api/tags                 --> github.com/ollama/ollama/server.(*S>
Feb 11 07:28:07 huhy ollama[4219]: [GIN-debug] GET    /api/version              --> github.com/ollama/ollama/server.(*S>
Feb 11 07:28:07 huhy ollama[4219]: [GIN-debug] HEAD   /                         --> github.com/ollama/ollama/server.(*S>
Feb 11 07:28:07 huhy ollama[4219]: [GIN-debug] HEAD   /api/tags                 --> github.com/ollama/ollama/server.(*S>
Feb 11 07:28:07 huhy ollama[4219]: [GIN-debug] HEAD   /api/version              --> github.com/ollama/ollama/server.(*S>
Feb 11 07:28:07 huhy ollama[4219]: time=2025-02-11T07:28:07.851Z level=INFO source=routes.go:1238 msg="Listening on 127>
Feb 11 07:28:07 huhy ollama[4219]: time=2025-02-11T07:28:07.853Z level=INFO source=routes.go:1267 msg="Dynamic LLM libr>
Feb 11 07:28:07 huhy ollama[4219]: time=2025-02-11T07:28:07.856Z level=INFO source=gpu.go:226 msg="looking for compatib>
Feb 11 07:28:07 huhy ollama[4219]: time=2025-02-11T07:28:07.861Z level=INFO source=gpu.go:392 msg="no compatible GPUs w>
Feb 11 07:28:07 huhy ollama[4219]: time=2025-02-11T07:28:07.861Z level=INFO source=types.go:131 msg="inference compute
root@huhy:~# ollama run deepseek-r1:1.5b
pulling manifest
pulling aabd4debf0c8... 100% ▕██████████████████████████████████████████████████████████████████████████▏ 1.1 GB
pulling 369ca498f347... 100% ▕██████████████████████████████████████████████████████████████████████████▏  387 B
pulling 6e4c38e1172f... 100% ▕██████████████████████████████████████████████████████████████████████████▏ 1.1 KB
pulling f4d24e9138dd... 100% ▕██████████████████████████████████████████████████████████████████████████▏  148 B
pulling a85fe2a2e58e... 100% ▕██████████████████████████████████████████████████████████████████████████▏  487 B
verifying sha256 digest
writing manifest
success
>>> Send a message (/? for h
>>> 你好呀
<think></think>你好!很高兴见到你,有什么我可以帮忙的吗?😊
  • 配置监听地址
vim /etc/systemd/system/ollama.service
[Unit]
Description=Ollama Service
After=network-online.target[Service]
ExecStart=/usr/local/bin/ollama serve
User=ollama
Group=ollama
Restart=always
RestartSec=3
#Environment="PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin"
Environment="OLLAMA_HOST=0.0.0.0" # 将上面行注释,添加此行
[Install]
WantedBy=default.target
systemctl daemon-reload
systemctl restart ollama
root@huhy:~# ss -tlun | grep 11
tcp   LISTEN 0      4096               *:11434            *:*

使用docker安装

系统Ubuntu2404:

  • 安装docker
apt -y install apt-transport-https ca-certificates curl software-properties-commoncurl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"apt-get -y install docker-ce
  • 配置daemon文件
cat > /etc/docker/daemon.json << EOF{"registry-mirrors": ["https://registry-mirrors.yunyuan.co"],"insecure-registries" : ["0.0.0.0/0"]
}
EOFsystemctl daemon-reload
systemctl restart docker
  • 配置生产存储库:使用 NVIDIA GPU 驱动程序
    官网
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \&& curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
  • 可选)配置存储库以使用实验性软件包:
sed -i -e '/experimental/ s/^#//g' /etc/apt/sources.list.d/nvidia-container-toolkit.list
  • 安装 NVIDIA Container Toolkit 软件包:
apt update
apt install -y nvidia-container-toolkit

配置docker:官网

  • 使用以下命令配置容器运行时nvidia-ctk:
    该nvidia-ctk命令会修改/etc/docker/daemon.json主机上的文件。文件已更新,以便 Docker 可以使用 NVIDIA 容器运行时
nvidia-ctk runtime configure --runtime=docker
systemctl daemon-reload
systemctl restart docker

模式

  • 要为以Rootless 模式运行的 Docker 配置容器运行时,请按照以下步骤操作:
    使用以下命令配置容器运行时nvidia-ctk:
nvidia-ctk runtime configure --runtime=docker --config=$HOME/.config/docker/daemon.json
  • 重新启动 Rootless Docker 守护进程:
systemctl --user restart docker
  • /etc/nvidia-container-runtime/config.toml使用以下命令进行配置:sudo nvidia-ctk
nvidia-ctk config --set nvidia-container-cli.no-cgroups --in-place
  • 启动容器
docker run -d --gpus=all -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama
  • 要使用带有 AMD GPU 的 Docker 运行 Ollama,请使用rocm标签和以下命令:
docker run -d --device /dev/kfd --device /dev/dri -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama:rocm

下载大模型

Ollama官网

电脑系统信息:

硬件信息配置
操作系统W11专业版
CPU12th Gen Intel® Core™ i5-12500H 2.50 GHz
RAM64.0 GB
显卡3050ti
显存36.0 GB

官网说明:至少有 8 GB 的 RAM 来运行 7B 型号,16 GB 的 RAM 来运行 13B 型号,32 GB 的 RAM 来运行 33B 型号

  • 官网基本上支持市面的大部分模型:本实验以deepseek为例:
    对应模型参数所需磁盘空间如下:我的建议是磁盘空间允许的话可以都下载试试,根据自己电脑的实际情况来进行判断那个模型参数更适合自己电脑

在这里插入图片描述

  • 下载模型:命令格式如下(注意大多时候下载模型可能会报错,受网络影响,一般早上下载比较好,多试几次反复尝试!)
ollama run deepseek-r1:模型参数
PS C:\Users\huhy> ollama run deepseek-r1:1.5b
pulling manifest
pulling aabd4debf0c8... 100% ▕████████████████████████████████████████████████████████▏ 1.1 GB
pulling 369ca498f347... 100% ▕████████████████████████████████████████████████████████▏  387 B
pulling 6e4c38e1172f... 100% ▕████████████████████████████████████████████████████████▏ 1.1 KB
pulling f4d24e9138dd... 100% ▕████████████████████████████████████████████████████████▏  148 B
pulling a85fe2a2e58e... 100% ▕████████████████████████████████████████████████████████▏  487 B
verifying sha256 digest
writing manifest
success
PS C:\Users\huhy> ollama list
NAME                ID              SIZE      MODIFIED
deepseek-r1:32b     38056bbcbb2d    19 GB     45 seconds ago
deepseek-r1:14b     ea35dfe18182    9.0 GB    2 hours ago
deepseek-r1:8b      28f8fd6cdc67    4.9 GB    2 hours ago
deepseek-r1:7b      0a8c26691023    4.7 GB    2 hours ago
deepseek-r1:1.5b    a42b25d8c10a    1.1 GB    2 hours ago

()从 GGUF 导入

Huggingface官方下载

GGUF(GPT-Generated Unified Format)是一种专门为大型语言模型设计的文件格式,旨在优化模型的存储、加载和推理效率。它通常用于本地部署的模型(如基于LLaMA、Falcon等架构的模型),尤其是在资源受限的设备上(如个人电脑或嵌入式设备)

GGUF模型的核心特点

  • 高效存储
    GGUF采用量化技术(如4-bit、8-bit量化),大幅减少模型文件大小,同时尽量保持模型性能。
    适合在本地设备上存储和运行,尤其是显存或内存有限的场景。

  • 快速加载
    GGUF格式针对加载速度进行了优化,能够更快地将模型加载到内存或显存中,减少启动延迟。

  • 跨平台兼容
    GGUF格式设计时考虑了跨平台支持,可以在不同操作系统(如Windows、Linux、macOS)和设备(如CPU、GPU)上运行。

  • 模块化设计
    GGUF支持将模型拆分为多个文件,便于分块加载或更新,特别适合大型模型。

  • 易于部署
    GGUF格式通常与开源推理框架(如llama.cpp)配合使用,能够简化模型的本地部署流程。

创建一个名为 的文件Modelfile,其中FROM包含要导入的模型的本地文件路径的指令。(注意makefile文件和gguf文件要在同一目录)

FROM ./vicuna-33b.Q4_0.gguf

在 Ollama 中创建模型

ollama create example -f Modelfile

运行模型

ollama run example

搭建WebUI工具和本地知识库

WebUI 工具用于可视化界面进行AI对话,有不少是自带知识库(RAG,Retrieval-Augmented Generation),适用于本地私有知识库、企业内网、个人 AI 助手。例如:

工具特点个人 使用感受
Dify 🌟可视化 AI 助手,低代码构建,支持 RAG不能自定义前端样式,其他的倒是还不错
MaxKB 🌟轻量级本地知识库,支持多格式文档需要购买专业版,普通版有限制
OpenWebUIChatGPT 风格 UI,集成知识库感觉浏览器界面加载有点慢,不流畅
AnythingLLM一体化AI 应用程序主要是不支持国内大模型厂商!但是可以自定义前端样式
RAGFlow可视化 RAG,支持 SQL 知识库它的知识库上传文件好像有点问题,老是上传失败
FastGPT模型结构与AI应用分离,便于管理和Dify差不多,唯一的缺点就是前端不能自定义,而且还有商业版

本地知识库是指在本地(如个人电脑、企业服务器、云等)部署和管理的知识库系统,用于存储、管理和检索格式化或非格式化数据。相比于在线或云端知识库,本地知识库的主要特点是数据隐私性更高、访问速度更快,并且可以根据具体需求进行高度定制

本地知识库涉及多个核心模型和技术,主要内容为内容处理、帮助化、搜索、知识增强、问答生成等阶段。以下是构建本地知识库时常用的模型和技术分类:

文本预处理技术

  • 在构建本地知识库前,需要对原始文档(如PDF、Word、TXT)进行解析和清洗:

    • 文档解析:
      PyMuPDF、pdfplumber(用于PDF解析)
      python-docx(用于词解析)
      BeautifulSoup(用于HTML网页解析)
      文本清洗与分句:
      NLTK、SpaCy(中文文本分词、消失词)
      Jieba、THULAC(中文分词)

文本服务化(Embedding Model)

  • 文本转换将文本转换为数字转换,以便进行相似度搜索。以下是几种常用的本地嵌入模型:

    • 中文向量模型:
      BGE-Embedding(支持中文、效果优秀)🔹推荐
      m3e-base(高效中文支持化模型)
      Senta-BERT(百度开源的文本管理模型)
      多语言&英文模型:
      Sentence-BERT (SBERT)(经典文本相似度模型)
      E5-large(适合文本)
      MiniLM(量轻但效果不错)
      Instructor-XL(可用于多任务管理化)

支持化后,文本可用于相似度搜索,从而增强搜索效果。

向量数据库(Vector Database)

  • 支持数据库用于存储文本管理,并支持高效的相似度搜索:
    FAISS(Facebook开源,适合单机)
    Milvus(Zilliz开源,支持全球部署)🔹推荐
    ChromaDB(轻量级管理数据库,适合本地小型应用)
    Weaviate(可结合OpenAI/Transformer进行增强搜索)
    Qdrant(Rust语言开发,性能优越)

这些数据库用于存储本地知识库的支持化,并实现快速的相似性搜索。

搜索增强生成(RAG)

  • RAG(Retrieval-Augmented Generation)是大模型+知识库的核心技术,通过检索增强生成:
    LlamaIndex(原GPT索引,专门用于RAG应用)🔹推荐
    LangChain(结合提供数据库+大模型,实现智能问答)
    BM25(传统文本搜索算法,可与提供搜索结合)

RAG允许大模型在回答问题时,先从本地知识库检索相关内容,提高准确率。

Docker安装Dify

GitHub官网

Dify 是一个开源 LLM 应用开发平台。其直观的界面结合了代理 AI 工作流、RAG 管道、代理功能、模型管理、可观察性功能等,让您可以快速从原型转向生产

  • 使用docker compose 启动Dify,使用Ubuntu2404系统安装docker和docker compose
apt -y install apt-transport-https ca-certificates curl software-properties-commoncurl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"apt-get -y install docker-ce
  • 配置daemon
cat > /etc/docker/daemon.json << EOF{"registry-mirrors": ["https://registry-mirrors.yunyuan.co"],"insecure-registries" : ["0.0.0.0/0"]
}
EOFsystemctl daemon-reload
systemctl restart docker
  • 下载Dify文件

在这里插入图片描述

  • 上传后解压
apt install -y unzip
unzip dify-main.zip
cd dify-main/
cd docker
cp .env.example .env
docker compose up -d
root@huhy:~/dify-main/docker# docker compose up -d
[+] Running 74/74✔ sandbox Pulled                                                                                                                                                                                         316.6s✔ worker Pulled                                                                                                                                                                                          284.7s✔ weaviate Pulled                                                                                                                                                                                        247.6s✔ nginx Pulled                                                                                                                                                                                            12.3s✔ api Pulled                                                                                                                                                                                             284.7s✔ web Pulled                                                                                                                                                                                             241.4s✔ db Pulled                                                                                                                                                                                              112.2s✔ redis Pulled                                                                                                                                                                                           175.1s✔ ssrf_proxy Pulled                                                                                                                                                                                       85.7s
[+] Running 11/11✔ Network docker_default             Created                                                                                                                                                               0.1s✔ Network docker_ssrf_proxy_network  Created                                                                                                                                                               0.1s✔ Container docker-sandbox-1         Started                                                                                                                                                               1.7s✔ Container docker-db-1              Started                                                                                                                                                               1.7s✔ Container docker-web-1             Started                                                                                                                                                               1.8s✔ Container docker-redis-1           Started                                                                                                                                                               2.0s✔ Container docker-ssrf_proxy-1      Started                                                                                                                                                               1.9s✔ Container docker-weaviate-1        Started                                                                                                                                                               1.8s✔ Container docker-worker-1          Started                                                                                                                                                               3.2s✔ Container docker-api-1             Started                                                                                                                                                               3.2s✔ Container docker-nginx-1           Started                                                                                                                                                               4.0s
root@huhy:~/dify-main/docker# docker compose ps
NAME                  IMAGE                              COMMAND                  SERVICE      CREATED          STATUS                             PORTS
docker-api-1          langgenius/dify-api:0.15.3         "/bin/bash /entrypoi…"   api          14 seconds ago   Up 12 seconds                      5001/tcp
docker-db-1           postgres:15-alpine                 "docker-entrypoint.s…"   db           15 seconds ago   Up 14 seconds (healthy)            5432/tcp
docker-nginx-1        nginx:latest                       "sh -c 'cp /docker-e…"   nginx        14 seconds ago   Up 11 seconds                      0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp
docker-redis-1        redis:6-alpine                     "docker-entrypoint.s…"   redis        15 seconds ago   Up 13 seconds (health: starting)   6379/tcp
docker-sandbox-1      langgenius/dify-sandbox:0.2.10     "/main"                  sandbox      15 seconds ago   Up 14 seconds (health: starting)
docker-ssrf_proxy-1   ubuntu/squid:latest                "sh -c 'cp /docker-e…"   ssrf_proxy   15 seconds ago   Up 13 seconds                      3128/tcp
docker-weaviate-1     semitechnologies/weaviate:1.19.0   "/bin/weaviate --hos…"   weaviate     15 seconds ago   Up 14 seconds
docker-web-1          langgenius/dify-web:0.15.3         "/bin/sh ./entrypoin…"   web          15 seconds ago   Up 14 seconds                      3000/tcp
docker-worker-1       langgenius/dify-api:0.15.3         "/bin/bash /entrypoi…"   worker       14 seconds ago   Up 12 seconds                      5001/tcp
root@huhy:~/dify-main/docker#
  • 前端界面访问:可以通过浏览器通过http://localhost/install访问 Dify 仪表板并开始初始化过程

在这里插入图片描述

  • 输入密码登录
    在这里插入图片描述
  • 右上角账号中找到设置,选择模型供应商
    在这里插入图片描述
  • 选择Ollama,添加大模型:只需要修改名称和地址即可,注意地址是本地还是远程
    名称一定要对应不然会报错:An error occurred during credentials validation
PS C:\Users\huhy> ollama list
NAME                ID              SIZE      MODIFIED
deepseek-r1:32b     38056bbcbb2d    19 GB     9 hours ago
deepseek-r1:14b     ea35dfe18182    9.0 GB    11 hours ago
deepseek-r1:8b      28f8fd6cdc67    4.9 GB    11 hours ago
deepseek-r1:7b      0a8c26691023    4.7 GB    11 hours ago
deepseek-r1:1.5b    a42b25d8c10a    1.1 GB    11 hours ago

在这里插入图片描述

  • 继续添加Text Embedding。这是为知识库添加bge-large模型
    bge-large 是一个 Embedding(文本向量化)模型,全名是 BAAI General Embedding (BGE),由 BAAI(北京智源人工智能研究院) 开发,主要用于 语义搜索、文本检索、相似度计算、RAG(检索增强生成) 等任务
    bge-large 主要应用场景:
    • ✅ 语义搜索(Semantic Search)
    • ✅ 智能问答(QA Retrieval)
    • ✅ 知识库增强(RAG)(如 LlamaIndex, LangChain)
    • ✅ 文本相似度匹配(Sentence Similarity)
    • ✅ 推荐系统(Recommendation Systems)
PS C:\Users\huhy> ollama pull bge-large
pulling manifest
pulling 92b37e50807d... 100% ▕████████████████████████████████████████████████████████▏ 670 MB
pulling a406579cd136... 100% ▕████████████████████████████████████████████████████████▏ 1.1 KB
pulling 917eef6a95d7... 100% ▕████████████████████████████████████████████████████████▏  337 B
verifying sha256 digest
writing manifest
success
  • Dify官网配置说明
    在这里插入图片描述

在这里插入图片描述

  • 最终添加如下:

在这里插入图片描述

配置本地知识库

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

  • 注意选择Embedding 模型后保存下一步

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

  • 创建应用

在这里插入图片描述

  • 选择聊天助手

在这里插入图片描述

  • 添加上下问,导入本地知识库

在这里插入图片描述

  • 发布聊天:可以根据场景选择发布方式

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

  • 对比参数模型
    分别测试不同参数的模型回答问题的准确性:文档中提到金奖的数量为参数队伍总数的10%,直接向AI提问(现在参加云计算竞赛的选手有65支,那金奖数量会有多少?)

在这里插入图片描述

  • 同时测试1.5b、7b、8b、14b模型

  • 1:对四个模型同时提问

在这里插入图片描述

  • 2:最小的1.5b模型先开始回答

在这里插入图片描述

  • 3:紧接着7b模型

在这里插入图片描述

  • 4:1.5b(还计算了铜牌和银牌,但是有点问题)和7b模型都是回答准确,然后8b开始回答

在这里插入图片描述

  • 5:最后是14b模型

在这里插入图片描述

  • 6:总体来说,模型越小速度越快,但思考深度方面相反

在这里插入图片描述

最后单独测试一下32b模型:显存肉眼可见的上升了,并且回答问题时十分卡顿,但相对来说回答的时候要更加考虑的全面一些

在这里插入图片描述

个人感觉还行:算是比较好用,就是需要多调试调试参数

Docker安装MaxKb

官网

MaxKB = Max Knowledge Base,是一款基于大语言模型和 RAG 的开源知识库问答系统,广泛应用于智能客服、企业内部知识库、学术研究与教育等场景。

使用dcker进行安装:官网手册

docker run -d --name=maxkb --restart=always -p 8080:8080 -v ~/.maxkb:/var/lib/postgresql/data -v ~/.python-packages:/opt/maxkb/app/sandbox/python-packages registry.fit2cloud.com/maxkb/maxkb
root@huhy:~# docker run -d --name=maxkb --restart=always -p 8080:8080 -v ~/.maxkb:/var/lib/postgresql/data -v ~/.python-packages:/opt/maxkb/app/sandbox/python-packages registry.fit2cloud.com/maxkb/maxkb
Unable to find image 'registry.fit2cloud.com/maxkb/maxkb:latest' locally
latest: Pulling from maxkb/maxkb
55ab1b300d4b: Pull complete
516e670f76de: Pull complete
c8202c7054c7: Pull complete
4493463449f8: Pull complete
dcd6bd6b20be: Pull complete
8331472b7254: Pull complete
3dbb847e6011: Pull complete
c5b148653b86: Pull complete
cb92aacfeb80: Pull complete
41c71022e406: Pull complete
98fbd3f077e2: Pull complete
cea15ef59043: Pull complete
9de9cd69634c: Pull complete
9c11f106b56c: Pull complete
3df6554d74e0: Pull complete
3409739a0deb: Pull complete
dd4cc3ae0092: Pull complete
fa6500045b27: Pull complete
6312008eda41: Pull complete
ac40a96d9fc7: Pull complete
696f9213d112: Pull complete
Digest: sha256:f922c66cd6c63179df4f2aaf320b89f28ef93101762b4953912ad272c9ca614a
Status: Downloaded newer image for registry.fit2cloud.com/maxkb/maxkb:latest
7540ed7ecf668b2979e775a89a2a90760d781155a49ab13535e93c46cd631da4
  • 界面访问:http://IP:8080
用户名:admin
默认密码:MaxKB@123..

在这里插入图片描述

  • 登录后修改密码,添加模型

在这里插入图片描述

  • 添加模型配置信息

在这里插入图片描述

配置本地知识库
  • 使用默认的向量模型

在这里插入图片描述

  • 上传文件到知识库测试

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

  • 创建应用

在这里插入图片描述

  • 配置模型和知识库后即可聊天测试

在这里插入图片描述

在这里插入图片描述

Docker安装Open-WebUi

GitHub官网

Open WebUI 是一个可扩展、功能丰富且用户友好的自托管 AI 平台,旨在完全离线运行。它支持各种 LLM 运行器(如Ollama)和与OpenAI 兼容的 API,并内置RAG 推理引擎,使其成为强大的 AI 部署解决方案。

使用默认配置进行安装

  • 如果计算机上有 Ollama,请使用以下命令:
docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main
  • 如果 Ollama 位于不同的服务器上,请使用以下命令:
    要连接到另一台服务器上的 Ollama,请更改OLLAMA_BASE_URL为该服务器的 URL:
docker run -d -p 3000:8080 -e OLLAMA_BASE_URL=https://example.com -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main
  • 要运行支持 Nvidia GPU 的 Open WebUI,请使用以下命令:
docker run -d -p 3000:8080 --gpus all --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:cuda
  • 如果仅使用 OpenAI API,请使用此命令:
docker run -d -p 3000:8080 -e OPENAI_API_KEY=your_secret_key -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main
root@huhy:~# docker run -d -p 3000:8080 -e OLLAMA_BASE_URL=http://192.168.0.101:11434 -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main
Unable to find image 'ghcr.io/open-webui/open-webui:main' locally
main: Pulling from open-webui/open-webui
c29f5b76f736: Already exists
73c4bbda278d: Pull complete
acc53c3e87ac: Pull complete
ad3b14759e4f: Pull complete
b874b4974f13: Pull complete
4f4fb700ef54: Pull complete
dfcf69fcbc2b: Pull complete
e8bfaf4ee0e0: Pull complete
17b8c991f4f9: Pull complete
17fcce97562b: Pull complete
2d116a8d53c4: Pull complete
59ab933b3f2f: Pull complete
b3d65316b089: Pull complete
54fcedec75a0: Pull complete
5f8d44db0743: Pull complete
Digest: sha256:26f0c76fcfe234ce6ad670fb65a9f772af0c263d261c2e2b3c784bae2d196c45
Status: Downloaded newer image for ghcr.io/open-webui/open-webui:main
44e56b1804e3cb1d279a9e7b965072c6f4939f5494163dccaa1e53ce2d81dfb3
  • 安装后,可以通过http://localhost:3000访问 Open WebUI
    官方文档

在这里插入图片描述

  • 创建管理员账户和密码

在这里插入图片描述

  • 登录后可直接使用模型,不需要配置连接Ollama

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

配置本地知识库
  • 点击工作空间,找到知识库
    在这里插入图片描述
  • 然后根据提示创建知识库

在这里插入图片描述

  • 上传文件或目录即可

在这里插入图片描述

Docker安装AnythingLLM

GitHub官网

AnythingLLM是一个全栈应用程序,可以使用现成的商业大语言模型或流行的开源大语言模型,再结合向量数据库解决方案构建一个私有ChatGPT,不再受制于人:可以本地运行,也可以远程托管,并能够与提供的任何文档智能聊天。

  • AnythingLLM的一些酷炫特性:
    多用户实例支持和权限管理
    工作区内的智能体Agent(浏览网页、运行代码等)
    为您的网站定制的可嵌入聊天窗口
    支持多种文档类型(PDF、TXT、DOCX等)
    通过简单的用户界面管理向量数据库中的文档
    两种对话模式:聊天和查询。聊天模式保留先前的对话记录。查询模式则是是针对您的文档做简单问答
    聊天中会提供所引用的相应文档内容
    100%云部署就绪。
    “部署你自己的LLM模型”。
    管理超大文档时高效、低耗。只需要一次就可以嵌入(Embedding)一个庞大的文档或文字记录。比其他文档聊天机器人解决方案节省90%的成本。
    全套的开发人员API,用于自定义集成!

  • 使用Docker安装部署
    官网文档

  • 创建持续化存储目录

export STORAGE_LOCATION=$HOME/anythingllm && \
mkdir -p $STORAGE_LOCATION && \
touch "$STORAGE_LOCATION/.env" 
  • 给目录授权,不然容器创建后会自动退出
chmod -R 777 $HOME/anythingllm
  • 启动容器
docker run -d -p 3001:3001 \
--cap-add SYS_ADMIN \
-v ${STORAGE_LOCATION}:/app/server/storage \
-v ${STORAGE_LOCATION}/.env:/app/server/.env \
-e STORAGE_DIR="/app/server/storage" \
mintplexlabs/anythingllm
root@huhy:~# docker ps
CONTAINER ID   IMAGE                      COMMAND                  CREATED             STATUS                    PORTS                                       NAMES
97d2a4adf7d4   mintplexlabs/anythingllm   "/bin/bash /usr/loca…"   About an hour ago   Up 42 seconds (healthy)   0.0.0.0:3001->3001/tcp, :::3001->3001/tcp   sweet_spence
  • 界面访问:http://localhost:3001

在这里插入图片描述

  • 配置Ollaman连接
    在这里插入图片描述
  • 配置用户设置

在这里插入图片描述

  • 创建工作区域

在这里插入图片描述

  • 点击左下角小扳手进入设置页面

在这里插入图片描述

  • 可以配置模型提供商信息,以及自定义外观界面等
    在这里插入图片描述
    在这里插入图片描述
配置本地知识库
  • 上传文档搭建本地知识库

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

  • 选中文档后移动到工作区huhy保存即可

在这里插入图片描述

在这里插入图片描述

  • 开始根据知识库问答

在这里插入图片描述

Docker安装RAGFlow

GitHub官网

RAGFlow是一款基于深度文档理解的开源 RAG(检索增强生成)引擎。它为任何规模的企业提供简化的 RAG 工作流程,结合 LLM(大型语言模型)提供真实的问答功能,并以来自各种复杂格式数据的合理引证为后盾。

官方文档

  • 下载软件包
git clone https://github.com/infiniflow/ragflow.git
  • 如果网络问题,可界面下载上传
    在这里插入图片描述
unzip ragflow-main.zip
cd ragflow-main/
  • RAGFlow 版本镜像的描述:
RAGFlow镜像标签镜像大小 (GB)有嵌入模型和 Python 包吗?稳定性
v0.16.0≈9✔️稳定版本
v0.16.0-slim≈2稳定版本
nightly≈9✔️不稳定的夜间构建
nightly-slim≈2不稳定的夜间构建
  • 默认使用不带嵌入模型的镜像
root@huhy:~/ragflow-main# cat docker/.env | grep RAGFLOW_IMAGE
RAGFLOW_IMAGE=infiniflow/ragflow:v0.16.0-slim
# RAGFLOW_IMAGE=infiniflow/ragflow:v0.16.0
# RAGFLOW_IMAGE=swr.cn-north-4.myhuaweicloud.com/infiniflow/ragflow:nightly-slim
# RAGFLOW_IMAGE=registry.cn-hangzhou.aliyuncs.com/infiniflow/ragflow:nightly-slim
# RAGFLOW_IMAGE=swr.cn-north-4.myhuaweicloud.com/infiniflow/ragflow:nightly
# RAGFLOW_IMAGE=registry.cn-hangzhou.aliyuncs.com/infiniflow/ragflow:nightly
  • 启动Compose文件
docker compose -f docker/docker-compose.yml up -d
root@huhy:~/ragflow-main# docker compose -f docker/docker-compose.yml ps
WARN[0000] The "HF_ENDPOINT" variable is not set. Defaulting to a blank string.
WARN[0000] The "MACOS" variable is not set. Defaulting to a blank string.
NAME             IMAGE                                              COMMAND                  SERVICE   CREATED         STATUS                   PORTS
ragflow-es-01    elasticsearch:8.11.3                               "/bin/tini -- /usr/l…"   es01      3 minutes ago   Up 3 minutes (healthy)   9300/tcp, 0.0.0.0:1200->9200/tcp, [::]:1200->9200/tcp
ragflow-minio    quay.io/minio/minio:RELEASE.2023-12-20T01-00-02Z   "/usr/bin/docker-ent…"   minio     3 minutes ago   Up 3 minutes             0.0.0.0:9000-9001->9000-9001/tcp, :::9000-9001->9000-9001/tcp
ragflow-mysql    mysql:8.0.39                                       "docker-entrypoint.s…"   mysql     3 minutes ago   Up 3 minutes (healthy)   33060/tcp, 0.0.0.0:5455->3306/tcp, [::]:5455->3306/tcp
ragflow-redis    valkey/valkey:8                                    "docker-entrypoint.s…"   redis     3 minutes ago   Up 3 minutes             0.0.0.0:6379->6379/tcp, :::6379->6379/tcp
ragflow-server   infiniflow/ragflow:v0.16.0-slim                    "./entrypoint.sh"        ragflow   3 minutes ago   Up 3 minutes             0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp, 0.0.0.0:9380->9380/tcp, :::9380->9380/tcp
  • 前端界面访问:http://IP

在这里插入图片描述

  • 创建账户

在这里插入图片描述

在这里插入图片描述

  • 添加模型

在这里插入图片描述

  • 配置ollama

在这里插入图片描述

在这里插入图片描述

  • 添加系统模型

在这里插入图片描述

配置本地知识库
  • 创建知识库后添加文件

在这里插入图片描述

在这里插入图片描述

  • 上传后点击解析

在这里插入图片描述

  • 新建助理

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

Docker安装FastGPT

官网

FastGPT 是一个基于 LLM 大语言模型的知识库问答系统,提供开箱即用的数据处理、模型调用等能力。同时可以通过 Flow 可视化进行工作流编排,从而实现复杂的问答场景!

FastGPT 能力

  1. 专属 AI 客服
    通过导入文档或已有问答对进行训练,让 AI 模型能根据你的文档以交互式对话方式回答问题。

  2. 简单易用的可视化界面
    FastGPT 采用直观的可视化界面设计,为各种应用场景提供了丰富实用的功能。通过简洁易懂的操作步骤,可以轻松完成 AI 客服的创建和训练流程。

  3. 自动数据预处理
    提供手动输入、直接分段、LLM 自动处理和 CSV 等多种数据导入途径,其中“直接分段”支持通过 PDF、WORD、Markdown 和 CSV 文档内容作为上下文。FastGPT 会自动对文本数据进行预处理、向量化和 QA 分割,节省手动训练时间,提升效能。

  4. 工作流编排
    基于 Flow 模块的工作流编排,可以帮助你设计更加复杂的问答流程。例如查询数据库、查询库存、预约实验室等。

  5. 强大的 API 集成
    FastGPT 对外的 API 接口对齐了 OpenAI 官方接口,可以直接接入现有的 GPT 应用,也可以轻松集成到企业微信、公众号、飞书等平台。

FastGPT 特点

  • 项目开源
    FastGPT 遵循附加条件 Apache License 2.0 开源协议,你可以 Fork 之后进行二次开发和发布。FastGPT 社区版将保留核心功能,商业版仅在社区版基础上使用 API 的形式进行扩展,不影响学习使用。

  • 独特的 QA 结构
    针对客服问答场景设计的 QA 结构,提高在大量数据场景中的问答准确性。

  • 可视化工作流
    通过 Flow 模块展示了从问题输入到模型输出的完整流程,便于调试和设计复杂流程。

  • 无限扩展
    基于 API 进行扩展,无需修改 FastGPT 源码,也可快速接入现有的程序中。

  • 便于调试
    提供搜索测试、引用修改、完整对话预览等多种调试途径。

  • 支持多种模型
    支持 GPT、Claude、文心一言等多种 LLM 模型,未来也将支持自定义的向量模型。

官网部署文档

mkdir fastgpt
cd fastgpt
curl -O https://raw.githubusercontent.com/labring/FastGPT/main/projects/app/data/config.json# pgvector 版本(测试推荐,简单快捷)
curl -o docker-compose.yml https://raw.githubusercontent.com/labring/FastGPT/main/deploy/docker/docker-compose-pgvector.yml
# milvus 版本
# curl -o docker-compose.yml https://raw.githubusercontent.com/labring/FastGPT/main/deploy/docker/docker-compose-milvus.yml
# zilliz 版本
# curl -o docker-compose.yml https://raw.githubusercontent.com/labring/FastGPT/main/deploy/docker/docker-compose-zilliz.yml

修改yaml文件

FE_DOMAIN=http://IP:3000

启动容器

docker-compose up -d

等待10s,OneAPI第一次总是要重启几次才能连上Mysql

sleep 10

重启一次oneapi(由于OneAPI的默认Key有点问题,不重启的话会提示找不到渠道,临时手动重启一次解决,等待作者修复)

docker restart oneapi

如果拉取不了镜像,可网盘获取:
通过网盘分享的文件:fastgpt_images.tar
链接: https://pan.baidu.com/s/1G6Dv_5ie7PiQMytd4jyNNQ?pwd=q9ht 提取码: q9ht

  • 登录One Api :官网配置说明
    root:123456

在这里插入图片描述

  • 在 One API 中添加对应渠道,直接点击 【添加基础模型】,不要遗漏了向量模型(Embedding)

在这里插入图片描述

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

在这里插入图片描述

  • 查看令牌

在这里插入图片描述

  • 登录FastGPT:官网配置说明
    root:1234

在这里插入图片描述

  • 配置连接模型

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

在这里插入图片描述

配置本地知识库
  • 添加索引模型

在这里插入图片描述

  • 创建知识库

在这里插入图片描述

  • 上传文件

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

  • 创建简易应用

在这里插入图片描述

  • 进行调试

在这里插入图片描述

  • 关联知识库

在这里插入图片描述

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

  • 保存当前配置

在这里插入图片描述

  • 选择发布渠道

在这里插入图片描述

  • 创建访问链接

在这里插入图片描述

在这里插入图片描述

  • 访问链接

在这里插入图片描述

相关文章:

基于Ollama安装deepseek-r1模型搭建本地知识库(Dify、MaxKb、Open-WebUi、AnythingLLM、RAGFlow、FastGPT)

大模型 安装Ollama使用win系统安装使用sh脚本安装使用docker安装 下载大模型搭建WebUI工具和本地知识库Docker安装Dify配置本地知识库 Docker安装MaxKb配置本地知识库 Docker安装Open-WebUi配置本地知识库 Docker安装AnythingLLM配置本地知识库 Docker安装RAGFlow配置本地知识库…...

学习前置知识第二十天

学习前置知识第二十天 今天要做什么&#xff1f; 1:二进制 2:进制转换关系 3:二进制反汇编 4:常见字符编码 5:什么是编码和解码 6&#xff1a;编码表 一&#xff1a;二进制概述 为什么计算机只能读懂二进制&#xff1f;原因是因为计算机是需要电的&#xff0c;电路设计只…...

面试准备——云相册项目(1)基础

项目概述 云相册项目旨在为用户提供便捷的照片存储、管理和访问服务。通过客户端与服务器的配合&#xff0c;实现照片的上传、下载以及一些基本的命令交互功能&#xff0c;方便用户在不同设备上随时查看和管理自己的相册。 技术要点 编程语言与环境&#xff1a;使用 C 语言开…...

c语言程序设计--数组里面考察最多的一个知识点-考研冲刺复试面试问答题。

数组 关于数组的知识脑海里面先有一个大概&#xff0c;知道定义和存储方式 目录 数组 1、数组是什么&#xff1f; 2、strlen和sizeof的区别是什么&#xff1f; 3、数组名是什么&#xff1f; 1、数组是什么&#xff1f; 定义&#xff1a;数组是一组相同类型元素的集合。数…...

Json工具(一)- Jackson(续)

5、Jackson常用注解 JsonProperty 自定义属性在序列化和反序列化过程中所对应的JSON字段的名称,还可以指定是否序列化和反序列化。属性如下&#xff1a; value&#xff1a;设置属性的名称。一般当JSON串中的key与对象中的属性名称不一致&#xff0c;比如分别采用了下划线命名与…...

MySQL-事务

事务 事务&#xff0c;一般指的是数据库事务&#xff0c;事务(Transaction)是访问并可能更新数据库中各种数据项的一个程序执行单元(unit)。 事务具有四个特性&#xff0c;即我们常说的ACID特性&#xff1a; 原子性 指事务是一个不可分割的工作单位&#xff0c;事务中的操作…...

课题推荐——无人机在UWB环境下基于TOA/TDOA/AOA的室内定位与精度对比

随着无人机在工业检测、仓储物流、应急救援等室内场景的广泛应用&#xff0c;高精度室内定位技术成为关键支撑。超宽带&#xff08;UWB&#xff09;技术凭借其高时间分辨率、强抗多径能力等优势&#xff0c;成为室内定位的主流方案。然而&#xff0c;不同的定位方法&#xff08…...

Qt6.8.2创建WebAssmebly项目使用FFmpeg资源

Qt6新出了WebAssmebly功能&#xff0c;可以将C写的软件到浏览器中运行&#xff0c;最近一段时间正在研究这方便内容&#xff0c;普通的控件响应都能实现&#xff0c;今天主要为大家分享如何将FFmpeg中的功能应用到浏览器中。 开发环境&#xff1a;window11&#xff0c;Qt6.8.2…...

【CSS】Tailwind CSS 与传统 CSS:设计理念与使用场景对比

1. 开发方式 1.1 传统 CSS 手写 CSS&#xff1a;你需要手动编写 CSS 规则&#xff0c;定义类名、ID 或元素选择器&#xff0c;并为每个元素编写样式。 分离式开发&#xff1a;HTML 和 CSS 通常是分离的&#xff0c;HTML 中通过类名或 ID 引用 CSS 文件中的样式。 示例&#…...

Server-Sent Events

Server-Sent Events (SSE) 是一种允许服务器向客户端推送实时更新的技术。 1. 创建 SSE 连接 export default {data() {return {eventSource: null,};},onLoad() {this.initSSE();},methods: {initSSE() {// 创建 SSE 连接this.eventSource new EventSource(https://api/xxxx…...

(十 九)趣学设计模式 之 中介者模式!

目录 一、 啥是中介者模式&#xff1f;二、 为什么要用中介者模式&#xff1f;三、 中介者模式的实现方式四、 中介者模式的优缺点五、 中介者模式的应用场景六、 总结 &#x1f31f;我的其他文章也讲解的比较有趣&#x1f601;&#xff0c;如果喜欢博主的讲解方式&#xff0c;…...

k8s概念及k8s集群部署(Centos7)

Centos7部署k8s集群 部署之前&#xff0c;先简单说下k8s是个啥&#xff1a; 一、k8s简介&#xff1a; k8s&#xff0c;全称&#xff1a;kubernetes&#xff0c;它可以看作是一个分布式系统支撑平台。k8s的作用&#xff1a; 1、故障自愈&#xff1a; k8s这个玩意可以监控容器…...

山东省网络安全技能大赛历年真题 山东网络安全创意大赛

刚参加完比赛&#xff0c;总结一波。 第一题:签到题 下载完成之后发现是个.exe文件 杂项万年套路步骤,用winhex打开&#xff0c;搜索flag&#xff0c;找到&#xff0c;提交。。。 第二题&#xff1a;qiu咪 发现是一张flag.png。。万年套路 用winhex打开。啥也没发现&#xf…...

数字后端培训实战项目六大典型后端实现案例

Q1:请教一个问题&#xff0c;cts.sdc和func.sdc在innovus用如何切换&#xff1f;在flow哪一步切换输入cts.sdc&#xff1f;哪一步切换到func.sdc&#xff0c;具体如何操作&#xff1f; 这个学员其实就是在问使用分段长clock tree时具体的flow流程是怎么样的&#xff1f;针对时…...

Redis网络模型

redis为什么快 1.主要原因是因为redis是基于内存操作的&#xff0c;比起直接操作磁盘速度快好几倍 2.基于内存的数据库瓶颈主要是在网络io这一块&#xff0c;redis网络模型采用io多路复用技术能够高效的处理并发连接。 3.redis使用单线程执行命令&#xff0c;可以避免上下文…...

RangeError: Radix must be an integer between 2 and 36

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》、《前端求职突破计划》 &#x1f35a; 蓝桥云课签约作者、…...

题海拾贝:P9241 [蓝桥杯 2023 省 B] 飞机降落

Hello大家好&#xff01;很高兴我们又见面啦&#xff01;给生活添点passion&#xff0c;开始今天的编程之路&#xff01; 我的博客&#xff1a;<但凡. 我的专栏&#xff1a;《编程之路》、《数据结构与算法之美》、《题海拾贝》 欢迎点赞&#xff0c;关注&#xff01; 1、题…...

机器学习数学基础:38.统计学模型变量

统计学模型变量类型详解教程 一、外生变量&#xff08;Exogenous Variable&#xff09; &#xff08;一&#xff09;定义与别名 外生变量是模型中不受其他变量影响的独立变量&#xff0c;通常充当自变量。其常见的别名有&#xff1a; 外部变量&#xff08;External Variabl…...

FPGA标准库-Open Logic

在现代技术发展的浪潮中&#xff0c;开源项目已经成为了推动技术创新和发展的核心力量。无论是人工智能、区块链、云计算&#xff0c;还是传统的嵌入式开发、操作系统&#xff0c;开源项目都在其中扮演着至关重要的角色。它们不仅促进了技术的快速迭代&#xff0c;也为全球开发…...

Git 批量合并 Commit 并且保留之前的 Commit 快速实现的思路

文章目录 需求Rebase / Pick / squashVim 的快速全局字符串替换 需求 我想把如下的提交 commit&#xff0c;变成一个 Commit&#xff0c;并且合并这些 Commit 的消息到一个节点 Rebase / Pick / squash 我合并到 5e59217 这个hash 上&#xff0c;这样合并后会保留两个 Commit…...

Jackson 详解

目录 前言 Jackson 是 Java 生态中最流行的 JSON 处理库之一&#xff0c;广泛应用于 RESTful API、数据存储和传输等场景。它提供了高效、灵活的 JSON 序列化和反序列化功能&#xff0c;支持注解、模块化设计和多种数据格式&#xff08;如 XML、YAML&#xff09;。本文将详细介…...

03 HarmonyOS Next仪表盘案例详解(二):进阶篇

温馨提示&#xff1a;本篇博客的详细代码已发布到 git : https://gitcode.com/nutpi/HarmonyosNext 可以下载运行哦&#xff01; 文章目录 前言1. 响应式设计1.1 屏幕适配1.2 弹性布局 2. 数据展示与交互2.1 数据卡片渲染2.2 图表区域 3. 事件处理机制3.1 点击事件处理3.2 手势…...

【QT】-易错点笔记-2025-2-7

1,QList<phy_simulator*> pList;为空不能append()追加,要先new,再用 QList<phy_simulator> pList为空时,确实不能调用 append() 方法。原因很简单,QList 是一个类对象,在 C++ 中,指针本身并不代表它指向的对象。因此,当你有一个指向 QList<phy_simulato…...

嵌入式 ARM Linux 系统构成(3):根文件系统(Root File System)

目录 一、根文件系统的原理与重要性 二、根文件系统的构成 2.1. 基本目录结构 2.2. 核心组件 2.3. 设备驱动 2.4. 网络工具和协议 2.5. 调试工具 三、根文件系统的制作方法 四、根文件系统的测试 五、构建根文件系统的关键技术 5.1. 最小化构建工具 5.2. 关键配置文…...

electron + vue3 + vite 主进程到渲染进程的单向通信

用示例讲解下主进程到渲染进程的单向通信 初始版本项目结构可参考项目&#xff1a;https://github.com/ylpxzx/electron-forge-project/tree/init_project 主进程到渲染进程&#xff08;单向&#xff09; 以Electron官方文档给出的”主进程主动触发动作&#xff0c;发送内容给渲…...

基于Python实现的智能旅游推荐系统(Django)

基于Python实现的智能旅游推荐系统(Django) 开发语言:Python 数据库&#xff1a;MySQL所用到的知识&#xff1a;Django框架工具&#xff1a;pycharm、Navicat 系统功能实现 总体设计 系统实现 系统首页模块 统首页页面主要包括首页&#xff0c;旅游资讯&#xff0c;景点信息…...

分布式存储—— HBase数据模型 详解

目录 1.3 HBase数据模型 1.3.1 两类数据模型 1.3.2 数据模型的重要概念 1.3.3 数据模型的操作 1.3.4 数据模型的特殊属性 1.3.5 CAP原理与最终一致性 1.3.6 小结 本文章参考、总结于学校教材课本《HBase开发与应用》 1.3 HBase数据模型 在开始学习HBase之前非常…...

使用AI整理知识点--WPF动画核心知识

一、WPF动画基础 1、动画本质 通过随时间改变依赖属性值实现视觉效果&#xff08;如位置、透明度、颜色等&#xff09;。 依赖属性必须支持 DependencyProperty&#xff0c;且需是可动画的&#xff08;如 Double, Color, Point 等&#xff09;。 2、动画三要素 起始值 (Fr…...

计算光学成像与光学计算概论

计算光学成像所涉及研究的内容非常广泛&#xff0c;虽然计算光学成像的研究内容是发散的&#xff0c;但目的都是一致的&#xff1a;如何让相机记录到客观实物更丰富的信息&#xff0c;延伸并扩展人眼的视觉感知。总的来说&#xff0c;计算光学成像现阶段已经取得了很多令人振奋…...

100天精通Python(爬虫篇)——第115天:爬虫在线小工具_Curl转python爬虫代码工具(快速构建初始爬虫代码)

文章目录 一、curl是什么&#xff1f;二、爬虫在线小工具&#xff08;牛逼puls&#xff09;三、实战操作 一、curl是什么&#xff1f; 基本概念&#xff1a;curl 支持多种协议&#xff0c;如 HTTP、HTTPS、FTP、SFTP 等&#xff0c;可用于从服务器获取数据或向服务器发送数据&a…...

点云软件VeloView开发环境搭建与编译

官方编译说明 LidarView / LidarView-Superbuild GitLab 我的编译过程&#xff1a; 安装vs2019&#xff0c;windows sdk&#xff0c;qt5.14.2&#xff08;没安装到5.15.7&#xff09;&#xff0c;git&#xff0c;cmake3.31&#xff0c;python3.7.9&#xff0c;ninja下载放到…...

PHP配置虚拟主机

虚拟主机: 不是真实存在的主机, 因为一台电脑理论上讲只能作为一个网站: 事实上,一个网站是一个文件夹. 在本地开发中&#xff0c;通过虚拟主机配置可以实现多域名独立访问不同项目目录&#xff08;如 www.project1.test 和 www.project2.test&#xff09;&#xff0c;以 ”XAM…...

笔记四:C语言中的文件和文件操作

Faye&#xff1a;只要有正确的伴奏&#xff0c;什么都能变成好旋律。 ---------《寻找天堂》 目录 一、文件介绍 1.1程序文件 1.2 数据文件 1.3 文件名 二、文件的打开和关闭 2.1 文件指针 2.2.文件的打开和关闭 2.3 文件读取结束的判定 三、 文件的顺序读写 3.1 顺序读写…...

PyTorch中的线性变换:nn.Parameter VS nn.Linear

self.weight nn.Parameter(torch.randn(in_channels, out_channels)) 和 self.linear nn.Linear(in_channels, out_channels) 并不完全一致&#xff0c;尽管它们都可以用于实现线性变换&#xff08;即全连接层&#xff09;&#xff0c;但它们的使用方式和内部实现有所不同。 …...

计算机网络(1) 网络通信基础,协议介绍,通信框架

网络结构模式 C/S-----客户端和服务器 B/S -----浏览器服务器 MAC地址 每一个网卡都拥有独一无二的48位串行号&#xff0c;也即MAC地址&#xff0c;也叫做物理地址、硬件地址或者是局域网地址 MAC地址表示为12个16进制数 如00-16-EA-AE-3C-40 &#xff08;每一个数可以用四个…...

PHP之常量

在你有别的编程语言的基础下&#xff0c;你想学习PHP&#xff0c;可能要了解的一些关于常量的信息。 PHP中的常量不用指定数据类型&#xff0c;可以使用两次方法定义。 使用const //定义常量 const B 2; echo B . PHP_EOL;使用define define("A", 1); echo A . P…...

苦瓜书盘官网,免费pdf/mobi电子书下载网站

苦瓜书盘&#xff08;kgbook&#xff09;是一个专注于提供6英寸PDF和MOBI格式电子书的免费下载平台&#xff0c;专为电子阅读器用户设计。该平台为用户提供了丰富的电子书资源&#xff0c;涵盖文学、历史、科学、技术等多个领域&#xff0c;旨在打造一个全面的电子书资源库。用…...

通过 Docker openssl 容器生成生成Nginx证书文件

使用 alpine/openssl 镜像生成证书 1. 拉取容器 [rootlocalhost ~]# docker run --rm alpine/openssl version OpenSSL 3.3.3 11 Feb 2025 (Library: OpenSSL 3.3.3 11 Feb 2025)2. 运行 alpine/openssl 生成证书&#xff08;Nginx&#xff09; # 生成1个.key私钥文件&#…...

第四十一:Axios 模型的 get ,post请求

Axios 的 get 请求方式 9.双向数据绑定 v-model - 邓瑞编程 Axios 的 post 请求方式&#xff1a;...

从零开始用react + tailwindcss + express + mongodb实现一个聊天程序(十) 收发消息

1.聊天框 首先我们完善前端的消息输入框 components下面新建MessageInput组件 import { useState,useRef } from "react" import {X,Image,Send} from "lucide-react"import { useChatStore } from "../store/useChatStore" import toast from…...

Spring Boot面试问答

1. Spring Boot 基础知识 问题 1:什么是Spring Boot?它与Spring框架有何不同? 回答: Spring Boot是基于Spring框架的一个开源框架,旨在简化新Spring应用的初始化和开发过程。与传统的Spring框架相比,Spring Boot提供了以下优势: 自动配置:根据项目依赖自动配置Spring…...

win11编译llama_cpp_python cuda128 RTX30/40/50版本

Geforce 50xx系显卡最低支持cuda128&#xff0c;llama_cpp_python官方源只有cpu版本&#xff0c;没有cuda版本&#xff0c;所以自己基于0.3.5版本源码编译一个RTX 30xx/40xx/50xx版本。 1. 前置条件 1. 访问https://developer.download.nvidia.cn/compute/cuda/12.8.0/local_…...

2025-03-07 学习记录--C/C++-C语言 截取字符串的三种方法

C语言 截取字符串 ⭐️ 方法 1&#xff1a;使用 strncpy 函数 &#x1f36d; strncpy 是C标准库中的一个函数&#xff0c;用于从源字符串中复制指定长度的字符到目标字符串中。【详情请查看我的另一篇文章】 示例代码&#xff1a;&#x1f330; #include <stdio.h> #in…...

doris: Oracle

Apache Doris JDBC Catalog 支持通过标准 JDBC 接口连接 Oracle 数据库。本文档介绍如何配置 Oracle 数据库连接。 使用须知​ 要连接到 Oracle 数据库&#xff0c;您需要 Oracle 19c, 18c, 12c, 11g 或 10g。 Oracle 数据库的 JDBC 驱动程序&#xff0c;您可以从 Maven 仓库…...

【神经网络】python实现神经网络(一)——数据集获取

一.概述 在文章【机器学习】一个例子带你了解神经网络是什么中&#xff0c;我们大致了解神经网络的正向信息传导、反向传导以及学习过程的大致流程&#xff0c;现在我们正式开始进行代码的实现&#xff0c;首先我们来实现第一步的运算过程模拟讲解&#xff1a;正向传导。本次代…...

自学嵌入式第27天------TCP和UDP,URL爬虫

1. TCP和UDP区别 **TCP&#xff08;传输控制协议&#xff09;和UDP&#xff08;用户数据报协议&#xff09;**是两种主要的传输层协议&#xff0c;它们在数据传输方式上有显著区别&#xff1a; 连接性&#xff1a; TCP是面向连接的协议&#xff0c;通信前需通过三次握手建立连…...

【虚拟化】Docker Desktop 架构简介

在阅读前您需要了解 docker 架构&#xff1a;Docker architecture WSL 技术&#xff1a;什么是 WSL 2 1.Hyper-V backend 我们知道&#xff0c;Docker Desktop 最开始的架构的后端是采用的 Hyper-V。 Docker daemon (dockerd) 运行在一个 Linux distro (LinuxKit build) 中&…...

C#程序加密与解密Demo程序示例

目录 一、加密程序功能介绍 1、加密用途 2、功能 3、程序说明 4、加密过程 5、授权的注册文件保存方式 二、加密程序使用步骤 1、步骤一 ​编辑2、步骤二 3、步骤三 4、步骤四 三、核心代码说明 1、获取电脑CPU 信息 2、获取硬盘卷标号 3、机器码生成 3、 生成…...

200W数据需要去重,如何优化?

优化去重逻辑的时间取决于多个因素&#xff0c;包括数据量、数据结构、硬件性能&#xff08;CPU、内存&#xff09;、去重算法的实现方式等。以下是对优化去重逻辑的详细分析和预期优化效果&#xff1a; 1. 去重逻辑的性能瓶颈 时间复杂度&#xff1a;使用HashSet去重的时间复…...

理解 UDP 协议与实战:Android 使用 UDP 发送和接收消息

一、UDP 协议概述 UDP&#xff08;User Datagram Protocol&#xff0c;用户数据报协议&#xff09;是一个无连接的网络通信协议。与 TCP 不同&#xff0c;UDP 不建立连接&#xff0c;不保证数据的顺序和完整性。它的特点是简单、高效&#xff0c;适用于实时性要求较高、对数据…...