Now that you've had a chance to start learning about how to create capsules in the quick start guide, you can begin planning your own capsule! This guide is meant to be a set of recommendations that you should think about and plan ahead of time before creating your capsules.
Specifically, it teaches you how to do sufficient research for your capsule, write out specifications, and then plan the engineering work involved.
It is not required to read this guide for you to start working on your capsule, but we recommend going through these phases. It will greatly help you figure out which models, actions, and general information you need while developing your capsule.
While you're creating your own capsule, narrow down what you want the user to be able to accomplish through Bixby while using their device and the cloud platform. Essentially, you're asking "What ability do I want to teach Bixby?"
In order to answer this question, consider the following:
After you've researched enough information for your capsule, you can start your specification phase:
Writing typical user scenarios enables you to really narrow down the scope of what your capsule will be used for by users. User scenarios also help you understand what to expect from Bixby. Specifically, these user scenarios will be useful later, when you start adding stories and training examples.
Here are some recommendations for writing a good scenario:
The following examples are well written user scenarios.
Friend on flight
Jane is picking up her roommate Delilah who is arriving to San Francisco on a flight from Sydney, Australia. She wants to know if the flight is on time and what terminal (and gate) it arrives at. Before driving to the airport, she checks her phone assistant for details on "the BA flight from Sydney to SFO this afternoon" and realizes it left 45 minutes late. Instead of waiting in the parking lot, she uses the extra time to pick up coffee from Blue Bottle in SF (Delilah's favorite) to help cheer up her friend on arrival after a long and delayed journey. BFF #win.
Raj arrives home after a long day of work, and is immediately greeted at the door by his children. His stomach growls, and he checks the fridge. He notices an assortment of products and leftovers, as well as a large chicken. He pulls out his phone and with one hand asks: "What recipes can I make with chicken, tomato, and mozzarella cheese?" and selects the second option (which looks delicious). Following the steps, he is able to prepare a chicken dinner for his family using the steps in the recipe, and makes a great meal.
Jae lives in Suwon and likes to dress comfortably. He wakes up in the morning and checks notifications on his phone, and then he asks his assistant a few questions about the weather. He asks what the temperature will be today for his current location. He then asks what the chances are of rain at 6:00 pm when he gets off work and walks to the train station. Good news! It will be warm and sunny and only a 1% chance of rain - so he decides to wear his favorite cotton T-shirt and khakis with open-toe sandals. 봄 햇살이 가득한 화창한 하루네요! ("Bom haes-sal-i gadeughan hwachanghan haluneyo" - or, "Fine day full of Spring-like sunshine!")
While user scenarios give you specific details on how a user will interact with your capsule, listing use cases helps you define scope for your capsule. It also gives you some idea of which actions you will need to implement.
Here are some best practices for writing a use cases list:
In general, a simple capsule should have about five use cases, while a more advanced capsule should have about fifteen.
|1||Check price for stock||"What is the current price of TGT?"|
|2||Check exchange for stock||"What stock market exchange is Google listed on?"|
|3||Check market cap for stock||"What is the market cap for MSFT?"|
|4||Buy shares||"Open Fidelity and buy 50 shares of SNAP stock with $10 limit"|
|5||Sell shares||"Sell all shares of DIS using a Market Order day trade"|
Once you have your scenarios listed, it's important to understand what Bixby will need (inputs) in order to produce the desired results (outputs). Creating an input table and an output table helps keep track of the various concept models your capsule needs.
The cardinality listed below in each of the tables refers to the number of inputs or outputs that are expected for each utterance. You can read more about cardinality in the Modeling Concepts Developers' Guide.
|Company Name||Target Corporation|
|Total purchase amount||$10,005.00|
A must-work utterances (MWU) table helps you keep track of use cases to support through utterance examples with input mapping. Use a simple table with structures and leverage your existing inputs table. These MWU tables are normally created by a product manager, but can be used by your developers, designers, and quality assurance engineers. You might also want to keep track of capsule versions, with future work being put on separate tables. Make sure you also test variations, while limiting duplicate testing.
|"What is the price of WMT?"||WMT|
|"What is the cheapest stock on the NYSE?"||NYSE|
|"Show me stocks that cost less than $5"||$5|
|... and more|
This section discusses the mechanics of creating your capsule, preferably after you've finished researching information and creating specifications. First, you'll need to plan API integration. Then you can further familiarize yourself with Bixby's platform, using the Developers' Guides.
Since you are likely going to be using an existing API to implement actions, you should remember that Bixby is a conversational user interface (CUI):
If the API is not your own, there might be additional business development work you need to do. You should meet, discuss, and acquire rights with the owners and come to a proper contract agreement in the API's use. Make sure to discuss the Service Level Agreement (SLA), including responses from the provider in case of downtime and pricing. You will also need to make plans for handling bugs and if there are any new feature requests.
For more information on the steps a capsule developer should take to actually create a capsule, see the Capsule Developer Workflow Developers' Guide.