项目思路来源:知识星球码农会锁
本人希望跟随知识星球大佬的开源项目进一步提升自己的开发能力与设计思维。先跟随 + 边敲边思考 + 后跳出的三步走策略彻底消化吸收项目。科技改变世界 你我一同进步!为成为一名优秀的开发架构师不断提升自己的小程~~
开始记录学习:
本篇文章从 Ollama DeepSeek 大模型本地部署、Postman 调用接口测试、Java 工程模块创建 三块内容做记录:
一、Ollama DeepSeek 大模型本地部署
本次项目中使用 Docker 部署 Ollama、Postgresql、Redis 环境的脚本。
提到部署项目提个小插曲:之前在公司实习的时候,老板想用公司服务器部署一个 OpenSPG/Kag 的开源项目,我当时接到任务时也没有部署经验,想着先拿自己租的 2c2g 的轻量级服务器跑跑看(现在回想起来真是太单纯了),按照官方给的 Docker 镜像部署完服务器就炸了,CPU直接飙到 99%,我一个 2c2g 的服务器何德何能可以跑需要 8c32g 的项目呢。但是当时不知道怎么回事,服务器卡爆,重开机也不行,重点是里面还跑着其它小项目(重启 Linux 服务自运行背大锅)。没办法只能 top 一下,找到占用 %cpu 最高的几个进程号 PID,然后一 一 kill 掉(手段极其残忍),在可以顺畅运行 linux 后再把镜像给删掉,虚惊一场。从这次经历后我格外小心,本次开发的项目要用到大模型的本地部署,虽然是 DeepSeek R1 的1.5b 的模型,大小有 1.1 个 G,按理来讲 2c4g 的服务器差不多够用了,但我还是氪金升级为 4c8g 的了,笑死~~

本次项目的 docker 文件部分核心内容如下:
services:
# Ollama 容器
ollama:
image: registry.cn-hangzhou.aliyuncs.com/xfg-studio/ollama:0.5.10
container_name: ollama
restart: unless-stopped
ports:
- "11434:11434"
# Redis 容器
redis:
image: registry.cn-hangzhou.aliyuncs.com/xfg-studio/redis:6.2
container_name: redis
restart: always
hostname: redis
privileged: true
ports:
- 16379:6379
volumes:
- ./redis/redis.conf:/usr/local/etc/redis/redis.conf
command: redis-server /usr/local/etc/redis/redis.conf
networks:
- my-network
healthcheck:
test: [ "CMD", "redis-cli", "ping" ]
interval: 10s
timeout: 5s
retries: 3
# Postgresql 容器
vector_db:
image: registry.cn-hangzhou.aliyuncs.com/xfg-studio/pgvector:v0.5.0
container_name: vector_db
restart: always
environment:
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=postgres
- POSTGRES_DB=ai-rag-knowledge
- PGPASSWORD=postgres
volumes:
- ./pgvector/sql/init.sql:/docker-entrypoint-initdb.d/init.sql
logging:
options:
max-size: 10m
max-file: "3"
ports:
- '15432:5432'
healthcheck:
test: "pg_isready -U postgres -d ai-rag-knowledge"
interval: 2s
timeout: 20s
retries: 10
networks:
- my-network
networks:
my-network:
driver: bridge
运行 docker 命令开始部署,部署完成后进入 Ollama 管理后台执行安装模型脚本:
ollama pull deepseek-r1:1.5b
ollama pull nomic-embed-text
至此部署任务已完成
二、Postman 调用接口测试
在 Postman 中导入 curl 请求命令


大模型本地部署成功,可以开始构建项目调 API 啦~~
三、Java 工程模块创建

大体的项目模块如下:
父工程为 ai-rag-knowledge
三个子模块 api、app、trigger
api 模块:主要定义接口
app 模块:存放配置信息、启动类
trigger 模块:实现 http 相关的 Controller 接口
环境都配置完成开始业务开发

No responses yet