Spaces:
Runtime error
Runtime error
unknown commited on
Commit ·
c2f8dfe
1
Parent(s): 2acb95a
docs: add setup guide for new dev environment
Browse files- docs/setup-guide.md +132 -0
docs/setup-guide.md
ADDED
|
@@ -0,0 +1,132 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# DM Analysis Agent — 新电脑开发环境搭建指南
|
| 2 |
+
|
| 3 |
+
## 前提条件
|
| 4 |
+
|
| 5 |
+
- 已安装 Python 3.12+
|
| 6 |
+
- 已安装 Git
|
| 7 |
+
- 有 GitHub 账号并能访问 `Binbom-Jared/DM-Agent` 仓库
|
| 8 |
+
|
| 9 |
+
---
|
| 10 |
+
|
| 11 |
+
## 第 1 步:克隆代码
|
| 12 |
+
|
| 13 |
+
```bash
|
| 14 |
+
git clone https://github.com/Binbom-Jared/DM-Agent.git
|
| 15 |
+
cd DM-Agent
|
| 16 |
+
pip install -r requirements.txt
|
| 17 |
+
```
|
| 18 |
+
|
| 19 |
+
---
|
| 20 |
+
|
| 21 |
+
## 第 2 步:复制密钥文件
|
| 22 |
+
|
| 23 |
+
从已有的开发电脑上拿到以下两个文件,放到项目根目录:
|
| 24 |
+
|
| 25 |
+
| 文件 | 作用 | 如何获取 |
|
| 26 |
+
|------|------|---------|
|
| 27 |
+
| `.env` | 所有 API 密钥、Token、钉钉 Webhook | 从已有电脑的项目根目录复制 |
|
| 28 |
+
| `credentials.json` | Google Sheets 服务账号密钥 | 从已有电脑的项目根目录复制 |
|
| 29 |
+
|
| 30 |
+
> **安全提醒**:这两个文件包含敏感信息,不要上传到 GitHub 或发到公开渠道。通过 U 盘或加密传输方式拷贝。
|
| 31 |
+
|
| 32 |
+
---
|
| 33 |
+
|
| 34 |
+
## 第 3 步:启动项目
|
| 35 |
+
|
| 36 |
+
### Web 界面(推荐)
|
| 37 |
+
|
| 38 |
+
```bash
|
| 39 |
+
python src/main.py --web
|
| 40 |
+
```
|
| 41 |
+
|
| 42 |
+
浏览器打开 `http://localhost:5000` 即可使用。
|
| 43 |
+
|
| 44 |
+
### 其他启动方式
|
| 45 |
+
|
| 46 |
+
```bash
|
| 47 |
+
# 交互模式
|
| 48 |
+
python src/main.py --chat
|
| 49 |
+
|
| 50 |
+
# 预览报告(不推送)
|
| 51 |
+
python src/main.py --dry-run
|
| 52 |
+
```
|
| 53 |
+
|
| 54 |
+
---
|
| 55 |
+
|
| 56 |
+
## 日常开发流程
|
| 57 |
+
|
| 58 |
+
### 开始工作前:拉取最新代码
|
| 59 |
+
|
| 60 |
+
```bash
|
| 61 |
+
git pull origin main
|
| 62 |
+
```
|
| 63 |
+
|
| 64 |
+
### 改完代码后:推送到 GitHub
|
| 65 |
+
|
| 66 |
+
```bash
|
| 67 |
+
git add -A
|
| 68 |
+
git commit -m "你的改动说明"
|
| 69 |
+
git push origin main
|
| 70 |
+
```
|
| 71 |
+
|
| 72 |
+
推送到 GitHub 后会自动触发 Hugging Face 部署。
|
| 73 |
+
|
| 74 |
+
---
|
| 75 |
+
|
| 76 |
+
## 项目结构
|
| 77 |
+
|
| 78 |
+
```text
|
| 79 |
+
DM-Analysis-Agent/
|
| 80 |
+
├── .github/workflows/deploy-hf.yml # GitHub Actions → HF 自动部署
|
| 81 |
+
├── api/index.py # Vercel 入口
|
| 82 |
+
├── docs/ # 架构文档
|
| 83 |
+
├── src/
|
| 84 |
+
│ ├── web.py # Flask Web 服务 + API 路由
|
| 85 |
+
│ ├── loader.py # 数据加载(Sheets / Excel / CSV)
|
| 86 |
+
│ ├── monitor.py # 日常监控引擎
|
| 87 |
+
│ ├── budget.py # 预算追踪
|
| 88 |
+
│ ├── analyzer.py # 数据分析引擎
|
| 89 |
+
│ ├── ai_analyzer.py # AI 分析(GPT-4o-mini)
|
| 90 |
+
│ ├── meta_api.py # Meta Ads API
|
| 91 |
+
│ ├── google_api.py # Google Ads API
|
| 92 |
+
│ ├── criteo_api.py # Criteo API
|
| 93 |
+
│ ├── bing_api.py # Bing Ads API
|
| 94 |
+
│ ├── dingtalk.py # 钉钉推送
|
| 95 |
+
│ ├── memory.py # AI 记忆系统
|
| 96 |
+
│ ├── parser.py # 自然语言解析
|
| 97 |
+
│ └── formatter.py # 报告格式化
|
| 98 |
+
├── templates/index.html # Web 前端
|
| 99 |
+
├── tests/ # 测试
|
| 100 |
+
├── config.yaml # 配置文件
|
| 101 |
+
├── Dockerfile # Docker 部署
|
| 102 |
+
├── requirements.txt # Python 依赖
|
| 103 |
+
├── .env # 密钥(不入 Git)
|
| 104 |
+
└── credentials.json # Google 服务账号(不入 Git)
|
| 105 |
+
```
|
| 106 |
+
|
| 107 |
+
---
|
| 108 |
+
|
| 109 |
+
## 数据源
|
| 110 |
+
|
| 111 |
+
| 来源 | 说明 | 数据位置 |
|
| 112 |
+
|------|------|---------|
|
| 113 |
+
| Google Sheets | 主数据源,手动维护 + API 回写 | 云端 |
|
| 114 |
+
| Meta Ads API | Campaign 级日度数据 | API 实时拉取 → 本地 CSV 缓存 |
|
| 115 |
+
| Google Ads API | Campaign 级日度数据 | API 实时拉取 → 本地 CSV 缓存 |
|
| 116 |
+
| Criteo API | Campaign 级日度数据 | API 实时拉取 → 本地 CSV 缓存 |
|
| 117 |
+
| Bing API | Campaign 级日度数据 | API 实时拉取 → 本地 CSV 缓存 |
|
| 118 |
+
|
| 119 |
+
本地 CSV 只是缓存,删掉可以重新拉取,不影响系统运行。
|
| 120 |
+
|
| 121 |
+
---
|
| 122 |
+
|
| 123 |
+
## 常见问题
|
| 124 |
+
|
| 125 |
+
### Q: Google API 报 `invalid_grant`
|
| 126 |
+
A: OAuth refresh token 过期了,需要重新授权。参考 Google Ads API 文档刷新 token,更新 `.env` 中的 `GOOGLE_ADS_REFRESH_TOKEN`。
|
| 127 |
+
|
| 128 |
+
### Q: Bing API 报 `未配置 BING_ACCOUNT_IDS`
|
| 129 |
+
A: 在 `.env` 中添加 `BING_ACCOUNT_IDS=account_id:country`(如 `123456:US,789012:CA`)。
|
| 130 |
+
|
| 131 |
+
### Q: Hugging Face 没有更新
|
| 132 |
+
A: 确认 GitHub Actions 是否触发成功。到 GitHub 仓库的 Actions 页面查看。如果 `HF_TOKEN` 过期,需要在 GitHub Settings → Secrets 中更新。
|