Microsoft’s Azure OpenAI Service offers a wide range of pre-built models and tools to help organisations incorporate large-scale artificial intelligence models into their applications. Models available to users includes OpenAI’s GPT-3 base series and a preview version of GPT-4 series.
Here we go through how your organisation can get started with Azure OpenAI service. We will also look at a real-word application of Azure OpenAI Service in a no-code platform and the benefits it has brought to the onboarding process.
An introduction to Azure OpenAI Service
Azure OpenAI Service is an innovative service from Microsoft Azure that provides access to the OpenAI API on Azure with all of Azure's enterprise-grade capabilities.
This service offers customers the ability to experiment, customise and deploy OpenAI models at scale with ease. With GPT and Codex models available, customers can tailor their content to their specific needs. Azure OpenAI Service also provides the necessary tools and customisation capabilities to ensure that customers have control over the generated content.
The true power of Azure OpenAI Service comes from its ability to leverage Azure’s global cloud infrastructure. This means that customers can rely on Azure’s global cloud network to support their toughest workloads, while also having the ability to deploy their content in a specific region.
In just a few steps, users can begin creating and integrating OpenAI models into their projects. The following sections discuss how Audacia has used Azure OpenAI Service on a recent machine learning project working with a leading no-code platform and take you through the steps for successfully integrating Azure OpenAI Service into your own projects. These steps are:
- Onboarding the API into your platform
- Outlining requirements
- Executing your prompt
- Parsing the output code
Using Azure OpenAI service on a machine learning project
Low-code and no-code platforms allow non-technical users to build powerful software applications quickly. Artificial intelligence is being implemented to further enhance this benefit in no-code platforms by enabling users to build projects simply based on text inputs.
The traditional process for building a project involves a user manually adding tables of data and relevant rows containing data. Automating this process has enabled users to get started with their project more quickly and with greater accuracy.
For this project, Audacia has used the completion operation in Azure OpenAI’s API. This operation generates predicted completions based on a provided prompt.
Using this operation, Audacia has been able to create a tool that can quickly build projects based on text inputs. This tool has already proven to be extremely valuable, as it has greatly reduced the time and effort required to create new projects.
How we built this tool with Azure OpenAI Service
1. Onboarding the API into our platform
We first provided the API with detailed information about our no-code platform. This information would give the API of the platform and the project creation process. Key information included:
- Context: We explained to the API that our no-code platform is a work management platform that exists to help users create flexible data models to manage all of their data within their work.
- Parameters: We gave the API some parameters focused around creating relationships between data. For example, if a user has a “company” table and a “deals” table in a CRM project, there should be a parent-child relationship between those two databases. The “contacts” table would be the parent table and the “deals” table would be the child table.
2. Outlining requirements
We clearly outlined the requirements in our prompt to ensure that the API provided appropriate responses. Below are some of the key requirements that we outlined in our prompt:
- Don’t return anything other than JSON: This requirement ensures that the response is in a machine-readable format that can be easily parsed.
- Start your responses with a ‘[‘ and end with a ‘]’: To ensure the response is in a standard JSON array format.
- Maximum number of rows to suggest per table: This limits the number of suggested rows per table to avoid overwhelming the user with too much information.
To further ensure a proper response, we included an example input and output. This example gave the model some context about what it should be producing.
3. Executing the prompt
With an understanding of what the platform and JSON is, the API is able to return an accurate JSON array based on the project database, name and description.
To build a CRM platform, for example, the name is “CRM” and the description is how many tables and rows you want this project to have. Once this prompt has been executed, the API returns JSON code. This code can then be parsed and used to dynamically create the tables and rows required for the CRM platform.
This JSON code contains all the tables and rows for each table, as well as the necessary data relationships that have been suggested by the model. Our next step was to get this information into the platform.
4. Parsing the JSON code
We are now able to take the JSON array and link through it. We created a user script that could be loaded as an interactive button on the platform’s site.
When this button is clicked the script hits an endpoint that has the data around product name and description in the system prompts and is then able to return a suggested project.
To return to our CRM example, the system would create a new entity (table) called “Customer”. It would then loop through all of the data to find the most appropriate attributes based on its understanding of the project requirements and description. The system spins up a new row per entity.
Overcoming the challenges of Azure OpenAI Service
While Azure OpenAI Service offers many benefits, AI/ML projects are not without their challenges. Some challenges that we faced in this project included:
- Data privacy and security: Working with AI services requires sharing data with a third party, which can raise concerns around data privacy and security. While working with AI services raises concerns around data privacy and security, as well as model accuracy, Audacia has taken the necessary precautions to ensure that the sensitive data is properly secured while incorporating the benefits of artificial intelligence.
- Model accuracy: While GPT language models have come a long way in recent years, there is still the potential for errors or inaccurate responses. For example, the native OpenAI API would occasionally produce a response that began with the text “this is a JSON array” rather than pure JSON code. Thorough testing and quality assurance has been performed throughout the project to ensure the accuracy of the model's responses.
- Scalability: As the volume of data and the complexity of the tasks increase, the system needs to be able to handle the increased load. Audacia has addressed this challenge by ensuring that the API is able to handle a high volume of requests. We have also used techniques such as caching and load balancing to improve the performance and scalability of the system.
Using Azure OpenAI Service, Audacia has been able to create a tool that can quickly build projects based on text inputs, offering a wide range of possibilities for automation in a no-code platform. Audacia continues to leverage the power of Azure OpenAI Service to create innovative AI tools. With a team of experienced developers who have a deep understanding of the artificial intelligence and machine learning principles, Audacia can deliver solutions tailored to meet the unique needs of each client.
The API’s ease of use and customisation options, along with its ability to process vast amounts of data quickly and accurately, make it a valuable asset for our no-code platform.
Audacia is a leading software development company based in the UK, headquartered in Leeds. Audacia is adept at delivering AI consulting & machine learning services for leading organisations
View more technical insights from our teams of consultants, business analysts, developers and testers on our technology insights blog.