---
name: azion-deploy-the-ai-inference-starter-kit-template
description: >-
  Deploy the AI Inference Starter Kit template from Azion Console, then update the function it installs and manage the application it creates.
---

# Deploy the AI Inference Starter Kit template

You can deploy the **AI Inference Starter Kit** template and manage what it creates from Azion Console. The template creates an application with a function and a domain, and the function serves an OpenAI-compatible endpoint.

The [AI Inference quickstart](/en/documentation/platform/ai-inference/quickstart/) covers the same deployment and adds a first request to the model.

## Prerequisites

The template uses [Application Accelerator](/en/documentation/platform/applications/#application-accelerator), [Functions](/en/documentation/platform/functions/), and [AI Inference](/en/documentation/platform/ai-inference/), which can generate usage-related costs. For the rates, refer to [Pricing](/en/documentation/fundamentals/pricing/).

---

## Deploy the template

To create the application, the function, and the domain from one template:

1. **Access Azion Console**

   Access [Azion Console](https://console.azion.com/) and select **+ Create**.

2. **Select the AI Inference Starter Kit template**

   Select the **AI Inference Starter Kit** template.

3. **Enter a name for the application**

   Enter a name for the application.

4. **Select Deploy**

   Select **Deploy**.

A window shows the deployment logs while the deployment runs. When it finishes, the page shows information about the application and the options to continue.

> **Note**
>
> The deployment page shows a link to the application. The application takes a few minutes to propagate to Azion's data centers, and the domain does not resolve until it does. Wait a few minutes, then select the link again.

The application answers on a Workload Domain in the form `xxxxxxxxxx.map.azionedge.net/`, and it serves an OpenAI-compatible endpoint on that domain. For the path a request takes from the domain to the model, refer to the architecture of [Add AI features to existing applications](/en/documentation/use-cases/build-and-run-ai-workloads/add-ai-features-to-existing-applications/).

---

## Update the function

The function the template installs holds the call to the model, and its page carries three tabs:

- **Main Settings** renames the function and changes its basic settings.
- **Code** holds the function code.
- **Arguments** defines the arguments the function uses.

To change the function:

1. **Access Functions**

   Access [Azion Console](https://console.azion.com/) > **Products menu** > **Functions**.

2. **Select the function**

   Select the function that carries the same name as the application. The list is alphabetical, and the **search bar** filters it by **Function Name** only.

3. **Open the tab that holds the setting**

   Open the tab that holds the setting you want to change.

4. **Select Save**

   Select **Save**.

The function has the changes you saved. For every setting a function holds, refer to [Functions](/en/documentation/platform/functions/).

The **Code** tab opens on a function ready to run. It receives a POST request, calls the model, and returns the response. The call below sets `stream` to `false`, so the model returns the response whole:

```ts
const modelResponse = await Azion.AI.run("Qwen/Qwen3-30B-A3B-Instruct-2507-FP8", {
  "stream": false,
  "messages": [
    {
      "role": "system",
      "content": "You are a helpful assistant."
    },
    {
      "role": "user",
      "content": "Name the European capitals."
    }
  ]
})
return modelResponse
```

The model answers with one entry in `choices`, and the generated text sits at `choices[0].message.content`:

```json
{
  "id": "chatcmpl-example",
  "object": "chat.completion",
  "created": 1767268800,
  "model": "Qwen/Qwen3-30B-A3B-Instruct-2507-FP8",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "reasoning_content": null,
        "content": "Sure! Here is a list of some European capitals...",
        "tool_calls": []
      },
      "logprobs": null,
      "finish_reason": "stop",
      "stop_reason": null
    }
  ],
  "usage": {
    "prompt_tokens": 9,
    "total_tokens": 527,
    "completion_tokens": 518,
    "prompt_tokens_details": null
  },
  "prompt_logprobs": null
}
```

This example calls the [Qwen3 model](/en/documentation/platform/ai-inference/qwen3-30ba3b/). To call another model, change the first argument of `Azion.AI.run` to its id, listed in [AI models](/en/documentation/platform/ai-inference/models/). The body also accepts `stream`, which streams the response instead of returning it whole. For every field the body accepts, refer to [Model invocation](/en/documentation/platform/ai-inference/model-invocation/).

Before you change the call, read [AI Inference best practices](/en/documentation/platform/ai-inference/best-practices/) for the request patterns Azion recommends, and [AI Inference limits](/en/documentation/platform/ai-inference/limits/) for the conditions under which Azion terminates a model.

---

## Manage the application

The application page holds every setting the deployment created, and you can change any of them. To open it:

1. **Access Applications**

   Access [Azion Console](https://console.azion.com/) > **Products menu** > **Applications**.

2. **Select the application**

   Select the application that carries the name you entered during the deployment. The list is alphabetical, and the **search bar** filters it by **Application Name** only.

The application page opens on the settings you can adjust. For what each setting does, refer to [Applications quickstart](/en/documentation/platform/applications/quickstart/).

---

## Next steps

- [AI Inference quickstart](/en/documentation/platform/ai-inference/quickstart.md): Send a first request to the model through the domain the deployment assigned.
- [Configure a domain](/en/documentation/guides/platform/migration/configure-a-domain.md): Add a custom domain so users reach the application through your own address instead of the assigned one.
