DeepSeek、WebGUI、RAG本地部署实践
部署本地LLM
本地部署一个deepseek-r1:8b
如果没有太多定制化和性能需求,暂不考虑vllm等框架。
简单起见,我们使用ollama,参见官网 https://ollama.com/。
点击下载

下载后直接安装即可,这里本人使用的是Macbook M1,所以没有考虑GPU的问题,有GPU的小伙伴可以再搜一下。
安装完就可以直接命令行开始运行,运行成功后即可对话,非常简单。
ollama run deepseek-r1:8b

ollama默认在11434端口启动HTTP API服务,部署完之后即可使用,接下来的WebGUI和RAGFlow都可以基于此HTTP API集成本地的ollama。
使用本地LLM的聊天WebGUI
google搜索ollama GUI,有两个选择
- ollama-gui
- Open-webui

ollama-gui
github https://github.com/HelgeSverre/ollama-gui
有几种部署的办法
- 下载项目部署
- 用部署好的网页,但是使用本地的LLM
- Docker
这里我们选择部署好的网页,直接打开https://ollama-gui.vercel.app,在右边填上http://localhost:11434/api即可

Open-webui
github https://github.com/open-webui/open-webui
其支持
- python pip下载部署
- docker部署
我们这里使用docker部署,命令如下。其中host.docker.internal:host-gateway是docker容器视角中宿主机的地址,让容器中的open-webui可以访问宿主机本地部署的ollama LLM。
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
容器运行后浏览器打开 http://localhost:3000/,一路确定配置一下账号就可以了

这个页面比ollama-gui好看,风格和现在的Chatgpt页面一样

部署本地RAG服务
RAG的技术如下所示,其需要
- 知识库:一些相关的文本、语音数据,给用户搜索提供上下文
- embedding模型:用来embed用户输入和知识库
- 向量数据库:存储知识库,根据数据(如文本)相似度检索相关上下文数据
- LLM:处理输入的prompt,生成结果

在这里参考网上教程,我们使用ragflow
- 容易安装
- 可以集成主流chat、embedding、Rerank、Img2txt、Sequence2txt和TTS模型,支持本地部署模型或OpenAPI
- 提供知识库的解析存储
