MBE 营销系统调试指南
基于 MBE SDK 开发的营销自动化系统,包含落地页生成、智能咨询、内容创作、销售流程等。
一、架构概览
营销 API (marketing_events.py)
├── /api/marketing/landing-page/ai-designed → landing_page_generator.py
├── /api/marketing/chat → mbe_client.ask_expert
├── /api/marketing/lead → 线索收集
├── /api/marketing/events → 营销事件
└── ...
mbe_client.py (MBE SDK 封装)
└── ask_expert() → knowledge.expert_router.get_expert_router().route_and_answer()
核心依赖:knowledge.expert_router 位于 private/core/src/knowledge/expert_router.py,需正确配置 PYTHONPATH。
二、环境准备
2.1 PYTHONPATH(必须)
$env:PYTHONPATH = "private\platform\src;shared\src;private\core\src"
2.2 基础服务(完整功能需要)
- PostgreSQL:数据库(用于存储、用户等)
- Redis:事件存储、工作流分发
2.3 可选环境变量
| 变量 | 说明 | 默认 |
|---|---|---|
MBE_LANDING_MODE |
template = 仅模板预览,不调 MBE 专家 |
未设置则调用创意专家 |
MARKETING_LANDING_CTA_URL |
落地页 CTA 链接 | /api/marketing/landing |
MARKETING_CRM_WEBHOOK_URL |
高意向转交 CRM Webhook | 空 |
三、调试方式
3.1 使用调试脚本(推荐)
cd d:\Mises\mbe-monorepo
$env:PYTHONPATH = "private\platform\src;shared\src;private\core\src"
python scripts/debug_marketing.py --all
选项:
--mbe-client:测试ask_expert(MBE 专家调用)--landing:测试落地页生成--chat:测试营销聊天逻辑--list-experts:列出可用专家--all:运行全部测试
3.2 启动完整服务
.\scripts\run_marketing.ps1
- 端口:8001
- 落地页:http://127.0.0.1:8001/
- API 文档:http://127.0.0.1:8001/docs
3.3 极简 standalone(无 DB/Redis/MBE)
.\scripts\run_marketing.ps1 -Standalone
- 端口:8002
- 仅模板预览,秒级启动
3.4 Docker 开发环境
docker-compose -f docker-compose.dev.yml up
- API:http://localhost:8000
- 支持热重载
四、API 调试示例
4.1 落地页生成(GET)
GET http://127.0.0.1:8001/api/marketing/landing-page/ai-designed?keywords=MBE&target_audience=企业决策者
4.2 落地页生成(POST,创意专家)
POST /api/marketing/landing-page/generate
Content-Type: application/json
{
"keywords": "MBE 米塞斯行为引擎",
"target_audience": "企业决策者",
"selling_points": "AI 驱动、智能决策"
}
4.3 营销聊天
POST /api/marketing/chat
Content-Type: application/json
{
"question": "MBE 企业版有什么功能?",
"user_type": "enterprise",
"user_id": "marketing_anon"
}
4.4 专家映射
GET http://127.0.0.1:8001/api/marketing/mapping
五、常见问题排查
5.1 ask_expert 失败 / 超时
- 原因:ExpertRouter 初始化慢(加载 MIRAS 嵌入模型等),或 LLM 不可用
- 处理:
- 检查
knowledge.expert_router能否导入:from knowledge.expert_router import get_expert_router - 落地页可先用
MBE_LANDING_MODE=template快速预览 - 落地页有 5 秒超时,超时后自动降级为模板
- 检查
5.2 list_experts 返回空或报错
- 已修复:
mbe_client.list_experts此前将ExpertProfile当作 dict 使用.get(),已改为getattr(cfg, "name", eid) - 若仍异常,检查
router.experts是否已加载(需先调用过一次get_expert_router())
5.3 模块导入失败
- 确认 PYTHONPATH 包含:
private/core/src、shared/src、private/platform/src - 工作目录应为 monorepo 根目录
5.4 落地页显示「模板预览」横幅
- 正常:当
MBE_LANDING_MODE=template或 MBE 专家调用超时/失败时,会使用模板 - 去掉横幅:取消
MBE_LANDING_MODE,并确保 MBE 专家服务可用
六、自动化测试
6.1 pytest 全流程测试(推荐)
cd d:\Mises\mbe-monorepo
.\scripts\run_marketing_tests.ps1
或直接:
$env:PYTHONPATH = "private\platform\src;shared\src;private\core\src"
$env:MBE_LANDING_MODE = "template"
python -m pytest tests/integration/test_marketing_api_full_flow.py -v --no-cov
覆盖:健康检查、落地页、聊天、留资、落地页生成、营销事件等 8 个 API。
6.2 独立脚本(需服务已运行)
先启动服务 .\scripts\run_marketing.ps1,再运行:
python scripts/test_marketing_api_full_flow.py
# 或指定地址
python scripts/test_marketing_api_full_flow.py http://localhost:8081
七、相关文件
| 文件 | 说明 |
|---|---|
shared/src/marketing/mbe_client.py |
MBE SDK 封装,ask_expert / list_experts |
shared/src/marketing/landing_page_generator.py |
落地页生成(创意专家 + 模板) |
shared/src/marketing/config.py |
营销配置、user_type 映射 |
shared/src/api/marketing_events.py |
营销 API 路由 |
private/core/src/knowledge/expert_router.py |
专家路由与回答 |
tests/integration/test_marketing_api_full_flow.py |
营销 API 全流程 pytest 测试 |
scripts/test_marketing_api_full_flow.py |
营销 API 全流程独立验证脚本 |