Artificial Intelligence and Machine Learning Blogs
Explore AI and ML blogs. Discover use cases, advancements, and the transformative potential of AI for businesses. Stay informed of trends and applications.
cancel
Showing results for 
Search instead for 
Did you mean: 
architectSAP
Active Contributor
As mentioned in my blog Takeaways from 2017 SAPPHIRE NOW, the biggest topic there was SAP Leonardo: Intelligently connecting people, things, and businesses. In fact, SAP Leonardo is not strictly monolithic but comprises of the following components:

  • Internet of Things

  • Machine Learning

  • Analytics

  • Big Data

  • Blockchain

  • Data Intelligence

  • Design Thinking


In this blog, I focus on the Machine Learning aspect of SAP Leonardo. Technically speaking, SAP Leonardo Machine Learning is a set of 11 Functional Services of which 7 are still in Alpha state:



My scenario is a typical machine learning one: a chat bot. To keep it simple, I make my chat bot just language aware, nothing else. For this I chose the Language Detection API:



There are great tutorials how to Getting started with the SAP API Business Hub, so I will not repeat the details here.

My chat bot is a simple Java application, that accepts input from the user and if the used language is detected as German, then the bot greets with “Willkommen zu SAP Leonardo maschinelles Lernen”, otherwise with “Welcome to SAP Leonardo Machine Learning”:
import java.net.URL;
import java.net.HttpURLConnection;
import java.io.DataOutputStream;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import org.json.JSONObject;
public class Leonardo {
public static void main(String[] args) {
DataOutputStream dataOut = null;
BufferedReader in = null;
try {
InputStreamReader r = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(r);
System.out.print("? ");
String text = br.readLine();
String url = "https://sandbox.api.sap.com/ml/languagedetection/language";
URL urlObj = new URL(url);
HttpURLConnection connection = (HttpURLConnection) urlObj.openConnection();
//setting request method
connection.setRequestMethod("POST");
//adding headers
connection.setRequestProperty("Content-Type","application/json");
connection.setRequestProperty("Accept","application/json");
connection.setRequestProperty("APIKey","/*yourAPIKey*/");
connection.setDoInput(true);
//sending POST request
connection.setDoOutput(true);
dataOut = new DataOutputStream(connection.getOutputStream());
dataOut.writeBytes("{ \"message\": \"" + text + "\"}");
dataOut.flush();
int responseCode = connection.getResponseCode();
in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
//printing response
JSONObject obj = new JSONObject(response.toString());
String langCode = obj.getString("langCode");
if (langCode.equals("de")) {
System.out.println("Willkommen zu SAP Leonardo maschinelles Lernen!");
} else {
System.out.println("Welcome zu SAP Leonardo Machine Learning!");
}
} catch (Exception e) {
//do something with exception
e.printStackTrace();
} finally {
try {
if(dataOut != null) {
dataOut.close();
}
if(in != null) {
in.close();
}
} catch (IOException e) {
//do something with exception
e.printStackTrace();
}
}
}
}

The interesting bit of the code that sends the input to the SAP API sandbox system and receives the response back is in fact auto generated from the API Hub including my API key. I only need to extract the langCode field for which I use this org.json implementation JSON In Java » 20170516.

With this, my chat bot detects my language and greets me respectively. If you like, please try this with completely arbitrary German and not German input:



I kept this example as simple as possible so that you can easily adopt it, but at the same time I hope it shows you the potential of SAP Leonardo Machine Learning.
2 Comments