# Primeiros passos com AI Inference

Este guia conduz você até a primeira resposta de um modelo do AI Inference.

- Implante o template AI Inference Starter Kit como uma aplicação.
- Abra o Workload Domain que a implantação atribui à aplicação.
- Envie uma requisição de chat a um modelo e leia a resposta que ele retorna.
- Altere o modelo que a função chama.

A implantação cria três objetos, e uma requisição passa por todos eles:

1. O **Workload Domain** é o endereço para o qual um cliente envia a requisição. Azion o atribui à aplicação, na forma `xxxxxxxxxx.map.azionedge.net`.
2. A **aplicação** recebe a requisição nesse domínio, aplica suas políticas e chama a função.
3. A **função** contém o código que chama o modelo com `Azion.AI.run` e retorna a resposta do modelo.

Você não escreve nenhum código para chegar à primeira resposta. O template cria os três objetos, e a função que ele instala já serve um endpoint compatível com OpenAI.

---

## Pré-requisitos

Este guia requer uma conta Azion. O template cria todos os outros objetos que o guia usa: a aplicação, a função e o domínio.

---

## Implante o template AI Inference Starter Kit

> **Atenção**
>
> O template usa [Application Accelerator](/pt-br/documentacao/plataforma/applications/#application-accelerator), [Functions](/pt-br/documentacao/plataforma/functions/) e [AI Inference](/pt-br/documentacao/plataforma/ai-inference/). Esses produtos podem gerar custos de uso. Para conhecer os valores, consulte [Preços](/pt-br/documentacao/fundamentos/precos/#ai-inference).

Para criar a aplicação que responde às requisições de modelo:

1. **Abra a página de templates**

   Acesse [Azion Console](https://console.azion.com/) e selecione **+ Create**.

2. **Selecione o template AI Inference Starter Kit**

3. **Dê um nome à aplicação**

   Insira um nome para a aplicação. Por exemplo: `ai-inference-quickstart`.

4. **Selecione Deploy**

Uma janela mostra os logs da implantação enquanto ela é executada. Quando ela termina, a página mostra informações sobre a aplicação e as opções para continuar.

A aplicação existe, com uma função que chama um modelo e um domínio que a serve.

---

## Abra o domínio da aplicação

Azion atribui um Workload Domain à aplicação durante a implantação. O domínio tem a forma `xxxxxxxxxx.map.azionedge.net` e é o endereço para o qual um cliente envia uma requisição de modelo. A página da implantação mostra o link para a aplicação.

Para ver a aplicação no navegador, selecione o link.

> **nota**
>
> A aplicação leva alguns minutos para se propagar aos data centers da Azion. Até que ela se propague, o domínio não resolve e a página não abre. Aguarde alguns minutos e selecione o link novamente.

O domínio resolve, e a aplicação responde nele. Copie o domínio: a requisição ao modelo vai para ele.

---

## Envie uma requisição ao modelo

A aplicação serve um endpoint compatível com OpenAI em `/v1/chat/completions` no domínio dela. O corpo da requisição indica o modelo no campo `model` e carrega a conversa em `messages`.

A função que o template instala chama `Qwen/Qwen3-30B-A3B-Instruct-2507-FP8`. Para enviar uma requisição de chat a ele, substitua `<your-application-domain>` pelo domínio da sua aplicação e execute:

```bash
curl -X POST https://<your-application-domain>/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "Qwen/Qwen3-30B-A3B-Instruct-2507-FP8",
    "stream": false,
    "max_tokens": 1024,
    "temperature": 0.7,
    "top_p": 0.9,
    "messages": [
      { "role": "system", "content": "You are a helpful assistant." },
      { "role": "user", "content": "Name the European capitals." }
    ]
  }'
```

O modelo responde com uma entrada em `choices`, e o texto gerado fica em `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
}
```

Você tem a sua primeira resposta de modelo, servida pela sua própria aplicação.

Azion não emite nenhuma credencial para essa requisição, e o endpoint não carrega autenticação da Azion. Quando você adiciona autenticação à sua aplicação, inclua o header que ela exige, por exemplo `-H "Authorization: Bearer [TOKEN VALUE]"`. Para conhecer todos os campos que um corpo de requisição aceita, consulte [Invocação de modelos](/pt-br/documentacao/plataforma/ai-inference/invocacao-de-modelos/).

---

## (Opcional) Altere o modelo que a função chama

A função que o template implantou contém a chamada ao modelo, e o primeiro argumento de `Azion.AI.run` é o id do modelo. A página da função tem três abas:

- **Main Settings** renomeia a função e altera as configurações básicas dela.
- **Code** contém o código da função.
- **Arguments** define os argumentos que a função usa.

Para chamar um modelo diferente:

1. **Abra a página Functions**

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

2. **Selecione a função**

   Selecione a função que tem o mesmo nome da aplicação.

3. **Na aba Code, altere o id do modelo**

   Na aba **Code**, altere o primeiro argumento de `Azion.AI.run`. A chamada tem esta forma:

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

4. **Selecione Save**

A função chama o modelo cujo id está salvo na aba **Code**. A forma dos ids varia entre os modelos, então copie o id da própria página do modelo em [Modelos de AI](/pt-br/documentacao/plataforma/ai-inference/modelos/).

---

## Próximos passos

- [Modelos de AI](/pt-br/documentacao/plataforma/ai-inference/modelos.md): O id a passar para cada modelo, com o comprimento de contexto, os tipos de entrada e a chamada de ferramentas que ele declara.
- [Invocação de modelos](/pt-br/documentacao/plataforma/ai-inference/invocacao-de-modelos.md): Todos os campos que um corpo de requisição aceita, pelo binding e por HTTP.
- [Como AI Inference funciona](/pt-br/documentacao/plataforma/ai-inference/como-funciona.md): O que executa o modelo e o caminho que uma requisição percorre para alcançá-lo.
- [AI Inference Starter Kit](/pt-br/documentacao/guias/desenvolvimento-de-aplicacoes/frameworks/ai-inference-starter-kit.md): Gerencie a aplicação que o template criou e associe um domínio personalizado a ela.
- [Limites do AI Inference](/pt-br/documentacao/plataforma/ai-inference/limites.md): As condições em que Azion encerra um modelo ou o desprovisiona.
- [Real-Time Events](/pt-br/documentacao/plataforma/real-time-events.md): Leia as requisições e os logs que sua aplicação produz enquanto responde às requisições de modelo.
