⚠️ 重要提示:本项目仅供学习研究使用,请勿用于商业用途或任何违反拼多多服务条款的行为。使用本工具产生的任何后果由使用者自行承担。
本项目是一个基于 Python 和 Playwright 的拼多多客服工作台自动化 SDK,提供了完整的 API 接口用于管理多个客服工作台实例。项目支持消息接收、发送、订单查询、会话转移等常用客服功能,并提供了回调机制,方便接入 AI 大模型实现智能自动回复。
- 🔄 多工作台管理:支持创建和管理多个客服工作台实例
- 💬 消息处理:自动接收和发送客服消息
- 📦 订单查询:查询用户订单信息
- 🔀 会话转移:支持将会话转移给其他客服
- 🏷️ 备注标签:更新订单备注和标签
- 💰 退款申请:支持小额打款和退款申请
- 📊 回调机制:提供完善的事件回调系统,便于接入 AI 自动回复
- 🔐 API 认证:支持 API Key 认证机制
- Python 3.x
- FastAPI - Web 框架
- Playwright - 浏览器自动化
- SQLite - 数据存储
- Pydantic - 数据验证
- Uvicorn - ASGI 服务器
- Python 3.8+
- Windows 10/11(当前版本主要支持 Windows)
- 至少 2GB 可用磁盘空间(用于浏览器缓存)
git clone https://github.com/jiulingyun/pdd-customer-service-sdk.git
cd pdd-customer-service-sdkpip install -r requirements.txt项目不包含 config.yaml 文件,您需要从模板文件创建:
Windows 系统:
copy config.yaml.example config.yamlLinux/Mac 系统:
cp config.yaml.example config.yaml然后编辑 config.yaml 文件,配置相关参数:
base:
open_auth: true # 是否开启API认证
valid_api_key: your_api_key_here # 请修改为您的API密钥
workstation:
initial_url: https://mms.pinduoduo.com/chat-merchant/index.html
message_queue_size: 100
operation_timeout: 30注意:
config.yaml文件已在.gitignore中,不会被提交到仓库,请妥善保管您的配置文件
python main.py首次运行会自动下载 Chromium 浏览器(如果未安装)。
启动后访问 http://localhost:8001/docs 查看完整的 API 文档。
POST /workstations/create- 创建工作台POST /workstations/open- 打开工作台GET /workstations/list- 获取工作台列表POST /workstations/set_callback_url- 设置回调地址POST /workstations/del_callback_url- 删除回调地址
POST /{workstation_id}/send_message- 发送消息POST /{workstation_id}/cs_list- 获取客服列表
POST /{workstation_id}/user_order- 获取用户订单POST /{workstation_id}/order_pickup_info- 获取订单取货信息POST /{workstation_id}/update_note_tag- 更新订单备注标签
POST /{workstation_id}/move_conversation- 转移会话POST /{workstation_id}/recommend_goods- 获取推荐商品POST /{workstation_id}/send_mall_goods_card- 发送商品卡片POST /{workstation_id}/small_transfer_application_apply- 小额打款申请POST /{workstation_id}/ask_refund_apply- 申请退款
项目支持以下回调事件类型:
login_redirect- 登录重定向page_navigated- 页面导航page_loaded- 页面加载完成status_update- 状态更新realtime_message- 实时消息login_confirm- 登录确认new_message- 新消息move_conversation- 会话转移logout- 登出error- 错误事件
import httpx
async with httpx.AsyncClient() as client:
response = await client.post(
"http://localhost:8001/workstations/create",
json={
"name": "测试工作台",
"workstation_id": "test_001"
},
headers={"Authorization": "your_api_key"}
)
print(response.json())response = await client.post(
"http://localhost:8001/test_001/send_message",
json={
"uid": "user_id",
"message": "您好,有什么可以帮您的吗?"
},
headers={"Authorization": "your_api_key"}
)response = await client.post(
"http://localhost:8001/workstations/set_callback_url",
json={
"url": "http://your-server.com/callback"
},
headers={"Authorization": "your_api_key"}
)pdd-customer-service-sdk/
├── browser_manager.py # 浏览器管理器
├── callback_handler.py # 回调处理器
├── config_manager.py # 配置管理器
├── main.py # 主程序入口
├── config.yaml.example # 配置文件模板(首次使用需复制为config.yaml)
├── requirements.txt # 依赖列表
├── LICENSE # 开源协议
├── README.md # 项目说明文档
├── workstation/ # 工作台模块
│ ├── workstation.py # 工作台核心逻辑
│ └── workstation_manager.py # 工作台管理器
├── models/ # 数据模型
│ ├── api_request_model.py
│ └── models.py
├── service/ # 服务层
│ └── db_service.py # 数据库服务
└── workstation_cache/ # 浏览器缓存目录(自动生成)
python main.py [options]
Options:
--debug 开启debug模式
--api_auth=<value> 设置环境变量: PDD_OPEN_API_AUTH
--api_secret=<value> 设置环境变量: PDD_OPEN_API_SECRET主要配置项位于 config.yaml:
base.open_auth: 是否开启 API 认证base.valid_api_key: API 密钥workstation.initial_url: 工作台初始 URLworkstation.message_queue_size: 消息队列大小callback.endpoint: 回调地址列表
- 仅供学习使用:本项目仅供学习研究使用,请勿用于商业用途
- 服务条款:使用前请确保遵守拼多多相关服务条款
- 账号安全:请妥善保管您的账号信息,不要泄露给他人
- API 限制:请注意 API 调用频率,避免触发平台限制
- 浏览器资源:项目会占用一定的系统资源,请合理使用
欢迎提交 Issue 和 Pull Request!
本项目采用 MIT 许可证,详见 LICENSE 文件。
感谢以下开源项目的支持:
如有问题或建议,请通过以下方式联系:
- 提交 Issue
再次提醒:本项目仅供学习研究使用,请勿用于商业用途或任何违反平台服务条款的行为。