用 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 小时前
教育行业上云实践:从在线课堂到智慧校园的架构升级
大数据·运维·人工智能·安全·架构·数字化转型
如若1232 小时前
WSL2安装Ubuntu完整教程:自定义安装目录到D盘(--location一键搞定)
linux·运维·服务器·pytorch·python·ubuntu·计算机视觉
IOT-Power3 小时前
自动化设备控制系统 / Qt + 嵌入式设备软件
运维·qt·自动化
阿拉斯攀登4 小时前
记忆的困境:RNN 与 LSTM 的底层逻辑
人工智能·rnn·深度学习·ai·大模型·llm·lstm
papaofdoudou4 小时前
QEMU和KVMTOOL在GPA(IOVA)和HVA映射方面的异同
linux·运维·服务器
Xzq2105094 小时前
部分重要协议或技术(DNS,ICMP,NAT,代理服务器)
运维·服务器·网络
艾莉丝努力练剑5 小时前
文件描述符fd:跨进程共享机制
java·linux·运维·服务器·开发语言·c++
原来是猿5 小时前
Linux-【文件系统下】
linux·运维·数据库
勇闯逆流河5 小时前
【Linux】linux进程概念(冯洛伊曼体系、操作系统、进程详解)
linux·运维·服务器