Azure OpenAI development in Microsoft Foundry

Azure OpenAI runs OpenAI's current models inside Microsoft Azure, as part of Microsoft Foundry. You deploy a model into your own Azure resource and call it with your Azure identity, network and region settings. We build the application around it: deployments, content filters, private access, retrieval with Azure AI Search and the checks on what the model is allowed to say.
Azure OpenAI
  • Model deployments chosen for region and data rules
  • Content filters, prompt shields and output guards
  • Private endpoints and keyless managed identity
  • Retrieval over your content with Azure AI Search

When Azure OpenAI is the right choice

Azure OpenAI suits teams that already run on Azure or must keep AI inside it (for the platform itself, see Azure development):

  • You want the model inside your Azure tenant. Microsoft hosts it in Azure, and it does not interact with services run by OpenAI.
  • You need to control where prompts are processed. Data Zone deployments keep processing in the US, EU or Asia Pacific zone, and Standard deployments keep it in your Azure geography.
  • Your security team wants no public endpoint and no stored keys. You can disable public access, use private endpoints and sign in with a managed identity.
  • You want answers grounded in your content with Azure AI Search, using hybrid keyword and vector queries and document-level security trimming.

When Azure OpenAI is not the right choice

Plain OpenAI is often simpler. Plan around these before you commit:

  • You do not use Azure and have no rule that requires it. The OpenAI API needs no subscription, resource, deployment or quota setup.
  • You need the newest models in a specific region on day one. New models reach Global deployments first, and geography-based deployments arrive last with no guaranteed date.
  • You expect to turn the content filters off. Default filters apply to every deployment, and turning them off for completions needs Microsoft's approval.
  • You cannot plan for quota. Quota is assigned to your subscription, and an increase is a request that Microsoft can decline.

What we build with Azure OpenAI

Typical projects, described in general terms.

Grounded support chatbots

Assistants that check approved answers first and otherwise answer only from passages retrieved from your content.

Retrieval with Azure AI Search

Indexes with chunking and vectors, and hybrid keyword and vector queries that find the right passages.

Filters and output guards

Content filter settings per deployment, plus our own checks that remove claims, prices or links the bot should not give.

Private and keyless access

Private endpoints, public access turned off and managed identity with the right role instead of API keys.

Deployments and quota

Deployment types chosen for your data rules and traffic, with quota and retries planned for peak load.

Moving from OpenAI

Code moved from the OpenAI API to Azure OpenAI through the v1 API, which works with the OpenAI client libraries.

What Azure OpenAI gives you

You create a resource in Microsoft Foundry and deploy a model to it. Your code calls the deployment by its name, which can differ from the model name. The deployment type sets where prompts are processed: Global types may use any Azure region, Data Zone types stay within the US, EU or Asia Pacific zone, and Standard types stay within your Azure geography. Data stored at rest stays in your chosen geography in every case. Microsoft says prompts and completions are not available to OpenAI and are not used to train the models. Content filters check prompts and completions for hate, sexual content, violence and self-harm at levels you can set, and optional prompt shields flag jailbreak attempts and instructions hidden in documents. The v1 API works with the OpenAI client libraries with minimal code changes and no monthly api-version.

What an Azure OpenAI build needs beyond the model

  • Identity: Microsoft Entra ID instead of keys. The app's managed identity gets the Cognitive Services OpenAI User role, and the resource needs a custom subdomain for token sign-in.
  • Networking: public access disabled, a private endpoint in your virtual network and private DNS, so only your network can reach the model.
  • Filtered results: a blocked prompt returns HTTP 400, and a filtered answer ends with finish_reason set to content_filter. We handle both and show the user a clear message. If the filter service is unavailable, the request completes unfiltered with an error noted in the response, so we check for that too.
  • Retrieval: Azure AI Search indexes your content in chunks with vectors. Hybrid queries run keyword and vector search together, and semantic ranking can reorder the results. Security trimming keeps users to the documents they may see.
  • Our own guards: filters catch harmful content, not business mistakes. We add checks for what your bot must never say, such as health claims, quoted prices or links to other sites.
  • Quota and retries: quota is set per subscription and model. We retry 429 errors, increase traffic gradually and consider provisioned throughput when latency must stay steady.

How we work

  1. Agree the data rules first: region, data zone, network and identity needs decide the deployment type and setup
  2. Build retrieval before the chat: index your content and test that the right passages come back for real questions
  3. Set filters and guards: content filter levels, prompt shields and your own output checks before any customer sees an answer
  4. Hand over properly: deployments, roles, network setup, index design and guard rules documented, with notes on reading a filtered or failed request

Frequently asked questions

Is Azure OpenAI the same as the OpenAI API?

It runs OpenAI models, but Microsoft hosts them in Azure and they do not interact with services run by OpenAI. You deploy a model to your own resource and call it by deployment name. The v1 API lets the OpenAI client libraries call it with minimal code changes.

Can we keep our data in the EU or the US?

Data stored at rest stays in your chosen Azure geography. For processing, Data Zone deployments stay within the US, EU or Asia Pacific zone, and Standard deployments stay within your geography. Global deployments may process prompts in any Azure region.

Can we turn off the content filters?

Every deployment has default filters, and you can make them stricter or more lenient. Turning filtering off or to annotate only for completions requires approval for modified content filters from Microsoft.

When is plain OpenAI the better choice?

When you do not run on Azure and have no rule that requires it. The OpenAI API needs no Azure subscription, resource, deployment or quota request, and new models reach it without waiting for a regional deployment.

How can we work together?

There are three ways, on the same terms:

  • Dedicated team, best for ongoing work: interview the developers, then they work on your project full or part time.
  • Fixed scope, best when requirements are clear: we agree the scope and the price up front, and deliver against it.
  • Time and material, best when the scope will change: you pay for the time used and can change priorities as the work goes on.

Whichever you choose, we sign an NDA before work starts, you own the code we write, and every change is reviewed in your repository.

Can I interview the developers before we start?

Yes. For a dedicated team you meet the developers in an online call and interview them before they join your project.

Building on Azure OpenAI?

Tell us your data rules, the content the assistant should use and who will read the answers. We will say what to set up first and whether plain OpenAI would be simpler.

Tell us about your project

Tell us what you need built, fixed or improved. We come back with questions, a suggested approach and an estimate.