导读:本期聚焦于张衡创作的《如何用大模型Prompt高效完成BCG矩阵产品组合分析?》,敬请观看详情。BCG矩阵把业务单元划分为明星、现金牛、问题和瘦狗四类,核心是相对市场份额和市场增长率两个维度。过去做这种分析,需要收集大量数据并手动归类。现在借助大模型的推理能力,只要把数据表和判断标准放进提示词,就能让模型输出符合波士顿矩阵逻辑的分类结果。本文给出一个可直接使用的Prompt模板,并说明如何通过参数控制让分析结果更稳定。同时演示用Python脚本调用大模型接口,将产品名称、市场份额、增长率等字段批量传入,返回带象限标签和建议的JSON。重点讨论提示词中的角色设定、评分规则和输出格式约束,避免模型自由发挥导致分类混乱。还会提到结果校验的常用方法,比如让模型解释每个产品的归类理由,帮助发现数据或逻辑上的异常。

BCG矩阵(Boston Consulting Group Matrix)诞生于上世纪70年代,至今仍是战略分析的基础工具之一。它用市场增长率和相对市场份额两个维度,把企业产品或业务单元分成四类:高增长高份额的是明星,高增长低份额的是问题,低增长高份额的是现金牛,低增长低份额的是瘦狗。传统做法需要财务和业务团队整理大量数据,再人工判断每个产品落在哪个象限。这个流程既耗时又容易受主观因素干扰。借助大语言模型,我们可以把判断规则和数据结构化后写入Prompt,让模型快速完成归类,并给出理由和下一步建议。关键在于Prompt设计是否足够清晰,输出格式是否受到严格约束。

如何用大模型Prompt高效完成BCG矩阵产品组合分析?

BCG矩阵的核心逻辑与Prompt设计思路

要让大模型正确执行BCG矩阵分析,提示词中必须明确两个维度的定义和计算方式。相对市场份额通常用「本产品市场份额除以最大竞争对手份额」来表示,市场增长率则是该产品所在品类的年度增速。很多人在设计Prompt时只给了两个数字,却忽略了模型不知道这两个数字对应什么含义,结果模型凭常识自由发挥,导致分类结果不可复现。因此,Prompt里需要写清楚每个字段的名称、单位以及判断阈值。例如可以规定:相对市场份额大于1.0且市场增长率高于10%为明星,相对市场份额小于1.0但增长率高于10%为问题,相对市场份额大于1.0但增长率低于10%为现金牛,两者都低为瘦狗。

除了规则,Prompt还应当包含角色设定和输出格式要求。角色设定可以让模型进入企业战略顾问的语境,减少闲聊式输出。输出格式建议强制指定为JSON,这样后续可以用程序自动解析,避免人工从长文本中提取信息。一个典型的Prompt段落可以这样写:你是一名资深产品战略分析师,请根据以下产品的市场份额和增长率数据,按照BCG矩阵规则将每个产品分类。输入数据为JSON数组,每个元素包含产品名称、相对市场份额、市场增长率。输出必须是JSON数组,每个元素包含产品名称、象限、分类理由、策略建议。这样的约束能让模型的行为更接近一个确定的函数。

另外一个容易被忽略的细节是少量样本(few-shot)的用法。如果只给规则,模型对边界情况(比如增长率恰好等于10%)可能会犹豫。你可以在Prompt中附带一两个示例,展示当数值恰好落在阈值附近时应该如何归类和解释。这种示例不需要多,一到两个就能显著提升输出一致性。示例中要特别注明:边界值按四舍五入或向下取整处理,例如增长率10.0%视为高增长,相对市场份额1.0视为高份额。

可复用的Prompt模板与参数化技巧

下面是一个可以实际使用的Prompt模板。为了便于复制,这里用纯文本块展示,其中大括号内的变量表示需要替换的内容。这个模板已经包含角色设定、字段说明、分类规则和输出格式,可以直接粘贴到ChatGPT、Claude或任何支持系统提示词的大模型平台中使用。

你是一位有十年经验的战略咨询顾问,擅长使用BCG矩阵进行产品组合分析。请根据以下规则对给定产品进行分类。

输入数据是一个JSON数组,每个元素包含三个字段:product_name(产品名称,字符串)、relative_market_share(相对市场份额,浮点数,表示本产品份额/最大竞争对手份额)、market_growth_rate(市场增长率,浮点数,百分数形式,例如8.5表示8.5%)。

分类规则:
- 明星(Star):relative_market_share >= 1.0 且 market_growth_rate >= 10
- 问题(Question Mark):relative_market_share < 1.0 且 market_growth_rate >= 10
- 现金牛(Cash Cow):relative_market_share >= 1.0 且 market_growth_rate < 10
- 瘦狗(Dog):relative_market_share < 1.0 且 market_growth_rate < 10

对每个产品输出一个JSON对象,包含以下字段:product_name、quadrant(取值:Star、Question Mark、Cash Cow、Dog)、reason(用中文解释分类依据,不少于20字)、suggestion(用中文给出该产品的战略建议,不少于20字)。所有输出必须是一个JSON数组,不要添加任何额外的解释文字。

输入数据:
{{product_list}}

这个模板中的 {{product_list}} 是占位符,实际使用时替换成真实数据。注意分类规则中使用了大于等于和小于的组合,避免了边界遗漏。为了适配不同场景,你还可以增加一个可选的阈值参数,比如在Prompt中加入 market_growth_threshold: 10 和 relative_share_threshold: 1.0,让用户自己调整。这种方式尤其适合同一个模板在不同事业部复用,只要改变阈值就能适应不同行业的增长标准。

参数化还有一个好处:你可以把模型温度(temperature)调低,比如设为0或0.1。BCG矩阵分析本质上是规则映射,不需要创造性发挥,温度越低输出越稳定。如果模型平台支持JSON模式或函数调用,建议开启,能进一步保证返回的JSON不包含任何无关文本。但即便没有这些高级功能,只要模板中的输出格式写得足够明确,主流大模型也能大概率返回合法JSON。

用Python调用大模型执行分析

将上面的Prompt集成到自动化流程中,最方便的方式是用Python调用大模型API。下面这段代码演示了如何通过OpenAI兼容接口处理一组产品数据,并解析返回的JSON。代码中使用了环境变量来保存API密钥,避免硬编码。为了保持示例简洁,这里只处理同步调用,生产环境可以改成异步批量处理。

import os
import json
from openai import OpenAI

# 初始化客户端,API Key 从环境变量读取
client = OpenAI(
    api_key=os.environ.get("OPENAI_API_KEY"),
    base_url="https://api.openai.com/v1"
)

# 模拟产品数据
products = [
    {"product_name": "智能音箱Pro", "relative_market_share": 1.8, "market_growth_rate": 25.0},
    {"product_name": "老款蓝牙耳机", "relative_market_share": 0.4, "market_growth_rate": 3.2},
    {"product_name": "带屏智能音箱", "relative_market_share": 0.7, "market_growth_rate": 18.5},
    {"product_name": "经典款充电宝", "relative_market_share": 2.3, "market_growth_rate": 5.0},
]

# Prompt模板,注意大括号需要转义才能通过 f-string 正常输出
prompt_template = """你是一位有十年经验的战略咨询顾问,擅长使用BCG矩阵进行产品组合分析。请根据以下规则对给定产品进行分类。

输入数据是一个JSON数组,每个元素包含三个字段:product_name、relative_market_share、market_growth_rate。

分类规则:
- 明星(Star):relative_market_share >= 1.0 且 market_growth_rate >= 10
- 问题(Question Mark):relative_market_share < 1.0 且 market_growth_rate >= 10
- 现金牛(Cash Cow):relative_market_share >= 1.0 且 market_growth_rate < 10
- 瘦狗(Dog):relative_market_share < 1.0 且 market_growth_rate < 10

对每个产品输出一个JSON对象,包含以下字段:product_name、quadrant、reason、suggestion。所有输出必须是一个JSON数组,不要添加任何额外的解释文字。

输入数据:
{product_list}"""

# 生成最终的prompt
product_list_json = json.dumps(products, ensure_ascii=False)
prompt = prompt_template.format(product_list=product_list_json)

# 调用大模型
response = client.chat.completions.create(
    model="gpt-4o-mini",
    messages=[
        {"role": "system", "content": "你是一个严格遵守输出格式的助手。"},
        {"role": "user", "content": prompt}
    ],
    temperature=0,
    response_format={"type": "json_object"}
)

# 获取并解析结果
content = response.choices[0].message.content
try:
    result = json.loads(content)
    print(json.dumps(result, ensure_ascii=False, indent=2))
except json.JSONDecodeError as e:
    print("返回内容不是合法JSON:", content)

代码中有几个值得注意的地方。第一,使用了 response_format={"type": "json_object"} 来强制模型返回JSON,这是OpenAI较新版本接口支持的参数,很多兼容平台也支持。如果你的模型不支持该参数,可以直接去掉,依靠Prompt中的输出格式要求。第二,温度设为0可以最大限度减少随机性,适合这种确定性分类任务。第三,Prompt模板中使用了Python的 .format() 方法,占位符 {product_list} 会被替换成JSON字符串,注意模板中其他大括号需要双写转义,这里没有额外大括号,所以没问题。如果模板内容本身含有大括号(比如JSON字段格式),则需要双写。

调用返回的JSON数组可以直接写入数据库或导出为CSV,交给可视化工具生成气泡图,气泡的X轴代表相对市场份额,Y轴代表市场增长率,气泡大小代表销售额。这样就把大模型的文本输出转变成了标准的BCG矩阵图形,整个分析链路可以完全自动化。

结果校验与Prompt优化建议

大模型偶尔会在边界值或极端数据上产生错误分类,尤其是当输入数据中某个产品的数值接近阈值时。为了降低风险,可以在Prompt中要求模型输出 reason 字段时明确写出计算对比过程,例如「相对市场份额为0.98,低于1.0,市场增长率12.5%,高于10%,因此归类为问题」。这样你就能通过正则或人工抽查快速发现明显违背规则的输出。如果发现模型多次在特定数值上犯错,不要只依赖更详细的描述,而是应该调整阈值的表述方式,比如把「高于10%」改成「市场增长率超过9.99%时视为高增长」,消除歧义。

另一个有效的优化思路是引入评分制,而不是直接让模型做二分类。你可以要求模型先对每个产品计算相对市场份额得分和市场增长率得分,再根据得分落入哪个区间输出象限。例如:相对市场份额在0到0.5之间得1分,0.5到1.0之间得2分,1.0以上得3分;市场增长率低于5%得1分,5%到10%得2分,10%以上得3分。然后规定得分为(3,3)为明星,(1或2,3)为问题,(3,1或2)为现金牛,(1或2,1或2)为瘦狗。这种打散重构的方法能减少模型直接套用阈值的错误,并且让分类依据更透明。

最后,当你需要处理几十个甚至上百个产品时,可以分批调用模型,每批控制在10个以内,避免长上下文下模型注意力分散导致后半部分产品分类质量下降。也可以先对产品进行初步筛选,把明显属于现金牛或瘦狗的先过滤掉,只让模型分析争议较大的产品,节省token和时间。无论采用哪种方式,都建议保留一份人工复核的机制,尤其是针对明星和问题产品,因为这两类直接关系到资源投入决策。

大模型PromptBCG矩阵产品组合分析修改时间:2026-09-28 10:35:39

免责声明:已尽一切努力确保本网站所含信息的准确性。网站作品多为原创整理与精心创作,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们进行处理Email:chomcom@qq.com。
引用或转载本作品时,请注明当前出处:https://www.ipipp.com/html/0928/62950.html,基于非商业用途的前提下,欢迎转载或二创本作品。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。