用 OpenAI API 自动化分类智能手表用户问题示例

一、代码功能与应用场景

这段代码的核心目标是:将智能手表用户的 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)
  1. 遍历所有待分类问题
  2. format方法填充提示词模板,生成针对单个问题的分类指令
  3. 调用get_openai_response函数获取 AI 分类结果
  4. 打印结果(实际场景中可写入数据库、生成报表等)

三、总结

  1. 核心逻辑:通过 OpenAI API(兼容阿里云通义千问),结合结构化提示词模板,实现用户问题的自动化分类

  2. 关键技巧:提示词设计需明确任务、限定输出,代码封装需兼顾复用性和异常处理

  3. 应用价值:将重复的人工分类工作自动化,提升客服、运营等场景的效率,同时保证分类标准的一致性。

相关推荐
我送炭你添花2 小时前
工业现场疑难软故障实录:09 老旧产线,稳定裕量已经被吃光了
机器人·自动化·智能工厂
AOwhisky3 小时前
Python 学习笔记(第十五期)——运维自动化(下·后篇):堡垒机实战——paramiko高阶篇
运维·python·学习·云原生·自动化·运维开发
重生的黑客3 小时前
Linux 进程优先级、切换与调度:从孤儿进程到 O(1) 调度模型
linux·运维·服务器·进程优先级·nice
Urbano3 小时前
夹克与商务单西口袋工序自动化技改研究报告
运维·自动化
期待着20135 小时前
docker 安装 ,在centos7.9
运维·docker·容器
踏月的造梦星球5 小时前
DM8 DSC 单机双实例部署
运维·开发语言·数据库
薛定谔的猫19825 小时前
LLaMA Factory微调中的模版在vLLM或LMDeploy框架部署中对齐
大模型·微调·vllm·模版·llama factory·lmdeploy·对话模板
MXsoft6186 小时前
平台化是智能运维发展的必然趋势吗?
运维
用户7783366132116 小时前
serpbase + GraphQL wrapper 实战:让 SERP 数据走 GraphQL schema
数据库·api
liuccn6 小时前
Linux 存储系统:LVM 与直接分区
linux·运维