Skip to main content

Installation

Overview

The @ai-billing/zai package provides middleware for tracking token usage and calculating costs when using Z.ai (GLM) models with the Vercel AI SDK. It captures GLM-specific metrics, such as reasoningTokens (from completion_tokens_details.reasoning_tokens) and cached input tokens (from prompt_tokens_details.cached_tokens), ensuring that reasoning and Prompt Caching costs are accurately reflected. GLM’s reasoning tokens are a subset of the completion tokens count, so they are billed at the completion rate rather than a separate reasoning rate.

Usage

To use the middleware, wrap your Z.ai model using wrapLanguageModel from the ai package and pass the createZaiMiddleware.
1

Initialize the Z.ai provider

First, set up the Z.ai provider using your API key.
2

Define model pricing

Set up a price resolver to define the costs for the models you’ll be using. For Z.ai, you can specify costs for standard prompt/completion tokens and cached input tokens (inputCacheReadTokens).
3

Create the billing middleware

Initialize the Z.ai billing middleware. You need to provide a destination (such as consoleDestination) where billing events will be sent, along with your priceResolver.
4

Wrap the model

Use wrapLanguageModel from the ai package to apply the billing middleware to your Z.ai model.
5

Use the wrapped model

Finally, use the wrapped model with AI SDK functions like generateText or streamText. The billing middleware will automatically track tokens, handle reasoning and caching metrics, and calculate costs.