The ultimate low-code app building experience is one where you describe in plain language what you want an app to do, and in an instant that app is created for you.
Today we’re taking a major step toward that dream.
We’ve fine-tuned one of the most advanced natural language AI models on the planet, a model known as OpenAI GPT-3, to automatically generate Power Fx formulas based on natural language input. As Satya announced in today’s Microsoft Build keynote, we’re adding GPT-3 and other Microsoft AI technology directly into Power Apps Studio in a way that will help every maker quickly build the apps they need and more easily learn advanced concepts in the process.
Now you’ll be able to simply tell Power Apps what you’d like to see—for example, “show me customers from the US whose subscription expired”—and a set of formulas will be presented along with an explanation of how they work. Simply select one to apply the logic to your app.
But that’s not all. We’re also infusing Ideas with the ability to “program by example” using AI technology known as Program Synthesis using Examples (PROSE). Want to manipulate the way names show up in a gallery to show just each person’s last initial instead of their full name? Now you’ll be able to just show Power Apps a single example, like “Samantha B.”, and Ideas will suggest the right formula for transforming every string in the gallery.
Power Fx—the open-source programming language for low code we introduced earlier this year—makes it possible for hundreds of millions of people with Excel skills to add advanced logic to their apps. But even the most experienced Power Fx users can spend a lot of time searching for, learning about, and debugging complex formulas. With AI-powered Ideas built directly into Power Apps Studio, now everyone from new makers to seasoned pros can create apps faster than ever before.
Let’s take a closer look at how each of these AI technologies work to simplify app building:
1. Natural language to Power Fx
Trained with 175 billion parameters, GPT-3 is an advanced natural language AI model that implements deep learning to be able to both understand and produce human-like text based on a prompt in natural language. Microsoft has a strategic collaboration with OpenAI, the developers of GPT-3, to be able to apply the model in products like Power Apps.
By fine-tuning GPT-3 to understand how Power Fx formulas are constructed, we can leverage the model’s existing strengths in natural language input to give Power Apps makers the ability to describe logic just like they would to a friend or co-worker, and end up with the right formula for their app.
For example, say you work at an e-commerce vendor and want to sort your app gallery to show 10 orders for strollers sorted by purchase date with the newest on the top. Now, instead of having to remember and write a complex formula, you can simply type a natural language statement.
|Natural language input||AI-generated code output|
|Show 10 orders that have “stroller” in the product name and sort by purchase date with newest on the top||FirstN(Sort(Search(‘BC Orders’, “stroller”, “aib_productname”), ‘Purchase Date’, Descending)|
Based on this input and context from your app, such as your table and controls, Power Apps will generate one or a few of the most relevant Power Fx formulas for you to select from, filtering out results that cannot pass the formula syntax check, and you can select the formula that you want to use. It’s that easy.
2. Programming by example
Programming by examples (PBE) is a new frontier in AI that enables users to create scripts from input-output examples. AI powered PBE empowers users to easily manage and manipulate data within galleries and data tables, by applying patterns or formula on the original value. Instead of applying a complex formula, users can program the model by showing it examples. If data is well formatted, one example may be enough to program it. If not, users can program the model with more examples.
For example, an e-commerce vendor wants to convert how their customer names are surfaced in a data table, changing the first name and last name to the first name and the initial of the last name eg. John Smith to John S. Now instead of using a formula you can give an example, significantly simplifying the process and saving time.
|Example input||AI-generated code output|
|John S.||Concatenate(Text(First(Split(ThisItem.’Account Name’, ” “)).Result), ” “, Left(Text(Last(Split(ThisItem.’Account Name’, ” “)).Result), 1))|
Commitment to responsible AI practices
To enable these capabilities, Power Apps is leveraging GPT-3 (Generative Pre-trained Transformer 3) and the PROSE SDK. The use of GPT-3 is part of Microsoft’s strategic collaboration with OpenAI to accelerate breakthroughs in AI—from jointly developing the first supercomputer on Azure to testing and commercializing new AI technologies. The PROSE research and engineering team is a part of Microsoft Research, and develops APIS for program synthesis (programming by examples and natural language), incorporating them into real products. PROSE is already integrated into Power BI, Excel, and Visual Studio.
Power Apps is committed to Microsoft’s responsible AI principles that ensure the use of AI is fair, inclusive, reliable, and respects privacy and security. The use of GPT-3 and PROSE within Power Apps has undergone extensive training with built-in safety controls to ensure that no harmful outputs are generated. Furthermore, GPT-3 and PROSE leverage user input to generate the best formula options that enables an AI augmented developer experience and Power Apps developers maintain complete control of which formulas are applied by selecting the expression from a list of generated options.
Get started with AI powered app development
In preview in June 2021, customers will be able to use these features in both galleries and data tables in Power Apps. To begin with, the capability is optimized when you are working with Search(), Sort(), SortByColumns(), Filter(), FirstN(), LastN() formulas. The simpler and clearer your requests, the better the generated outputs will be. For example, remember that you will likely have given your tables and columns names and these elements map to each other and impact your formulas; so being clear and using the table and column names in your natural language descriptions will result in better accuracy of the generated outputs. Intellisense is also in place to help you complete typing in the table, column, and control names to avoid potential typos and save you time. For preview, these features will initially be available in North America and support English only, but we are excited to expand to additional regions later this year.
Helping all developers build better apps
We know that to make an app powerful, often makers will leverage Power Fx formulas in the Excel-like formula bar. Our goal is to democratize app development for everyone and whilst anyone that is familiar with Excel can get going with Power Apps and Power Fx right away and build awesome apps, makers can still spend time finding the correct function and syntax and refining their formula. In some cases, particularly for complex formulas, refining and tuning can be tedious, and all makers could be spending their time on more strategic and value add tasks. AI powered app development will help all makers accelerate app dev efforts and build more complex solutions.
And this is just the beginning. As we expand the use of AI powered app development throughout Power Apps and Microsoft Power Platform, we will continue to invest in ways to drive enhanced, intuitive, and accelerated experiences for all developers, making the best developers even better.