Skip to content

Commit

Permalink
Merged conflicts
Browse files Browse the repository at this point in the history
  • Loading branch information
aswetlow committed Sep 19, 2017
2 parents c0f5d4d + d8e69fc commit 6a20c75
Show file tree
Hide file tree
Showing 28 changed files with 2,219 additions and 132 deletions.
6 changes: 2 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
<br/>

<p align="center">
<a href="https://travis-ci.org/jovotech/jovo-framework-nodejs" target="_blank"><img src="https://travis-ci.org/jovotech/jovo-framework-nodejs.svg"></a>
<a href="https://travis-ci.org/jovotech/jovo-framework-nodejs" target="_blank"><img src="https://travis-ci.org/jovotech/jovo-framework-nodejs.svg?branch=master"></a>
<a href="https://www.npmjs.com/package/jovo-framework" target="_blank"><img src="https://badge.fury.io/js/jovo-framework.svg"></a>
<a href="./CONTRIBUTING.md"><img src="https://img.shields.io/badge/PRs-welcome-brightgreen.svg"></a>
<a href="https://gitter.im/jovotech/jovo-framework-nodejs" target="_blank"><img src="https://badges.gitter.im/jovotech/jovo-framework-nodejs.svg"></a>
Expand Down Expand Up @@ -86,10 +86,8 @@ Find a quickstart guide and comprehensive tutorials here:
We still consider this a beta-version of the Jovo framework: We give it our all to make it as complete as possible (and it supports most of the Alexa and Google Assistant functions), but there are certain features that are currently in development.

What we're currently working on:
* Alexa Audioplayer Skills
* Dialog Mode
* Adding more DB integrations
* Adding more visual output options
* Extending the User class


## We need your help
Expand Down
58 changes: 58 additions & 0 deletions docs/01_getting-started/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
# Getting Started

> Other pages in this category: [Tutorials](tutorials.md), [Voice App Basics](voice-app-basics.md).
* [Installation](#installation)
* [Technical Requirements](#technical-requirements)
* [Jovo CLI](#jovo-cli)
* [Jovo-Framework](#jovo-framework)
* [Clone a Sample App](#clone-a-sample-app)


## Installation

There are three ways to get started with the Jovo Framework. You can either install our command line tools (recommended), save the jovo-framework npm package, or clone our sample voice app.

### Technical Requirements

Jovo is a [Node.js](https://nodejs.org/) framework. Before starting the installation, make sure you have the following installed on your computer/development environment:

* Node.js version 4 or later
* [NPM](https://www.npmjs.com/) (node package manager)

Here are some tutorials to install Node.js and NPM: [Mac](http://blog.teamtreehouse.com/install-node-js-npm-mac), [Windows](http://blog.teamtreehouse.com/install-node-js-npm-windows).

### Jovo CLI

The Jovo Command Line Tools offer an easy way to create new voice apps from templates. You can find a more detailed description in the section [02. Building a Voice App](../02_building-a-voice-app).

The open source GitHub repository can be found here: [jovotech/jovo-cli](https://github.com/jovotech/jovo-cli) (pull requests encouraged!)

```
$ npm install -g jovo-cli
```

You can create a Jovo project into a new directory with the following command:

```
$ jovo new <directory>
```

This will clone the [Jovo Sample App](#clone-a-sample-app) and install all the necessary dependencies so you can get started right away.

### Jovo Framework
If you want to use the Jovo Framework as a dependency in an already existing project, you can also use npm to save it to your package.json:

```
$ npm install --save jovo-framework
```

### Clone a Sample App

Right now, there is one sample app available, [which you can find here](https://github.com/jovotech/jovo-sample-voice-app-nodejs).

You can clone it like this:

```
$ git clone https://github.com/jovotech/jovo-sample-voice-app-nodejs.git
```
30 changes: 30 additions & 0 deletions docs/01_getting-started/tutorials.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
# [Getting Started](./) > Tutorials

> Other pages in this category: [Getting Started](./), [Voice App Basics](./voice-app-basics.md).
Comprehensive tutorials on how to build an Alexa Skill and Google Action.

* [Beginner Tutorials](#beginner-tutorials)
* [Voice App Courses](#voice-app-courses)
* [Suggest a Tutorial](#suggest-a-tutorial)


## Beginner Tutorials

Getting started with new platforms like Amazon Alexa and Google Assistant can sometimes be a little overwhelming. This is why we created in-depth tutorials for beginners:

[![Alexa Skill Course for Beginners][alexa-tutorial]](https://www.jovo.tech/blog/alexa-skill-tutorial-nodejs/)

[![Google Action Course for Beginners][google-action-tutorial]](https://www.jovo.tech/blog/google-action-tutorial-nodejs/)

[alexa-tutorial]: https://www.jovo.tech/img/docs/alexa-skill-tutorial-og-image.jpg "Hello World on Alexa"
[google-action-tutorial]: https://www.jovo.tech/img/docs/google-action-tutorial-og-image.jpg "Hello World on Google Assistant"

## Voice App Courses
Find our series of voice app development courses here:
* [Project 1: Hello World!](https://www.jovo.tech/blog/project-1-hello-world/)
* Project 2: Adventure Game (coming soon)

## Suggest a Tutorial

Anything particular where you need some additional help? Please fill out the following form and we're happy to look into it and work on a step-by-step guide: [Suggest a Tutorial](https://jovo.typeform.com/to/qqD2t6).
93 changes: 93 additions & 0 deletions docs/01_getting-started/voice-app-basics.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
# [Getting Started](./) > Voice App Basics

> Other pages in this category: [Getting Started](./), [Tutorials](./tutorials.md).
This section provides an overview of how voice applications work, and the differences between voice platforms. Currently, Jovo supports [Amazon Alexa](#amazon-alexa) and [Google Assistant](#google-assistant).

* [How Voice Apps Work](#how-voice-apps-work)
* [Natural Language Lingo](#natural-language-lingo)
* [Voice Platforms](#voice-platforms)
* [Amazon Alexa](#amazon-alexa)
* [Google Assistant](#google-assistant)


## How Voice Apps Work

Below, you can see a high-level illustration, how a voice app works:

![How Voice Apps Work](https://www.jovo.tech/img/docs/voice-app-process.jpg)

The user first converses with the smart speaker and then prompts it to open your app (which is also called invocation) with a certain `speech input`. The voice platform recognizes this and sends a `request` to your app. It is now up to you to use this request to craft a `response`, which is returned to the platform's API. The response is then turned into `speech output`, what your user is hearing.

In the next section, we will go a little deeper into the underlying principles of natural language processing and understanding:


### Natural Language Lingo

In order to find out what a user wants when they’re talking to your app, platforms like Alexa or Google Assistant do a lot of underlying work for you to interpret the natural language of user voice input. To build for these platforms, it’s important to understand a few elements of natural language understanding. Simplified, a language model can be divided in "what the user wants" (`intent`) and "what the user says" (`utterances` and specific `entities or slots).

![Language Model Elements](https://www.jovo.tech/img/docs/voice-intents-utterances-entities.jpg)

In the example above, possible sentences a user could say can be grouped to a `'FindRestaurantIntent', while there are potential slots like `restaurant type. Please note that this is a very simple example, other slot types like `area` or `price range could also be considered.

### Intents

In natural language processing (NLP), an intent is something users want to achieve when they are conversing with technology. When developing your voice app, you can create intents to handle different user needs and interactions.

Find more detailed information here: [Handling Intents & States](./building-a-voice-app/intents-states.md).

### Utterances and User Expressions

What are all the potential phrases someone could use to express what they want? Having a good set of utterances increases your chances of reacting to a user's input.

### Slots, Parameters, and Entities

This element has different wordings on various NLP platforms. It describes a specific, variable element in a set of utterances. For example, your intent could be to find a restaurant, but you could search for a pizza place, sushi, or even something cheap or very close.

Find more detailed information here: [Handling User Input](./building-a-voice-app/input.md).


## Voice Platforms

The Jovo framework currently supports Skiils for Amazon Alexa and Actions for Google Assistant (on Google Home). In this section, you can learn more about what you need to set up on the respective Developer Consoles in order to make your voice apps work.

### Amazon Alexa

> See also: Beginner Tutorial: [Build an Alexa Skill in Node.js with Jovo](https://www.jovo.tech/blog/alexa-skill-tutorial-nodejs/).
On the Amazon Echo product suite or other devices that support Amazon Alexa, users can access so-called Skills by asking the device something like this:

```
// Standard invocation
'Alexa, open Pizza Temple.'
'Alexa, start Pizza Temple.'
// Deep invocation
'Alexa, ask Pizza Temple to find me a restaurant.'
```

In order to build a skill for Amazon Alexa, you need to create an account at the Amazon Developer Portal. You can find an [official step-by-step guide by Amazon here](https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/docs/registering-and-managing-alexa-skills-in-the-developer-portal).

Another helpful guide for setting up a first Alexa skill [can be found here](https://github.com/alexa/skill-sample-nodejs-fact/blob/master/README.md).

### Google Assistant

> See also: Beginner Tutorial: [Build an Google Action in Node.js with Jovo](https://www.jovo.tech/blog/google-action-tutorial-nodejs/).
![Google Home, Google Assistant, and Google Actions](https://www.jovo.tech/img/docs/voice-app-basics/google-home-google-assistant.png)

On Google Home, users converse with the Google Assistant. Apps for the Assistant are called Actions on Google. They can be accessed like this:

```
// Standard invocation
'OK Google, talk to Pizza Temple.'
// Deep invocation
'OK Google, tell Pizza Temple to find me a restaurant.'
```

Here is the official Google resource: [Invocation and Discovery](https://developers.google.com/actions/discovery/).

To build a voice app for Google Assistant and Google Home, you need to create a project on the [Actions on Google Console](https://console.actions.google.com/). For interpreting the natural language of your users' speech input, you can use different kinds of integrations. Most developers use [API.AI](https://api.ai/) for the language model.

Here are some helpful guides to get started with Google Actions: [Overview](https://developers.google.com/actions/) and a [tutorial for API.AI](https://developers.google.com/actions/apiai/tutorials/getting-started).
Loading

0 comments on commit 6a20c75

Please sign in to comment.