基于 竞品数据汇总表V36.xlsx 的本地竞品分析工具,支持:
- 竞品信息搜索
- 数据概览
- 结构化筛选
- 自然语言问答
竞品 vs WK/CK/SC自动对比- 本地网页交互
当前实现会自动识别汇总页和表头,适合做竞品检索、样品筛选、分组对比和阶段性汇报。
Compare/
├── README.md
├── competitor_filter_agent.py
├── competitor_agent_web.py
├── competitor_agent_web.html
├── prepare_streamlit_data.py
├── requirements.txt
├── streamlit_app.py
├── streamlit_data/competitors.json
└── 竞品数据汇总表V36.xlsx
读取 Excel 汇总页后,输出:
- 总记录数
- 分组数
- 菌株数
- 来源方数
- 对接人数
- 类别分布
- 高频菌株
- 高频来源方
- 关键字段覆盖率
支持按以下条件筛选:
- 菌株
- 外部编号/名称
- 来源方
- 对接人
- 类别
- 分组
- 时间节点
- 关键词
- 数值阈值,如
WGS > 0.99、乳糖 < 5
脚本会按 group_label 自动组装对比单元,把同组中的:
竞品WKCK1 ~ CK6SC
视作同一对比组,自动输出:
- 内部参考样本
- 竞品样本
- 可比较指标
- 竞品占优 / 内部占优 / 持平
- 信息不足说明
输入一句自然语言,系统会自动识别任务类型:
- 概览:如
概览一下这份竞品表 - 筛选:如
找出阿克曼菌,来源善恩康,2026年2月送检的竞品 - 对比:如
对比植物乳植杆菌竞品和微康
- Python 3.10+
openpyxl
如果本机还没安装依赖:
python3 -m pip install openpyxlpython3 /Users/zzp/Code/Compare/competitor_filter_agent.py summarypython3 /Users/zzp/Code/Compare/competitor_filter_agent.py list \
--strain "短双歧杆菌" \
--source "飞鹤"带数值条件的筛选:
python3 /Users/zzp/Code/Compare/competitor_filter_agent.py list \
--category "竞品" \
--metric "WGS" \
--op ">" \
--value 0.99按自然语言对比:
python3 /Users/zzp/Code/Compare/competitor_filter_agent.py compare \
--query "对比植物乳植杆菌竞品和微康"按分组精确对比:
python3 /Users/zzp/Code/Compare/competitor_filter_agent.py compare \
--group 2python3 /Users/zzp/Code/Compare/competitor_filter_agent.py ask \
"找出阿克曼菌,来源善恩康,2026年2月送检的竞品"或:
python3 /Users/zzp/Code/Compare/competitor_filter_agent.py agent \
"对比植物乳植杆菌竞品和微康"启动本地服务:
python3 /Users/zzp/Code/Compare/competitor_agent_web.py --host 127.0.0.1 --port 8765然后在浏览器打开:
网页包含三个主要区域:
- 顶部搜索框:直接搜菌株、外部编号、来源或一句话问题
- 结构化筛选区:适合精确查数
- 分组对比区:适合拉竞品 vs 内部参考结论
如果你要发布到公网,推荐直接用 GitHub + Streamlit Community Cloud。
python3 /Users/zzp/Code/Compare/prepare_streamlit_data.py这一步会把 Excel 转成 streamlit_data/competitors.json,部署时优先读取这个 JSON,不依赖本地 Excel 路径。
streamlit run /Users/zzp/Code/Compare/streamlit_app.py建议把 Compare/ 目录单独放进一个仓库。仓库里至少保留这些文件:
streamlit_app.pycompetitor_filter_agent.pyprepare_streamlit_data.pyrequirements.txtstreamlit_data/competitors.json
- 登录 Streamlit Community Cloud
- 连接 GitHub 仓库
- 选择仓库、分支和入口文件
streamlit_app.py - 点击 Deploy
官方文档:
HN019M-16V找出阿克曼菌,来源善恩康,2026年2月送检的竞品WGS > 0.99 的竞品乳糖 < 5 的阿克曼菌对比植物乳植杆菌竞品和微康对比 2 组的飞鹤 B06 和 WK概览一下这份竞品表
网页服务启动后,提供以下本地接口:
返回全表概览。
返回筛选表单可用选项。
按结构化条件筛选。
示例:
{
"strain": "短双歧杆菌",
"source": "飞鹤",
"limit": 10
}生成竞品 vs 内部参考对比报告。
示例:
{
"query": "对比植物乳植杆菌竞品和微康",
"max_groups": 3,
"max_competitors": 4,
"max_metrics": 6
}智能体统一入口,自动识别任务类型。
示例:
{
"query": "找出阿克曼菌,来源善恩康,2026年2月送检的竞品",
"limit": 20,
"max_groups": 5,
"max_competitors": 4,
"max_metrics": 6
}- 优先使用同组中的
WK作为内部参考 - 如果没有
WK,则回退到CK / SC - 仅对有可提取数值的字段做自动判断
水分、水活、乳糖默认按“越低越优”总菌体/活菌、WGS、感官分、稳定性默认按“越高越优”
110000.9972700亿TFU/g2300-100%
这类字符串会尽量抽取首个有效数值做比较。
- 当前只解析
00 数据汇总表,还没有联动 5 张明细页 - 时间字段是半结构化文本,暂不是严格日期模型
- 部分字段混合文本和数字,自动比较结果仍需要人工复核
- 本地网页是单用户本地服务,不带登录、权限和持久化
- 接入 5 张明细页,补齐检测进度和缺失项
- 增加 CSV / Excel 导出
- 把对比结果整理成“汇报卡片”或“周报摘要”
- 加入结论打分,支持优先级排序
- 智能体核心脚本:competitor_filter_agent.py
- 网页服务:competitor_agent_web.py
- 网页界面:competitor_agent_web.html
- 原始数据:竞品数据汇总表0305.xlsx