What's New: Designing and Developing Generative AI Experiences for Your Apps (2023 Release Wave 2)
Generative AI developer toolkit for Business Central Copilot (2023 release wave 2): the prompt dialogue page type, system actions, the AI module for Azure OpenAI (text, chat, embeddings), capability registration, and admin and responsible AI controls. It is available now in Insider builds. A minor update during wave 2 will allow deployment to Business Central online.
- Introduction to Generative AI and Co-pilot
- Why Developer Tools Matter
- Toolkit Scope and Availability
- Project Plan Generation Demo
- User Experience Design and Page Types
- Prompt Dialogue Implementation and Preview Badge
- Output Display and Keep/Discard Actions
- Advanced Features: Regenerate, Options, History, and File Attachment
- AI Module Overview, Prerequisites, and Copilot Capability Registration
- Azure OpenAI Objects and API Methods
- Registering Copilot Capabilities and Authorization Setup
- Generation Code and Meta Prompts
- Optional Parameters and Copilot Administration Page
- Data Governance, Responsible AI, and Safety Mechanisms
- Summary and Built-in Capabilities
Overview
The session explains how partners can build non-conversational generative AI features into Business Central online extensions. It walks through a draft project plan example for Jobs, showing the prompt dialogue page type, the generate, regenerate and attach system actions, prompt options, generation history through a temporary source table, and keep/discard handling.
It then covers the AI module: registering a copilot capability, setting up Azure OpenAI authorization, text completion, chat completion and embeddings, meta prompts and optional parameters. It closes with the Copilot and AI capabilities administration page, regional Azure OpenAI handling, data governance, responsible AI, telemetry and user feedback.
Key points
- The toolkit is available now in Insider builds for offline compile, run and test. A minor update during 2023 release wave 2 will allow deployment to Business Central online and to AppSource.
- It targets Business Central online (SaaS) only and uses Azure OpenAI. It is for non-conversational features with human review, not chatbots.
- The prompt dialogue is a new page type value. It is not extensible, and Microsoft advises that most generative AI features start as a preview, using the IsPreview badge.
- Each extension must register its copilot capability through the copilot capability codeunit and by extending the capability enum. Otherwise an error is thrown.
- The AI module supports text completion, chat completion and embeddings. It does not support DALL-E image generation or Whisper. Embeddings have no optional parameters, and the parameter n is not supported.
- Do not hardcode Azure OpenAI keys in extensions. Use isolated storage or the AppSource key vault. Each deployment is a specific model type.
- There is no master kill switch for Copilot, which is on by default. Admins can deactivate individual capabilities, and customers in regions without Azure OpenAI must opt in to out-of-region services.
Features
| Feature | Status | At | Evidence |
|---|---|---|---|
| Co-pilot for Business Central | status not stated, demoed | 0:30 | |
| Generative AI Developer Toolkit | preview, demoed | 1:10 | “you can get Hands-On right now if you’re an Insider using Insider builds you already have access to the toolkit today” (5:52) |
| Prompt Dialogue Page Type | status not stated, demoed | 10:28 | |
| Sparkle Image Property for Co-pilot Actions | status not stated | 9:48 | |
| System Actions for Generate | status not stated, demoed | 13:21 | |
| Progress Dialogue for Generation | status not stated, demoed | 14:07 | |
| Draft Project Plan Feature | status not stated, demoed | 6:32 | |
| Data Caption Expression for Prompt Display | status not stated, demoed | 15:21 | |
| OnQueryClosedPage Trigger for Keep/Discard | status not stated, demoed | 16:01 | |
| Override Keep/Discard Captions with System Actions | status not stated, demoed | 16:34 | |
| Edit Prompt Before Keep/Discard | status not stated, demoed | 17:15 | |
| Regenerate System Action | status not stated, demoed | 18:04 | |
| Prompt Options Area | status not stated, demoed | 18:44 | |
| Source Table for Generation History | status not stated, demoed | 19:25 | |
| Attach System Action for File Upload | status not stated, demoed | 20:18 | |
| Direct Generation with Prompt Mode | status not stated, demoed | 20:39 | |
| AI Module for Copilot Generation | status not stated, demoed | 21:40 | |
| Copilot Capability Registration | status not stated, demoed | 23:16 | |
| Azure OpenAI Text Completion | status not stated, demoed | 25:54 | |
| Azure OpenAI Chat Completions | status not stated, demoed | 26:14 | |
| Embeddings with Azure OpenAI | status not stated | 26:35 | |
| Azure OpenAI Operation Response | status not stated, demoed | 27:16 | |
| Azure OpenAI Authorization | status not stated, demoed | 32:14 | |
| Meta Prompts for AI Generation | status not stated, demoed | 34:07 | |
| Optional Parameters for AI Generation | status not stated, demoed | 37:42 | |
| Copilot and AI Capabilities Administration Page | status not stated, demoed | 39:23 | |
| Azure OpenAI Regional Deployment with Automatic Detection | status not stated, demoed | 40:38 | |
| Copilot On by Default with No Master Kill Switch | status not stated | 42:38 | |
| Responsible AI Principles and Guidelines | status not stated | 42:51 | |
| AI-generated Content Disclaimer on Output Screens | status not stated | 43:31 | |
| User Feedback Through Prompt Dialogue | status not stated, demoed | 45:33 | |
| Telemetry Signals for Usage and Adoption Tracking | status not stated | 45:53 | |
| Prompt Engineering with Safety Mechanisms | status not stated | 46:13 | |
| Marketing Text Suggestions Built-in Capability | status not stated | 47:57 | |
| Bank Account Reconciliation Assistance Built-in Capability | status not stated | 47:57 |
AL objects mentioned
As heard in the captions. A name that matches one object page by exact type and name links to it; the others stay as named.
- page “prompt dialogue” at 10:28
- other “jobs” at 6:52
- other “Azure OpenAI Service” at 4:33
- codeunit 7773 “Copilot Capability” at 23:57
- enum “Copilot Capability Availability” at 24:22
- enum “Copilot Capability” at 24:34
- other “Azure OpenAI” at 25:54
- other “Azure OpenAI Operation Response” at 25:54
- other “Model Type” at 25:54
- other “Azure OpenAI Text Completion Parameters” at 26:14
- other “Azure OpenAI Chat Messages” at 26:14
- other “Azure OpenAI Chat Completion Parameters” at 26:14
- other “Azure OpenAI Chat Roles” at 26:35
- enum “AED Open AI Chat Roles” at 26:35
- other “AED Open AI Object” at 26:55
- other “AED Open AI Chat Messages Object” at 29:05
- codeunit “Install Code Unit” at 31:13
- other “Azure Open AI Set Authorization” at 33:26
- page “Copilot and AI Capabilities Page” at 39:23
Not found in BC28-30: page “prompt dialogue”, enum “Copilot Capability Availability”, enum “Copilot Capability”, enum “AED Open AI Chat Roles”, codeunit “Install Code Unit”, page “Copilot and AI Capabilities Page”.
Quotes
- 0:30 “in March 2023 we introduced you to Dynamics 365 co-pilot the world’s first AI powered assistant across Erp and CRM”
- 4:53 “assist to human so we’re not building autopilots that automatically do a whole bunch of things outside of human control here we’re putting humans”
- 5:13 “this is not a toolkit for you to build chat Bots and chat-like experiences”
- 5:52 “you can get Hands-On right now if you’re an Insider using Insider builds you already have access to the toolkit today which means you”
- 6:12 “throughout the wave 2023 release Wave 2 we’re going to publish a minor update that will include toolkit as well what this means concretely”
- 10:48 “the first is the page type property where we’ve added a new prompt dialogue value with this you get uh all of the responsible”
- 11:50 “we’re all still learning how to apply generative AI in a business context uh so we really want to empower you to start start”
- 13:21 “this new uh system action called generate in a new area called system actions now this new Al construct allows the platform to provide”
- 14:07 “this doesn’t require any work from you as an Al developer you don’t need to choose when to start and stop your own progress”
- 15:21 “we’re using the data caption expression to show the user’s natural language prompt input here the idea here being that we want this to”
- 18:24 “there is a way to add a regenerate button down in the command bar this is again a new system action called regenerate that”
- 22:00 “it supports the aure open AI service so specifically the llms like text chat and embeddings so it does not uh allow image generation”
- 25:34 “each extension must register with the co-pilot capability code unit um for the enum uh otherwise an error will be thrown that the capability”
- 26:14 “we have the a open AI text completion parameters these are optional parameters that can be modified for uh generation and and also chat”
- 27:36 “text completion and embeddings do return values so in this case of text completion it return returns a text and this is the exact”
- 28:35 “we support three embeddings Tech completions and chat completions”
- 29:47 “when you set a primary system message it will always be included in regardless of the length that you specify”
- 33:46 “each deployment uh is a specific model so not all models would support say text and chat um M might uh support only text”
- 35:20 “metap problem should Define the model’s profile I mean should what it does and what it cannot do”
- 38:23 “not all parameters are support for example n and n is basically the number of generations um that the model should return”
- 39:23 “we believe that customers should remain in control of their data and of their AI experiences”
- 40:04 “capabilities also always start off as active but we’ve given administrators control to actually deactivate a feature of their choosing”
- 41:18 “admins will need to do a one-time optin uh to basically consent to having business Central contact that Azure open AI service outside of”
- 42:38 “there is no master kill switch for co-pilot co-pilot is now on by default it’s available by default as part of business Central it’s”
- 43:51 “AI generated content may be incorrect right that disclaimer will always show up there you don’t need to add it yourselves”
- 46:13 “we also provide you with that Telemetry signal so you can understand how is your feature being used”
- 47:04 “new developer tools to build co-pilot capabilities in business Central they’re available already right now with Insider bills”
Disclaimers in the video
- 5:52 preview: you can get Hands-On right now if you’re an Insider using Insider builds you already have access to the toolkit today
- 11:29 preview: we’re using this is preview equals true property that’s new specific for this page type
- 11:50 preview: we really want to empower you to start start small and grow from there and use the uh preview badge on this dialogue to really communicate to your customers that you’re still in that stage
- 24:22 preview: two states uh whether your capability is in preview or it’s generally available
- 36:21 other: this is only an example it does not Encompass like limitations Behavioral safeguards or examples of intended Behavior which you should do
- 40:38 other: if a customer is in a geography in a region where they have Azure openi service deployed um then there is no additional setup that they need to do to start using co-pilot
- 46:54 coming-later: we’re actively working right now on how can we provide um additional safeties ourselves through the toolkit you’ll hear about that more later
Presenters (as heard): Mike, Cody, Derek, Dave, Mike Bor Cardano, Cody Hoover.
