操作系统:CentOS 7.9
CPU:支持 AVX 指令集的 x86_64 处理器
内存:64GB
存储:SSD 1TB 以上
GPU(可选)
一、组件介绍
Ollama
Ollama 是一个专为在本地机器上部署和运行大型语言模型(LLM)而设计的开源框架。它提供了一种便捷的方式来加载、运行和管理不同的自然语言处理(NLP)模型。主要特性包括:
支持多种 AI 模型:可运行 LLaMA、DeepSeek、Mistral 等不同的 LLM。
本地推理:支持离线运行,适用于私有化部署。
轻量级管理:提供简单的 CLI 命令,无需复杂配置。
DeepSeek-R1
DeepSeek-R1 是一种语义搜索模型,专注于通过深度学习算法对文本和数据进行语义理解和匹配。主要特点包括:
语义检索能力:在海量文档或数据集中进行高效搜索,超越传统关键词匹配。
对标 OpenAI o1:提供全面、详实的回答,能够生成结构化的输出。
适用于知识库增强(RAG):可结合 LLM 提升问答系统的准确性。
Ragflow
Ragflow 是一个 RAG(Retrieval-Augmented Generation)框架,旨在提升 AI 知识库的检索能力和生成效果。其核心功能包括:
文档索引与向量化:基于 DeepSeek-R1 进行高效检索。
检索增强生成(RAG):结合 Ollama 提供基于上下文的智能回答。
可扩展性强:支持本地或云端部署。
二、Ollama 安装与配置
# 下载并安装 Ollama Ollama 的安装脚本默认从国外服务器下载,国内访问较慢。可以使用代理或者手动下载。
#下载ollama_install.sh并保存
curl -fsSL https://ollama.com/install.sh -o ollama_install.sh
#使用github文件加速替换github下载地址
sed -i 's|https://ollama.com/download/ollama-linux|https://gh.llkk.cc/https://github.com/ollama/ollama/releases/download/v0.5.7/ollama-linux|g' ollama_install.sh
#增加可执行权限
chmod +x ollama_install.sh
#执行sh
sh ollama_install.sh
2.1 ollama常用命令
# 下载(拉取)指定 AI 模型
ollama pull <model-name> # 例如 ollama pull deepseek-r1
# 运行指定 AI 模型并进行对话
ollama run <model-name> # 例如 ollama run deepseek-r1
# 交互式对话模式
ollama chat <model-name>
# 列出本地可用模型
ollama list
# 删除本地模型
ollama rm <model-name>
# 创建或修改自定义模型
ollama create <model-name> -f <modelfile>
# 停止所有运行中的 Ollama 服务
ollama stop
# 启动 Ollama 后台服务(通常会自动运行)
ollama serve
三、部署Ragflow 进行 RAG 整合
3.1 需要安装git和docker-compose(建议v2.29版本及以上)
# 安装 Docker Compose(用于管理 Ragflow 相关服务)
wget https://github.com/docker/compose/releases/download/v2.29.0/docker-compose-linux-x86_64
# 移动 Docker Compose 到系统目录
mv docker-compose-linux-x86_64 /usr/local/bin/docker-compose
# 赋予执行权限
chmod +x /usr/local/bin/docker-compose
# 验证安装是否成功
docker-compose --version
# 克隆 Ragflow 代码仓库
git clone https://github.com/ragflow/ragflow.git
# 进入 Ragflow Docker 目录
cd ragflow/docker
# 赋予启动脚本可执行权限
chmod +x ./entrypoint.sh
# 通过 Docker Compose 启动 Ragflow
# 该命令会在后台运行 Ragflow 相关服务
docker-compose -f docker-compose.yml up -d
如果启动报错 Error response from daemon: invalid IP address in add-host: "host-gateway"是由于Docker 版本过旧:host-gateway
是 Docker 20.10.0 及以上版本才支持的功能。如果暂时无法升级 Docker,可以 删除 extra_hosts
里的 host-gateway
,或者换成:
extra_hosts: - "host.docker.internal:172.17.0.1"
如图
其中 172.17.0.1
是默认的 Docker 网桥网关(你也可以 ip a
看 docker0
的实际 IP)
修改后成功启动,使用ip+80端口可以访问到主页,注册一个账号然后登录。
四、使用RAGFlow
点击头像可以自定义一写配置,主要是先添加模型;我们是本地化部署了ollama所以选择本地模型,当然如果不想本地部署也可以选择DeepSeek、Tongyi等官方的key,但是这些数据就会发到公网。
添加chat模型
模型选择chat;
模型名称和ollama list中的chat模型名字一致;
基础url:http://host.docker.internal:11434 (docker访问宿主机要用host.docker.internal,ollama的端口是11434);
最大token 随便填的。
注意:ollama默认运行在127.0.0.1网段上,在ollama.service文件中添加
vi /etc/systemd/system/ollama.service
#在Environment= 后面加入
"OLLAMA_HOST=0.0.0.0:11434"
#重启ollama
systemctl daemon-reload
systemctl restart ollama.service
确保Ollama服务监听在本机上的所有网络接口上的指定端口上,从而允许从多个网络位置访问服务。
添加 Embedding 模型
系统模型设置中选择已添加的模型
创建知识库
上传之后选择解析方法
1. General(通用解析)
功能定位 作为基础解析器,处理常规文档(如TXT、PDF、Word、网页等),提取文本内容及基础结构(标题、段落、列表)。
技术特点
依赖格式解析库(如PyPDF2、python-docx)提取原始文本。
可能结合NLP进行基础分句或段落分割,但保留原文整体性。
2. Q&A(问答解析)
功能定位
专门处理问答形式的内容,将文档中的问题与答案结构化存储。
技术特点
使用规则匹配(如正则表达式)或序列标注模型识别"问题-答案"对。
可能结合语义相似度模型对相似问题进行聚类。
3. Table(表格解析)
功能定位
识别并提取文档中的表格数据,保留行列结构与数据类型。
技术特点
对扫描文档使用OCR表格识别(如Tesseract+OpenCV)。
对电子文档(Excel/Word表格)解析行列元数据。
可能结合模式匹配修复复杂合并单元格结构。
4. One(单文档解析)
功能定位
将整个文档视为不可分割的单一文本单元处理。
技术特点
跳过分块或分段,保留完整上下文。
可能结合长文本编码模型(如BERT的滑动窗口)生成嵌入。
5. Knowledge(知识解析)
功能定位
从文本中提取结构化知识(实体、关系、事件),构建知识图谱。
技术特点
使用NER模型(如Spacy、BERT-NER)识别实体。
关系抽取模型(如联合编码模型)建立实体间关联。
事件抽取技术识别时间、地点、动作等要素。
选择建议
内容类型:表格数据选Table,问答文档用Q&A,短文本用One。
任务需求:需实体关系选Knowledge,通用检索用General。
性能权衡:Knowledge解析计算成本高,General/One更轻量。
注意要开始解析--解析成功
创建聊天
选择聊天模型
测试 未完待续。。。。。。