开源技术小栈开源技术小栈
🌐 Home
⛄ 精选文章
🐜 数据库
Ⓜ️ 微服务
📺 Bilibili
🐳 Github
🎃 腾讯云社区
💫 博客园
  • 💫 Git
  • 🐜 Linux
  • 🕸️ Docker
  • 🐌 Jenkins
🌐 Home
⛄ 精选文章
🐜 数据库
Ⓜ️ 微服务
📺 Bilibili
🐳 Github
🎃 腾讯云社区
💫 博客园
  • 💫 Git
  • 🐜 Linux
  • 🕸️ Docker
  • 🐌 Jenkins
  • 0X01 2025

    • 🔶 大模型编程0X01 | 调用 API 完成内容分类
    • 🔶 PHP8.5 新增管道操作符
    • 🔶 Redis搭建高并发电商秒杀系统
    • 🔶 MQTT与PHP使用实时消息传递指南
    • 🔶 MQTT消息协议初学者指南
  • 0X01 2024

    • 🔷 SaaS多租户架构数据源动态切换解决方案
    • 🔶 HTTP分块Chunk传输让客户端响应更迅速数据
    • 🔷 PHP使用JSONSchema进行API模式验证和类型检查
    • 🔶 PHP日志管理神器Monolog
    • 🔷 使用PHP创建和管理自己的JWT令牌
    • 🔶 谁说PHP不能异步和并行运行?
    • 🔷 webman使用RabbitMQ消息中间件实现系统异步解耦实战教程
    • 🔶 基于Websocket和Canvas实现多人协作实时共享白板
    • 🔶 PHP高性能纯协程网络通信引擎Swow
    • 🔶 webman如何使用swoole事件驱动和协程?
    • 🔶 高性能PHP框架webman协程插件入门实战
    • 🔶 编译PHP 8.3并快速启动ThinkPHP 8.0框架项目
    • 🔶 【转载】漫谈Swoole协程与异步IO

大模型编程0X01〡调用 API 完成内容分类

引言

随着大模型技术的飞速发展,开发者可以通过简单的 API 调用实现复杂的业务需求,比如文本分类、情感分析等。这篇文章将带你走进大模型编程的实战场景,通过调用通义千问 API,完成用户反馈的自动分类任务。无需复杂的算法开发,也无需逐条手动分析,只需几行代码,就能让大模型为我们高效处理数据。以下是一个基于真实业务场景的示例,展示如何利用大模型完成内容分类。

业务场景

假设你是一家手机厂商的技术负责人,老板给你一份用户反馈表,要求分析用户对产品的评价,并将反馈按以下原因分类:价格过高、售后支持不足、产品使用体验不佳、其他。最终,统计各类反馈的占比,以便团队针对性改进。

传统方式可能需要人工逐条阅读,或者开发复杂的自然语言处理(NLP)算法。而现在,借助大模型的强大能力,我们可以通过 API 直接完成这项任务,省时省力,效果还更好!

实现步骤

Step.1 获取 API Key

首先,你需要从通义千问(或其他支持 OpenAI 兼容接口的大模型服务商)获取 API Key。以下以通义千问为例,注册并登录平台后,在控制台生成你的专属 API Key。

注意:为了安全起见,建议将 API Key 配置到环境变量中,而不是直接硬编码到代码里。如果仅为个人测试,可以暂时忽略环境变量设置。

Step.2 代码实现

我们使用 PHP (兼容通义千问)来实现用户反馈的自动分类。以下是完整的代码示例:

<?php
/** @desc 大模型编程0X01〡调用 API 完成内容分类 */
declare(strict_types=1);

// 设置 API Key 和 API 地址
$api_key = "sk-xxxxxxxxxxxxxxxxxxxx"; // 替换为你的通义千问 API Key
$base_url = "https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions";

// 用户反馈数组
$userFeedbacks = [
    "这个手机太贵了,对于我这样的普通消费者不太友好。",
    "客服总是找不到,售后支持根本不给力。",
    "使用起来卡顿,体验很不好。",
    "包装有点损坏,不过可以接受。"
];

// 分类函数
function classify_feedback(string $feedback): string
{
    global $api_key, $base_url;

    // 准备请求数据
    $data = [
        "model" => "qwen-plus",
        "messages" => [
            ["role" => "system", "content" => "You are a helpful assistant for classifying user feedback."],
            ["role" => "user", "content" => "请将以下用户反馈按原因分类:价格过高、售后支持不足、产品使用体验不佳、其他。反馈内容:{$feedback}\n回答格式:分类结果:"]
        ],
        "temperature" => 0
    ];

    // 初始化 cURL
    $ch = curl_init($base_url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
    curl_setopt($ch, CURLOPT_HTTPHEADER, [
        "Authorization: Bearer $api_key",
        "Content-Type: application/json"
    ]);
    curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));

    // 执行请求
    $response = curl_exec($ch);

    // 检查 cURL 错误
    if ($response === false) {
        $error = curl_error($ch);
        curl_close($ch);
        return "Error: cURL error - $error";
    }

    // 解析响应
    $response_data = json_decode($response, true);
    curl_close($ch);

    // 提取分类结果
    if (isset($response_data['choices'][0]['message']['content'])) {
        return trim($response_data['choices'][0]['message']['content']);
    } else {
        return "Error: Failed to classify feedback";
    }
}

// 遍历并分类所有反馈
foreach ($userFeedbacks as $feedback) {
    $classification = classify_feedback($feedback);
    echo "用户反馈: $feedback\n$classification\n\n";
}

Step.3 运行结果

运行以上代码,将得到类似以下输出:

用户反馈: 价格太高了,感觉性价比不高。
分类结果:价格过高

用户反馈: 售后服务响应太慢,联系不上客服。
分类结果:售后支持不足

用户反馈: 手机用着卡顿,体验很差。
分类结果:产品使用体验不佳

用户反馈: 包装有点简陋,但功能还行。
分类结果:其他

Step.4 结果分析

通过代码输出的分类结果,你可以轻松统计各类反馈的占比。例如,假设有 100 条反馈,运行代码后可以快速汇总出:

  • 价格过高:30%
  • 售后支持不足:25%
  • 产品使用体验不佳:35%
  • 其他:10%

基于这些数据,团队可以优先改进产品使用体验,因为这是用户反馈中最突出的问题。

小结

通过通义千问的 API,我们用简单的 PHP 代码实现了用户反馈的自动分类,轻松应对复杂的业务需求。这种方法不仅高效,还极大地降低了开发门槛。无论是初学者还是资深开发者,都可以通过大模型编程快速实现类似功能。

如果你对大模型编程感兴趣,不妨尝试调用其他 API 功能,比如生成文本、翻译、问答等。未来,我们将继续探索更多大模型的实用场景,敬请期待!

最近更新: 2025/8/22 11:49
贡献者: Tinywan
Next
🔶 PHP8.5 新增管道操作符