Cách kiểm tra API GLM-5.3-Flash trong Apidog

Xây dựng một bộ kiểm thử có thể tái sử dụng cho API GLM-5.3-Flash: các lệnh gọi văn bản, tải trọng hình ảnh base64, gọi công cụ, các xác nhận và một lượt chạy so sánh GLM-5.3.

Ashley Goolam

Ashley Goolam

27 tháng 8 2026

Cách kiểm tra API GLM-5.3-Flash trong Apidog

Apidog cho doanh nghiệp

Triển khai tại chỗ

SSO & RBAC

Tuân thủ SOC 2

Khám phá Apidog Enterprise

Việc thay đổi một LLM trong ứng dụng của bạn chỉ là thay đổi một dòng code nhưng tiềm ẩn rủi ro lớn hơn nhiều. ID của mô hình là một chuỗi. Chuỗi đó thay đổi độ trễ phản hồi, chi phí token, tính ổn định của định dạng đầu ra, hành vi gọi công cụ và liệu pipeline xử lý hình ảnh của bạn có hoạt động hay không.

GLM-5.3-Flash làm cho điều này trở nên cụ thể. Nó rẻ hơn GLM-5.3 khoảng chín lần, nó chấp nhận hình ảnh nguyên bản trong khi GLM-5.3 thì không, và nó tạo ra văn bản với tốc độ chỉ bằng một nửa. Đó là những đánh đổi thực sự, và cách duy nhất để biết bạn sẽ chọn bên nào là chạy các yêu cầu của riêng bạn đối với cả hai.

Hướng dẫn này thiết lập một bộ sưu tập thử nghiệm có thể tái sử dụng cho API GLM-5.3-Flash trong Apidog: các cuộc gọi văn bản, cuộc gọi hình ảnh, gọi công cụ, xác nhận và so sánh với mô hình lớn hơn.

Tại sao không chỉ dùng curl

Bạn hoàn toàn có thể kiểm tra endpoint này bằng curl, và hướng dẫn API của chúng tôi cho thấy chính xác điều đó. Hai điều sẽ trở nên khó khăn hơn khi bạn thực hiện nhiều hơn một cuộc gọi.

Payload hình ảnh Base64. Một URL dữ liệu cho ảnh chụp màn hình có hàng ngàn ký tự. Dán nó vào một terminal sẽ tạo ra một lệnh mà bạn không thể đọc, không thể chỉnh sửa và sẽ không thể chạy lại vào ngày mai. Thử nghiệm đa phương thức là nơi lịch sử shell không còn là một công cụ khả thi.

Không có gì được xác nhận. Phản hồi từ curl chỉ là văn bản trên màn hình. Nó cho bạn biết cuộc gọi đã thành công, chứ không phải phản hồi vẫn chứa các trường mà ứng dụng của bạn đọc. Khi bạn thay đổi mô hình, sự khác biệt đó là toàn bộ mục đích của việc kiểm tra.

Một bộ sưu tập đã lưu khắc phục cả hai vấn đề. Payload nằm trong một yêu cầu mà bạn có thể chỉnh sửa, và các xác nhận sẽ chạy mỗi lần.

Thiết lập môi trường

Tạo một môi trường với các giá trị thay đổi giữa các lần chạy. Giữ ID mô hình dưới dạng biến là phần quan trọng, vì điều này cho phép bạn điều chỉnh toàn bộ bộ sưu tập sang một mô hình khác sau này.

Biến Giá trị
base_url https://api.z.ai/api/paas/v4
api_key khóa Z.ai của bạn
model glm-5.3-flash

Lưu khóa API dưới dạng biến môi trường thay vì dán trực tiếp vào header yêu cầu. Nó sẽ không bị xuất hoặc chia sẻ với đồng đội, điều này quan trọng hơn bạn nghĩ khi lần đầu tiên ai đó commit một bộ sưu tập.

Yêu cầu 1: hoàn thành văn bản

Tạo một yêu cầu POST tới {{base_url}}/chat/completions.

Header:

Authorization: Bearer {{api_key}}
Content-Type: application/json

Body:

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

Lưu ý reasoning_effort. Nó mặc định là max trên mô hình này, điều này tính phí lý luận như các token đầu ra. Đối với một kiểm tra kết nối, điều đó hoàn toàn lãng phí, vì vậy hãy đặt nó thành low ở đây.

Thêm các xác nhận vào phản hồi:

Xác nhận finish_reason là điều mà mọi người thường bỏ qua và sau đó hối tiếc. Giá trị length có nghĩa là phản hồi đã bị cắt ngắn ở giới hạn đầu ra chứ không phải hoàn thành. Với việc con số đầu ra tối đa cho mô hình này không nhất quán giữa các nguồn, việc phát hiện rõ ràng việc cắt ngắn là đáng giá chỉ với một dòng.

Yêu cầu 2: một cuộc gọi hình ảnh

Đây là yêu cầu biện minh cho toàn bộ thiết lập, và là khả năng mà GLM-5.3 không có nguyên bản.

Cùng một endpoint, hình dạng body khác nhau. content trở thành một mảng các khối có kiểu:

{
  "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"
}

Thêm test_image_url vào môi trường của bạn, trỏ đến một hình ảnh ổn định, có thể truy cập công khai mà bạn biết câu trả lời đúng. Một câu hỏi xác định đối với một hình ảnh cố định là điều biến đây thành một bài kiểm tra hồi quy thay vì một bản demo.

Đối với hình ảnh cục bộ, trường tương tự nhận một URL dữ liệu base64. Lưu nó dưới dạng biến môi trường để phần body của yêu cầu vẫn dễ đọc:

data:image/png;base64,iVBORw0go...

Các xác nhận:

Xác nhận cuối cùng đó là một phép thử hữu ích. Hình ảnh tiêu thụ token đầu vào, vì vậy nếu số lượng token nhắc không tăng, hình ảnh thực sự chưa được xử lý, và bạn có một yêu cầu trả về 200 trong khi âm thầm bỏ qua hình ảnh của bạn. Lỗi đó sẽ không nhìn thấy được nếu không có kiểm tra.

Thông tin chi tiết về luồng thị giác và các chế độ lỗi của nó có trong hướng dẫn thị giác GLM-5.3-Flash của chúng tôi.

Yêu cầu 3: gọi công cụ

Nếu ứng dụng của bạn sử dụng chức năng gọi hàm (function calling), hãy kiểm tra nó một cách rõ ràng. Định dạng gọi công cụ là phần nhạy cảm nhất về phiên bản của bất kỳ tích hợp mô hình nào và là thứ có khả năng bị hỏng nhất sau khi nhà cung cấp cập nhật.

{
  "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"]
        }
      }
    }
  ]
}

Các xác nhận:

Việc xác nhận tên hàm thay vì chỉ sự hiện diện của một cuộc gọi công cụ giúp phát hiện một lỗi tinh vi hơn: một mô hình gọi sai công cụ. Với một công cụ được định nghĩa thì điều đó khó xảy ra, nhưng xác nhận này không tốn gì và vẫn đúng khi bạn thêm nhiều công cụ hơn.

Nếu bạn đang tạo các định nghĩa công cụ từ một API bạn đã sở hữu, biến đổi spec OpenAPI thành công cụ tác tử sẽ hướng dẫn bạn cách thực hiện điều đó mà không cần viết tay các schema.

So sánh với GLM-5.3

Đây là lợi ích của việc đặt ID mô hình vào một biến môi trường.

Nhân đôi môi trường của bạn, thay đổi model thành glm-5.3, và chạy cùng bộ sưu tập. Ba điều cần so sánh:

Theo dõi completion_tokens kỹ lưỡng trên các cài đặt reasoning_effort. Với reasoning_effort ở mặc định max, các token lý luận được tính phí như đầu ra, vì vậy một câu trả lời ngắn gọn có thể ẩn chứa một số lượng lớn token hoàn thành đằng sau nó. Chạy cùng một lời nhắc ở low, highmax và đọc số lượng token là cách nhanh nhất để quyết định xem khối lượng công việc của bạn thực sự cần gì.

Kiểm tra triển khai cục bộ

Nếu bạn tự host các trọng số, vLLM và SGLang đều cung cấp các endpoint tương thích với OpenAI. Thay đổi base_url thành máy chủ của bạn và chạy cùng một bộ sưu tập.

Đây là cách sử dụng có giá trị cao nhất của bộ công cụ. Một bản dựng được lượng tử hóa có thể vượt qua một kiểm tra chat cơ bản nhưng vẫn xử lý sai các schema công cụ của bạn hoặc giảm chất lượng trên đầu vào hình ảnh, và đó chính xác là những lỗi xuất hiện trong môi trường sản xuất chứ không phải trong một kiểm tra sơ bộ. Hướng dẫn chạy cục bộ của chúng tôi bao gồm phía triển khai.

Đưa vào CI

Khi bộ sưu tập đã ổn định, hãy chạy nó theo lịch trình hoặc trong pipeline của bạn. Các yếu tố kích hoạt hữu ích:

Các nhà cung cấp mô hình cập nhật mô hình đằng sau các ID ổn định. Một lần chạy theo lịch trình là cách bạn phát hiện ra rằng hành vi đã thay đổi, thay vì nghe từ người dùng.

Những gì cần kiểm tra ngoài "happy path"

Một vài trường hợp đáng thêm vào khi các yếu tố cơ bản đã vượt qua:

Kết luận

Giá trị ở đây không phải là các yêu cầu riêng lẻ, mà là chúng có thể lặp lại. Một lựa chọn mô hình mà bạn có thể kiểm tra lại trong ba mươi giây là một quyết định bạn có thể xem xét lại khi giá thay đổi vào ngày 9 tháng 9, khi Z.ai phát hành bản sửa đổi tiếp theo, hoặc khi ai đó đề xuất chuyển sang một nhà cung cấp khác hoàn toàn.

Apidog miễn phí để bắt đầu, và việc nhập một schema tương thích với OpenAI sẽ giúp bạn thiết lập hầu hết các thứ này mà không cần xây dựng từng yêu cầu thủ công. Bộ sưu tập mà bạn có được là thứ biến việc thay đổi mô hình tiếp theo thành một sự khác biệt nhỏ thay vì một bước nhảy vọt.

Câu hỏi thường gặp

Tôi có cần gói Apidog trả phí không? Không. Một bộ sưu tập với các biến môi trường và xác nhận hoạt động trên gói miễn phí.

Làm cách nào để kiểm tra hình ảnh base64 mà không làm cho phần body yêu cầu khó đọc? Lưu URL dữ liệu dưới dạng biến môi trường và tham chiếu nó dưới dạng {{test_image_url}} trong phần body.

Tôi có thể kiểm tra endpoint coding-plan theo cách tương tự không? Có. Thay đổi base_url thành https://api.z.ai/api/coding/paas/v4. Lưu ý rằng endpoint này khác với endpoint API tiêu chuẩn, như được đề cập trong hướng dẫn Claude Code and Cline của chúng tôi.

Những thử nghiệm này có hoạt động với các nhà cung cấp khác không? Hầu hết là có. OpenRouter, Cloudflare Workers AI và Vercel AI Gateway đều cung cấp các giao diện tương thích với OpenAI. Thay đổi base_url và không gian tên ID mô hình.

Làm cách nào để xác nhận trên một phản hồi không xác định? Xác nhận trên cấu trúc và ràng buộc thay vì văn bản chính xác: sự hiện diện của trường, kiểu dữ liệu, số lượng token, finish_reason và sự chứa chuỗi con cho các câu hỏi có câu trả lời đã biết.

Thực hành thiết kế API trong Apidog

Khám phá cách dễ dàng hơn để xây dựng và sử dụng API