# gt-works **Repository Path**: saulCode/gt-works ## Basic Information - **Project Name**: gt-works - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-09-20 - **Last Updated**: 2026-09-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # GT工作箱 AI 公众号发文工作流平台。新建工作流 → 抓网页/跟链接 → 自定义提示词 + 多模型(OpenAI/Anthropic 兼容)加工 → 推送微信草稿箱。 ## 技术栈 - 后端:FastAPI + SQLAlchemy 2.x + PostgreSQL(DDL 见 `backend/sql/ddl.sql`) - 前端:React 18 + Vite + TypeScript + Ant Design 5(暗/亮双主题,响应式手机端) - 认证:JWT;敏感字段(公众号 Secret / 模型 Key)Fernet 加密落库 ## 目录 ``` gt-workbox/ ├── backend/ # FastAPI 服务 │ ├── app/core/ # config / security(密码哈希+JWT+加密) / db / deps │ ├── app/models/ # 每张表一个独立文件(ORM) │ ├── app/schemas/ # Pydantic 请求/响应 │ ├── app/routers/ # auth / users(admin) / models_cfg / wechat_accounts / workflows │ ├── app/integrations/ # crawler / llm(多provider) / wechat(从 MVP 复用) │ ├── sql/ddl.sql # 你来执行建表 │ └── requirements.txt ├── frontend/ # React 前端 │ └── src/ # context / api / components / pages(user|admin) └── docs/开发方案.md # 开发方案与待确认结论 ``` ## 运行后端 ```bash cd backend pip install -r requirements.txt # 生产环境需 psycopg2-binary cp .env.example .env # 填 DATABASE_URL / JWT_SECRET / FERNET_KEY # PostgreSQL: 先执行 sql/ddl.sql 建表 python -m uvicorn app.main:app --port 5055 ``` ## 运行前端 ```bash cd frontend npm install npm run dev # 开发: http://localhost:5173 npm run build && npm run preview # 生产构建 ``` 前端默认用 HashRouter,可纯静态部署;后端地址经 `VITE_API_BASE` 或 dev 代理 `/api` 注入。 ## 微信配置 公众号后台 → 开发 → 基本配置 → IP 白名单,加入部署服务器出口 IP(本地跑加本机公网 IP)。 草稿箱必须带封面,MVP 已用自动生成的默认封面兜底。 ## Docker 部署(一键起 postgres + 后端 + 前端) > 镜像内 Python 用 3.12、Node 用 20,不受服务器自带低版本 Python 影响。 ```bash # 1. 准备环境变量 cp .env.example .env # 编辑 .env:至少填 POSTGRES_PASSWORD / JWT_SECRET / FERNET_KEY(FERNET_KEY 用下面的命令生成) # python -c "from cryptography.fernet import Fernet; print(Fernet.generate_key().decode())" # 2. 构建并启动(首次会拉镜像 + 装依赖,稍慢) docker compose up -d --build # 3. 建表:把 backend/sql/ddl.sql 导入 compose 内的 postgres docker compose exec -T postgres psql -U gt -d gt_workbox < backend/sql/ddl.sql # 4. 访问:http://服务器IP:80 (PORT 在 .env 改) # 健康检查:http://服务器IP:80/api/health ``` 说明: - 用外部已有 PostgreSQL:在 `.env` 填 `DATABASE_URL=...`,并删除 `docker-compose.yml` 里的 `postgres` 服务即可。 - 上传 Gitee 时 `docs/` 已被 `.gitignore` 排除;`.env` 也排除,密钥不会进仓库。 - 微信 IP 白名单要加**服务器出口公网 IP**(不是容器 IP,也不是 127.0.0.1)。