一、代码功能与应用场景
这段代码的核心目标是:将智能手表用户的 7 个典型问题,按照预设的 7 个类别(产品规格、使用咨询等)自动分类。适用场景包括:客服工单自动标签化、用户反馈结构化分析、产品问题归类统计等。相比人工分类,AI 分类不仅效率更高,还能保证分类标准的一致性。
二、代码逐段拆解
1. 环境准备
from openai import OpenAI
client = OpenAI(api_key="sk-0b717f29b6ee4852a2331cf1ffa30d4f",
base_url="https://dashscope.aliyuncs.com/compatible-mode/v1")
核心作用 :初始化 OpenAI 客户端,对接阿里云通义千问的兼容接口(无需单独部署模型,直接调用 API)。
关键参数说明:
api_key :阿里云 DashScope 平台的 API 密钥(需自行申请,示例密钥仅为演示)
base_url:通义千问的 OpenAI 兼容接口地址,保证代码无需修改即可适配阿里云模型。
2. 定义 API 调用函数
def get_openai_response(client, prompt, model="qwen-plus"):
response = client.chat.completions.create(
model=model,
messages=[{"role": "user", "content": prompt}],
)
return response.choices[0].message.content
函数功能 :封装 OpenAI 的 ChatCompletions 接口调用逻辑,简化后续重复调用。
参数与返回值:
client :初始化后的 OpenAI 客户端实例;
prompt :传给 AI 的提示词(包含分类指令和用户问题);
model :指定使用的模型(qwen-plus 是通义千问的增强版,兼顾效果与速度);
返回值:提取 AI 回复的核心内容(仅返回分类结果,无多余信息)。
3. 准备待分类的问题与分类标准
# 待分类的用户问题列表
q1 = "我刚买的智能手表无法同步我的日历,我应该怎么办?"
q2 = "手表的电池可以持续多久?"
q3 = "品牌的手表和ABC品牌的手表相比,有什么特别的功能吗?"
q4 = "安装智能手表的软件更新后,手表变得很慢,这是啥原因?"
q5 = "智能手表防水不?我可以用它来记录我的游泳数据吗?"
q6 = "我想知道手表的屏幕是什么材质,容不容易刮花?"
q7 = "请问手表标准版和豪华版的售价分别是多少?还有没有进行中的促销活动?"
q_list = [q1, q2, q3, q4, q5, q6, q7]
# 预设的分类标准
category_list = ["产品规格", "使用咨询", "功能比较", "用户反馈", "价格查询", "故障问题", "其它"]
-
设计思路:将用户问题和分类标准分别封装为列表,便于后续批量处理
-
分类标准说明:覆盖智能手表用户高频问题类型,可根据实际业务调整(如新增 "售后政策""物流咨询" 等)
4. 构建分类提示词模板
classify_prompt_template = """
你的任务是为用户对产品的疑问进行分类。
请仔细阅读用户的问题内容,给出所属类别。类别应该是这些里面的其中一个:{categories}。
直接输出所属类别,不要有任何额外的描述或补充内容。
用户的问题内容会以三个#符号进行包围。
###
{question}
###
"""
提示词(Prompt)设计技巧 :
明确任务 :"为用户对产品的疑问进行分类",避免 AI 理解偏差;
限定输出 :"直接输出所属类别,不要有任何额外的描述",确保返回结果可直接使用;
占位符:{categories} 和 {question} 用于动态替换分类标准和用户问题,提升模板复用性。
5. 批量分类与结果输出
# 遍历问题列表 q_list 中的每一个问题
for q in q_list:
# 格式化提示词模板
formatted_prompt = classify_prompt_template.format(
categories=",".join(category_list), # 将类别列表转为中文顿号分隔的字符串
question=q # 替换为当前用户问题
)
# 调用API获取分类结果
response = get_openai_response(client, formatted_prompt)
# 打印分类结果
print(response)
- 遍历所有待分类问题
- 用
format方法填充提示词模板,生成针对单个问题的分类指令 - 调用
get_openai_response函数获取 AI 分类结果 - 打印结果(实际场景中可写入数据库、生成报表等)
三、总结
-
核心逻辑:通过 OpenAI API(兼容阿里云通义千问),结合结构化提示词模板,实现用户问题的自动化分类
-
关键技巧:提示词设计需明确任务、限定输出,代码封装需兼顾复用性和异常处理
-
应用价值:将重复的人工分类工作自动化,提升客服、运营等场景的效率,同时保证分类标准的一致性。