- Create an Entra ID app registration
- Create an Azure OpenAI resource
- Create a Speech service in a region that supports Fast Transcription API
- Create an API Management
Entra ID -> App registration -> SPA Redirect URI: add http://localhost:5200
Follow this documentation to create the API managment
<policies>
<inbound>
<set-backend-service id="apim-generated-policy" backend-id="{{will_be_auto_populated_when_creating_the_endpoint}}" />
<!-- validate-azure-ad-token rule checks if the client sent a valid Entra ID token. Customize to meet your authorization goals.
Ref: https://learn.microsoft.com/en-us/azure/api-management/validate-azure-ad-token-policy -->
<validate-azure-ad-token tenant-id="{{replace_with_your_tenant_id}}">
<client-application-ids>
<application-id>{{replace_with_your_client_id}}</application-id>
</client-application-ids>
</validate-azure-ad-token>
<!-- authentication-managed-identity rule replaces the Entra ID token in the Authorization header with a managed identity token. -->
<authentication-managed-identity resource="https://cognitiveservices.azure.com/" />
<cors>
<allowed-origins>
<origin>*</origin>
</allowed-origins>
<allowed-methods>
<method>*</method>
</allowed-methods>
<allowed-headers>
<header>*</header>
</allowed-headers>
<expose-headers>
<header>*</header>
</expose-headers>
</cors>
<base />
</inbound>
<backend>
<base />
</backend>
<outbound>
<base />
</outbound>
<on-error>
<base />
</on-error>
</policies>
Make sure to enable HTTP/2 protocol support in the API Management. Search for protocol
to find the relevant settting.
<policies>
<inbound>
<validate-azure-ad-token tenant-id="{{replace_with_your_tenant_id}}">
<client-application-ids>
<application-id>{{replace_with_your_client_id}}</application-id>
</client-application-ids>
</validate-azure-ad-token>
<set-header name="Ocp-Apim-Subscription-Key" exists-action="override">
<value>{{EastUSSpeechKey}}</value>
</set-header>
<cors>
<allowed-origins>
<origin>*</origin>
</allowed-origins>
<allowed-methods>
<method>GET</method>
<method>POST</method>
</allowed-methods>
<allowed-headers>
<header>*</header>
</allowed-headers>
</cors>
<base />
</inbound>
<backend>
<base />
</backend>
<outbound>
<base />
</outbound>
<on-error>
<base />
</on-error>
</policies>
- Generate Fluent icon documentation: https://github.com/aipx-proto/fluentui-system-icons
- Generate Fluent component documentation: https://github.com/aipx-proto/fluent-doc-gen
- React VM to run LLM generated code without bloat: https://github.com/aipx-proto/auto-ide
- Small set of Fluent UI abstractions for AI Studio: https://github.com/aipx-proto/auto-ide
- This is the top level project to tie the above together into a single user experience. Focusing on multi-modalities:
- Chat
- Voice control
- Pasting image
- Direct code editing