rubix / client
Rubix ML Server 的 PHP 客户端 SDK。
Requires
- php: >=7.4
- guzzlehttp/guzzle: ^7.2
- guzzlehttp/psr7: ^1.7
- psr/http-message: ^1.0
- rubix/ml: ^2.0
- symfony/polyfill-php80: ^1.17
Requires (Dev)
- friendsofphp/php-cs-fixer: 2.18.*
- phpstan/extension-installer: ^1.0
- phpstan/phpstan: ^1.0
- phpstan/phpstan-phpunit: ^1.0
- phpunit/phpunit: ^9.0
This package is auto-updated.
Last update: 2024-09-19 23:45:56 UTC
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 许可。