DEV Community

Cover image for Como Testar a API GLM-5.3-Flash no Apidog
Lucas
Lucas

Posted on Originally published at apidog.com

Como Testar a API GLM-5.3-Flash no Apidog

Teste o GLM-5.3-Flash antes de trocar o modelo da sua aplicação

Trocar um LLM na sua aplicação exige apenas alterar uma string, mas o impacto pode ser muito maior: latência, custo por token, estabilidade do formato de saída, chamadas de ferramentas e suporte ao pipeline de imagens podem mudar.

Experimente o Apidog hoje

O GLM-5.3-Flash deixa essas compensações claras. Ele custa aproximadamente nove vezes menos que o GLM-5.3, aceita imagens nativamente — algo que o GLM-5.3 não faz — e gera respostas a cerca de metade da velocidade. Para decidir qual modelo atende melhor ao seu caso, execute suas próprias requisições contra os dois.

Este guia mostra como criar no Apidog uma coleção de testes reutilizável para a API GLM-5.3-Flash, incluindo:

  • Chamadas de texto
  • Chamadas de imagem
  • Chamadas de ferramenta
  • Asserções
  • Comparação com o modelo maior

Por que não usar apenas curl?

Você pode testar o endpoint com curl; o guia da API mostra como fazer isso. Porém, duas limitações aparecem depois da primeira chamada.

Cargas de imagem em Base64. Uma URL de dados para uma captura de tela pode ter milhares de caracteres. Colá-la no terminal gera um comando difícil de ler, editar ou reutilizar. Em testes multimodais, o histórico do shell deixa de ser uma ferramenta prática.

Nenhuma asserção. Uma resposta exibida pelo curl confirma que a chamada foi concluída, mas não que ela ainda contém os campos usados pela sua aplicação. Ao trocar de modelo, essa diferença é essencial.

Uma coleção salva resolve os dois problemas: a carga útil fica em uma requisição editável, e as asserções são executadas em todas as execuções.

Configure o ambiente

Crie um ambiente com os valores que mudam entre as execuções. Manter o ID do modelo em uma variável permite redirecionar toda a coleção para outro modelo.

Variável Valor
base_url https://api.z.ai/api/paas/v4
api_key sua chave Z.ai
model glm-5.3-flash

Armazene a chave como uma variável de ambiente, em vez de inseri-la diretamente nos cabeçalhos. Assim, ela não será incluída em uma coleção exportada ou compartilhada — nem acabará acidentalmente em um commit.

Requisição 1: conclusão de texto

Crie uma requisição POST para {{base_url}}/chat/completions.

Cabeçalhos:

[REDACTED CREDENTIAL] {{api_key}}
Content-Type: application/json
Enter fullscreen mode Exit fullscreen mode

Corpo:

{
  "model": "{{model}}",
  "messages": [
    {"role": "user", "content": "Responda com exatamente: OK"}
  ],
  "reasoning_effort": "low"
}
Enter fullscreen mode Exit fullscreen mode

O parâmetro reasoning_effort é importante. O padrão deste modelo é max, que cobra o raciocínio como tokens de saída. Para uma verificação de conectividade, use low para evitar consumo desnecessário.

Adicione estas asserções:

  • O código de status é igual a 200
  • choices[0].message.content existe
  • choices[0].finish_reason é igual a stop
  • usage.total_tokens existe

A asserção de finish_reason costuma ser esquecida. O valor length indica que a resposta foi truncada no limite de saída, em vez de concluída. Como o limite máximo de saída do modelo é inconsistente entre as fontes, vale a pena detectar esse caso explicitamente.

Requisição 2: chamada de imagem

Esta requisição testa a capacidade multimodal que o GLM-5.3 não oferece nativamente.

O endpoint permanece o mesmo, mas content passa a ser um array de blocos tipados:

{
  "model": "{{model}}",
  "messages": [
    {
      "role": "user",
      "content": [
        {"type": "text", "text": "Qual é a cor da forma dominante nesta imagem? Responda com uma palavra."},
        {"type": "image_url", "image_url": {"url": "{{test_image_url}}"}}
      ]
    }
  ],
  "reasoning_effort": "low"
}
Enter fullscreen mode Exit fullscreen mode

Adicione test_image_url ao ambiente e aponte-o para uma imagem estável, publicamente acessível e cuja resposta correta você conheça. Uma pergunta determinística sobre uma imagem fixa transforma a demonstração em um teste de regressão.

Para imagens locais, use uma URL de dados Base64 no mesmo campo:

data:image/png;base64,iVBORw0KGgo...
Enter fullscreen mode Exit fullscreen mode

Armazene a URL como variável de ambiente para manter o corpo legível.

Asserções recomendadas:

  • O código de status é igual a 200
  • choices[0].message.content contém a resposta conhecida
  • usage.prompt_tokens é maior que a contagem da requisição somente de texto

A última asserção funciona como um canário. Imagens consomem tokens de entrada. Se a contagem de tokens do prompt não aumentar, a imagem não foi processada — mesmo que a API retorne 200.

Veja mais detalhes sobre o caminho de visão e seus modos de falha no guia de visão do GLM-5.3-Flash.

Requisição 3: chamada de ferramenta

Se a sua aplicação usa chamadas de função, teste esse fluxo explicitamente. O formato das chamadas de ferramenta é uma das partes mais sensíveis à versão e uma das mais prováveis de quebrar após uma atualização do provedor.

{
  "model": "{{model}}",
  "messages": [
    {"role": "user", "content": "O serviço checkout-api está saudável?"}
  ],
  "tools": [
    {
      "type": "function",
      "function": {
        "name": "get_deployment_status",
        "description": "Retorna o status atual de um deployment nomeado.",
        "parameters": {
          "type": "object",
          "properties": {
            "service": {"type": "string", "description": "O nome do serviço."}
          },
          "required": ["service"]
        }
      }
    }
  ]
}
Enter fullscreen mode Exit fullscreen mode

Asserções:

  • choices[0].message.tool_calls existe e não está vazio
  • choices[0].message.tool_calls[0].function.name é igual a get_deployment_status
  • choices[0].finish_reason é igual a tool_calls

Verificar o nome da função, em vez de apenas confirmar a presença de uma chamada, detecta um erro mais sutil: o modelo chamar a ferramenta errada. Essa asserção continua útil quando você adicionar outras ferramentas.

Se você gera definições de ferramentas a partir de uma API existente, o guia transformar uma especificação OpenAPI em ferramentas de agente mostra como evitar a criação manual dos esquemas.

Compare com o GLM-5.3

A variável de ambiente model permite comparar os modelos sem recriar as requisições.

Duplique o ambiente, altere model para glm-5.3 e execute a mesma coleção. Compare:

  • Correção: as asserções continuam passando? A requisição de imagem não passará, pois o GLM-5.3 não aceita imagens nativamente. Isso é uma descoberta sobre a capacidade do modelo, não um teste quebrado.
  • Latência: o Apidog informa o tempo de resposta de cada requisição. Em saídas mais longas, espere que o GLM-5.3 termine antes: ele gera aproximadamente 86 tokens por segundo, contra 49 do Flash.
  • Custo: usage fornece prompt_tokens e completion_tokens. Multiplique essas contagens pela taxa de cada modelo para obter o custo real por requisição, em vez de usar uma cifra de marketing combinada. Consulte as taxas atuais na análise de preços e veja os casos de uso de cada modelo na comparação completa.

Observe completion_tokens em todas as configurações de reasoning_effort. Com o padrão max, os tokens de raciocínio são cobrados como saída. Assim, uma resposta visível curta pode ter uma contagem de conclusão muito maior. Execute o mesmo prompt com low, high e max para descobrir o que a sua carga de trabalho realmente precisa.

Teste um deployment local

Se você hospeda os pesos por conta própria, tanto o vLLM quanto o SGLang expõem endpoints compatíveis com OpenAI. Altere base_url para o seu servidor e execute a mesma coleção.

Esse é um dos usos mais valiosos do conjunto de testes. Uma compilação quantizada pode passar em um teste básico de chat e ainda falhar com esquemas de ferramentas ou degradar com imagens — exatamente os problemas que aparecem em produção, não em um teste de fumaça. O guia de execução local cobre a implantação.

Execute no CI

Quando a coleção estiver estável, execute-a em um agendamento ou no seu pipeline de CI. Gatilhos úteis:

  • Antes de uma migração de modelo, como sinal de prosseguir ou interromper
  • Em um agendamento, para detectar alterações do provedor sem aviso
  • Após atualizações de dependências, que podem alterar a serialização das requisições

Os provedores podem atualizar os modelos por trás de IDs estáveis. Uma execução agendada revela mudanças de comportamento antes que elas cheguem aos usuários.

Vá além do happy path

Depois que os testes básicos passarem, adicione:

  • Uma requisição com o tamanho de contexto usado em produção. O comportamento com 500 mil tokens não é garantido pelo comportamento com 5 mil.
  • Entradas malformadas, para exercitar o tratamento de erros.
  • Uma resposta de limite de taxa, se possível, para verificar a lógica de repetição.
  • Múltiplas imagens, se a aplicação usar esse recurso. Cada imagem precisa do próprio bloco image_url.
  • Streaming, se utilizado, pois o formato da resposta é diferente do de uma conclusão padrão.

Conclusão

O valor não está nas requisições individuais, mas na repetibilidade. Uma escolha de modelo que pode ser retestada em trinta segundos é uma decisão que pode ser revisitada quando os preços mudarem em 9 de setembro, quando a Z.ai lançar uma nova revisão ou quando alguém propor a migração para outro provedor.

O Apidog é gratuito para começar. Importar um esquema compatível com OpenAI fornece grande parte da configuração sem exigir que você crie cada requisição manualmente.

A coleção final transforma a próxima troca de modelo em uma diferença mensurável, não em um salto de fé.

FAQ

  • Preciso de um plano pago do Apidog? Não. Uma coleção com variáveis de ambiente e asserções funciona na camada gratuita.
  • Como testo imagens Base64 sem deixar o corpo ilegível? Armazene a URL de dados como uma variável de ambiente e referencie-a no corpo como {{test_image_url}}.
  • Posso testar o endpoint de codificação da mesma forma? Sim. Altere base_url para https://api.z.ai/api/coding/paas/v4. Esse endpoint difere da API padrão, como explicado no guia sobre Claude Code e Cline.
  • Esses testes funcionam com outros provedores? Na maioria dos casos. OpenRouter, Cloudflare Workers AI e Vercel AI Gateway oferecem superfícies compatíveis com OpenAI. Altere base_url e o namespace do ID do modelo.
  • Como crio asserções para respostas não determinísticas? Valide estrutura e restrições, não o texto exato: presença de campos, tipos, contagens de tokens, finish_reason e contenção de substrings para perguntas com resposta conhecida.

Top comments (0)