baidu-ecommerce-search
百度电商一站式服务,覆盖商品知识查询和购物交易全流程。支持商品对比、品牌知识、品类选购指南、商品参数解读、品牌榜单及单品榜单等知识查询能力;同时提供商品搜索、规格查看、地址管理、下单购买、订单查询及售后服务等完整交易链路,帮助用户从决策到购买一步到位。
Setup
- - 环境依赖:Python 3.x,仅使用标准库,无需安装第三方包
- 配置步骤:
1. 访问 https://openai.baidu.com 登录百度账号,点击权限申请勾选所需能力
2. 设置环境变量:
CODEBLOCK0
全局交互规范
简化用户输入
展示列表时必须带序号供用户输入序号选择,确认环节告知用户可输入"1"或"确认"。
链接格式
所有可跳转内容用 [文本](URL) 格式,URL 中的 | 必须转义为 \|,优先使用接口返回的购买链接。
能力清单
以下能力是可组合的工具箱。响应用户时,先分析哪些能力与用户问题相关,再调用所有相关能力.
电商知识
- - 商品对比 — 参数/口碑/价格全方位对比(仅支持两个对比,"iPhone17和iPhone16对比")
python3 scripts/compare.py "<对比查询>"
- - 品牌知识 — 品牌简介/定位/明星产品/大事记
python3 scripts/knowledge.py brand "<品牌名>"
python3 scripts/knowledge.py entity "<品类名>怎么选"
- - 商品参数 — 单品规格参数及 AI 解读(如"iPhone 17 怎么样""小米14参数")
python3 scripts/knowledge.py param "<商品名>"
- - 品牌榜单 — 某品类下的品牌排行(如"手机排行榜""冰箱排行榜")
python3 scripts/ranking.py brand "<榜单查询>"
- - 单品榜单 — 某品牌下的商品排行(如"苹果手机排行榜")
INLINECODE8
百度优选
python3 scripts/spu.py list "<关键词>"
python3 scripts/spu.py detail <spuId>
python3 scripts/order.py create --sku-id <skuId> --spu-id <spuId> --addr-id <addrId>
python3 scripts/order.py history
python3 scripts/order.py detail <orderId>
python3 scripts/after_service.py <orderId>
python3 scripts/address.py list
python3 scripts/address.py recognise "<姓名 地址 手机号>"
INLINECODE17
CPS 商品
INLINECODE18
业务约束
- 1. 知识引导决策:用户有购买意向时,知识在前、商品在后。全链路(含交易流程)均需结合知识输出。
- 商品搜索规则:
-
触发条件:仅在用户表达购买意向时搜索商品(如"想买""帮我找""有没有卖的"),纯知识咨询(如"xx怎么样""xx和yy哪个好")不触发搜索
-
搜索方式:同时调用百度优选搜索和 CPS 搜索
-
准入规则:百度优选和 CPS 结果均按相关性筛选,仅纳入与用户查询相关的商品
-
排序规则:表格内必须先展示百度优选的商品,再展示cps的商品
-
补充搜索:首选来源结果不足 10 条时用同义词补充搜索,最多 3 次(含首次),同义词必须保留用户指定的核心限定词(如"手机typec充电器"→"手机USB-C充电器",不能丢"手机")
-
全程不向用户提及来源差异或平台切换
- 3. 决策到交易串联:用户通过对比/榜单做完决策后,主动询问是否需要搜索购买
- 下单前必须确认地址:调用 address list 让用户明确选择,禁止默认下单
- 地址添加两步依赖:必须先 address recognise 获取 recogniseId,再 address add,不可跳步
展示规范
商品列表(表格)
| 序号 | 商品名称 | 价格 | 商城 | 店铺 | 其他 |
|---|
| 1 | 商品名称 | ¥xx起 | 京东 | 店铺名 4.9分 | 销量170 / 7天无理由 / 3种规格 |
- - 商品名称:必须展示接口返回的完整商品名,禁止截断或简化
- 价格:多 SKU 显示
¥xx起,单 SKU 显示 INLINECODE20 - 商城:展示商品所属商城平台(如京东、淘宝等),百度优选商品显示"百度优选"
- 店铺:有评分时
店铺名 x.x分,无评分只显示名称 - 其他:销量(>0)/保障标签/规格数(>1),用
/ 分隔,有则显示无则省略
品牌榜单列表
- - 品牌名称:使用brandLandingURL作为品牌名跳转链接
下单流程(严格按顺序执行)
CPS商品
不支持 spu detail 和 order create。用户选择 CPS 商品时:解析
extra_attributes 展示规格参数表格 → 提供购买链接引导跳转。
百度优选商品
- 1. 商品选择:调用 spu list 搜索 → 展示结果 → 用户选择 → 获取 spuId
- 规格选择:从搜索结果或 spu detail 获取 SKU 列表
- 仅 1 个 SKU:自动使用,跳过确认
- 多个 SKU:展示规格让用户选择 → 获取 skuId
- 无匹配 SKU(SKU 规格与用户需求不符):禁止使用不匹配的 SKU 下单,告知用户当前商品无匹配规格,引导重新搜索或选择其他商品
- 3. 地址确认:调用 address list 获取地址列表
- 有地址:展示列表让用户选择,同时提示可新增地址 → 获取 addrId
- 无地址:引导用户提供地址信息(格式:收货人 + 详细地址 + 手机号)→ 调用 address recognise → 调用 address add → 获取 addrId
- 4. 订单确认:汇总展示商品名称 + 规格 + 收货地址 + 金额 → 用户确认
- 创建订单:调用 order create,返回订单详情链接
- - 创建订单使用的账号为用户申请 token 的账号
- 订单创建后用户需在返回的链接中完成支付
错误处理
| errmsg | 处理 |
|---|
| INLINECODE24 | 必须静默等待 1 秒后重试同一请求,不可跳过或用其他结果替代 |
| INLINECODE25 |
告知用户访问 https://openai.baidu.com 申请 |
|
token is nil /
token is invalid | 提示用户检查 BAIDU
ECSEARCH_TOKEN 配置 |
|
path错误 /
请求地址错误 /
非法path | 检查脚本路径和参数 |
|
商品已下架 /
商品已售罄 | 引导选择其他商品或规格 |
|
不支持用户地址发货 | 引导修改收货地址 |
不向用户展示原始 errmsg,转译为用户友好的提示。
baidu-ecommerce-search
百度电商一站式服务,覆盖商品知识查询和购物交易全流程。支持商品对比、品牌知识、品类选购指南、商品参数解读、品牌榜单及单品榜单等知识查询能力;同时提供商品搜索、规格查看、地址管理、下单购买、订单查询及售后服务等完整交易链路,帮助用户从决策到购买一步到位。
Setup
- - 环境依赖:Python 3.x,仅使用标准库,无需安装第三方包
- 配置步骤:
1. 访问 https://openai.baidu.com 登录百度账号,点击权限申请勾选所需能力
2. 设置环境变量:
bash
export BAIDU
ECSEARCH_TOKEN=your-token
export BAIDU
ECSEARCH_QPS=1 # 可选,默认1,设为0无限制
全局交互规范
简化用户输入
展示列表时必须带序号供用户输入序号选择,确认环节告知用户可输入1或确认。
链接格式
所有可跳转内容用 文本 格式,URL 中的 | 必须转义为 \|,优先使用接口返回的购买链接。
能力清单
以下能力是可组合的工具箱。响应用户时,先分析哪些能力与用户问题相关,再调用所有相关能力.
电商知识
- - 商品对比 — 参数/口碑/价格全方位对比(仅支持两个对比,iPhone17和iPhone16对比)
python3 scripts/compare.py <对比查询>
- - 品牌知识 — 品牌简介/定位/明星产品/大事记
python3 scripts/knowledge.py brand <品牌名>
python3 scripts/knowledge.py entity <品类名>怎么选
- - 商品参数 — 单品规格参数及 AI 解读(如iPhone 17 怎么样小米14参数)
python3 scripts/knowledge.py param <商品名>
- - 品牌榜单 — 某品类下的品牌排行(如手机排行榜冰箱排行榜)
python3 scripts/ranking.py brand <榜单查询>
- - 单品榜单 — 某品牌下的商品排行(如苹果手机排行榜)
python3 scripts/ranking.py product <榜单查询>
百度优选
python3 scripts/spu.py list <关键词>
python3 scripts/spu.py detail
python3 scripts/order.py create --sku-id --spu-id --addr-id
python3 scripts/order.py history
python3 scripts/order.py detail
python3 scripts/after_service.py
python3 scripts/address.py list
python3 scripts/address.py recognise <姓名 地址 手机号>
python3 scripts/address.py add
CPS 商品
python3 scripts/cps.py <关键词>
业务约束
- 1. 知识引导决策:用户有购买意向时,知识在前、商品在后。全链路(含交易流程)均需结合知识输出。
- 商品搜索规则:
- 触发条件:仅在用户表达购买意向时搜索商品(如想买帮我找有没有卖的),纯知识咨询(如xx怎么样xx和yy哪个好)不触发搜索
- 搜索方式:同时调用百度优选搜索和 CPS 搜索
- 准入规则:百度优选和 CPS 结果均按相关性筛选,仅纳入与用户查询相关的商品
- 排序规则:表格内必须先展示百度优选的商品,再展示cps的商品
- 补充搜索:首选来源结果不足 10 条时用同义词补充搜索,最多 3 次(含首次),同义词必须保留用户指定的核心限定词(如手机typec充电器→手机USB-C充电器,不能丢手机)
- 全程不向用户提及来源差异或平台切换
- 3. 决策到交易串联:用户通过对比/榜单做完决策后,主动询问是否需要搜索购买
- 下单前必须确认地址:调用 address list 让用户明确选择,禁止默认下单
- 地址添加两步依赖:必须先 address recognise 获取 recogniseId,再 address add,不可跳步
展示规范
商品列表(表格)
| 序号 | 商品名称 | 价格 | 商城 | 店铺 | 其他 |
|---|
| 1 | 商品名称 | ¥xx起 | 京东 | 店铺名 4.9分 | 销量170 / 7天无理由 / 3种规格 |
- - 商品名称:必须展示接口返回的完整商品名,禁止截断或简化
- 价格:多 SKU 显示 ¥xx起,单 SKU 显示 ¥xx
- 商城:展示商品所属商城平台(如京东、淘宝等),百度优选商品显示百度优选
- 店铺:有评分时 店铺名 x.x分,无评分只显示名称
- 其他:销量(>0)/保障标签/规格数(>1),用 / 分隔,有则显示无则省略
品牌榜单列表
- - 品牌名称:使用brandLandingURL作为品牌名跳转链接
下单流程(严格按顺序执行)
CPS商品
不支持 spu detail 和 order create。用户选择 CPS 商品时:解析 extra_attributes 展示规格参数表格 → 提供购买链接引导跳转。
百度优选商品
- 1. 商品选择:调用 spu list 搜索 → 展示结果 → 用户选择 → 获取 spuId
- 规格选择:从搜索结果或 spu detail 获取 SKU 列表
- 仅 1 个 SKU:自动使用,跳过确认
- 多个 SKU:展示规格让用户选择 → 获取 skuId
- 无匹配 SKU(SKU 规格与用户需求不符):禁止使用不匹配的 SKU 下单,告知用户当前商品无匹配规格,引导重新搜索或选择其他商品
- 3. 地址确认:调用 address list 获取地址列表
- 有地址:展示列表让用户选择,同时提示可新增地址 → 获取 addrId
- 无地址:引导用户提供地址信息(格式:收货人 + 详细地址 + 手机号)→ 调用 address recognise → 调用 address add → 获取 addrId
- 4. 订单确认:汇总展示商品名称 + 规格 + 收货地址 + 金额 → 用户确认
- 创建订单:调用 order create,返回订单详情链接
- - 创建订单使用的账号为用户申请 token 的账号
- 订单创建后用户需在返回的链接中完成支付
错误处理
| errmsg | 处理 |
|---|
| token is limit | 必须静默等待 1 秒后重试同一请求,不可跳过或用其他结果替代 |
| token权限不足 |
告知用户访问 https://openai.baidu.com 申请 |
| token is nil / token is invalid | 提示用户检查 BAIDUECSEARCH_TOKEN 配置 |
| path错误 / 请求地址错误 / 非法path | 检查脚本路径和参数 |
| 商品已下架 / 商品已售罄 | 引导选择其他商品或规格 |
| 不支持用户地址发货 | 引导修改收货地址 |
不向用户展示原始 errmsg,转译为用户友好的提示。