xin/coze

There is no license information available for the latest version (v1.1.0) of this package.

CozeAPI PHP SDK 是一个用于简化与 CozeAPI 交互的工具包

v1.1.0 2025-04-02 13:58 UTC

This package is auto-updated.

Last update: 2025-04-02 13:59:31 UTC


README

简介

CozeAPI PHP SDK 是一个用于简化与 CozeAPI 交互的工具包。它提供了以下功能:

  • 认证管理:自动处理 API 认证和令牌刷新。
  • 请求封装:简化 API 请求的发送过程。
  • 错误处理:统一处理 API 返回的错误信息。
  • 响应解析:自动解析 API 返回的数据。

安装教程

composer require xin/coze

使用说明

  1. 初始化 SDK
<?php
$cozeService = new \Xin\Coze\CozeService([
    'app_id' => '',
    'public_key_id' => '',
    'private_key' => ""
]);
  1. 配置AccessToken缓存器
<?php
use Xin\Coze\AccessToken;

// 返回实现了 \Psr\SimpleCache\CacheInterface 的对象
AccessToken::setCacheResolver(function (){
    return new Psr\Cache\SimpleCache\ArrayCache();
});

// 在 Laravel 中使用
AccessToken::setCacheResolver(function (){
    return Cache::store('file');
});

使用示例

  1. 发送 GET 请求
<?php
try {
    $result = $cozeService->httpGet('/v1/user/info', []);
catch (\Exception $e) {
    echo "Error: " . $e->getMessage();
}
  1. 发送 POST 请求
    <?php
    try {
     $result = $cozeService->httpPost('/v1/user/info', []);
    }catch (\Exception $e){
     echo "Error: " . $e->getMessage();
    }
    
  2. 使用内置服务
    <?php
    // 创建会话
    $data = $cozeService->chat()->create([
     'bot_id' => '',
     'user_id' => '',
     'additional_messages' => [
         [
             'role' => 'user',
             'type' => 'question',
             'content' => '你好',
         ],
     ],
     'stream' => true,
    ], [
     'wait' => true,
    ]);
    var_dump($data);
    

// 获取流式数据 foreach ($data as $line) {

if ($line === '[DONE]') { // || 'event:conversation.message.completed' === $line
    break;
}

$line = json_decode($line, true);
if (!$line) {
    continue;
}

if (isset($line['type']) && $line['type'] === 'answer') {
    if (!isset($line['created_at'])) {
        echo $line['content'];
    } else {
        echo "\n";
        $data->close();
        Printer::info($line);
    }
} else {
}

}

// 阻塞获取会话消息 var_dump($cozeService->chat()->waitMessages($data['conversation_id'], $data['id']));

// 获取会话消息 var_dump($cozeService->chat()->messages($conversationId,$chatId));