linkthrow/laravel-5-predictionio

Laravel 5 wrapper for PredictionIO v0.9.*

dev-master 2016-07-29 14:34 UTC

This package is not auto-updated.

Last update: 2024-12-11 20:38:08 UTC


README

*Based on michaeljhopkins

The Laravel PredictionIO library provides a client which offers easy access to a PredictionIO recommendation engine. PredictionIO is an open source machine learning server for software developers to create predictive features, such as personalization, recommendation and content discovery.

Through a small set of simple calls, all server functionality is exposed to your application. You can add users and items, register actions between these users and items and retrieve recommendations deduced from this information by any PredictionIO recommendation engine. Applications range from showing recommended products in a web shop to discovering relevant experts in a social collaboration network.

Installation

  • Install library and dependencies:
$ composer require "linkthrow/laravel-5-predictionio"
  • Add a provider in app/config/app.php:
    LinkThrow\LaravelPredictionIO\Provider\PredictionIOServiceProvider::class
  • Add an alias in app/config/app.php:
    'EngineClient'      => LinkThrow\LaravelPredictionIO\Facades\EngineFacade::class,
        'EventClient'       => LinkThrow\LaravelPredictionIO\Facades\EventFacade::class,
	'predictionio' => [
		'key' => '0250b3f85ce33284f77c77f36b41010ef2c4fc5c',
		'url' => 'http://localhost:7200'
	],

Set a User Record from Your App

// assume you have a user with user ID 5
$response = EventClient::setUser(5);

Set an Item Record from Your App

// assume you have a book with ID 'bookId1' and we assign 1 as the type ID for book
$response = EventClient::setItem('bookId1', array('itypes' => 1));

Import a User Action (View) form Your App

// assume this user has viewed this book item
EventClient::recordUserActionOnItem('view', 5, 'bookId1');

Retrieving Prediction Result

// assume you have created an itemrank engine on localhost:8000
// we try to get ranking of 5 items (item IDs: 1, 2, 3, 4, 5) for a user (user ID 7)

$response = EngineClient::sendQuery(array('uid'=>7, 'iids'=>array(1,2,3,4,5)));

print_r($response);

License

This project is licensed using DBAD. Go have a blast.