DEV Community

Cover image for Apidog에서 GLM-5.3-Flash API 테스트 방법
Rihpig
Rihpig

Posted on Originally published at apidog.com

Apidog에서 GLM-5.3-Flash API 테스트 방법

애플리케이션에서 LLM을 교체하는 일은 모델 ID 한 줄을 바꾸는 것처럼 보이지만, 응답 지연 시간, 토큰 비용, 출력 형식 안정성, 도구 호출, 이미지 파이프라인까지 바꿀 수 있습니다.

오늘 Apidog 시작하기

GLM-5.3-Flash는 GLM-5.3보다 약 9배 저렴하고, GLM-5.3이 기본 지원하지 않는 이미지를 처리하며, 생성 속도는 약 절반입니다. 어떤 모델이 적합한지 확인하려면 동일한 요청을 두 모델에서 실행해 비교해야 합니다.

이 글에서는 Apidog로 GLM-5.3-Flash API 테스트 컬렉션을 구성합니다. 텍스트·이미지·도구 호출, 응답 어설션, GLM-5.3 비교 실행까지 포함합니다.

왜 curl만으로는 부족한가요?

curl은 첫 호출 확인에는 충분합니다. API 가이드도 curl 사용법을 다룹니다. 하지만 반복 테스트에는 두 가지 문제가 있습니다.

  • Base64 이미지 페이로드: 데이터 URL은 수천 자에 이릅니다. 터미널 히스토리에 남겨도 읽거나 수정하거나 재실행하기 어렵습니다.
  • 응답 검증 부재: curl은 응답을 출력할 뿐, 애플리케이션이 필요한 필드와 형식을 여전히 받는지는 검증하지 않습니다.

저장된 컬렉션에서는 페이로드를 편집 가능한 요청으로 관리하고, 어설션을 매 실행마다 적용할 수 있습니다.

환경 설정

모델과 실행 환경에 따라 바뀌는 값은 환경 변수로 관리합니다.

변수
base_url https://api.z.ai/api/paas/v4
api_key 사용자의 Z.ai
model glm-5.3-flash

API 키를 헤더에 직접 입력하지 말고 api_key 환경 변수에 저장하세요. 컬렉션 공유하거나 내보내도 키 노출을 막을 수 있습니다.

요청 1: 텍스트 완성

POST {{base_url}}/chat/completions

헤더:

Authorization: Bearer {{api_key}}
Content-Type: application/json
Enter fullscreen mode Exit fullscreen mode

본문:

{
  "model": "{{model}}",
  "messages": [
    {"role": "user", "content": "Reply with exactly: OK"}
  ],
  "reasoning_effort": "low"
}
Enter fullscreen mode Exit fullscreen mode

reasoning_effort 기본값은 max이며, 추론 토큰도 출력 토큰으로 청구됩니다. 연결 확인용 요청에는 low를 사용하세요.

다음 어설션을 추가합니다.

  • 상태 코드가 200이다.
  • choices[0].message.content가 존재한다.
  • choices[0].finish_reasonstop이다.
  • usage.total_tokens가 존재한다.

특히 finish_reason을 확인하세요. 값이 length라면 응답이 완료되기 전에 출력 한도에서 잘린 것입니다.

요청 2: 이미지 호출

GLM-5.3-Flash의 기본 이미지 처리 기능을 검증하려면 동일한 엔드포인트에 타입 지정 콘텐츠 블록을 전송합니다.

{
  "model": "{{model}}",
  "messages": [
    {
      "role": "user",
      "content": [
        {
          "type": "text",
          "text": "What color is the dominant shape in this image? Answer with one word."
        },
        {
          "type": "image_url",
          "image_url": {
            "url": "{{test_image_url}}"
          }
        }
      ]
    }
  ],
  "reasoning_effort": "low"
}
Enter fullscreen mode Exit fullscreen mode

환경에 test_image_url을 추가하고, 정답을 알고 있는 안정적인 공개 이미지 URL을 지정하세요. 고정 이미지와 결정론적 질문을 사용하면 데모가 아닌 회귀 테스트가 됩니다.

로컬 이미지는 환경 변수에 Base64 데이터 URL로 저장할 수 있습니다.

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

어설션:

  • 상태 코드가 200이다.
  • choices[0].message.content에 알려진 답이 포함된다.
  • usage.prompt_tokens가 텍스트 전용 요청보다 크다.

마지막 항목은 중요한 카나리입니다. 이미지는 입력 토큰을 소비하므로 토큰 수가 증가하지 않았다면 이미지가 실제로 처리되지 않았을 수 있습니다. 이 경우에도 API는 200을 반환할 수 있습니다.

비전 경로와 실패 모드는 GLM-5.3-Flash 비전 가이드에서 확인할 수 있습니다.

요청 3: 도구 호출

함수 호출을 사용하는 애플리케이션이라면 별도 테스트가 필요합니다. 도구 호출 형식은 모델 통합에서 특히 버전 변화에 민감합니다.

{
  "model": "{{model}}",
  "messages": [
    {"role": "user", "content": "Is the checkout-api service healthy?"}
  ],
  "tools": [
    {
      "type": "function",
      "function": {
        "name": "get_deployment_status",
        "description": "Returns the current status of a named deployment.",
        "parameters": {
          "type": "object",
          "properties": {
            "service": {
              "type": "string",
              "description": "The service name."
            }
          },
          "required": ["service"]
        }
      }
    }
  ]
}
Enter fullscreen mode Exit fullscreen mode

어설션:

  • choices[0].message.tool_calls가 존재하고 비어 있지 않다.
  • choices[0].message.tool_calls[0].function.nameget_deployment_status다.
  • choices[0].finish_reasontool_calls다.

도구 호출의 존재 여부뿐 아니라 함수 이름까지 검증하면, 모델이 잘못된 도구를 선택하는 문제도 잡을 수 있습니다.

기존 API에서 도구 정의를 만들 때는 OpenAPI 스펙을 에이전트 도구로 전환하는 방법을 활용해 스키마 수작업을 줄일 수 있습니다.

GLM-5.3과 비교하기

환경을 복제한 뒤 modelglm-5.3으로 변경하고 동일한 컬렉션을 실행하세요.

비교할 항목은 다음과 같습니다.

  1. 정확성

    모든 어설션이 통과하는지 확인합니다. GLM-5.3은 이미지를 기본 처리하지 않으므로 이미지 요청이 실패할 수 있습니다. 이는 테스트 자체의 오류가 아니라 모델 기능 차이입니다.

  2. 지연 시간

    Apidog에서 요청별 응답 시간을 비교합니다. GLM-5.3은 Flash의 초당 약 49토큰 대비 초당 약 86토큰으로 생성되므로, 긴 출력에서는 더 빨리 완료될 수 있습니다.

  3. 비용

    usage.prompt_tokensusage.completion_tokens에 각 모델 요율을 곱해 실제 요청당 비용을 계산합니다. 가격 분석전체 모델 비교를 함께 참고하세요.

reasoning_effortmax이면 추론 토큰이 출력으로 청구될 수 있습니다. 같은 프롬프트를 low, high, max로 실행하고 토큰 수를 비교하면 실제 워크로드에 필요한 설정을 빠르게 찾을 수 있습니다.

로컬 배포 테스트

가중치를 직접 호스팅한다면 vLLM 또는 SGLang의 OpenAI 호환 엔드포인트를 사용할 수 있습니다. base_url만 로컬 서버 주소로 바꾸고 같은 컬렉션을 실행하세요.

이 테스트 스위트는 양자화 빌드를 검증할 때 특히 유용합니다. 기본 채팅은 통과해도 도구 스키마 처리나 이미지 입력 성능이 저하될 수 있기 때문입니다. 배포 방법은 로컬 실행 가이드에서 확인하세요.

CI에 통합하기

컬렉션이 안정화되면 다음 시점에 실행하세요.

  • 모델 마이그레이션 전
  • 정기 스케줄 실행으로 공급자 측 변경 감지
  • SDK 또는 의존성 업데이트 후
  • 로컬 모델·양자화 설정 변경 후

모델 공급자는 동일한 모델 ID 뒤에서 동작을 변경할 수 있습니다. 스케줄된 컬렉션 실행은 사용자 보고보다 먼저 변화된 동작을 발견하는 방법입니다.

정상 경로 외에 테스트할 항목

기본 테스트가 통과하면 다음 케이스를 추가하세요.

  • 실제 서비스와 유사한 긴 컨텍스트 요청
  • 오류 처리 확인을 위한 잘못된 형식의 입력
  • 재시도 로직 확인을 위한 속도 제한 응답
  • 여러 image_url 블록을 포함한 다중 이미지 요청
  • 일반 완성과 형식이 다른 스트리밍 응답

마무리

중요한 것은 개별 요청이 아니라 반복 가능성입니다. 30초 안에 다시 실행할 수 있는 컬렉션이 있으면 가격 변경, Z.ai 모델 업데이트, 다른 공급자 전환 제안에도 모델 선택을 근거 기반으로 재검토할 수 있습니다.

Apidog는 무료로 시작할 수 있습니다. OpenAI 호환 스키마를 가져오면 요청을 모두 수동으로 만들지 않아도 됩니다. 이렇게 만든 컬렉션은 다음 모델 교체를 큰 도약이 아닌 작은 차이(diff)로 바꿉니다.

FAQ

유료 Apidog 플랜이 필요한가요?

아니요. 환경 변수와 어설션이 포함된 컬렉션은 무료 티어에서 사용할 수 있습니다.

읽기 어려운 요청 본문 없이 Base64 이미지를 어떻게 테스트하나요?

데이터 URL을 환경 변수에 저장하고 요청 본문에서는 {{test_image_url}}로 참조하세요.

코딩 플랜 엔드포인트도 같은 방식으로 테스트할 수 있나요?

예. base_urlhttps://api.z.ai/api/coding/paas/v4로 변경하세요. 이 엔드포인트는 표준 API와 다르며, 자세한 내용은 Claude Code 및 Cline 가이드에서 다룹니다.

다른 공급자에도 적용되나요?

대체로 적용됩니다. OpenRouter, Cloudflare Workers AI, Vercel AI Gateway는 OpenAI 호환 인터페이스를 제공합니다. base_url과 모델 ID 네임스페이스를 변경하세요.

비결정론적 응답은 어떻게 어설션하나요?

정확한 전체 텍스트 대신 구조와 제약 조건을 검증하세요. 예를 들어 필드 존재 여부, 타입, 토큰 수, finish_reason, 알려진 답이 있는 질문의 부분 문자열 포함 여부를 확인하면 됩니다.

Top comments (0)