一、环境搭建与准备阶段(第 3--4 周)
-
开发环境配置
-
安装 Python 3.10+、Go 1.21+、Node.js + React ok
-
部署向量数据库:Milvus / PGVector 二选一
-
方法 A:Milvus(最简单,Docker 一键启动)
一、前置条件
已安装并启动 Docker Desktop ,新建专属文件夹(如 milvus)
二、核心部署步骤
-
清理旧容器 / 文件删除无效容器与错误配置文件
-
创建配置文件 新建
docker-compose.yml,粘贴官方标准配置version: '3.5'
services:
etcd:
container_name: milvus-etcd
image: quay.io/coreos/etcd:v3.5.5
environment:
- ETCD_AUTO_COMPACTION_MODE=revision
- ETCD_AUTO_COMPACTION_RETENTION=1000
- ETCD_QUOTA_BACKEND_BYTES=4294967296
- ETCD_SNAPSHOT_COUNT=50000
volumes:
- ./_volumes/etcd:/etcd
command: etcd -advertise-client-urls=http://etcd:2379 -listen-client-urls http://0.0.0.0:2379 --data-dir /etcd
restart: unless-stopped
minio:
container_name: milvus-minio
image: minio/minio:RELEASE.2023-03-20T20-16-18Z
environment:
MINIO_ACCESS_KEY: minioadmin
MINIO_SECRET_KEY: minioadmin
volumes:
- ./_volumes/minio:/minio_data
command: minio server /minio_data
restart: unless-stopped
standalone:
container_name: milvus-standalone
image: milvusdb/milvus:v2.3.8
command: ["milvus", "run", "standalone"]
environment:
ETCD_ENDPOINTS: etcd:2379
MINIO_ADDRESS: minio:9000
volumes:
- ./_volumes/milvus:/var/lib/milvus
ports:
- "19530:19530"
- "9091:9091"
depends_on:
- etcd
- minio
restart: unless-stopped -
一键启动 执行
docker compose up -d启动 Milvus 及其依赖(etcd、minio) -

方法 B:PGVector(PostgreSQL + 向量插件)
- 安装 PostgreSQL
- 安装 pgvector 插件
- 连接端口:
5432
创建配置文件
新建 docker-compose.yml,粘贴以下内容:
yaml
version: '3.8'
services:
pgvector:
container_name: pgvector-db
image: pgvector/pgvector:pg16 # 官方镜像,含 pgvector 扩展
ports:
- "5432:5432" # 端口映射
environment:
POSTGRES_USER: postgres # 用户名
POSTGRES_PASSWORD: postgres # 密码
POSTGRES_DB: fund_vector_db # 初始化数据库(基金文档专用)
volumes:
- pgdata:/var/lib/postgresql/data # 数据持久化
restart: unless-stopped # 自动重启
volumes:
pgdata: # 命名卷,防止数据丢失
步骤 2:启动服务
powershell
docker compose up -d
三、验证部署成功
1. 进入容器执行 SQL
powershell
# 进入 PostgreSQL 容器
docker exec -it pgvector-db psql -U postgres -d fund_vector_db
# 在 PostgreSQL 命令行中执行:
CREATE EXTENSION vector; # 启用向量扩展
SELECT extname, extversion FROM pg_extension WHERE extname = 'vector'; # 验证安装
✅ 成功标志:返回 vector | 0.8.5(版本号可能不同)
2. 创建向量表(基金文档示例)
-- 创建基金文档向量存储表
CREATE TABLE fund_documents (
id BIGSERIAL PRIMARY KEY,
doc_id TEXT UNIQUE, -- 基金文档ID
content TEXT, -- 文档内容
embedding vector(1536) -- 1536维向量(适配OpenAI等模型)
);
-- 创建向量索引(提升检索速度)
CREATE INDEX ON fund_documents USING ivfflat (embedding vector_cosine_ops) WITH (lists = 100);
四、Python 连接代码(毕设直接用)
python
运行
import psycopg2
from psycopg2.extras import RealDictCursor
from pgvector.psycopg2 import register_vector # 需安装:pip install pgvector
# 连接配置
conn = psycopg2.connect(
host="localhost",
port=5432,
user="postgres",
password="postgres",
dbname="fund_vector_db"
)
register_vector(conn) # 注册向量类型
# 示例:插入向量
with conn.cursor(cursor_factory=RealDictCursor) as cur:
cur.execute("""
INSERT INTO fund_documents (doc_id, content, embedding)
VALUES (%s, %s, %s)
""", ("fund_001", "嘉实资源精选A基金报告...", [0.1, 0.2, ..., 0.9])) # 1536维向量
conn.commit()
# 示例:向量检索(余弦相似度)
with conn.cursor(cursor_factory=RealDictCursor) as cur:
cur.execute("""
SELECT doc_id, content, embedding <=> %s AS similarity
FROM fund_documents
ORDER BY similarity
LIMIT 5
""", ([0.1, 0.2, ..., 0.9],)) # 查询向量
results = cur.fetchall()
print("最相似的5篇基金文档:", results)
六、常见操作命令
# 停止服务
docker compose stop
# 重启服务
docker compose restart
# 查看日志
docker compose logs -f
# 删除容器(保留数据)
docker compose down
# 删除容器和数据卷
docker compose down -v
MySQL + Redis 一键部署教程(Docker 版)
前提
Docker Desktop 已正常打开
一、安装 MySQL(直接复制这一整行运行)
powershell
docker run -d --name mysql-fund -p 33060:3306 -e MYSQL_ROOT_PASSWORD=123456 -e MYSQL_DATABASE=fund_rag -v mysql_data:/var/lib/mysql mysql:8.0
二、安装 Redis(直接复制这一整行运行)
powershell
docker run -d --name redis-fund -p 63790:6379 -v redis_data:/data redis:alpine
三、验证是否安装成功
运行命令:
powershell
docker ps
✅ 成功标志:能看到 mysql-fund 和 redis-fund 都在运行
Go 依赖安装(后端框架、数据库、通信)
步骤 1:进入你的 Go 项目文件夹(没有就新建)
powershell
# 新建后端文件夹
mkdir go-backend
cd go-backend
步骤 2:初始化 Go 项目(必须执行)
powershell
go mod init fund-rag-system
步骤 3:一键安装所有 Go 依赖
powershell
go get github.com/gin-gonic/gin google.golang.org/grpc github.com/go-sql-driver/mysql github.com/redis/go-redis/v9
Gin:Go 后端 Web 框架gRPC:服务间通信MySQL驱动:连接 MySQL 数据库Redis客户端:连接 Redis 缓存
