http://git-wip-us.apache.org/repos/asf/predictionio-site/blob/a8216bed/templates/javaecommercerecommendation/quickstart/index.html ---------------------------------------------------------------------- diff --git a/templates/javaecommercerecommendation/quickstart/index.html b/templates/javaecommercerecommendation/quickstart/index.html index 259f689..b7527f1 100644 --- a/templates/javaecommercerecommendation/quickstart/index.html +++ b/templates/javaecommercerecommendation/quickstart/index.html @@ -32,7 +32,7 @@ Your system is all ready to go. <span class="o">[</span>INFO] <span class="o">[</span>App<span class="nv">$]</span> MyApp1 | 1 | 3mZWDzci2D5YsqAnqNnXH9SB6Rg3dsTBs8iHkK6X2i54IQsIZI1eEeQQyMfs7b3F | <span class="o">(</span>all<span class="o">)</span> <span class="o">[</span>INFO] <span class="o">[</span>App<span class="nv">$]</span> MyApp2 | 2 | io5lz6Eg4m3Xe4JZTBFE13GMAf1dhFl6ZteuJfrO84XpdOz9wRCrDU44EUaYuXq5 | <span class="o">(</span>all<span class="o">)</span> <span class="o">[</span>INFO] <span class="o">[</span>App<span class="nv">$]</span> Finished listing 2 app<span class="o">(</span>s<span class="o">)</span>. -</pre></td></tr></tbody></table> </div> <p><a href="#"></a></p> <h2 id='4.-collecting-data' class='header-anchors'>4. Collecting Data</h2><p>Next, let's collect training data for this Engine. By default, the E-Commerce Recommendation Engine Template supports 2 types of entities and 2 events: <strong>user</strong> and <strong>item</strong>; events <strong>view</strong> and <strong>buy</strong>. An item has the <strong>categories</strong> property, which is a list of category names (String). A user can view and buy an item. The specical <strong>constraint</strong> entiy with entityId <strong>unavailableItems</strong> defines a list of unavailable items and is taken into account in realtime during serving.</p><p>In summary, this template requires '$set' user event, '$set' item event, user-view-item events, user-buy-item event and '$set' constraint event.</p><div class="alert-message info"><p>This template can easily be customized to consider other user-to-it em events.</p></div> <p>You can send these events to PredictionIO Event Server in real-time easily by making a HTTP request or through the provided SDK. Please see <a href="/appintegration/">App Integration Overview</a> for more details how to integrate your app with SDK.</p><p>Let's try sending events to EventServer with the following <code>curl</code> commands (The corresponding SDK code is showed in other tabs).</p><p>Replace <code><ACCCESS_KEY></code> by the Access Key generated in above steps. Note that <code>localhost:7070</code> is the default URL of the Event Server.</p><p>For convenience, set your access key to the shell variable, run:</p><p><code>$ ACCESS_KEY=<ACCESS_KEY></code></p> <p><a href="#"></a></p> <p>For example, when a new user with id "u0" is created in your app on time <code>2014-11-02T09:39:45.618-08:00</code> (current time will be used if eventTime is not specified), you can send a <code>$set</code> event for this user. To send this event, run the following <code>curl</code> command:</p><div class="tabs"> <ul class="control"> <li data-lang="json"><a href="#tab-dafdb525-4c9d-4289-b6a7-7276edab05de">REST API</a></li> <li data-lang="python"><a href="#tab-28884d63-a3ee-4c67-a8a2-f32814596982">Python SDK</a></li> <li data-lang="php"><a href="#tab-e36f20d1-d545-4861-baae-3ff7a9ee8a1f">PHP SDK</a></li> <li data-lang="ruby"><a href="#tab-2540ebbc-d5eb-45a3-9ae3-718460357a38">Ruby SDK</a></li> <li data-lang="java"><a href="#tab-c178773f-c876-4dd2-b50c-2c4d7f06f7a9">Java SDK</a></li> </ul> <div data-tab="REST API" data-lang="json" id="tab-dafdb525-4c9d-4289-b6a7-7276edab05de"> <div class="highlight shell"> <table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" style="text-align: right"><pre class="lineno">1 +</pre></td></tr></tbody></table> </div> <p><a href="#"></a></p> <h2 id='4.-collecting-data' class='header-anchors'>4. Collecting Data</h2><p>Next, let's collect training data for this Engine. By default, the E-Commerce Recommendation Engine Template supports 2 types of entities and 2 events: <strong>user</strong> and <strong>item</strong>; events <strong>view</strong> and <strong>buy</strong>. An item has the <strong>categories</strong> property, which is a list of category names (String). A user can view and buy an item. The specical <strong>constraint</strong> entiy with entityId <strong>unavailableItems</strong> defines a list of unavailable items and is taken into account in realtime during serving.</p><p>In summary, this template requires '$set' user event, '$set' item event, user-view-item events, user-buy-item event and '$set' constraint event.</p><div class="alert-message info"><p>This template can easily be customized to consider other user-to-it em events.</p></div> <p>You can send these events to PredictionIO Event Server in real-time easily by making a HTTP request or through the provided SDK. Please see <a href="/appintegration/">App Integration Overview</a> for more details how to integrate your app with SDK.</p><p>Let's try sending events to EventServer with the following <code>curl</code> commands (The corresponding SDK code is showed in other tabs).</p><p>Replace <code><ACCCESS_KEY></code> by the Access Key generated in above steps. Note that <code>localhost:7070</code> is the default URL of the Event Server.</p><p>For convenience, set your access key to the shell variable, run:</p><p><code>$ ACCESS_KEY=<ACCESS_KEY></code></p> <p><a href="#"></a></p> <p>For example, when a new user with id "u0" is created in your app on time <code>2014-11-02T09:39:45.618-08:00</code> (current time will be used if eventTime is not specified), you can send a <code>$set</code> event for this user. To send this event, run the following <code>curl</code> command:</p><div class="tabs"> <ul class="control"> <li data-lang="json"><a href="#tab-7137a1d5-29e4-4c85-900e-7b075548412d">REST API</a></li> <li data-lang="python"><a href="#tab-73276ae7-aa74-418b-841c-3d9938449baf">Python SDK</a></li> <li data-lang="php"><a href="#tab-cdfd6139-6bd9-4563-83bf-c9e74227f276">PHP SDK</a></li> <li data-lang="ruby"><a href="#tab-45b2798f-37bf-493f-a24b-2b932f3f0541">Ruby SDK</a></li> <li data-lang="java"><a href="#tab-840b9dc0-66c3-42cd-9a95-8272488e75a6">Java SDK</a></li> </ul> <div data-tab="REST API" data-lang="json" id="tab-7137a1d5-29e4-4c85-900e-7b075548412d"> <div class="highlight shell"> <table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" style="text-align: right"><pre class="lineno">1 2 3 4 @@ -47,7 +47,7 @@ Your system is all ready to go. "entityId" : "u0", "eventTime" : "2014-11-02T09:39:45.618-08:00" }'</span> -</pre></td> </tr></tbody></table> </div> </div> <div data-tab="Python SDK" data-lang="python" id="tab-28884d63-a3ee-4c67-a8a2-f32814596982"> <div class="highlight python"> <table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" style="text-align: right"><pre class="lineno">1 +</pre></td> </tr></tbody></table> </div> </div> <div data-tab="Python SDK" data-lang="python" id="tab-73276ae7-aa74-418b-841c-3d9938449baf"> <div class="highlight python"> <table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" style="text-align: right"><pre class="lineno">1 2 3 4 @@ -78,7 +78,7 @@ Your system is all ready to go. <span class="n">entity_type</span><span class="o">=</span><span class="s">"user"</span><span class="p">,</span> <span class="n">entity_id</span><span class="o">=<</span><span class="n">USER_ID</span><span class="o">></span> <span class="p">)</span> -</pre></td> </tr></tbody></table> </div> </div> <div data-tab="PHP SDK" data-lang="php" id="tab-e36f20d1-d545-4861-baae-3ff7a9ee8a1f"> <div class="highlight php"> <table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" style="text-align: right"><pre class="lineno">1 +</pre></td> </tr></tbody></table> </div> </div> <div data-tab="PHP SDK" data-lang="php" id="tab-cdfd6139-6bd9-4563-83bf-c9e74227f276"> <div class="highlight php"> <table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" style="text-align: right"><pre class="lineno">1 2 3 4 @@ -119,7 +119,7 @@ Your system is all ready to go. <span class="s1">'properties'</span> <span class="o">=></span> <span class="k">array</span><span class="p">(</span><span class="s1">'categories'</span> <span class="o">=></span> <span class="k">array</span><span class="p">(</span><span class="s1">'<CATEGORY_1>'</span><span class="p">,</span> <span class="s1">'<CATEGORY_2>'</span><span class="p">))</span> <span class="p">));</span> <span class="cp">?></span> -</pre></td> </tr></tbody></table> </div> </div> <div data-tab="Ruby SDK" data-lang="ruby" id="tab-2540ebbc-d5eb-45a3-9ae3-718460357a38"> <div class="highlight ruby"> <table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" style="text-align: right"><pre class="lineno">1 +</pre></td> </tr></tbody></table> </div> </div> <div data-tab="Ruby SDK" data-lang="ruby" id="tab-45b2798f-37bf-493f-a24b-2b932f3f0541"> <div class="highlight ruby"> <table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" style="text-align: right"><pre class="lineno">1 2 3 4 @@ -136,7 +136,7 @@ Your system is all ready to go. <span class="s1">'user'</span><span class="p">,</span> <span class="o"><</span><span class="no">USER</span> <span class="no">ID</span><span class="o">></span> <span class="p">)</span> -</pre></td> </tr></tbody></table> </div> </div> <div data-tab="Java SDK" data-lang="java" id="tab-c178773f-c876-4dd2-b50c-2c4d7f06f7a9"> <div class="highlight java"> <table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" style="text-align: right"><pre class="lineno">1 +</pre></td> </tr></tbody></table> </div> </div> <div data-tab="Java SDK" data-lang="java" id="tab-840b9dc0-66c3-42cd-9a95-8272488e75a6"> <div class="highlight java"> <table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" style="text-align: right"><pre class="lineno">1 2 3 4 @@ -161,7 +161,7 @@ Your system is all ready to go. <span class="o">.</span><span class="na">entityType</span><span class="o">(</span><span class="s">"user"</span><span class="o">)</span> <span class="o">.</span><span class="na">entityId</span><span class="o">(<</span><span class="n">USER_ID</span><span class="o">>);</span> <span class="n">client</span><span class="o">.</span><span class="na">createEvent</span><span class="o">(</span><span class="n">userEvent</span><span class="o">);</span> -</pre></td> </tr></tbody></table> </div> </div> </div> <p>When a new item "i0" is created in your app on time <code>2014-11-02T09:39:45.618-08:00</code> (current time will be used if eventTime is not specified), you can send a <code>$set</code> event for the item. Note that the item is set with categories properties: <code>"c1"</code> and <code>"c2"</code>. Run the following <code>curl</code> command:</p><div class="tabs"> <ul class="control"> <li data-lang="json"><a href="#tab-d797148c-66f6-4c1c-9fbf-ae81455eb452">REST API</a></li> <li data-lang="python"><a href="#tab-96ec9ed3-a6de-4a32-8ebe-8411fdfdbec7">Python SDK</a></li> <li data-lang="php"><a href="#tab-3b5d644c-0452-4147-96a5-e80fc9baed61">PHP SDK</a></li> <li data-lang="ruby"><a href="#tab-a6f472b4-4545-45ca-9c17-3c9ef9e677e5">Ruby SDK</a></li> <li data-lang="java"><a href="#tab-d7f92076-6d48-4c47-bf28-b1aa2520fbc0">Java SDK</a></li> </ul> <div data-tab="REST API" data-lang="json" id="tab-d79714 8c-66f6-4c1c-9fbf-ae81455eb452"> <div class="highlight shell"> <table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" style="text-align: right"><pre class="lineno">1 +</pre></td> </tr></tbody></table> </div> </div> </div> <p>When a new item "i0" is created in your app on time <code>2014-11-02T09:39:45.618-08:00</code> (current time will be used if eventTime is not specified), you can send a <code>$set</code> event for the item. Note that the item is set with categories properties: <code>"c1"</code> and <code>"c2"</code>. Run the following <code>curl</code> command:</p><div class="tabs"> <ul class="control"> <li data-lang="json"><a href="#tab-0d731b65-97ff-49ab-89fe-fb2bf713b4c3">REST API</a></li> <li data-lang="python"><a href="#tab-9028fe19-155c-46d6-8762-d128230f7200">Python SDK</a></li> <li data-lang="php"><a href="#tab-6241c2bc-a8d2-4070-8a39-98588f5508ad">PHP SDK</a></li> <li data-lang="ruby"><a href="#tab-0e61eea1-d819-410b-8a22-8e339ebeed89">Ruby SDK</a></li> <li data-lang="java"><a href="#tab-2c7066ae-7580-42a1-b7b9-f02e592903f3">Java SDK</a></li> </ul> <div data-tab="REST API" data-lang="json" id="tab-0d731b 65-97ff-49ab-89fe-fb2bf713b4c3"> <div class="highlight shell"> <table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" style="text-align: right"><pre class="lineno">1 2 3 4 @@ -182,7 +182,7 @@ Your system is all ready to go. } "eventTime" : "2014-11-02T09:39:45.618-08:00" }'</span> -</pre></td> </tr></tbody></table> </div> </div> <div data-tab="Python SDK" data-lang="python" id="tab-96ec9ed3-a6de-4a32-8ebe-8411fdfdbec7"> <div class="highlight python"> <table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" style="text-align: right"><pre class="lineno">1 +</pre></td> </tr></tbody></table> </div> </div> <div data-tab="Python SDK" data-lang="python" id="tab-9028fe19-155c-46d6-8762-d128230f7200"> <div class="highlight python"> <table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" style="text-align: right"><pre class="lineno">1 2 3 4 @@ -201,7 +201,7 @@ Your system is all ready to go. <span class="s">"categories"</span> <span class="p">:</span> <span class="p">[</span><span class="s">"<CATEGORY_1>"</span><span class="p">,</span> <span class="s">"<CATEGORY_2>"</span><span class="p">]</span> <span class="p">}</span> <span class="p">)</span> -</pre></td> </tr></tbody></table> </div> </div> <div data-tab="PHP SDK" data-lang="php" id="tab-3b5d644c-0452-4147-96a5-e80fc9baed61"> <div class="highlight php"> <table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" style="text-align: right"><pre class="lineno">1 +</pre></td> </tr></tbody></table> </div> </div> <div data-tab="PHP SDK" data-lang="php" id="tab-6241c2bc-a8d2-4070-8a39-98588f5508ad"> <div class="highlight php"> <table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" style="text-align: right"><pre class="lineno">1 2 3 4 @@ -218,7 +218,7 @@ Your system is all ready to go. <span class="s1">'properties'</span> <span class="o">=></span> <span class="k">array</span><span class="p">(</span><span class="s1">'categories'</span> <span class="o">=></span> <span class="k">array</span><span class="p">(</span><span class="s1">'<CATEGORY_1>'</span><span class="p">,</span> <span class="s1">'<CATEGORY_2>'</span><span class="p">))</span> <span class="p">));</span> <span class="cp">?></span> -</pre></td> </tr></tbody></table> </div> </div> <div data-tab="Ruby SDK" data-lang="ruby" id="tab-a6f472b4-4545-45ca-9c17-3c9ef9e677e5"> <div class="highlight ruby"> <table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" style="text-align: right"><pre class="lineno">1 +</pre></td> </tr></tbody></table> </div> </div> <div data-tab="Ruby SDK" data-lang="ruby" id="tab-0e61eea1-d819-410b-8a22-8e339ebeed89"> <div class="highlight ruby"> <table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" style="text-align: right"><pre class="lineno">1 2 3 4 @@ -235,7 +235,7 @@ Your system is all ready to go. <span class="p">}</span> <span class="p">)</span> -</pre></td> </tr></tbody></table> </div> </div> <div data-tab="Java SDK" data-lang="java" id="tab-d7f92076-6d48-4c47-bf28-b1aa2520fbc0"> <div class="highlight java"> <table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" style="text-align: right"><pre class="lineno">1 +</pre></td> </tr></tbody></table> </div> </div> <div data-tab="Java SDK" data-lang="java" id="tab-2c7066ae-7580-42a1-b7b9-f02e592903f3"> <div class="highlight java"> <table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" style="text-align: right"><pre class="lineno">1 2 3 4 @@ -248,7 +248,7 @@ Your system is all ready to go. <span class="o">.</span><span class="na">entityId</span><span class="o">(<</span><span class="n">ITEM_ID</span><span class="o">>)</span> <span class="o">.</span><span class="na">property</span><span class="o">(</span><span class="s">"categories"</span><span class="o">,</span> <span class="n">ImmutableList</span><span class="o">.</span><span class="na">of</span><span class="o">(</span><span class="s">"<CATEGORY_1>"</span><span class="o">,</span> <span class="s">"<CATEGORY_2>"</span><span class="o">));</span> <span class="n">client</span><span class="o">.</span><span class="na">createEvent</span><span class="o">(</span><span class="n">itemEvent</span><span class="o">)</span> -</pre></td> </tr></tbody></table> </div> </div> </div> <p>The properties of the <code>user</code> and <code>item</code> can be set, unset, or delete by special events <strong>$set</strong>, <strong>$unset</strong> and <strong>$delete</strong>. Please refer to <a href="/datacollection/eventapi/#note-about-properties">Event API</a> for more details of using these events.</p><p>When the user "u0" view item "i0" on time <code>2014-11-10T12:34:56.123-08:00</code> (current time will be used if eventTime is not specified), you can send a view event. Run the following <code>curl</code> command:</p><div class="tabs"> <ul class="control"> <li data-lang="json"><a href="#tab-7fe0db51-ab6a-4619-972c-518953370035">REST API</a></li> <li data-lang="python"><a href="#tab-6eec9a05-7b0b-40cb-b655-83178ed42cf9">Python SDK</a></li> <li data-lang="php"><a href="#tab-b38124f3-b67b-4df8-969d-decbc7b26837">PHP SDK</a></li> <li data-lang="ruby"><a href="#tab-3d133087-c60e-4fd6-975a-93e3de baa9ea">Ruby SDK</a></li> <li data-lang="java"><a href="#tab-29ffa79e-0154-45be-9289-d098bbf94fec">Java SDK</a></li> </ul> <div data-tab="REST API" data-lang="json" id="tab-7fe0db51-ab6a-4619-972c-518953370035"> <div class="highlight shell"> <table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" style="text-align: right"><pre class="lineno">1 +</pre></td> </tr></tbody></table> </div> </div> </div> <p>The properties of the <code>user</code> and <code>item</code> can be set, unset, or delete by special events <strong>$set</strong>, <strong>$unset</strong> and <strong>$delete</strong>. Please refer to <a href="/datacollection/eventapi/#note-about-properties">Event API</a> for more details of using these events.</p><p>When the user "u0" view item "i0" on time <code>2014-11-10T12:34:56.123-08:00</code> (current time will be used if eventTime is not specified), you can send a view event. Run the following <code>curl</code> command:</p><div class="tabs"> <ul class="control"> <li data-lang="json"><a href="#tab-e4fdbe8b-2d44-4bb7-b17c-8dfd451cbbd6">REST API</a></li> <li data-lang="python"><a href="#tab-39dbed81-4eed-4e72-a44a-2fa129623024">Python SDK</a></li> <li data-lang="php"><a href="#tab-f716bffc-90be-46b1-8b2b-6f10b612f759">PHP SDK</a></li> <li data-lang="ruby"><a href="#tab-ea6800b5-778d-4cc8-bf90-bcc3cc 65a0cd">Ruby SDK</a></li> <li data-lang="java"><a href="#tab-7d2b3d47-fab8-42ee-96a5-e8afb08189af">Java SDK</a></li> </ul> <div data-tab="REST API" data-lang="json" id="tab-e4fdbe8b-2d44-4bb7-b17c-8dfd451cbbd6"> <div class="highlight shell"> <table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" style="text-align: right"><pre class="lineno">1 2 3 4 @@ -267,7 +267,7 @@ Your system is all ready to go. "targetEntityId" : "i0", "eventTime" : "2014-11-10T12:34:56.123-08:00" }'</span> -</pre></td> </tr></tbody></table> </div> </div> <div data-tab="Python SDK" data-lang="python" id="tab-6eec9a05-7b0b-40cb-b655-83178ed42cf9"> <div class="highlight python"> <table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" style="text-align: right"><pre class="lineno">1 +</pre></td> </tr></tbody></table> </div> </div> <div data-tab="Python SDK" data-lang="python" id="tab-39dbed81-4eed-4e72-a44a-2fa129623024"> <div class="highlight python"> <table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" style="text-align: right"><pre class="lineno">1 2 3 4 @@ -284,7 +284,7 @@ Your system is all ready to go. <span class="n">target_entity_type</span><span class="o">=</span><span class="s">"item"</span><span class="p">,</span> <span class="n">target_entity_id</span><span class="o">=<</span><span class="n">ITEM</span> <span class="n">ID</span><span class="o">></span> <span class="p">)</span> -</pre></td> </tr></tbody></table> </div> </div> <div data-tab="PHP SDK" data-lang="php" id="tab-b38124f3-b67b-4df8-969d-decbc7b26837"> <div class="highlight php"> <table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" style="text-align: right"><pre class="lineno">1 +</pre></td> </tr></tbody></table> </div> </div> <div data-tab="PHP SDK" data-lang="php" id="tab-f716bffc-90be-46b1-8b2b-6f10b612f759"> <div class="highlight php"> <table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" style="text-align: right"><pre class="lineno">1 2 3 4 @@ -303,7 +303,7 @@ Your system is all ready to go. <span class="s1">'targetEntityId'</span> <span class="o">=></span> <span class="o"><</span><span class="nx">ITEM</span> <span class="nx">ID</span><span class="o">></span> <span class="p">));</span> <span class="cp">?></span> -</pre></td> </tr></tbody></table> </div> </div> <div data-tab="Ruby SDK" data-lang="ruby" id="tab-3d133087-c60e-4fd6-975a-93e3debaa9ea"> <div class="highlight ruby"> <table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" style="text-align: right"><pre class="lineno">1 +</pre></td> </tr></tbody></table> </div> </div> <div data-tab="Ruby SDK" data-lang="ruby" id="tab-ea6800b5-778d-4cc8-bf90-bcc3cc65a0cd"> <div class="highlight ruby"> <table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" style="text-align: right"><pre class="lineno">1 2 3 4 @@ -322,7 +322,7 @@ Your system is all ready to go. <span class="p">}</span> <span class="p">)</span> -</pre></td> </tr></tbody></table> </div> </div> <div data-tab="Java SDK" data-lang="java" id="tab-29ffa79e-0154-45be-9289-d098bbf94fec"> <div class="highlight java"> <table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" style="text-align: right"><pre class="lineno">1 +</pre></td> </tr></tbody></table> </div> </div> <div data-tab="Java SDK" data-lang="java" id="tab-7d2b3d47-fab8-42ee-96a5-e8afb08189af"> <div class="highlight java"> <table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" style="text-align: right"><pre class="lineno">1 2 3 4 @@ -337,7 +337,7 @@ Your system is all ready to go. <span class="o">.</span><span class="na">targetEntityType</span><span class="o">(</span><span class="s">"item"</span><span class="o">)</span> <span class="o">.</span><span class="na">targetEntityId</span><span class="o">(<</span><span class="n">ITEM_ID</span><span class="o">>);</span> <span class="n">client</span><span class="o">.</span><span class="na">createEvent</span><span class="o">(</span><span class="n">viewEvent</span><span class="o">);</span> -</pre></td> </tr></tbody></table> </div> </div> </div> <p>When the user "u0" buy item "i0" on time <code>2014-11-10T13:00:00.123-08:00</code> (current time will be used if eventTime is not specified), you can send a view event. Run the following <code>curl</code> command:</p><div class="tabs"> <ul class="control"> <li data-lang="json"><a href="#tab-3fdf4096-a36e-42f6-84c0-234e45b916f9">REST API</a></li> <li data-lang="python"><a href="#tab-f24aab35-3b91-4c3c-82a7-66070a1538fe">Python SDK</a></li> <li data-lang="php"><a href="#tab-103a8031-cf42-4c81-9f09-7211993d65ab">PHP SDK</a></li> <li data-lang="ruby"><a href="#tab-cc70547e-a201-48ef-a7ba-3297c90a6e8a">Ruby SDK</a></li> <li data-lang="java"><a href="#tab-808e8e2f-9c7b-4ccc-957e-83e40e53400f">Java SDK</a></li> </ul> <div data-tab="REST API" data-lang="json" id="tab-3fdf4096-a36e-42f6-84c0-234e45b916f9"> <div class="highlight shell"> <table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" style="text- align: right"><pre class="lineno">1 +</pre></td> </tr></tbody></table> </div> </div> </div> <p>When the user "u0" buy item "i0" on time <code>2014-11-10T13:00:00.123-08:00</code> (current time will be used if eventTime is not specified), you can send a view event. Run the following <code>curl</code> command:</p><div class="tabs"> <ul class="control"> <li data-lang="json"><a href="#tab-d15db918-1dd0-4599-9869-35320d245649">REST API</a></li> <li data-lang="python"><a href="#tab-16b6f1de-ae7e-4de0-9e8b-e1edce88d6c0">Python SDK</a></li> <li data-lang="php"><a href="#tab-f00d115d-59df-4d10-ad6b-86596e309d80">PHP SDK</a></li> <li data-lang="ruby"><a href="#tab-8104a9b0-2f50-47c5-84d2-a0177548d1ba">Ruby SDK</a></li> <li data-lang="java"><a href="#tab-44f25b86-41d4-49ec-acf1-4e22f8706106">Java SDK</a></li> </ul> <div data-tab="REST API" data-lang="json" id="tab-d15db918-1dd0-4599-9869-35320d245649"> <div class="highlight shell"> <table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" style="text- align: right"><pre class="lineno">1 2 3 4 @@ -356,7 +356,7 @@ Your system is all ready to go. "targetEntityId" : "i0", "eventTime" : "2014-11-10T13:00:00.123-08:00" }'</span> -</pre></td> </tr></tbody></table> </div> </div> <div data-tab="Python SDK" data-lang="python" id="tab-f24aab35-3b91-4c3c-82a7-66070a1538fe"> <div class="highlight python"> <table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" style="text-align: right"><pre class="lineno">1 +</pre></td> </tr></tbody></table> </div> </div> <div data-tab="Python SDK" data-lang="python" id="tab-16b6f1de-ae7e-4de0-9e8b-e1edce88d6c0"> <div class="highlight python"> <table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" style="text-align: right"><pre class="lineno">1 2 3 4 @@ -373,7 +373,7 @@ Your system is all ready to go. <span class="n">target_entity_type</span><span class="o">=</span><span class="s">"item"</span><span class="p">,</span> <span class="n">target_entity_id</span><span class="o">=<</span><span class="n">ITEM</span> <span class="n">ID</span><span class="o">></span> <span class="p">)</span> -</pre></td> </tr></tbody></table> </div> </div> <div data-tab="PHP SDK" data-lang="php" id="tab-103a8031-cf42-4c81-9f09-7211993d65ab"> <div class="highlight php"> <table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" style="text-align: right"><pre class="lineno">1 +</pre></td> </tr></tbody></table> </div> </div> <div data-tab="PHP SDK" data-lang="php" id="tab-f00d115d-59df-4d10-ad6b-86596e309d80"> <div class="highlight php"> <table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" style="text-align: right"><pre class="lineno">1 2 3 4 @@ -392,7 +392,7 @@ Your system is all ready to go. <span class="s1">'targetEntityId'</span> <span class="o">=></span> <span class="o"><</span><span class="nx">ITEM</span> <span class="nx">ID</span><span class="o">></span> <span class="p">));</span> <span class="cp">?></span> -</pre></td> </tr></tbody></table> </div> </div> <div data-tab="Ruby SDK" data-lang="ruby" id="tab-cc70547e-a201-48ef-a7ba-3297c90a6e8a"> <div class="highlight ruby"> <table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" style="text-align: right"><pre class="lineno">1 +</pre></td> </tr></tbody></table> </div> </div> <div data-tab="Ruby SDK" data-lang="ruby" id="tab-8104a9b0-2f50-47c5-84d2-a0177548d1ba"> <div class="highlight ruby"> <table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" style="text-align: right"><pre class="lineno">1 2 3 4 @@ -409,7 +409,7 @@ Your system is all ready to go. <span class="s1">'targetEntityId'</span> <span class="o">=></span> <span class="o"><</span><span class="no">ITEM</span> <span class="no">ID</span><span class="o">></span> <span class="p">}</span> <span class="p">)</span> -</pre></td> </tr></tbody></table> </div> </div> <div data-tab="Java SDK" data-lang="java" id="tab-808e8e2f-9c7b-4ccc-957e-83e40e53400f"> <div class="highlight java"> <table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" style="text-align: right"><pre class="lineno">1 +</pre></td> </tr></tbody></table> </div> </div> <div data-tab="Java SDK" data-lang="java" id="tab-44f25b86-41d4-49ec-acf1-4e22f8706106"> <div class="highlight java"> <table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" style="text-align: right"><pre class="lineno">1 2 3 4 @@ -490,19 +490,19 @@ User u10 buys item i40 </pre></td></tr></tbody></table> </div> <p>When the engine is deployed successfully and running, you should see a console message similar to the following:</p><div class="highlight shell"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1 2</pre></td><td class="code"><pre><span class="o">[</span>INFO] <span class="o">[</span>HttpListener] Bound to /0.0.0.0:8000 <span class="o">[</span>INFO] <span class="o">[</span>MasterActor] Bind successful. Ready to serve. -</pre></td></tr></tbody></table> </div> <p>Do not kill the deployed engine process.</p><p>By default, the deployed engine binds to <a href="http://localhost:8000"><a href="http://localhost:8000">http://localhost:8000</a></a>. You can visit that page in your web browser to check its status.</p><p><img alt="Engine Status" src="/images/engine-server-3246414b.png"/></p></p><h2 id='6.-use-the-engine' class='header-anchors'>6. Use the Engine</h2><p>Now, You can retrieve predicted results. To recommend 4 items to user ID "u1". You send this JSON <code>{ "userEntityId": "u1", "number": 4 }</code> to the deployed engine and it will return a JSON of the recommended items. Simply send a query by making a HTTP request or through the <code>EngineClient</code> of an SDK.</p><p>With the deployed engine running, open another terminal and run the following <code>curl</code> command or use SDK to send the query:</p><div class="tabs"> <ul class="control"> <li da ta-lang="json"><a href="#tab-8b4197b7-d4e1-42f7-84a8-0915be5f1d95">REST API</a></li> <li data-lang="python"><a href="#tab-01f45411-e577-4680-a8e5-726b7b66965f">Python SDK</a></li> <li data-lang="php"><a href="#tab-339a066e-15f3-44ad-8280-956b8209dd6b">PHP SDK</a></li> <li data-lang="ruby"><a href="#tab-f7ffcf2b-9e92-47b4-b01f-cfea846eb9c8">Ruby SDK</a></li> <li data-lang="java"><a href="#tab-55b3056f-01d5-4560-8a7c-5ff1785409d4">Java SDK</a></li> </ul> <div data-tab="REST API" data-lang="json" id="tab-8b4197b7-d4e1-42f7-84a8-0915be5f1d95"> <div class="highlight shell"> <table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" style="text-align: right"><pre class="lineno">1 +</pre></td></tr></tbody></table> </div> <p>Do not kill the deployed engine process.</p><p>By default, the deployed engine binds to <a href="http://localhost:8000"><a href="http://localhost:8000">http://localhost:8000</a></a>. You can visit that page in your web browser to check its status.</p><p><img alt="Engine Status" src="/images/engine-server-3246414b.png"/></p></p><h2 id='6.-use-the-engine' class='header-anchors'>6. Use the Engine</h2><p>Now, You can retrieve predicted results. To recommend 4 items to user ID "u1". You send this JSON <code>{ "userEntityId": "u1", "number": 4 }</code> to the deployed engine and it will return a JSON of the recommended items. Simply send a query by making a HTTP request or through the <code>EngineClient</code> of an SDK.</p><p>With the deployed engine running, open another terminal and run the following <code>curl</code> command or use SDK to send the query:</p><div class="tabs"> <ul class="control"> <li da ta-lang="json"><a href="#tab-9e818bb4-7562-49ce-a77c-d9358ac252a5">REST API</a></li> <li data-lang="python"><a href="#tab-715b27f0-c2bb-4f00-8b9e-43b0a438b01f">Python SDK</a></li> <li data-lang="php"><a href="#tab-71bb9cfc-aa54-4470-a601-ef7acad325ac">PHP SDK</a></li> <li data-lang="ruby"><a href="#tab-d6baff4f-10a5-46ea-9f46-c5ff73ed14b4">Ruby SDK</a></li> <li data-lang="java"><a href="#tab-b3b734cd-4c17-489c-aa50-8678a54d5180">Java SDK</a></li> </ul> <div data-tab="REST API" data-lang="json" id="tab-9e818bb4-7562-49ce-a77c-d9358ac252a5"> <div class="highlight shell"> <table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" style="text-align: right"><pre class="lineno">1 2 3 4</pre></td> <td class="code"><pre><span class="gp">$ </span>curl -H <span class="s2">"Content-Type: application/json"</span> <span class="se">\</span> -d <span class="s1">'{ "userEntityId": "u1", "number": 4 }'</span> <span class="se">\</span> http://localhost:8000/queries.json -</pre></td> </tr></tbody></table> </div> </div> <div data-tab="Python SDK" data-lang="python" id="tab-01f45411-e577-4680-a8e5-726b7b66965f"> <div class="highlight python"> <table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" style="text-align: right"><pre class="lineno">1 +</pre></td> </tr></tbody></table> </div> </div> <div data-tab="Python SDK" data-lang="python" id="tab-715b27f0-c2bb-4f00-8b9e-43b0a438b01f"> <div class="highlight python"> <table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" style="text-align: right"><pre class="lineno">1 2 3</pre></td> <td class="code"><pre><span class="kn">import</span> <span class="nn">predictionio</span> <span class="n">engine_client</span> <span class="o">=</span> <span class="n">predictionio</span><span class="o">.</span><span class="n">EngineClient</span><span class="p">(</span><span class="n">url</span><span class="o">=</span><span class="s">"http://localhost:8000"</span><span class="p">)</span> <span class="k">print</span> <span class="n">engine_client</span><span class="o">.</span><span class="n">send_query</span><span class="p">({</span><span class="s">"userEntityId"</span><span class="p">:</span> <span class="s">"u1"</span><span class="p">,</span> <span class="s">"number"</span><span class="p">:</span> <span class="mi">4</span><span class="p">})</span> -</pre></td> </tr></tbody></table> </div> </div> <div data-tab="PHP SDK" data-lang="php" id="tab-339a066e-15f3-44ad-8280-956b8209dd6b"> <div class="highlight php"> <table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" style="text-align: right"><pre class="lineno">1 +</pre></td> </tr></tbody></table> </div> </div> <div data-tab="PHP SDK" data-lang="php" id="tab-71bb9cfc-aa54-4470-a601-ef7acad325ac"> <div class="highlight php"> <table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" style="text-align: right"><pre class="lineno">1 2 3 4 @@ -521,7 +521,7 @@ http://localhost:8000/queries.json <span class="nb">print_r</span><span class="p">(</span><span class="nv">$response</span><span class="p">);</span> <span class="cp">?></span> -</pre></td> </tr></tbody></table> </div> </div> <div data-tab="Ruby SDK" data-lang="ruby" id="tab-f7ffcf2b-9e92-47b4-b01f-cfea846eb9c8"> <div class="highlight ruby"> <table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" style="text-align: right"><pre class="lineno">1 +</pre></td> </tr></tbody></table> </div> </div> <div data-tab="Ruby SDK" data-lang="ruby" id="tab-d6baff4f-10a5-46ea-9f46-c5ff73ed14b4"> <div class="highlight ruby"> <table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" style="text-align: right"><pre class="lineno">1 2 3 4 @@ -534,7 +534,7 @@ http://localhost:8000/queries.json <span class="n">response</span> <span class="o">=</span> <span class="n">client</span><span class="p">.</span><span class="nf">send_query</span><span class="p">(</span><span class="s1">'userEntityId'</span> <span class="o">=></span> <span class="s1">'i1'</span><span class="p">,</span> <span class="s1">'number'</span> <span class="o">=></span> <span class="mi">4</span><span class="p">)</span> <span class="nb">puts</span> <span class="n">response</span> -</pre></td> </tr></tbody></table> </div> </div> <div data-tab="Java SDK" data-lang="java" id="tab-55b3056f-01d5-4560-8a7c-5ff1785409d4"> <div class="highlight java"> <table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" style="text-align: right"><pre class="lineno">1 +</pre></td> </tr></tbody></table> </div> </div> <div data-tab="Java SDK" data-lang="java" id="tab-b3b734cd-4c17-489c-aa50-8678a54d5180"> <div class="highlight java"> <table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" style="text-align: right"><pre class="lineno">1 2 3 4 @@ -578,7 +578,7 @@ http://localhost:8000/queries.json <span class="o">{</span><span class="s2">"itemEntityId"</span>:<span class="s2">"i3"</span>,<span class="s2">"score"</span>:0.003007015026561692<span class="o">}</span> <span class="o">]</span> <span class="o">}</span> -</pre></td></tr></tbody></table> </div> <p><em>MyECommerceRecommendation</em> is now running.</p> <div class="alert-message info"><p>To update the model periodically with new data, simply set up a cron job to call <code>pio train</code> and <code>pio deploy</code>. The engine will continue to serve prediction results during the re-train process. After the training is completed, <code>pio deploy</code> will automatically shutdown the existing engine server and bring up a new process on the same port.</p></div><div class="alert-message info"><p><strong>Note that if you import a <em>large</em> data set</strong> and the training seems to be taking forever or getting stuck, it's likely that there is not enough executor memory. It's recommended to setup a Spark standalone cluster, you'll need to specify more driver and executor memory when training with a large data set. Please see <a href="/resources/faq/#engine-training">FAQ here</a> for instructions.</p></div> <h2 id='setti ng-constraint-"unavailableitems"' class='header-anchors'>Setting constraint "unavailableItems"</h2><p>Now let's send an item constraint "unavailableItems" (replace accessKey with your Access Key):</p><div class="alert-message note"><p>You can also use SDK to send this event as described in the SDK sample above.</p></div><div class="tabs"> <ul class="control"> <li data-lang="json"><a href="#tab-c670b315-751b-4453-adf3-e515d3e9d625">REST API</a></li> <li data-lang="python"><a href="#tab-a27bd1c7-d526-4398-8c12-3fbb8b92faff">Python SDK</a></li> <li data-lang="php"><a href="#tab-42b5bb4d-0cac-4f9f-b60d-860fb1b4c273">PHP SDK</a></li> <li data-lang="ruby"><a href="#tab-23cd4ec2-c08c-4421-b5b1-94d4e1e6ad35">Ruby SDK</a></li> <li data-lang="java"><a href="#tab-5d020d20-4209-4357-a8fa-b99b08df14b2">Java SDK</a></li> </ul> <div data-tab="REST API" data-lang="json" id="tab-c670b315-751b-4453-adf3-e515d3e9d625"> <div class="highlight shell"> <table style="borde r-spacing: 0"><tbody><tr> <td class="gutter gl" style="text-align: right"><pre class="lineno">1 +</pre></td></tr></tbody></table> </div> <p><em>MyECommerceRecommendation</em> is now running.</p> <div class="alert-message info"><p>To update the model periodically with new data, simply set up a cron job to call <code>pio train</code> and <code>pio deploy</code>. The engine will continue to serve prediction results during the re-train process. After the training is completed, <code>pio deploy</code> will automatically shutdown the existing engine server and bring up a new process on the same port.</p></div><div class="alert-message info"><p><strong>Note that if you import a <em>large</em> data set</strong> and the training seems to be taking forever or getting stuck, it's likely that there is not enough executor memory. It's recommended to setup a Spark standalone cluster, you'll need to specify more driver and executor memory when training with a large data set. Please see <a href="/resources/faq/#engine-training">FAQ here</a> for instructions.</p></div> <h2 id='setti ng-constraint-"unavailableitems"' class='header-anchors'>Setting constraint "unavailableItems"</h2><p>Now let's send an item constraint "unavailableItems" (replace accessKey with your Access Key):</p><div class="alert-message note"><p>You can also use SDK to send this event as described in the SDK sample above.</p></div><div class="tabs"> <ul class="control"> <li data-lang="json"><a href="#tab-9331e33f-25f6-432e-b321-876b34c162a8">REST API</a></li> <li data-lang="python"><a href="#tab-ba5b6357-8ddb-427e-8373-d6432098cb79">Python SDK</a></li> <li data-lang="php"><a href="#tab-815da9cc-8dd8-4e76-8853-c3d6b1afc068">PHP SDK</a></li> <li data-lang="ruby"><a href="#tab-cb06429b-7d48-4e93-b12d-09f5f48ba269">Ruby SDK</a></li> <li data-lang="java"><a href="#tab-a556ff25-caa1-4a42-a3f6-859a8e5cde24">Java SDK</a></li> </ul> <div data-tab="REST API" data-lang="json" id="tab-9331e33f-25f6-432e-b321-876b34c162a8"> <div class="highlight shell"> <table style="borde r-spacing: 0"><tbody><tr> <td class="gutter gl" style="text-align: right"><pre class="lineno">1 2 3 4 @@ -599,7 +599,7 @@ http://localhost:8000/queries.json } "eventTime" : "2015-02-17T02:11:21.934Z" }'</span> -</pre></td> </tr></tbody></table> </div> </div> <div data-tab="Python SDK" data-lang="python" id="tab-a27bd1c7-d526-4398-8c12-3fbb8b92faff"> <div class="highlight python"> <table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" style="text-align: right"><pre class="lineno">1 +</pre></td> </tr></tbody></table> </div> </div> <div data-tab="Python SDK" data-lang="python" id="tab-ba5b6357-8ddb-427e-8373-d6432098cb79"> <div class="highlight python"> <table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" style="text-align: right"><pre class="lineno">1 2 3 4 @@ -618,7 +618,7 @@ http://localhost:8000/queries.json <span class="s">"items"</span> <span class="p">:</span> <span class="p">[</span><span class="s">"<ITEM ID1>"</span><span class="p">,</span> <span class="s">"<ITEM ID2>"</span><span class="p">]</span> <span class="p">}</span> <span class="p">)</span> -</pre></td> </tr></tbody></table> </div> </div> <div data-tab="PHP SDK" data-lang="php" id="tab-42b5bb4d-0cac-4f9f-b60d-860fb1b4c273"> <div class="highlight php"> <table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" style="text-align: right"><pre class="lineno">1 +</pre></td> </tr></tbody></table> </div> </div> <div data-tab="PHP SDK" data-lang="php" id="tab-815da9cc-8dd8-4e76-8853-c3d6b1afc068"> <div class="highlight php"> <table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" style="text-align: right"><pre class="lineno">1 2 3 4 @@ -635,7 +635,7 @@ http://localhost:8000/queries.json <span class="s1">'properties'</span> <span class="o">=></span> <span class="k">array</span><span class="p">(</span><span class="s1">'items'</span> <span class="o">=></span> <span class="k">array</span><span class="p">(</span><span class="s1">'<ITEM ID1>'</span><span class="p">,</span> <span class="s1">'<ITEM ID2>'</span><span class="p">))</span> <span class="p">));</span> <span class="cp">?></span> -</pre></td> </tr></tbody></table> </div> </div> <div data-tab="Ruby SDK" data-lang="ruby" id="tab-23cd4ec2-c08c-4421-b5b1-94d4e1e6ad35"> <div class="highlight ruby"> <table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" style="text-align: right"><pre class="lineno">1 +</pre></td> </tr></tbody></table> </div> </div> <div data-tab="Ruby SDK" data-lang="ruby" id="tab-cb06429b-7d48-4e93-b12d-09f5f48ba269"> <div class="highlight ruby"> <table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" style="text-align: right"><pre class="lineno">1 2 3 4 @@ -650,7 +650,7 @@ http://localhost:8000/queries.json <span class="s1">'properties'</span> <span class="o">=></span> <span class="p">{</span> <span class="s1">'items'</span> <span class="o">=></span> <span class="p">[</span><span class="s1">'<ITEM ID1>'</span><span class="p">,</span> <span class="s1">'<ITEM ID2>'</span><span class="p">]</span> <span class="p">}</span> <span class="p">}</span> <span class="p">)</span> -</pre></td> </tr></tbody></table> </div> </div> <div data-tab="Java SDK" data-lang="java" id="tab-5d020d20-4209-4357-a8fa-b99b08df14b2"> <div class="highlight java"> <table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" style="text-align: right"><pre class="lineno">1 +</pre></td> </tr></tbody></table> </div> </div> <div data-tab="Java SDK" data-lang="java" id="tab-a556ff25-caa1-4a42-a3f6-859a8e5cde24"> <div class="highlight java"> <table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" style="text-align: right"><pre class="lineno">1 2 3 4
http://git-wip-us.apache.org/repos/asf/predictionio-site/blob/a8216bed/templates/leadscoring/quickstart/index.html ---------------------------------------------------------------------- diff --git a/templates/leadscoring/quickstart/index.html b/templates/leadscoring/quickstart/index.html index cfd78fb..447ec70 100644 --- a/templates/leadscoring/quickstart/index.html +++ b/templates/leadscoring/quickstart/index.html @@ -32,7 +32,7 @@ Your system is all ready to go. <span class="o">[</span>INFO] <span class="o">[</span>App<span class="nv">$]</span> MyApp1 | 1 | 3mZWDzci2D5YsqAnqNnXH9SB6Rg3dsTBs8iHkK6X2i54IQsIZI1eEeQQyMfs7b3F | <span class="o">(</span>all<span class="o">)</span> <span class="o">[</span>INFO] <span class="o">[</span>App<span class="nv">$]</span> MyApp2 | 2 | io5lz6Eg4m3Xe4JZTBFE13GMAf1dhFl6ZteuJfrO84XpdOz9wRCrDU44EUaYuXq5 | <span class="o">(</span>all<span class="o">)</span> <span class="o">[</span>INFO] <span class="o">[</span>App<span class="nv">$]</span> Finished listing 2 app<span class="o">(</span>s<span class="o">)</span>. -</pre></td></tr></tbody></table> </div> <p><a href="#"></a></p> <h2 id='4.-collecting-data' class='header-anchors'>4. Collecting Data</h2><p>Next, let's collect training data for this Engine. By default, Lead Scoring Engine Template supports the following entities: <strong>user</strong>, <strong>page</strong>, and <strong>item</strong>. An user views a page, and buys an item.</p><p>Note that a "sessionId" property is required to indicate these events happen in the same session. In the first visit of a user, you should specify the optional "referrral ID" and "browser" information. These are used to determine where the user comes from and the browser information.</p><p>In summary, this template requires user-view-page event and user-buy-item events with the session ID, referrer ID and browser properties.</p> <p>You can send these events to PredictionIO Event Server in real-time easily by making a HTTP request or through the provided SDK. Please see <a href="/appintegration/">App Integration Overview</a> for more details how to integrate your app with SDK.</p><p>Let's try sending events to EventServer with the following <code>curl</code> commands (The corresponding SDK code is showed in other tabs).</p><p>Replace <code><ACCCESS_KEY></code> by the Access Key generated in above steps. Note that <code>localhost:7070</code> is the default URL of the Event Server.</p><p>For convenience, set your access key to the shell variable, run:</p><p><code>$ ACCESS_KEY=<ACCESS_KEY></code></p> <p><a href="#"></a></p> <p>For example, when an user with ID u0 views a URL page "example.com/page0" on time <code>2014-11-02T09:39:45.618-08:00</code>, with session ID "akdj230fj8ass" (current time will be used if eventTime is not specified) you can send the event to Event Server. Run the following <code>curl</code> command:</p><div class="tabs"> <ul class="control"> <li data-lang="json"><a href="#tab-a8de3ec3-4854-4c59- aa3a-4db76764cace">REST API</a></li> <li data-lang="python"><a href="#tab-6cbf9eca-a038-474b-9816-3b19453e6582">Python SDK</a></li> <li data-lang="php"><a href="#tab-f329c062-f105-453b-822f-e69f1e873b5e">PHP SDK</a></li> <li data-lang="ruby"><a href="#tab-907789b4-5b2a-49b0-8696-f96fb796b50b">Ruby SDK</a></li> <li data-lang="java"><a href="#tab-84ab8ae6-6dc0-4227-951a-a31fcbc1d969">Java SDK</a></li> </ul> <div data-tab="REST API" data-lang="json" id="tab-a8de3ec3-4854-4c59-aa3a-4db76764cace"> <div class="highlight shell"> <table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" style="text-align: right"><pre class="lineno">1 +</pre></td></tr></tbody></table> </div> <p><a href="#"></a></p> <h2 id='4.-collecting-data' class='header-anchors'>4. Collecting Data</h2><p>Next, let's collect training data for this Engine. By default, Lead Scoring Engine Template supports the following entities: <strong>user</strong>, <strong>page</strong>, and <strong>item</strong>. An user views a page, and buys an item.</p><p>Note that a "sessionId" property is required to indicate these events happen in the same session. In the first visit of a user, you should specify the optional "referrral ID" and "browser" information. These are used to determine where the user comes from and the browser information.</p><p>In summary, this template requires user-view-page event and user-buy-item events with the session ID, referrer ID and browser properties.</p> <p>You can send these events to PredictionIO Event Server in real-time easily by making a HTTP request or through the provided SDK. Please see <a href="/appintegration/">App Integration Overview</a> for more details how to integrate your app with SDK.</p><p>Let's try sending events to EventServer with the following <code>curl</code> commands (The corresponding SDK code is showed in other tabs).</p><p>Replace <code><ACCCESS_KEY></code> by the Access Key generated in above steps. Note that <code>localhost:7070</code> is the default URL of the Event Server.</p><p>For convenience, set your access key to the shell variable, run:</p><p><code>$ ACCESS_KEY=<ACCESS_KEY></code></p> <p><a href="#"></a></p> <p>For example, when an user with ID u0 views a URL page "example.com/page0" on time <code>2014-11-02T09:39:45.618-08:00</code>, with session ID "akdj230fj8ass" (current time will be used if eventTime is not specified) you can send the event to Event Server. Run the following <code>curl</code> command:</p><div class="tabs"> <ul class="control"> <li data-lang="json"><a href="#tab-892cf18b-da94-490e- 9cbb-e6dbc00eba52">REST API</a></li> <li data-lang="python"><a href="#tab-cdbcefd1-55cb-436f-b54f-982a2ad9df25">Python SDK</a></li> <li data-lang="php"><a href="#tab-ebeb12c7-f21d-49b7-a40e-85d948642519">PHP SDK</a></li> <li data-lang="ruby"><a href="#tab-9826a6f6-bdb7-4e55-af1c-f5f53ee464b1">Ruby SDK</a></li> <li data-lang="java"><a href="#tab-872b1a95-e65e-492c-8681-edcb9dc11cfd">Java SDK</a></li> </ul> <div data-tab="REST API" data-lang="json" id="tab-892cf18b-da94-490e-9cbb-e6dbc00eba52"> <div class="highlight shell"> <table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" style="text-align: right"><pre class="lineno">1 2 3 4 @@ -61,7 +61,7 @@ Your system is all ready to go. } "eventTime" : "2014-11-02T09:39:45.618-08:00" }'</span> -</pre></td> </tr></tbody></table> </div> </div> <div data-tab="Python SDK" data-lang="python" id="tab-6cbf9eca-a038-474b-9816-3b19453e6582"> <div class="highlight python"> <table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" style="text-align: right"><pre class="lineno">1 +</pre></td> </tr></tbody></table> </div> </div> <div data-tab="Python SDK" data-lang="python" id="tab-cdbcefd1-55cb-436f-b54f-982a2ad9df25"> <div class="highlight python"> <table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" style="text-align: right"><pre class="lineno">1 2 3 4 @@ -106,7 +106,7 @@ Your system is all ready to go. <span class="s">"browser"</span><span class="p">:</span> <span class="o"><</span><span class="n">BROWSER</span><span class="o">></span> <span class="c"># optinal. but should specify this if you have this information when user views the landing page</span> <span class="p">}</span> <span class="p">)</span> -</pre></td> </tr></tbody></table> </div> </div> <div data-tab="PHP SDK" data-lang="php" id="tab-f329c062-f105-453b-822f-e69f1e873b5e"> <div class="highlight php"> <table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" style="text-align: right"><pre class="lineno">1 +</pre></td> </tr></tbody></table> </div> </div> <div data-tab="PHP SDK" data-lang="php" id="tab-ebeb12c7-f21d-49b7-a40e-85d948642519"> <div class="highlight php"> <table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" style="text-align: right"><pre class="lineno">1 2 3 4 @@ -145,7 +145,7 @@ Your system is all ready to go. <span class="p">)</span> <span class="p">));</span> <span class="cp">?></span> -</pre></td> </tr></tbody></table> </div> </div> <div data-tab="Ruby SDK" data-lang="ruby" id="tab-907789b4-5b2a-49b0-8696-f96fb796b50b"> <div class="highlight ruby"> <table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" style="text-align: right"><pre class="lineno">1 +</pre></td> </tr></tbody></table> </div> </div> <div data-tab="Ruby SDK" data-lang="ruby" id="tab-9826a6f6-bdb7-4e55-af1c-f5f53ee464b1"> <div class="highlight ruby"> <table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" style="text-align: right"><pre class="lineno">1 2 3 4 @@ -178,7 +178,7 @@ Your system is all ready to go. <span class="p">}</span> <span class="p">}</span> <span class="p">)</span> -</pre></td> </tr></tbody></table> </div> </div> <div data-tab="Java SDK" data-lang="java" id="tab-84ab8ae6-6dc0-4227-951a-a31fcbc1d969"> <div class="highlight java"> <table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" style="text-align: right"><pre class="lineno">1 +</pre></td> </tr></tbody></table> </div> </div> <div data-tab="Java SDK" data-lang="java" id="tab-872b1a95-e65e-492c-8681-edcb9dc11cfd"> <div class="highlight java"> <table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" style="text-align: right"><pre class="lineno">1 2 3 4 @@ -213,7 +213,7 @@ Your system is all ready to go. <span class="o">.</span><span class="na">property</span><span class="o">(</span><span class="s">"referrerId"</span><span class="o">,</span> <span class="s">"<REFERRER ID>"</span><span class="o">)</span> <span class="o">.</span><span class="na">property</span><span class="o">(</span><span class="s">"browser"</span><span class="o">,</span> <span class="s">"<BROWSER>"</span><span class="o">);</span> <span class="n">client</span><span class="o">.</span><span class="na">createEvent</span><span class="o">(</span><span class="n">viewEvent</span><span class="o">);</span> -</pre></td> </tr></tbody></table> </div> </div> </div> <p>In the same browsing session "akdj230fj8ass", the user with ID u0 buys an item i0 on time <code>2014-11-02T09:42:00.123-08:00</code> (current time will be used if eventTime is not specified), you can send the following buy event. Run the following <code>curl</code> command:</p><div class="tabs"> <ul class="control"> <li data-lang="json"><a href="#tab-8132fa02-ef56-422a-af09-43cd5e5e0ff0">REST API</a></li> <li data-lang="python"><a href="#tab-0896783c-42ce-411f-995b-94dd897bbe0f">Python SDK</a></li> <li data-lang="php"><a href="#tab-75438f58-363a-4ca4-af9f-989c18f27f20">PHP SDK</a></li> <li data-lang="ruby"><a href="#tab-c3aa617d-738f-46e5-9bb8-077582232578">Ruby SDK</a></li> <li data-lang="java"><a href="#tab-fcc129ac-7cd5-44a8-951f-0307b6ad1d34">Java SDK</a></li> </ul> <div data-tab="REST API" data-lang="json" id="tab-8132fa02-ef56-422a-af09-43cd5e5e0ff0"> <div class="highlight shell"> <table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" style="text-align: right"><pre class="lineno">1 +</pre></td> </tr></tbody></table> </div> </div> </div> <p>In the same browsing session "akdj230fj8ass", the user with ID u0 buys an item i0 on time <code>2014-11-02T09:42:00.123-08:00</code> (current time will be used if eventTime is not specified), you can send the following buy event. Run the following <code>curl</code> command:</p><div class="tabs"> <ul class="control"> <li data-lang="json"><a href="#tab-0f901be6-babd-464c-9529-144df448b155">REST API</a></li> <li data-lang="python"><a href="#tab-878b182b-545a-4fb2-9af6-0c8be50709a0">Python SDK</a></li> <li data-lang="php"><a href="#tab-745a674c-052d-43e8-bb1d-ef8cd2014d8d">PHP SDK</a></li> <li data-lang="ruby"><a href="#tab-c483baa8-9366-4527-9dd6-06f20ca943b9">Ruby SDK</a></li> <li data-lang="java"><a href="#tab-1ee190da-ca57-4ead-aff4-29168f057aa4">Java SDK</a></li> </ul> <div data-tab="REST API" data-lang="json" id="tab-0f901be6-babd-464c-9529-144df448b155"> <div class="highlight shell"> <table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" style="text-align: right"><pre class="lineno">1 2 3 4 @@ -238,7 +238,7 @@ Your system is all ready to go. } "eventTime" : "2014-11-02T09:42:00.123-08:00" }'</span> -</pre></td> </tr></tbody></table> </div> </div> <div data-tab="Python SDK" data-lang="python" id="tab-0896783c-42ce-411f-995b-94dd897bbe0f"> <div class="highlight python"> <table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" style="text-align: right"><pre class="lineno">1 +</pre></td> </tr></tbody></table> </div> </div> <div data-tab="Python SDK" data-lang="python" id="tab-878b182b-545a-4fb2-9af6-0c8be50709a0"> <div class="highlight python"> <table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" style="text-align: right"><pre class="lineno">1 2 3 4 @@ -261,7 +261,7 @@ Your system is all ready to go. <span class="s">"sessionId"</span><span class="p">:</span> <span class="o"><</span><span class="n">SESSION</span> <span class="n">ID</span><span class="o">></span><span class="p">,</span> <span class="c"># required</span> <span class="p">}</span> <span class="p">)</span> -</pre></td> </tr></tbody></table> </div> </div> <div data-tab="PHP SDK" data-lang="php" id="tab-75438f58-363a-4ca4-af9f-989c18f27f20"> <div class="highlight php"> <table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" style="text-align: right"><pre class="lineno">1 +</pre></td> </tr></tbody></table> </div> </div> <div data-tab="PHP SDK" data-lang="php" id="tab-745a674c-052d-43e8-bb1d-ef8cd2014d8d"> <div class="highlight php"> <table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" style="text-align: right"><pre class="lineno">1 2 3 4 @@ -288,7 +288,7 @@ Your system is all ready to go. <span class="p">));</span> <span class="cp">?></span> -</pre></td> </tr></tbody></table> </div> </div> <div data-tab="Ruby SDK" data-lang="ruby" id="tab-c3aa617d-738f-46e5-9bb8-077582232578"> <div class="highlight ruby"> <table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" style="text-align: right"><pre class="lineno">1 +</pre></td> </tr></tbody></table> </div> </div> <div data-tab="Ruby SDK" data-lang="ruby" id="tab-c483baa8-9366-4527-9dd6-06f20ca943b9"> <div class="highlight ruby"> <table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" style="text-align: right"><pre class="lineno">1 2 3 4 @@ -311,7 +311,7 @@ Your system is all ready to go. <span class="p">}</span> <span class="p">}</span> <span class="p">)</span> -</pre></td> </tr></tbody></table> </div> </div> <div data-tab="Java SDK" data-lang="java" id="tab-fcc129ac-7cd5-44a8-951f-0307b6ad1d34"> <div class="highlight java"> <table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" style="text-align: right"><pre class="lineno">1 +</pre></td> </tr></tbody></table> </div> </div> <div data-tab="Java SDK" data-lang="java" id="tab-1ee190da-ca57-4ead-aff4-29168f057aa4"> <div class="highlight java"> <table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" style="text-align: right"><pre class="lineno">1 2 3 4 @@ -371,7 +371,7 @@ User u5 buys item i5 </pre></td></tr></tbody></table> </div> <p>When the engine is deployed successfully and running, you should see a console message similar to the following:</p><div class="highlight shell"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1 2</pre></td><td class="code"><pre><span class="o">[</span>INFO] <span class="o">[</span>HttpListener] Bound to /0.0.0.0:8000 <span class="o">[</span>INFO] <span class="o">[</span>MasterActor] Bind successful. Ready to serve. -</pre></td></tr></tbody></table> </div> <p>Do not kill the deployed engine process.</p><p>By default, the deployed engine binds to <a href="http://localhost:8000"><a href="http://localhost:8000">http://localhost:8000</a></a>. You can visit that page in your web browser to check its status.</p><p><img alt="Engine Status" src="/images/engine-server-3246414b.png"/></p></p><h2 id='6.-use-the-engine' class='header-anchors'>6. Use the Engine</h2><p>Now, You can retrieve the results. When a user lands on your page "example.com/page9", with referrer "referrer10.com" and browser "Firefox", you can get the predicted lead score by sending this JSON '{ "landingPageId" : "example.com/page9", "referrerId" : "referrer10.com", "browser": "Firefox" }' to the deployed engine. The engine will return a JSON with the score.</p><p>Simply send a query by making a HTTP request or through the <code>EngineClient </code> of an SDK.</p><p>With the deployed engine running, open another terminal and run the following <code>curl</code> command or use SDK to send the query:</p><div class="tabs"> <ul class="control"> <li data-lang="json"><a href="#tab-3ecb7252-158a-457c-883f-a59f62fe20c9">REST API</a></li> <li data-lang="python"><a href="#tab-614b797a-ad9d-4f6e-b21e-b429496fb763">Python SDK</a></li> <li data-lang="php"><a href="#tab-f4841e7a-ba7f-45c1-9896-73cf3d47a7a0">PHP SDK</a></li> <li data-lang="ruby"><a href="#tab-2d7c9ac1-cbd1-4318-9b58-e64bfe00df7a">Ruby SDK</a></li> <li data-lang="java"><a href="#tab-125f7c00-3457-4eca-9306-6199c4c6fd95">Java SDK</a></li> </ul> <div data-tab="REST API" data-lang="json" id="tab-3ecb7252-158a-457c-883f-a59f62fe20c9"> <div class="highlight shell"> <table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" style="text-align: right"><pre class="lineno">1 +</pre></td></tr></tbody></table> </div> <p>Do not kill the deployed engine process.</p><p>By default, the deployed engine binds to <a href="http://localhost:8000"><a href="http://localhost:8000">http://localhost:8000</a></a>. You can visit that page in your web browser to check its status.</p><p><img alt="Engine Status" src="/images/engine-server-3246414b.png"/></p></p><h2 id='6.-use-the-engine' class='header-anchors'>6. Use the Engine</h2><p>Now, You can retrieve the results. When a user lands on your page "example.com/page9", with referrer "referrer10.com" and browser "Firefox", you can get the predicted lead score by sending this JSON '{ "landingPageId" : "example.com/page9", "referrerId" : "referrer10.com", "browser": "Firefox" }' to the deployed engine. The engine will return a JSON with the score.</p><p>Simply send a query by making a HTTP request or through the <code>EngineClient </code> of an SDK.</p><p>With the deployed engine running, open another terminal and run the following <code>curl</code> command or use SDK to send the query:</p><div class="tabs"> <ul class="control"> <li data-lang="json"><a href="#tab-4fbd7bc0-e00f-44f8-a64c-70b0e356efa0">REST API</a></li> <li data-lang="python"><a href="#tab-e2f1739f-2187-4294-b20b-aa5598eb26f5">Python SDK</a></li> <li data-lang="php"><a href="#tab-028e9d39-d1ce-4356-bf6d-309c523f8c12">PHP SDK</a></li> <li data-lang="ruby"><a href="#tab-c25f4022-9586-4173-a36d-69b3b6dfee99">Ruby SDK</a></li> <li data-lang="java"><a href="#tab-8188e6de-aa6a-49e4-9ec4-f8ccb4740653">Java SDK</a></li> </ul> <div data-tab="REST API" data-lang="json" id="tab-4fbd7bc0-e00f-44f8-a64c-70b0e356efa0"> <div class="highlight shell"> <table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" style="text-align: right"><pre class="lineno">1 2 3 4 @@ -384,7 +384,7 @@ User u5 buys item i5 "browser": "Firefox" }'</span> <span class="se">\</span> http://localhost:8000/queries.json -</pre></td> </tr></tbody></table> </div> </div> <div data-tab="Python SDK" data-lang="python" id="tab-614b797a-ad9d-4f6e-b21e-b429496fb763"> <div class="highlight python"> <table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" style="text-align: right"><pre class="lineno">1 +</pre></td> </tr></tbody></table> </div> </div> <div data-tab="Python SDK" data-lang="python" id="tab-e2f1739f-2187-4294-b20b-aa5598eb26f5"> <div class="highlight python"> <table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" style="text-align: right"><pre class="lineno">1 2 3 4 @@ -397,7 +397,7 @@ http://localhost:8000/queries.json <span class="s">"referrerId"</span> <span class="p">:</span> <span class="s">"referrer10.com"</span><span class="p">,</span> <span class="s">"browser"</span><span class="p">:</span> <span class="s">"Firefox"</span> <span class="p">})</span> -</pre></td> </tr></tbody></table> </div> </div> <div data-tab="PHP SDK" data-lang="php" id="tab-f4841e7a-ba7f-45c1-9896-73cf3d47a7a0"> <div class="highlight php"> <table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" style="text-align: right"><pre class="lineno">1 +</pre></td> </tr></tbody></table> </div> </div> <div data-tab="PHP SDK" data-lang="php" id="tab-028e9d39-d1ce-4356-bf6d-309c523f8c12"> <div class="highlight php"> <table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" style="text-align: right"><pre class="lineno">1 2 3 4 @@ -426,7 +426,7 @@ http://localhost:8000/queries.json <span class="nb">print_r</span><span class="p">(</span><span class="nv">$response</span><span class="p">);</span> <span class="cp">?></span> -</pre></td> </tr></tbody></table> </div> </div> <div data-tab="Ruby SDK" data-lang="ruby" id="tab-2d7c9ac1-cbd1-4318-9b58-e64bfe00df7a"> <div class="highlight ruby"> <table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" style="text-align: right"><pre class="lineno">1 +</pre></td> </tr></tbody></table> </div> </div> <div data-tab="Ruby SDK" data-lang="ruby" id="tab-c25f4022-9586-4173-a36d-69b3b6dfee99"> <div class="highlight ruby"> <table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" style="text-align: right"><pre class="lineno">1 2 3 4 @@ -447,7 +447,7 @@ http://localhost:8000/queries.json <span class="p">)</span> <span class="nb">puts</span> <span class="n">response</span> -</pre></td> </tr></tbody></table> </div> </div> <div data-tab="Java SDK" data-lang="java" id="tab-125f7c00-3457-4eca-9306-6199c4c6fd95"> <div class="highlight java"> <table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" style="text-align: right"><pre class="lineno">1 +</pre></td> </tr></tbody></table> </div> </div> <div data-tab="Java SDK" data-lang="java" id="tab-8188e6de-aa6a-49e4-9ec4-f8ccb4740653"> <div class="highlight java"> <table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" style="text-align: right"><pre class="lineno">1 2 3 4
