/* * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ import * as z from "zod/v3"; import { remap as remap$ } from "../../lib/primitives.js"; import { safeParse } from "../../lib/schemas.js"; import { Result as SafeParseResult } from "../../types/fp.js"; import { SDKValidationError } from "../errors/sdkvalidationerror.js"; /** * Breakdown of completion tokens by type */ export type CompletionTokensDetails = { /** * Number of tokens used for reasoning */ reasoningTokens?: number | undefined; /** * Number of tokens used for audio */ audioTokens?: number | undefined; }; /** * Usage statistics for the completion request */ export type OpenAIChatCompletionUsage = { /** * Number of tokens in the prompt */ promptTokens: number; /** * Number of tokens in the generated completion */ completionTokens: number; /** * Total number of tokens used in the request (prompt + completion) */ totalTokens: number; /** * Breakdown of completion tokens by type */ completionTokensDetails?: CompletionTokensDetails | undefined; }; /** @internal */ export const CompletionTokensDetails$inboundSchema: z.ZodType< CompletionTokensDetails, z.ZodTypeDef, unknown > = z.object({ reasoning_tokens: z.number().int().optional(), audio_tokens: z.number().int().optional(), }).transform((v) => { return remap$(v, { "reasoning_tokens": "reasoningTokens", "audio_tokens": "audioTokens", }); }); /** @internal */ export type CompletionTokensDetails$Outbound = { reasoning_tokens?: number | undefined; audio_tokens?: number | undefined; }; /** @internal */ export const CompletionTokensDetails$outboundSchema: z.ZodType< CompletionTokensDetails$Outbound, z.ZodTypeDef, CompletionTokensDetails > = z.object({ reasoningTokens: z.number().int().optional(), audioTokens: z.number().int().optional(), }).transform((v) => { return remap$(v, { reasoningTokens: "reasoning_tokens", audioTokens: "audio_tokens", }); }); export function completionTokensDetailsToJSON( completionTokensDetails: CompletionTokensDetails, ): string { return JSON.stringify( CompletionTokensDetails$outboundSchema.parse(completionTokensDetails), ); } export function completionTokensDetailsFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => CompletionTokensDetails$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'CompletionTokensDetails' from JSON`, ); } /** @internal */ export const OpenAIChatCompletionUsage$inboundSchema: z.ZodType< OpenAIChatCompletionUsage, z.ZodTypeDef, unknown > = z.object({ prompt_tokens: z.number().int(), completion_tokens: z.number().int(), total_tokens: z.number().int(), completion_tokens_details: z.lazy(() => CompletionTokensDetails$inboundSchema) .optional(), }).transform((v) => { return remap$(v, { "prompt_tokens": "promptTokens", "completion_tokens": "completionTokens", "total_tokens": "totalTokens", "completion_tokens_details": "completionTokensDetails", }); }); /** @internal */ export type OpenAIChatCompletionUsage$Outbound = { prompt_tokens: number; completion_tokens: number; total_tokens: number; completion_tokens_details?: CompletionTokensDetails$Outbound | undefined; }; /** @internal */ export const OpenAIChatCompletionUsage$outboundSchema: z.ZodType< OpenAIChatCompletionUsage$Outbound, z.ZodTypeDef, OpenAIChatCompletionUsage > = z.object({ promptTokens: z.number().int(), completionTokens: z.number().int(), totalTokens: z.number().int(), completionTokensDetails: z.lazy(() => CompletionTokensDetails$outboundSchema) .optional(), }).transform((v) => { return remap$(v, { promptTokens: "prompt_tokens", completionTokens: "completion_tokens", totalTokens: "total_tokens", completionTokensDetails: "completion_tokens_details", }); }); export function openAIChatCompletionUsageToJSON( openAIChatCompletionUsage: OpenAIChatCompletionUsage, ): string { return JSON.stringify( OpenAIChatCompletionUsage$outboundSchema.parse(openAIChatCompletionUsage), ); } export function openAIChatCompletionUsageFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => OpenAIChatCompletionUsage$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'OpenAIChatCompletionUsage' from JSON`, ); }