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

相关推荐
007张三丰1 分钟前
系统架构设计师范文5:论负载均衡设计
运维·系统架构·负载均衡·软考·软考高级论文
志栋智能10 分钟前
跨越人机边界:超自动化巡检如何重塑工作流程?
运维·网络·人工智能·安全·自动化
OpenCSG13 分钟前
Kimi K2.6:月之暗面发布的原生多模态智能体模型
人工智能·开源·大模型·ai技术·kimi k2.6
zzipeng15 分钟前
IMX6ULL CAN通讯应用学习
linux·运维·网络
goyeer20 分钟前
【ITIL】ITIL服务管理的四个维度
大数据·运维·信息化·自动运维·itil
中国lanwp31 分钟前
CentOS 7 搭建 NFS Server 服务端 + 客户端 完整一键配置
linux·运维·centos
chaofan98039 分钟前
突破大模型落地瓶颈:Claude 4.7 与 GPT-5.5 长上下文工程实测
数据库·人工智能·python·gpt·自动化·php·api
a2591748032-随心所记42 分钟前
android拆解super.img内容
android·linux·运维·服务器
qq_4523962344 分钟前
第十四篇:《持续集成中的UI自动化:Jenkins/GitHub Actions集成》
ui·ci/cd·自动化
ai大模型中转api测评44 分钟前
构建生产级 AI 应用:GPT-5.5 与 Claude 4.7 的 Token 成本管理与工程化实战
大数据·人工智能·gpt·自动化