Skip to main content
@ai-billing/minimax
@ai-billing/minimax / createMinimaxV3Middleware

Function: createMinimaxV3Middleware()

createMinimaxV3Middleware<TTags>(options): LanguageModelV3Middleware
Defined in: minimax/src/ai-sdk/language-model-middleware/v3/language-model-v3-minimax-billing-middleware.ts:77 Creates a V3 billing middleware for the Minimax provider (via @ai-sdk/openai-compatible). Maps AI SDK usage into billing fields and resolves cost from pricing plus usage.

Type Parameters

TTags

TTags extends JSONObject The shape of the tags object, extending DefaultTags.

Parameters

options

MinimaxV3MiddlewareOptions<TTags> Billing options; see MinimaxV3MiddlewareOptions. A priceResolver is required.

Returns

LanguageModelV3Middleware A V3 billing middleware instance for Minimax.

Example

import { createOpenAICompatible } from '@ai-sdk/openai-compatible';
import { wrapLanguageModel } from 'ai';
import { createMinimaxMiddleware } from '@ai-billing/minimax';
import {
  consoleDestination,
  createObjectPriceResolver,
  type ModelPricing,
} from '@ai-billing/core';
import type { LanguageModelV3 } from '@ai-sdk/provider';

const minimax = createOpenAICompatible({
  name: 'minimax',
  baseURL: 'https://api.minimax.chat/v1',
  apiKey: process.env.MINIMAX_API_KEY,
});

const customPricingMap: Record<string, ModelPricing> = {
  'minimax-m1': {
    promptTokens: 0.4 / 1_000_000,
    completionTokens: 1.6 / 1_000_000,
    internalReasoningTokens: 1.6 / 1_000_000,
  },
};

const priceResolver = createObjectPriceResolver(customPricingMap);

const billingMiddleware = createMinimaxMiddleware({
  destinations: [consoleDestination()],
  priceResolver,
});

const wrappedModel = wrapLanguageModel({
  model: minimax('minimax-m1') as unknown as LanguageModelV3,
  middleware: billingMiddleware,
});