simonetoo/coze 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

simonetoo/coze

Composer 安装命令:

composer require simonetoo/coze

包简介

Coze PHP SDK for seamless AI integration into your applications

README 文档

README

Coze PHP SDK为开发者提供了简单而灵活的方式来集成Coze AI平台的各种功能到PHP应用中。通过这个SDK,您可以轻松访问Coze的机器人、聊天、知识库、语音合成与识别等多种AI能力,而无需处理底层API的复杂性。

主要特性

  • 简单易用:提供直观的API,使复杂的AI功能调用变得简单
  • 完整覆盖:支持Coze平台的所有主要功能,包括机器人、聊天、知识库、工作流、音频处理等
  • 类型安全:利用PHP的类型提示功能,提供更好的开发体验
  • 灵活配置:支持多种配置选项,适应不同的应用场景
  • 完善的错误处理:提供清晰的错误信息和异常处理机制
  • 测试友好:内置模拟功能,便于单元测试

安装

系统要求

  • PHP:^8.0
  • ext-json:*
  • ext-curl:*

通过Composer安装

composer require simonetoo/coze

配置

获取API密钥

在使用SDK之前,您需要从Coze平台获取API密钥:https://www.coze.cn/open/docs/developer_guides/pat

快速开始

基本用法

初始化客户端

所有与Coze API的交互都始于创建一个Coze客户端实例:

<?php

require_once 'vendor/autoload.php';

use Simonetoo\Coze\Coze;

// 使用API密钥初始化客户端
$client = new Coze([
    'token' => 'your_api_key_here',
]);

错误处理

SDK使用异常来处理错误。建议使用try-catch块来捕获和处理可能的异常:

<?php

use Simonetoo\Coze\Coze;
use Simonetoo\Coze\Exceptions\ApiException;

try {
    $client = new Coze([
        'token' => 'your_api_key_here',
    ]);
    
    // 执行API调用
    $response = $client->bot()->list();
    
    // 处理响应
    $bots = $response->json();
    
} catch (ApiException $e) {
    // 处理API错误
    echo "API错误: " . $e->getMessage();
    echo "HTTP状态码: " . $e->getCode();
    
    // 获取更多错误详情(如果有)
    if ($e->hasResponse()) {
        $errorDetails = $e->getResponse()->json();
        echo "错误详情: " . json_encode($errorDetails);
    }
} catch (\Exception $e) {
    // 处理其他错误
    echo "错误: " . $e->getMessage();
}

使用示例

机器人(Bot)操作

获取机器人列表:

$response = $client->bot()->list();
$bots = $response->json();

获取特定机器人信息:

$botId = '7484523878849822754';
$response = $client->bot()->retrieve($botId);
$botInfo = $response->json();

文件(File)操作

上传文件:

$filePath = '/path/to/your/file.jpg';
$response = $client->file()->upload($filePath);
$fileInfo = $response->json();
$fileId = $fileInfo['file_id'];

获取文件信息:

$fileId = '7484881587176734755';
$response = $client->file()->retrieve($fileId);
$fileInfo = $response->json();

音频(Audio)处理

语音合成(文本转语音):

// 语音合成示例
$voiceId = '7468518753626652709'; // 音色ID
$text = '这是一个测试文本,用于演示语音合成功能。';

$response = $client->audio()->speech($voiceId, $text);

// 保存生成的音频文件
$audioFile = '/path/to/save/audio.mp3';
file_put_contents($audioFile, $response->getBody());

echo "语音合成成功,文件已保存到: $audioFile\n";

语音识别(语音转文本):

// 语音识别示例
$audioPath = '/path/to/your/audio.mp3';
$response = $client->audio()->transcription($audioPath);

// 输出识别结果
$result = $response->json();
echo "识别文本: " . $result['text'] . "\n";
echo "音频时长: " . $result['duration'] . "\n";
echo "识别语言: " . $result['language'] . "\n";

语音(Voice)操作

获取可用音色列表:

// 获取音色列表示例
$response = $client->voice()->list();
$voices = $response->json()['voices'];

// 输出所有可用音色
foreach ($voices as $voice) {
    echo "ID: " . $voice['id'] . "\n";
    echo "名称: " . $voice['name'] . "\n";
    echo "描述: " . $voice['description'] . "\n";
    echo "语言: " . $voice['language'] . "\n";
    echo "------------------------\n";
}

复刻自定义音色:

// 复刻音色示例
$audioPath = '/path/to/sample/audio.mp3';
$voiceName = '自定义音色名称';

$response = $client->voice()->clone($voiceName, $audioPath, [
    'preview_text' => '这是一个用于预览的文本示例。',
]);

// 输出结果
$result = $response->json();
echo "音色ID: " . $result['voice_id'] . "\n";
echo "音色名称: " . $result['name'] . "\n";
echo "状态: " . $result['status'] . "\n";

工作空间(Workspace)操作

获取工作空间列表:

$response = $client->workspace()->list();
$workspaces = $response->json();

知识库(Knowledge)操作

获取知识库列表:

$workspaceId = '7484524201249194023';
$response = $client->knowledge()->list($workspaceId);
$knowledgeBases = $response->json();

更多示例可以在SDK的examples目录中找到。

响应处理

SDK提供了几种响应类型来处理不同的API返回:

JsonResponse

大多数API调用返回JsonResponse对象,它提供了以下方法:

$response = $client->bot()->list();

// 获取JSON数据
$json = $response->json();

// 根据path获取数据
$item = $response->json('data.item', 'default');

// 获取code
$code = $response->code();

// 获取数据
$data = $response->data();
// 根据path获取数据
$item = $response->data('item', 'default')

// 获取HTTP状态码
$statusCode = $response->getStatusCode();

// 获取响应头
$headers = $response->getHeaders();

流式响应

某些API(如大型文件下载)可能返回流式响应,可以这样处理:

$response = $client->audio()->speech('voice_id', 'Hello world');

// 保存到文件
file_put_contents('output.mp3', $response->getBody());

错误处理

SDK使用异常来处理错误。所有API相关的异常都继承自ApiException

try {
    $response = $client->bot()->retrieve('invalid_id');
} catch (\Simonetoo\Coze\Exceptions\ApiException $e) {
    echo "API错误: " . $e->getMessage();
    echo "HTTP状态码: " . $e->getCode();
    
    if ($e->hasResponse()) {
        $errorDetails = $e->getResponse()->json();
        echo "错误详情: " . json_encode($errorDetails);
    }
}

贡献指南

查看贡献指南

许可证

MIT LICENSE

simonetoo/coze 适用场景与选型建议

simonetoo/coze 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 291 次下载、GitHub Stars 达 13, 最近一次更新时间为 2025 年 03 月 28 日, 在 PHP 生态内属于活跃度较高的组件。

它主要适用于以下技术方向: 「php」 「api」 「sdk」 「ai」 「chatbot」 「coze」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。

我们在过去多个企业项目中使用过 simonetoo/coze 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 simonetoo/coze 我们能提供哪些服务?
定制开发 / 二次开发

基于 simonetoo/coze 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 291
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 13
  • 点击次数: 14
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 13
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2025-03-28