market-assistant/README.md
2026-04-10 18:19:27 +08:00

146 lines
6.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Market-Assistant低 GI / 京东采集与竞品分析)
**本目录可作为独立 Git 仓库根目录**:克隆后配置 `.env` 与数据区即可运行工作台任务、入库、浏览、报告、策略、LLM 等)。爬虫副本在 `backend/crawler_copy/jd_pc_search`,不依赖仓库外的其它目录。
面向「前台事业部」的 Web 工作台:提交京东关键词采集任务、查看流水线产出、**库内分页浏览**已入库的搜索/商详/评价数据、生成竞品分析报告,并支持导出 JSON / CSV / Excel。
**研发对接**:任务产物、状态与 REST 能力见 **docs** 下的流水线输出说明与 OpenAPI 子集。
---
## 技术栈
| 部分 | 说明 |
|------|------|
| 后端 | Django 5 + Django REST FrameworkSQLite可配置路径 |
| 前端 | 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 等