commit | b35d5699c4cf45394bf53246396d91490769092e | [log] [tgz] |
---|---|---|
author | Donald Szeto <donald@prediction.io> | Fri May 09 16:43:38 2014 -0700 |
committer | Donald Szeto <donald@prediction.io> | Fri May 09 16:43:38 2014 -0700 |
tree | 3b2b3222cbfedd99e0c47efcdf0e85fa6cf11c3e | |
parent | 15f968f79a3d7e9f8cd2438f3fd640e770f15b57 [diff] |
Add ItemRank engine support. Fixes some documentation and PHAR packaging.
https://groups.google.com/group/predictionio-user
https://predictionio.atlassian.net
If you are unsure whether a behavior is an issue, bringing it up in the forum is highly encouraged.
The easiest way to install PredictionIO PHP client is to use Composer.
Add predictionio/predictionio
as a dependency in your project's composer.json
file:
{ "require": { "predictionio/predictionio": "~0.6.0" } }
Install Composer:
curl -sS https://getcomposer.org/installer | php -d detect_unicode=Off
Use Composer to install your dependencies:
php composer.phar install
Include Composer's autoloader in your PHP code
require_once("vendor/autoload.php");
Assuming you are cloning to your home directory:
cd ~ git clone git://github.com/PredictionIO/PredictionIO-PHP-SDK.git
Build the Phar:
cd ~/PredictionIO-PHP-SDK phing
Once the build finishes you will get a Phar in build/artifacts
, and a set of API documentation. Assuming you have copied the Phar to your current working directory, to use the client, simply
require_once("predictionio.phar");
For a list of supported commands, please refer to the API documentation.
This package is a web service client based on Guzzle. A few quick examples are shown below.
For a full user guide on how to take advantage of all Guzzle features, please refer to http://guzzlephp.org. Specifically, http://guzzlephp.org/tour/using_services.html#using-client-objects describes how to use a web service client.
Many REST request commands support optional arguments. They can be supplied to these commands by the set
method.
use PredictionIO\PredictionIOClient; $client = PredictionIOClient::factory(array("appkey" => "<your app key>"));
// assume you have a user with user ID 5 $command = $client->getCommand('create_user', array('pio_uid' => 5)); $response = $client->execute($command);
// assume you have a book with ID 'bookId1' and we assign 1 as the type ID for book $command = $client->getCommand('create_item', array('pio_iid' => 'bookId1', 'pio_itypes' => 1)); $response = $client->execute($command);
// assume this user has viewed this book item $client->identify('5'); $client->execute($client->getCommand('record_action_on_item', array('pio_action' => 'view', 'pio_iid' => 'bookId1')));
try { // assume you have created an itemrec engine named 'engine1' // we try to get top 10 recommendations for a user (user ID 5) $client->identify('5'); $command = $client->getCommand('itemrec_get_top_n', array('pio_engine' => 'engine1', 'pio_n' => 10)); $rec = $client->execute($command); print_r($rec); } catch (Exception $e) { echo 'Caught exception: ', $e->getMessage(), "\n"; }
try { // assume you have created an itemsim engine named 'engine2' // we try to get top 10 similar items for an item (item ID 6) $command = $client->getCommand('itemsim_get_top_n', array('pio_iid' => '6', 'pio_engine' => 'engine2', 'pio_n' => 10)); $rec = $client->execute($command); print_r($rec); } catch (Exception $e) { echo 'Caught exception: ', $e->getMessage(), "\n"; }
try { // assume you have created an itemrank engine named 'engine3' // we try to get ranking of 5 items (item IDs: 1, 2, 3, 4, 5) for a user (user ID 7) $command = $client->getCommand('itemrank_get_ranked', array('pio_uid' => '7', 'pio_iids' => '1,2,3,4,5', 'pio_engine' => 'engine3')); $rec = $client->execute($command); print_r($rec); } catch (Exception $e) { echo 'Caught exception: ', $e->getMessage(), "\n"; }