#我把 Ollama 和 Open WebUI 装成了 HR 私有问答台
我当时的目标很小:让 HR 同事可以在内网机器上问制度、培训材料和常见流程,不把原文发到外部服务,也不承诺它能替代 HRBP 判断。这个边界很重要,因为本地模型最大的价值不是“更聪明”,而是让我们能低成本练习资料整理、权限拆分和问题追问。
1. 准备机器
我的测试机是 Ubuntu 22.04,32G 内存,一张 12G 显存的消费级显卡。没有 GPU 也能跑,只是响应会慢很多。先装基础依赖:
sudo apt update
sudo apt install -y curl git docker.io docker-compose-plugin
sudo usermod -aG docker $USER
重新登录后确认 Docker 可用:
docker run --rm hello-world
如果公司电脑已经被安全软件占用 8080 端口,后面 Open WebUI 的端口要提前换掉。我第一次就是卡在这里,页面打不开却一直怀疑是模型没启动。
2. 安装 Ollama 并拉模型
curl -fsSL https://ollama.com/install.sh | sh
ollama serve
ollama pull qwen2.5:7b-instruct
ollama pull bge-m3
qwen2.5:7b-instruct 用来回答,bge-m3 用来做向量检索。模型不是越大越好,HR 制度问答更怕胡说。我的经验是先用 7B 级别模型把流程跑稳,再根据资料复杂度换 14B 或更大的量化版本。检查接口:
curl http://127.0.0.1:11434/api/tags
能看到模型列表,说明 Ollama 侧已经通了。
3. 启动 Open WebUI
我用 Docker,方便后续迁移:
docker volume create open-webui
docker run -d --name open-webui --restart unless-stopped -p 3000:8080 -e OLLAMA_BASE_URL=http://host.docker.internal:11434 -v open-webui:/app/backend/data ghcr.io/open-webui/open-webui:main
Linux 上如果容器访问不到宿主机,可以改成 host 网络。浏览器打开 http://127.0.0.1:3000,第一个注册账号会成为管理员。这里不要用个人常用密码,我后来把它放到部门测试机时,专门建了一个只用于这个工具的管理员账号。
4. 导入 HR 资料
我没有一上来导入全部制度,而是先选三类低风险材料:入职流程、假勤说明、培训 FAQ。每份文档先做一次清洗:删除过期版本、补上发布日期、把表格拆成简短段落。知识库命名我用这种格式:
hr-handbook-2025-v3
onboarding-faq-2025-08
training-policy-public
提问时要求模型引用来源:
请只根据已上传知识库回答。回答末尾列出你依据的文档名;如果资料里没有答案,直接说“不确定”,不要猜。
这个 prompt 很朴素,但能挡掉不少自信胡说。
5. 我踩过的坑
第一是显存。模型能拉下来,不代表能稳定对话。多用户同时问的时候,7B 模型也可能把机器拖慢。先限定并发,比盲目升级机器更现实。第二是资料版本。AI 答错很多时候不是模型问题,而是我们把旧制度也喂进去了。我的做法是每个知识库名字带月份,过期资料不覆盖,先归档。第三是权限。不要把薪酬、绩效、员工关系敏感材料混进公共知识库。Open WebUI 可以做用户分组,但小团队早期更简单的办法是拆库:公开流程一库,HR 内部一库,敏感事项暂时不导入。
6. 复盘
这个方案适合做“HR 资料问答原型”,不适合直接变成正式员工服务入口。真正有价值的不是装好了一个界面,而是逼我们把制度、FAQ、流程口径整理成可被机器检索的形态。等这个原型连续跑一两个月,再决定要不要接 SSO、审计日志和正式知识库,会比一开始就采购大系统更稳。