项目思路来源:知识星球码农会锁

本人希望跟随知识星球大佬的开源项目进一步提升自己的开发能力与设计思维。先跟随 + 边敲边思考 + 后跳出的三步走策略彻底消化吸收项目。科技改变世界 你我一同进步!为成为一名优秀的开发架构师不断提升自己的小程~~

开始记录学习:

本篇文章从 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 接口

环境都配置完成开始业务开发

Categories:

Tags:

No responses yet

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注