基于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专业版 |
CPU | 12th Gen Intel® Core™ i5-12500H 2.50 GHz |
RAM | 64.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 🌟 | 轻量级本地知识库,支持多格式文档 | 需要购买专业版,普通版有限制 |
OpenWebUI | ChatGPT 风格 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 能力
-
专属 AI 客服
通过导入文档或已有问答对进行训练,让 AI 模型能根据你的文档以交互式对话方式回答问题。 -
简单易用的可视化界面
FastGPT 采用直观的可视化界面设计,为各种应用场景提供了丰富实用的功能。通过简洁易懂的操作步骤,可以轻松完成 AI 客服的创建和训练流程。 -
自动数据预处理
提供手动输入、直接分段、LLM 自动处理和 CSV 等多种数据导入途径,其中“直接分段”支持通过 PDF、WORD、Markdown 和 CSV 文档内容作为上下文。FastGPT 会自动对文本数据进行预处理、向量化和 QA 分割,节省手动训练时间,提升效能。 -
工作流编排
基于 Flow 模块的工作流编排,可以帮助你设计更加复杂的问答流程。例如查询数据库、查询库存、预约实验室等。 -
强大的 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配置本地知识库…...
学习前置知识第二十天
学习前置知识第二十天 今天要做什么? 1:二进制 2:进制转换关系 3:二进制反汇编 4:常见字符编码 5:什么是编码和解码 6:编码表 一:二进制概述 为什么计算机只能读懂二进制?原因是因为计算机是需要电的,电路设计只…...
面试准备——云相册项目(1)基础
项目概述 云相册项目旨在为用户提供便捷的照片存储、管理和访问服务。通过客户端与服务器的配合,实现照片的上传、下载以及一些基本的命令交互功能,方便用户在不同设备上随时查看和管理自己的相册。 技术要点 编程语言与环境:使用 C 语言开…...
c语言程序设计--数组里面考察最多的一个知识点-考研冲刺复试面试问答题。
数组 关于数组的知识脑海里面先有一个大概,知道定义和存储方式 目录 数组 1、数组是什么? 2、strlen和sizeof的区别是什么? 3、数组名是什么? 1、数组是什么? 定义:数组是一组相同类型元素的集合。数…...
Json工具(一)- Jackson(续)
5、Jackson常用注解 JsonProperty 自定义属性在序列化和反序列化过程中所对应的JSON字段的名称,还可以指定是否序列化和反序列化。属性如下: value:设置属性的名称。一般当JSON串中的key与对象中的属性名称不一致,比如分别采用了下划线命名与…...
MySQL-事务
事务 事务,一般指的是数据库事务,事务(Transaction)是访问并可能更新数据库中各种数据项的一个程序执行单元(unit)。 事务具有四个特性,即我们常说的ACID特性: 原子性 指事务是一个不可分割的工作单位,事务中的操作…...
课题推荐——无人机在UWB环境下基于TOA/TDOA/AOA的室内定位与精度对比
随着无人机在工业检测、仓储物流、应急救援等室内场景的广泛应用,高精度室内定位技术成为关键支撑。超宽带(UWB)技术凭借其高时间分辨率、强抗多径能力等优势,成为室内定位的主流方案。然而,不同的定位方法(…...
Qt6.8.2创建WebAssmebly项目使用FFmpeg资源
Qt6新出了WebAssmebly功能,可以将C写的软件到浏览器中运行,最近一段时间正在研究这方便内容,普通的控件响应都能实现,今天主要为大家分享如何将FFmpeg中的功能应用到浏览器中。 开发环境:window11,Qt6.8.2…...
【CSS】Tailwind CSS 与传统 CSS:设计理念与使用场景对比
1. 开发方式 1.1 传统 CSS 手写 CSS:你需要手动编写 CSS 规则,定义类名、ID 或元素选择器,并为每个元素编写样式。 分离式开发:HTML 和 CSS 通常是分离的,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…...
(十 九)趣学设计模式 之 中介者模式!
目录 一、 啥是中介者模式?二、 为什么要用中介者模式?三、 中介者模式的实现方式四、 中介者模式的优缺点五、 中介者模式的应用场景六、 总结 🌟我的其他文章也讲解的比较有趣😁,如果喜欢博主的讲解方式,…...
k8s概念及k8s集群部署(Centos7)
Centos7部署k8s集群 部署之前,先简单说下k8s是个啥: 一、k8s简介: k8s,全称:kubernetes,它可以看作是一个分布式系统支撑平台。k8s的作用: 1、故障自愈: k8s这个玩意可以监控容器…...
山东省网络安全技能大赛历年真题 山东网络安全创意大赛
刚参加完比赛,总结一波。 第一题:签到题 下载完成之后发现是个.exe文件 杂项万年套路步骤,用winhex打开,搜索flag,找到,提交。。。 第二题:qiu咪 发现是一张flag.png。。万年套路 用winhex打开。啥也没发现…...
数字后端培训实战项目六大典型后端实现案例
Q1:请教一个问题,cts.sdc和func.sdc在innovus用如何切换?在flow哪一步切换输入cts.sdc?哪一步切换到func.sdc,具体如何操作? 这个学员其实就是在问使用分段长clock tree时具体的flow流程是怎么样的?针对时…...
Redis网络模型
redis为什么快 1.主要原因是因为redis是基于内存操作的,比起直接操作磁盘速度快好几倍 2.基于内存的数据库瓶颈主要是在网络io这一块,redis网络模型采用io多路复用技术能够高效的处理并发连接。 3.redis使用单线程执行命令,可以避免上下文…...
RangeError: Radix must be an integer between 2 and 36
🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》、《前端求职突破计划》 🍚 蓝桥云课签约作者、…...
题海拾贝:P9241 [蓝桥杯 2023 省 B] 飞机降落
Hello大家好!很高兴我们又见面啦!给生活添点passion,开始今天的编程之路! 我的博客:<但凡. 我的专栏:《编程之路》、《数据结构与算法之美》、《题海拾贝》 欢迎点赞,关注! 1、题…...
机器学习数学基础:38.统计学模型变量
统计学模型变量类型详解教程 一、外生变量(Exogenous Variable) (一)定义与别名 外生变量是模型中不受其他变量影响的独立变量,通常充当自变量。其常见的别名有: 外部变量(External Variabl…...
FPGA标准库-Open Logic
在现代技术发展的浪潮中,开源项目已经成为了推动技术创新和发展的核心力量。无论是人工智能、区块链、云计算,还是传统的嵌入式开发、操作系统,开源项目都在其中扮演着至关重要的角色。它们不仅促进了技术的快速迭代,也为全球开发…...
Git 批量合并 Commit 并且保留之前的 Commit 快速实现的思路
文章目录 需求Rebase / Pick / squashVim 的快速全局字符串替换 需求 我想把如下的提交 commit,变成一个 Commit,并且合并这些 Commit 的消息到一个节点 Rebase / Pick / squash 我合并到 5e59217 这个hash 上,这样合并后会保留两个 Commit…...
Jackson 详解
目录 前言 Jackson 是 Java 生态中最流行的 JSON 处理库之一,广泛应用于 RESTful API、数据存储和传输等场景。它提供了高效、灵活的 JSON 序列化和反序列化功能,支持注解、模块化设计和多种数据格式(如 XML、YAML)。本文将详细介…...
03 HarmonyOS Next仪表盘案例详解(二):进阶篇
温馨提示:本篇博客的详细代码已发布到 git : https://gitcode.com/nutpi/HarmonyosNext 可以下载运行哦! 文章目录 前言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 主进程到渲染进程的单向通信
用示例讲解下主进程到渲染进程的单向通信 初始版本项目结构可参考项目:https://github.com/ylpxzx/electron-forge-project/tree/init_project 主进程到渲染进程(单向) 以Electron官方文档给出的”主进程主动触发动作,发送内容给渲…...
基于Python实现的智能旅游推荐系统(Django)
基于Python实现的智能旅游推荐系统(Django) 开发语言:Python 数据库:MySQL所用到的知识:Django框架工具:pycharm、Navicat 系统功能实现 总体设计 系统实现 系统首页模块 统首页页面主要包括首页,旅游资讯,景点信息…...
分布式存储—— 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、动画本质 通过随时间改变依赖属性值实现视觉效果(如位置、透明度、颜色等)。 依赖属性必须支持 DependencyProperty,且需是可动画的(如 Double, Color, Point 等)。 2、动画三要素 起始值 (Fr…...
计算光学成像与光学计算概论
计算光学成像所涉及研究的内容非常广泛,虽然计算光学成像的研究内容是发散的,但目的都是一致的:如何让相机记录到客观实物更丰富的信息,延伸并扩展人眼的视觉感知。总的来说,计算光学成像现阶段已经取得了很多令人振奋…...
100天精通Python(爬虫篇)——第115天:爬虫在线小工具_Curl转python爬虫代码工具(快速构建初始爬虫代码)
文章目录 一、curl是什么?二、爬虫在线小工具(牛逼puls)三、实战操作 一、curl是什么? 基本概念:curl 支持多种协议,如 HTTP、HTTPS、FTP、SFTP 等,可用于从服务器获取数据或向服务器发送数据&a…...
点云软件VeloView开发环境搭建与编译
官方编译说明 LidarView / LidarView-Superbuild GitLab 我的编译过程: 安装vs2019,windows sdk,qt5.14.2(没安装到5.15.7),git,cmake3.31,python3.7.9,ninja下载放到…...
PHP配置虚拟主机
虚拟主机: 不是真实存在的主机, 因为一台电脑理论上讲只能作为一个网站: 事实上,一个网站是一个文件夹. 在本地开发中,通过虚拟主机配置可以实现多域名独立访问不同项目目录(如 www.project1.test 和 www.project2.test),以 ”XAM…...
笔记四:C语言中的文件和文件操作
Faye:只要有正确的伴奏,什么都能变成好旋律。 ---------《寻找天堂》 目录 一、文件介绍 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) 并不完全一致,尽管它们都可以用于实现线性变换(即全连接层),但它们的使用方式和内部实现有所不同。 …...
计算机网络(1) 网络通信基础,协议介绍,通信框架
网络结构模式 C/S-----客户端和服务器 B/S -----浏览器服务器 MAC地址 每一个网卡都拥有独一无二的48位串行号,也即MAC地址,也叫做物理地址、硬件地址或者是局域网地址 MAC地址表示为12个16进制数 如00-16-EA-AE-3C-40 (每一个数可以用四个…...
PHP之常量
在你有别的编程语言的基础下,你想学习PHP,可能要了解的一些关于常量的信息。 PHP中的常量不用指定数据类型,可以使用两次方法定义。 使用const //定义常量 const B 2; echo B . PHP_EOL;使用define define("A", 1); echo A . P…...
苦瓜书盘官网,免费pdf/mobi电子书下载网站
苦瓜书盘(kgbook)是一个专注于提供6英寸PDF和MOBI格式电子书的免费下载平台,专为电子阅读器用户设计。该平台为用户提供了丰富的电子书资源,涵盖文学、历史、科学、技术等多个领域,旨在打造一个全面的电子书资源库。用…...
通过 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 生成证书(Nginx) # 生成1个.key私钥文件&#…...
第四十一:Axios 模型的 get ,post请求
Axios 的 get 请求方式 9.双向数据绑定 v-model - 邓瑞编程 Axios 的 post 请求方式:...
从零开始用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,llama_cpp_python官方源只有cpu版本,没有cuda版本,所以自己基于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:使用 strncpy 函数 🍭 strncpy 是C标准库中的一个函数,用于从源字符串中复制指定长度的字符到目标字符串中。【详情请查看我的另一篇文章】 示例代码:🌰 #include <stdio.h> #in…...
doris: Oracle
Apache Doris JDBC Catalog 支持通过标准 JDBC 接口连接 Oracle 数据库。本文档介绍如何配置 Oracle 数据库连接。 使用须知 要连接到 Oracle 数据库,您需要 Oracle 19c, 18c, 12c, 11g 或 10g。 Oracle 数据库的 JDBC 驱动程序,您可以从 Maven 仓库…...
【神经网络】python实现神经网络(一)——数据集获取
一.概述 在文章【机器学习】一个例子带你了解神经网络是什么中,我们大致了解神经网络的正向信息传导、反向传导以及学习过程的大致流程,现在我们正式开始进行代码的实现,首先我们来实现第一步的运算过程模拟讲解:正向传导。本次代…...
自学嵌入式第27天------TCP和UDP,URL爬虫
1. TCP和UDP区别 **TCP(传输控制协议)和UDP(用户数据报协议)**是两种主要的传输层协议,它们在数据传输方式上有显著区别: 连接性: TCP是面向连接的协议,通信前需通过三次握手建立连…...
【虚拟化】Docker Desktop 架构简介
在阅读前您需要了解 docker 架构:Docker architecture WSL 技术:什么是 WSL 2 1.Hyper-V backend 我们知道,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数据需要去重,如何优化?
优化去重逻辑的时间取决于多个因素,包括数据量、数据结构、硬件性能(CPU、内存)、去重算法的实现方式等。以下是对优化去重逻辑的详细分析和预期优化效果: 1. 去重逻辑的性能瓶颈 时间复杂度:使用HashSet去重的时间复…...
理解 UDP 协议与实战:Android 使用 UDP 发送和接收消息
一、UDP 协议概述 UDP(User Datagram Protocol,用户数据报协议)是一个无连接的网络通信协议。与 TCP 不同,UDP 不建立连接,不保证数据的顺序和完整性。它的特点是简单、高效,适用于实时性要求较高、对数据…...