mirror of
https://github.com/primedigitaltech/market-assistant.git
synced 2026-07-21 23:41:39 +08:00
146 lines
6.3 KiB
Markdown
146 lines
6.3 KiB
Markdown
# Market-Assistant(低 GI / 京东采集与竞品分析)
|
||
|
||
**本目录可作为独立 Git 仓库根目录**:克隆后配置 `.env` 与数据区即可运行工作台(任务、入库、浏览、报告、策略、LLM 等)。爬虫副本在 `backend/crawler_copy/jd_pc_search`,不依赖仓库外的其它目录。
|
||
|
||
面向「前台事业部」的 Web 工作台:提交京东关键词采集任务、查看流水线产出、**库内分页浏览**已入库的搜索/商详/评价数据、生成竞品分析报告,并支持导出 JSON / CSV / Excel。
|
||
|
||
**研发对接**:任务产物、状态与 REST 能力见 **docs** 下的流水线输出说明与 OpenAPI 子集。
|
||
|
||
---
|
||
|
||
## 技术栈
|
||
|
||
| 部分 | 说明 |
|
||
|------|------|
|
||
| 后端 | Django 5 + Django REST Framework,SQLite(可配置路径) |
|
||
| 前端 | Vue 3 + Vite 5 + Vue Router,开发时通过 Vite 代理访问 API |
|
||
| 采集 | 京东 PC 搜索侧脚本副本(与流水线任务联动) |
|
||
|
||
---
|
||
|
||
## 部署
|
||
|
||
下文**仓库根**指克隆后的项目根目录(含 `backend/`、`frontend/`、`docs/`)。环境变量**只使用仓库根下一份** `.env`(模板为 `.env.example`),勿在 `backend/` 等子目录再建第二份。
|
||
|
||
### 环境变量(`.env`)
|
||
|
||
| 文件 | 说明 |
|
||
|------|------|
|
||
| 仓库根 `.env` | 运行时配置(勿提交 Git);从 `.env.example` 复制 |
|
||
| `.env.example` | 模板,可随仓库分发 |
|
||
|
||
Django(`backend/config/settings.py`)与 `backend/crawler_copy/jd_pc_search/AI_crawler.py` 均从**仓库根**的 `.env` 加载。
|
||
|
||
**首次编辑建议:**
|
||
|
||
1. 复制:`cp .env.example .env`(Windows:`copy .env.example .env`)。
|
||
2. 填写 **`DJANGO_SECRET_KEY`**;生产将 **`DJANGO_DEBUG`** 设为 `False`,并配置 **`DJANGO_ALLOWED_HOSTS`**、**`CORS_ALLOWED_ORIGINS`**、**`CSRF_TRUSTED_ORIGINS`**(域名带协议,如 `https://app.example.com`)。
|
||
3. **`LOW_GI_PROJECT_ROOT`(可选)**:不设置时,跑批数据默认在仓库根 **`./data/JD/`**(启动 Django 时会创建);单独数据盘则设为可写绝对路径,数据落在其下 `data/JD/...`。
|
||
4. 使用配料图识别、报告/策略 LLM 时:填写 **`OPENAI_*`** 或 **`LLM_*`**。
|
||
|
||
### 运行环境与依赖
|
||
|
||
| 层级 | 要求 | 说明 |
|
||
|------|------|------|
|
||
| 后端 | Python **3.11+** | 建议虚拟环境;依赖见 `backend/requirements.txt` |
|
||
| 前端 | **Node.js 18+** | 生产构建建议 `npm ci`(需 `package-lock.json`) |
|
||
| 流水线 / 采集 | **Node.js**;按需 **Playwright** | 调用 `backend/crawler_copy/jd_pc_search` 下脚本与子进程 |
|
||
| 数据目录 | 磁盘可写 | 默认 `./data/JD/`;或 `LOW_GI_PROJECT_ROOT` |
|
||
| Cookie | 本地文件(默认不入库) | `backend/crawler_copy/jd_pc_search/common/jd_cookie.txt`,或按工作台接口配置 |
|
||
|
||
### 首次安装(后端)
|
||
|
||
在仓库根进入 `backend/`,创建虚拟环境、安装依赖并迁移:
|
||
|
||
```bash
|
||
cd backend
|
||
python -m venv .venv
|
||
# Windows: .venv\Scripts\activate
|
||
# Linux/macOS: source .venv/bin/activate
|
||
pip install -r requirements.txt
|
||
python manage.py migrate
|
||
```
|
||
|
||
若要跑采集流水线:在本机安装 Node / Playwright(与现有开发环境一致),并准备好 Cookie。
|
||
|
||
### 开发环境(前后端联调)
|
||
|
||
| 顺序 | 目录 | 命令 | 说明 |
|
||
|------|------|------|------|
|
||
| 1 | `backend/` | `python manage.py runserver` | 默认 **http://127.0.0.1:8000**,REST 在 **`/api`** |
|
||
| 2 | `frontend/` | `npm install`(首次)、`npm run dev` | 默认 **http://127.0.0.1:5173** |
|
||
|
||
**须先启动后端,再启动前端。** `frontend/vite.config.js` 将 **`/api`** 代理到 `http://127.0.0.1:8000`,浏览器只访问 Vite 地址即可。
|
||
|
||
其它前端命令:`npm run build`(生产构建)、`npm run preview`(预览构建结果)。
|
||
|
||
可选:`python manage.py createsuperuser` 后访问 **http://127.0.0.1:8000/admin/**。
|
||
|
||
### 生产环境(构建与反向代理)
|
||
|
||
**后端**
|
||
|
||
1. 与开发相同 Python 版本,在 `backend/` 执行安装依赖与 `migrate`。
|
||
2. 使用 **Gunicorn**(或 uWSGI 等)托管 WSGI,示例:
|
||
|
||
```bash
|
||
cd backend
|
||
gunicorn config.wsgi:application --bind 127.0.0.1:8000 --workers 3
|
||
```
|
||
|
||
3. 用 **Nginx**(或其它网关)将 **`/api`**(及如需的 `admin`)反代到上述进程。
|
||
4. `.env` 中 `ALLOWED_HOSTS`、CORS、CSRF 与实际上线域名、协议一致。
|
||
|
||
**前端**
|
||
|
||
```bash
|
||
cd frontend
|
||
npm ci
|
||
npm run build
|
||
```
|
||
|
||
将 **`dist/`** 作为静态站点根目录托管。**推荐同源**:同域下静态资源 + `location /api/` 反代到 Gunicorn。若前后端不同域,配置好 CORS/CSRF,并注意 HTTPS 混合内容等问题。
|
||
|
||
生产**不使用** Vite 开发服务;`vite.config.js` 里的 `proxy` 仅在 `npm run dev` 时生效。
|
||
|
||
### 部署自检清单
|
||
|
||
- [ ] 已执行 `python manage.py migrate`
|
||
- [ ] 生产环境已更换密钥,`DEBUG=False`
|
||
- [ ] `ALLOWED_HOSTS` / `CORS_*` / `CSRF_*` 与真实访问地址一致
|
||
- [ ] `data/JD/` 或 `LOW_GI_PROJECT_ROOT` 对应目录可写
|
||
- [ ] 需要流水线时:Node、Playwright、Cookie 已就绪
|
||
|
||
---
|
||
|
||
## 常用功能说明
|
||
|
||
1. **搜索采集**:创建京东关键词流水线任务(翻页、SKU 上限、Cookie 等;报告统计规则在「报告生成」)。
|
||
2. **任务与结果**:查看任务状态;成功任务可 **库内浏览**、文件预览与下载、导出。
|
||
3. **报告生成**:配置统计规则并重新生成分析报告文件。
|
||
4. **报告查看**:在线预览、单文件下载、加载结构化摘要、**一键下载简报包**(ZIP)。
|
||
5. **结构化摘要**:与报告同口径的规则化 JSON,供联调或其它工具使用。
|
||
6. **市场策略制定**:选成功任务,可选填业务备注,生成策略向 Markdown(目标、战场、定位选项、支柱与行动;规则版、非大模型)。
|
||
|
||
任务**成功结束后**会自动执行入库;也可在「库内浏览」里从批次目录重新入库。
|
||
|
||
---
|
||
|
||
## API 前缀
|
||
|
||
开发时 REST 默认在后端根地址下的 **`/api`**;本地通过 Vite 代理访问即可。
|
||
|
||
---
|
||
|
||
## 相关文档
|
||
|
||
均在 **docs** 目录:项目进展与里程碑、流水线输出说明、演示与脱敏、工程说明、OpenAPI 等。
|
||
|
||
---
|
||
|
||
## 目录结构(简要)
|
||
|
||
- **backend**:Django 与任务流水线 API
|
||
- **frontend**:Vue + Vite 工作台
|
||
- **docs**:说明、模板、演示与 OpenAPI 等
|