rubix/client

Rubix ML Server 的 PHP 客户端 SDK。

资助包维护!
andrewdalpino

安装: 477

依赖: 0

建议: 0

安全: 0

星标: 3

关注者: 4

分支: 2


README

Rubix ML Server 的 PHP 客户端 SDK。

安装

使用 Composer 安装 Rubix 客户端 SDK

$ composer require rubix/client

要求

  • PHP 7.4 或更高版本

文档

最新文档如下。

目录

客户端

客户端允许您通过 PHP 应用程序内部友好的面向对象接口直接与模型服务器通信。在底层,客户端为您处理所有网络通信和内容协商,这样您就可以编写程序,就像模型直接可访问一样。

返回模型的预测结果

public predict(Dataset $dataset) : array
use Rubix\Client\RESTClient;

$client = new RESTClient('127.0.0.1', 8080);

// Import a dataset

$predictions = $client->predict($dataset);

计算数据集中每个样本的联合概率

public proba(Dataset $dataset) : array

计算数据集中每个样本的异常分数

public score(Dataset $dataset) : array

异步客户端

实现异步客户端接口的客户端具有所有标准客户端方法的异步版本。所有异步方法都返回一个 Promises/A+ 对象,该对象解析为响应的返回值。Promise 允许您在请求处理时执行其他工作或并行执行多个请求。在 Promise 上调用 wait() 方法将阻塞,直到 Promise 解析并返回值。

public predictAsync(Dataset $dataset) : Promise
$promise = $client->predictAsync($dataset);

// Do something else

$predictions = $promise->wait();

返回模型预测的概率的 Promise

public probaAsync(Dataset $dataset) : Promise

返回模型预测的异常分数的 Promise

public scoreAsync(Dataset $dataset) : Promise

REST 客户端

REST 客户端通过其公开的 JSON REST API 与 HTTP 服务器 进行通信。

接口: 客户端异步客户端

参数

示例

use Rubix\Client\RESTClient;
use Rubix\Client\HTTP\Middleware\BasicAuthenticator;
use Rubix\Client\HTTP\Middleware\CompressRequestBody;
use Rubix\Client\HTTP\Middleware\BackoffAndRetry;
use Rubix\Client\HTTP\Encoders\Gzip;

$client = new RESTClient('127.0.0.1', 443, true, [
	new BasicAuthenticator('user', 'password'),
	new CompressRequestBody(new Gzip(1)),
	new BackoffAndRetry(),
], 0.0, true);

客户端中间件

类似于服务器中间件,客户端中间件是函数,它们挂钩到请求/响应周期,但来自客户端端。一些服务器中间件有相应的客户端中间件,例如 基本认证器共享令牌认证器

回退和重试

回退和重试中间件通过等待一段时间后重试请求来处理 Too Many Requests (429) 和 Service Unavailable (503) 响应,以避免进一步过载服务器。通过乘性增加重试之间的延迟,逐渐实现可接受的回退期。

参数

示例

use Rubix\Client\HTTP\Middleware\BackoffAndRetry;

$middleware = new BackoffAndRetry(5, 0.5);

基本认证器(客户端端)

使用基本方案添加必要的授权头到请求中。

参数

示例

use Rubix\Client\HTTP\Middleware\BasicAuthenticator;

$middleware = new BasicAuthenticator('morgan', 'secret');

压缩请求数据

将 Gzip 压缩算法应用于请求数据。

参数

示例

use Rubix\Client\HTTP\Middleware\CompressRequestBody;

$middleware = new CompressRequestBody(5, 65535);

共享令牌认证器(客户端端)

使用 Bearer 方案添加必要的授权头到请求中。

参数

示例

use Rubix\Client\HTTP\Middleware\SharedtokenAuthenticator;

$middleware = new SharedTokenAuthenticator('secret');

许可

代码采用 MIT 许可,文档采用 CC BY-NC 4.0 许可。