基于微信读书书架数据,使用 DeepSeek AI 帮助用户:
- 筛选书籍:分析书架内容,推断兴趣领域,识别知识缺口
- 学习知识:针对推荐书籍生成结构化导读
- 融入认知地图(后续版本):通过苏格拉底式追问沉淀个人观点
MVP 版本聚焦前两个功能:兴趣分析 + 智能推荐 + 导读生成。
- 前端:Next.js 16 + React 19 + TypeScript + Tailwind CSS + shadcn/ui
- 后端:Next.js API Routes
- 数据库:PostgreSQL + Prisma 5(开发/生产统一)
- LLM:DeepSeek API
- 微信读书:直接调用微信读书 Agent Gateway API
npm install本项目统一使用 PostgreSQL,开发环境和生产环境一致。
推荐使用 Neon 免费 PostgreSQL:
- 注册 Neon 账号
- Create a new project
- 复制 Connection string
npm run dev:setup这个脚本会自动:
- 安装依赖(如果
node_modules不存在) - 从
.env.example创建.env - 自动生成有效的
ENCRYPTION_KEY - 检查
DATABASE_URL - 启动开发服务器
如果你不想用脚本:
cp .env.example .env编辑 .env:
DATABASE_URL="postgresql://用户名:密码@host:5432/dbname?sslmode=require"
DEEPSEEK_API_KEY="your-deepseek-api-key"
ENCRYPTION_KEY="your-64-char-hex-key"
WEREAD_MOCK="false"DATABASE_URL:PostgreSQL 连接字符串(开发/生产一致)DEEPSEEK_API_KEY:从 DeepSeek 平台 获取ENCRYPTION_KEY:运行node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"生成WEREAD_MOCK:true使用模拟书架数据(无需微信读书 key),false调用真实微信读书 API
然后初始化数据库并启动:
npx prisma migrate dev
npm run dev- 访问 https://weread.qq.com/r/weread-skills
- 登录微信读书账号
- 点击「获取 API KEY」
- 复制以
wrk-开头的 key
app/
page.tsx # 首页:产品介绍 + 输入 key
report/[id]/page.tsx # 分析报告详情页
api/analyze/route.ts # 分析 API
components/ui/ # shadcn/ui 组件
lib/
db.ts # Prisma Client
encryption.ts # AES-256-GCM 加密
deepseek.ts # DeepSeek API 封装
weread.ts # 微信读书 API 封装
analyze.ts # 分析流程编排
prisma/
schema.prisma # 数据库模型
Dockerfile # 阿里云 FC 容器部署
s.yaml # Serverless Devs 部署配置
- 用户微信读书 API Key 使用 AES-256-GCM 加密后存储
- 加密密钥通过环境变量
ENCRYPTION_KEY管理,不存入数据库 - Key 仅用于读取书架数据,不做任何写入操作
- 用户标识使用 key 的 SHA-256 hash,实现用户隔离
这是最简单、最快的部署方式,适合验证 MVP。
- 访问 Neon 注册账号
- Create a new project
- 在 Dashboard 中找到 Connection string,复制类似:
postgresql://用户名:密码@host.neon.tech/dbname?sslmode=require
cd /Users/tomchen/Documents/project/WeRead
git init
git add .
git commit -m "init"
# 在 GitHub 创建仓库后
gh repo create weread-ai --public --source=. --push
# 或手动:
# git remote add origin https://github.com/你的用户名/weread-ai.git
# git push -u origin main- 访问 Vercel Dashboard
- 点击 Add New Project
- 选择你的 GitHub 仓库
weread-ai - Framework Preset 会自动识别为 Next.js
在 Vercel 项目设置的 Environment Variables 中添加:
| Name | Value |
|---|---|
DATABASE_URL |
Neon 的连接字符串 |
DEEPSEEK_API_KEY |
你的 DeepSeek API Key |
ENCRYPTION_KEY |
运行下面命令生成 |
WEREAD_MOCK |
false |
生成 ENCRYPTION_KEY:
node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"点击 Deploy。Vercel 会自动运行 prisma generate && next build。
Vercel 首次部署后,在本地运行:
export DATABASE_URL="你的 Neon 连接字符串"
npx prisma migrate deploy或者使用 Vercel CLI:
npx vercel env pull .env.production.local
npx prisma migrate deploy访问 Vercel 分配的域名即可使用。
如果你需要部署到国内阿里云,请参考下方方案。
使用函数计算 FC 的 Custom Container Runtime 部署,按量付费、自动扩缩容。
- 注册阿里云账号
- 开通函数计算 FC 和容器镜像服务 ACR
- 安装 Serverless Devs CLI:
npm install @serverless-devs/s -g
s config add # 配置阿里云 AccessKey阿里云提供多种 PostgreSQL 选择:
- RDS PostgreSQL(推荐生产使用)
- PolarDB PostgreSQL(高并发)
创建数据库后,复制连接字符串:
postgresql://用户名:密码@host.rds.aliyuncs.com:5432/dbname?schema=public
编辑 s.yaml:
region:你的地域(如cn-hangzhou、cn-shenzhen)serviceName/functionName:自定义名称image:你的 ACR 镜像地址
# 登录阿里云 Docker 仓库
# 在 ACR 控制台获取登录命令
# 构建镜像
docker build -t registry.cn-hangzhou.aliyuncs.com/你的命名空间/weread-ai:latest .
# 推送镜像到 ACR
docker push registry.cn-hangzhou.aliyuncs.com/你的命名空间/weread-ai:latest# 设置环境变量后部署
export DATABASE_URL="postgresql://..."
export DEEPSEEK_API_KEY="sk-..."
export ENCRYPTION_KEY="你的64位hex密钥"
s deployexport DATABASE_URL="postgresql://..."
npx prisma migrate deploy在函数计算控制台:
- 进入你的函数
- 点击「域名管理」
- 添加自定义域名
- 配置 DNS 解析
- 申请/上传 HTTPS 证书
适合想要完全掌控服务器、预算固定的场景。
- 推荐配置:2 核 4G 起步
- 系统镜像:Ubuntu 22.04 / CentOS 8
# 安装 Node.js 20
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt-get install -y nodejs
# 安装 PM2
sudo npm install -g pm2
# 安装 Nginx
sudo apt-get install -y nginx
# 安装 PostgreSQL
sudo apt-get install -y postgresql postgresql-contribsudo -u postgres psql -c "CREATE DATABASE weread;"
sudo -u postgres psql -c "CREATE USER weread_user WITH PASSWORD '你的密码';"
sudo -u postgres psql -c "GRANT ALL PRIVILEGES ON DATABASE weread TO weread_user;"# 在服务器上
git clone https://github.com/你的用户名/weread-ai.git
cd weread-ai
npm install
npm run build
# 设置环境变量
export DATABASE_URL="postgresql://weread_user:密码@localhost:5432/weread"
export DEEPSEEK_API_KEY="sk-..."
export ENCRYPTION_KEY="你的64位hex密钥"
export WEREAD_MOCK="false"
# 初始化数据库
npx prisma migrate deploypm2 start npm --name "weread-ai" -- start
pm2 save
pm2 startupserver {
listen 80;
server_name your-domain.com;
location / {
proxy_pass http://localhost:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}然后申请 SSL 证书(可用 certbot)。
-
DATABASE_URL使用 PostgreSQL,不是 SQLite -
ENCRYPTION_KEY是强随机 64 位 hex 密钥 -
DEEPSEEK_API_KEY已配置且有效 -
WEREAD_MOCK="false" - 已执行
npx prisma migrate deploy - 已配置 HTTPS
- 已绑定自定义域名
-
.env未提交到 Git
- 苏格拉底式追问流程
- 认知地图可视化
- 用户账户系统(替代 key hash)
- 阅读进度追踪
- 多轮对话与笔记沉淀