Wednesday, June 8, 2016

Hu:toma Deep Learning AI Raises $300000 in Seed Funding led by Inveready Technology Investment Group

Hu:toma, a Barcelona-based start up working on conversational AIs powered by deep learning, announced today the closing of $300000 in seed round funding. The company plans to use the funding to develop an API ecosystem around their technology. The seed round was led by Inveready Technology Investment Group with additional participation from Startupbootcamp IoT & DataTech Barcelona and strategic angel investors Roger Casals, former founder of PasswordBank, and Ian Collingwood co-founder of Pollen.

Hu:toma helps companies reduce staffing costs by deploying artificially intelligent programs that act and behave like their human counterparts but are significantly cheaper and infinitely scalable in comparison. Hu:toma utilizes a proprietary machine learning pipeline to autonomously ingest unstructured information such as product info or chat logs and creates AIs that can have meaningful conversations with end users via text or voice. Unlike their competitors, Hu:toma AIs can assemble an answer on the fly by learning from past conversations instead of just using pre-packaged answers.

“We believe that AIs will significantly help businesses stay competitive and scale efficiently” says Dr. Maurizio Cibelli, Hutoma Founder and CEO “and with Hu:toma companies will be able to deploy cloud-based digital employees much like they deploy a computer in the cloud today.”

“The investment in Hu:toma is completely aligned with Inveready’s culture, seeking for disruptive software solutions in two-digit growing markets. We believe that Artificial Intelligence and Deep learning solutions will become the next technology Platform in the near future.” says Roger Piqué, Investment Director Inveready.

Founded in Nov 2015 by former Microsoft/Amazon tech leads, Hu:toma joined Startupbootcamp Barcelona in Dec 2015 for an intense  three months acceleration program that led to commercial partnerships, great mentoring, and full funding few days after demo day at Mobile World Congress 2016.

Hu:toma is now testing their API technology in a private beta program with developers around the world.

About Hu:toma
Hu:toma (human automata), deploys artificially intelligent employees to help companies efficiently scale customer facing roles. The company was founded in Nov. 2015 by Dr. Maurizio Cibelli former machine learning development manager at Amazon USA and senior technical lead at Microsoft Seattle, and by Andrea Cibelli former tech assistant at University of Salerno & Benevento (Italy).

About Inveready
Inveready is one of the leading early-stage venture capital companies in Spain, with five investment funds.  Inveready invests in technology companies with high growth potential and innovative business models. Inveready has extensive experience in different areas, with more than 70 portfolio companies that are leaders in their respective sectors.


About Startupbootcamp IOT & DataTech Barcelona
Startupbootcamp Internet of Things (IoT) & Data Tech is the leading global startup accelerator delivering unparalleled support, mentorship, and connections to world class startups building disruptive solutions with connected devices and the immense associated data these machines create. During the course of an intensive 3-month acceleration program in Barcelona , our startups will work with mentors, partners and investors to build the next generation of products, services and companies. The program officially ends with a magnificent Demo Day at the 4YFN stage of the Mobile World Congress.




Sunday, December 6, 2015

How to embed a Hutoma AI into your website


AIs can be pretty useful when placed inside a webpage. An AI can explain your product to your customers and be your brand ambassador; an AI can act as first customer support or entertain your visitors. In this short tutorial, we will create a simple webpage that will let you text with your AI.

The complete source file can be found here. Before you run it, make sure you replace the ai_ID with your neural network ID you got during the creation process. To get the actual code, view the page source using your browser.  

The code behind the page is pretty simple, but in case your are curios the main bits are:

Step 1: Add a link to our hutoma.js file in your page
Open your webpage and add a link to our hutoma.js file. The JS file just simplify a little the syntax needed to interface with our infrastructure.

<script src="http://www.hutoma.com/hutoma.js"></script>

Step 2: Crate an AI
After you linked the huroma.js file you can initiate a connection to your AI. 

var ai = new AI({ai_ID: 'YOUR AI ID',user_ID: '1'});

Step 3: Talk to your AI
To talk to your AI, you can call the talk command as follow. The call, invokes the chat session API and pop up a message with the answer 

ai.talk(
   {
      input: <YOUR QUESTION GOES HERE>},
      function(data) {
           The response from the AI will be in data.output. 
           Here we just pop up a message
         alert(data.output);
                     }
   );

Here's the complete webpage to talk to your deep learning AI:

<!doctype html>
<html>
  <head>
    <title>Hutoma Chat Example</title>
   </head>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.0.0-alpha1/jquery.min.js"></script>
<script src="http://www.hutoma.com/hutoma.js"></script>

<script>
    var ai = new AI({
        ai_ID: 'REPLACE THIS WITH YOUR AI ID',
        user_ID: '1'
    });

  $(document).ready(function(){
      $("#talkbutton").click(function(e){

        var q = $("#yousay").val();
        $("#response").append("<b>human</b>:"+q+"<br/>");
        ai.talk({
          input: q
                },
        function(data) {
         $("#response").append("<b>AI</b>:"+data.output+"<br/>");
        });
      });
    });

</script>
  <body>
  <h1>Talk to a Hutoma AI</h1>
    <form id="talk" class="boxedin" onsubmit="return false;">
      <b>You say:</b> <input id="yousay" name="input" size="90" />
      <br/>
      <input id="talkbutton" type="button" value="talk"/>
    </form>
    <p id="response"></p>
  </body>
</html>

Saturday, November 28, 2015

Want to talk to your favorite actor or actress? Create an AI with movie scripts and Hutoma APIs.

I just spoke to Sheldon from the Big Bang Theory

One of the great things about our deep learning network is the possibility to use any type of conversation example to create an AI you can talk to. 

So in a recent experiment we tried using movie scripts and trained an AI using scripts from one of our favorite TV character: Sheldon! After few days of training we got this:



 


Monday, November 23, 2015

A video tutorial for creating an "Hello World" conversational AI


A non tech guide to your first Deep Learning conversational AI with Hutoma APIs
Eliminating complexity in the User Interface its critical. It’s why many people love Apple products. And Machine Learning is the next natural evolution in reducing UI complexity. 

You are already seeing Machine Learning show up in lots of consumer interfaces - especially in smartphone applications. You’ll also see it in lots of next-generation consumer hardware, where the UI options are limited but the consumer use cases may be quite varied. 

Hutoma makes super easy to create and deploy siri-like interfaces on your web/mobile app, connected device, smart device or hardware project.

And here's a step by step video tutorial on how to create a simple conversational AI. Enjoy! https://www.youtube.com/watch?v=2oj9wNT3YYY

Friday, September 4, 2015

Create a siri-like AI with Hutoma Deep Learning APIs

Eliminating complexity in the User Interface its critical. It’s why many people love Apple products. And Machine Learning is the next natural evolution in reducing UI complexity. You are already seeing Machine Learning show up in lots of consumer interfaces - especially in smartphone applications. You’ll also see it in lots of next-generation consumer hardware, where the UI options are limited but the consumer use cases may be quite varied. 

The Hutoma API makes super easy to create and deploy siri-like interfaces on your web/mobile app, connected device, smart device or hardware project. If you have questions or need support, email devs@hutoma.com


An "Hello World" AI
In this section, we will lead you through creating a simple AI all using our RESTful API. You will need to make HTTP requests using either the curl command line tool or a REST client. 

Step 1) Preparing the training data 
Hutoma AIs use supervised learning to infer the right answer from training data. The training data consist of two text files: one containing a set of input phrases, and another containing the desired output phrases. For our hello world ai, create a source.txt and a target.txt file and add the training phrases shown in the table below (or download the sample files)

source.txt (download)target.txt (download)
hello
how are you
what color is the sky
hello world!
i am fine, how are you?
the sky is blue!


Step 2) Create a new AI
To create a new AI make the following REST call:
curl "https://api-2445581341197.apicast.io:443/api/v1/ai/" --request POST -H'user_key: YOUR_DEV_KEY'

Remember to replace YOUR_DEV_KEY with the dev key you get when you sign up with our API . The JSON response will contain a "AIID" field. Take a note of that ID.

Step 3) Start training your AI
Before we kick off the training process, you need to first upload the source.txt and target.txt files you created in Step 1. You can do this with the following two REST calls. 
curl -X POST 'https://api-2445581341197.apicast.io:443/api/v1/ai/{aiid}/training/'  -H'user_key: YOUR_DEV_KEY' -F 'file=@source.txt'

Remember to replace the string {aiid} in the URL above with the ID you got in Step 2.  Now upload the target.txt file:
curl -X POST 'https://api-2445581341197.apicast.io:443/api/v1/ai/{aiid}/training/'  -H'user_key: YOUR_DEV_KEY' -F 'file=@target.txt'

Once the ulpoad is completed, kick off the training process with this call: 
curl 'https://api-2445581341197.apicast.io:443/api/v1/ai/{aiid}/training?action=start' --request PUT -H'user_key: YOUR_DEV_KEY'

Step 4) Monitor the training process
The time required to train your network greatly depends on the data you will feed to it, as well as your position in the training queue. For a simple network like the one we are building it should not take more than few minutes to complete. You can monitor the status of your training process with the following call:
curl -X GET "https://api-2445581341197.apicast.io:443/api/v1/ai/{aiid}-H'user_key: YOUR_DEV_KEY'

Periodically ping the server to check your training status. After few minutes your JSON response will contain the following: 

ParameterMeaning
trainingStatusA numerical value indicating the status of the training process:





  • 0 - request queued
  • 1 - training in process
  • 2 - training completed
  • 3 - stopping
  • 4 - stopped
  • 5 - max training time reached
  • trainingStatusDetailsDetails about the trainingStatus code
    runtimeStatusA numerical value indicating the runtime status of your network. 0 means the network (i.e. the bot) is not running. 1 means the network is running and can be queried.
    sampleThe sample field provides a qualitative metric to help you asses how well the network is learning your sample data. At each learning iteration, the API will send a random phrase (marked as "input" in the JSON response), will check the target output phrase (marked as "target" in the JSON response) and will store the answer it will receive back (marked as "current output").
    scoreThe score field provides a quantitative metric to help you assess how well the network is learning your sample data. At each learning iteration, the API will compute a training error function that tells you how far your bot is from completely learning the training data. The training process will automatically stop once this function reaches 0 (or you reached your allocated traning time). The score field also contains useful information about the number of training iteration, how long your network has been in training etc.
    compileError (AIML)If you supply AIML files, this field will tell you if your files correctly compile.
    runtimeStatus (AIML)A numerical value indicating the runtime status of your aiml interpreter. 0 means the interpreter (i.e. the bot) is not running. 1 means the aiml interpreter is running and can be queried.
    trainingStatusDetails (AIML)Details about the runtimeStatus code

    Note that you can start chatting with your bot while the training is in process.

    Step 5) Speaking to your AI
    Once your AI is ready, you can interact with it via text or speech. Use the following REST call to talk to your AI and hear a response


    curl -X GET --header "Accept: application/json" "https://api-2445581341197.apicast.io:443/api/v1/ai/{aiid}/speak?voice=0" -H'user_key: YOUR_DEV_KEY' -F 'file=@PATH_TO_UTTERANCE_FILE'

    To text to your AI use the following REST call
    curl "https://api-2445581341197.apicast.io:443/api/v1/ai/{aiid}/chat?uid=1&q=what%20color%20is%20the%20sky" -H'user_key: YOUR_DEV_KEY'