Bixby Developer Platform at a Glance
Bixby is a virtual personal assistant that enables users to find information and get things done quickly.
Bixby can already do many useful things, including:
As a developer, you can expand Bixby’s body of knowledge and teach it something new. For example, you can teach Bixby how to play your favorite workout playlist or how to buy the perfect Valentine's gift for mom. The capabilities that you teach Bixby are combined into capsules that you develop.
Developing for Bixby is different than traditional software development because you're not writing the program; the Artificial Intelligence (AI) is. You perform modeling, which is how you teach Bixby about the feature or domain you’re implementing. Using your models and others we provide, Bixby constructs a program that satisfies the user's specific request in milliseconds the moment the request is made. This is known as Dynamic Program Generation, and it's one major feature that separates Bixby from other personal assistants. With other approaches, you have to hard-code logic that handles every use case and interaction. You must decide what services get called, when to ask the user something, and how to apply machine learning, so that the assistant doesn’t ask the same questions every time you run into that use case.
On the other hand, with Bixby, you simply teach Bixby how to write these programs. With the right modeling and training, you can create a capsule that allows users to say something like this:
"Get me a window seat on a non-stop one-way flight from JFK to San Francisco three days after next Friday"
In just a few milliseconds, Bixby can generate a 40-plus step program to:
Dynamic Program Generation is the basis for every interaction with the user, and it also works for much more complex operations, including loops, iterations, and transactions. It allows you to more easily provide a capability that is more consistent, dependable, and maintainable.
At a high level, this is how Bixby works when a user makes a request:
(Click the image to view a larger version)
First, Bixby takes the user’s natural language request and converts that to an intent, a structured representation of what the user what wants to get done. As a developer, you train Bixby with natural language utterances that guide Bixby in understanding the user's initial request and generating an intent.
Then, Bixby uses the intent and the models you write to dynamically generate a program, or plan, to be executed. Your models describe concepts (things that Bixby knows) and actions (things that Bixby can do), and the intent describes a goal (what the user wants to accomplish). Bixby uses your concepts and actions to write a program to reach the goal.
From the initial request to Bixby's final response, the user's conversation with Bixby is a set of user requests and Bixby's responses. Bixby's responses can include spoken and textual dialog, rendered views (such as a list of hotels in response to a request like "find me a four-star hotel in Union Square in San Francisco"), and prompts. The set of Bixby's responses to a user request is called a moment by Bixby. A moment could be the final result to a request, but it could also be Bixby asking the user for more information or clarification, or confirmation of information Bixby's gathered from the user or even assumed based on past interactions. For instance, a ride sharing capsule could learn about the user's typical car choices, and present those choices pre-selected in a confirmation moment. You design these moments using layouts and dialog.
Together, your models, code, layouts, and dialog form a capsule. When you submit a capsule that is approved, it becomes available to all users in the Bixby Marketplace. You can learn how to create and test your first capsule in the Quick Start Guide.
Ready to teach Bixby something new? Get started!