blob: 5d0ff73be39247bf77f96a367d307ab7daa0bc80 [file]
package io.prediction.samples;
import io.prediction.Client;
import io.prediction.CreateItemRequestBuilder;
import io.prediction.CreateUserRequestBuilder;
import io.prediction.Item;
import io.prediction.User;
import org.joda.time.DateTime;
import java.io.IOException;
/**
* Created with IntelliJ IDEA.
* User: cqin
* Date: 2/10/13
* Time: 11:11 PM
*/
public class SampleClient {
public static void main(String[] args) {
/* set appurl to your API server */
String appurl = "http://localhost:8000";
/* Handle command line arguments */
String appkey = null;
String engine = null;
try {
appkey = args[0];
engine = args[1];
} catch (ArrayIndexOutOfBoundsException e) {
System.err.println("You must provide appkey (1st arg) and engine name (2nd arg)");
System.exit(1);
}
Client client = new Client(appkey, appurl);
// Get API system status
try {
System.out.println(client.getStatus());
} catch (Exception e) {
System.out.println("Unable to get status: "+e.getMessage());
}
// try get recommendation without identify (For testing purpose)
System.out.print("10 recommendations without identifying user:");
try {
for (String iid : client.getItemRecTopN(engine, 10)) {
System.out.print(" " + iid);
}
} catch (Exception e) {
System.out.println("Unable to get recommendations: "+e.getMessage());
}
System.out.println();
// Try recommendations
System.out.print("10 recommendations for User ID 1:");
try {
client.identify("1");
for (String iid : client.getItemRecTopN(engine, 10)) {
System.out.print(" " + iid);
}
} catch (Exception e) {
System.out.println("Unable to get recommendations: "+e.getMessage());
}
System.out.println();
// Try similar items
System.out.print("5 recommendations for User ID 2:");
try {
client.identify("2");
for (String iid : client.getItemRecTopN(engine, 5)) {
System.out.print(" " + iid);
}
} catch (Exception e) {
System.out.println("Unable to get recommendations: "+e.getMessage());
}
System.out.println();
// Try creating dummy user
System.out.print("Create dummy user with User ID 'foobar': ");
try {
client.createUser("foobar");
System.out.println("succeeded");
} catch (Exception e) {
System.out.println("failed ("+e.getMessage()+")");
}
try {
client.deleteUser("foobar");
} catch (Exception e) {
System.out.println("clean up failed: "+e.getMessage());
}
System.out.print("Create dummy user with User ID 'barbaz' with GPS location (21.109,-48.7479): ");
CreateUserRequestBuilder builder = client.getCreateUserRequestBuilder("barbaz");
builder.latitude(21.109).longitude(-48.7479);
try {
client.createUser(builder);
System.out.println("succeeded");
} catch (Exception e) {
System.out.println("failed ("+e.getMessage()+")");
}
System.out.println("Get user just created:");
try {
User user = client.getUser("barbaz");
System.out.println(" uid: " + user.getUid());
System.out.println(" lat: " + user.getLatitude());
System.out.println(" lng: " + user.getLongitude());
} catch (Exception e) {
System.out.println(" FAILED! ("+e.getMessage()+")");
}
try {
client.deleteUser("barbaz");
} catch (Exception e) {
System.out.println("clean up failed: "+e.getMessage());
}
System.out.print("Create dummy user with User ID 'bla' and delete it: ");
try {
client.createUser("bla");
client.deleteUser("bla");
System.out.println("succeeded");
} catch (Exception e) {
System.out.println("failed ("+e.getMessage()+")");
}
// Try creating dummy item
System.out.print("Create dummy item with Item ID 'barbaz' and item types 'dead', 'beef': ");
String[] itypes = new String[2];
itypes[0] = "dead";
itypes[1] = "beef";
CreateItemRequestBuilder ibuilder = client.getCreateItemRequestBuilder("barbaz", itypes);
long ts = 478308922;
DateTime startT = new DateTime(ts);
ibuilder.startT(startT).latitude(-58.24089).longitude(48.17890);
try {
client.createItem(ibuilder);
System.out.println("succeeded");
} catch (Exception e) {
System.out.println("failed ("+e.getMessage()+")");
}
System.out.println("Get item just created:");
try {
Item item = client.getItem("barbaz");
System.out.println(" iid: " + item.getIid());
System.out.println(" itypes: " + item.getItypes()[0] + ", " + item.getItypes()[1]);
System.out.println(" startT: " + item.getStartT());
System.out.println(" endT: " + item.getEndT());
System.out.println(" lat: " + item.getLatitude());
System.out.println(" lng: " + item.getLongitude());
client.deleteItem("barbaz");
} catch (Exception e) {
System.out.println(" FAILED! ("+e.getMessage()+")");
}
System.out.print("Create dummy item with Item ID 'xyz' and delete it: ");
try {
client.createItem("xyz", itypes);
client.deleteItem("xyz");
System.out.println("succeeded");
} catch (Exception e) {
System.out.println("failed ("+e.getMessage()+")");
}
//System.exit(0);
client.close();
}
}