/* * 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"; import { OpenAIChatCompletionChoice, OpenAIChatCompletionChoice$inboundSchema, OpenAIChatCompletionChoice$Outbound, OpenAIChatCompletionChoice$outboundSchema, } from "./openaichatcompletionchoice.js"; /** * Breakdown of completion tokens by type */ export type OpenAIChatCompletionCompletionTokensDetails = { /** * 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 OpenAIChatCompletionUsage1 = { /** * 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?: | OpenAIChatCompletionCompletionTokensDetails | undefined; }; /** * Represents a chat completion response from the API */ export type OpenAIChatCompletion = { /** * A unique identifier for the chat completion */ id: string; /** * The object type, always 'chat.completion' */ object: "chat.completion"; /** * The Unix timestamp (in seconds) of when the chat completion was created */ created: number; /** * The model used for the chat completion */ model: string; /** * A list of chat completion choices. Can be more than one if n is greater than 1. */ choices: Array; /** * Usage statistics for the completion request */ usage: OpenAIChatCompletionUsage1; /** * This fingerprint represents the backend configuration that the model runs with. Can be used in conjunction with the seed request parameter to understand when backend changes have been made that might impact determinism. */ systemFingerprint?: string | undefined; }; /** @internal */ export const OpenAIChatCompletionCompletionTokensDetails$inboundSchema: z.ZodType< OpenAIChatCompletionCompletionTokensDetails, 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 OpenAIChatCompletionCompletionTokensDetails$Outbound = { reasoning_tokens?: number | undefined; audio_tokens?: number | undefined; }; /** @internal */ export const OpenAIChatCompletionCompletionTokensDetails$outboundSchema: z.ZodType< OpenAIChatCompletionCompletionTokensDetails$Outbound, z.ZodTypeDef, OpenAIChatCompletionCompletionTokensDetails > = 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 openAIChatCompletionCompletionTokensDetailsToJSON( openAIChatCompletionCompletionTokensDetails: OpenAIChatCompletionCompletionTokensDetails, ): string { return JSON.stringify( OpenAIChatCompletionCompletionTokensDetails$outboundSchema.parse( openAIChatCompletionCompletionTokensDetails, ), ); } export function openAIChatCompletionCompletionTokensDetailsFromJSON( jsonString: string, ): SafeParseResult< OpenAIChatCompletionCompletionTokensDetails, SDKValidationError > { return safeParse( jsonString, (x) => OpenAIChatCompletionCompletionTokensDetails$inboundSchema.parse( JSON.parse(x), ), `Failed to parse 'OpenAIChatCompletionCompletionTokensDetails' from JSON`, ); } /** @internal */ export const OpenAIChatCompletionUsage1$inboundSchema: z.ZodType< OpenAIChatCompletionUsage1, 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(() => OpenAIChatCompletionCompletionTokensDetails$inboundSchema ).optional(), }).transform((v) => { return remap$(v, { "prompt_tokens": "promptTokens", "completion_tokens": "completionTokens", "total_tokens": "totalTokens", "completion_tokens_details": "completionTokensDetails", }); }); /** @internal */ export type OpenAIChatCompletionUsage1$Outbound = { prompt_tokens: number; completion_tokens: number; total_tokens: number; completion_tokens_details?: | OpenAIChatCompletionCompletionTokensDetails$Outbound | undefined; }; /** @internal */ export const OpenAIChatCompletionUsage1$outboundSchema: z.ZodType< OpenAIChatCompletionUsage1$Outbound, z.ZodTypeDef, OpenAIChatCompletionUsage1 > = z.object({ promptTokens: z.number().int(), completionTokens: z.number().int(), totalTokens: z.number().int(), completionTokensDetails: z.lazy(() => OpenAIChatCompletionCompletionTokensDetails$outboundSchema ).optional(), }).transform((v) => { return remap$(v, { promptTokens: "prompt_tokens", completionTokens: "completion_tokens", totalTokens: "total_tokens", completionTokensDetails: "completion_tokens_details", }); }); export function openAIChatCompletionUsage1ToJSON( openAIChatCompletionUsage1: OpenAIChatCompletionUsage1, ): string { return JSON.stringify( OpenAIChatCompletionUsage1$outboundSchema.parse(openAIChatCompletionUsage1), ); } export function openAIChatCompletionUsage1FromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => OpenAIChatCompletionUsage1$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'OpenAIChatCompletionUsage1' from JSON`, ); } /** @internal */ export const OpenAIChatCompletion$inboundSchema: z.ZodType< OpenAIChatCompletion, z.ZodTypeDef, unknown > = z.object({ id: z.string(), object: z.literal("chat.completion"), created: z.number().int(), model: z.string(), choices: z.array(OpenAIChatCompletionChoice$inboundSchema), usage: z.lazy(() => OpenAIChatCompletionUsage1$inboundSchema), system_fingerprint: z.string().optional(), }).transform((v) => { return remap$(v, { "system_fingerprint": "systemFingerprint", }); }); /** @internal */ export type OpenAIChatCompletion$Outbound = { id: string; object: "chat.completion"; created: number; model: string; choices: Array; usage: OpenAIChatCompletionUsage1$Outbound; system_fingerprint?: string | undefined; }; /** @internal */ export const OpenAIChatCompletion$outboundSchema: z.ZodType< OpenAIChatCompletion$Outbound, z.ZodTypeDef, OpenAIChatCompletion > = z.object({ id: z.string(), object: z.literal("chat.completion"), created: z.number().int(), model: z.string(), choices: z.array(OpenAIChatCompletionChoice$outboundSchema), usage: z.lazy(() => OpenAIChatCompletionUsage1$outboundSchema), systemFingerprint: z.string().optional(), }).transform((v) => { return remap$(v, { systemFingerprint: "system_fingerprint", }); }); export function openAIChatCompletionToJSON( openAIChatCompletion: OpenAIChatCompletion, ): string { return JSON.stringify( OpenAIChatCompletion$outboundSchema.parse(openAIChatCompletion), ); } export function openAIChatCompletionFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => OpenAIChatCompletion$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'OpenAIChatCompletion' from JSON`, ); }