From 68f7f5fc78737225315bd11d6f7621d15470227b Mon Sep 17 00:00:00 2001 From: mvm Date: Thu, 30 Apr 2026 20:19:39 -0500 Subject: [PATCH 01/37] Consume AI model catalog from middlecache MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Replace locally-committed model JSON files with live data fetched from the workers_ai_model_catalog middlecache pipeline. Changes: - content.config.ts: replace workers-ai-models + catalog-models collections (local dataLoader) with ai-catalog + workers-ai-catalog collections backed by middlecacheLoader - model-resolver.ts: rewrite getResolvedModels/getLegacyModels to read from the new collections; add fetchModelDetail() to fetch per-model detail.json from middlecache at build time - [...name].astro (both): call fetchModelDetail() concurrently in getStaticPaths to get full model data for detail pages - [...schema].json.ts (both): deleted — schema files are now served directly from R2 via the worker proxy at request time - worker/index.ts: add runtime proxy route for schema JSON files matching /ai/models/**/(sync|streaming|batch|schema)-(input|output).json and the workers-ai equivalent; R2 key mirrors URL path exactly - src/schemas/ai-model-catalog.ts: new Zod schemas for the middlecache catalog file format (AiModelCard, AiModelDetail) --- src/content.config.ts | 45 ++- src/pages/ai/models/[...name].astro | 28 +- src/pages/ai/models/[...schema].json.ts | 45 --- src/pages/workers-ai/models/[...name].astro | 30 +- .../workers-ai/models/[...schema].json.ts | 45 --- src/schemas/ai-model-catalog.ts | 122 ++++++++ src/schemas/index.ts | 1 + src/util/model-resolver.ts | 280 ++++++------------ worker/index.ts | 24 ++ 9 files changed, 325 insertions(+), 295 deletions(-) delete mode 100644 src/pages/ai/models/[...schema].json.ts delete mode 100644 src/pages/workers-ai/models/[...schema].json.ts create mode 100644 src/schemas/ai-model-catalog.ts diff --git a/src/content.config.ts b/src/content.config.ts index f59db1ebfa43e9c..a2c10cf198ac5ee 100644 --- a/src/content.config.ts +++ b/src/content.config.ts @@ -13,7 +13,7 @@ import { middlecacheLoader } from "./util/custom-loaders"; import { appsSchema, - catalogModelsSchema, + aiModelCardSchema, changelogSchema, baseSchema, notificationsSchema, @@ -23,7 +23,6 @@ import { glossarySchema, learningPathsSchema, videosSchema, - workersAiModelsSchema, warpReleasesSchema, releaseNotesSchema, fieldsSchema, @@ -101,13 +100,41 @@ export const collections = { generateId: ({ entry }) => entry.replace(/\.(json|yml|yaml)$/, ""), }), }), - "workers-ai-models": defineCollection({ - loader: dataLoader("workers-ai-models"), - schema: workersAiModelsSchema, - }), - "catalog-models": defineCollection({ - loader: dataLoader("catalog-models"), - schema: catalogModelsSchema, + // ai-catalog: all models (catalog + Workers AI merged), card fields only. + // Powers /ai/models/ index. Fetched from middlecache at build time. + "ai-catalog": defineCollection({ + loader: middlecacheLoader( + "v1/workers-ai-model-catalog/ai-catalog.json", + { + parser: (fileContent: string) => { + const data = JSON.parse(fileContent) as { + models: Array<{ model_id: string }>; + }; + return Object.fromEntries( + data.models.map((m) => [m.model_id, m]), + ); + }, + }, + ), + schema: aiModelCardSchema, + }), + // workers-ai-catalog: legacy-only subset, card fields only. + // Powers /workers-ai/models/ index. Fetched from middlecache at build time. + "workers-ai-catalog": defineCollection({ + loader: middlecacheLoader( + "v1/workers-ai-model-catalog/workers-ai-catalog.json", + { + parser: (fileContent: string) => { + const data = JSON.parse(fileContent) as { + models: Array<{ model_id: string }>; + }; + return Object.fromEntries( + data.models.map((m) => [m.model_id, m]), + ); + }, + }, + ), + schema: aiModelCardSchema, }), videos: defineCollection({ loader: file("src/content/videos/index.yaml"), diff --git a/src/pages/ai/models/[...name].astro b/src/pages/ai/models/[...name].astro index 87f2367dab5f893..e09c4878e2ea185 100644 --- a/src/pages/ai/models/[...name].astro +++ b/src/pages/ai/models/[...name].astro @@ -1,17 +1,31 @@ --- import type { GetStaticPaths } from "astro"; import ModelDetailPage from "~/components/models/ModelDetailPage.astro"; -import { getResolvedModels } from "~/util/model-resolver"; +import { getResolvedModels, fetchModelDetail } from "~/util/model-resolver"; export const getStaticPaths = (async () => { + // Get card data to know which slugs exist const models = await getResolvedModels(); - // Generate pages at full model ID path only (e.g., "@cf/moonshotai/kimi-k2.5") - // Short slugs are handled by /workers-ai/models/[...name].astro for legacy URLs - return models.map((model) => ({ - params: { name: model.slug }, - props: { model }, - })); + // Fetch detail.json for each model concurrently. + // detail slug = model_id with leading @ stripped (matches middlecache R2 path). + const settled = await Promise.allSettled( + models.map(async (card) => { + const detailSlug = card.modelId.replace(/^@/, ""); + const detail = await fetchModelDetail(detailSlug); + return { card, detail }; + }), + ); + + return settled + .filter( + (r): r is PromiseFulfilledResult<{ card: (typeof models)[0]; detail: NonNullable>> }> => + r.status === "fulfilled" && r.value.detail !== null, + ) + .map(({ value: { card, detail } }) => ({ + params: { name: card.slug }, + props: { model: detail }, + })); }) satisfies GetStaticPaths; const { model } = Astro.props; diff --git a/src/pages/ai/models/[...schema].json.ts b/src/pages/ai/models/[...schema].json.ts deleted file mode 100644 index 44e627013597a87..000000000000000 --- a/src/pages/ai/models/[...schema].json.ts +++ /dev/null @@ -1,45 +0,0 @@ -import type { APIRoute, GetStaticPaths, InferGetStaticPropsType } from "astro"; -import { getResolvedModels } from "~/util/model-resolver"; -import { detectApiModes } from "~/util/model-schema"; - -export const getStaticPaths = (async () => { - const models = await getResolvedModels(); - const paths = []; - - for (const model of models) { - // Catalog models use the full slug as the URL path segment - // (e.g. "openai/gpt-5.4-mini"), matching /ai/models/[...name].astro - const slug = model.slug; - const modes = detectApiModes(model.schema); - - if (modes) { - for (const mode of modes) { - paths.push({ - params: { schema: `${slug}/${mode.id}-input` }, - props: { schema: mode.input }, - }); - paths.push({ - params: { schema: `${slug}/${mode.id}-output` }, - props: { schema: mode.output }, - }); - } - } else { - paths.push({ - params: { schema: `${slug}/schema-input` }, - props: { schema: model.schema.input }, - }); - paths.push({ - params: { schema: `${slug}/schema-output` }, - props: { schema: model.schema.output }, - }); - } - } - - return paths; -}) satisfies GetStaticPaths; - -type Props = InferGetStaticPropsType; - -export const GET: APIRoute = ({ props }) => { - return Response.json(props.schema); -}; diff --git a/src/pages/workers-ai/models/[...name].astro b/src/pages/workers-ai/models/[...name].astro index 076f08515f5ca7f..734bb43fbd29c4f 100644 --- a/src/pages/workers-ai/models/[...name].astro +++ b/src/pages/workers-ai/models/[...name].astro @@ -1,16 +1,34 @@ --- import type { GetStaticPaths } from "astro"; import ModelDetailPage from "~/components/models/ModelDetailPage.astro"; -import { getLegacyModels } from "~/util/model-resolver"; +import { getLegacyModels, fetchModelDetail } from "~/util/model-resolver"; export const getStaticPaths = (async () => { + // Get card data to know which slugs exist (Workers AI-only subset) const models = await getLegacyModels(); - // Generate pages at short slug only (e.g., "kimi-k2.5") - return models.map((model) => ({ - params: { name: model.name.split("/").at(-1) }, - props: { model }, - })); + // Fetch detail.json for each model concurrently. + // Workers AI model_ids look like "@cf/meta/llama-3.1-8b-instruct". + // detail slug = model_id with leading @ stripped. + // URL slug = last segment only (e.g. "llama-3.1-8b-instruct"). + const settled = await Promise.allSettled( + models.map(async (card) => { + const detailSlug = card.modelId.replace(/^@/, ""); + const urlSlug = card.modelId.split("/").at(-1)!; + const detail = await fetchModelDetail(detailSlug); + return { card, detail, urlSlug }; + }), + ); + + return settled + .filter( + (r): r is PromiseFulfilledResult<{ card: (typeof models)[0]; detail: NonNullable>>; urlSlug: string }> => + r.status === "fulfilled" && r.value.detail !== null, + ) + .map(({ value: { detail, urlSlug } }) => ({ + params: { name: urlSlug }, + props: { model: detail }, + })); }) satisfies GetStaticPaths; const { model } = Astro.props; diff --git a/src/pages/workers-ai/models/[...schema].json.ts b/src/pages/workers-ai/models/[...schema].json.ts deleted file mode 100644 index 80db288f19997d2..000000000000000 --- a/src/pages/workers-ai/models/[...schema].json.ts +++ /dev/null @@ -1,45 +0,0 @@ -import type { APIRoute, GetStaticPaths, InferGetStaticPropsType } from "astro"; -import { getLegacyModels } from "~/util/model-resolver"; -import { detectApiModes } from "~/util/model-schema"; - -export const getStaticPaths = (async () => { - const models = await getLegacyModels(); - const paths = []; - - for (const model of models) { - // Short slug is the last segment of the model name, matching the - // URL structure used by /workers-ai/models/[...name].astro - const slug = model.name.split("/").at(-1)!; - const modes = detectApiModes(model.schema); - - if (modes) { - for (const mode of modes) { - paths.push({ - params: { schema: `${slug}/${mode.id}-input` }, - props: { schema: mode.input }, - }); - paths.push({ - params: { schema: `${slug}/${mode.id}-output` }, - props: { schema: mode.output }, - }); - } - } else { - paths.push({ - params: { schema: `${slug}/schema-input` }, - props: { schema: model.schema.input }, - }); - paths.push({ - params: { schema: `${slug}/schema-output` }, - props: { schema: model.schema.output }, - }); - } - } - - return paths; -}) satisfies GetStaticPaths; - -type Props = InferGetStaticPropsType; - -export const GET: APIRoute = ({ props }) => { - return Response.json(props.schema); -}; diff --git a/src/schemas/ai-model-catalog.ts b/src/schemas/ai-model-catalog.ts new file mode 100644 index 000000000000000..d46365e5898dffb --- /dev/null +++ b/src/schemas/ai-model-catalog.ts @@ -0,0 +1,122 @@ +import { z } from "astro/zod"; + +/** + * Schema for a single model card entry in the middlecache + * ai-catalog.json / workers-ai-catalog.json files. + * + * These are produced by the workers_ai_model_catalog middlecache pipeline. + * They contain card-level fields only (no schema, no examples) — sufficient + * for rendering index pages and model cards. + */ +export const aiModelCardSchema = z.object({ + model_id: z.string(), + slug: z.string(), + display_name: z.string(), + description: z.string(), + task: z.object({ + id: z.string(), + name: z.string(), + description: z.string(), + }), + tags: z.string().array(), + context_length: z.number().nullable().optional(), + max_output_tokens: z.number().nullable().optional(), + supports_async: z.boolean(), + hosting: z.enum(["proxied", "hosted"]), + data_source: z.enum(["catalog", "legacy"]), + properties: z + .object({ + property_id: z.string(), + value: z.string().or(z.array(z.looseObject({}))), + }) + .array(), + metadata: z.record(z.string(), z.unknown()), + external_info: z.string().nullable().optional(), + terms: z.string().nullable().optional(), + cover_image_url: z.string().nullable().optional(), + created_at: z.string().nullable().optional(), +}); + +/** + * Schema for the top-level ai-catalog.json / workers-ai-catalog.json files. + */ +export const aiModelCatalogFileSchema = z.object({ + generated_at: z.string(), + model_count: z.number(), + models: aiModelCardSchema.array(), +}); + +export type AiModelCard = z.infer; +export type AiModelCatalogFile = z.infer; + +/** + * Schema for detail.json — per-model full data fetched at detail-page + * build time. Includes examples and code_snippets but NOT the raw schema + * (schema lives in separate R2 files, referenced via schema_manifest). + */ +export const aiModelDetailSchema = z.object({ + model_id: z.string(), + slug: z.string(), + display_name: z.string(), + description: z.string(), + task: z.object({ + id: z.string(), + name: z.string(), + description: z.string(), + }), + tags: z.string().array(), + context_length: z.number().nullable().optional(), + max_output_tokens: z.number().nullable().optional(), + supports_async: z.boolean(), + hosting: z.enum(["proxied", "hosted"]), + data_source: z.enum(["catalog", "legacy"]), + properties: z + .object({ + property_id: z.string(), + value: z.string().or(z.array(z.looseObject({}))), + }) + .array(), + metadata: z.record(z.string(), z.unknown()).optional(), + external_info: z.string().nullable().optional(), + terms: z.string().nullable().optional(), + cover_image_url: z.string().nullable().optional(), + created_at: z.string().nullable().optional(), + // Catalog-only fields + examples: z + .object({ + name: z.string(), + description: z.string().optional(), + input: z.record(z.string(), z.unknown()), + output: z.record(z.string(), z.unknown()).optional(), + raw_response: z + .union([z.record(z.string(), z.unknown()), z.array(z.unknown())]) + .optional(), + code_snippets: z + .object({ label: z.string(), code: z.string() }) + .array() + .optional(), + }) + .array() + .optional(), + default_example: z + .object({ + input: z.record(z.string(), z.unknown()).optional(), + output: z.record(z.string(), z.unknown()).optional(), + code_snippets: z + .object({ label: z.string(), code: z.string() }) + .array() + .optional(), + }) + .nullable() + .optional(), + code_snippets: z + .object({ label: z.string(), code: z.string() }) + .array() + .optional(), + // schema_manifest lists the full R2 paths for the schema files + schema_manifest: z.object({ + files: z.string().array(), + }), +}); + +export type AiModelDetail = z.infer; diff --git a/src/schemas/index.ts b/src/schemas/index.ts index 51219d6f8ee398c..101c7f792a37f04 100644 --- a/src/schemas/index.ts +++ b/src/schemas/index.ts @@ -1,3 +1,4 @@ +export * from "./ai-model-catalog"; export * from "./apps"; export * from "./base"; export * from "./cloudflare-skills-manifest"; diff --git a/src/util/model-resolver.ts b/src/util/model-resolver.ts index 1ab6c6ad3265750..1942ed251809c6a 100644 --- a/src/util/model-resolver.ts +++ b/src/util/model-resolver.ts @@ -1,223 +1,137 @@ import { getCollection } from "astro:content"; -import type { CatalogModelsSchema } from "~/schemas/catalog-models"; -import type { WorkersAIModelsSchema } from "~/schemas/workers-ai-models"; +import type { AiModelCard, AiModelDetail } from "~/schemas/ai-model-catalog"; import type { ModelCardData, ResolvedModel } from "./model-types"; -import { detectApiModes } from "./model-schema"; // Re-export client-safe helpers and types for convenience export { getModelAuthor } from "./model-helpers"; export type { ResolvedModel, ModelCardData } from "./model-types"; export type { ApiMode } from "./model-types"; +const MIDDLECACHE_BASE = "https://middlecache.ced.cloudflare.com/"; +const MODEL_DETAIL_BASE = `${MIDDLECACHE_BASE}v1/workers-ai-model-catalog/models/`; + /** - * Convert catalog model to resolved model format. + * Convert a middlecache AiModelCard to the ResolvedModel format expected by + * components. Card entries don't carry schema or examples — those are fetched + * separately via fetchModelDetail for detail pages. */ -function catalogToResolved(model: CatalogModelsSchema): ResolvedModel { - // Build legacy-compatible properties array from catalog fields - const properties: ResolvedModel["properties"] = []; - - // Context window - if (model.context_length != null) { - properties.push({ - property_id: "context_window", - value: String(model.context_length), - }); - } - - // Max output tokens - if (model.max_output_tokens != null) { - properties.push({ - property_id: "max_output_tokens", - value: String(model.max_output_tokens), - }); - } - - // Terms - if (model.terms) { - properties.push({ property_id: "terms", value: model.terms }); - } - - // External info - if (model.external_info) { - properties.push({ property_id: "info", value: model.external_info }); - } - - // Async/batch support - if (model.supports_async) { - properties.push({ property_id: "async_queue", value: "true" }); - } - - // Extract additional properties from metadata - const metadata = model.metadata || {}; - if (metadata.lora) { - properties.push({ property_id: "lora", value: "true" }); - } - if (metadata.function_calling) { - properties.push({ property_id: "function_calling", value: "true" }); - } - if (metadata.beta) { - properties.push({ property_id: "beta", value: "true" }); - } - if (metadata.partner) { - properties.push({ property_id: "partner", value: "true" }); - } - if (metadata.realtime) { - properties.push({ property_id: "realtime", value: "true" }); - } - if (metadata.planned_deprecation_date) { - properties.push({ - property_id: "planned_deprecation_date", - value: String(metadata.planned_deprecation_date), - }); - } - - const schema = { - input: model.schema?.input || {}, - output: model.schema?.output || {}, - }; - +function cardToResolved(card: AiModelCard): ResolvedModel { return { - name: model.model_id, - modelId: model.model_id, - slug: model.model_id, - displayName: model.name, - description: model.description, - task: { - id: "", // Catalog doesn't include task ID - name: model.task, - description: "", // Catalog doesn't include task description - }, - schema, - apiModes: detectApiModes(schema), - tags: model.tags || [], - contextLength: model.context_length ?? undefined, - maxOutputTokens: model.max_output_tokens ?? undefined, - supportsAsync: model.supports_async, - codeSnippets: model.code_snippets, - examples: model.examples, - defaultExample: model.default_example ?? undefined, - metadata: model.metadata, - coverImageUrl: model.cover_image_url ?? undefined, - externalInfo: model.external_info ?? undefined, - terms: model.terms ?? undefined, - id: model.model_id, - source: 2, // 2 = catalog - created_at: model.created_at, - properties, - dataSource: "catalog", - hosting: "proxied", + name: card.model_id, + modelId: card.model_id, + slug: card.slug, + displayName: card.display_name, + description: card.description, + task: card.task, + // Schema is not present in card data. Detail pages call fetchModelDetail. + schema: { input: {}, output: {} }, + apiModes: undefined, + tags: card.tags, + contextLength: card.context_length ?? undefined, + maxOutputTokens: card.max_output_tokens ?? undefined, + supportsAsync: card.supports_async, + metadata: card.metadata, + coverImageUrl: card.cover_image_url ?? undefined, + externalInfo: card.external_info ?? undefined, + terms: card.terms ?? undefined, + id: card.model_id, + source: card.data_source === "catalog" ? 2 : 1, + created_at: card.created_at ?? undefined, + properties: card.properties, + dataSource: card.data_source, + hosting: card.hosting, }; } /** - * Convert legacy model to resolved model format. + * Convert a middlecache AiModelDetail to ResolvedModel, including schema + * and examples for rendering detail pages. */ -function legacyToResolved(model: WorkersAIModelsSchema): ResolvedModel { - const slug = model.name; - - // Extract values from properties array - const getProp = (id: string) => - model.properties.find((p) => p.property_id === id)?.value; - - const contextWindow = getProp("context_window"); - const maxOutputTokens = getProp("max_output_tokens"); - - const schema = { - input: model.schema.input, - output: model.schema.output, - }; +function detailToResolved(detail: AiModelDetail): ResolvedModel { + // detail.json does not include schema — it is served from R2 via the worker + // proxy. We use empty schema here so hasSchema evaluates to false and the + // Parameters section is omitted. The schema files are still linked via + // schema_manifest for the "API Schemas (Raw)" download section. + const schema = { input: {}, output: {} }; return { - name: model.name, - modelId: model.name, - slug, - displayName: slug, // Legacy doesn't have separate display name - description: model.description, - task: { - id: model.task.id, - name: model.task.name, - description: model.task.description, - }, + name: detail.model_id, + modelId: detail.model_id, + slug: detail.slug, + displayName: detail.display_name, + description: detail.description, + task: detail.task, schema, - apiModes: detectApiModes(schema), - tags: model.tags || [], - contextLength: - typeof contextWindow === "string" - ? parseInt(contextWindow, 10) - : undefined, - maxOutputTokens: - typeof maxOutputTokens === "string" - ? parseInt(maxOutputTokens, 10) - : undefined, - supportsAsync: getProp("async_queue") === "true", - // Legacy doesn't have structured pricing, examples, or code snippets - id: model.id, - source: model.source, // Preserve original source number - created_at: model.created_at, - properties: model.properties, - dataSource: "legacy", - hosting: "hosted", + apiModes: undefined, + tags: detail.tags, + contextLength: detail.context_length ?? undefined, + maxOutputTokens: detail.max_output_tokens ?? undefined, + supportsAsync: detail.supports_async, + metadata: detail.metadata ?? {}, + coverImageUrl: detail.cover_image_url ?? undefined, + externalInfo: detail.external_info ?? undefined, + terms: detail.terms ?? undefined, + codeSnippets: detail.code_snippets, + examples: detail.examples, + defaultExample: detail.default_example ?? undefined, + id: detail.model_id, + source: detail.data_source === "catalog" ? 2 : 1, + created_at: detail.created_at ?? undefined, + properties: detail.properties, + dataSource: detail.data_source, + hosting: detail.hosting, }; } /** - * Get all models, preferring catalog data over legacy when available. - * Catalog models completely replace their legacy counterparts. + * Get all models for the /ai/models/ index page. + * Reads card-only data from the middlecache ai-catalog collection. */ export async function getResolvedModels(): Promise { - const [catalogModels, legacyModels] = await Promise.all([ - getCollection("catalog-models"), - getCollection("workers-ai-models"), - ]); - - // Build map of catalog models by slug - const catalogBySlug = new Map(); - for (const entry of catalogModels) { - const resolved = catalogToResolved(entry.data); - catalogBySlug.set(resolved.slug, resolved); - } - - // Build final list: catalog models first, then legacy models not in catalog - const resolved: ResolvedModel[] = [...catalogBySlug.values()]; - const catalogSlugs = new Set(catalogBySlug.keys()); - - for (const entry of legacyModels) { - const slug = entry.data.name; - if (!catalogSlugs.has(slug)) { - resolved.push(legacyToResolved(entry.data)); - } - } - - return resolved; + const entries = await getCollection("ai-catalog"); + return entries.map((e) => cardToResolved(e.data)); } /** - * Get only legacy Workers AI models (hosted on Cloudflare infrastructure). - * These are models from workers-ai-models collection that are NOT in the catalog. + * Get Workers AI-only models for the /workers-ai/models/ index page. + * Reads card-only data from the middlecache workers-ai-catalog collection. */ export async function getLegacyModels(): Promise { - const [catalogModels, legacyModels] = await Promise.all([ - getCollection("catalog-models"), - getCollection("workers-ai-models"), - ]); - - // Get catalog slugs to exclude - const catalogSlugs = new Set( - catalogModels.map((entry) => entry.data.model_id), - ); + const entries = await getCollection("workers-ai-catalog"); + return entries.map((e) => cardToResolved(e.data)); +} - // Return only legacy models not in catalog - return legacyModels - .filter((entry) => !catalogSlugs.has(entry.data.name)) - .map((entry) => legacyToResolved(entry.data)); +/** + * Fetch full model detail from middlecache for a single model detail page. + * Called at build time in getStaticPaths for [...name].astro pages. + * + * @param slug - The detail file slug: model_id with leading @ stripped. + * e.g. "@cf/meta/llama-3.1-8b" → "cf/meta/llama-3.1-8b" + * e.g. "openai/gpt-5.4-mini" → "openai/gpt-5.4-mini" + */ +export async function fetchModelDetail( + slug: string, +): Promise { + const url = `${MODEL_DETAIL_BASE}${slug}/detail.json`; + try { + const res = await fetch(url); + if (!res.ok) { + console.warn(`fetchModelDetail: ${res.status} for ${url}`); + return null; + } + const detail = (await res.json()) as AiModelDetail; + return detailToResolved(detail); + } catch (err) { + console.warn(`fetchModelDetail: failed to fetch ${url}:`, err); + return null; + } } /** * Project a ResolvedModel to ModelCardData, stripping heavy fields * (schema, apiModes, codeSnippets, examples, metadata, etc.) that are - * not needed by the catalog index pages. This avoids serializing - * megabytes of JSON Schema data into the page HTML as island props. + * not needed by the catalog index pages. */ export function toModelCardData(model: ResolvedModel): ModelCardData { return { diff --git a/worker/index.ts b/worker/index.ts index 3eb1295710fc978..962adedce034300 100644 --- a/worker/index.ts +++ b/worker/index.ts @@ -9,6 +9,14 @@ const redirectsEvaluator = generateRedirectsEvaluator(redirectsFileContents, { }); const LLMS_FULL_R2_PREFIX = "v1/cloudflare-docs-llms-full"; +const AI_MODEL_SCHEMA_R2_PREFIX = "v1/workers-ai-model-catalog"; + +// Schema JSON files for AI model detail pages. The R2 key mirrors the URL +// path exactly: /ai/models//-input.json maps to +// v1/workers-ai-model-catalog/ai/models//-input.json +// and likewise for /workers-ai/models//-input.json. +const SCHEMA_FILE_RE = + /^\/(ai|workers-ai)\/models\/.+\/((?:sync|streaming|batch|schema)-(?:input|output))\.json$/; // RFC 9727 requires the path to be exactly /.well-known/api-catalog with no // extension. The Cloudflare ASSETS binding cannot serve extensionless files @@ -121,6 +129,22 @@ export default class extends WorkerEntrypoint { }); } + if (SCHEMA_FILE_RE.test(pathname)) { + const r2Key = `${AI_MODEL_SCHEMA_R2_PREFIX}${pathname}`; + const object = await this.env.MIDDLECACHE.get(r2Key); + if (!object) { + return new Response("Schema file not found", { status: 404 }); + } + return new Response(object.body, { + headers: { + "Content-Type": "application/json; charset=utf-8", + // Allow the browser to cache schema files for up to 5 minutes. + // The middlecache pipeline runs daily, so stale content is bounded. + "Cache-Control": "public, max-age=300", + }, + }); + } + if (pathname.endsWith("/llms-full.txt")) { // pathname is e.g. "/llms-full.txt" or "/workers/llms-full.txt" // R2 key: "v1/cloudflare-docs-llms-full/llms-full.txt" or From b00fe0ae078c1fe2a956a86c6a7bebd9b00147ac Mon Sep 17 00:00:00 2001 From: mvm Date: Thu, 30 Apr 2026 20:25:10 -0500 Subject: [PATCH 02/37] Fix: use model_id (with @) as slug to preserve URL structure card.slug and detail.slug in the middlecache output have @ stripped (they are R2 path keys). The URL-facing slug must preserve @ to match the existing /ai/models/@cf/... URL structure that ModelDetailPage also uses for schemaBasePath construction. --- src/pages/ai/models/[...name].astro | 4 +++- src/util/model-resolver.ts | 8 ++++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/pages/ai/models/[...name].astro b/src/pages/ai/models/[...name].astro index e09c4878e2ea185..0690b18c967dff1 100644 --- a/src/pages/ai/models/[...name].astro +++ b/src/pages/ai/models/[...name].astro @@ -8,7 +8,9 @@ export const getStaticPaths = (async () => { const models = await getResolvedModels(); // Fetch detail.json for each model concurrently. - // detail slug = model_id with leading @ stripped (matches middlecache R2 path). + // The R2 path for detail.json uses the model_id with leading @ stripped + // (e.g. @cf/meta/llama → cf/meta/llama), but the URL param uses the full + // model_id (card.slug) to preserve existing URL structure. const settled = await Promise.allSettled( models.map(async (card) => { const detailSlug = card.modelId.replace(/^@/, ""); diff --git a/src/util/model-resolver.ts b/src/util/model-resolver.ts index 1942ed251809c6a..1df28060c19c677 100644 --- a/src/util/model-resolver.ts +++ b/src/util/model-resolver.ts @@ -20,7 +20,10 @@ function cardToResolved(card: AiModelCard): ResolvedModel { return { name: card.model_id, modelId: card.model_id, - slug: card.slug, + // Use model_id as slug (preserving @) to match the URL structure that + // ModelDetailPage uses for schemaBasePath and that getStaticPaths emits. + // The middlecache card.slug has @ stripped (R2 path key) — we don't use it here. + slug: card.model_id, displayName: card.display_name, description: card.description, task: card.task, @@ -58,7 +61,8 @@ function detailToResolved(detail: AiModelDetail): ResolvedModel { return { name: detail.model_id, modelId: detail.model_id, - slug: detail.slug, + // Use model_id as slug (preserving @) — matches URL structure. + slug: detail.model_id, displayName: detail.display_name, description: detail.description, task: detail.task, From c9b62a6facc07981c5280e7078ef854ef51ba2ba Mon Sep 17 00:00:00 2001 From: mvm Date: Thu, 30 Apr 2026 20:30:18 -0500 Subject: [PATCH 03/37] Restore API Schemas (Raw) section from schema_manifest MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add schemaFiles to ResolvedModel type - Populate schemaFiles in detailToResolved from schema_manifest.files (extracts filenames from full R2 paths, no schema content needed) - Split hasSchema (Parameters gate) from hasSchemaFiles (API Schemas gate) - Render API Schemas (Raw) section from schemaFiles list, deriving human-readable labels from filenames (sync-input → Synchronous · Input) --- src/components/models/ModelDetailPage.astro | 89 ++++++++++----------- src/util/model-resolver.ts | 13 ++- src/util/model-types.ts | 6 ++ 3 files changed, 59 insertions(+), 49 deletions(-) diff --git a/src/components/models/ModelDetailPage.astro b/src/components/models/ModelDetailPage.astro index f24f3a3540c7658..50856476193c68c 100644 --- a/src/components/models/ModelDetailPage.astro +++ b/src/components/models/ModelDetailPage.astro @@ -158,6 +158,11 @@ const hasSupportedLanguages = model.name === "@cf/deepgram/nova-3"; const hasSchema = model.schema.input && Object.keys(model.schema.input).length > 0; +// Schema files for the "API Schemas (Raw)" section. Populated from +// schema_manifest in detail.json — no schema content needed at build time. +const hasSchemaFiles = + model.schemaFiles != null && model.schemaFiles.length > 0; + // Base path for the static schema JSON endpoints. // workers-ai models use the short slug (last segment of model name). // catalog models use the full slug as-is (may be multi-segment, e.g. "openai/gpt-5.4-mini"). @@ -188,7 +193,7 @@ const starlightPageProps = { ? { depth: 2, slug: "Examples", text: "Examples" } : false, hasSchema ? { depth: 2, slug: "Parameters", text: "Parameters" } : false, - hasSchema ? { depth: 2, slug: "API-Schemas", text: "API Schemas (Raw)" } : false, + hasSchemaFiles ? { depth: 2, slug: "API-Schemas", text: "API Schemas (Raw)" } : false, ].filter((v) => Boolean(v)) as MarkdownHeading[], hideTitle: true, } as StarlightPageProps; @@ -418,32 +423,6 @@ const starlightPageProps = { ); })()} - -

API Schemas (Raw)

-
- {model.apiModes.flatMap((mode) => [ -
- - {mode.name} - Input - - - - - -
, -
- - {mode.name} - Output - - - - - -
, - ])} -
) : ( hasSchema && ( @@ -479,26 +458,46 @@ const starlightPageProps = { )} - -

API Schemas (Raw)

-
-
- Input - - - - -
-
- Output - - - - -
-
) ) } + + { + hasSchemaFiles && ( + <> +

API Schemas (Raw)

+
+ {model.schemaFiles!.map((filename) => { + // Derive a human-readable label from the filename. + // e.g. "sync-input.json" → "Synchronous · Input" + // "schema-input.json" → "Input" + // "batch-output.json" → "Batch · Output" + const base = filename.replace(/\.json$/, ""); + const modeLabels: Record = { + sync: "Synchronous", + streaming: "Streaming", + batch: "Batch", + }; + const parts = base.split("-"); + const direction = parts.at(-1)!; // "input" or "output" + const modeId = parts.slice(0, -1).join("-"); // "sync", "schema", "batch", etc. + const modeLabel = modeLabels[modeId]; + const label = modeLabel + ? `${modeLabel} · ${direction.charAt(0).toUpperCase() + direction.slice(1)}` + : direction.charAt(0).toUpperCase() + direction.slice(1); + return ( +
+ {label} + + + + +
+ ); + })} +
+ + ) + } diff --git a/src/util/model-resolver.ts b/src/util/model-resolver.ts index 1df28060c19c677..bdfc58bd90d4842 100644 --- a/src/util/model-resolver.ts +++ b/src/util/model-resolver.ts @@ -52,12 +52,16 @@ function cardToResolved(card: AiModelCard): ResolvedModel { * and examples for rendering detail pages. */ function detailToResolved(detail: AiModelDetail): ResolvedModel { - // detail.json does not include schema — it is served from R2 via the worker - // proxy. We use empty schema here so hasSchema evaluates to false and the - // Parameters section is omitted. The schema files are still linked via - // schema_manifest for the "API Schemas (Raw)" download section. + // schema is not in detail.json — it lives in separate R2 files proxied at + // request time. Keep schema empty so hasSchema is false (Parameters hidden). const schema = { input: {}, output: {} }; + // Extract filenames from full R2 paths in schema_manifest for the + // "API Schemas (Raw)" section (e.g. "v1/.../sync-input.json" → "sync-input.json") + const schemaFiles = detail.schema_manifest.files.map((r2Path) => + r2Path.split("/").at(-1)!, + ); + return { name: detail.model_id, modelId: detail.model_id, @@ -68,6 +72,7 @@ function detailToResolved(detail: AiModelDetail): ResolvedModel { task: detail.task, schema, apiModes: undefined, + schemaFiles, tags: detail.tags, contextLength: detail.context_length ?? undefined, maxOutputTokens: detail.max_output_tokens ?? undefined, diff --git a/src/util/model-types.ts b/src/util/model-types.ts index 143a5d5c0e2b245..975167ca38eede8 100644 --- a/src/util/model-types.ts +++ b/src/util/model-types.ts @@ -117,4 +117,10 @@ export interface ResolvedModel { // hosted models run on Cloudflare infrastructure. // Currently inferred from data source; will eventually come from the Deus CMS. hosting: "proxied" | "hosted"; + + // List of schema file names (e.g. ["sync-input.json", "sync-output.json"]) + // populated from the middlecache detail.json schema_manifest. Used by + // ModelDetailPage to render the "API Schemas (Raw)" section without needing + // the full schema content at build time. + schemaFiles?: string[]; } From 70151430bbfea5d0b5220aecc729c118a95c7f22 Mon Sep 17 00:00:00 2001 From: mvm Date: Thu, 30 Apr 2026 20:31:21 -0500 Subject: [PATCH 04/37] Fix: move Record type annotation out of JSX template Astro parses as JSX inside template expressions. Move label derivation logic to frontmatter as a typed helper function. --- src/components/models/ModelDetailPage.astro | 56 ++++++++++----------- 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/src/components/models/ModelDetailPage.astro b/src/components/models/ModelDetailPage.astro index 50856476193c68c..0f9b1de8725a425 100644 --- a/src/components/models/ModelDetailPage.astro +++ b/src/components/models/ModelDetailPage.astro @@ -163,6 +163,25 @@ const hasSchema = const hasSchemaFiles = model.schemaFiles != null && model.schemaFiles.length > 0; +// Derive a human-readable label from a schema filename. +// e.g. "sync-input.json" → "Synchronous · Input" +// "schema-input.json" → "Input" +// "batch-output.json" → "Batch · Output" +const MODE_LABELS: { [key: string]: string } = { + sync: "Synchronous", + streaming: "Streaming", + batch: "Batch", +}; +function schemaFileLabel(filename: string): string { + const base = filename.replace(/\.json$/, ""); + const parts = base.split("-"); + const direction = parts.at(-1)!; + const modeId = parts.slice(0, -1).join("-"); + const modeLabel = MODE_LABELS[modeId]; + const dirLabel = direction.charAt(0).toUpperCase() + direction.slice(1); + return modeLabel ? `${modeLabel} · ${dirLabel}` : dirLabel; +} + // Base path for the static schema JSON endpoints. // workers-ai models use the short slug (last segment of model name). // catalog models use the full slug as-is (may be multi-segment, e.g. "openai/gpt-5.4-mini"). @@ -468,34 +487,15 @@ const starlightPageProps = { <>

API Schemas (Raw)

- {model.schemaFiles!.map((filename) => { - // Derive a human-readable label from the filename. - // e.g. "sync-input.json" → "Synchronous · Input" - // "schema-input.json" → "Input" - // "batch-output.json" → "Batch · Output" - const base = filename.replace(/\.json$/, ""); - const modeLabels: Record = { - sync: "Synchronous", - streaming: "Streaming", - batch: "Batch", - }; - const parts = base.split("-"); - const direction = parts.at(-1)!; // "input" or "output" - const modeId = parts.slice(0, -1).join("-"); // "sync", "schema", "batch", etc. - const modeLabel = modeLabels[modeId]; - const label = modeLabel - ? `${modeLabel} · ${direction.charAt(0).toUpperCase() + direction.slice(1)}` - : direction.charAt(0).toUpperCase() + direction.slice(1); - return ( -
- {label} - - - - -
- ); - })} + {model.schemaFiles!.map((filename) => ( +
+ {schemaFileLabel(filename)} + + + + +
+ ))}
) From e8c7a95843681a29cf3d9e2ebe4d756487201dd9 Mon Sep 17 00:00:00 2001 From: mvm Date: Thu, 30 Apr 2026 20:32:53 -0500 Subject: [PATCH 05/37] Proxy AI model schema JSON files in dev middleware In production, schema files are served by the Worker via R2. In local dev the Worker doesn't run, so proxy matching requests to middlecache. --- src/middleware/index.ts | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/middleware/index.ts b/src/middleware/index.ts index 46db6b25ad2f9dc..80eaf0164d55e69 100644 --- a/src/middleware/index.ts +++ b/src/middleware/index.ts @@ -1,6 +1,13 @@ import { defineMiddleware } from "astro:middleware"; -// `astro dev` only middleware so that `/api/...` links can be viewed. +const MIDDLECACHE_BASE = "https://middlecache.ced.cloudflare.com/"; +const AI_MODEL_SCHEMA_R2_PREFIX = "v1/workers-ai-model-catalog"; +const SCHEMA_FILE_RE = + /^\/(ai|workers-ai)\/models\/.+\/((?:sync|streaming|batch|schema)-(?:input|output))\.json$/; + +// `astro dev` only middleware so that `/api/...` links can be viewed, +// and so that AI model schema JSON files are proxied from middlecache +// (in production these are served by the Cloudflare Worker via R2). export const onRequest = defineMiddleware(async (context, next) => { if (import.meta.env.DEV) { const { pathname } = context.url; @@ -14,6 +21,11 @@ export const onRequest = defineMiddleware(async (context, next) => { }, }); } + + if (SCHEMA_FILE_RE.test(pathname)) { + const r2Key = `${AI_MODEL_SCHEMA_R2_PREFIX}${pathname}`; + return fetch(`${MIDDLECACHE_BASE}${r2Key}`); + } } return next(); From 23eb2a99c4de63f87e4b0783a866f81a2793cf90 Mon Sep 17 00:00:00 2001 From: mvm Date: Thu, 30 Apr 2026 20:33:46 -0500 Subject: [PATCH 06/37] Fix: disable content encoding on schema proxy fetch in dev middleware --- src/middleware/index.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/middleware/index.ts b/src/middleware/index.ts index 80eaf0164d55e69..adf8fc86b8c05e9 100644 --- a/src/middleware/index.ts +++ b/src/middleware/index.ts @@ -24,7 +24,9 @@ export const onRequest = defineMiddleware(async (context, next) => { if (SCHEMA_FILE_RE.test(pathname)) { const r2Key = `${AI_MODEL_SCHEMA_R2_PREFIX}${pathname}`; - return fetch(`${MIDDLECACHE_BASE}${r2Key}`); + return fetch(`${MIDDLECACHE_BASE}${r2Key}`, { + headers: { "accept-encoding": "identity" }, + }); } } From c18d92d0327054b920c7ba845c9cce85e050bcac Mon Sep 17 00:00:00 2001 From: mvm Date: Thu, 30 Apr 2026 20:47:40 -0500 Subject: [PATCH 07/37] Lazy-load Parameters section schema from R2 Instead of fetching schema files at build time (which would add ~300 extra HTTP requests), SchemaDisplayLazy fetches the schema client-side when the user scrolls to the Parameters section (IntersectionObserver with 200px margin). - SchemaDisplayLazy.tsx: React component that fetches a schema URL, runs the same @stoplight/json-schema-tree processing as SchemaDisplay.astro, and renders via SchemaTree/SchemaVariantSelector - ModelDetailPage.astro: use SchemaDisplayLazy (client:visible) when schema is not in memory but schemaFiles URLs are available from schema_manifest; keep existing SchemaDisplay path for build-time schema --- src/components/models/ModelDetailPage.astro | 184 ++++++++---- src/components/models/SchemaDisplayLazy.tsx | 317 ++++++++++++++++++++ 2 files changed, 438 insertions(+), 63 deletions(-) create mode 100644 src/components/models/SchemaDisplayLazy.tsx diff --git a/src/components/models/ModelDetailPage.astro b/src/components/models/ModelDetailPage.astro index 0f9b1de8725a425..721cee29429f8b9 100644 --- a/src/components/models/ModelDetailPage.astro +++ b/src/components/models/ModelDetailPage.astro @@ -7,6 +7,7 @@ import { LinkButton, Tabs, TabItem, Code, Aside, Badge } from "~/components"; import ModelInfo from "~/components/models/ModelInfo.tsx"; import ModelFeatures from "~/components/models/ModelFeatures.tsx"; import SchemaDisplay from "~/components/models/SchemaDisplay.astro"; +import SchemaDisplayLazy from "~/components/models/SchemaDisplayLazy.tsx"; import ExampleCard from "~/components/models/ExampleCard.astro"; import CopyableCode from "~/components/models/CopyableCode.astro"; @@ -158,11 +159,37 @@ const hasSupportedLanguages = model.name === "@cf/deepgram/nova-3"; const hasSchema = model.schema.input && Object.keys(model.schema.input).length > 0; -// Schema files for the "API Schemas (Raw)" section. Populated from -// schema_manifest in detail.json — no schema content needed at build time. +// Schema files populated from schema_manifest in detail.json. +// Used for both "API Schemas (Raw)" download links and lazy Parameters rendering. const hasSchemaFiles = model.schemaFiles != null && model.schemaFiles.length > 0; +// Parameters section is shown when we have schema content (build-time) OR +// schema file URLs (lazy client-side fetch). +const hasParameters = hasSchema || hasSchemaFiles; + +// For lazy loading, derive input/output schema URLs from schemaFiles. +// We show the primary input + output for the Parameters section. +// For multi-mode models (sync/streaming/batch), use sync-input/output as the primary. +// For flat models, use schema-input/output. +const inputSchemaFile = model.schemaFiles?.find((f) => + f.endsWith("sync-input.json") || f.endsWith("schema-input.json") +) ?? model.schemaFiles?.[0]; +const outputSchemaFile = model.schemaFiles?.find((f) => + f.endsWith("sync-output.json") || f.endsWith("schema-output.json") +) ?? model.schemaFiles?.[1]; + +// schemaFiles stores full R2 paths; the worker proxies them at the URL path segment +// e.g. "v1/workers-ai-model-catalog/workers-ai/models/llama/sync-input.json" +// → URL: "/workers-ai/models/llama/sync-input.json" +function r2PathToUrl(r2Path: string | undefined): string | undefined { + if (!r2Path) return undefined; + // Strip the "v1/workers-ai-model-catalog" prefix to get the proxied URL path + return r2Path.replace(/^v1\/workers-ai-model-catalog/, ""); +} +const inputSchemaUrl = r2PathToUrl(inputSchemaFile); +const outputSchemaUrl = r2PathToUrl(outputSchemaFile); + // Derive a human-readable label from a schema filename. // e.g. "sync-input.json" → "Synchronous · Input" // "schema-input.json" → "Input" @@ -211,7 +238,7 @@ const starlightPageProps = { hasRemainingExamples ? { depth: 2, slug: "Examples", text: "Examples" } : false, - hasSchema ? { depth: 2, slug: "Parameters", text: "Parameters" } : false, + hasParameters ? { depth: 2, slug: "Parameters", text: "Parameters" } : false, hasSchemaFiles ? { depth: 2, slug: "API-Schemas", text: "API Schemas (Raw)" } : false, ].filter((v) => Boolean(v)) as MarkdownHeading[], hideTitle: true, @@ -369,33 +396,54 @@ const starlightPageProps = { } { - hasSchema && model.apiModes && model.apiModes.length > 1 ? ( - <> -

Parameters

- - {/* - * Render input schema once (shared across all modes), then - * render per-mode output sections. This avoids duplicating the - * processed SchemaRowData tree in the HTML for every mode. - * - * Sync and streaming always share the same input; batch may differ. - * We detect shared input by comparing JSON serialisation. - */} - {(() => { - // Detect which modes share the same input as the first mode - const firstInputJson = JSON.stringify(model.apiModes[0].input); - const allInputsIdentical = model.apiModes.every( - (mode) => JSON.stringify(mode.input) === firstInputJson, - ); - - return allInputsIdentical ? ( - <> - {/* Input rendered once */} -

Input

- - - {/* Output per mode */} -

Output

+ hasParameters && ( + hasSchema && model.apiModes && model.apiModes.length > 1 ? ( + <> +

Parameters

+ + {/* + * Render input schema once (shared across all modes), then + * render per-mode output sections. This avoids duplicating the + * processed SchemaRowData tree in the HTML for every mode. + * + * Sync and streaming always share the same input; batch may differ. + * We detect shared input by comparing JSON serialisation. + */} + {(() => { + // Detect which modes share the same input as the first mode + const firstInputJson = JSON.stringify(model.apiModes[0].input); + const allInputsIdentical = model.apiModes.every( + (mode) => JSON.stringify(mode.input) === firstInputJson, + ); + + return allInputsIdentical ? ( + <> + {/* Input rendered once */} +

Input

+ + + {/* Output per mode */} +

Output

+
+ {model.apiModes.map((mode) => ( +
+ + {mode.name} + {mode.description && ( + + — {mode.description} + + )} + +
+ +
+
+ ))} +
+ + ) : ( + /* Inputs differ (e.g. batch has different input) — show per-mode tabs */
{model.apiModes.map((mode) => (
@@ -408,43 +456,22 @@ const starlightPageProps = { )}
- + + + + + + + +
))}
- - ) : ( - /* Inputs differ (e.g. batch has different input) — show per-mode tabs */ -
- {model.apiModes.map((mode) => ( -
- - {mode.name} - {mode.description && ( - - — {mode.description} - - )} - -
- - - - - - - - -
-
- ))} -
- ); - })()} - - ) : ( - hasSchema && ( + ); + })()} + + ) : hasSchema ? ( <>

Parameters

@@ -478,6 +505,37 @@ const starlightPageProps = { + ) : ( + /* Lazy: fetch schema from R2 via worker proxy when user scrolls to section */ + <> +

Parameters

+ + + {inputSchemaUrl ? ( + + ) : ( +

No input schema available.

+ )} +
+ + {outputSchemaUrl ? ( + + ) : ( +

No output schema available.

+ )} +
+
+ ) ) } diff --git a/src/components/models/SchemaDisplayLazy.tsx b/src/components/models/SchemaDisplayLazy.tsx new file mode 100644 index 000000000000000..b7a0a0e90ce6a59 --- /dev/null +++ b/src/components/models/SchemaDisplayLazy.tsx @@ -0,0 +1,317 @@ +/** + * SchemaDisplayLazy — client-side schema fetcher + renderer. + * + * Accepts a URL to a raw JSON Schema file (served from R2 via the worker proxy), + * fetches it when the component becomes visible, processes it with + * @stoplight/json-schema-tree (same logic as SchemaDisplay.astro), and renders + * the result via SchemaTree / SchemaVariantSelector. + * + * This avoids fetching schema files at build time, keeping build fast. + */ + +import { useState, useEffect, useRef } from "react"; +import { + SchemaTree, + SchemaCombinerName, + type SchemaNode, + type RegularNode, + type SchemaTreeRefDereferenceFn, +} from "@stoplight/json-schema-tree"; +import { type Dictionary } from "@stoplight/types"; +import { resolveInlineRef } from "@stoplight/json"; + +import SchemaTreeView from "./SchemaTree.tsx"; +import SchemaVariantSelector from "./SchemaVariantSelector.tsx"; +import type { SchemaRowData } from "./types"; + +// ── Schema processing (mirrors SchemaDisplay.astro logic) ───────────────────── + +const SKIP_KEYS = new Set([ + "type", "properties", "items", "required", "description", "default", + "enum", "oneOf", "anyOf", "allOf", "title", "additionalProperties", +]); + +const shouldSkipKey = (key: string) => + SKIP_KEYS.has(key) || key.startsWith("$") || key.startsWith("x-"); + +const defaultResolver: SchemaTreeRefDereferenceFn = + (contextObject: object) => + ({ pointer }: { source: string | null; pointer: string | null }, _: unknown, currentObject?: object) => { + const activeObject = contextObject ?? currentObject; + if (pointer === null) return null; + if (pointer === "#") return activeObject; + const resolved = resolveInlineRef(activeObject as Dictionary, pointer); + if (resolved) return resolved; + throw new ReferenceError(`Could not resolve '${pointer}'`); + }; + +function isFlatSchema(schema: Record): boolean { + if (schema.properties) return false; + const variants = (schema.oneOf || schema.anyOf) as Record[] | undefined; + if (variants?.some((v) => v.properties)) return false; + return !!(schema.type || schema.contentType || schema.format); +} + +function flatSchemaToRows(schema: Record): SchemaRowData[] { + return Object.keys(schema).map((key, i, arr) => ({ + id: key, name: key, type: String(schema[key]), + isArray: false, isObject: false, isOneOf: false, + isOneOfChild: false, isFirstOneOfChild: false, isLastOneOfChild: false, + required: false, defaultValue: undefined, description: undefined, + enumValues: undefined, metadata: undefined, + depth: 0, isLast: i === arr.length - 1, ancestorIsLast: [], + children: undefined, + })); +} + +function collectRows( + nodes: SchemaNode[] | undefined, + depth: number, + ancestorIsLast: boolean[], + parentPath = "", +): SchemaRowData[] { + if (!nodes) return []; + const rows: SchemaRowData[] = []; + + const validNodes = nodes.filter((node) => { + const reg = node as RegularNode; + const rawName = reg.subpath?.[reg.subpath.length - 1]; + if (rawName === undefined || rawName === "") return false; + const parentProperties = reg.parent?.fragment?.properties; + if (parentProperties && !(String(rawName) in (parentProperties as object))) return false; + return true; + }); + + for (let i = 0; i < validNodes.length; i++) { + const reg = validNodes[i] as RegularNode; + const name = String(reg.subpath?.[reg.subpath.length - 1] ?? ""); + const isLast = i === validNodes.length - 1; + const id = parentPath ? `${parentPath}.${name}` : name; + + const parentRequired = reg.parent?.fragment?.required; + const required = Array.isArray(parentRequired) + ? (parentRequired as string[]).includes(name) : false; + + const isArray = reg.primaryType === "array"; + const isObject = reg.primaryType === "object"; + const hasOneOf = reg.combiners?.includes(SchemaCombinerName.OneOf) ?? false; + const hasAnyOf = reg.combiners?.includes(SchemaCombinerName.AnyOf) ?? false; + + let isNullable = false; + let nullableType: string | undefined; + let nullableChildDescription: string | undefined; + if ((hasOneOf || hasAnyOf) && reg.children?.length === 2) { + const childTypes = reg.children.map((c) => String((c as RegularNode).primaryType ?? "")); + const nullIndex = childTypes.findIndex((t) => t === "null"); + if (nullIndex !== -1) { + const nonNullIndex = nullIndex === 0 ? 1 : 0; + const nonNullChild = reg.children[nonNullIndex] as RegularNode; + nullableType = childTypes[nonNullIndex]; + nullableChildDescription = nonNullChild.annotations?.description as string | undefined; + isNullable = true; + } + } + + const isOneOf = (hasOneOf || hasAnyOf) && !isNullable; + const type = isNullable && nullableType + ? `${nullableType} | null` + : isOneOf ? "one of" : (reg.primaryType ?? ""); + + const defaultValue = reg.annotations?.default !== undefined + ? String(reg.annotations.default) : undefined; + const description = (reg.annotations?.description as string | undefined) ?? nullableChildDescription; + const enumValues = ((reg.validations?.enum as unknown[]) ?? + ((reg.fragment as Record)?.enum as unknown[]))?.map(String); + + const metadata: Record = {}; + const fragment = reg.fragment as Record; + if (fragment) { + for (const [key, value] of Object.entries(fragment)) { + if (!shouldSkipKey(key) && (typeof value === "string" || typeof value === "number" || typeof value === "boolean")) { + metadata[key] = value; + } + } + } + if (reg.validations) { + for (const [key, value] of Object.entries(reg.validations)) { + if (!shouldSkipKey(key) && key !== "enum" && (typeof value === "string" || typeof value === "number" || typeof value === "boolean")) { + metadata[key] = value; + } + } + } + if (isArray && reg.children?.length === 1) { + const itemsNode = reg.children[0] as RegularNode; + const itemsFragment = itemsNode.fragment as Record; + if (itemsFragment?.format && typeof itemsFragment.format === "string") { + metadata["format"] = itemsFragment.format; + } + } + + let children: SchemaRowData[] | undefined; + if (reg.children?.length && !isNullable) { + if (isArray && reg.children.length === 1) { + const itemsNode = reg.children[0] as RegularNode; + const itemsName = String(itemsNode.subpath?.[itemsNode.subpath.length - 1] ?? ""); + if (itemsName === "items" && itemsNode.children?.length) { + children = collectRows(itemsNode.children, depth + 1, [...ancestorIsLast, isLast], id); + } else { + children = collectRows(reg.children, depth + 1, [...ancestorIsLast, isLast], id); + } + } else { + children = collectRows(reg.children, depth + 1, [...ancestorIsLast, isLast], id); + } + } + + let displayName = name; + const parentReg = reg.parent as RegularNode | undefined; + const isOneOfChild = parentReg?.combiners?.includes(SchemaCombinerName.OneOf); + const isAnyOfChild = parentReg?.combiners?.includes(SchemaCombinerName.AnyOf); + if (isOneOfChild || isAnyOfChild) { + const frag = reg.fragment as Record; + const title = reg.title ?? ((reg.annotations as Record)?.title as string | undefined) ?? (frag?.title as string | undefined); + if (title) { + displayName = title; + } else { + const properties = frag?.properties as Record> | undefined; + const roleEnum = properties?.role?.enum as string[] | undefined; + if (roleEnum && roleEnum.length === 1) { + displayName = `${roleEnum[0]} message`; + } else { + const nestedOneOf = frag?.oneOf as Record[] | undefined; + if (nestedOneOf && nestedOneOf.length > 0 && nestedOneOf[0]?.title) { + displayName = `${nestedOneOf[0].title as string} format`; + } else if (properties) { + const props = Object.keys(properties); + displayName = props.includes("requests") ? "Batch request" : `Option ${Number(name) + 1}`; + } else { + displayName = `Option ${Number(name) + 1}`; + } + } + } + } + + rows.push({ + id, name: displayName, type, isArray, isObject, isOneOf, + isOneOfChild: !!(isOneOfChild || isAnyOfChild), + isFirstOneOfChild: !!(isOneOfChild || isAnyOfChild) && i === 0, + isLastOneOfChild: !!(isOneOfChild || isAnyOfChild) && isLast, + required, defaultValue, description, enumValues, + metadata: Object.keys(metadata).length > 0 ? metadata : undefined, + depth, isLast, ancestorIsLast, children, + }); + } + return rows; +} + +type SchemaVariant = { title: string; rows: SchemaRowData[] }; + +function processSchema(schema: Record): SchemaRowData[] { + const tree = new SchemaTree(schema, { mergeAllOf: true, refResolver: defaultResolver, maxRefDepth: 3 }); + tree.populate(); + const topNodes = (tree.root.children[0] as RegularNode)?.children ?? undefined; + return collectRows(topNodes, 0, []); +} + +function getTopLevelVariants(schema: Record): SchemaVariant[] | null { + const variants = (schema.oneOf || schema.anyOf) as Record[] | undefined; + if (!variants || variants.length < 2) return null; + const titled = variants.map((v, i) => ({ title: (v.title as string) || `Option ${i + 1}`, schema: v })); + const hasRealTitle = variants.some((v) => v.title); + return hasRealTitle ? titled.map((v) => ({ title: v.title, rows: processSchema(v.schema) })) : null; +} + +function buildDisplay(schema: Record): { + rows: SchemaRowData[]; + variants: SchemaVariant[] | null; + isFlat: boolean; +} { + const isFlat = isFlatSchema(schema); + const variants = isFlat ? null : getTopLevelVariants(schema); + const rows = isFlat + ? flatSchemaToRows(schema) + : variants ? [] : processSchema(schema); + return { rows, variants, isFlat }; +} + +// ── Component ───────────────────────────────────────────────────────────────── + +interface Props { + url: string; + title: "Input" | "Output"; + schemaId: string; +} + +export default function SchemaDisplayLazy({ url, title, schemaId }: Props) { + const [state, setState] = useState< + | { status: "idle" } + | { status: "loading" } + | { status: "error"; message: string } + | { status: "ready"; rows: SchemaRowData[]; variants: SchemaVariant[] | null } + >({ status: "idle" }); + + const ref = useRef(null); + const hideRequired = title === "Output"; + + useEffect(() => { + const el = ref.current; + if (!el) return; + + const observer = new IntersectionObserver( + (entries) => { + if (entries[0].isIntersecting) { + observer.disconnect(); + setState({ status: "loading" }); + fetch(url) + .then((r) => { + if (!r.ok) throw new Error(`HTTP ${r.status}`); + return r.json() as Promise>; + }) + .then((schema) => { + const { rows, variants } = buildDisplay(schema); + setState({ status: "ready", rows, variants }); + }) + .catch((err) => { + setState({ status: "error", message: String(err) }); + }); + } + }, + { rootMargin: "200px" }, + ); + observer.observe(el); + return () => observer.disconnect(); + }, [url]); + + return ( +
+ {state.status === "idle" || state.status === "loading" ? ( +
+ + + + + Loading parameters… +
+ ) : state.status === "error" ? ( +

+ Could not load schema. +

+ ) : state.variants && state.variants.length > 0 ? ( + + ) : state.rows.length === 0 ? ( +

+ No parameters defined. +

+ ) : ( + + )} +
+ ); +} From 204f85d9a334a769e69571213cd80af69a811afc Mon Sep 17 00:00:00 2001 From: mvm Date: Thu, 30 Apr 2026 20:53:05 -0500 Subject: [PATCH 08/37] Delete local model JSON files and fetch scripts MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit No longer needed — model data is fetched from middlecache at build time. --- bin/fetch-ai-models.js | 14 - bin/fetch-catalog-models.ts | 431 - .../catalog-models/alibaba-hh1-i2v.json | 172 - .../catalog-models/alibaba-hh1-t2v.json | 176 - .../catalog-models/alibaba-qwen3-max.json | 1930 ---- .../alibaba-qwen3.5-397b-a17b.json | 4358 ------- .../catalog-models/alibaba-wan-2.6-image.json | 199 - .../anthropic-claude-haiku-4.5.json | 613 - .../anthropic-claude-opus-4.6.json | 671 -- .../anthropic-claude-opus-4.7.json | 679 -- .../anthropic-claude-sonnet-4.5.json | 578 - .../anthropic-claude-sonnet-4.6.json | 694 -- .../anthropic-claude-sonnet-4.json | 613 - .../assemblyai-universal-3-pro.json | 1208 -- .../bytedance-seedream-4.0.json | 233 - .../bytedance-seedream-4.5.json | 271 - .../bytedance-seedream-5-lite.json | 277 - .../catalog-models/google-gemini-3-flash.json | 483 - .../google-gemini-3.1-flash-lite.json | 466 - .../catalog-models/google-gemini-3.1-pro.json | 483 - .../catalog-models/google-imagen-4.json | 215 - .../catalog-models/google-nano-banana-2.json | 214 - .../google-nano-banana-pro.json | 207 - .../catalog-models/google-nano-banana.json | 232 - .../catalog-models/google-veo-3-fast.json | 224 - .../catalog-models/google-veo-3.1-fast.json | 224 - .../catalog-models/google-veo-3.1.json | 224 - src/content/catalog-models/google-veo-3.json | 253 - .../catalog-models/inworld-tts-1.5-max.json | 342 - .../catalog-models/inworld-tts-1.5-mini.json | 311 - .../minimax-hailuo-2.3-fast.json | 208 - .../catalog-models/minimax-hailuo-2.3.json | 236 - src/content/catalog-models/minimax-m2.7.json | 746 -- .../catalog-models/minimax-music-2.6.json | 275 - .../catalog-models/minimax-speech-2.8-hd.json | 274 - .../minimax-speech-2.8-turbo.json | 273 - .../catalog-models/openai-gpt-4.1-mini.json | 7337 ------------ .../catalog-models/openai-gpt-4.1.json | 9815 ---------------- .../openai-gpt-4o-transcribe.json | 183 - .../catalog-models/openai-gpt-5.4-mini.json | 5529 --------- .../catalog-models/openai-gpt-5.4-nano.json | 6150 ---------- .../catalog-models/openai-gpt-5.4-pro.json | 651 -- .../catalog-models/openai-gpt-5.4.json | 7990 ------------- .../catalog-models/openai-gpt-5.5.json | 5073 --------- src/content/catalog-models/openai-gpt-5.json | 7150 ------------ .../catalog-models/openai-gpt-image-1.5.json | 230 - .../catalog-models/openai-gpt-image-2.json | 250 - .../catalog-models/openai-o4-mini.json | 9971 ----------------- .../catalog-models/openai-tts-1-hd.json | 211 - src/content/catalog-models/openai-tts-1.json | 239 - src/content/catalog-models/pixverse-v5.6.json | 263 - src/content/catalog-models/pixverse-v6.json | 244 - .../recraft-recraftv4-pro-vector.json | 248 - .../catalog-models/recraft-recraftv4-pro.json | 247 - .../recraft-recraftv4-vector.json | 247 - .../catalog-models/recraft-recraftv4.json | 274 - .../catalog-models/runwayml-gen-4.5.json | 312 - src/content/catalog-models/vidu-q3-pro.json | 221 - src/content/catalog-models/vidu-q3-turbo.json | 248 - src/content/workers-ai-models/aura-1.json | 110 - src/content/workers-ai-models/aura-2-en.json | 138 - src/content/workers-ai-models/aura-2-es.json | 108 - .../workers-ai-models/bart-large-cnn.json | 59 - .../workers-ai-models/bge-base-en-v1.5.json | 179 - .../workers-ai-models/bge-large-en-v1.5.json | 175 - src/content/workers-ai-models/bge-m3.json | 276 - .../workers-ai-models/bge-reranker-base.json | 82 - .../workers-ai-models/bge-small-en-v1.5.json | 175 - .../deepseek-coder-6.7b-base-awq.json | 466 - .../deepseek-coder-6.7b-instruct-awq.json | 466 - .../deepseek-math-7b-instruct.json | 470 - .../deepseek-r1-distill-qwen-32b.json | 477 - .../workers-ai-models/detr-resnet-50.json | 93 - .../discolm-german-7b-v1-awq.json | 466 - .../distilbert-sst-2-int8.json | 62 - .../workers-ai-models/dreamshaper-8-lcm.json | 96 - .../embeddinggemma-300m.json | 66 - .../workers-ai-models/falcon-7b-instruct.json | 466 - .../workers-ai-models/flux-1-schnell.json | 66 - src/content/workers-ai-models/flux-2-dev.json | 73 - .../workers-ai-models/flux-2-klein-4b.json | 68 - .../workers-ai-models/flux-2-klein-9b.json | 73 - src/content/workers-ai-models/flux.json | 160 - .../workers-ai-models/gemma-2b-it-lora.json | 462 - .../workers-ai-models/gemma-3-12b-it.json | 455 - .../workers-ai-models/gemma-4-26b-a4b-it.json | 4772 -------- .../workers-ai-models/gemma-7b-it-lora.json | 462 - .../workers-ai-models/gemma-7b-it.json | 470 - .../gemma-sea-lion-v4-27b-it.json | 1061 -- .../workers-ai-models/glm-4.7-flash.json | 2642 ----- .../workers-ai-models/gpt-oss-120b.json | 921 -- .../workers-ai-models/gpt-oss-20b.json | 921 -- .../granite-4.0-h-micro.json | 473 - .../hermes-2-pro-mistral-7b.json | 466 - .../indictrans2-en-indic-1B.json | 111 - src/content/workers-ai-models/kimi-k2.5.json | 4759 -------- src/content/workers-ai-models/kimi-k2.6.json | 4755 -------- .../llama-2-13b-chat-awq.json | 466 - .../llama-2-7b-chat-fp16.json | 477 - .../llama-2-7b-chat-hf-lora.json | 462 - .../llama-2-7b-chat-int8.json | 454 - .../llama-3-8b-instruct-awq.json | 477 - .../llama-3-8b-instruct.json | 477 - .../llama-3.1-70b-instruct.json | 417 - .../llama-3.1-8b-instruct-awq.json | 473 - .../llama-3.1-8b-instruct-fast.json | 417 - .../llama-3.1-8b-instruct-fp8.json | 473 - .../llama-3.1-8b-instruct.json | 452 - .../llama-3.2-11b-vision-instruct.json | 491 - .../llama-3.2-1b-instruct.json | 473 - .../llama-3.2-3b-instruct.json | 473 - .../llama-3.3-70b-instruct-fp8-fast.json | 578 - .../llama-4-scout-17b-16e-instruct.json | 957 -- .../workers-ai-models/llama-guard-3-8b.json | 152 - .../workers-ai-models/llamaguard-7b-awq.json | 446 - .../workers-ai-models/llava-1.5-7b-hf.json | 106 - .../workers-ai-models/lucid-origin.json | 101 - .../workers-ai-models/m2m100-1.2b.json | 134 - src/content/workers-ai-models/melotts.json | 65 - .../meta-llama-3-8b-instruct.json | 433 - .../mistral-7b-instruct-v0.1-awq.json | 466 - .../mistral-7b-instruct-v0.1.json | 477 - .../mistral-7b-instruct-v0.2-lora.json | 462 - .../mistral-7b-instruct-v0.2.json | 478 - .../mistral-small-3.1-24b-instruct.json | 481 - .../nemotron-3-120b-a12b.json | 2646 ----- .../neural-chat-7b-v3-1-awq.json | 462 - src/content/workers-ai-models/nova-3.json | 337 - .../workers-ai-models/openchat-3.5-0106.json | 466 - .../openhermes-2.5-mistral-7b-awq.json | 462 - src/content/workers-ai-models/phi-2.json | 462 - .../workers-ai-models/phoenix-1.0.json | 97 - .../workers-ai-models/plamo-embedding-1b.json | 77 - .../workers-ai-models/qwen1.5-0.5b-chat.json | 466 - .../workers-ai-models/qwen1.5-1.8b-chat.json | 466 - .../qwen1.5-14b-chat-awq.json | 466 - .../qwen1.5-7b-chat-awq.json | 466 - .../qwen2.5-coder-32b-instruct.json | 452 - .../workers-ai-models/qwen3-30b-a3b-fp8.json | 1073 -- .../qwen3-embedding-0.6b.json | 115 - src/content/workers-ai-models/qwq-32b.json | 485 - src/content/workers-ai-models/resnet-50.json | 73 - .../workers-ai-models/smart-turn-v2.json | 106 - .../workers-ai-models/sqlcoder-7b-2.json | 466 - .../stable-diffusion-v1-5-img2img.json | 114 - .../stable-diffusion-v1-5-inpainting.json | 114 - .../stable-diffusion-xl-base-1.0.json | 114 - .../stable-diffusion-xl-lightning.json | 110 - .../starling-lm-7b-beta.json | 478 - .../tinyllama-1.1b-chat-v1.0.json | 466 - .../uform-gen2-qwen-500m.json | 106 - .../una-cybertron-7b-v2-bf16.json | 462 - .../whisper-large-v3-turbo.json | 207 - .../workers-ai-models/whisper-tiny-en.json | 83 - src/content/workers-ai-models/whisper.json | 93 - .../workers-ai-models/zephyr-7b-beta-awq.json | 466 - 156 files changed, 133964 deletions(-) delete mode 100644 bin/fetch-ai-models.js delete mode 100644 bin/fetch-catalog-models.ts delete mode 100644 src/content/catalog-models/alibaba-hh1-i2v.json delete mode 100644 src/content/catalog-models/alibaba-hh1-t2v.json delete mode 100644 src/content/catalog-models/alibaba-qwen3-max.json delete mode 100644 src/content/catalog-models/alibaba-qwen3.5-397b-a17b.json delete mode 100644 src/content/catalog-models/alibaba-wan-2.6-image.json delete mode 100644 src/content/catalog-models/anthropic-claude-haiku-4.5.json delete mode 100644 src/content/catalog-models/anthropic-claude-opus-4.6.json delete mode 100644 src/content/catalog-models/anthropic-claude-opus-4.7.json delete mode 100644 src/content/catalog-models/anthropic-claude-sonnet-4.5.json delete mode 100644 src/content/catalog-models/anthropic-claude-sonnet-4.6.json delete mode 100644 src/content/catalog-models/anthropic-claude-sonnet-4.json delete mode 100644 src/content/catalog-models/assemblyai-universal-3-pro.json delete mode 100644 src/content/catalog-models/bytedance-seedream-4.0.json delete mode 100644 src/content/catalog-models/bytedance-seedream-4.5.json delete mode 100644 src/content/catalog-models/bytedance-seedream-5-lite.json delete mode 100644 src/content/catalog-models/google-gemini-3-flash.json delete mode 100644 src/content/catalog-models/google-gemini-3.1-flash-lite.json delete mode 100644 src/content/catalog-models/google-gemini-3.1-pro.json delete mode 100644 src/content/catalog-models/google-imagen-4.json delete mode 100644 src/content/catalog-models/google-nano-banana-2.json delete mode 100644 src/content/catalog-models/google-nano-banana-pro.json delete mode 100644 src/content/catalog-models/google-nano-banana.json delete mode 100644 src/content/catalog-models/google-veo-3-fast.json delete mode 100644 src/content/catalog-models/google-veo-3.1-fast.json delete mode 100644 src/content/catalog-models/google-veo-3.1.json delete mode 100644 src/content/catalog-models/google-veo-3.json delete mode 100644 src/content/catalog-models/inworld-tts-1.5-max.json delete mode 100644 src/content/catalog-models/inworld-tts-1.5-mini.json delete mode 100644 src/content/catalog-models/minimax-hailuo-2.3-fast.json delete mode 100644 src/content/catalog-models/minimax-hailuo-2.3.json delete mode 100644 src/content/catalog-models/minimax-m2.7.json delete mode 100644 src/content/catalog-models/minimax-music-2.6.json delete mode 100644 src/content/catalog-models/minimax-speech-2.8-hd.json delete mode 100644 src/content/catalog-models/minimax-speech-2.8-turbo.json delete mode 100644 src/content/catalog-models/openai-gpt-4.1-mini.json delete mode 100644 src/content/catalog-models/openai-gpt-4.1.json delete mode 100644 src/content/catalog-models/openai-gpt-4o-transcribe.json delete mode 100644 src/content/catalog-models/openai-gpt-5.4-mini.json delete mode 100644 src/content/catalog-models/openai-gpt-5.4-nano.json delete mode 100644 src/content/catalog-models/openai-gpt-5.4-pro.json delete mode 100644 src/content/catalog-models/openai-gpt-5.4.json delete mode 100644 src/content/catalog-models/openai-gpt-5.5.json delete mode 100644 src/content/catalog-models/openai-gpt-5.json delete mode 100644 src/content/catalog-models/openai-gpt-image-1.5.json delete mode 100644 src/content/catalog-models/openai-gpt-image-2.json delete mode 100644 src/content/catalog-models/openai-o4-mini.json delete mode 100644 src/content/catalog-models/openai-tts-1-hd.json delete mode 100644 src/content/catalog-models/openai-tts-1.json delete mode 100644 src/content/catalog-models/pixverse-v5.6.json delete mode 100644 src/content/catalog-models/pixverse-v6.json delete mode 100644 src/content/catalog-models/recraft-recraftv4-pro-vector.json delete mode 100644 src/content/catalog-models/recraft-recraftv4-pro.json delete mode 100644 src/content/catalog-models/recraft-recraftv4-vector.json delete mode 100644 src/content/catalog-models/recraft-recraftv4.json delete mode 100644 src/content/catalog-models/runwayml-gen-4.5.json delete mode 100644 src/content/catalog-models/vidu-q3-pro.json delete mode 100644 src/content/catalog-models/vidu-q3-turbo.json delete mode 100644 src/content/workers-ai-models/aura-1.json delete mode 100644 src/content/workers-ai-models/aura-2-en.json delete mode 100644 src/content/workers-ai-models/aura-2-es.json delete mode 100644 src/content/workers-ai-models/bart-large-cnn.json delete mode 100644 src/content/workers-ai-models/bge-base-en-v1.5.json delete mode 100644 src/content/workers-ai-models/bge-large-en-v1.5.json delete mode 100644 src/content/workers-ai-models/bge-m3.json delete mode 100644 src/content/workers-ai-models/bge-reranker-base.json delete mode 100644 src/content/workers-ai-models/bge-small-en-v1.5.json delete mode 100644 src/content/workers-ai-models/deepseek-coder-6.7b-base-awq.json delete mode 100644 src/content/workers-ai-models/deepseek-coder-6.7b-instruct-awq.json delete mode 100644 src/content/workers-ai-models/deepseek-math-7b-instruct.json delete mode 100644 src/content/workers-ai-models/deepseek-r1-distill-qwen-32b.json delete mode 100644 src/content/workers-ai-models/detr-resnet-50.json delete mode 100644 src/content/workers-ai-models/discolm-german-7b-v1-awq.json delete mode 100644 src/content/workers-ai-models/distilbert-sst-2-int8.json delete mode 100644 src/content/workers-ai-models/dreamshaper-8-lcm.json delete mode 100644 src/content/workers-ai-models/embeddinggemma-300m.json delete mode 100644 src/content/workers-ai-models/falcon-7b-instruct.json delete mode 100644 src/content/workers-ai-models/flux-1-schnell.json delete mode 100644 src/content/workers-ai-models/flux-2-dev.json delete mode 100644 src/content/workers-ai-models/flux-2-klein-4b.json delete mode 100644 src/content/workers-ai-models/flux-2-klein-9b.json delete mode 100644 src/content/workers-ai-models/flux.json delete mode 100644 src/content/workers-ai-models/gemma-2b-it-lora.json delete mode 100644 src/content/workers-ai-models/gemma-3-12b-it.json delete mode 100644 src/content/workers-ai-models/gemma-4-26b-a4b-it.json delete mode 100644 src/content/workers-ai-models/gemma-7b-it-lora.json delete mode 100644 src/content/workers-ai-models/gemma-7b-it.json delete mode 100644 src/content/workers-ai-models/gemma-sea-lion-v4-27b-it.json delete mode 100644 src/content/workers-ai-models/glm-4.7-flash.json delete mode 100644 src/content/workers-ai-models/gpt-oss-120b.json delete mode 100644 src/content/workers-ai-models/gpt-oss-20b.json delete mode 100644 src/content/workers-ai-models/granite-4.0-h-micro.json delete mode 100644 src/content/workers-ai-models/hermes-2-pro-mistral-7b.json delete mode 100644 src/content/workers-ai-models/indictrans2-en-indic-1B.json delete mode 100644 src/content/workers-ai-models/kimi-k2.5.json delete mode 100644 src/content/workers-ai-models/kimi-k2.6.json delete mode 100644 src/content/workers-ai-models/llama-2-13b-chat-awq.json delete mode 100644 src/content/workers-ai-models/llama-2-7b-chat-fp16.json delete mode 100644 src/content/workers-ai-models/llama-2-7b-chat-hf-lora.json delete mode 100644 src/content/workers-ai-models/llama-2-7b-chat-int8.json delete mode 100644 src/content/workers-ai-models/llama-3-8b-instruct-awq.json delete mode 100644 src/content/workers-ai-models/llama-3-8b-instruct.json delete mode 100644 src/content/workers-ai-models/llama-3.1-70b-instruct.json delete mode 100644 src/content/workers-ai-models/llama-3.1-8b-instruct-awq.json delete mode 100644 src/content/workers-ai-models/llama-3.1-8b-instruct-fast.json delete mode 100644 src/content/workers-ai-models/llama-3.1-8b-instruct-fp8.json delete mode 100644 src/content/workers-ai-models/llama-3.1-8b-instruct.json delete mode 100644 src/content/workers-ai-models/llama-3.2-11b-vision-instruct.json delete mode 100644 src/content/workers-ai-models/llama-3.2-1b-instruct.json delete mode 100644 src/content/workers-ai-models/llama-3.2-3b-instruct.json delete mode 100644 src/content/workers-ai-models/llama-3.3-70b-instruct-fp8-fast.json delete mode 100644 src/content/workers-ai-models/llama-4-scout-17b-16e-instruct.json delete mode 100644 src/content/workers-ai-models/llama-guard-3-8b.json delete mode 100644 src/content/workers-ai-models/llamaguard-7b-awq.json delete mode 100644 src/content/workers-ai-models/llava-1.5-7b-hf.json delete mode 100644 src/content/workers-ai-models/lucid-origin.json delete mode 100644 src/content/workers-ai-models/m2m100-1.2b.json delete mode 100644 src/content/workers-ai-models/melotts.json delete mode 100644 src/content/workers-ai-models/meta-llama-3-8b-instruct.json delete mode 100644 src/content/workers-ai-models/mistral-7b-instruct-v0.1-awq.json delete mode 100644 src/content/workers-ai-models/mistral-7b-instruct-v0.1.json delete mode 100644 src/content/workers-ai-models/mistral-7b-instruct-v0.2-lora.json delete mode 100644 src/content/workers-ai-models/mistral-7b-instruct-v0.2.json delete mode 100644 src/content/workers-ai-models/mistral-small-3.1-24b-instruct.json delete mode 100644 src/content/workers-ai-models/nemotron-3-120b-a12b.json delete mode 100644 src/content/workers-ai-models/neural-chat-7b-v3-1-awq.json delete mode 100644 src/content/workers-ai-models/nova-3.json delete mode 100644 src/content/workers-ai-models/openchat-3.5-0106.json delete mode 100644 src/content/workers-ai-models/openhermes-2.5-mistral-7b-awq.json delete mode 100644 src/content/workers-ai-models/phi-2.json delete mode 100644 src/content/workers-ai-models/phoenix-1.0.json delete mode 100644 src/content/workers-ai-models/plamo-embedding-1b.json delete mode 100644 src/content/workers-ai-models/qwen1.5-0.5b-chat.json delete mode 100644 src/content/workers-ai-models/qwen1.5-1.8b-chat.json delete mode 100644 src/content/workers-ai-models/qwen1.5-14b-chat-awq.json delete mode 100644 src/content/workers-ai-models/qwen1.5-7b-chat-awq.json delete mode 100644 src/content/workers-ai-models/qwen2.5-coder-32b-instruct.json delete mode 100644 src/content/workers-ai-models/qwen3-30b-a3b-fp8.json delete mode 100644 src/content/workers-ai-models/qwen3-embedding-0.6b.json delete mode 100644 src/content/workers-ai-models/qwq-32b.json delete mode 100644 src/content/workers-ai-models/resnet-50.json delete mode 100644 src/content/workers-ai-models/smart-turn-v2.json delete mode 100644 src/content/workers-ai-models/sqlcoder-7b-2.json delete mode 100644 src/content/workers-ai-models/stable-diffusion-v1-5-img2img.json delete mode 100644 src/content/workers-ai-models/stable-diffusion-v1-5-inpainting.json delete mode 100644 src/content/workers-ai-models/stable-diffusion-xl-base-1.0.json delete mode 100644 src/content/workers-ai-models/stable-diffusion-xl-lightning.json delete mode 100644 src/content/workers-ai-models/starling-lm-7b-beta.json delete mode 100644 src/content/workers-ai-models/tinyllama-1.1b-chat-v1.0.json delete mode 100644 src/content/workers-ai-models/uform-gen2-qwen-500m.json delete mode 100644 src/content/workers-ai-models/una-cybertron-7b-v2-bf16.json delete mode 100644 src/content/workers-ai-models/whisper-large-v3-turbo.json delete mode 100644 src/content/workers-ai-models/whisper-tiny-en.json delete mode 100644 src/content/workers-ai-models/whisper.json delete mode 100644 src/content/workers-ai-models/zephyr-7b-beta-awq.json diff --git a/bin/fetch-ai-models.js b/bin/fetch-ai-models.js deleted file mode 100644 index 9cedee887b8d760..000000000000000 --- a/bin/fetch-ai-models.js +++ /dev/null @@ -1,14 +0,0 @@ -import fs from "fs"; - -fetch("https://ai-cloudflare-com.pages.dev/api/models") - .then((res) => res.json()) - .then((data) => { - data.models.map((model) => { - const fileName = model.name.split("/")[2]; - fs.writeFileSync( - `./src/content/workers-ai-models/${fileName}.json`, - JSON.stringify(model, null, 4), - "utf-8", - ); - }); - }); diff --git a/bin/fetch-catalog-models.ts b/bin/fetch-catalog-models.ts deleted file mode 100644 index 76ca70ba77e33ee..000000000000000 --- a/bin/fetch-catalog-models.ts +++ /dev/null @@ -1,431 +0,0 @@ -/** - * Imports model data from the Unified Catalog and saves as JSON files. - * - * Usage: - * - * Option 1: Import from a local JSON file (exported from dashboard) - * npx tsx bin/fetch-catalog-models.ts --file catalog-export.json - * - * Option 2: Fetch from API - * CLOUDFLARE_API_TOKEN=xxx CLOUDFLARE_ACCOUNT_ID=yyy npx tsx bin/fetch-catalog-models.ts - * - * The API fetch uses two passes: - * 1. Paginated list endpoint to get all model IDs - * 2. Individual detail endpoint for each model (has full examples, schemas, code snippets) - * - * Set CF_API_BASE_URL to override the API base (defaults to https://api.cloudflare.com). - * - * To export from the dashboard: - * 1. Open browser devtools Network tab - * 2. Go to Workers AI > Models in the dashboard - * 3. Find the request to /ai/catalog/models - * 4. Copy the response JSON and save to a file - * 5. Run: npx tsx bin/fetch-catalog-models.ts --file your-export.json - */ - -import fs from "node:fs"; -import path from "node:path"; - -interface CatalogModel { - model_id: string; - provider_id: string | null; - name: string; - description: string; - task: string; - tags: string[]; - context_length: number | null; - max_output_tokens: number | null; - supports_async: boolean; - examples: Array<{ - name: string; - description?: string; - input: Record; - output: Record; - }>; - default_example?: { - input?: Record; - output?: Record; - }; - code_snippets?: Array<{ - label: string; - code: string; - }>; - schema?: { - input?: Record; - output?: Record; - }; - metadata: Record; - external_info: string | null; - terms: string | null; - cover_image_url: string | null; - schema_version: string | null; - private?: boolean; - created_at?: string; - updated_at?: string; - // Returned by the catalog API but not consumed by the docs site. - // Stripped before writing to disk. - pricing?: Record; -} - -interface CatalogListResponse { - success: boolean; - result: CatalogModel[]; - result_info?: { - count: number; - page: number; - per_page: number; - total_count: number; - }; - errors?: Array<{ message: string }>; -} - -interface CatalogDetailResponse { - success: boolean; - result: CatalogModel; - errors?: Array<{ message: string }>; -} - -const OUTPUT_DIR = path.join(process.cwd(), "src/content/catalog-models"); -const API_BASE_URL = - process.env.CF_API_BASE_URL || "https://api.cloudflare.com"; -const PER_PAGE = 100; -const CONCURRENCY = 5; - -function parseArgs(): { file?: string } { - const args = process.argv.slice(2); - const fileIndex = args.indexOf("--file"); - if (fileIndex !== -1 && args[fileIndex + 1]) { - return { file: args[fileIndex + 1] }; - } - return {}; -} - -async function loadFromFile(filePath: string): Promise { - console.log(`Loading models from file: ${filePath}`); - - if (!fs.existsSync(filePath)) { - console.error(`Error: File not found: ${filePath}`); - process.exit(1); - } - - const content = fs.readFileSync(filePath, "utf-8"); - const data = JSON.parse(content) as CatalogListResponse | CatalogModel[]; - - // Handle both array format and API response format - let models: CatalogModel[]; - if (Array.isArray(data)) { - models = data; - } else if (data.result) { - models = data.result; - } else { - console.error( - "Error: Unrecognized file format. Expected array or API response with 'result' field.", - ); - process.exit(1); - } - - const publicModels = models.filter((m) => !m.private); - const skipped = models.length - publicModels.length; - console.log( - ` Loaded ${models.length} models${skipped > 0 ? ` (${skipped} private skipped)` : ""}`, - ); - return publicModels; -} - -function getApiHeaders(token: string): Record { - return { - Authorization: `Bearer ${token}`, - "Content-Type": "application/json", - }; -} - -async function fetchModelList( - accountId: string, - token: string, -): Promise { - const modelIds: string[] = []; - let page = 1; - let hasMore = true; - - console.log("Fetching model list from Unified Catalog API..."); - console.log(` Base URL: ${API_BASE_URL}`); - - while (hasMore) { - const url = `${API_BASE_URL}/client/v4/accounts/${accountId}/ai/catalog/models?page=${page}&per_page=${PER_PAGE}`; - - const response = await fetch(url, { - headers: getApiHeaders(token), - }); - - if (!response.ok) { - console.error( - `API request failed: ${response.status} ${response.statusText}`, - ); - const text = await response.text(); - console.error(text); - process.exit(1); - } - - const data = (await response.json()) as CatalogListResponse; - - if (!data.success) { - console.error("API returned error:", data.errors); - process.exit(1); - } - - let skippedPrivate = 0; - for (const model of data.result) { - if (model.private) { - skippedPrivate++; - continue; - } - modelIds.push(model.model_id); - } - - const { count, total_count } = data.result_info!; - const privateNote = - skippedPrivate > 0 ? ` (${skippedPrivate} private skipped)` : ""; - console.log( - ` Page ${page}: ${count} models (${modelIds.length}/${total_count})${privateNote}`, - ); - - hasMore = modelIds.length < total_count; - page++; - } - - return modelIds; -} - -async function fetchModelDetail( - accountId: string, - token: string, - modelId: string, -): Promise { - const encoded = encodeURIComponent(modelId); - const url = `${API_BASE_URL}/client/v4/accounts/${accountId}/ai/catalog/models/${encoded}`; - - const response = await fetch(url, { - headers: getApiHeaders(token), - }); - - if (!response.ok) { - console.error(` Failed to fetch ${modelId}: ${response.status}`); - return null; - } - - const data = (await response.json()) as CatalogDetailResponse; - - if (!data.success) { - console.error(` Error fetching ${modelId}:`, data.errors); - return null; - } - - return data.result; -} - -async function fetchFromApi(): Promise { - const API_TOKEN = process.env.CLOUDFLARE_API_TOKEN; - const ACCOUNT_ID = process.env.CLOUDFLARE_ACCOUNT_ID; - - if (!API_TOKEN || !ACCOUNT_ID) { - console.error( - "Error: CLOUDFLARE_API_TOKEN and CLOUDFLARE_ACCOUNT_ID environment variables are required", - ); - console.error( - "\nAlternatively, use --file to import from a local JSON export:", - ); - console.error( - " npx tsx bin/fetch-catalog-models.ts --file catalog-export.json", - ); - process.exit(1); - } - - // Pass 1: get all model IDs from the list endpoint - const modelIds = await fetchModelList(ACCOUNT_ID, API_TOKEN); - console.log( - `\nFetching ${modelIds.length} model details (concurrency: ${CONCURRENCY})...`, - ); - - // Pass 2: fetch full details for each model - const models: CatalogModel[] = []; - const failed: string[] = []; - - for (let i = 0; i < modelIds.length; i += CONCURRENCY) { - const batch = modelIds.slice(i, i + CONCURRENCY); - const results = await Promise.all( - batch.map((id) => fetchModelDetail(ACCOUNT_ID, API_TOKEN, id)), - ); - - for (let j = 0; j < results.length; j++) { - const result = results[j]; - if (result) { - models.push(result); - } else { - failed.push(batch[j]); - } - } - - const fetched = Math.min(i + CONCURRENCY, modelIds.length); - process.stdout.write(`\r ${fetched}/${modelIds.length} models fetched`); - } - - console.log(); - - if (failed.length > 0) { - console.log(` Failed: ${failed.length} models`); - for (const id of failed) { - console.log(` - ${id}`); - } - } - - return models; -} - -/** - * Pre-signed URL query parameters that carry credentials or signatures. - * Catalog responses sometimes embed pre-signed delivery URLs (e.g. VolcEngine - * TOS, AWS S3, GCS, Runway CloudFront with `_jwt`) in `raw_response` fields. - * GitHub push protection blocks any commit containing those credentials, so - * we strip the entire query string when one of these parameters is present. - */ -const CREDENTIAL_QUERY_PARAMS = [ - "X-Tos-Credential", - "X-Tos-Signature", - "X-Amz-Credential", - "X-Amz-Signature", - "X-Amz-Security-Token", - "X-Goog-Credential", - "X-Goog-Signature", - "Signature", - "_jwt", -]; - -const CREDENTIAL_QUERY_PATTERN = new RegExp( - `[?&](${CREDENTIAL_QUERY_PARAMS.join("|")})=`, - "i", -); - -function redactCredentialUrls(value: T): T { - if (typeof value === "string") { - if (value.startsWith("http") && CREDENTIAL_QUERY_PATTERN.test(value)) { - const queryIndex = value.indexOf("?"); - return (queryIndex === -1 ? value : value.slice(0, queryIndex)) as T; - } - return value; - } - if (Array.isArray(value)) { - return value.map((item) => redactCredentialUrls(item)) as T; - } - if (value !== null && typeof value === "object") { - const out: Record = {}; - for (const [k, v] of Object.entries(value as Record)) { - out[k] = redactCredentialUrls(v); - } - return out as T; - } - return value; -} - -/** - * Serialize to JSON with all non-ASCII characters escaped as `\uXXXX`. - * - * Catalog API responses sometimes return non-ASCII characters as raw UTF-8 - * (`°`, `“`, `—`) and sometimes as already-escaped sequences (`\u00b0`, - * `\u201c`, `\u2014`), depending on the provider. `JSON.stringify` preserves - * whatever form is in memory, which means re-running the fetcher rewrites - * many model files with no real change — just an encoding flip. - * - * Forcing ASCII-safe output keeps on-disk content stable across re-runs and - * matches the form already checked in. - */ -function stringifyAsciiSafe(value: unknown, indent: string): string { - return JSON.stringify(value, null, indent).replace( - /[\u0080-\uffff]/g, - (c) => "\\u" + c.charCodeAt(0).toString(16).padStart(4, "0"), - ); -} - -function getModelFileName(modelId: string): string { - // model_id format: "@cf/author/model-name" - // Extract the model name (third segment) - const parts = modelId.split("/"); - if (parts.length >= 3) { - return parts[2]; - } - // Fallback: sanitize the full ID - return modelId.replace(/[@/]/g, "-").replace(/^-+/, ""); -} - -function writeModels(models: CatalogModel[]): void { - // Ensure output directory exists - if (!fs.existsSync(OUTPUT_DIR)) { - fs.mkdirSync(OUTPUT_DIR, { recursive: true }); - } - - // Clear existing files (except .gitkeep) - const existingFiles = fs.readdirSync(OUTPUT_DIR); - for (const file of existingFiles) { - if (file !== ".gitkeep") { - fs.unlinkSync(path.join(OUTPUT_DIR, file)); - } - } - - // Write each model to a JSON file - let written = 0; - const skipped: string[] = []; - - for (const model of models) { - // Skip private models - if (model.private) { - skipped.push(model.model_id); - continue; - } - - // Trim string fields that may have leading/trailing whitespace - model.name = model.name.trim(); - model.description = model.description.trim(); - - // Drop the `pricing` field — it's returned by the catalog API but is - // not consumed by the docs site and isn't declared in the schema. - delete model.pricing; - - // Strip credentials from any pre-signed URLs in the response. - const redacted = redactCredentialUrls(model); - - const fileName = getModelFileName(model.model_id); - const filePath = path.join(OUTPUT_DIR, `${fileName}.json`); - - fs.writeFileSync( - filePath, - stringifyAsciiSafe(redacted, "\t") + "\n", - "utf-8", - ); - written++; - } - - console.log(`\nDone!`); - console.log(` Written: ${written} models`); - if (skipped.length > 0) { - console.log(` Skipped (private): ${skipped.length}`); - } - console.log(` Output: ${OUTPUT_DIR}`); -} - -async function main() { - const args = parseArgs(); - - let models: CatalogModel[]; - - if (args.file) { - models = await loadFromFile(args.file); - } else { - models = await fetchFromApi(); - } - - writeModels(models); -} - -main().catch((err) => { - console.error("Unexpected error:", err); - process.exit(1); -}); diff --git a/src/content/catalog-models/alibaba-hh1-i2v.json b/src/content/catalog-models/alibaba-hh1-i2v.json deleted file mode 100644 index 2e43e72b35c4b00..000000000000000 --- a/src/content/catalog-models/alibaba-hh1-i2v.json +++ /dev/null @@ -1,172 +0,0 @@ -{ - "model_id": "alibaba/hh1-i2v", - "provider_id": "alibaba", - "name": "HappyHorse 1.0 I2V", - "description": "Alibaba's HappyHorse 1.0 image-to-video model. Animates a reference image with an optional text prompt. Supports 720P and 1080P output with durations from 3 to 15 seconds.", - "task": "Image-to-Video", - "tags": [ - "Image-to-Video", - "Video Generation" - ], - "context_length": null, - "max_output_tokens": null, - "schema_version": "1.0.0", - "examples": [ - { - "name": "Simple Image-to-Video", - "description": "Animate a reference image with a short prompt", - "input": { - "image": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250925/wpimhv/rap.png", - "prompt": "A gentle camera push-in on the scene with soft ambient lighting" - }, - "output": { - "video": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/alibaba__hh1-i2v/simple-image-to-video.mp4" - }, - "raw_response": { - "state": "Completed", - "result": { - "video": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/alibaba__hh1-i2v/simple-image-to-video.mp4" - }, - "gatewayMetadata": { - "keySource": "BYOK" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'alibaba/hh1-i2v',\n {\n image:\n 'https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250925/wpimhv/rap.png',\n prompt: 'A gentle camera push-in on the scene with soft ambient lighting',\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "High Resolution", - "description": "Generate at 1080P with a longer duration", - "input": { - "image": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250925/wpimhv/rap.png", - "prompt": "Subject begins rapping confidently to the beat, head bobbing", - "resolution": "1080P", - "duration": 10 - }, - "output": { - "video": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/alibaba__hh1-i2v/high-resolution.mp4" - }, - "raw_response": { - "state": "Completed", - "result": { - "video": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/alibaba__hh1-i2v/high-resolution.mp4" - }, - "gatewayMetadata": { - "keySource": "BYOK" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'alibaba/hh1-i2v',\n {\n image:\n 'https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250925/wpimhv/rap.png',\n prompt: 'Subject begins rapping confidently to the beat, head bobbing',\n resolution: '1080P',\n duration: 10,\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Reproducible Output", - "description": "Use a fixed seed for reproducibility", - "input": { - "image": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250925/wpimhv/rap.png", - "prompt": "Camera orbits slowly around the subject under streetlamp light", - "resolution": "720P", - "duration": 8, - "seed": 42 - }, - "output": { - "video": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/alibaba__hh1-i2v/reproducible-output.mp4" - }, - "raw_response": { - "state": "Completed", - "result": { - "video": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/alibaba__hh1-i2v/reproducible-output.mp4" - }, - "gatewayMetadata": { - "keySource": "BYOK" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'alibaba/hh1-i2v',\n {\n image:\n 'https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250925/wpimhv/rap.png',\n prompt: 'Camera orbits slowly around the subject under streetlamp light',\n resolution: '720P',\n duration: 8,\n seed: 42,\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - } - ], - "supports_async": false, - "external_info": "https://modelstudio.console.alibabacloud.com/", - "terms": "https://www.alibabacloud.com/help/en/legal", - "cover_image_url": null, - "metadata": { - "Resolutions": "720P, 1080P", - "Max Duration": "15 seconds", - "Input": "Image URL (no base64)" - }, - "created_at": "2026-04-27 16:27:53", - "default_example": null, - "code_snippets": [], - "zdr": false, - "zdr_comment": null, - "schema": { - "input": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "image": { - "type": "string", - "format": "uri" - }, - "prompt": { - "type": "string" - }, - "negative_prompt": { - "type": "string" - }, - "resolution": { - "type": "string", - "enum": [ - "720P", - "1080P" - ] - }, - "duration": { - "type": "integer", - "minimum": 3, - "maximum": 15 - }, - "seed": { - "type": "integer", - "minimum": 0, - "maximum": 2147483647 - }, - "watermark": { - "type": "boolean" - } - }, - "required": [ - "image" - ], - "additionalProperties": false - }, - "output": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "video": { - "type": "string", - "format": "uri" - } - }, - "required": [ - "video" - ], - "additionalProperties": false - } - } -} diff --git a/src/content/catalog-models/alibaba-hh1-t2v.json b/src/content/catalog-models/alibaba-hh1-t2v.json deleted file mode 100644 index 69ef571fb1d658b..000000000000000 --- a/src/content/catalog-models/alibaba-hh1-t2v.json +++ /dev/null @@ -1,176 +0,0 @@ -{ - "model_id": "alibaba/hh1-t2v", - "provider_id": "alibaba", - "name": "HappyHorse 1.0 T2V", - "description": "Alibaba's HappyHorse 1.0 text-to-video model. Generates videos from a text prompt with configurable resolution, aspect ratio, and duration (3-15s).", - "task": "Text-to-Video", - "tags": [ - "Text-to-Video", - "Video Generation" - ], - "context_length": null, - "max_output_tokens": null, - "schema_version": "1.0.0", - "examples": [ - { - "name": "Simple Text-to-Video", - "description": "Generate a short video from a text prompt", - "input": { - "prompt": "A little girl walking on the road" - }, - "output": { - "video": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/alibaba__hh1-t2v/simple-text-to-video.mp4" - }, - "raw_response": { - "state": "Completed", - "result": { - "video": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/alibaba__hh1-t2v/simple-text-to-video.mp4" - }, - "gatewayMetadata": { - "keySource": "BYOK" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'alibaba/hh1-t2v',\n {\n prompt: 'A little girl walking on the road',\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Vertical 1080P", - "description": "Vertical 9:16 output at 1080P for social media", - "input": { - "prompt": "A dog running through a field of tall grass, slow motion, golden hour", - "resolution": "1080P", - "ratio": "9:16", - "duration": 6 - }, - "output": { - "video": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/alibaba__hh1-t2v/vertical-1080p.mp4" - }, - "raw_response": { - "state": "Completed", - "result": { - "video": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/alibaba__hh1-t2v/vertical-1080p.mp4" - }, - "gatewayMetadata": { - "keySource": "BYOK" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'alibaba/hh1-t2v',\n {\n prompt:\n 'A dog running through a field of tall grass, slow motion, golden hour',\n resolution: '1080P',\n ratio: '9:16',\n duration: 6,\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Reproducible Output", - "description": "Use a fixed seed for reproducibility", - "input": { - "prompt": "Clouds drifting across a mountain range, time-lapse style", - "resolution": "720P", - "ratio": "16:9", - "duration": 5, - "seed": 42 - }, - "output": { - "video": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/alibaba__hh1-t2v/reproducible-output.mp4" - }, - "raw_response": { - "state": "Completed", - "result": { - "video": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/alibaba__hh1-t2v/reproducible-output.mp4" - }, - "gatewayMetadata": { - "keySource": "BYOK" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'alibaba/hh1-t2v',\n {\n prompt: 'Clouds drifting across a mountain range, time-lapse style',\n resolution: '720P',\n ratio: '16:9',\n duration: 5,\n seed: 42,\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - } - ], - "supports_async": false, - "external_info": "https://modelstudio.console.alibabacloud.com/", - "terms": "https://www.alibabacloud.com/help/en/legal", - "cover_image_url": null, - "metadata": { - "Resolutions": "720P, 1080P", - "Aspect Ratios": "16:9, 9:16, 1:1, 4:3, 3:4", - "Max Duration": "15 seconds" - }, - "created_at": "2026-04-27 16:27:55", - "default_example": null, - "code_snippets": [], - "zdr": false, - "zdr_comment": null, - "schema": { - "input": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "prompt": { - "type": "string", - "minLength": 1, - "maxLength": 2500 - }, - "resolution": { - "type": "string", - "enum": [ - "720P", - "1080P" - ] - }, - "ratio": { - "type": "string", - "enum": [ - "16:9", - "9:16", - "1:1", - "4:3", - "3:4" - ] - }, - "duration": { - "type": "integer", - "minimum": 3, - "maximum": 15 - }, - "seed": { - "type": "integer", - "minimum": 0, - "maximum": 2147483647 - }, - "watermark": { - "type": "boolean" - } - }, - "required": [ - "prompt" - ], - "additionalProperties": false - }, - "output": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "video": { - "type": "string", - "format": "uri" - } - }, - "required": [ - "video" - ], - "additionalProperties": false - } - } -} diff --git a/src/content/catalog-models/alibaba-qwen3-max.json b/src/content/catalog-models/alibaba-qwen3-max.json deleted file mode 100644 index de6af2fb59b0f7e..000000000000000 --- a/src/content/catalog-models/alibaba-qwen3-max.json +++ /dev/null @@ -1,1930 +0,0 @@ -{ - "model_id": "alibaba/qwen3-max", - "provider_id": "alibaba", - "name": "Qwen 3 Max", - "description": "Alibaba's Qwen 3 Max is a large language model with strong coding, reasoning, and multilingual capabilities, served via DashScope's OpenAI-compatible endpoint.", - "task": "Text Generation", - "tags": [ - "LLM", - "Coding", - "Reasoning", - "Multilingual" - ], - "context_length": null, - "max_output_tokens": null, - "schema_version": "1.0.0", - "examples": [ - { - "name": "Simple Question", - "description": "Basic chat completion request", - "input": { - "messages": [ - { - "role": "user", - "content": "What are the three laws of thermodynamics?" - } - ] - }, - "output": { - "text": "The three laws of thermodynamics are fundamental principles that describe the behavior of energy and entropy in physical systems:\n\n1. **Zeroth Law of Thermodynamics**: \n *If two systems are each in thermal equilibrium with a third system, then they are in thermal equilibrium with each other.* \n This law establishes the concept of temperature and justifies the use of thermometers.\n\n2. **First Law of Thermodynamics** (Law of Energy Conservation): \n *Energy cannot be created or destroyed in an isolated system; it can only change forms.* \n Mathematically, this is often expressed as: \n \\[\n \\Delta U = Q - W\n \\] \n where \\(\\Delta U\\) is the change in internal energy of the system, \\(Q\\) is the heat added to the system, and \\(W\\) is the work done by the system.\n\n3. **Second Law of Thermodynamics**: \n *The total entropy of an isolated system can never decrease over time; it either increases or remains constant in ideal reversible processes.* \n This law introduces the concept of irreversibility and explains why certain processes occur spontaneously in one direction (e.g., heat flows from hot to cold).\n\nThere is also a **Third Law of Thermodynamics**, which is sometimes included as the fourth in historical contexts but is now standardly recognized as the third:\n\n4. **Third Law of Thermodynamics**: \n *As the temperature of a system approaches absolute zero, the entropy of the system approaches a constant minimum value.* \n In practical terms, it implies that absolute zero (0 K) cannot be reached in a finite number of steps.\n\nSo, while commonly referred to as \u201cthree laws,\u201d modern physics includes **four**\u2014with the Zeroth Law added later for logical completeness, even though it was formulated after the first three." - }, - "raw_response": { - "id": "chatcmpl-1cc68967-fae9-9f2f-aa72-ec0674038c0a", - "object": "chat.completion", - "created": 1776471062, - "model": "qwen3-max", - "choices": [ - { - "index": 0, - "message": { - "role": "assistant", - "content": "The three laws of thermodynamics are fundamental principles that describe the behavior of energy and entropy in physical systems:\n\n1. **Zeroth Law of Thermodynamics**: \n *If two systems are each in thermal equilibrium with a third system, then they are in thermal equilibrium with each other.* \n This law establishes the concept of temperature and justifies the use of thermometers.\n\n2. **First Law of Thermodynamics** (Law of Energy Conservation): \n *Energy cannot be created or destroyed in an isolated system; it can only change forms.* \n Mathematically, this is often expressed as: \n \\[\n \\Delta U = Q - W\n \\] \n where \\(\\Delta U\\) is the change in internal energy of the system, \\(Q\\) is the heat added to the system, and \\(W\\) is the work done by the system.\n\n3. **Second Law of Thermodynamics**: \n *The total entropy of an isolated system can never decrease over time; it either increases or remains constant in ideal reversible processes.* \n This law introduces the concept of irreversibility and explains why certain processes occur spontaneously in one direction (e.g., heat flows from hot to cold).\n\nThere is also a **Third Law of Thermodynamics**, which is sometimes included as the fourth in historical contexts but is now standardly recognized as the third:\n\n4. **Third Law of Thermodynamics**: \n *As the temperature of a system approaches absolute zero, the entropy of the system approaches a constant minimum value.* \n In practical terms, it implies that absolute zero (0 K) cannot be reached in a finite number of steps.\n\nSo, while commonly referred to as \u201cthree laws,\u201d modern physics includes **four**\u2014with the Zeroth Law added later for logical completeness, even though it was formulated after the first three." - }, - "finish_reason": "stop", - "logprobs": null - } - ], - "usage": { - "prompt_tokens": 17, - "completion_tokens": 375, - "total_tokens": 392, - "prompt_tokens_details": { - "cached_tokens": 0 - } - }, - "system_fingerprint": null, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'alibaba/qwen3-max',\n {\n messages: [\n {\n role: 'user',\n content: 'What are the three laws of thermodynamics?',\n },\n ],\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "With System Message", - "description": "Using a system message to set context", - "input": { - "messages": [ - { - "role": "system", - "content": "You are a helpful coding assistant specializing in Python." - }, - { - "role": "user", - "content": "How do I read a JSON file in Python?" - } - ] - }, - "output": { - "text": "To read a JSON file in Python, you can use the built-in `json` module. Here's the basic approach:\n\n## Basic Example\n\n```python\nimport json\n\n# Read JSON file\nwith open('data.json', 'r') as file:\n data = json.load(file)\n\n# Now you can work with your data\nprint(data)\n```\n\n## Step-by-step breakdown:\n\n1. **Import the json module**: `import json`\n2. **Open the file**: Use `open()` with mode `'r'` (read mode)\n3. **Parse the JSON**: Use `json.load()` to parse the file content into Python objects\n4. **Use context manager**: The `with` statement automatically closes the file when done\n\n## Common Data Types After Loading\n\nJSON data gets converted to these Python types:\n- JSON object \u2192 Python dictionary (`dict`)\n- JSON array \u2192 Python list (`list`)\n- JSON string \u2192 Python string (`str`)\n- JSON number \u2192 Python int or float\n- JSON boolean \u2192 Python `True` or `False`\n- JSON null \u2192 Python `None`\n\n## Example with Error Handling\n\n```python\nimport json\n\ntry:\n with open('data.json', 'r') as file:\n data = json.load(file)\n print(\"Data loaded successfully!\")\n print(data)\nexcept FileNotFoundError:\n print(\"File not found!\")\nexcept json.JSONDecodeError:\n print(\"Invalid JSON format!\")\n```\n\n## Reading JSON from a String\n\nIf you have JSON as a string (not a file), use `json.loads()` instead:\n\n```python\nimport json\n\njson_string = '{\"name\": \"Alice\", \"age\": 30}'\ndata = json.loads(json_string)\nprint(data) # {'name': 'Alice', 'age': 30}\n```\n\n## Specifying Encoding (if needed)\n\nFor files with non-UTF-8 encoding:\n\n```python\nwith open('data.json', 'r', encoding='utf-8') as file:\n data = json.load(file)\n```\n\nThe `json.load()` function handles UTF-8 by default, so you usually don't need to specify encoding unless you're dealing with a different character encoding." - }, - "raw_response": { - "id": "chatcmpl-ba93d05e-b778-9fe4-97f6-a2b16726e379", - "object": "chat.completion", - "created": 1776471064, - "model": "qwen3-max", - "choices": [ - { - "index": 0, - "message": { - "role": "assistant", - "content": "To read a JSON file in Python, you can use the built-in `json` module. Here's the basic approach:\n\n## Basic Example\n\n```python\nimport json\n\n# Read JSON file\nwith open('data.json', 'r') as file:\n data = json.load(file)\n\n# Now you can work with your data\nprint(data)\n```\n\n## Step-by-step breakdown:\n\n1. **Import the json module**: `import json`\n2. **Open the file**: Use `open()` with mode `'r'` (read mode)\n3. **Parse the JSON**: Use `json.load()` to parse the file content into Python objects\n4. **Use context manager**: The `with` statement automatically closes the file when done\n\n## Common Data Types After Loading\n\nJSON data gets converted to these Python types:\n- JSON object \u2192 Python dictionary (`dict`)\n- JSON array \u2192 Python list (`list`)\n- JSON string \u2192 Python string (`str`)\n- JSON number \u2192 Python int or float\n- JSON boolean \u2192 Python `True` or `False`\n- JSON null \u2192 Python `None`\n\n## Example with Error Handling\n\n```python\nimport json\n\ntry:\n with open('data.json', 'r') as file:\n data = json.load(file)\n print(\"Data loaded successfully!\")\n print(data)\nexcept FileNotFoundError:\n print(\"File not found!\")\nexcept json.JSONDecodeError:\n print(\"Invalid JSON format!\")\n```\n\n## Reading JSON from a String\n\nIf you have JSON as a string (not a file), use `json.loads()` instead:\n\n```python\nimport json\n\njson_string = '{\"name\": \"Alice\", \"age\": 30}'\ndata = json.loads(json_string)\nprint(data) # {'name': 'Alice', 'age': 30}\n```\n\n## Specifying Encoding (if needed)\n\nFor files with non-UTF-8 encoding:\n\n```python\nwith open('data.json', 'r', encoding='utf-8') as file:\n data = json.load(file)\n```\n\nThe `json.load()` function handles UTF-8 by default, so you usually don't need to specify encoding unless you're dealing with a different character encoding." - }, - "finish_reason": "stop", - "logprobs": null - } - ], - "usage": { - "prompt_tokens": 33, - "completion_tokens": 449, - "total_tokens": 482, - "prompt_tokens_details": { - "cached_tokens": 0 - } - }, - "system_fingerprint": null, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'alibaba/qwen3-max',\n {\n messages: [\n {\n role: 'system',\n content: 'You are a helpful coding assistant specializing in Python.',\n },\n {\n role: 'user',\n content: 'How do I read a JSON file in Python?',\n },\n ],\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Multi-turn Conversation", - "description": "Continuing a conversation with context", - "input": { - "messages": [ - { - "role": "user", - "content": "I need help planning a road trip from San Francisco to Los Angeles." - }, - { - "role": "assistant", - "content": "I'd be happy to help! The drive is about 380 miles and takes roughly 5-6 hours. Would you like suggestions for scenic routes or interesting stops along the way?" - }, - { - "role": "user", - "content": "Yes, what are some good places to stop?" - } - ], - "max_completion_tokens": 2048 - }, - "output": { - "text": "Great! The classic route from San Francisco to Los Angeles along the California coast\u2014especially **Highway 1 (Pacific Coast Highway)**\u2014is one of the most scenic drives in the world. While it takes longer than the inland I-5 freeway (about 8\u201310 hours without stops), it\u2019s absolutely worth it for the views and experiences. Here are some top places to stop, roughly ordered from north to south:\n\n### \ud83c\udf09 **Half Moon Bay** \n- Just 30 miles south of SF \n- Charming coastal town with beaches, tide pools, and great seafood \n- Stop at **Pillar Point Harbor** or walk the **Coastal Trail**\n\n### \ud83c\udfde\ufe0f **Santa Cruz** \n- Famous for its beach boardwalk (oldest in California!), surfing, and laid-back vibe \n- Visit the **Santa Cruz Beach Boardwalk** or explore **Natural Bridges State Beach**\n\n### \ud83d\udc2c **Monterey & Carmel-by-the-Sea** \n- **Monterey**: Don\u2019t miss the world-class **Monterey Bay Aquarium** and Cannery Row \n- **Carmel**: Quaint village with art galleries, fairytale cottages, and **Carmel Beach** \n- Optional detour: **17-Mile Drive** through Pebble Beach (toll road with stunning ocean views)\n\n### \ud83c\udf32 **Big Sur** \n- The crown jewel of the PCH! Dramatic cliffs, redwoods, and ocean vistas \n- Must-stops: \n - **Bixby Creek Bridge** (iconic photo spot) \n - **McWay Falls** at Julia Pfeiffer Burns State Park (80-ft waterfall onto a beach!) \n - **Nepenthe** restaurant for lunch with panoramic views \n\n> \u26a0\ufe0f Note: Check road conditions before heading through Big Sur\u2014landslides occasionally close Highway 1.\n\n### \ud83c\udf77 **San Simeon** \n- Home of **Hearst Castle**, the opulent estate of newspaper magnate William Randolph Hearst \n- Also great for spotting **elephant seals** at the **Piedras Blancas Rookery** just north of town\n\n### \ud83c\udfd6\ufe0f **Cambria & Morro Bay** \n- **Cambria**: Cozy seaside village with unique shops and forest-meets-ocean scenery \n- **Morro Bay**: Known for **Morro Rock**, kayaking, and fresh oysters\n\n### \ud83c\udf34 **San Luis Obispo (SLO)** \n- A relaxed college town with a historic mission, farmers\u2019 market (Thursday nights!), and great food \n- Nearby: **Bubblegum Alley** and **Madonna Inn** (quirky, Instagrammable hotel)\n\n### \ud83c\udfc4 **Pismo Beach** \n- Classic Central Coast surf town with dunes and a long pier \n- Try clam chowder\u2014it\u2019s the \u201cClam Capital of the World\u201d!\n\n### \ud83c\udf3a **Santa Barbara** \n- \u201cThe American Riviera\u201d with Spanish architecture, palm-lined streets, and wine tasting \n- Stroll **Stearns Wharf**, visit the **Mission Santa Barbara**, or relax on **East Beach**\n\n### \ud83c\udfd9\ufe0f **Final Stretch to Los Angeles** \n- From Santa Barbara, you can stay on Highway 1 through **Malibu** (stop at **El Matador Beach** or **Point Dume**) \n- Or hop on US-101 for a quicker arrival into LA\n\n---\n\n### Tips:\n- **Allow 2\u20133 days** if you want to enjoy the stops without rushing \n- **Book lodging in advance**, especially in Big Sur, Carmel, or Santa Barbara \n- **Fill your gas tank**\u2014some stretches (like Big Sur) have limited services \n- **Pack layers**\u2014coastal weather changes fast, even in summer!\n\nWould you like help planning an itinerary based on how many days you have?" - }, - "raw_response": { - "id": "chatcmpl-8ebaff89-c5a7-9010-b5a4-84e5f446841a", - "object": "chat.completion", - "created": 1776471088, - "model": "qwen3-max", - "choices": [ - { - "index": 0, - "message": { - "role": "assistant", - "content": "Great! The classic route from San Francisco to Los Angeles along the California coast\u2014especially **Highway 1 (Pacific Coast Highway)**\u2014is one of the most scenic drives in the world. While it takes longer than the inland I-5 freeway (about 8\u201310 hours without stops), it\u2019s absolutely worth it for the views and experiences. Here are some top places to stop, roughly ordered from north to south:\n\n### \ud83c\udf09 **Half Moon Bay** \n- Just 30 miles south of SF \n- Charming coastal town with beaches, tide pools, and great seafood \n- Stop at **Pillar Point Harbor** or walk the **Coastal Trail**\n\n### \ud83c\udfde\ufe0f **Santa Cruz** \n- Famous for its beach boardwalk (oldest in California!), surfing, and laid-back vibe \n- Visit the **Santa Cruz Beach Boardwalk** or explore **Natural Bridges State Beach**\n\n### \ud83d\udc2c **Monterey & Carmel-by-the-Sea** \n- **Monterey**: Don\u2019t miss the world-class **Monterey Bay Aquarium** and Cannery Row \n- **Carmel**: Quaint village with art galleries, fairytale cottages, and **Carmel Beach** \n- Optional detour: **17-Mile Drive** through Pebble Beach (toll road with stunning ocean views)\n\n### \ud83c\udf32 **Big Sur** \n- The crown jewel of the PCH! Dramatic cliffs, redwoods, and ocean vistas \n- Must-stops: \n - **Bixby Creek Bridge** (iconic photo spot) \n - **McWay Falls** at Julia Pfeiffer Burns State Park (80-ft waterfall onto a beach!) \n - **Nepenthe** restaurant for lunch with panoramic views \n\n> \u26a0\ufe0f Note: Check road conditions before heading through Big Sur\u2014landslides occasionally close Highway 1.\n\n### \ud83c\udf77 **San Simeon** \n- Home of **Hearst Castle**, the opulent estate of newspaper magnate William Randolph Hearst \n- Also great for spotting **elephant seals** at the **Piedras Blancas Rookery** just north of town\n\n### \ud83c\udfd6\ufe0f **Cambria & Morro Bay** \n- **Cambria**: Cozy seaside village with unique shops and forest-meets-ocean scenery \n- **Morro Bay**: Known for **Morro Rock**, kayaking, and fresh oysters\n\n### \ud83c\udf34 **San Luis Obispo (SLO)** \n- A relaxed college town with a historic mission, farmers\u2019 market (Thursday nights!), and great food \n- Nearby: **Bubblegum Alley** and **Madonna Inn** (quirky, Instagrammable hotel)\n\n### \ud83c\udfc4 **Pismo Beach** \n- Classic Central Coast surf town with dunes and a long pier \n- Try clam chowder\u2014it\u2019s the \u201cClam Capital of the World\u201d!\n\n### \ud83c\udf3a **Santa Barbara** \n- \u201cThe American Riviera\u201d with Spanish architecture, palm-lined streets, and wine tasting \n- Stroll **Stearns Wharf**, visit the **Mission Santa Barbara**, or relax on **East Beach**\n\n### \ud83c\udfd9\ufe0f **Final Stretch to Los Angeles** \n- From Santa Barbara, you can stay on Highway 1 through **Malibu** (stop at **El Matador Beach** or **Point Dume**) \n- Or hop on US-101 for a quicker arrival into LA\n\n---\n\n### Tips:\n- **Allow 2\u20133 days** if you want to enjoy the stops without rushing \n- **Book lodging in advance**, especially in Big Sur, Carmel, or Santa Barbara \n- **Fill your gas tank**\u2014some stretches (like Big Sur) have limited services \n- **Pack layers**\u2014coastal weather changes fast, even in summer!\n\nWould you like help planning an itinerary based on how many days you have?" - }, - "finish_reason": "stop", - "logprobs": null - } - ], - "usage": { - "prompt_tokens": 81, - "completion_tokens": 821, - "total_tokens": 902, - "prompt_tokens_details": { - "cached_tokens": 0 - } - }, - "system_fingerprint": null, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'alibaba/qwen3-max',\n {\n messages: [\n {\n role: 'user',\n content:\n 'I need help planning a road trip from San Francisco to Los Angeles.',\n },\n {\n role: 'assistant',\n content:\n \"I'd be happy to help! The drive is about 380 miles and takes roughly 5-6 hours. Would you like suggestions for scenic routes or interesting stops along the way?\",\n },\n {\n role: 'user',\n content: 'Yes, what are some good places to stop?',\n },\n ],\n max_completion_tokens: 2048,\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Creative Writing", - "description": "Longer completion for creative output", - "input": { - "messages": [ - { - "role": "user", - "content": "Write a short story opening about a detective finding an unusual clue." - } - ], - "max_completion_tokens": 2048 - }, - "output": { - "text": "Rain slicked the cobblestones of Blackwater Lane, turning the gaslight into smears of gold on wet stone. Detective Aris Thorne hunched deeper into his trench coat, the damp wool smell a familiar companion to the city\u2019s usual perfume of coal smoke and despair. Another dead end\u2014literally and figuratively\u2014in the case of the vanished heiress, Elara Vance. The alley reeked of stale beer and something sharper, metallic.\n\nThen he saw it.\n\nNestled in a puddle near a overflowing gutter, half-submerged but gleaming with unnatural clarity, was a single playing card. Not just any card. The Queen of Hearts. But this one was wrong. Horribly wrong.\n\nThe queen\u2019s face wasn\u2019t printed ink. It was *stitched*. Delicate, almost surgical sutures traced her features\u2014a crimson thread for lips, fine black silk for eyes, silver wire forming the curve of a regal brow. And where the heart symbol should be, centered on her chest, was a tiny, perfect keyhole, wrought from what looked like tarnished silver. Rainwater pooled around it, but the stitches remained unnervingly dry, as if repelling the downpour.\n\nThorne crouched, ignoring the ache in his knees and the cold seeping through his trousers. He didn\u2019t touch it. Not yet. This wasn\u2019t evidence left by accident; it was a message. A challenge. And the meticulous, chilling craftsmanship whispered of a mind far more dangerous than the common cutpurse or jealous rival he\u2019d been chasing. The rain drummed a frantic rhythm on his hat, but the only sound he truly heard was the sudden, icy thrum of his own pulse. The game, it seemed, had just changed its rules." - }, - "raw_response": { - "id": "chatcmpl-7bdc3457-d069-92c5-9ea0-0f1c3987d776", - "object": "chat.completion", - "created": 1776471079, - "model": "qwen3-max", - "choices": [ - { - "index": 0, - "message": { - "role": "assistant", - "content": "Rain slicked the cobblestones of Blackwater Lane, turning the gaslight into smears of gold on wet stone. Detective Aris Thorne hunched deeper into his trench coat, the damp wool smell a familiar companion to the city\u2019s usual perfume of coal smoke and despair. Another dead end\u2014literally and figuratively\u2014in the case of the vanished heiress, Elara Vance. The alley reeked of stale beer and something sharper, metallic.\n\nThen he saw it.\n\nNestled in a puddle near a overflowing gutter, half-submerged but gleaming with unnatural clarity, was a single playing card. Not just any card. The Queen of Hearts. But this one was wrong. Horribly wrong.\n\nThe queen\u2019s face wasn\u2019t printed ink. It was *stitched*. Delicate, almost surgical sutures traced her features\u2014a crimson thread for lips, fine black silk for eyes, silver wire forming the curve of a regal brow. And where the heart symbol should be, centered on her chest, was a tiny, perfect keyhole, wrought from what looked like tarnished silver. Rainwater pooled around it, but the stitches remained unnervingly dry, as if repelling the downpour.\n\nThorne crouched, ignoring the ache in his knees and the cold seeping through his trousers. He didn\u2019t touch it. Not yet. This wasn\u2019t evidence left by accident; it was a message. A challenge. And the meticulous, chilling craftsmanship whispered of a mind far more dangerous than the common cutpurse or jealous rival he\u2019d been chasing. The rain drummed a frantic rhythm on his hat, but the only sound he truly heard was the sudden, icy thrum of his own pulse. The game, it seemed, had just changed its rules." - }, - "finish_reason": "stop", - "logprobs": null - } - ], - "usage": { - "prompt_tokens": 21, - "completion_tokens": 362, - "total_tokens": 383, - "prompt_tokens_details": { - "cached_tokens": 0 - } - }, - "system_fingerprint": null, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'alibaba/qwen3-max',\n {\n messages: [\n {\n role: 'user',\n content:\n 'Write a short story opening about a detective finding an unusual clue.',\n },\n ],\n max_completion_tokens: 2048,\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Streaming Response", - "description": "Enable streaming for real-time output", - "input": { - "messages": [ - { - "role": "user", - "content": "Explain the concept of recursion with a simple example." - } - ], - "stream": true, - "stream_options": { - "include_usage": true - } - }, - "output": { - "text": [ - "**", - "Recursion**", - " is a programming technique where a", - " function calls itself to solve a problem", - " by breaking it down into smaller,", - " similar subproblems.\n\n##", - " Key Components of Recursion", - "\n\n1. **Base case", - "**: A condition that stops", - " the recursion (prevents", - " infinite loops)\n2.", - " **Recursive case**: The", - " function calls itself with modified", - " arguments that move toward the", - " base case\n\n## Simple", - " Example: Calculating Factor", - "ial\n\nThe factorial of a", - " number `n` (", - "written as `n!`)", - " is the product of all positive", - " integers from 1 to n", - ".\n- 5! =", - " 5 \u00d7 4 \u00d7", - " 3 \u00d7 2 \u00d7", - " 1 = 12", - "0\n- By definition:", - " 0! = 1", - "\n\n### Recursive Implementation\n\n```python", - "\ndef factorial(n):\n ", - " # Base case: stop", - " when n is 0 or", - " 1\n if n", - " <= 1:\n return ", - "1\n \n # Recursive", - " case: n! = n", - " \u00d7 (n-1)!\n", - " return n * factorial(n", - " - 1)\n\n# Example usage", - "\nprint(factorial(5", - ")) # Output: ", - "120\n```\n\n", - "### How it works step by", - " step:\n\n```\nfactorial", - "(5)\n\u251c\u2500\u2500 ", - "5 * factorial(4", - ")\n \u251c\u2500\u2500 4", - " * factorial(3)\n ", - " \u251c\u2500\u2500 3 * factorial(", - "2)\n \u251c\u2500\u2500 2", - " * factorial(1)\n ", - " \u2514\u2500\u2500 returns 1 (", - "base case)\n \u2514", - "\u2500\u2500 returns 2 * ", - "1 = 2\n ", - " \u2514\u2500\u2500 returns 3", - " * 2 = 6", - "\n \u2514\u2500\u2500 returns", - " 4 * 6 =", - " 24\n\u2514", - "\u2500\u2500 returns 5 * ", - "24 = 12", - "0\n```\n\n## Why", - " Recursion Works\n\nEach", - " recursive call works on a **", - "smaller version** of the", - " original problem until it reaches", - " the simplest case (base case).", - " Then, the results bubble", - " back up to build the final", - " answer.\n\n**Important**: Always", - " ensure your recursive function has a proper", - " base case, otherwise it", - " will run infinitely and cause a", - " stack overflow error!" - ] - }, - "raw_response": [ - { - "choices": [ - { - "delta": { - "content": "", - "role": "assistant" - }, - "index": 0, - "logprobs": null, - "finish_reason": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471081, - "system_fingerprint": null, - "model": "qwen3-max", - "id": "chatcmpl-269e4881-6d79-91da-ad5b-a5d16443cade" - }, - { - "choices": [ - { - "finish_reason": null, - "logprobs": null, - "delta": { - "content": "**" - }, - "index": 0 - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471081, - "system_fingerprint": null, - "model": "qwen3-max", - "id": "chatcmpl-269e4881-6d79-91da-ad5b-a5d16443cade" - }, - { - "choices": [ - { - "delta": { - "content": "Recursion**" - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471081, - "system_fingerprint": null, - "model": "qwen3-max", - "id": "chatcmpl-269e4881-6d79-91da-ad5b-a5d16443cade" - }, - { - "choices": [ - { - "delta": { - "content": " is a programming technique where a" - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471081, - "system_fingerprint": null, - "model": "qwen3-max", - "id": "chatcmpl-269e4881-6d79-91da-ad5b-a5d16443cade" - }, - { - "choices": [ - { - "delta": { - "content": " function calls itself to solve a problem" - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471081, - "system_fingerprint": null, - "model": "qwen3-max", - "id": "chatcmpl-269e4881-6d79-91da-ad5b-a5d16443cade" - }, - { - "choices": [ - { - "delta": { - "content": " by breaking it down into smaller," - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471081, - "system_fingerprint": null, - "model": "qwen3-max", - "id": "chatcmpl-269e4881-6d79-91da-ad5b-a5d16443cade" - }, - { - "choices": [ - { - "delta": { - "content": " similar subproblems.\n\n##" - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471081, - "system_fingerprint": null, - "model": "qwen3-max", - "id": "chatcmpl-269e4881-6d79-91da-ad5b-a5d16443cade" - }, - { - "choices": [ - { - "delta": { - "content": " Key Components of Recursion" - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471081, - "system_fingerprint": null, - "model": "qwen3-max", - "id": "chatcmpl-269e4881-6d79-91da-ad5b-a5d16443cade" - }, - { - "choices": [ - { - "delta": { - "content": "\n\n1. **Base case" - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471081, - "system_fingerprint": null, - "model": "qwen3-max", - "id": "chatcmpl-269e4881-6d79-91da-ad5b-a5d16443cade" - }, - { - "choices": [ - { - "delta": { - "content": "**: A condition that stops" - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471081, - "system_fingerprint": null, - "model": "qwen3-max", - "id": "chatcmpl-269e4881-6d79-91da-ad5b-a5d16443cade" - }, - { - "choices": [ - { - "delta": { - "content": " the recursion (prevents" - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471081, - "system_fingerprint": null, - "model": "qwen3-max", - "id": "chatcmpl-269e4881-6d79-91da-ad5b-a5d16443cade" - }, - { - "choices": [ - { - "delta": { - "content": " infinite loops)\n2." - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471081, - "system_fingerprint": null, - "model": "qwen3-max", - "id": "chatcmpl-269e4881-6d79-91da-ad5b-a5d16443cade" - }, - { - "choices": [ - { - "delta": { - "content": " **Recursive case**: The" - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471081, - "system_fingerprint": null, - "model": "qwen3-max", - "id": "chatcmpl-269e4881-6d79-91da-ad5b-a5d16443cade" - }, - { - "choices": [ - { - "delta": { - "content": " function calls itself with modified" - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471081, - "system_fingerprint": null, - "model": "qwen3-max", - "id": "chatcmpl-269e4881-6d79-91da-ad5b-a5d16443cade" - }, - { - "choices": [ - { - "delta": { - "content": " arguments that move toward the" - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471081, - "system_fingerprint": null, - "model": "qwen3-max", - "id": "chatcmpl-269e4881-6d79-91da-ad5b-a5d16443cade" - }, - { - "choices": [ - { - "delta": { - "content": " base case\n\n## Simple" - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471081, - "system_fingerprint": null, - "model": "qwen3-max", - "id": "chatcmpl-269e4881-6d79-91da-ad5b-a5d16443cade" - }, - { - "choices": [ - { - "delta": { - "content": " Example: Calculating Factor" - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471081, - "system_fingerprint": null, - "model": "qwen3-max", - "id": "chatcmpl-269e4881-6d79-91da-ad5b-a5d16443cade" - }, - { - "choices": [ - { - "delta": { - "content": "ial\n\nThe factorial of a" - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471081, - "system_fingerprint": null, - "model": "qwen3-max", - "id": "chatcmpl-269e4881-6d79-91da-ad5b-a5d16443cade" - }, - { - "choices": [ - { - "delta": { - "content": " number `n` (" - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471081, - "system_fingerprint": null, - "model": "qwen3-max", - "id": "chatcmpl-269e4881-6d79-91da-ad5b-a5d16443cade" - }, - { - "choices": [ - { - "delta": { - "content": "written as `n!`)" - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471081, - "system_fingerprint": null, - "model": "qwen3-max", - "id": "chatcmpl-269e4881-6d79-91da-ad5b-a5d16443cade" - }, - { - "choices": [ - { - "delta": { - "content": " is the product of all positive" - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471081, - "system_fingerprint": null, - "model": "qwen3-max", - "id": "chatcmpl-269e4881-6d79-91da-ad5b-a5d16443cade" - }, - { - "choices": [ - { - "delta": { - "content": " integers from 1 to n" - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471081, - "system_fingerprint": null, - "model": "qwen3-max", - "id": "chatcmpl-269e4881-6d79-91da-ad5b-a5d16443cade" - }, - { - "choices": [ - { - "delta": { - "content": ".\n- 5! =" - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471081, - "system_fingerprint": null, - "model": "qwen3-max", - "id": "chatcmpl-269e4881-6d79-91da-ad5b-a5d16443cade" - }, - { - "choices": [ - { - "delta": { - "content": " 5 \u00d7 4 \u00d7" - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471081, - "system_fingerprint": null, - "model": "qwen3-max", - "id": "chatcmpl-269e4881-6d79-91da-ad5b-a5d16443cade" - }, - { - "choices": [ - { - "delta": { - "content": " 3 \u00d7 2 \u00d7" - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471081, - "system_fingerprint": null, - "model": "qwen3-max", - "id": "chatcmpl-269e4881-6d79-91da-ad5b-a5d16443cade" - }, - { - "choices": [ - { - "delta": { - "content": " 1 = 12" - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471081, - "system_fingerprint": null, - "model": "qwen3-max", - "id": "chatcmpl-269e4881-6d79-91da-ad5b-a5d16443cade" - }, - { - "choices": [ - { - "delta": { - "content": "0\n- By definition:" - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471081, - "system_fingerprint": null, - "model": "qwen3-max", - "id": "chatcmpl-269e4881-6d79-91da-ad5b-a5d16443cade" - }, - { - "choices": [ - { - "delta": { - "content": " 0! = 1" - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471081, - "system_fingerprint": null, - "model": "qwen3-max", - "id": "chatcmpl-269e4881-6d79-91da-ad5b-a5d16443cade" - }, - { - "choices": [ - { - "delta": { - "content": "\n\n### Recursive Implementation\n\n```python" - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471081, - "system_fingerprint": null, - "model": "qwen3-max", - "id": "chatcmpl-269e4881-6d79-91da-ad5b-a5d16443cade" - }, - { - "choices": [ - { - "delta": { - "content": "\ndef factorial(n):\n " - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471081, - "system_fingerprint": null, - "model": "qwen3-max", - "id": "chatcmpl-269e4881-6d79-91da-ad5b-a5d16443cade" - }, - { - "choices": [ - { - "delta": { - "content": " # Base case: stop" - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471081, - "system_fingerprint": null, - "model": "qwen3-max", - "id": "chatcmpl-269e4881-6d79-91da-ad5b-a5d16443cade" - }, - { - "choices": [ - { - "delta": { - "content": " when n is 0 or" - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471081, - "system_fingerprint": null, - "model": "qwen3-max", - "id": "chatcmpl-269e4881-6d79-91da-ad5b-a5d16443cade" - }, - { - "choices": [ - { - "delta": { - "content": " 1\n if n" - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471081, - "system_fingerprint": null, - "model": "qwen3-max", - "id": "chatcmpl-269e4881-6d79-91da-ad5b-a5d16443cade" - }, - { - "choices": [ - { - "delta": { - "content": " <= 1:\n return " - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471081, - "system_fingerprint": null, - "model": "qwen3-max", - "id": "chatcmpl-269e4881-6d79-91da-ad5b-a5d16443cade" - }, - { - "choices": [ - { - "delta": { - "content": "1\n \n # Recursive" - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471081, - "system_fingerprint": null, - "model": "qwen3-max", - "id": "chatcmpl-269e4881-6d79-91da-ad5b-a5d16443cade" - }, - { - "choices": [ - { - "delta": { - "content": " case: n! = n" - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471081, - "system_fingerprint": null, - "model": "qwen3-max", - "id": "chatcmpl-269e4881-6d79-91da-ad5b-a5d16443cade" - }, - { - "choices": [ - { - "delta": { - "content": " \u00d7 (n-1)!\n" - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471081, - "system_fingerprint": null, - "model": "qwen3-max", - "id": "chatcmpl-269e4881-6d79-91da-ad5b-a5d16443cade" - }, - { - "choices": [ - { - "delta": { - "content": " return n * factorial(n" - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471081, - "system_fingerprint": null, - "model": "qwen3-max", - "id": "chatcmpl-269e4881-6d79-91da-ad5b-a5d16443cade" - }, - { - "choices": [ - { - "delta": { - "content": " - 1)\n\n# Example usage" - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471081, - "system_fingerprint": null, - "model": "qwen3-max", - "id": "chatcmpl-269e4881-6d79-91da-ad5b-a5d16443cade" - }, - { - "choices": [ - { - "delta": { - "content": "\nprint(factorial(5" - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471081, - "system_fingerprint": null, - "model": "qwen3-max", - "id": "chatcmpl-269e4881-6d79-91da-ad5b-a5d16443cade" - }, - { - "choices": [ - { - "delta": { - "content": ")) # Output: " - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471081, - "system_fingerprint": null, - "model": "qwen3-max", - "id": "chatcmpl-269e4881-6d79-91da-ad5b-a5d16443cade" - }, - { - "choices": [ - { - "delta": { - "content": "120\n```\n\n" - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471081, - "system_fingerprint": null, - "model": "qwen3-max", - "id": "chatcmpl-269e4881-6d79-91da-ad5b-a5d16443cade" - }, - { - "choices": [ - { - "delta": { - "content": "### How it works step by" - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471081, - "system_fingerprint": null, - "model": "qwen3-max", - "id": "chatcmpl-269e4881-6d79-91da-ad5b-a5d16443cade" - }, - { - "choices": [ - { - "delta": { - "content": " step:\n\n```\nfactorial" - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471081, - "system_fingerprint": null, - "model": "qwen3-max", - "id": "chatcmpl-269e4881-6d79-91da-ad5b-a5d16443cade" - }, - { - "choices": [ - { - "delta": { - "content": "(5)\n\u251c\u2500\u2500 " - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471081, - "system_fingerprint": null, - "model": "qwen3-max", - "id": "chatcmpl-269e4881-6d79-91da-ad5b-a5d16443cade" - }, - { - "choices": [ - { - "delta": { - "content": "5 * factorial(4" - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471081, - "system_fingerprint": null, - "model": "qwen3-max", - "id": "chatcmpl-269e4881-6d79-91da-ad5b-a5d16443cade" - }, - { - "choices": [ - { - "delta": { - "content": ")\n \u251c\u2500\u2500 4" - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471081, - "system_fingerprint": null, - "model": "qwen3-max", - "id": "chatcmpl-269e4881-6d79-91da-ad5b-a5d16443cade" - }, - { - "choices": [ - { - "delta": { - "content": " * factorial(3)\n " - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471081, - "system_fingerprint": null, - "model": "qwen3-max", - "id": "chatcmpl-269e4881-6d79-91da-ad5b-a5d16443cade" - }, - { - "choices": [ - { - "delta": { - "content": " \u251c\u2500\u2500 3 * factorial(" - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471081, - "system_fingerprint": null, - "model": "qwen3-max", - "id": "chatcmpl-269e4881-6d79-91da-ad5b-a5d16443cade" - }, - { - "choices": [ - { - "delta": { - "content": "2)\n \u251c\u2500\u2500 2" - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471081, - "system_fingerprint": null, - "model": "qwen3-max", - "id": "chatcmpl-269e4881-6d79-91da-ad5b-a5d16443cade" - }, - { - "choices": [ - { - "delta": { - "content": " * factorial(1)\n " - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471081, - "system_fingerprint": null, - "model": "qwen3-max", - "id": "chatcmpl-269e4881-6d79-91da-ad5b-a5d16443cade" - }, - { - "choices": [ - { - "delta": { - "content": " \u2514\u2500\u2500 returns 1 (" - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471081, - "system_fingerprint": null, - "model": "qwen3-max", - "id": "chatcmpl-269e4881-6d79-91da-ad5b-a5d16443cade" - }, - { - "choices": [ - { - "delta": { - "content": "base case)\n \u2514" - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471081, - "system_fingerprint": null, - "model": "qwen3-max", - "id": "chatcmpl-269e4881-6d79-91da-ad5b-a5d16443cade" - }, - { - "choices": [ - { - "delta": { - "content": "\u2500\u2500 returns 2 * " - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471081, - "system_fingerprint": null, - "model": "qwen3-max", - "id": "chatcmpl-269e4881-6d79-91da-ad5b-a5d16443cade" - }, - { - "choices": [ - { - "delta": { - "content": "1 = 2\n " - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471081, - "system_fingerprint": null, - "model": "qwen3-max", - "id": "chatcmpl-269e4881-6d79-91da-ad5b-a5d16443cade" - }, - { - "choices": [ - { - "delta": { - "content": " \u2514\u2500\u2500 returns 3" - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471081, - "system_fingerprint": null, - "model": "qwen3-max", - "id": "chatcmpl-269e4881-6d79-91da-ad5b-a5d16443cade" - }, - { - "choices": [ - { - "delta": { - "content": " * 2 = 6" - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471081, - "system_fingerprint": null, - "model": "qwen3-max", - "id": "chatcmpl-269e4881-6d79-91da-ad5b-a5d16443cade" - }, - { - "choices": [ - { - "delta": { - "content": "\n \u2514\u2500\u2500 returns" - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471081, - "system_fingerprint": null, - "model": "qwen3-max", - "id": "chatcmpl-269e4881-6d79-91da-ad5b-a5d16443cade" - }, - { - "choices": [ - { - "delta": { - "content": " 4 * 6 =" - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471081, - "system_fingerprint": null, - "model": "qwen3-max", - "id": "chatcmpl-269e4881-6d79-91da-ad5b-a5d16443cade" - }, - { - "choices": [ - { - "delta": { - "content": " 24\n\u2514" - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471081, - "system_fingerprint": null, - "model": "qwen3-max", - "id": "chatcmpl-269e4881-6d79-91da-ad5b-a5d16443cade" - }, - { - "choices": [ - { - "delta": { - "content": "\u2500\u2500 returns 5 * " - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471081, - "system_fingerprint": null, - "model": "qwen3-max", - "id": "chatcmpl-269e4881-6d79-91da-ad5b-a5d16443cade" - }, - { - "choices": [ - { - "delta": { - "content": "24 = 12" - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471081, - "system_fingerprint": null, - "model": "qwen3-max", - "id": "chatcmpl-269e4881-6d79-91da-ad5b-a5d16443cade" - }, - { - "choices": [ - { - "delta": { - "content": "0\n```\n\n## Why" - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471081, - "system_fingerprint": null, - "model": "qwen3-max", - "id": "chatcmpl-269e4881-6d79-91da-ad5b-a5d16443cade" - }, - { - "choices": [ - { - "delta": { - "content": " Recursion Works\n\nEach" - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471081, - "system_fingerprint": null, - "model": "qwen3-max", - "id": "chatcmpl-269e4881-6d79-91da-ad5b-a5d16443cade" - }, - { - "choices": [ - { - "delta": { - "content": " recursive call works on a **" - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471081, - "system_fingerprint": null, - "model": "qwen3-max", - "id": "chatcmpl-269e4881-6d79-91da-ad5b-a5d16443cade" - }, - { - "choices": [ - { - "delta": { - "content": "smaller version** of the" - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471081, - "system_fingerprint": null, - "model": "qwen3-max", - "id": "chatcmpl-269e4881-6d79-91da-ad5b-a5d16443cade" - }, - { - "choices": [ - { - "delta": { - "content": " original problem until it reaches" - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471081, - "system_fingerprint": null, - "model": "qwen3-max", - "id": "chatcmpl-269e4881-6d79-91da-ad5b-a5d16443cade" - }, - { - "choices": [ - { - "delta": { - "content": " the simplest case (base case)." - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471081, - "system_fingerprint": null, - "model": "qwen3-max", - "id": "chatcmpl-269e4881-6d79-91da-ad5b-a5d16443cade" - }, - { - "choices": [ - { - "delta": { - "content": " Then, the results bubble" - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471081, - "system_fingerprint": null, - "model": "qwen3-max", - "id": "chatcmpl-269e4881-6d79-91da-ad5b-a5d16443cade" - }, - { - "choices": [ - { - "delta": { - "content": " back up to build the final" - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471081, - "system_fingerprint": null, - "model": "qwen3-max", - "id": "chatcmpl-269e4881-6d79-91da-ad5b-a5d16443cade" - }, - { - "choices": [ - { - "delta": { - "content": " answer.\n\n**Important**: Always" - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471081, - "system_fingerprint": null, - "model": "qwen3-max", - "id": "chatcmpl-269e4881-6d79-91da-ad5b-a5d16443cade" - }, - { - "choices": [ - { - "delta": { - "content": " ensure your recursive function has a proper" - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471081, - "system_fingerprint": null, - "model": "qwen3-max", - "id": "chatcmpl-269e4881-6d79-91da-ad5b-a5d16443cade" - }, - { - "choices": [ - { - "delta": { - "content": " base case, otherwise it" - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471081, - "system_fingerprint": null, - "model": "qwen3-max", - "id": "chatcmpl-269e4881-6d79-91da-ad5b-a5d16443cade" - }, - { - "choices": [ - { - "delta": { - "content": " will run infinitely and cause a" - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471081, - "system_fingerprint": null, - "model": "qwen3-max", - "id": "chatcmpl-269e4881-6d79-91da-ad5b-a5d16443cade" - }, - { - "choices": [ - { - "delta": { - "content": " stack overflow error!" - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471081, - "system_fingerprint": null, - "model": "qwen3-max", - "id": "chatcmpl-269e4881-6d79-91da-ad5b-a5d16443cade" - }, - { - "choices": [ - { - "finish_reason": "stop", - "delta": { - "content": "" - }, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471081, - "system_fingerprint": null, - "model": "qwen3-max", - "id": "chatcmpl-269e4881-6d79-91da-ad5b-a5d16443cade" - }, - { - "choices": [], - "object": "chat.completion.chunk", - "usage": { - "prompt_tokens": 19, - "completion_tokens": 422, - "total_tokens": 441, - "prompt_tokens_details": { - "cached_tokens": 0 - } - }, - "created": 1776471081, - "system_fingerprint": null, - "model": "qwen3-max", - "id": "chatcmpl-269e4881-6d79-91da-ad5b-a5d16443cade" - } - ], - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'alibaba/qwen3-max',\n {\n messages: [\n {\n role: 'user',\n content: 'Explain the concept of recursion with a simple example.',\n },\n ],\n stream: true,\n stream_options: {\n include_usage: true,\n },\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - } - ], - "supports_async": false, - "external_info": "https://www.alibabacloud.com/en/solutions/generative-ai/qwen", - "terms": "https://www.alibabacloud.com/help/en/legal", - "cover_image_url": "https://pub-26f1392c1b674324be6786695bd72257.r2.dev/alibaba/qwen3-max.png", - "metadata": { - "Architecture": "Transformer" - }, - "created_at": "2026-04-15 22:29:39", - "default_example": null, - "code_snippets": [], - "zdr": false, - "zdr_comment": null, - "schema": { - "input": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "messages": { - "type": "array", - "items": { - "type": "object", - "properties": { - "role": { - "type": "string", - "enum": [ - "system", - "developer", - "user", - "assistant", - "tool" - ] - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - }, - { - "type": "array", - "items": {} - } - ] - } - }, - "required": [ - "role", - "content" - ], - "additionalProperties": {} - } - }, - "temperature": { - "type": "number", - "minimum": 0, - "maximum": 2 - }, - "max_tokens": { - "type": "number", - "exclusiveMinimum": 0 - }, - "max_completion_tokens": { - "type": "number", - "exclusiveMinimum": 0 - }, - "top_p": { - "type": "number", - "minimum": 0, - "maximum": 1 - }, - "frequency_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2 - }, - "presence_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2 - }, - "stream": { - "type": "boolean" - }, - "stream_options": { - "type": "object", - "properties": { - "include_usage": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "tools": { - "type": "array", - "items": {} - }, - "tool_choice": {}, - "response_format": {} - }, - "required": [ - "messages" - ], - "additionalProperties": {} - }, - "output": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "object": { - "type": "string" - }, - "created": { - "type": "number" - }, - "model": { - "type": "string" - }, - "choices": { - "type": "array", - "items": { - "type": "object", - "properties": { - "index": { - "type": "number" - }, - "message": { - "type": "object", - "properties": { - "role": { - "type": "string" - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "tool_calls": { - "type": "array", - "items": {} - } - }, - "required": [ - "role" - ], - "additionalProperties": {} - }, - "finish_reason": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "index", - "message", - "finish_reason" - ], - "additionalProperties": {} - } - }, - "usage": { - "type": "object", - "properties": { - "prompt_tokens": { - "type": "number" - }, - "completion_tokens": { - "type": "number" - }, - "total_tokens": { - "type": "number" - } - }, - "required": [ - "prompt_tokens", - "completion_tokens", - "total_tokens" - ], - "additionalProperties": {} - } - }, - "required": [ - "id", - "object", - "created", - "model", - "choices" - ], - "additionalProperties": {} - } - } -} diff --git a/src/content/catalog-models/alibaba-qwen3.5-397b-a17b.json b/src/content/catalog-models/alibaba-qwen3.5-397b-a17b.json deleted file mode 100644 index 8790a7d51ad87fa..000000000000000 --- a/src/content/catalog-models/alibaba-qwen3.5-397b-a17b.json +++ /dev/null @@ -1,4358 +0,0 @@ -{ - "model_id": "alibaba/qwen3.5-397b-a17b", - "provider_id": "alibaba", - "name": "Qwen 3.5 397B A17B", - "description": "Alibaba's Qwen 3.5 is a 397B-parameter mixture-of-experts model with 17B active parameters, offering strong reasoning capabilities with efficient inference.", - "task": "Text Generation", - "tags": [ - "LLM", - "Coding", - "Reasoning", - "MoE" - ], - "context_length": null, - "max_output_tokens": null, - "schema_version": "1.0.0", - "examples": [ - { - "name": "Simple Question", - "description": "Basic chat completion request", - "input": { - "messages": [ - { - "role": "user", - "content": "What are the three laws of thermodynamics?" - } - ] - }, - "output": { - "text": "The three laws of thermodynamics describe how energy, heat, and entropy behave in physical systems. Here they are, explained simply:\n\n### 1. The First Law: Conservation of Energy\n**The Definition:** Energy cannot be created or destroyed; it can only be transferred or changed from one form to another.\n**What it means:** The total amount of energy in the universe is constant. If you put energy into a system (like heating a pot of water), that energy doesn't disappear; it turns into internal energy (hot water) or work (steam moving a lid).\n* **Simple Summary:** \"You can't get something for nothing.\"\n\n### 2. The Second Law: Entropy\n**The Definition:** The total entropy (disorder or randomness) of an isolated system can never decrease over time.\n**What it means:** Energy naturally flows from a concentrated state to a dispersed state. For example, heat always flows naturally from a hot object to a cold object, never the reverse, unless work is done. Because of this, no machine is 100% efficient; some energy is always lost as waste heat, increasing the disorder of the universe.\n* **Simple Summary:** \"You can't even break even.\" (You always lose some usable energy as heat).\n\n### 3. The Third Law: Absolute Zero\n**The Definition:** As the temperature of a system approaches absolute zero, the entropy of the system approaches a constant minimum.\n**What it means:** Absolute zero (0 Kelvin or -273.15\u00b0C) is the theoretical point where all molecular motion stops. This law implies that it is impossible to cool any substance to exactly absolute zero in a finite number of steps. As you get closer to that temperature, the system becomes perfectly ordered.\n* **Simple Summary:** \"You can't get out of the game.\" (You can never reach absolute zero).\n\n***\n\n### Bonus: The Zeroth Law\nAlthough it was formulated after the first three, it is so fundamental that it was named the \"Zeroth\" law.\n**The Definition:** If two systems are each in thermal equilibrium with a third system, then they are in thermal equilibrium with each other.\n**What it means:** This is the law that allows us to use thermometers. If Thermometer A says Object B is 70\u00b0F, and Thermometer A says Object C is 70\u00b0F, then Object B and Object C are the same temperature.\n\n### The \"Gambling\" Analogy\nPhysicist C.P. Snow famously summarized the laws using a gambling analogy:\n1. **First Law:** You can't win (you can't get more energy out than you put in).\n2. **Second Law:** You can't break even (you will always lose some energy to heat/friction).\n3. **Third Law:** You can't leave the table (you can never reach absolute zero to stop entropy)." - }, - "raw_response": { - "id": "chatcmpl-551fb302-f3c7-927c-879d-7103aaea0479", - "object": "chat.completion", - "created": 1776471119, - "model": "qwen3.5-397b-a17b", - "choices": [ - { - "index": 0, - "message": { - "role": "assistant", - "content": "The three laws of thermodynamics describe how energy, heat, and entropy behave in physical systems. Here they are, explained simply:\n\n### 1. The First Law: Conservation of Energy\n**The Definition:** Energy cannot be created or destroyed; it can only be transferred or changed from one form to another.\n**What it means:** The total amount of energy in the universe is constant. If you put energy into a system (like heating a pot of water), that energy doesn't disappear; it turns into internal energy (hot water) or work (steam moving a lid).\n* **Simple Summary:** \"You can't get something for nothing.\"\n\n### 2. The Second Law: Entropy\n**The Definition:** The total entropy (disorder or randomness) of an isolated system can never decrease over time.\n**What it means:** Energy naturally flows from a concentrated state to a dispersed state. For example, heat always flows naturally from a hot object to a cold object, never the reverse, unless work is done. Because of this, no machine is 100% efficient; some energy is always lost as waste heat, increasing the disorder of the universe.\n* **Simple Summary:** \"You can't even break even.\" (You always lose some usable energy as heat).\n\n### 3. The Third Law: Absolute Zero\n**The Definition:** As the temperature of a system approaches absolute zero, the entropy of the system approaches a constant minimum.\n**What it means:** Absolute zero (0 Kelvin or -273.15\u00b0C) is the theoretical point where all molecular motion stops. This law implies that it is impossible to cool any substance to exactly absolute zero in a finite number of steps. As you get closer to that temperature, the system becomes perfectly ordered.\n* **Simple Summary:** \"You can't get out of the game.\" (You can never reach absolute zero).\n\n***\n\n### Bonus: The Zeroth Law\nAlthough it was formulated after the first three, it is so fundamental that it was named the \"Zeroth\" law.\n**The Definition:** If two systems are each in thermal equilibrium with a third system, then they are in thermal equilibrium with each other.\n**What it means:** This is the law that allows us to use thermometers. If Thermometer A says Object B is 70\u00b0F, and Thermometer A says Object C is 70\u00b0F, then Object B and Object C are the same temperature.\n\n### The \"Gambling\" Analogy\nPhysicist C.P. Snow famously summarized the laws using a gambling analogy:\n1. **First Law:** You can't win (you can't get more energy out than you put in).\n2. **Second Law:** You can't break even (you will always lose some energy to heat/friction).\n3. **Third Law:** You can't leave the table (you can never reach absolute zero to stop entropy).", - "reasoning_content": "Here's a thinking process that leads to the suggested answer:\n\n1. **Analyze the Request:**\n * **Topic:** Thermodynamics.\n * **Question:** What are the three laws?\n * **Goal:** Provide a clear, accurate, and concise explanation of the three laws of thermodynamics.\n\n2. **Identify the Core Content:**\n * *First Law:* Conservation of energy (energy cannot be created or destroyed, only changed).\n * *Second Law:* Entropy (disorder increases, heat flows hot to cold, efficiency limits).\n * *Third Law:* Absolute zero (entropy approaches a constant minimum as temperature approaches absolute zero).\n * *Zeroth Law:* (Optional but good to mention for completeness) Thermal equilibrium.\n\n3. **Drafting the Explanations (Iterative Process):**\n\n * *First Law:*\n * *Draft 1:* Energy stays the same.\n * *Draft 2:* You can't create energy. It just changes form.\n * *Refinement:* Energy cannot be created or destroyed, only transformed or transferred. $\\Delta U = Q - W$.\n * *Analogy:* \"You can't win\" (can't get more energy out than you put in).\n\n * *Second Law:*\n * *Draft 1:* Things get messy. Heat goes to cold.\n * *Draft 2:* Entropy always increases. You can't break even.\n * *Refinement:* The total entropy of an isolated system always increases over time. Heat naturally flows from hot to cold. Perpetual motion machines are impossible.\n * *Analogy:* \"You can't break even\" (you always lose some energy as waste heat).\n\n * *Third Law:*\n * *Draft 1:* Absolute zero is cold.\n * *Draft 2:* At zero Kelvin, entropy stops.\n * *Refinement:* As temperature approaches absolute zero, the entropy of a system approaches a constant minimum. It is impossible to reach absolute zero.\n * *Analogy:* \"You can't get out of the game\" (you can never reach absolute zero).\n\n4. **Structuring the Response:**\n * **Introduction:** Briefly define thermodynamics (study of heat/energy).\n * **The Laws (Numbered):**\n * Name of the law.\n * Formal definition.\n * Simple explanation/implication.\n * (Optional but helpful) The \"Gambling\" analogy is a classic way to remember them.\n * **Bonus:** Mention the Zeroth Law (since it logically comes first but was discovered later).\n * **Conclusion:** Summary sentence.\n\n5. **Refining the Content (Self-Correction during drafting):**\n * *Check:* Did I explain *Entropy* clearly? It's a tricky concept. I should define it as \"disorder\" or \"randomness\" for simplicity, though \"energy dispersal\" is more accurate physically. Let's stick to \"disorder/randomness\" for a general overview but mention energy quality.\n * *Check:* Is the math necessary? Maybe include the formula for the First Law ($\\Delta U = Q - W$) but keep it secondary to the text explanation.\n * *Check:* Make sure to distinguish between \"isolated system\" and just \"system.\"\n\n6. **Final Polish (similar to the provided good output):**\n\n * *First Law:* Conservation of Energy. \"Energy cannot be created or destroyed...\"\n * *Second Law:* Entropy. \"Total entropy of an isolated system can never decrease...\" Mention heat flow.\n * *Third Law:* Absolute Zero. \"Entropy approaches a constant value as temperature approaches absolute zero...\"\n\n * *The \"Gin Rummy\" Analogy:*\n 1. You can't win.\n 2. You can't break even.\n 3. You can't quit the game.\n\n7. **Final Output Generation:** (This matches the structured response provided in the good output.)\n * *Zeroth Law:* Added as a footnote or brief mention because it's foundational.\n\n8. **Review against constraints:** The user asked for \"the three laws.\" I will provide the three main ones but briefly acknowledge the Zeroth law for accuracy.\n\n**(Self-Correction Example during the process):** I initially thought about just saying \"Energy is conserved.\" But that's too brief. I need to explain *how* (transformation). For the Second Law, just saying \"Entropy increases\" is confusing to laypeople. I need to add \"heat flows from hot to cold\" or \"energy becomes less useful.\"\n\n9. **Final Output Construction.** (Proceed to generate the response.)" - }, - "finish_reason": "stop", - "logprobs": null - } - ], - "usage": { - "prompt_tokens": 19, - "completion_tokens": 1675, - "total_tokens": 1694, - "completion_tokens_details": { - "reasoning_tokens": 1056, - "text_tokens": 1675 - }, - "prompt_tokens_details": { - "text_tokens": 19 - } - }, - "system_fingerprint": null, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'alibaba/qwen3.5-397b-a17b',\n {\n messages: [\n {\n role: 'user',\n content: 'What are the three laws of thermodynamics?',\n },\n ],\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "With System Message", - "description": "Using a system message to set context", - "input": { - "messages": [ - { - "role": "system", - "content": "You are a helpful coding assistant specializing in Python." - }, - { - "role": "user", - "content": "How do I read a JSON file in Python?" - } - ] - }, - "output": { - "text": "# Reading JSON Files in Python\n\nPython's built-in `json` module makes it easy to read and work with JSON data. Here's a comprehensive guide:\n\n## 1. Basic Example: Reading a JSON File\n\n```python\nimport json\n\nwith open('data.json', 'r') as file:\n data = json.load(file)\n\nprint(data)\n```\n\n- `json.load()` reads JSON from a file object.\n- The `with` statement ensures the file is properly closed after reading.\n\n## 2. Reading JSON from a String\n\n```python\nimport json\n\njson_string = '{\"name\": \"Alice\", \"age\": 30}'\ndata = json.loads(json_string)\n\nprint(data['name']) # Output: Alice\n```\n\n- `json.loads()` parses JSON from a string.\n\n## 3. With Error Handling\n\n```python\nimport json\n\ntry:\n with open('data.json', 'r') as file:\n data = json.load(file)\nexcept FileNotFoundError:\n print(\"File not found!\")\nexcept json.JSONDecodeError as e:\n print(f\"Invalid JSON: {e}\")\n```\n\n## 4. Complete Example with Sample Data\n\n**data.json**\n```json\n{\n \"name\": \"John\",\n \"age\": 25,\n \"city\": \"New York\",\n \"hobbies\": [\"reading\", \"gaming\"]\n}\n```\n\n**Python Code**\n```python\nimport json\n\nwith open('data.json', 'r') as file:\n data = json.load(file)\n\nprint(f\"Name: {data['name']}\")\nprint(f\"Age: {data['age']}\")\nprint(f\"Hobbies: {', '.join(data['hobbies'])}\")\n```\n\n## 5. Key Differences: `load()` vs `loads()`\n\n| Method | Purpose |\n|-------------|--------------------------------|\n| `json.load()` | Read JSON from a **file** |\n| `json.loads()` | Read JSON from a **string** |\n\n## 6. Useful Options\n\n```python\n# Pretty-print JSON data\nprint(json.dumps(data, indent=4))\n\n# Read with specific encoding\nwith open('data.json', 'r', encoding='utf-8') as file:\n data = json.load(file)\n```\n\n## 7. Working with JSON Arrays\n\n```python\n# If your JSON file contains a list\nwith open('users.json', 'r') as file:\n users = json.load(file) # Returns a list\n\nfor user in users:\n print(user['name'])\n```\n\n## Key Points\n\n- \u2705 Always use `with open()` for safe file handling\n- \u2705 Use `json.load()` for files, `json.loads()` for strings\n- \u2705 JSON objects become Python dictionaries\n- \u2705 JSON arrays become Python lists\n- \u2705 Handle exceptions for robust code\n\nThis covers the most common scenarios for reading JSON in Python. Let me know if you'd like to learn about writing JSON files too!" - }, - "raw_response": { - "id": "chatcmpl-e13707d8-7ad1-9e21-81bb-ada8479d43a5", - "object": "chat.completion", - "created": 1776471107, - "model": "qwen3.5-397b-a17b", - "choices": [ - { - "index": 0, - "message": { - "role": "assistant", - "content": "# Reading JSON Files in Python\n\nPython's built-in `json` module makes it easy to read and work with JSON data. Here's a comprehensive guide:\n\n## 1. Basic Example: Reading a JSON File\n\n```python\nimport json\n\nwith open('data.json', 'r') as file:\n data = json.load(file)\n\nprint(data)\n```\n\n- `json.load()` reads JSON from a file object.\n- The `with` statement ensures the file is properly closed after reading.\n\n## 2. Reading JSON from a String\n\n```python\nimport json\n\njson_string = '{\"name\": \"Alice\", \"age\": 30}'\ndata = json.loads(json_string)\n\nprint(data['name']) # Output: Alice\n```\n\n- `json.loads()` parses JSON from a string.\n\n## 3. With Error Handling\n\n```python\nimport json\n\ntry:\n with open('data.json', 'r') as file:\n data = json.load(file)\nexcept FileNotFoundError:\n print(\"File not found!\")\nexcept json.JSONDecodeError as e:\n print(f\"Invalid JSON: {e}\")\n```\n\n## 4. Complete Example with Sample Data\n\n**data.json**\n```json\n{\n \"name\": \"John\",\n \"age\": 25,\n \"city\": \"New York\",\n \"hobbies\": [\"reading\", \"gaming\"]\n}\n```\n\n**Python Code**\n```python\nimport json\n\nwith open('data.json', 'r') as file:\n data = json.load(file)\n\nprint(f\"Name: {data['name']}\")\nprint(f\"Age: {data['age']}\")\nprint(f\"Hobbies: {', '.join(data['hobbies'])}\")\n```\n\n## 5. Key Differences: `load()` vs `loads()`\n\n| Method | Purpose |\n|-------------|--------------------------------|\n| `json.load()` | Read JSON from a **file** |\n| `json.loads()` | Read JSON from a **string** |\n\n## 6. Useful Options\n\n```python\n# Pretty-print JSON data\nprint(json.dumps(data, indent=4))\n\n# Read with specific encoding\nwith open('data.json', 'r', encoding='utf-8') as file:\n data = json.load(file)\n```\n\n## 7. Working with JSON Arrays\n\n```python\n# If your JSON file contains a list\nwith open('users.json', 'r') as file:\n users = json.load(file) # Returns a list\n\nfor user in users:\n print(user['name'])\n```\n\n## Key Points\n\n- \u2705 Always use `with open()` for safe file handling\n- \u2705 Use `json.load()` for files, `json.loads()` for strings\n- \u2705 JSON objects become Python dictionaries\n- \u2705 JSON arrays become Python lists\n- \u2705 Handle exceptions for robust code\n\nThis covers the most common scenarios for reading JSON in Python. Let me know if you'd like to learn about writing JSON files too!", - "reasoning_content": "This is a straightforward question about reading JSON files in Python. I should provide a clear, practical answer with code examples. Let me cover:\n\n1. The basic method using the json module\n2. Different ways to read JSON (from file, from string)\n3. Error handling\n4. Common use cases\n\nLet me provide a helpful, comprehensive answer with examples." - }, - "finish_reason": "stop", - "logprobs": null - } - ], - "usage": { - "prompt_tokens": 35, - "completion_tokens": 735, - "total_tokens": 770, - "completion_tokens_details": { - "reasoning_tokens": 76, - "text_tokens": 735 - }, - "prompt_tokens_details": { - "text_tokens": 35 - } - }, - "system_fingerprint": null, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'alibaba/qwen3.5-397b-a17b',\n {\n messages: [\n {\n role: 'system',\n content: 'You are a helpful coding assistant specializing in Python.',\n },\n {\n role: 'user',\n content: 'How do I read a JSON file in Python?',\n },\n ],\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Multi-turn Conversation", - "description": "Continuing a conversation with context", - "input": { - "messages": [ - { - "role": "user", - "content": "I need help planning a road trip from San Francisco to Los Angeles." - }, - { - "role": "assistant", - "content": "I'd be happy to help! The drive is about 380 miles and takes roughly 5-6 hours. Would you like suggestions for scenic routes or interesting stops along the way?" - }, - { - "role": "user", - "content": "Yes, what are some good places to stop?" - } - ], - "max_completion_tokens": 2048 - }, - "output": { - "text": "The best stops depend heavily on which route you choose. There are two main options:\n\n1. **Highway 1 (Pacific Coast Highway):** The scenic, iconic route. It takes longer (8\u201310+ hours driving time) but is much more beautiful.\n2. **Interstate 5 (I-5):** The fastest route (5\u20136 hours), but mostly flat farmland and less scenic.\n\nHere are the best stops for both routes, ordered from North to South:\n\n### **Option 1: The Scenic Route (Highway 1)**\n*Best if you have 2 days or want the classic California experience.*\n\n* **Half Moon Bay (30 mins from SF):** Great for a quick coffee and a walk on the beach before leaving the Bay Area.\n* **Santa Cruz (1.5 hours from SF):** Visit the **Santa Cruz Boardwalk** for classic amusement park vibes or surf at Steamer Lane.\n* **Monterey & Carmel-by-the-Sea (2.5 hours from SF):**\n * **Monterey Bay Aquarium:** World-class marine life.\n * **17-Mile Drive:** A scenic toll road with stunning ocean views.\n * **Carmel:** Quaint village feel, great for lunch and browsing art galleries.\n* **Big Sur (3.5 hours from SF):** The highlight of the trip.\n * **Bixby Creek Bridge:** The most photographed bridge in California.\n * **McWay Falls:** An 80-foot waterfall that drops directly onto the beach.\n * *Note: Check Caltrans for road closures before you go, as landslides occasionally close this section.*\n* **San Luis Obispo (SLO) (5.5 hours from SF):** A good halfway point to sleep. Visit **Bubblegum Alley** or the Mission San Luis Obispo.\n* **Solvang (6 hours from SF):** A slight detour off the 101, this is a unique Danish-style village with bakeries and windmills.\n* **Santa Barbara (7 hours from SF):** Known as the \"American Riviera.\" Visit the **Old Mission**, the **Courthouse Sunroom** for views, and **Stearns Wharf**.\n* **Malibu (8.5 hours from SF):** You're almost there! Stop at **Santa Monica Pier** or **Venice Beach** to officially mark the end of the trip.\n\n### **Option 2: The Fast Route (I-5 South)**\n*Best if you just want to get to LA quickly.*\n\n* **Gilroy Premium Outlets (1 hour from SF):** Good for shopping and lunch; known as the \"Garlic Capital of the World.\"\n* **Kettleman City (2.5 hours from SF):** Mostly known for another large outlet mall and fast food stops in the middle of the valley.\n* **Six Flags Magic Mountain (5 hours from SF):** Located in Valencia, just north of LA. Great if you like roller coasters and have extra time.\n\n### **Quick Tips for the Trip**\n* **Time:** If you take Highway 1, I highly recommend splitting it into **two days**. Trying to do it in one day means you'll be driving in the dark and miss the views.\n* **Gas:** Gas prices are higher along Highway 1. Fill up in larger towns like Monterey or San Luis Obispo.\n* **Food:** You can't miss an **In-N-Out Burger** along the way (there are many on both routes).\n* **Traffic:** Avoid leaving SF on Friday afternoon or entering LA during rush hour (3 PM\u20137 PM) if possible.\n\nDo you think you'll prefer the scenic route or the faster one? I can help you plan a schedule based on that!" - }, - "raw_response": { - "id": "chatcmpl-b7453546-cbca-9007-8991-66fc04481256", - "object": "chat.completion", - "created": 1776471146, - "model": "qwen3.5-397b-a17b", - "choices": [ - { - "index": 0, - "message": { - "role": "assistant", - "content": "The best stops depend heavily on which route you choose. There are two main options:\n\n1. **Highway 1 (Pacific Coast Highway):** The scenic, iconic route. It takes longer (8\u201310+ hours driving time) but is much more beautiful.\n2. **Interstate 5 (I-5):** The fastest route (5\u20136 hours), but mostly flat farmland and less scenic.\n\nHere are the best stops for both routes, ordered from North to South:\n\n### **Option 1: The Scenic Route (Highway 1)**\n*Best if you have 2 days or want the classic California experience.*\n\n* **Half Moon Bay (30 mins from SF):** Great for a quick coffee and a walk on the beach before leaving the Bay Area.\n* **Santa Cruz (1.5 hours from SF):** Visit the **Santa Cruz Boardwalk** for classic amusement park vibes or surf at Steamer Lane.\n* **Monterey & Carmel-by-the-Sea (2.5 hours from SF):**\n * **Monterey Bay Aquarium:** World-class marine life.\n * **17-Mile Drive:** A scenic toll road with stunning ocean views.\n * **Carmel:** Quaint village feel, great for lunch and browsing art galleries.\n* **Big Sur (3.5 hours from SF):** The highlight of the trip.\n * **Bixby Creek Bridge:** The most photographed bridge in California.\n * **McWay Falls:** An 80-foot waterfall that drops directly onto the beach.\n * *Note: Check Caltrans for road closures before you go, as landslides occasionally close this section.*\n* **San Luis Obispo (SLO) (5.5 hours from SF):** A good halfway point to sleep. Visit **Bubblegum Alley** or the Mission San Luis Obispo.\n* **Solvang (6 hours from SF):** A slight detour off the 101, this is a unique Danish-style village with bakeries and windmills.\n* **Santa Barbara (7 hours from SF):** Known as the \"American Riviera.\" Visit the **Old Mission**, the **Courthouse Sunroom** for views, and **Stearns Wharf**.\n* **Malibu (8.5 hours from SF):** You're almost there! Stop at **Santa Monica Pier** or **Venice Beach** to officially mark the end of the trip.\n\n### **Option 2: The Fast Route (I-5 South)**\n*Best if you just want to get to LA quickly.*\n\n* **Gilroy Premium Outlets (1 hour from SF):** Good for shopping and lunch; known as the \"Garlic Capital of the World.\"\n* **Kettleman City (2.5 hours from SF):** Mostly known for another large outlet mall and fast food stops in the middle of the valley.\n* **Six Flags Magic Mountain (5 hours from SF):** Located in Valencia, just north of LA. Great if you like roller coasters and have extra time.\n\n### **Quick Tips for the Trip**\n* **Time:** If you take Highway 1, I highly recommend splitting it into **two days**. Trying to do it in one day means you'll be driving in the dark and miss the views.\n* **Gas:** Gas prices are higher along Highway 1. Fill up in larger towns like Monterey or San Luis Obispo.\n* **Food:** You can't miss an **In-N-Out Burger** along the way (there are many on both routes).\n* **Traffic:** Avoid leaving SF on Friday afternoon or entering LA during rush hour (3 PM\u20137 PM) if possible.\n\nDo you think you'll prefer the scenic route or the faster one? I can help you plan a schedule based on that!", - "reasoning_content": "Thinking Process:\n\n1. **Analyze the Request:**\n * **Task:** Plan a road trip from San Francisco (SF) to Los Angeles (LA).\n * **Specific Question:** \"What are some good places to stop?\"\n * **Context:** The user previously asked for help planning the trip, and I confirmed the distance/time and offered route/stop suggestions. Now they want specific stops.\n\n2. **Identify Key Routes:**\n * There are two main routes for SF to LA:\n * **I-5 South:** Fastest, inland, mostly agriculture/flat, less scenic.\n * **Highway 1 (Pacific Coast Highway - PCH):** Scenic, coastal, slower, more stops, iconic.\n * *Decision:* Since the user asked for \"good places to stop,\" they are likely interested in the scenic route (Highway 1) or a mix. I should present options based on the route because the stops differ significantly. I'll focus primarily on Highway 1 as it's the classic \"road trip\" experience, but mention I-5 options for efficiency.\n\n3. **Brainstorm Stops (Highway 1/PCH):**\n * *Half Moon Bay:* Close to SF, beaches, pumpkin season.\n * *Santa Cruz:* Boardwalk, surf culture.\n * *Monterey/Carmel:* Aquarium, 17-Mile Drive, Cannery Row.\n * *Big Sur:* Bixby Bridge, McWay Falls, hiking.\n * *San Luis Obispo (SLO):* Bubblegum Alley, Mission.\n * *Solvang:* Danish village (slightly inland off the 101).\n * *Santa Barbara:* Courthouse, Stearns Wharf, \"American Riviera.\"\n * *Malibu:* Beaches, celebrity homes, nearing LA.\n\n4. **Brainstorm Stops (I-5):**\n * *Gilroy:* Garlic capital (outlets).\n * *Coalinga:* Pretty much nothing.\n * *Kettleman City:* Outlets.\n * *Grapevine:* Tejon Pass (scary drive), Lebec.\n * *Valencia:* Six Flags.\n * *Note:* I-5 is boring. I should emphasize Highway 1 for a \"road trip\" vibe.\n\n5. **Structure the Response:**\n * **Acknowledge the Route Choice:** Crucial because stops depend on the route. Recommend Highway 1 for scenery, I-5 for speed.\n * **Categorize Stops:** Group them geographically (North to South) so the user can visualize the flow.\n * **Highlight Must-Sees:** Pick the top attractions for each stop.\n * **Practical Tips:** Mention driving time, reservations (Big Sur), and best time to travel.\n\n6. **Drafting the Content (Iterative refinement):**\n * *Intro:* Clarify the two main routes.\n * *Route 1: Pacific Coast Highway (Highway 1)* - The Scenic Choice.\n * Stop 1: Monterey/Carmel (Aquarium, 17-Mile).\n * Stop 2: Big Sur (Bixby, McWay Falls). *Warning: Check road conditions.*\n * Stop 3: San Luis Obispo (SLO).\n * Stop 4: Santa Barbara (Courthouse, Wharf).\n * Stop 5: Malibu (Beaches).\n * *Route 2: Interstate 5* - The Fast Choice.\n * Gilroy Premium Outlets.\n * Kettleman City Outlets.\n * Six Flags Magic Mountain (near end).\n * *Tips:* Check Caltrans for road closures (Big Sur slides are common), book accommodations early, allow 2 days for PCH.\n\n7. **Refining for Helpfulness:**\n * Make sure to mention that Highway 1 is currently open but always check for closures due to landslides.\n * Suggest splitting the trip over 2 days if taking PCH.\n * Keep the tone enthusiastic and helpful.\n\n8. **Final Review:** Does this answer the user's question directly? Yes. Is it accurate? Yes. Is it safe advice (regarding road conditions)? Yes.\n\n *(Self-Correction during drafting)*: I should make sure not to overwhelm them. Keep the list curated. Focus on the \"best\" stops. Also, remind them that Highway 1 takes much longer than I-5.\n\n9. **Final Output Generation:** (Matches the planned structure).\n * Greeting & Route Clarification.\n * Highway 1 Stops (North to South).\n * I-5 Stops (Briefly).\n * Practical Tips.\n\n10. **Post-computation check:** Ensure I don't give outdated info about Big Sur closures. As of my last update, it's generally open but prone to closures. I will advise checking current status.\n\n *Let's build the response.*\n * Start with the route distinction.\n * List PCH stops: Half Moon Bay, Santa Cruz, Monterey/Carmel, Big Sur, SLO, Santa Barbara, Malibu.\n * List I-5 stops: Gilroy, Kettleman, Valencia.\n * Add tips on timing and reservations.\n\n *Wait, one more thing:* Food recommendations add value. Maybe mention In-N-Out or specific local spots? Keep it general enough to be useful but specific enough to be actionable.\n\n *Okay, ready to write.*" - }, - "finish_reason": "stop", - "logprobs": null - } - ], - "usage": { - "prompt_tokens": 83, - "completion_tokens": 2079, - "total_tokens": 2162, - "completion_tokens_details": { - "reasoning_tokens": 1250, - "text_tokens": 2079 - }, - "prompt_tokens_details": { - "text_tokens": 83 - } - }, - "system_fingerprint": null, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'alibaba/qwen3.5-397b-a17b',\n {\n messages: [\n {\n role: 'user',\n content:\n 'I need help planning a road trip from San Francisco to Los Angeles.',\n },\n {\n role: 'assistant',\n content:\n \"I'd be happy to help! The drive is about 380 miles and takes roughly 5-6 hours. Would you like suggestions for scenic routes or interesting stops along the way?\",\n },\n {\n role: 'user',\n content: 'Yes, what are some good places to stop?',\n },\n ],\n max_completion_tokens: 2048,\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Creative Writing", - "description": "Longer completion for creative output", - "input": { - "messages": [ - { - "role": "user", - "content": "Write a short story opening about a detective finding an unusual clue." - } - ], - "max_completion_tokens": 2048 - }, - "output": { - "text": "The rain didn't fall so much as it hovered, a wet gray mist that clung to Detective Silas Vane's trench coat like a second skin. He ducked under the yellow tape, the flashing blue and red lights of the cruisers painting the puddles in fractured neon. Inside the apartment, the air was still, smelling faintly of copper and old paper.\n\nThe victim lay sprawled across the Persian rug, a man of means who had died in a place of solitude. The uniformed officers had already tagged the obvious: the empty pistol on the desk, the shattered whiskey glass, the note that screamed suicide but felt too practiced to be real.\n\nVane ignored them all. He knelt beside the body, his knees cracking in the silence. He wasn't looking at the dead man's face, but at his right hand. The fingers were curled tight, locked in rigor mortis around something small and metallic.\n\n\"Bag it,\" Vane said, his voice gravelly from too many cigarettes and not enough sleep.\n\nAn officer stepped forward with evidence tweezers, but Vane held up a gloved hand. He leaned in closer. Resting in the palm of the dead man's hand was a die. It was heavy, made of brushed steel, cold to the touch even through the latex of his glove.\n\nVane frowned. He turned the object slightly with the tip of the tweezers.\n\nOne face showed a single dot. The next, two. The third, three. But as he rotated it, the geometry stopped making sense. There were no opposing sides that added up to seven. There wasn't even a standard cube shape; it was slightly asymmetrical, worn smooth on one edge as if it had been rolled a million times.\n\nAnd then he saw the seventh face.\n\nStandard dice have six. This one had a flat, polished surface where a corner should have been, etched with a symbol Vane didn't recognize: a circle bisected by a jagged line.\n\nHe glanced at the sealed windows, then back at the die. It was warm. Not body heat warm, but vibrating with a low, humless energy that tickled the tips of his fingers. Someone hadn't just dropped this; someone had placed it here after the heart stopped beating.\n\n\"Change of plans,\" Vane said, standing up and pocketing the evidence bag without sealing it. \"Don't bag the body yet. I think he was waiting for someone to roll again.\"" - }, - "raw_response": { - "id": "chatcmpl-4ae9ebad-774d-9704-a906-36faf1c115e1", - "object": "chat.completion", - "created": 1776471203, - "model": "qwen3.5-397b-a17b", - "choices": [ - { - "index": 0, - "message": { - "role": "assistant", - "content": "The rain didn't fall so much as it hovered, a wet gray mist that clung to Detective Silas Vane's trench coat like a second skin. He ducked under the yellow tape, the flashing blue and red lights of the cruisers painting the puddles in fractured neon. Inside the apartment, the air was still, smelling faintly of copper and old paper.\n\nThe victim lay sprawled across the Persian rug, a man of means who had died in a place of solitude. The uniformed officers had already tagged the obvious: the empty pistol on the desk, the shattered whiskey glass, the note that screamed suicide but felt too practiced to be real.\n\nVane ignored them all. He knelt beside the body, his knees cracking in the silence. He wasn't looking at the dead man's face, but at his right hand. The fingers were curled tight, locked in rigor mortis around something small and metallic.\n\n\"Bag it,\" Vane said, his voice gravelly from too many cigarettes and not enough sleep.\n\nAn officer stepped forward with evidence tweezers, but Vane held up a gloved hand. He leaned in closer. Resting in the palm of the dead man's hand was a die. It was heavy, made of brushed steel, cold to the touch even through the latex of his glove.\n\nVane frowned. He turned the object slightly with the tip of the tweezers.\n\nOne face showed a single dot. The next, two. The third, three. But as he rotated it, the geometry stopped making sense. There were no opposing sides that added up to seven. There wasn't even a standard cube shape; it was slightly asymmetrical, worn smooth on one edge as if it had been rolled a million times.\n\nAnd then he saw the seventh face.\n\nStandard dice have six. This one had a flat, polished surface where a corner should have been, etched with a symbol Vane didn't recognize: a circle bisected by a jagged line.\n\nHe glanced at the sealed windows, then back at the die. It was warm. Not body heat warm, but vibrating with a low, humless energy that tickled the tips of his fingers. Someone hadn't just dropped this; someone had placed it here after the heart stopped beating.\n\n\"Change of plans,\" Vane said, standing up and pocketing the evidence bag without sealing it. \"Don't bag the body yet. I think he was waiting for someone to roll again.\"", - "reasoning_content": "Thinking Process:\n\n1. **Analyze the Request:**\n * **Topic:** A detective finding an unusual clue.\n * **Format:** Short story opening.\n * **Tone:** Implicitly mystery/noir/thriller (given the genre).\n * **Goal:** Hook the reader, establish atmosphere, introduce the detective and the clue.\n\n2. **Brainstorming Core Elements:**\n * *Detective:* Needs a name, a vibe (tired, observant, cynical?). Let's go with Elias Thorne. Grizzled, maybe a bit old-school.\n * *Setting:* Crime scene. Rain is clich\u00e9 but effective. Maybe an abandoned place? A library? A high-tech lab? Let's try a cramped, overly warm apartment. Contrast the cold case with the heat.\n * *The Clue:* Needs to be \"unusual.\" Not a fingerprint or a shell casing. Something out of place. A living thing? A sound? A smell? An object that shouldn't exist?\n * Idea 1: A clock running backwards.\n * Idea 2: A bird inside a sealed room.\n * Idea 3: A book written in a language that doesn't exist.\n * Idea 4: A single, fresh flower in a rotting room.\n * Idea 5: A pocket watch filled with sand instead of gears.\n * *Selection:* Let's go with something sensory and slightly surreal. A pocket watch filled with sand is good, but maybe too steampunk. How about a sound? No, visual is better for an opening. Let's try a *living* clue in a dead place. A origami bird? No. How about a photograph that changes? Too sci-fi.\n * *Revised Selection:* A single, pristine white glove, but it's wet with saltwater, despite being miles from the ocean in a dry season. Or... a key made of ice that hasn't melted.\n * *Final Decision:* A music box that plays a tune no one has heard, found in a place where music is forbidden/impossible. Or simpler: A specific, anachronistic object. Let's go with a *pocket watch that ticks backwards*. It implies time manipulation or a specific signature. Actually, let's make it more tangible. A *seed* from a plant extinct for a century, found in the victim's clenched fist.\n\n3. **Drafting - Scene Setting:**\n * Rain against the window.\n * Police tape.\n * The body (briefly mentioned, don't linger too much, focus on the clue).\n * Elias's internal state.\n\n4. **Drafting - The Discovery:**\n * Elias is searching.\n * He finds something the uniforms missed.\n * The realization of its significance.\n\n5. **Refining the Prose:**\n * Show, don't tell.\n * Use sensory details (smell of copper, sound of rain, texture of the object).\n * Keep it tight.\n\n6. **Writing - First Pass (Mental):**\n Elias stood over the body. It was dead. He looked around. He saw something on the floor. It was a blue marble. But it was warm. He picked it up. It hummed. He knew this meant trouble.\n\n *Critique:* Too bland. Needs more atmosphere.\n\n7. **Writing - Second Pass (Closer to final):**\n The rain hammered the precinct roof. Elias Thorne didn't care. He was at the scene. The victim was slumped in the chair. Elias looked at the desk. Everything was normal except one thing. A single gear. But it was made of wood. Wood doesn't work in watches. He picked it up. It smelled like lavender.\n\n *Critique:* Better. Let's polish the \"unusual\" aspect. A wooden gear is okay, but let's make it more striking. A *live moth* pinned to the wall with a murder weapon? No. Let's go with the *extinct seed* idea. It implies history and impossibility.\n\n8. **Finalizing the Concept:**\n * Detective: Elias Thorne.\n * Scene: A locked room, study.\n * Clue: A flower petal that shouldn't exist. Specifically, a *Night-Blooming Cereus* that blooms only once, but it's midday, or a species thought extinct. Let's go with a *blue rose* that isn't dyed. No, let's go with *sand* in a inland house.\n * *Wait, I like the \"watch ticking backwards\" idea.* It's classic but effective. Let's twist it. A watch that *doesn't tick*, but breathes. No, too fantasy.\n * *Okay, final choice:* A key made of glass, found in a lock of wood. It shouldn't fit, but it does.\n * *Actually, let's go with something simpler but eerie.* A photograph of the detective himself, taken at the crime scene, found in the victim's wallet, dated tomorrow.\n * *No, keep it grounded.* A single, wet footprint that leads *out* of a sealed room, but the floor is dry everywhere else.\n * *Okay, let's settle on:* A pocket watch filled with seawater, found in a desert town.\n * *Wait, I'll write about a specific object:* A child's toy soldier, but it's wearing a uniform from a war that never happened.\n\n *Let's pivot to atmosphere.* The rain, the body, the object.\n Object: A silver locket. Inside, not a picture, but a coordinate.\n Object: A matchbook from a club that burned down ten years ago.\n Object: A single ice cube that won't melt.\n\n *Let's go with the Ice Cube.* It's visceral.\n\n *Re-evaluating:* The prompt asks for an \"unusual clue.\"\n Let's try: A bird. A live canary in a cage, in a house where the owner was allergic and no pets were allowed, singing a specific tune.\n Actually, I think the *extinct flower* is the strongest visual.\n\n *Drafting the scene:*\n Elias Thorne hated rainy nights. The body is in the library. He finds a petal. It's from a Ghost Orchid. They don't grow here. They barely exist.\n\n *Let's write it.*\n\n9. **Polishing:**\n * Focus on the lighting (flickering bulb).\n * The silence vs. the rain.\n * The tactile sensation of the clue.\n\n *(Self-Correction during drafting)*: Make sure the clue feels *wrong*. Not just out of place, but impossible.\n\n *Revised Clue Idea:* A message written in dust... that was wiped away *before* the dust settled. No, too abstract.\n *Revised Clue Idea:* A bullet casing made of ceramic. Rare, but possible.\n *Revised Clue Idea:* A playing card. The Ace of Spades. But it's blank.\n *Let's go with the \"Watch ticking backwards\" idea. It's punchy.*\n\n *Wait, one more idea:* A shoe. A single red shoe. But the victim is a man wearing black boots. And the shoe is size 2. Too clich\u00e9.\n\n *Okay, I will write about a pocket watch that is filled with sand instead of mechanics.* It suggests time running out or an hourglass metaphor.\n\n *Wait, let's make it more mysterious.* A key that fits no known lock, found inside a sealed envelope that was already opened.\n\n *Okay, final decision:* A single, fresh gardenia pinned to the lapel of a man who died three days ago. The flower should be rotting. It isn't.\n\n *Let's go.*\n\n10. **Final Polish:** Check pacing and voice. Ensure it ends on a hook.\n\n *(Wait, I want to make sure the \"unusual\" part lands hard.)*\n Let's try: The clue is a sound. The room is silent, but his recorder picks up a whisper.\n No, visual is better for reading.\n Let's go with the *Gardenia* idea. It contrasts life and death, freshness and decay.\n\n *Wait, I'll change it to:* A photograph of the crime scene, taken from the ceiling's perspective, found in the victim's pocket before the body was discovered.\n *No, that's too meta.*\n\n *Okay, sticking with the Gardenia.* It's simple, sensory, and wrong.\n Actually, let's make it a *pocket watch that runs on water*. No.\n Let's go with **a key made of ice that hasn't melted.** It implies cold, magic, or specific preservation.\n Okay, I'll write about the **ice key**. It creates immediate questions.\n\n *Wait, is ice too fantasy?* Maybe.\n How about **a coin from a country that doesn't exist?**\n Okay, **a coin dated next year.**\n Let's go with **the coin dated next year.** It's grounded but impossible.\n\n *Wait, I like the \"wet footprint in a dry room\" idea best.* It implies entry/exit that defies physics.\n Let's combine: **A wet footprint that leads to the middle of the room and stops.**\n\n *Okay, writing now.*\n\n *Wait, one last thought:* Make the detective weary. It adds weight.\n Setting: An abandoned theater.\n Clue: A single spotlight turning on by itself.\n No, keep it physical.\n Clue: A ticket stub for a show that hasn't been scheduled yet.\n\n *Okay, I'll go with the Ticket Stub.* It implies future knowledge.\n\n *(Final Final Decision)*: I'll write about a **pocket watch that ticks backwards.** It's a strong image.\n\n *Wait, I want to avoid sci-fi.* Let's make it a **seed.** A seed from a tree that hasn't grown in this climate for a million years. Found in a modern apartment.\n Okay, I will write about the **seed.**\n\n *Actually, let's go with something more noir.* A **matchbook** from a place that burned down 50 years ago, but the matches are fresh.\n Yes. That's good. Smell of sulfur, history, impossibility.\n\n *Let's write.*\n\n *Wait, I need to make sure it's an \"opening\".* Start in media res.\n\n (Drafting mental outline)\n 1. Rain, night, crime scene tape.\n 2. Detective Miller (let's change name to Miller).\n 3. Body is irrelevant, focus on the hand.\n 4. Clutched in hand: The matchbook.\n 5. He strikes one. It lights. The logo is of a place that doesn't exist anymore.\n 6. Hook: How is this possible?\n\n *Let's refine:* Striking the match might destroy evidence. He just looks at it.\n The logo: \"The Obsidian Lounge.\" Burned 1974.\n The matches: Dry, usable.\n The date on the book: Tomorrow.\n Okay, that's too much. Just the logo and the freshness.\n\n *Let's go.*\n\n *(Self-Correction)*: Keep it tight. 300-400 words.\n\n *Wait, I'll switch to the \"Ice Key\" idea. It's more visual.*\n No, the Matchbook is more noir.\n Okay, I'll stick with the Matchbook.\n\n *Wait, I want to make it more unique.*\n How about a **button**? A button made of human bone.\n Too gruesome?\n How about a **feather**? From a dodo.\n Too absurd.\n\n *Okay, I'll go with the **Watch that ticks backwards**.* It's the strongest metaphor for a detective story (undoing time/solving the past).\n\n *Wait, I'll write about a **shadow**.* The victim's shadow is pointing the wrong way relative to the light source.\n That's subtle and creepy.\n\n *Okay, I will write about the **Shadow**.*\n No, hard to describe in text without confusing the reader.\n Back to the **Matchbook**. It's solid.\n\n *Wait, I have a better idea.*\n A **voice recording** on an old analog tape found in a digital age scene.\n No.\n\n *Okay, I'll go with the **fresh flower in a sealed room**.*\n It's classic for a reason.\n Let's make it a **red camellia**.\n Okay, writing now.\n\n *Wait, I need to ensure the \"unusual\" part pops.*\n The flower is **blooming** as he watches.\n No, too magic.\n The flower is **frozen** in a warm room.\n Okay.\n\n *Let's just write.*\n Detective: Silas Vane.\n Scene: Locked study.\n Clue: A glass of water with a reflection that doesn't match the room.\n No.\n Clue: A **single die** showing a side that doesn't exist (7 dots).\n Yes. That's physical, impossible, and intriguing.\n\n *Okay, final plan:*\n 1. Silas Vane enters the room.\n 2. Body on the floor.\n 3. He sees the die.\n 4. It has seven sides/faces.\n 5. He picks it up. It's warm.\n 6. End opening.\n\n *Let's do this.*" - }, - "finish_reason": "stop", - "logprobs": null - } - ], - "usage": { - "prompt_tokens": 23, - "completion_tokens": 3578, - "total_tokens": 3601, - "completion_tokens_details": { - "reasoning_tokens": 3058, - "text_tokens": 3578 - }, - "prompt_tokens_details": { - "text_tokens": 23 - } - }, - "system_fingerprint": null, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'alibaba/qwen3.5-397b-a17b',\n {\n messages: [\n {\n role: 'user',\n content:\n 'Write a short story opening about a detective finding an unusual clue.',\n },\n ],\n max_completion_tokens: 2048,\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Streaming Response", - "description": "Enable streaming for real-time output", - "input": { - "messages": [ - { - "role": "user", - "content": "Explain the concept of recursion with a simple example." - } - ], - "stream": true, - "stream_options": { - "include_usage": true - } - }, - "output": { - "text": [ - "# Understanding", - " Recursion\n\n**", - "Recursion**", - " is a programming technique", - " where a function calls", - " itself to solve a", - " problem", - ". It's like", - " solving", - " a big problem by", - " breaking it down", - " into smaller versions of", - " the same problem", - ".\n\n## Key", - " Components\n\nEvery recursive", - " function needs two essential", - " parts:\n\n1", - ". **Base Case", - "** \u2013", - " The condition that stops", - " the recursion", - " (prevents infinite", - " loops", - ")\n2.", - " **Recursive Case**", - " \u2013 Where the function", - " calls itself", - " with a simpler version", - " of the problem\n\n", - "## Simple Example:", - " Calcul", - "ating Factorial\n\n", - "The factorial of", - " a number `n", - "` (written", - " as `n!", - "`) is the product", - " of all positive integers", - " up to `n", - "`.\n\n```python", - "\ndef factorial(n", - "):\n #", - " Base case\n", - " if n ==", - " 0", - " or n == ", - "1:\n ", - " return 1\n \n", - " # Recursive case", - "\n return n", - " * factorial(n -", - " 1)\n", - "```\n\n### How", - " It Works: `", - "factorial(", - "4)`\n\n```", - "\nfactor", - "ial(4)", - "\n= 4", - " * factorial(3", - ")\n= ", - "4 * (3", - " * factorial(", - "2))\n=", - " 4 * (", - "3 * (2", - " * factorial(1", - ")))\n= ", - "4 * (3", - " * (2 *", - " 1)) ", - " \u2190 Base case reached", - "!\n= ", - "4 * (3", - " * 2)", - "\n= 4", - " * 6", - "\n= 2", - "4\n```\n\n", - "**Visual Flow:**", - "\n```\n", - "factorial(4", - ") \u2192 4", - " \u00d7 factorial(3", - ")", - "\n \u2193\n", - " 3 \u00d7", - " factorial(2)", - "\n \u2193\n", - " 2 \u00d7", - " factorial(1)", - "\n \u2193\n", - " ", - " 1 \u2190", - " Base case!", - "\n```\n\n##", - " Another", - " Simple Example: Countdown", - "\n\n```python", - "\ndef countdown(n", - "):\n if", - " n <= 0", - ": ", - " # Base case\n", - " print(\"B", - "lastoff!\")\n", - " ", - " return\n \n print", - "(n) #", - " Do something\n ", - " countdown(n", - " - 1)", - " # Recursive call", - "\n\ncountdown(", - "3)\n", - "# Output: ", - "3,", - " 2, ", - "1, Blast", - "off!\n```", - "\n\n", - "## When to Use", - " Recursion\n\n", - "\u2705 **Good for", - ":**\n- Tree", - "/graph traversals\n", - "-", - " Mathematical sequences (factor", - "ial", - ", Fibonacci)\n", - "- Problems", - " that naturally break into", - " similar", - " subproblems\n\n", - "\u26a0\ufe0f **Watch", - " out for", - ":**\n- Missing", - " base case", - " (causes infinite", - " recursion", - ")\n- Too", - " many", - " recursive calls (can", - " cause", - " stack overflow)\n", - "- Problems", - " better solved with iteration", - " (", - "for performance)\n\n", - "## Key Takeaway", - "\n\nThink of recursion", - " like Russian", - " nesting dolls \u2013 you", - " keep opening smaller", - " dolls until you reach", - " the smallest one (", - "base case), then", - " work your way back", - " out!" - ] - }, - "raw_response": [ - { - "choices": [ - { - "delta": { - "content": null, - "role": "assistant", - "reasoning_content": "" - }, - "index": 0, - "logprobs": null, - "finish_reason": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "finish_reason": null, - "logprobs": null, - "delta": { - "content": null, - "reasoning_content": "This" - }, - "index": 0 - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": null, - "reasoning_content": " is a great" - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": null, - "reasoning_content": " question about a fundamental" - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": null, - "reasoning_content": " programming concept." - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": null, - "reasoning_content": " I should explain recursion" - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": null, - "reasoning_content": " clearly with" - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": null, - "reasoning_content": " a simple, easy" - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": null, - "reasoning_content": "-to-understand" - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": null, - "reasoning_content": " example. Let me" - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": null, - "reasoning_content": " break it down:" - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": null, - "reasoning_content": "\n\n1. Define" - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": null, - "reasoning_content": " what recursion is\n" - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": null, - "reasoning_content": "2. Explain the" - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": null, - "reasoning_content": " key components (base" - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": null, - "reasoning_content": " case and recursive case" - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": null, - "reasoning_content": ")\n3" - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": null, - "reasoning_content": ". Provide a simple" - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": null, - "reasoning_content": "," - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": null, - "reasoning_content": " concrete example\n4" - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": null, - "reasoning_content": ". Show" - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": null, - "reasoning_content": " how it works step" - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": null, - "reasoning_content": "-by-step\n5" - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": null, - "reasoning_content": ". Maybe mention when" - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": null, - "reasoning_content": " to" - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": null, - "reasoning_content": " use it and potential" - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": null, - "reasoning_content": " pitfalls\n\nLet me" - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": null, - "reasoning_content": " use a classic example" - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": null, - "reasoning_content": " like calculating factorial" - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": null, - "reasoning_content": " or counting down -" - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": null, - "reasoning_content": " factorial" - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": null, - "reasoning_content": " is probably the most" - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": null, - "reasoning_content": " common and" - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": null, - "reasoning_content": " clear example.\n" - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": "# Understanding", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": " Recursion\n\n**", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": "Recursion**", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": " is a programming technique", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": " where a function calls", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": " itself to solve a", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": " problem", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": ". It's like", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": " solving", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": " a big problem by", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": " breaking it down", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": " into smaller versions of", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": " the same problem", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": ".\n\n## Key", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": " Components\n\nEvery recursive", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": " function needs two essential", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": " parts:\n\n1", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": ". **Base Case", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": "** \u2013", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": " The condition that stops", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": " the recursion", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": " (prevents infinite", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": " loops", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": ")\n2.", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": " **Recursive Case**", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": " \u2013 Where the function", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": " calls itself", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": " with a simpler version", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": " of the problem\n\n", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": "## Simple Example:", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": " Calcul", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": "ating Factorial\n\n", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": "The factorial of", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": " a number `n", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": "` (written", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": " as `n!", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": "`) is the product", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": " of all positive integers", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": " up to `n", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": "`.\n\n```python", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": "\ndef factorial(n", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": "):\n #", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": " Base case\n", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": " if n ==", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": " 0", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": " or n == ", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": "1:\n ", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": " return 1\n \n", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": " # Recursive case", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": "\n return n", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": " * factorial(n -", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": " 1)\n", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": "```\n\n### How", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": " It Works: `", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": "factorial(", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": "4)`\n\n```", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": "\nfactor", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": "ial(4)", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": "\n= 4", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": " * factorial(3", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": ")\n= ", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": "4 * (3", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": " * factorial(", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": "2))\n=", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": " 4 * (", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": "3 * (2", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": " * factorial(1", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": ")))\n= ", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": "4 * (3", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": " * (2 *", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": " 1)) ", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": " \u2190 Base case reached", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": "!\n= ", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": "4 * (3", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": " * 2)", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": "\n= 4", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": " * 6", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": "\n= 2", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": "4\n```\n\n", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": "**Visual Flow:**", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": "\n```\n", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": "factorial(4", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": ") \u2192 4", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": " \u00d7 factorial(3", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": ")", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": "\n \u2193\n", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": " 3 \u00d7", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": " factorial(2)", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": "\n \u2193\n", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": " 2 \u00d7", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": " factorial(1)", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": "\n \u2193\n", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": " ", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": " 1 \u2190", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": " Base case!", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": "\n```\n\n##", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": " Another", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": " Simple Example: Countdown", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": "\n\n```python", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": "\ndef countdown(n", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": "):\n if", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": " n <= 0", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": ": ", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": " # Base case\n", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": " print(\"B", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": "lastoff!\")\n", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": " ", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": " return\n \n print", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": "(n) #", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": " Do something\n ", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": " countdown(n", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": " - 1)", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": " # Recursive call", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": "\n\ncountdown(", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": "3)\n", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": "# Output: ", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": "3,", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": " 2, ", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": "1, Blast", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": "off!\n```", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": "\n\n", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": "## When to Use", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": " Recursion\n\n", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": "\u2705 **Good for", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": ":**\n- Tree", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": "/graph traversals\n", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": "-", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": " Mathematical sequences (factor", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": "ial", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": ", Fibonacci)\n", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": "- Problems", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": " that naturally break into", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": " similar", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": " subproblems\n\n", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": "\u26a0\ufe0f **Watch", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": " out for", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": ":**\n- Missing", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": " base case", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": " (causes infinite", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": " recursion", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": ")\n- Too", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": " many", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": " recursive calls (can", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": " cause", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": " stack overflow)\n", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": "- Problems", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": " better solved with iteration", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": " (", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": "for performance)\n\n", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": "## Key Takeaway", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": "\n\nThink of recursion", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": " like Russian", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": " nesting dolls \u2013 you", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": " keep opening smaller", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": " dolls until you reach", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": " the smallest one (", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": "base case), then", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": " work your way back", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "delta": { - "content": " out!", - "reasoning_content": null - }, - "finish_reason": null, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [ - { - "finish_reason": "stop", - "delta": { - "content": "", - "reasoning_content": null - }, - "index": 0, - "logprobs": null - } - ], - "object": "chat.completion.chunk", - "usage": null, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - }, - { - "choices": [], - "object": "chat.completion.chunk", - "usage": { - "prompt_tokens": 21, - "completion_tokens": 656, - "total_tokens": 677, - "completion_tokens_details": { - "reasoning_tokens": 108, - "text_tokens": 656 - }, - "prompt_tokens_details": { - "text_tokens": 21 - } - }, - "created": 1776471147, - "system_fingerprint": null, - "model": "qwen3.5-397b-a17b", - "id": "chatcmpl-a04b3264-a267-9868-80d3-bd0ef7353605" - } - ], - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'alibaba/qwen3.5-397b-a17b',\n {\n messages: [\n {\n role: 'user',\n content: 'Explain the concept of recursion with a simple example.',\n },\n ],\n stream: true,\n stream_options: {\n include_usage: true,\n },\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - } - ], - "supports_async": false, - "external_info": "https://www.alibabacloud.com/en/solutions/generative-ai/qwen", - "terms": "https://www.alibabacloud.com/help/en/legal", - "cover_image_url": "https://pub-26f1392c1b674324be6786695bd72257.r2.dev/alibaba/qwen3.5-397b-a17b.png", - "metadata": { - "Architecture": "Transformer (MoE)", - "Parameters": "397B total, 17B active" - }, - "created_at": "2026-04-15 22:29:40", - "default_example": null, - "code_snippets": [], - "zdr": false, - "zdr_comment": null, - "schema": { - "input": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "messages": { - "type": "array", - "items": { - "type": "object", - "properties": { - "role": { - "type": "string", - "enum": [ - "system", - "developer", - "user", - "assistant", - "tool" - ] - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - }, - { - "type": "array", - "items": {} - } - ] - } - }, - "required": [ - "role", - "content" - ], - "additionalProperties": {} - } - }, - "temperature": { - "type": "number", - "minimum": 0, - "maximum": 2 - }, - "max_tokens": { - "type": "number", - "exclusiveMinimum": 0 - }, - "max_completion_tokens": { - "type": "number", - "exclusiveMinimum": 0 - }, - "top_p": { - "type": "number", - "minimum": 0, - "maximum": 1 - }, - "frequency_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2 - }, - "presence_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2 - }, - "stream": { - "type": "boolean" - }, - "stream_options": { - "type": "object", - "properties": { - "include_usage": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "tools": { - "type": "array", - "items": {} - }, - "tool_choice": {}, - "response_format": {} - }, - "required": [ - "messages" - ], - "additionalProperties": {} - }, - "output": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "object": { - "type": "string" - }, - "created": { - "type": "number" - }, - "model": { - "type": "string" - }, - "choices": { - "type": "array", - "items": { - "type": "object", - "properties": { - "index": { - "type": "number" - }, - "message": { - "type": "object", - "properties": { - "role": { - "type": "string" - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "tool_calls": { - "type": "array", - "items": {} - } - }, - "required": [ - "role" - ], - "additionalProperties": {} - }, - "finish_reason": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "index", - "message", - "finish_reason" - ], - "additionalProperties": {} - } - }, - "usage": { - "type": "object", - "properties": { - "prompt_tokens": { - "type": "number" - }, - "completion_tokens": { - "type": "number" - }, - "total_tokens": { - "type": "number" - } - }, - "required": [ - "prompt_tokens", - "completion_tokens", - "total_tokens" - ], - "additionalProperties": {} - } - }, - "required": [ - "id", - "object", - "created", - "model", - "choices" - ], - "additionalProperties": {} - } - } -} diff --git a/src/content/catalog-models/alibaba-wan-2.6-image.json b/src/content/catalog-models/alibaba-wan-2.6-image.json deleted file mode 100644 index 5cf804656780590..000000000000000 --- a/src/content/catalog-models/alibaba-wan-2.6-image.json +++ /dev/null @@ -1,199 +0,0 @@ -{ - "model_id": "alibaba/wan-2.6-image", - "provider_id": "alibaba", - "name": "Wan 2.6 Image", - "description": "Alibaba's Wan 2.6 text-to-image model generating images from text prompts with optional negative prompts and customizable dimensions.", - "task": "Text-to-Image", - "tags": [ - "Image Generation", - "Negative Prompt" - ], - "context_length": null, - "max_output_tokens": null, - "schema_version": "1.0.0", - "examples": [ - { - "name": "Simple Generation", - "description": "Basic text-to-image generation", - "input": { - "prompt": "A golden retriever puppy playing in autumn leaves" - }, - "output": { - "image": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/alibaba__wan-2.6-image/simple-generation.png" - }, - "raw_response": { - "state": "Completed", - "result": { - "image": "https://dashscope-463f.oss-accelerate.aliyuncs.com/1d/66/20260417/c057796c/32701268-BbftSa6r_189314ac1a36.png" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'alibaba/wan-2.6-image',\n {\n prompt: 'A golden retriever puppy playing in autumn leaves',\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Custom Dimensions", - "description": "Specify image size in WxH format", - "input": { - "prompt": "A vast alien desert landscape with two suns setting on the horizon, ancient ruins in the foreground", - "size": "1024x768" - }, - "output": { - "image": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/alibaba__wan-2.6-image/custom-dimensions.png" - }, - "raw_response": { - "state": "Completed", - "result": { - "image": "https://dashscope-463f.oss-accelerate.aliyuncs.com/1d/35/20260417/c057796c/3257252-vy1GbNI6_bc223e38c5b4.png" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'alibaba/wan-2.6-image',\n {\n prompt:\n 'A vast alien desert landscape with two suns setting on the horizon, ancient ruins in the foreground',\n size: '1024x768',\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Square Format", - "description": "Square image for social media or product photos", - "input": { - "prompt": "A sleek wireless headphone on a minimalist white marble surface with soft studio lighting", - "size": "1024x1024" - }, - "output": { - "image": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/alibaba__wan-2.6-image/square-format.png" - }, - "raw_response": { - "state": "Completed", - "result": { - "image": "https://dashscope-463f.oss-accelerate.aliyuncs.com/1d/84/20260417/c057796c/18355039-RFkWcHgG_0dcb1c1d6d95.png" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'alibaba/wan-2.6-image',\n {\n prompt:\n 'A sleek wireless headphone on a minimalist white marble surface with soft studio lighting',\n size: '1024x1024',\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Negative Prompt", - "description": "Guide generation away from unwanted elements", - "input": { - "prompt": "A detailed oil painting portrait of a Renaissance nobleman with intricate lace collar", - "negative_prompt": "modern clothing, photograph, blurry, low quality" - }, - "output": { - "image": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/alibaba__wan-2.6-image/negative-prompt.png" - }, - "raw_response": { - "state": "Completed", - "result": { - "image": "https://dashscope-463f.oss-accelerate.aliyuncs.com/1d/53/20260417/c057796c/26097304-eVhNm6uS_edc041cd5e2b.png" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'alibaba/wan-2.6-image',\n {\n prompt:\n 'A detailed oil painting portrait of a Renaissance nobleman with intricate lace collar',\n negative_prompt: 'modern clothing, photograph, blurry, low quality',\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Portrait Format", - "description": "Tall vertical image for portraits", - "input": { - "prompt": "An elegant Art Deco poster featuring a jazz singer under a spotlight", - "size": "768x1024" - }, - "output": { - "image": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/alibaba__wan-2.6-image/portrait-format.png" - }, - "raw_response": { - "state": "Completed", - "result": { - "image": "https://dashscope-463f.oss-accelerate.aliyuncs.com/1d/5a/20260417/c057796c/79957405-YTXQsRY6_8d8a6631f1d6.png" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'alibaba/wan-2.6-image',\n {\n prompt:\n 'An elegant Art Deco poster featuring a jazz singer under a spotlight',\n size: '768x1024',\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - } - ], - "supports_async": false, - "external_info": "https://wan.video/", - "terms": "https://www.alibabacloud.com/help/en/legal", - "cover_image_url": "https://pub-26f1392c1b674324be6786695bd72257.r2.dev/alibaba/wan-2.6-image.png", - "metadata": { - "Size Format": "WxH (e.g. 1024x1024)", - "Negative Prompt": "Yes" - }, - "created_at": "2026-04-14 18:41:46", - "default_example": null, - "code_snippets": [], - "zdr": false, - "zdr_comment": null, - "schema": { - "input": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "prompt": { - "type": "string" - }, - "size": { - "type": "string", - "pattern": "^\\d+x\\d+$" - }, - "negative_prompt": { - "type": "string" - } - }, - "required": [ - "prompt" - ], - "additionalProperties": false - }, - "output": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "image": { - "type": "string", - "format": "uri" - } - }, - "required": [ - "image" - ], - "additionalProperties": false - } - } -} diff --git a/src/content/catalog-models/anthropic-claude-haiku-4.5.json b/src/content/catalog-models/anthropic-claude-haiku-4.5.json deleted file mode 100644 index b82e3755b9494b4..000000000000000 --- a/src/content/catalog-models/anthropic-claude-haiku-4.5.json +++ /dev/null @@ -1,613 +0,0 @@ -{ - "model_id": "anthropic/claude-haiku-4.5", - "provider_id": "anthropic", - "name": "Claude Haiku 4.5", - "description": "Claude Haiku 4.5 delivers similar levels of coding performance at one-third the cost and more than twice the speed of larger models.", - "task": "Text Generation", - "tags": [ - "LLM", - "Coding", - "Fast", - "Cost-Efficient" - ], - "context_length": 200000, - "max_output_tokens": 8192, - "schema_version": "1.0.0", - "examples": [ - { - "name": "Simple Question", - "description": "Basic message request", - "input": { - "messages": [ - { - "role": "user", - "content": "What are the three laws of thermodynamics?" - } - ], - "max_tokens": 1024 - }, - "output": { - "text": "# The Three Laws of Thermodynamics\n\n## First Law (Conservation of Energy)\nEnergy cannot be created or destroyed, only converted from one form to another. The total energy input to a system equals the change in internal energy plus the work done by the system.\n\n## Second Law (Entropy)\nThe entropy (disorder) of an isolated system always increases over time. Heat naturally flows from hot to cold objects, not the reverse, and no process can be 100% efficient at converting heat to work.\n\n## Third Law (Absolute Zero)\nAs temperature approaches absolute zero (0 Kelvin or -273.15\u00b0C), the entropy of a perfect crystal approaches zero. It's impossible to reach absolute zero through any finite process.\n\n---\n\nThese laws form the foundation of thermodynamics and explain why perpetual motion machines are impossible and why certain processes naturally occur while others don't." - }, - "raw_response": { - "id": "msg_01AudBc47nYro7MFJatA3KAW", - "type": "message", - "role": "assistant", - "content": [ - { - "type": "text", - "text": "# The Three Laws of Thermodynamics\n\n## First Law (Conservation of Energy)\nEnergy cannot be created or destroyed, only converted from one form to another. The total energy input to a system equals the change in internal energy plus the work done by the system.\n\n## Second Law (Entropy)\nThe entropy (disorder) of an isolated system always increases over time. Heat naturally flows from hot to cold objects, not the reverse, and no process can be 100% efficient at converting heat to work.\n\n## Third Law (Absolute Zero)\nAs temperature approaches absolute zero (0 Kelvin or -273.15\u00b0C), the entropy of a perfect crystal approaches zero. It's impossible to reach absolute zero through any finite process.\n\n---\n\nThese laws form the foundation of thermodynamics and explain why perpetual motion machines are impossible and why certain processes naturally occur while others don't." - } - ], - "model": "claude-haiku-4-5-20251001", - "stop_reason": "end_turn", - "usage": { - "input_tokens": 17, - "output_tokens": 191 - }, - "stop_sequence": null, - "stop_details": null, - "gatewayMetadata": { - "keySource": "BYOK" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'anthropic/claude-haiku-4.5',\n {\n messages: [\n {\n role: 'user',\n content: 'What are the three laws of thermodynamics?',\n },\n ],\n max_tokens: 1024,\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "With System Message", - "description": "Using a system message to set context", - "input": { - "messages": [ - { - "role": "user", - "content": "How do I read a JSON file in Python?" - } - ], - "max_tokens": 1024, - "system": "You are a helpful coding assistant specializing in Python.", - "temperature": 0.3 - }, - "output": { - "text": "# Reading a JSON File in Python\n\nHere are the most common methods:\n\n## 1. **Basic Method (Recommended)**\n```python\nimport json\n\nwith open('file.json', 'r') as file:\n data = json.load(file)\n\nprint(data)\n```\n\n## 2. **Reading JSON String**\nIf you have JSON as a string instead:\n```python\nimport json\n\njson_string = '{\"name\": \"John\", \"age\": 30}'\ndata = json.loads(json_string)\n\nprint(data)\n```\n\n## 3. **With Error Handling**\n```python\nimport json\n\ntry:\n with open('file.json', 'r') as file:\n data = json.load(file)\nexcept FileNotFoundError:\n print(\"File not found\")\nexcept json.JSONDecodeError:\n print(\"Invalid JSON format\")\n```\n\n## 4. **Pretty Print the Data**\n```python\nimport json\n\nwith open('file.json', 'r') as file:\n data = json.load(file)\n\nprint(json.dumps(data, indent=2))\n```\n\n## Key Differences\n| Method | Use Case |\n|--------|----------|\n| `json.load()` | Read from a file object |\n| `json.loads()` | Parse a JSON string |\n\n## Example\n**file.json:**\n```json\n{\n \"name\": \"Alice\",\n \"age\": 25,\n \"city\": \"New York\"\n}\n```\n\n**Python code:**\n```python\nimport json\n\nwith open('file.json', 'r') as file:\n data = json.load(file)\n print(data['name']) # Output: Alice\n```\n\nThe `with` statement is recommended because it automatically closes the file when done." - }, - "raw_response": { - "id": "msg_018PXaVwoWM8Eo7X51oCHmhz", - "type": "message", - "role": "assistant", - "content": [ - { - "type": "text", - "text": "# Reading a JSON File in Python\n\nHere are the most common methods:\n\n## 1. **Basic Method (Recommended)**\n```python\nimport json\n\nwith open('file.json', 'r') as file:\n data = json.load(file)\n\nprint(data)\n```\n\n## 2. **Reading JSON String**\nIf you have JSON as a string instead:\n```python\nimport json\n\njson_string = '{\"name\": \"John\", \"age\": 30}'\ndata = json.loads(json_string)\n\nprint(data)\n```\n\n## 3. **With Error Handling**\n```python\nimport json\n\ntry:\n with open('file.json', 'r') as file:\n data = json.load(file)\nexcept FileNotFoundError:\n print(\"File not found\")\nexcept json.JSONDecodeError:\n print(\"Invalid JSON format\")\n```\n\n## 4. **Pretty Print the Data**\n```python\nimport json\n\nwith open('file.json', 'r') as file:\n data = json.load(file)\n\nprint(json.dumps(data, indent=2))\n```\n\n## Key Differences\n| Method | Use Case |\n|--------|----------|\n| `json.load()` | Read from a file object |\n| `json.loads()` | Parse a JSON string |\n\n## Example\n**file.json:**\n```json\n{\n \"name\": \"Alice\",\n \"age\": 25,\n \"city\": \"New York\"\n}\n```\n\n**Python code:**\n```python\nimport json\n\nwith open('file.json', 'r') as file:\n data = json.load(file)\n print(data['name']) # Output: Alice\n```\n\nThe `with` statement is recommended because it automatically closes the file when done." - } - ], - "model": "claude-haiku-4-5-20251001", - "stop_reason": "end_turn", - "usage": { - "input_tokens": 28, - "output_tokens": 425 - }, - "stop_sequence": null, - "stop_details": null, - "gatewayMetadata": { - "keySource": "BYOK" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'anthropic/claude-haiku-4.5',\n {\n messages: [\n {\n role: 'user',\n content: 'How do I read a JSON file in Python?',\n },\n ],\n max_tokens: 1024,\n system: 'You are a helpful coding assistant specializing in Python.',\n temperature: 0.3,\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Multi-turn Conversation", - "description": "Continuing a conversation with context", - "input": { - "messages": [ - { - "role": "user", - "content": "I need help planning a road trip from San Francisco to Los Angeles." - }, - { - "role": "assistant", - "content": "I'd be happy to help! The drive is about 380 miles and takes roughly 5-6 hours. Would you like suggestions for scenic routes or interesting stops along the way?" - }, - { - "role": "user", - "content": "Yes, what are some good places to stop?" - } - ], - "max_tokens": 1024 - }, - "output": { - "text": "# Good Stops on the SF to LA Route\n\n**Halfway/Central Coast Options:**\n- **San Luis Obispo** - Charming town with a mission, wineries, and Thursday night farmers market\n- **Santa Barbara** - Beautiful coastal town with beaches, State Street shopping, and wine tasting\n- **Solvang** - Danish village with unique architecture, wineries, and restaurants\n\n**Scenic Detours:**\n- **Big Sur** - Stunning coastal cliffs (adds time but worth it for photos)\n- **Hearst Castle** - Historic mansion with tours in San Simeon\n- **Monterey/Carmel** - Coastal towns with aquariums, beaches, and galleries\n\n**Faster Route Stops:**\n- **Salinas** - Agricultural hub, reasonable break point\n- **Paso Robles** - Wine country with tasting rooms\n\n**Tips:**\n- Plan for 7-8 hours total if you want to stop for a meal and explore\n- Big Sur adds 1-2 hours but offers incredible views\n- Consider stopping overnight if you want a more relaxed trip\n\nWhat's your timeline? Are you interested in nature, wine, food, or something else? That would help me narrow down recommendations." - }, - "raw_response": { - "id": "msg_01H4xB3mngxiKQMyrfDoJzKe", - "type": "message", - "role": "assistant", - "content": [ - { - "type": "text", - "text": "# Good Stops on the SF to LA Route\n\n**Halfway/Central Coast Options:**\n- **San Luis Obispo** - Charming town with a mission, wineries, and Thursday night farmers market\n- **Santa Barbara** - Beautiful coastal town with beaches, State Street shopping, and wine tasting\n- **Solvang** - Danish village with unique architecture, wineries, and restaurants\n\n**Scenic Detours:**\n- **Big Sur** - Stunning coastal cliffs (adds time but worth it for photos)\n- **Hearst Castle** - Historic mansion with tours in San Simeon\n- **Monterey/Carmel** - Coastal towns with aquariums, beaches, and galleries\n\n**Faster Route Stops:**\n- **Salinas** - Agricultural hub, reasonable break point\n- **Paso Robles** - Wine country with tasting rooms\n\n**Tips:**\n- Plan for 7-8 hours total if you want to stop for a meal and explore\n- Big Sur adds 1-2 hours but offers incredible views\n- Consider stopping overnight if you want a more relaxed trip\n\nWhat's your timeline? Are you interested in nature, wine, food, or something else? That would help me narrow down recommendations." - } - ], - "model": "claude-haiku-4-5-20251001", - "stop_reason": "end_turn", - "usage": { - "input_tokens": 76, - "output_tokens": 279 - }, - "stop_sequence": null, - "stop_details": null, - "gatewayMetadata": { - "keySource": "BYOK" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'anthropic/claude-haiku-4.5',\n {\n messages: [\n {\n role: 'user',\n content:\n 'I need help planning a road trip from San Francisco to Los Angeles.',\n },\n {\n role: 'assistant',\n content:\n \"I'd be happy to help! The drive is about 380 miles and takes roughly 5-6 hours. Would you like suggestions for scenic routes or interesting stops along the way?\",\n },\n {\n role: 'user',\n content: 'Yes, what are some good places to stop?',\n },\n ],\n max_tokens: 1024,\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Creative Writing", - "description": "Higher temperature for creative output", - "input": { - "messages": [ - { - "role": "user", - "content": "Write a short story opening about a detective finding an unusual clue." - } - ], - "max_tokens": 512, - "temperature": 0.8 - }, - "output": { - "text": "# The Photograph\n\nDetective Sarah Chen stood in the victim's apartment, her latex gloves snapping softly as she examined the bookshelf for the third time. The case had gone cold within hours\u2014no signs of forced entry, no witnesses, no motive that made sense.\n\nThen she saw it.\n\nWedged behind a row of paperbacks, barely visible, was a Polaroid photograph. Sarah's breath caught. Not because of what it showed\u2014a lake at sunset, unremarkable\u2014but because of what was written on the back in faded blue ink:\n\n*\"The day before everything changed.\"*\n\nAnd underneath, a date: twenty-three years ago.\n\nSarah turned the photo over again, studying the water, the trees, the single figure standing at the shore. The figure's face was deliberately obscured by a smudge of thumb, as if someone had tried to erase it.\n\nShe'd been a detective for twelve years. She'd learned that most mysteries had ordinary answers: greed, passion, rage. But something about this photograph\u2014the deliberate hiding place, the cryptic message, the erased face\u2014told her this case was different.\n\nThis photograph wasn't evidence of a crime.\n\nIt was a warning." - }, - "raw_response": { - "id": "msg_01TG861uc7b1Tbn664aaCLPf", - "type": "message", - "role": "assistant", - "content": [ - { - "type": "text", - "text": "# The Photograph\n\nDetective Sarah Chen stood in the victim's apartment, her latex gloves snapping softly as she examined the bookshelf for the third time. The case had gone cold within hours\u2014no signs of forced entry, no witnesses, no motive that made sense.\n\nThen she saw it.\n\nWedged behind a row of paperbacks, barely visible, was a Polaroid photograph. Sarah's breath caught. Not because of what it showed\u2014a lake at sunset, unremarkable\u2014but because of what was written on the back in faded blue ink:\n\n*\"The day before everything changed.\"*\n\nAnd underneath, a date: twenty-three years ago.\n\nSarah turned the photo over again, studying the water, the trees, the single figure standing at the shore. The figure's face was deliberately obscured by a smudge of thumb, as if someone had tried to erase it.\n\nShe'd been a detective for twelve years. She'd learned that most mysteries had ordinary answers: greed, passion, rage. But something about this photograph\u2014the deliberate hiding place, the cryptic message, the erased face\u2014told her this case was different.\n\nThis photograph wasn't evidence of a crime.\n\nIt was a warning." - } - ], - "model": "claude-haiku-4-5-20251001", - "stop_reason": "end_turn", - "usage": { - "input_tokens": 21, - "output_tokens": 269 - }, - "stop_sequence": null, - "stop_details": null, - "gatewayMetadata": { - "keySource": "BYOK" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'anthropic/claude-haiku-4.5',\n {\n messages: [\n {\n role: 'user',\n content:\n 'Write a short story opening about a detective finding an unusual clue.',\n },\n ],\n max_tokens: 512,\n temperature: 0.8,\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Streaming Response", - "description": "Enable streaming for real-time output", - "input": { - "messages": [ - { - "role": "user", - "content": "Explain the concept of recursion with a simple example." - } - ], - "max_tokens": 1024, - "stream": true - }, - "output": { - "text": [ - "#", - " Recursion Explained\n\n**Recursion** is when a function calls itself to solve smaller instances of the same problem until it reaches a simple", - " base case.\n\n## Key Components\n\n1. **Base Case**: The condition that stops the recursion\n2. **Recursive Case**: The function", - " calling itself with a simpler input\n\n## Simple Example: Factorial\n\nCalculate 5! (5 \u00d7", - " 4 \u00d7 3 \u00d7 2 \u00d7 1)\n\n```python\ndef factorial(n):\n # Base case: stop here\n if n == 1:\n return 1\n ", - "\n # Recursive case: break problem into smaller piece\n return n * factorial(n - 1)\n\nprint(factorial(5)) # Output: 120\n```\n\n### How It Works\n\n```", - "\nfactorial(5)\n\u2192 5 * factorial(4)\n \u2192 4 * factorial(3)\n \u2192 3 * factorial(2", - ")\n \u2192 2 * factorial(1)\n \u2192 return 1 [BASE CASE]\n \u2192 return 2 ", - "* 1 = 2\n \u2192 return 3 * 2 = 6\n \u2192 return 4 * 6 = 24\n\u2192 return 5 * 24 =", - " 120\n```\n\n## Real-World Analogy\n\nIt's like opening Russian nesting dolls:\n- Open a d", - "oll \u2192 find a smaller doll inside\n- Open that doll \u2192 find an even smaller one\n- Keep", - " going until you reach the tiniest doll (base case)\n- Now work backwards: you've", - " reached the smallest piece\n\n## Why Use Recursion?\n\n\u2705 **Good for**: Problems with naturally recursive structure (", - "trees, nested data, divide-and-conquer) \n\u26a0\ufe0f **Caution**: Can be", - " slow and cause stack overflow if not careful\n\nRecursion is elegant but always ensure", - " you have a clear base case!" - ] - }, - "raw_response": [ - { - "type": "message_start", - "message": { - "model": "claude-haiku-4-5-20251001", - "id": "msg_01KvQp2GZvMb9V166tjgWh8q", - "type": "message", - "role": "assistant", - "content": [], - "stop_reason": null, - "stop_sequence": null, - "stop_details": null, - "usage": { - "input_tokens": 19, - "cache_creation_input_tokens": 0, - "cache_read_input_tokens": 0, - "cache_creation": { - "ephemeral_5m_input_tokens": 0, - "ephemeral_1h_input_tokens": 0 - }, - "output_tokens": 2, - "service_tier": "standard", - "inference_geo": "not_available" - } - } - }, - { - "type": "content_block_start", - "index": 0, - "content_block": { - "type": "text", - "text": "" - } - }, - { - "type": "ping" - }, - { - "type": "content_block_delta", - "index": 0, - "delta": { - "type": "text_delta", - "text": "#" - } - }, - { - "type": "content_block_delta", - "index": 0, - "delta": { - "type": "text_delta", - "text": " Recursion Explained\n\n**Recursion** is when a function calls itself to solve smaller instances of the same problem until it reaches a simple" - } - }, - { - "type": "content_block_delta", - "index": 0, - "delta": { - "type": "text_delta", - "text": " base case.\n\n## Key Components\n\n1. **Base Case**: The condition that stops the recursion\n2. **Recursive Case**: The function" - } - }, - { - "type": "content_block_delta", - "index": 0, - "delta": { - "type": "text_delta", - "text": " calling itself with a simpler input\n\n## Simple Example: Factorial\n\nCalculate 5! (5 \u00d7" - } - }, - { - "type": "content_block_delta", - "index": 0, - "delta": { - "type": "text_delta", - "text": " 4 \u00d7 3 \u00d7 2 \u00d7 1)\n\n```python\ndef factorial(n):\n # Base case: stop here\n if n == 1:\n return 1\n " - } - }, - { - "type": "content_block_delta", - "index": 0, - "delta": { - "type": "text_delta", - "text": "\n # Recursive case: break problem into smaller piece\n return n * factorial(n - 1)\n\nprint(factorial(5)) # Output: 120\n```\n\n### How It Works\n\n```" - } - }, - { - "type": "content_block_delta", - "index": 0, - "delta": { - "type": "text_delta", - "text": "\nfactorial(5)\n\u2192 5 * factorial(4)\n \u2192 4 * factorial(3)\n \u2192 3 * factorial(2" - } - }, - { - "type": "content_block_delta", - "index": 0, - "delta": { - "type": "text_delta", - "text": ")\n \u2192 2 * factorial(1)\n \u2192 return 1 [BASE CASE]\n \u2192 return 2 " - } - }, - { - "type": "content_block_delta", - "index": 0, - "delta": { - "type": "text_delta", - "text": "* 1 = 2\n \u2192 return 3 * 2 = 6\n \u2192 return 4 * 6 = 24\n\u2192 return 5 * 24 =" - } - }, - { - "type": "content_block_delta", - "index": 0, - "delta": { - "type": "text_delta", - "text": " 120\n```\n\n## Real-World Analogy\n\nIt's like opening Russian nesting dolls:\n- Open a d" - } - }, - { - "type": "content_block_delta", - "index": 0, - "delta": { - "type": "text_delta", - "text": "oll \u2192 find a smaller doll inside\n- Open that doll \u2192 find an even smaller one\n- Keep" - } - }, - { - "type": "content_block_delta", - "index": 0, - "delta": { - "type": "text_delta", - "text": " going until you reach the tiniest doll (base case)\n- Now work backwards: you've" - } - }, - { - "type": "content_block_delta", - "index": 0, - "delta": { - "type": "text_delta", - "text": " reached the smallest piece\n\n## Why Use Recursion?\n\n\u2705 **Good for**: Problems with naturally recursive structure (" - } - }, - { - "type": "content_block_delta", - "index": 0, - "delta": { - "type": "text_delta", - "text": "trees, nested data, divide-and-conquer) \n\u26a0\ufe0f **Caution**: Can be" - } - }, - { - "type": "content_block_delta", - "index": 0, - "delta": { - "type": "text_delta", - "text": " slow and cause stack overflow if not careful\n\nRecursion is elegant but always ensure" - } - }, - { - "type": "content_block_delta", - "index": 0, - "delta": { - "type": "text_delta", - "text": " you have a clear base case!" - } - }, - { - "type": "content_block_stop", - "index": 0 - }, - { - "type": "message_delta", - "delta": { - "stop_reason": "end_turn", - "stop_sequence": null, - "stop_details": null - }, - "usage": { - "input_tokens": 19, - "cache_creation_input_tokens": 0, - "cache_read_input_tokens": 0, - "output_tokens": 444 - } - }, - { - "type": "message_stop" - } - ], - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'anthropic/claude-haiku-4.5',\n {\n messages: [\n {\n role: 'user',\n content: 'Explain the concept of recursion with a simple example.',\n },\n ],\n max_tokens: 1024,\n stream: true,\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - } - ], - "supports_async": false, - "external_info": "https://www.anthropic.com/claude/haiku", - "terms": "https://www.anthropic.com/legal/commercial-terms", - "cover_image_url": "https://pub-26f1392c1b674324be6786695bd72257.r2.dev/anthropic/claude-haiku-4.5.png", - "metadata": { - "Architecture": "Transformer" - }, - "created_at": "2026-04-13 16:45:16", - "default_example": null, - "code_snippets": [], - "zdr": false, - "zdr_comment": null, - "schema": { - "input": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "messages": { - "type": "array", - "items": { - "type": "object", - "properties": { - "role": { - "type": "string", - "enum": [ - "user", - "assistant" - ] - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string" - }, - "text": { - "type": "string" - }, - "source": {} - }, - "required": [ - "type" - ], - "additionalProperties": false - } - } - ] - } - }, - "required": [ - "role", - "content" - ], - "additionalProperties": false - } - }, - "max_tokens": { - "type": "number", - "exclusiveMinimum": 0 - }, - "system": { - "type": "string" - }, - "temperature": { - "type": "number", - "minimum": 0, - "maximum": 1 - }, - "top_p": { - "type": "number", - "minimum": 0, - "maximum": 1 - }, - "top_k": { - "type": "number", - "exclusiveMinimum": 0 - }, - "stream": { - "type": "boolean" - }, - "metadata": { - "type": "object", - "propertyNames": { - "type": "string" - }, - "additionalProperties": {} - } - }, - "required": [ - "messages", - "max_tokens" - ], - "additionalProperties": {} - }, - "output": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "const": "message" - }, - "role": { - "type": "string", - "const": "assistant" - }, - "content": { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string" - }, - "text": { - "type": "string" - } - }, - "required": [ - "type" - ], - "additionalProperties": {} - } - }, - "model": { - "type": "string" - }, - "stop_reason": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "usage": { - "type": "object", - "properties": { - "input_tokens": { - "type": "number" - }, - "output_tokens": { - "type": "number" - } - }, - "required": [ - "input_tokens", - "output_tokens" - ], - "additionalProperties": false - } - }, - "required": [ - "id", - "type", - "role", - "content", - "model", - "stop_reason", - "usage" - ], - "additionalProperties": {} - } - } -} diff --git a/src/content/catalog-models/anthropic-claude-opus-4.6.json b/src/content/catalog-models/anthropic-claude-opus-4.6.json deleted file mode 100644 index 330613a2c03f102..000000000000000 --- a/src/content/catalog-models/anthropic-claude-opus-4.6.json +++ /dev/null @@ -1,671 +0,0 @@ -{ - "model_id": "anthropic/claude-opus-4.6", - "provider_id": "anthropic", - "name": "Claude Opus 4.6", - "description": "Claude Opus 4.6 is Anthropic's flagship language model built for complex, multi-step work in coding, financial analysis, and legal reasoning. It uses extended thinking to work through complex problems carefully and features a one million token context window.", - "task": "Text Generation", - "tags": [ - "LLM", - "Coding", - "Reasoning", - "Enterprise", - "Agentic", - "Financial Analysis", - "Legal" - ], - "context_length": 1000000, - "max_output_tokens": 128000, - "schema_version": "1.0.0", - "examples": [ - { - "name": "Simple Question", - "description": "Basic message request", - "input": { - "messages": [ - { - "role": "user", - "content": "What are the three laws of thermodynamics?" - } - ], - "max_tokens": 1024 - }, - "output": { - "text": "# The Laws of Thermodynamics\n\nHere are the three main laws (along with the \"zeroth\" law often included):\n\n## Zeroth Law\nIf two systems are each in thermal equilibrium with a third system, they are in thermal equilibrium with each other. (This establishes the concept of temperature.)\n\n## First Law\nEnergy cannot be created or destroyed, only transferred or converted from one form to another. In essence, this is the **conservation of energy**. The change in a system's internal energy equals the heat added minus the work done by the system.\n\n## Second Law\nThe total **entropy** (disorder) of an isolated system can never decrease over time. Heat naturally flows from hotter to cooler objects, not the reverse. This means no process is perfectly efficient, and it establishes the \"arrow of time.\"\n\n## Third Law\nAs a system's temperature approaches **absolute zero** (0 Kelvin / \u2212273.15\u00b0C), its entropy approaches a minimum value. It is impossible to reach absolute zero in a finite number of steps.\n\n---\n\nTogether, these laws govern how energy behaves in all physical and chemical processes, from engines to stars to biological systems." - }, - "raw_response": { - "id": "msg_01Ss13EYxkyh29CJXYkdhHk4", - "type": "message", - "role": "assistant", - "content": [ - { - "type": "text", - "text": "# The Laws of Thermodynamics\n\nHere are the three main laws (along with the \"zeroth\" law often included):\n\n## Zeroth Law\nIf two systems are each in thermal equilibrium with a third system, they are in thermal equilibrium with each other. (This establishes the concept of temperature.)\n\n## First Law\nEnergy cannot be created or destroyed, only transferred or converted from one form to another. In essence, this is the **conservation of energy**. The change in a system's internal energy equals the heat added minus the work done by the system.\n\n## Second Law\nThe total **entropy** (disorder) of an isolated system can never decrease over time. Heat naturally flows from hotter to cooler objects, not the reverse. This means no process is perfectly efficient, and it establishes the \"arrow of time.\"\n\n## Third Law\nAs a system's temperature approaches **absolute zero** (0 Kelvin / \u2212273.15\u00b0C), its entropy approaches a minimum value. It is impossible to reach absolute zero in a finite number of steps.\n\n---\n\nTogether, these laws govern how energy behaves in all physical and chemical processes, from engines to stars to biological systems." - } - ], - "model": "claude-opus-4-6", - "stop_reason": "end_turn", - "usage": { - "input_tokens": 17, - "output_tokens": 257 - }, - "stop_sequence": null, - "stop_details": null, - "gatewayMetadata": { - "keySource": "BYOK" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'anthropic/claude-opus-4.6',\n {\n messages: [\n {\n role: 'user',\n content: 'What are the three laws of thermodynamics?',\n },\n ],\n max_tokens: 1024,\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "With System Message", - "description": "Using a system message to set context", - "input": { - "messages": [ - { - "role": "user", - "content": "How do I read a JSON file in Python?" - } - ], - "max_tokens": 1024, - "system": "You are a helpful coding assistant specializing in Python.", - "temperature": 0.3 - }, - "output": { - "text": "# Reading a JSON File in Python\n\nPython has a built-in `json` module that makes it easy to read JSON files. Here are the most common approaches:\n\n## Basic Example\n\n```python\nimport json\n\n# Open and read the JSON file\nwith open('data.json', 'r') as file:\n data = json.load(file)\n\nprint(data)\n```\n\n## Step-by-Step Breakdown\n\n| Step | Code | Description |\n|------|------|-------------|\n| 1 | `import json` | Import the built-in JSON module |\n| 2 | `open('data.json', 'r')` | Open the file in **read** mode |\n| 3 | `json.load(file)` | Parse the JSON into a Python object |\n\n## Common Scenarios\n\n### Reading into a Dictionary\n```python\nimport json\n\nwith open('config.json', 'r') as file:\n config = json.load(file)\n\n# Access values like a normal dictionary\nprint(config['name'])\nprint(config['settings']['theme'])\n```\n\n### Reading a JSON String (not a file)\n```python\nimport json\n\njson_string = '{\"name\": \"Alice\", \"age\": 30}'\ndata = json.loads(json_string) # Note: loads() with an 's'\n\nprint(data['name']) # Output: Alice\n```\n\n### Handling Errors\n```python\nimport json\n\ntry:\n with open('data.json', 'r') as file:\n data = json.load(file)\nexcept FileNotFoundError:\n print(\"File not found!\")\nexcept json.JSONDecodeError:\n print(\"Invalid JSON format!\")\n```\n\n### Specifying Encoding\n```python\nimport json\n\nwith open('data.json', 'r', encoding='utf-8') as file:\n data = json.load(file)\n```\n\n## Key Differences\n\n| Method | Input | Use Case |\n|--------|-------|----------|\n| `json.load(file)` | **File object** | Reading from a `.json` file |\n| `json.loads(string)` | **String** | Parsing a JSON-formatted string |\n\n## JSON \u2192 Python Type Mapping\n\n| JSON Type | Python Type |\n|-----------|-------------|\n| `object` | `dict` |\n| `array` | `list` |\n| `string` | `str` |\n| `number` | `int`/`float` |\n| `true/false` | `True`/`False` |\n| `null` | `None` |\n\n> **Tip:** Always use the `with` statement when opening files \u2014 it ensures the file is properly closed, even if an error occurs." - }, - "raw_response": { - "id": "msg_01XBD4XMEahrUEnEVbu4gPwV", - "type": "message", - "role": "assistant", - "content": [ - { - "type": "text", - "text": "# Reading a JSON File in Python\n\nPython has a built-in `json` module that makes it easy to read JSON files. Here are the most common approaches:\n\n## Basic Example\n\n```python\nimport json\n\n# Open and read the JSON file\nwith open('data.json', 'r') as file:\n data = json.load(file)\n\nprint(data)\n```\n\n## Step-by-Step Breakdown\n\n| Step | Code | Description |\n|------|------|-------------|\n| 1 | `import json` | Import the built-in JSON module |\n| 2 | `open('data.json', 'r')` | Open the file in **read** mode |\n| 3 | `json.load(file)` | Parse the JSON into a Python object |\n\n## Common Scenarios\n\n### Reading into a Dictionary\n```python\nimport json\n\nwith open('config.json', 'r') as file:\n config = json.load(file)\n\n# Access values like a normal dictionary\nprint(config['name'])\nprint(config['settings']['theme'])\n```\n\n### Reading a JSON String (not a file)\n```python\nimport json\n\njson_string = '{\"name\": \"Alice\", \"age\": 30}'\ndata = json.loads(json_string) # Note: loads() with an 's'\n\nprint(data['name']) # Output: Alice\n```\n\n### Handling Errors\n```python\nimport json\n\ntry:\n with open('data.json', 'r') as file:\n data = json.load(file)\nexcept FileNotFoundError:\n print(\"File not found!\")\nexcept json.JSONDecodeError:\n print(\"Invalid JSON format!\")\n```\n\n### Specifying Encoding\n```python\nimport json\n\nwith open('data.json', 'r', encoding='utf-8') as file:\n data = json.load(file)\n```\n\n## Key Differences\n\n| Method | Input | Use Case |\n|--------|-------|----------|\n| `json.load(file)` | **File object** | Reading from a `.json` file |\n| `json.loads(string)` | **String** | Parsing a JSON-formatted string |\n\n## JSON \u2192 Python Type Mapping\n\n| JSON Type | Python Type |\n|-----------|-------------|\n| `object` | `dict` |\n| `array` | `list` |\n| `string` | `str` |\n| `number` | `int`/`float` |\n| `true/false` | `True`/`False` |\n| `null` | `None` |\n\n> **Tip:** Always use the `with` statement when opening files \u2014 it ensures the file is properly closed, even if an error occurs." - } - ], - "model": "claude-opus-4-6", - "stop_reason": "end_turn", - "usage": { - "input_tokens": 29, - "output_tokens": 643 - }, - "stop_sequence": null, - "stop_details": null, - "gatewayMetadata": { - "keySource": "BYOK" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'anthropic/claude-opus-4.6',\n {\n messages: [\n {\n role: 'user',\n content: 'How do I read a JSON file in Python?',\n },\n ],\n max_tokens: 1024,\n system: 'You are a helpful coding assistant specializing in Python.',\n temperature: 0.3,\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Multi-turn Conversation", - "description": "Continuing a conversation with context", - "input": { - "messages": [ - { - "role": "user", - "content": "I need help planning a road trip from San Francisco to Los Angeles." - }, - { - "role": "assistant", - "content": "I'd be happy to help! The drive is about 380 miles and takes roughly 5-6 hours. Would you like suggestions for scenic routes or interesting stops along the way?" - }, - { - "role": "user", - "content": "Yes, what are some good places to stop?" - } - ], - "max_tokens": 1024 - }, - "output": { - "text": "# Great Stops Between SF & LA\n\nHere are some popular options depending on your route:\n\n## Coastal Route (Highway 1) \ud83c\udf0a\nThis is the scenic route (~8-10 hours with stops):\n- **Half Moon Bay** \u2013 Beautiful coastal town, great seafood\n- **Santa Cruz** \u2013 Boardwalk, surfing, laid-back vibe\n- **Monterey/Carmel** \u2013 Monterey Bay Aquarium, 17-Mile Drive\n- **Big Sur** \u2013 Stunning cliffs, Bixby Bridge, McWay Falls\n- **San Simeon** \u2013 Hearst Castle, elephant seal colony\n- **San Luis Obispo** \u2013 Charming college town, great food\n- **Santa Barbara** \u2013 \"American Riviera,\" wine country, beaches\n- **Solvang** \u2013 Danish-style village with bakeries & windmills\n\n## Inland Route (I-5) \ud83d\ude97\nThis is the fastest route (~5-6 hours):\n- **Harris Ranch** \u2013 Popular rest stop with a restaurant\n- **Bakersfield** \u2013 Buck Owens' Crystal Palace (country music)\n- Not as scenic, but efficient!\n\n## Tips:\n- \u26fd Fill up before Big Sur (limited gas stations)\n- \ud83d\udcf8 Start early for the best light on Highway 1\n- \ud83c\udfe8 Consider an overnight stop if taking the coastal route\n\n**Which route interests you more \u2013 scenic or fast?**" - }, - "raw_response": { - "id": "msg_019VVbDba57acjUFWYzMdWQV", - "type": "message", - "role": "assistant", - "content": [ - { - "type": "text", - "text": "# Great Stops Between SF & LA\n\nHere are some popular options depending on your route:\n\n## Coastal Route (Highway 1) \ud83c\udf0a\nThis is the scenic route (~8-10 hours with stops):\n- **Half Moon Bay** \u2013 Beautiful coastal town, great seafood\n- **Santa Cruz** \u2013 Boardwalk, surfing, laid-back vibe\n- **Monterey/Carmel** \u2013 Monterey Bay Aquarium, 17-Mile Drive\n- **Big Sur** \u2013 Stunning cliffs, Bixby Bridge, McWay Falls\n- **San Simeon** \u2013 Hearst Castle, elephant seal colony\n- **San Luis Obispo** \u2013 Charming college town, great food\n- **Santa Barbara** \u2013 \"American Riviera,\" wine country, beaches\n- **Solvang** \u2013 Danish-style village with bakeries & windmills\n\n## Inland Route (I-5) \ud83d\ude97\nThis is the fastest route (~5-6 hours):\n- **Harris Ranch** \u2013 Popular rest stop with a restaurant\n- **Bakersfield** \u2013 Buck Owens' Crystal Palace (country music)\n- Not as scenic, but efficient!\n\n## Tips:\n- \u26fd Fill up before Big Sur (limited gas stations)\n- \ud83d\udcf8 Start early for the best light on Highway 1\n- \ud83c\udfe8 Consider an overnight stop if taking the coastal route\n\n**Which route interests you more \u2013 scenic or fast?**" - } - ], - "model": "claude-opus-4-6", - "stop_reason": "end_turn", - "usage": { - "input_tokens": 76, - "output_tokens": 340 - }, - "stop_sequence": null, - "stop_details": null, - "gatewayMetadata": { - "keySource": "BYOK" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'anthropic/claude-opus-4.6',\n {\n messages: [\n {\n role: 'user',\n content:\n 'I need help planning a road trip from San Francisco to Los Angeles.',\n },\n {\n role: 'assistant',\n content:\n \"I'd be happy to help! The drive is about 380 miles and takes roughly 5-6 hours. Would you like suggestions for scenic routes or interesting stops along the way?\",\n },\n {\n role: 'user',\n content: 'Yes, what are some good places to stop?',\n },\n ],\n max_tokens: 1024,\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Creative Writing", - "description": "Higher temperature for creative output", - "input": { - "messages": [ - { - "role": "user", - "content": "Write a short story opening about a detective finding an unusual clue." - } - ], - "max_tokens": 512, - "temperature": 0.8 - }, - "output": { - "text": "# The Orchid on the Windowsill\n\nDetective Mara Solis had seen her share of crime scenes\u2014enough to know when something didn't belong.\n\nThe apartment was almost aggressively ordinary. Beige carpet, IKEA furniture, a stack of unopened mail on the kitchen counter. The victim, Gerald Pryce, age fifty-two, accountant, had lived the kind of life that left barely a thumbprint on the world. Even in death, slumped against his recliner with a single stab wound beneath the ribs, he seemed to be trying not to make a fuss.\n\nBut there, on the windowsill above the kitchen sink, sat a black orchid.\n\nNot dark purple. Not deep burgundy masquerading as black under bad lighting. Mara leaned closer, pulling on a fresh glove, and tilted the pot toward the gray morning light filtering through the blinds. The petals were the pure, liquid black of a moonless lake\u2014a color that shouldn't exist in nature.\n\nAnd as far as the department's botanist would confirm six hours later, it didn't.\n\n\"No soil,\" Mara murmured, peering into the ceramic pot. The orchid's roots wrapped around nothing but a small, folded piece of vellum paper, yellowed at the edges. She extracted it with tweezers and opened it carefully.\n\nA single line, handwritten in red ink:\n\n*He was not the first, and you already know me.*\n\nMara set the note down. Her hands were steady. Her pulse was not.\n\nShe read it again\u2014not because she needed to, but because some part of her recognized the handwriting." - }, - "raw_response": { - "id": "msg_01Q6DJ95CWj3L7QbCZ7onQHq", - "type": "message", - "role": "assistant", - "content": [ - { - "type": "text", - "text": "# The Orchid on the Windowsill\n\nDetective Mara Solis had seen her share of crime scenes\u2014enough to know when something didn't belong.\n\nThe apartment was almost aggressively ordinary. Beige carpet, IKEA furniture, a stack of unopened mail on the kitchen counter. The victim, Gerald Pryce, age fifty-two, accountant, had lived the kind of life that left barely a thumbprint on the world. Even in death, slumped against his recliner with a single stab wound beneath the ribs, he seemed to be trying not to make a fuss.\n\nBut there, on the windowsill above the kitchen sink, sat a black orchid.\n\nNot dark purple. Not deep burgundy masquerading as black under bad lighting. Mara leaned closer, pulling on a fresh glove, and tilted the pot toward the gray morning light filtering through the blinds. The petals were the pure, liquid black of a moonless lake\u2014a color that shouldn't exist in nature.\n\nAnd as far as the department's botanist would confirm six hours later, it didn't.\n\n\"No soil,\" Mara murmured, peering into the ceramic pot. The orchid's roots wrapped around nothing but a small, folded piece of vellum paper, yellowed at the edges. She extracted it with tweezers and opened it carefully.\n\nA single line, handwritten in red ink:\n\n*He was not the first, and you already know me.*\n\nMara set the note down. Her hands were steady. Her pulse was not.\n\nShe read it again\u2014not because she needed to, but because some part of her recognized the handwriting." - } - ], - "model": "claude-opus-4-6", - "stop_reason": "end_turn", - "usage": { - "input_tokens": 21, - "output_tokens": 374 - }, - "stop_sequence": null, - "stop_details": null, - "gatewayMetadata": { - "keySource": "BYOK" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'anthropic/claude-opus-4.6',\n {\n messages: [\n {\n role: 'user',\n content:\n 'Write a short story opening about a detective finding an unusual clue.',\n },\n ],\n max_tokens: 512,\n temperature: 0.8,\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Streaming Response", - "description": "Enable streaming for real-time output", - "input": { - "messages": [ - { - "role": "user", - "content": "Explain the concept of recursion with a simple example." - } - ], - "max_tokens": 1024, - "stream": true - }, - "output": { - "text": [ - "#", - " Understanding Recursion\n\n## The Concept\n\n**Recursion** is a programming technique where a **function calls itself** to solve a problem by breaking it down into smaller, sim", - "pler sub-problems. Every recursive function needs:\n\n1. **Base Case** \u2013 A condition that stops the recursion (", - "prevents infinite loops).\n2. **Recursive Case** \u2013 The function calling itself with a *smaller* or *simpler* input", - ".\n\n> **Think of it like Russian nesting dolls** \ud83e\ude86 ", - "\u2014 you keep opening a smaller doll until", - " you reach the tiniest one (the base case).\n\n---\n\n## Simple Example: Factorial\n\nThe factorial of `n` (", - "written `n!`) is:\n`5! = 5 \u00d7 4 \u00d7 3 \u00d7 2 \u00d7 1 = 120", - "`\n\n```python\ndef factorial(n):\n # Base case: stop when n is 0 or 1\n if n <= 1:\n return 1\n\n # Recursive case: n *", - " factorial of (n-1)\n return n * factorial(n - 1)\n\nprint(factorial(5)) # Output: 120\n```\n\n---\n\n## How It Works (", - "Call Stack)\n\n```\nfactorial(5)\n\u2502\n\u251c\u2500 5 * factorial(4)\n\u2502 \u251c\u2500 4 * factorial(3)\n\u2502 \u2502 ", - "\u251c\u2500 3 * factorial(2)\n\u2502 \u2502 \u2502 \u251c\u2500 2 * factorial(1)\n\u2502 \u2502 \u2502 \u2502 \u2514\u2500 returns 1", - " \u2190 Base case hit!\n\u2502 \u2502 \u2502 \u2514\u2500 returns 2 \u00d7 1 = 2\n\u2502 \u2502 \u2514\u2500 returns ", - "3 \u00d7 2 = 6\n\u2502 \u2514\u2500 returns 4 \u00d7 6 = 24\n\u2514\u2500 returns 5 \u00d7 24 = 120 \u2705", - "\n```\n\n---\n\n## Key Takeaways\n\n| Aspect | Description |\n|---|---|\n| **Base Case** | `if n <= 1: return ", - "1` \u2014 stops the recursion |\n| **Recursive Case** | `n * factorial(n - 1)` \u2014 moves toward the base case |\n| **Risk", - "** | Missing a base case \u2192 **infinite loop** (stack overflow \ud83d\udca5", - ") |\n| **Alternative** | Most recursive solutions can also be written as", - " **loops** (iteration) |\n\n> **Rule of thumb:** If a", - " problem can be defined in terms of a *smaller version of itself*, recurs", - "ion is a natural fit (e.g., tree traversal, searching, sorting, mathematical", - " sequences)." - ] - }, - "raw_response": [ - { - "type": "message_start", - "message": { - "model": "claude-opus-4-6", - "id": "msg_01LArxxRsu9fHtfj6gJafVbZ", - "type": "message", - "role": "assistant", - "content": [], - "stop_reason": null, - "stop_sequence": null, - "stop_details": null, - "usage": { - "input_tokens": 19, - "cache_creation_input_tokens": 0, - "cache_read_input_tokens": 0, - "cache_creation": { - "ephemeral_5m_input_tokens": 0, - "ephemeral_1h_input_tokens": 0 - }, - "output_tokens": 1, - "service_tier": "standard", - "inference_geo": "global" - } - } - }, - { - "type": "content_block_start", - "index": 0, - "content_block": { - "type": "text", - "text": "" - } - }, - { - "type": "ping" - }, - { - "type": "content_block_delta", - "index": 0, - "delta": { - "type": "text_delta", - "text": "#" - } - }, - { - "type": "content_block_delta", - "index": 0, - "delta": { - "type": "text_delta", - "text": " Understanding Recursion\n\n## The Concept\n\n**Recursion** is a programming technique where a **function calls itself** to solve a problem by breaking it down into smaller, sim" - } - }, - { - "type": "content_block_delta", - "index": 0, - "delta": { - "type": "text_delta", - "text": "pler sub-problems. Every recursive function needs:\n\n1. **Base Case** \u2013 A condition that stops the recursion (" - } - }, - { - "type": "content_block_delta", - "index": 0, - "delta": { - "type": "text_delta", - "text": "prevents infinite loops).\n2. **Recursive Case** \u2013 The function calling itself with a *smaller* or *simpler* input" - } - }, - { - "type": "content_block_delta", - "index": 0, - "delta": { - "type": "text_delta", - "text": ".\n\n> **Think of it like Russian nesting dolls** \ud83e\ude86 " - } - }, - { - "type": "content_block_delta", - "index": 0, - "delta": { - "type": "text_delta", - "text": "\u2014 you keep opening a smaller doll until" - } - }, - { - "type": "content_block_delta", - "index": 0, - "delta": { - "type": "text_delta", - "text": " you reach the tiniest one (the base case).\n\n---\n\n## Simple Example: Factorial\n\nThe factorial of `n` (" - } - }, - { - "type": "content_block_delta", - "index": 0, - "delta": { - "type": "text_delta", - "text": "written `n!`) is:\n`5! = 5 \u00d7 4 \u00d7 3 \u00d7 2 \u00d7 1 = 120" - } - }, - { - "type": "content_block_delta", - "index": 0, - "delta": { - "type": "text_delta", - "text": "`\n\n```python\ndef factorial(n):\n # Base case: stop when n is 0 or 1\n if n <= 1:\n return 1\n\n # Recursive case: n *" - } - }, - { - "type": "content_block_delta", - "index": 0, - "delta": { - "type": "text_delta", - "text": " factorial of (n-1)\n return n * factorial(n - 1)\n\nprint(factorial(5)) # Output: 120\n```\n\n---\n\n## How It Works (" - } - }, - { - "type": "content_block_delta", - "index": 0, - "delta": { - "type": "text_delta", - "text": "Call Stack)\n\n```\nfactorial(5)\n\u2502\n\u251c\u2500 5 * factorial(4)\n\u2502 \u251c\u2500 4 * factorial(3)\n\u2502 \u2502 " - } - }, - { - "type": "content_block_delta", - "index": 0, - "delta": { - "type": "text_delta", - "text": "\u251c\u2500 3 * factorial(2)\n\u2502 \u2502 \u2502 \u251c\u2500 2 * factorial(1)\n\u2502 \u2502 \u2502 \u2502 \u2514\u2500 returns 1" - } - }, - { - "type": "content_block_delta", - "index": 0, - "delta": { - "type": "text_delta", - "text": " \u2190 Base case hit!\n\u2502 \u2502 \u2502 \u2514\u2500 returns 2 \u00d7 1 = 2\n\u2502 \u2502 \u2514\u2500 returns " - } - }, - { - "type": "content_block_delta", - "index": 0, - "delta": { - "type": "text_delta", - "text": "3 \u00d7 2 = 6\n\u2502 \u2514\u2500 returns 4 \u00d7 6 = 24\n\u2514\u2500 returns 5 \u00d7 24 = 120 \u2705" - } - }, - { - "type": "content_block_delta", - "index": 0, - "delta": { - "type": "text_delta", - "text": "\n```\n\n---\n\n## Key Takeaways\n\n| Aspect | Description |\n|---|---|\n| **Base Case** | `if n <= 1: return " - } - }, - { - "type": "content_block_delta", - "index": 0, - "delta": { - "type": "text_delta", - "text": "1` \u2014 stops the recursion |\n| **Recursive Case** | `n * factorial(n - 1)` \u2014 moves toward the base case |\n| **Risk" - } - }, - { - "type": "content_block_delta", - "index": 0, - "delta": { - "type": "text_delta", - "text": "** | Missing a base case \u2192 **infinite loop** (stack overflow \ud83d\udca5" - } - }, - { - "type": "content_block_delta", - "index": 0, - "delta": { - "type": "text_delta", - "text": ") |\n| **Alternative** | Most recursive solutions can also be written as" - } - }, - { - "type": "content_block_delta", - "index": 0, - "delta": { - "type": "text_delta", - "text": " **loops** (iteration) |\n\n> **Rule of thumb:** If a" - } - }, - { - "type": "content_block_delta", - "index": 0, - "delta": { - "type": "text_delta", - "text": " problem can be defined in terms of a *smaller version of itself*, recurs" - } - }, - { - "type": "content_block_delta", - "index": 0, - "delta": { - "type": "text_delta", - "text": "ion is a natural fit (e.g., tree traversal, searching, sorting, mathematical" - } - }, - { - "type": "content_block_delta", - "index": 0, - "delta": { - "type": "text_delta", - "text": " sequences)." - } - }, - { - "type": "content_block_stop", - "index": 0 - }, - { - "type": "message_delta", - "delta": { - "stop_reason": "end_turn", - "stop_sequence": null, - "stop_details": null - }, - "usage": { - "input_tokens": 19, - "cache_creation_input_tokens": 0, - "cache_read_input_tokens": 0, - "output_tokens": 610 - } - }, - { - "type": "message_stop" - } - ], - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'anthropic/claude-opus-4.6',\n {\n messages: [\n {\n role: 'user',\n content: 'Explain the concept of recursion with a simple example.',\n },\n ],\n max_tokens: 1024,\n stream: true,\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - } - ], - "supports_async": false, - "external_info": "https://www.anthropic.com/claude/opus", - "terms": "https://www.anthropic.com/legal/commercial-terms", - "cover_image_url": "https://pub-26f1392c1b674324be6786695bd72257.r2.dev/anthropic/claude-opus-4.6.png", - "metadata": { - "Architecture": "Transformer", - "Extended Thinking": "Yes" - }, - "created_at": "2026-04-13 16:15:16", - "default_example": null, - "code_snippets": [], - "zdr": false, - "zdr_comment": null, - "schema": { - "input": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "messages": { - "type": "array", - "items": { - "type": "object", - "properties": { - "role": { - "type": "string", - "enum": [ - "user", - "assistant" - ] - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string" - }, - "text": { - "type": "string" - }, - "source": {} - }, - "required": [ - "type" - ], - "additionalProperties": false - } - } - ] - } - }, - "required": [ - "role", - "content" - ], - "additionalProperties": false - } - }, - "max_tokens": { - "type": "number", - "exclusiveMinimum": 0 - }, - "system": { - "type": "string" - }, - "temperature": { - "type": "number", - "minimum": 0, - "maximum": 1 - }, - "top_p": { - "type": "number", - "minimum": 0, - "maximum": 1 - }, - "top_k": { - "type": "number", - "exclusiveMinimum": 0 - }, - "stream": { - "type": "boolean" - }, - "metadata": { - "type": "object", - "propertyNames": { - "type": "string" - }, - "additionalProperties": {} - } - }, - "required": [ - "messages", - "max_tokens" - ], - "additionalProperties": {} - }, - "output": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "const": "message" - }, - "role": { - "type": "string", - "const": "assistant" - }, - "content": { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string" - }, - "text": { - "type": "string" - } - }, - "required": [ - "type" - ], - "additionalProperties": {} - } - }, - "model": { - "type": "string" - }, - "stop_reason": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "usage": { - "type": "object", - "properties": { - "input_tokens": { - "type": "number" - }, - "output_tokens": { - "type": "number" - } - }, - "required": [ - "input_tokens", - "output_tokens" - ], - "additionalProperties": false - } - }, - "required": [ - "id", - "type", - "role", - "content", - "model", - "stop_reason", - "usage" - ], - "additionalProperties": {} - } - } -} diff --git a/src/content/catalog-models/anthropic-claude-opus-4.7.json b/src/content/catalog-models/anthropic-claude-opus-4.7.json deleted file mode 100644 index ab32238b45c110b..000000000000000 --- a/src/content/catalog-models/anthropic-claude-opus-4.7.json +++ /dev/null @@ -1,679 +0,0 @@ -{ - "model_id": "anthropic/claude-opus-4.7", - "provider_id": "anthropic", - "name": "Claude Opus 4.7", - "description": "Claude Opus 4.7 is Anthropic's most capable generally available model, with a step-change improvement in agentic coding over Claude Opus 4.6. It uses adaptive thinking to calibrate reasoning per task and supports a one million token context window at standard pricing.", - "task": "Text Generation", - "tags": [ - "LLM", - "Coding", - "Reasoning", - "Enterprise", - "Agentic", - "Financial Analysis", - "Legal" - ], - "context_length": 1000000, - "max_output_tokens": 128000, - "schema_version": "1.0.0", - "examples": [ - { - "name": "Simple Question", - "description": "Basic message request", - "input": { - "messages": [ - { - "role": "user", - "content": "What are the three laws of thermodynamics?" - } - ], - "max_tokens": 1024 - }, - "output": { - "text": "# The Three Laws of Thermodynamics\n\n**First Law (Conservation of Energy):**\nEnergy cannot be created or destroyed, only transformed from one form to another. The total energy of an isolated system remains constant.\n- Often expressed as: \u0394U = Q \u2212 W (change in internal energy equals heat added minus work done by the system)\n\n**Second Law (Entropy):**\nThe total entropy (disorder) of an isolated system always increases over time, or remains constant in ideal reversible processes. Heat naturally flows from hot to cold, never the reverse without external work.\n- This law explains why perpetual motion machines are impossible and why processes have a preferred direction.\n\n**Third Law (Absolute Zero):**\nAs a system approaches absolute zero (0 Kelvin or \u2212273.15\u00b0C), its entropy approaches a minimum constant value. It's impossible to reach absolute zero in a finite number of steps.\n- A perfect crystal at absolute zero would have zero entropy.\n\n**Bonus \u2014 Zeroth Law:**\nOften mentioned alongside these: if two systems are each in thermal equilibrium with a third system, they are in thermal equilibrium with each other. This is the basis for temperature measurement." - }, - "raw_response": { - "id": "msg_013pmj6hy6QcjydL7goWQBZ7", - "type": "message", - "role": "assistant", - "content": [ - { - "type": "text", - "text": "# The Three Laws of Thermodynamics\n\n**First Law (Conservation of Energy):**\nEnergy cannot be created or destroyed, only transformed from one form to another. The total energy of an isolated system remains constant.\n- Often expressed as: \u0394U = Q \u2212 W (change in internal energy equals heat added minus work done by the system)\n\n**Second Law (Entropy):**\nThe total entropy (disorder) of an isolated system always increases over time, or remains constant in ideal reversible processes. Heat naturally flows from hot to cold, never the reverse without external work.\n- This law explains why perpetual motion machines are impossible and why processes have a preferred direction.\n\n**Third Law (Absolute Zero):**\nAs a system approaches absolute zero (0 Kelvin or \u2212273.15\u00b0C), its entropy approaches a minimum constant value. It's impossible to reach absolute zero in a finite number of steps.\n- A perfect crystal at absolute zero would have zero entropy.\n\n**Bonus \u2014 Zeroth Law:**\nOften mentioned alongside these: if two systems are each in thermal equilibrium with a third system, they are in thermal equilibrium with each other. This is the basis for temperature measurement." - } - ], - "model": "claude-opus-4-7", - "stop_reason": "end_turn", - "usage": { - "input_tokens": 25, - "output_tokens": 399 - }, - "stop_sequence": null, - "stop_details": null, - "gatewayMetadata": { - "keySource": "BYOK" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'anthropic/claude-opus-4.7',\n {\n messages: [\n {\n role: 'user',\n content: 'What are the three laws of thermodynamics?',\n },\n ],\n max_tokens: 1024,\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "With System Message", - "description": "Using a system message to set context", - "input": { - "messages": [ - { - "role": "user", - "content": "How do I read a JSON file in Python?" - } - ], - "max_tokens": 1024, - "system": "You are a helpful coding assistant specializing in Python." - }, - "output": { - "text": "# Reading a JSON File in Python\n\nPython has a built-in `json` module that makes reading JSON files straightforward.\n\n## Basic Example\n\n```python\nimport json\n\nwith open('data.json', 'r') as file:\n data = json.load(file)\n\nprint(data)\n```\n\n## Key Points\n\n- **`json.load()`** reads from a file object and parses JSON into Python objects\n- **`json.loads()`** (with an \"s\") parses JSON from a string\n- JSON objects become Python **dictionaries**, and JSON arrays become **lists**\n\n## Complete Example\n\nSuppose you have `data.json`:\n```json\n{\n \"name\": \"Alice\",\n \"age\": 30,\n \"hobbies\": [\"reading\", \"hiking\"]\n}\n```\n\nYou can read and access it like this:\n\n```python\nimport json\n\nwith open('data.json', 'r', encoding='utf-8') as file:\n data = json.load(file)\n\nprint(data['name']) # Alice\nprint(data['age']) # 30\nprint(data['hobbies'][0]) # reading\n```\n\n## Handling Errors\n\nIt's good practice to handle potential errors:\n\n```python\nimport json\n\ntry:\n with open('data.json', 'r', encoding='utf-8') as file:\n data = json.load(file)\nexcept FileNotFoundError:\n print(\"File not found\")\nexcept json.JSONDecodeError as e:\n print(f\"Invalid JSON: {e}\")\n```\n\n## Bonus: Writing JSON\n\nTo write data back to a JSON file:\n\n```python\nimport json\n\ndata = {\"name\": \"Bob\", \"age\": 25}\n\nwith open('output.json', 'w', encoding='utf-8') as file:\n json.dump(data, file, indent=4)\n```\n\nThe `indent=4` argument makes the output nicely formatted. Let me know if you'd like help with a specific JSON structure!" - }, - "raw_response": { - "id": "msg_013KNtXimWjxydHNC1qfHzwP", - "type": "message", - "role": "assistant", - "content": [ - { - "type": "text", - "text": "# Reading a JSON File in Python\n\nPython has a built-in `json` module that makes reading JSON files straightforward.\n\n## Basic Example\n\n```python\nimport json\n\nwith open('data.json', 'r') as file:\n data = json.load(file)\n\nprint(data)\n```\n\n## Key Points\n\n- **`json.load()`** reads from a file object and parses JSON into Python objects\n- **`json.loads()`** (with an \"s\") parses JSON from a string\n- JSON objects become Python **dictionaries**, and JSON arrays become **lists**\n\n## Complete Example\n\nSuppose you have `data.json`:\n```json\n{\n \"name\": \"Alice\",\n \"age\": 30,\n \"hobbies\": [\"reading\", \"hiking\"]\n}\n```\n\nYou can read and access it like this:\n\n```python\nimport json\n\nwith open('data.json', 'r', encoding='utf-8') as file:\n data = json.load(file)\n\nprint(data['name']) # Alice\nprint(data['age']) # 30\nprint(data['hobbies'][0]) # reading\n```\n\n## Handling Errors\n\nIt's good practice to handle potential errors:\n\n```python\nimport json\n\ntry:\n with open('data.json', 'r', encoding='utf-8') as file:\n data = json.load(file)\nexcept FileNotFoundError:\n print(\"File not found\")\nexcept json.JSONDecodeError as e:\n print(f\"Invalid JSON: {e}\")\n```\n\n## Bonus: Writing JSON\n\nTo write data back to a JSON file:\n\n```python\nimport json\n\ndata = {\"name\": \"Bob\", \"age\": 25}\n\nwith open('output.json', 'w', encoding='utf-8') as file:\n json.dump(data, file, indent=4)\n```\n\nThe `indent=4` argument makes the output nicely formatted. Let me know if you'd like help with a specific JSON structure!" - } - ], - "model": "claude-opus-4-7", - "stop_reason": "end_turn", - "usage": { - "input_tokens": 43, - "output_tokens": 587 - }, - "stop_sequence": null, - "stop_details": null, - "gatewayMetadata": { - "keySource": "BYOK" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'anthropic/claude-opus-4.7',\n {\n messages: [\n {\n role: 'user',\n content: 'How do I read a JSON file in Python?',\n },\n ],\n max_tokens: 1024,\n system: 'You are a helpful coding assistant specializing in Python.',\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Multi-turn Conversation", - "description": "Continuing a conversation with context", - "input": { - "messages": [ - { - "role": "user", - "content": "I need help planning a road trip from San Francisco to Los Angeles." - }, - { - "role": "assistant", - "content": "I'd be happy to help! The drive is about 380 miles and takes roughly 5-6 hours. Would you like suggestions for scenic routes or interesting stops along the way?" - }, - { - "role": "user", - "content": "Yes, what are some good places to stop?" - } - ], - "max_tokens": 1024 - }, - "output": { - "text": "Great choice to explore along the way! Here are some popular stops, organized by route:\n\n## If Taking Highway 1 / Pacific Coast Highway (scenic, ~9-10 hours driving)\n\n- **Half Moon Bay** \u2013 Charming coastal town, great for breakfast\n- **Santa Cruz** \u2013 Boardwalk, beaches, and redwoods\n- **Monterey** \u2013 Famous aquarium and Cannery Row\n- **Carmel-by-the-Sea** \u2013 Quaint village with art galleries\n- **Big Sur** \u2013 Stunning cliffs, Bixby Bridge, McWay Falls\n- **Hearst Castle** (San Simeon) \u2013 Historic mansion tours\n- **Morro Bay** \u2013 Iconic Morro Rock and sea otters\n- **Pismo Beach** \u2013 Sand dunes and beach town vibes\n- **Santa Barbara** \u2013 \"American Riviera,\" wine, and Spanish architecture\n\n## If Taking I-5 (fastest, ~5-6 hours)\n\n- **Harris Ranch** \u2013 Famous steakhouse and rest stop\n- **Kettleman City** \u2013 Gas and snacks (not much else!)\n- I-5 is efficient but pretty barren\u2014mostly farmland\n\n## If Taking US-101 (middle ground, ~6-7 hours)\n\n- **Gilroy** \u2013 Garlic capital, outlet shopping\n- **Paso Robles** \u2013 Excellent wine country\n- **San Luis Obispo** \u2013 College town with great food\n- **Solvang** \u2013 Charming Danish-themed village\n- **Santa Barbara** \u2013 Worth visiting on this route too\n\n## Questions to help narrow it down:\n1. How many days do you have for the trip?\n2. Are you more interested in nature, food, history, or beaches?\n3. Traveling solo, with family, or friends?\n\nLet me know and I can build a more detailed itinerary!" - }, - "raw_response": { - "id": "msg_01FmPy3fWFf7w6Sx6ECEdKnh", - "type": "message", - "role": "assistant", - "content": [ - { - "type": "text", - "text": "Great choice to explore along the way! Here are some popular stops, organized by route:\n\n## If Taking Highway 1 / Pacific Coast Highway (scenic, ~9-10 hours driving)\n\n- **Half Moon Bay** \u2013 Charming coastal town, great for breakfast\n- **Santa Cruz** \u2013 Boardwalk, beaches, and redwoods\n- **Monterey** \u2013 Famous aquarium and Cannery Row\n- **Carmel-by-the-Sea** \u2013 Quaint village with art galleries\n- **Big Sur** \u2013 Stunning cliffs, Bixby Bridge, McWay Falls\n- **Hearst Castle** (San Simeon) \u2013 Historic mansion tours\n- **Morro Bay** \u2013 Iconic Morro Rock and sea otters\n- **Pismo Beach** \u2013 Sand dunes and beach town vibes\n- **Santa Barbara** \u2013 \"American Riviera,\" wine, and Spanish architecture\n\n## If Taking I-5 (fastest, ~5-6 hours)\n\n- **Harris Ranch** \u2013 Famous steakhouse and rest stop\n- **Kettleman City** \u2013 Gas and snacks (not much else!)\n- I-5 is efficient but pretty barren\u2014mostly farmland\n\n## If Taking US-101 (middle ground, ~6-7 hours)\n\n- **Gilroy** \u2013 Garlic capital, outlet shopping\n- **Paso Robles** \u2013 Excellent wine country\n- **San Luis Obispo** \u2013 College town with great food\n- **Solvang** \u2013 Charming Danish-themed village\n- **Santa Barbara** \u2013 Worth visiting on this route too\n\n## Questions to help narrow it down:\n1. How many days do you have for the trip?\n2. Are you more interested in nature, food, history, or beaches?\n3. Traveling solo, with family, or friends?\n\nLet me know and I can build a more detailed itinerary!" - } - ], - "model": "claude-opus-4-7", - "stop_reason": "end_turn", - "usage": { - "input_tokens": 114, - "output_tokens": 621 - }, - "stop_sequence": null, - "stop_details": null, - "gatewayMetadata": { - "keySource": "BYOK" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'anthropic/claude-opus-4.7',\n {\n messages: [\n {\n role: 'user',\n content:\n 'I need help planning a road trip from San Francisco to Los Angeles.',\n },\n {\n role: 'assistant',\n content:\n \"I'd be happy to help! The drive is about 380 miles and takes roughly 5-6 hours. Would you like suggestions for scenic routes or interesting stops along the way?\",\n },\n {\n role: 'user',\n content: 'Yes, what are some good places to stop?',\n },\n ],\n max_tokens: 1024,\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Creative Writing with Adaptive Thinking", - "description": "Use adaptive thinking with high effort to steer creative output -- the recommended replacement for the deprecated `temperature` parameter.", - "input": { - "messages": [ - { - "role": "user", - "content": "Write a short story opening about a detective finding an unusual clue." - } - ], - "max_tokens": 2048, - "thinking": { - "type": "adaptive" - }, - "output_config": { - "effort": "high" - } - }, - "output": { - "text": "# The Wrong Kind of Silence\n\nDetective Mara Halloran had worked enough crime scenes to know that rooms had voices. A kitchen where someone had fled mid-breakfast hummed with interruption. A bedroom after a struggle kept the echo of it in the disarranged sheets, the lamp knocked just-so.\n\nBut the study at 14 Pearsmont Lane was quiet in a way she didn't recognize.\n\nShe stood in the doorway, coffee going cold in her hand, and tried to name it. The body had already been photographed and carried out\u2014Gerald Finch, seventy-two, retired cartographer, found slumped over his desk by the housekeeper at half past six. No forced entry. No wound. The coroner was calling it natural until the tox screen said otherwise.\n\nMara stepped inside. Bookshelves. A globe. The smell of pipe tobacco clinging to the curtains like an old apology. Everything where a dead man's things ought to be.\n\nExcept.\n\nOn the desk, beside the blotter where Finch's forehead had rested, someone had laid out seven grains of rice in a perfect, deliberate row.\n\nNot spilled. Not scattered. *Placed.*\n\nShe crouched until her eyes were level with the desktop. The grains were evenly spaced, each one turned so its seam faced the same direction\u2014north, if she was reading the window light right. The housekeeper hadn't mentioned them. The first responders hadn't logged them. And Gerald Finch, according to three separate statements, hadn't eaten rice in forty years. Couldn't stand the stuff, his sister had said. Something about the war.\n\nMara straightened slowly, her knees protesting, and felt the quiet of the room press against her ears.\n\nSeven grains. Facing north. On the desk of a man who drew maps for a living.\n\n\"Well, Gerald,\" she murmured, reaching for her notebook. \"Who were you trying to tell?\"" - }, - "raw_response": { - "id": "msg_019oiL5qvRdHBpPLrsS5x3Ux", - "type": "message", - "role": "assistant", - "content": [ - { - "type": "text", - "text": "# The Wrong Kind of Silence\n\nDetective Mara Halloran had worked enough crime scenes to know that rooms had voices. A kitchen where someone had fled mid-breakfast hummed with interruption. A bedroom after a struggle kept the echo of it in the disarranged sheets, the lamp knocked just-so.\n\nBut the study at 14 Pearsmont Lane was quiet in a way she didn't recognize.\n\nShe stood in the doorway, coffee going cold in her hand, and tried to name it. The body had already been photographed and carried out\u2014Gerald Finch, seventy-two, retired cartographer, found slumped over his desk by the housekeeper at half past six. No forced entry. No wound. The coroner was calling it natural until the tox screen said otherwise.\n\nMara stepped inside. Bookshelves. A globe. The smell of pipe tobacco clinging to the curtains like an old apology. Everything where a dead man's things ought to be.\n\nExcept.\n\nOn the desk, beside the blotter where Finch's forehead had rested, someone had laid out seven grains of rice in a perfect, deliberate row.\n\nNot spilled. Not scattered. *Placed.*\n\nShe crouched until her eyes were level with the desktop. The grains were evenly spaced, each one turned so its seam faced the same direction\u2014north, if she was reading the window light right. The housekeeper hadn't mentioned them. The first responders hadn't logged them. And Gerald Finch, according to three separate statements, hadn't eaten rice in forty years. Couldn't stand the stuff, his sister had said. Something about the war.\n\nMara straightened slowly, her knees protesting, and felt the quiet of the room press against her ears.\n\nSeven grains. Facing north. On the desk of a man who drew maps for a living.\n\n\"Well, Gerald,\" she murmured, reaching for her notebook. \"Who were you trying to tell?\"" - } - ], - "model": "claude-opus-4-7", - "stop_reason": "end_turn", - "usage": { - "input_tokens": 31, - "output_tokens": 628 - }, - "stop_sequence": null, - "stop_details": null, - "gatewayMetadata": { - "keySource": "BYOK" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'anthropic/claude-opus-4.7',\n {\n messages: [\n {\n role: 'user',\n content:\n 'Write a short story opening about a detective finding an unusual clue.',\n },\n ],\n max_tokens: 2048,\n thinking: {\n type: 'adaptive',\n },\n output_config: {\n effort: 'high',\n },\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Streaming Response", - "description": "Enable streaming for real-time output", - "input": { - "messages": [ - { - "role": "user", - "content": "Explain the concept of recursion with a simple example." - } - ], - "max_tokens": 1024, - "stream": true - }, - "output": { - "text": [ - "# Recursion", - " Explained\n\n**Recursion** is a programming concept where a function calls itself to solve a smaller version of the same problem,", - " until it reaches a simple case it can solve directly.\n\n## Two Ess", - "ential Parts\n\nEvery recursive function needs:\n\n1. **Base case** \u2014 a condition that st", - "ops the recursion (prevents infinite loops)\n2. **Recursive case** \u2014 the function calling itself with a", - " smaller/simpler input\n\n## Simple Example: Factorial\n\nThe factorial of a number `", - "n` (written `n!`) is the product of all positive integers up to `n`.\n\n- `", - "5! = 5 \u00d7 4 \u00d7 3 \u00d7 2 \u00d7 1 = 120`\n\nNotice that `5! = 5 \u00d7 4!", - "`, and `4! = 4 \u00d7 3!`, and so on. This self-similar p", - "attern is perfect for recursion.\n\n```python\ndef factorial(n):\n # Base case: st", - "op when n is 0 or 1\n if n <= 1:\n return 1\n # Recursive case: n \u00d7 factorial of (", - "n-1)\n return n * factorial(n - 1)\n\nprint(factorial(5)) # Output: 120\n```\n\n## How", - " It Works (Step by Step)\n\nWhen you call `factorial(5)`:\n\n```\nfactorial(5) = 5 \u00d7 factorial", - "(4)\n = 5 \u00d7 (4 \u00d7 factorial(3))\n = 5 \u00d7 (4 \u00d7 (3 \u00d7 factorial(2)))\n = 5 \u00d7 (4 \u00d7 (3 \u00d7 (2 \u00d7 factorial", - "(1))))\n = 5 \u00d7 (4 \u00d7 (3 \u00d7 (2 \u00d7 1))) \u2190 base case hit!\n = 120", - "\n```\n\n## Real-World Analogy\n\nThink of **Russian nesting dolls** \ud83e\ude86", - ". To find the smallest doll, you open one, find another in", - "side, open that, find another... until finally you reach the tiniest doll that", - " doesn't open. That \"tiniest doll\" is your base case.\n\n## Key Takeaway\n\nRecursion", - " is elegant for problems that can be broken into **sm", - "aller versions of themselves** \u2014 like traversing trees, nav", - "igating folders, or solving puzzles like the Tower of Hanoi. Just remember: **", - "always include a base case**, or your program will cr", - "ash with a stack overflow!" - ] - }, - "raw_response": [ - { - "type": "message_start", - "message": { - "model": "claude-opus-4-7", - "id": "msg_018UiizftMy3k3UwQepmrFxq", - "type": "message", - "role": "assistant", - "content": [], - "stop_reason": null, - "stop_sequence": null, - "stop_details": null, - "usage": { - "input_tokens": 27, - "cache_creation_input_tokens": 0, - "cache_read_input_tokens": 0, - "cache_creation": { - "ephemeral_5m_input_tokens": 0, - "ephemeral_1h_input_tokens": 0 - }, - "output_tokens": 6, - "service_tier": "standard", - "inference_geo": "global" - } - } - }, - { - "type": "content_block_start", - "index": 0, - "content_block": { - "type": "text", - "text": "" - } - }, - { - "type": "ping" - }, - { - "type": "content_block_delta", - "index": 0, - "delta": { - "type": "text_delta", - "text": "# Recursion" - } - }, - { - "type": "content_block_delta", - "index": 0, - "delta": { - "type": "text_delta", - "text": " Explained\n\n**Recursion** is a programming concept where a function calls itself to solve a smaller version of the same problem," - } - }, - { - "type": "content_block_delta", - "index": 0, - "delta": { - "type": "text_delta", - "text": " until it reaches a simple case it can solve directly.\n\n## Two Ess" - } - }, - { - "type": "content_block_delta", - "index": 0, - "delta": { - "type": "text_delta", - "text": "ential Parts\n\nEvery recursive function needs:\n\n1. **Base case** \u2014 a condition that st" - } - }, - { - "type": "content_block_delta", - "index": 0, - "delta": { - "type": "text_delta", - "text": "ops the recursion (prevents infinite loops)\n2. **Recursive case** \u2014 the function calling itself with a" - } - }, - { - "type": "content_block_delta", - "index": 0, - "delta": { - "type": "text_delta", - "text": " smaller/simpler input\n\n## Simple Example: Factorial\n\nThe factorial of a number `" - } - }, - { - "type": "content_block_delta", - "index": 0, - "delta": { - "type": "text_delta", - "text": "n` (written `n!`) is the product of all positive integers up to `n`.\n\n- `" - } - }, - { - "type": "content_block_delta", - "index": 0, - "delta": { - "type": "text_delta", - "text": "5! = 5 \u00d7 4 \u00d7 3 \u00d7 2 \u00d7 1 = 120`\n\nNotice that `5! = 5 \u00d7 4!" - } - }, - { - "type": "content_block_delta", - "index": 0, - "delta": { - "type": "text_delta", - "text": "`, and `4! = 4 \u00d7 3!`, and so on. This self-similar p" - } - }, - { - "type": "content_block_delta", - "index": 0, - "delta": { - "type": "text_delta", - "text": "attern is perfect for recursion.\n\n```python\ndef factorial(n):\n # Base case: st" - } - }, - { - "type": "content_block_delta", - "index": 0, - "delta": { - "type": "text_delta", - "text": "op when n is 0 or 1\n if n <= 1:\n return 1\n # Recursive case: n \u00d7 factorial of (" - } - }, - { - "type": "content_block_delta", - "index": 0, - "delta": { - "type": "text_delta", - "text": "n-1)\n return n * factorial(n - 1)\n\nprint(factorial(5)) # Output: 120\n```\n\n## How" - } - }, - { - "type": "content_block_delta", - "index": 0, - "delta": { - "type": "text_delta", - "text": " It Works (Step by Step)\n\nWhen you call `factorial(5)`:\n\n```\nfactorial(5) = 5 \u00d7 factorial" - } - }, - { - "type": "content_block_delta", - "index": 0, - "delta": { - "type": "text_delta", - "text": "(4)\n = 5 \u00d7 (4 \u00d7 factorial(3))\n = 5 \u00d7 (4 \u00d7 (3 \u00d7 factorial(2)))\n = 5 \u00d7 (4 \u00d7 (3 \u00d7 (2 \u00d7 factorial" - } - }, - { - "type": "content_block_delta", - "index": 0, - "delta": { - "type": "text_delta", - "text": "(1))))\n = 5 \u00d7 (4 \u00d7 (3 \u00d7 (2 \u00d7 1))) \u2190 base case hit!\n = 120" - } - }, - { - "type": "content_block_delta", - "index": 0, - "delta": { - "type": "text_delta", - "text": "\n```\n\n## Real-World Analogy\n\nThink of **Russian nesting dolls** \ud83e\ude86" - } - }, - { - "type": "content_block_delta", - "index": 0, - "delta": { - "type": "text_delta", - "text": ". To find the smallest doll, you open one, find another in" - } - }, - { - "type": "content_block_delta", - "index": 0, - "delta": { - "type": "text_delta", - "text": "side, open that, find another... until finally you reach the tiniest doll that" - } - }, - { - "type": "content_block_delta", - "index": 0, - "delta": { - "type": "text_delta", - "text": " doesn't open. That \"tiniest doll\" is your base case.\n\n## Key Takeaway\n\nRecursion" - } - }, - { - "type": "content_block_delta", - "index": 0, - "delta": { - "type": "text_delta", - "text": " is elegant for problems that can be broken into **sm" - } - }, - { - "type": "content_block_delta", - "index": 0, - "delta": { - "type": "text_delta", - "text": "aller versions of themselves** \u2014 like traversing trees, nav" - } - }, - { - "type": "content_block_delta", - "index": 0, - "delta": { - "type": "text_delta", - "text": "igating folders, or solving puzzles like the Tower of Hanoi. Just remember: **" - } - }, - { - "type": "content_block_delta", - "index": 0, - "delta": { - "type": "text_delta", - "text": "always include a base case**, or your program will cr" - } - }, - { - "type": "content_block_delta", - "index": 0, - "delta": { - "type": "text_delta", - "text": "ash with a stack overflow!" - } - }, - { - "type": "content_block_stop", - "index": 0 - }, - { - "type": "message_delta", - "delta": { - "stop_reason": "end_turn", - "stop_sequence": null, - "stop_details": null - }, - "usage": { - "input_tokens": 27, - "cache_creation_input_tokens": 0, - "cache_read_input_tokens": 0, - "output_tokens": 695 - } - }, - { - "type": "message_stop" - } - ], - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'anthropic/claude-opus-4.7',\n {\n messages: [\n {\n role: 'user',\n content: 'Explain the concept of recursion with a simple example.',\n },\n ],\n max_tokens: 1024,\n stream: true,\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - } - ], - "supports_async": false, - "external_info": "https://www.anthropic.com/claude/opus", - "terms": "https://www.anthropic.com/legal/commercial-terms", - "cover_image_url": "https://pub-26f1392c1b674324be6786695bd72257.r2.dev/anthropic/claude-opus-4.7.png", - "metadata": { - "Architecture": "Transformer", - "Adaptive Thinking": "Yes" - }, - "created_at": "2026-04-16 16:00:53", - "default_example": null, - "code_snippets": [], - "zdr": true, - "zdr_comment": null, - "schema": { - "input": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "messages": { - "type": "array", - "items": { - "type": "object", - "properties": { - "role": { - "type": "string", - "enum": [ - "user", - "assistant" - ] - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string" - }, - "text": { - "type": "string" - }, - "source": {} - }, - "required": [ - "type" - ], - "additionalProperties": false - } - } - ] - } - }, - "required": [ - "role", - "content" - ], - "additionalProperties": false - } - }, - "max_tokens": { - "type": "number", - "exclusiveMinimum": 0 - }, - "system": { - "type": "string" - }, - "stream": { - "type": "boolean" - }, - "metadata": { - "type": "object", - "propertyNames": { - "type": "string" - }, - "additionalProperties": {} - } - }, - "required": [ - "messages", - "max_tokens" - ], - "additionalProperties": {} - }, - "output": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "const": "message" - }, - "role": { - "type": "string", - "const": "assistant" - }, - "content": { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string" - }, - "text": { - "type": "string" - } - }, - "required": [ - "type" - ], - "additionalProperties": {} - } - }, - "model": { - "type": "string" - }, - "stop_reason": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "usage": { - "type": "object", - "properties": { - "input_tokens": { - "type": "number" - }, - "output_tokens": { - "type": "number" - } - }, - "required": [ - "input_tokens", - "output_tokens" - ], - "additionalProperties": false - } - }, - "required": [ - "id", - "type", - "role", - "content", - "model", - "stop_reason", - "usage" - ], - "additionalProperties": {} - } - } -} diff --git a/src/content/catalog-models/anthropic-claude-sonnet-4.5.json b/src/content/catalog-models/anthropic-claude-sonnet-4.5.json deleted file mode 100644 index 1f20422ad12a9da..000000000000000 --- a/src/content/catalog-models/anthropic-claude-sonnet-4.5.json +++ /dev/null @@ -1,578 +0,0 @@ -{ - "model_id": "anthropic/claude-sonnet-4.5", - "provider_id": "anthropic", - "name": "Claude Sonnet 4.5", - "description": "Claude Sonnet 4.5 is the best coding model to date, with significant improvements across the entire development lifecycle.", - "task": "Text Generation", - "tags": [ - "LLM", - "Coding", - "Reasoning", - "Agentic" - ], - "context_length": 200000, - "max_output_tokens": 8192, - "schema_version": "1.0.0", - "examples": [ - { - "name": "Simple Question", - "description": "Basic message request", - "input": { - "messages": [ - { - "role": "user", - "content": "What are the three laws of thermodynamics?" - } - ], - "max_tokens": 1024 - }, - "output": { - "text": "# The Three Laws of Thermodynamics\n\n## **First Law: Conservation of Energy**\nEnergy cannot be created or destroyed, only converted from one form to another. The total energy of an isolated system remains constant.\n- Also stated as: \u0394U = Q - W (change in internal energy equals heat added minus work done)\n\n## **Second Law: Entropy**\nThe entropy of an isolated system always increases over time. Heat naturally flows from hot to cold, and processes tend toward disorder.\n- This law explains why certain processes are irreversible and why we can't have 100% efficient heat engines\n\n## **Third Law: Absolute Zero**\nAs temperature approaches absolute zero (0 Kelvin or -273.15\u00b0C), the entropy of a perfect crystal approaches zero.\n- Practically, this means absolute zero cannot be reached through any finite number of processes\n\n**Note:** There's also a \"Zeroth Law\" (named later): If two systems are each in thermal equilibrium with a third system, they are in thermal equilibrium with each other. This establishes the concept of temperature." - }, - "raw_response": { - "id": "msg_01GZMN4RKsBb5RHXUJYBgBdG", - "type": "message", - "role": "assistant", - "content": [ - { - "type": "text", - "text": "# The Three Laws of Thermodynamics\n\n## **First Law: Conservation of Energy**\nEnergy cannot be created or destroyed, only converted from one form to another. The total energy of an isolated system remains constant.\n- Also stated as: \u0394U = Q - W (change in internal energy equals heat added minus work done)\n\n## **Second Law: Entropy**\nThe entropy of an isolated system always increases over time. Heat naturally flows from hot to cold, and processes tend toward disorder.\n- This law explains why certain processes are irreversible and why we can't have 100% efficient heat engines\n\n## **Third Law: Absolute Zero**\nAs temperature approaches absolute zero (0 Kelvin or -273.15\u00b0C), the entropy of a perfect crystal approaches zero.\n- Practically, this means absolute zero cannot be reached through any finite number of processes\n\n**Note:** There's also a \"Zeroth Law\" (named later): If two systems are each in thermal equilibrium with a third system, they are in thermal equilibrium with each other. This establishes the concept of temperature." - } - ], - "model": "claude-sonnet-4-5-20250929", - "stop_reason": "end_turn", - "usage": { - "input_tokens": 17, - "output_tokens": 240 - }, - "stop_sequence": null, - "stop_details": null, - "gatewayMetadata": { - "keySource": "BYOK" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'anthropic/claude-sonnet-4.5',\n {\n messages: [\n {\n role: 'user',\n content: 'What are the three laws of thermodynamics?',\n },\n ],\n max_tokens: 1024,\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "With System Message", - "description": "Using a system message to set context", - "input": { - "messages": [ - { - "role": "user", - "content": "How do I read a JSON file in Python?" - } - ], - "max_tokens": 1024, - "system": "You are a helpful coding assistant specializing in Python.", - "temperature": 0.3 - }, - "output": { - "text": "# Reading a JSON File in Python\n\nYou can read a JSON file using Python's built-in `json` module. Here are the common methods:\n\n## Basic Method\n\n```python\nimport json\n\n# Read JSON file\nwith open('data.json', 'r') as file:\n data = json.load(file)\n\nprint(data)\n```\n\n## Complete Example\n\n```python\nimport json\n\n# Reading JSON file\nwith open('data.json', 'r') as file:\n data = json.load(file)\n \n# Access the data\nprint(data)\nprint(type(data)) # Usually dict or list\n```\n\n## With Error Handling\n\n```python\nimport json\n\ntry:\n with open('data.json', 'r') as file:\n data = json.load(file)\n print(data)\nexcept FileNotFoundError:\n print(\"File not found!\")\nexcept json.JSONDecodeError:\n print(\"Invalid JSON format!\")\n```\n\n## Reading JSON String (not file)\n\nIf you have a JSON string instead of a file:\n\n```python\nimport json\n\njson_string = '{\"name\": \"John\", \"age\": 30}'\ndata = json.loads(json_string) # Note: loads() not load()\nprint(data)\n```\n\n## Key Points\n\n- **`json.load()`** - reads from a **file object**\n- **`json.loads()`** - reads from a **string**\n- Always use `with open()` to ensure the file is properly closed\n- JSON objects become Python dictionaries\n- JSON arrays become Python lists" - }, - "raw_response": { - "id": "msg_01KF2gMfuUeqNjxZytqgkfGd", - "type": "message", - "role": "assistant", - "content": [ - { - "type": "text", - "text": "# Reading a JSON File in Python\n\nYou can read a JSON file using Python's built-in `json` module. Here are the common methods:\n\n## Basic Method\n\n```python\nimport json\n\n# Read JSON file\nwith open('data.json', 'r') as file:\n data = json.load(file)\n\nprint(data)\n```\n\n## Complete Example\n\n```python\nimport json\n\n# Reading JSON file\nwith open('data.json', 'r') as file:\n data = json.load(file)\n \n# Access the data\nprint(data)\nprint(type(data)) # Usually dict or list\n```\n\n## With Error Handling\n\n```python\nimport json\n\ntry:\n with open('data.json', 'r') as file:\n data = json.load(file)\n print(data)\nexcept FileNotFoundError:\n print(\"File not found!\")\nexcept json.JSONDecodeError:\n print(\"Invalid JSON format!\")\n```\n\n## Reading JSON String (not file)\n\nIf you have a JSON string instead of a file:\n\n```python\nimport json\n\njson_string = '{\"name\": \"John\", \"age\": 30}'\ndata = json.loads(json_string) # Note: loads() not load()\nprint(data)\n```\n\n## Key Points\n\n- **`json.load()`** - reads from a **file object**\n- **`json.loads()`** - reads from a **string**\n- Always use `with open()` to ensure the file is properly closed\n- JSON objects become Python dictionaries\n- JSON arrays become Python lists" - } - ], - "model": "claude-sonnet-4-5-20250929", - "stop_reason": "end_turn", - "usage": { - "input_tokens": 28, - "output_tokens": 371 - }, - "stop_sequence": null, - "stop_details": null, - "gatewayMetadata": { - "keySource": "BYOK" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'anthropic/claude-sonnet-4.5',\n {\n messages: [\n {\n role: 'user',\n content: 'How do I read a JSON file in Python?',\n },\n ],\n max_tokens: 1024,\n system: 'You are a helpful coding assistant specializing in Python.',\n temperature: 0.3,\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Multi-turn Conversation", - "description": "Continuing a conversation with context", - "input": { - "messages": [ - { - "role": "user", - "content": "I need help planning a road trip from San Francisco to Los Angeles." - }, - { - "role": "assistant", - "content": "I'd be happy to help! The drive is about 380 miles and takes roughly 5-6 hours. Would you like suggestions for scenic routes or interesting stops along the way?" - }, - { - "role": "user", - "content": "Yes, what are some good places to stop?" - } - ], - "max_tokens": 1024 - }, - "output": { - "text": "Here are some great stops between San Francisco and Los Angeles:\n\n**Scenic Route (Highway 1/PCH - about 10 hours driving):**\n- **Monterey & Carmel** - Monterey Bay Aquarium, 17-Mile Drive, charming downtown Carmel\n- **Big Sur** - McWay Falls, Bixby Bridge, stunning coastal views\n- **Hearst Castle** - Historic mansion tours in San Simeon\n- **Morro Bay** - Iconic Morro Rock and waterfront\n- **San Luis Obispo** - Downtown shopping, Madonna Inn\n- **Santa Barbara** - Spanish architecture, beaches, wine country\n- **Solvang** - Danish-themed village (short detour)\n\n**Faster Route (Highway 101 - about 6 hours):**\n- **Gilroy** - Famous garlic capital\n- **San Luis Obispo** - Bubblegum Alley, Mission\n- **Pismo Beach** - Classic beach town\n- **Santa Barbara** - Mission, State Street\n\n**Tips:**\n- Big Sur has limited cell service and few gas stations\n- Book Hearst Castle tickets in advance\n- Consider splitting into 2-3 days to enjoy stops\n\nWhat interests you most - beaches, nature, food, or historic sites? I can refine recommendations based on your preferences!" - }, - "raw_response": { - "id": "msg_013M3Nhg1ApNNGZf1GWxRHUj", - "type": "message", - "role": "assistant", - "content": [ - { - "type": "text", - "text": "Here are some great stops between San Francisco and Los Angeles:\n\n**Scenic Route (Highway 1/PCH - about 10 hours driving):**\n- **Monterey & Carmel** - Monterey Bay Aquarium, 17-Mile Drive, charming downtown Carmel\n- **Big Sur** - McWay Falls, Bixby Bridge, stunning coastal views\n- **Hearst Castle** - Historic mansion tours in San Simeon\n- **Morro Bay** - Iconic Morro Rock and waterfront\n- **San Luis Obispo** - Downtown shopping, Madonna Inn\n- **Santa Barbara** - Spanish architecture, beaches, wine country\n- **Solvang** - Danish-themed village (short detour)\n\n**Faster Route (Highway 101 - about 6 hours):**\n- **Gilroy** - Famous garlic capital\n- **San Luis Obispo** - Bubblegum Alley, Mission\n- **Pismo Beach** - Classic beach town\n- **Santa Barbara** - Mission, State Street\n\n**Tips:**\n- Big Sur has limited cell service and few gas stations\n- Book Hearst Castle tickets in advance\n- Consider splitting into 2-3 days to enjoy stops\n\nWhat interests you most - beaches, nature, food, or historic sites? I can refine recommendations based on your preferences!" - } - ], - "model": "claude-sonnet-4-5-20250929", - "stop_reason": "end_turn", - "usage": { - "input_tokens": 76, - "output_tokens": 310 - }, - "stop_sequence": null, - "stop_details": null, - "gatewayMetadata": { - "keySource": "BYOK" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'anthropic/claude-sonnet-4.5',\n {\n messages: [\n {\n role: 'user',\n content:\n 'I need help planning a road trip from San Francisco to Los Angeles.',\n },\n {\n role: 'assistant',\n content:\n \"I'd be happy to help! The drive is about 380 miles and takes roughly 5-6 hours. Would you like suggestions for scenic routes or interesting stops along the way?\",\n },\n {\n role: 'user',\n content: 'Yes, what are some good places to stop?',\n },\n ],\n max_tokens: 1024,\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Creative Writing", - "description": "Higher temperature for creative output", - "input": { - "messages": [ - { - "role": "user", - "content": "Write a short story opening about a detective finding an unusual clue." - } - ], - "max_tokens": 512, - "temperature": 0.8 - }, - "output": { - "text": "# The Blue Feather\n\nDetective Sarah Chen had seen plenty of strange things at crime scenes over her fifteen years on the force, but she'd never seen anything quite like this.\n\nThe penthouse apartment was pristine\u2014too pristine for a place where someone had allegedly been murdered just hours ago. No blood spatter. No signs of struggle. No body, for that matter, despite three separate witnesses reporting screams and a gunshot at 2:47 AM.\n\nShe was about to call it in as a false alarm when the morning sun shifted through the floor-to-ceiling windows, catching something wedged between the marble tiles near the balcony door.\n\nSarah knelt down and pulled out her tweezers. The object was impossibly delicate: a single feather, no longer than her thumb, glowing an electric blue that seemed to pulse with its own light. She'd never seen a bird with plumage this color\u2014not naturally, anyway.\n\nBut it was what happened when she picked it up that made her breath catch.\n\nThe feather was warm. And getting warmer.\n\nThen it started to hum." - }, - "raw_response": { - "id": "msg_01Qf12B9uws6JAnfRfQ6WgBe", - "type": "message", - "role": "assistant", - "content": [ - { - "type": "text", - "text": "# The Blue Feather\n\nDetective Sarah Chen had seen plenty of strange things at crime scenes over her fifteen years on the force, but she'd never seen anything quite like this.\n\nThe penthouse apartment was pristine\u2014too pristine for a place where someone had allegedly been murdered just hours ago. No blood spatter. No signs of struggle. No body, for that matter, despite three separate witnesses reporting screams and a gunshot at 2:47 AM.\n\nShe was about to call it in as a false alarm when the morning sun shifted through the floor-to-ceiling windows, catching something wedged between the marble tiles near the balcony door.\n\nSarah knelt down and pulled out her tweezers. The object was impossibly delicate: a single feather, no longer than her thumb, glowing an electric blue that seemed to pulse with its own light. She'd never seen a bird with plumage this color\u2014not naturally, anyway.\n\nBut it was what happened when she picked it up that made her breath catch.\n\nThe feather was warm. And getting warmer.\n\nThen it started to hum." - } - ], - "model": "claude-sonnet-4-5-20250929", - "stop_reason": "end_turn", - "usage": { - "input_tokens": 21, - "output_tokens": 243 - }, - "stop_sequence": null, - "stop_details": null, - "gatewayMetadata": { - "keySource": "BYOK" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'anthropic/claude-sonnet-4.5',\n {\n messages: [\n {\n role: 'user',\n content:\n 'Write a short story opening about a detective finding an unusual clue.',\n },\n ],\n max_tokens: 512,\n temperature: 0.8,\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Streaming Response", - "description": "Enable streaming for real-time output", - "input": { - "messages": [ - { - "role": "user", - "content": "Explain the concept of recursion with a simple example." - } - ], - "max_tokens": 1024, - "stream": true - }, - "output": { - "text": [ - "#", - " Recursion Explained\n\n**Recursion** is when a function calls itself to solve a problem by breaking it down into smaller, similar subproblems.\n\n## Key Components", - "\n\n1. **Base case**: A condition that stops the recursion\n2. **Recursive case**: The function calling itself with a simpler input\n\n## Simple Example: Countdown", - "\n\n```python\ndef countdown(n):\n # Base case: stop when we reach 0\n if n <= 0:\n print(\"Done!\")\n else:\n # Recursive case", - "\n print(n)\n countdown(n - 1) # Call itself with smaller number\n\ncountdown(3", - ")\n```\n\n**Output:**\n```\n3\n2\n1\nDone!\n```\n\n**How it works:**\n1. `countdown(3)` prints 3, then calls `countdown(2)`", - "\n2. `countdown(2)` prints 2, then calls `countdown(1)`\n3. `countdown(1)` prints 1, then calls `countdown(0)`\n4. `countdown(0)` hits the base case and prints", - " \"Done!\"\n\n## Real-World Analogy\n\nThink of Russian nesting dolls:\n- Opening one", - " doll reveals a smaller doll inside\n- You keep opening dolls (recursion", - ") until you find the smallest one (base case)\n- Then you're done!\n\n## Common Use Cases", - "\n- Calculating factorials\n- Tree/graph traversal\n- Sorting algorithms (quicksort, mergesort)", - "\n- Processing nested structures" - ] - }, - "raw_response": [ - { - "type": "message_start", - "message": { - "model": "claude-sonnet-4-5-20250929", - "id": "msg_01UgonW6EAQVn2dqA3yEGcj6", - "type": "message", - "role": "assistant", - "content": [], - "stop_reason": null, - "stop_sequence": null, - "stop_details": null, - "usage": { - "input_tokens": 19, - "cache_creation_input_tokens": 0, - "cache_read_input_tokens": 0, - "cache_creation": { - "ephemeral_5m_input_tokens": 0, - "ephemeral_1h_input_tokens": 0 - }, - "output_tokens": 1, - "service_tier": "standard", - "inference_geo": "not_available" - } - } - }, - { - "type": "content_block_start", - "index": 0, - "content_block": { - "type": "text", - "text": "" - } - }, - { - "type": "ping" - }, - { - "type": "content_block_delta", - "index": 0, - "delta": { - "type": "text_delta", - "text": "#" - } - }, - { - "type": "content_block_delta", - "index": 0, - "delta": { - "type": "text_delta", - "text": " Recursion Explained\n\n**Recursion** is when a function calls itself to solve a problem by breaking it down into smaller, similar subproblems.\n\n## Key Components" - } - }, - { - "type": "content_block_delta", - "index": 0, - "delta": { - "type": "text_delta", - "text": "\n\n1. **Base case**: A condition that stops the recursion\n2. **Recursive case**: The function calling itself with a simpler input\n\n## Simple Example: Countdown" - } - }, - { - "type": "content_block_delta", - "index": 0, - "delta": { - "type": "text_delta", - "text": "\n\n```python\ndef countdown(n):\n # Base case: stop when we reach 0\n if n <= 0:\n print(\"Done!\")\n else:\n # Recursive case" - } - }, - { - "type": "content_block_delta", - "index": 0, - "delta": { - "type": "text_delta", - "text": "\n print(n)\n countdown(n - 1) # Call itself with smaller number\n\ncountdown(3" - } - }, - { - "type": "content_block_delta", - "index": 0, - "delta": { - "type": "text_delta", - "text": ")\n```\n\n**Output:**\n```\n3\n2\n1\nDone!\n```\n\n**How it works:**\n1. `countdown(3)` prints 3, then calls `countdown(2)`" - } - }, - { - "type": "content_block_delta", - "index": 0, - "delta": { - "type": "text_delta", - "text": "\n2. `countdown(2)` prints 2, then calls `countdown(1)`\n3. `countdown(1)` prints 1, then calls `countdown(0)`\n4. `countdown(0)` hits the base case and prints" - } - }, - { - "type": "content_block_delta", - "index": 0, - "delta": { - "type": "text_delta", - "text": " \"Done!\"\n\n## Real-World Analogy\n\nThink of Russian nesting dolls:\n- Opening one" - } - }, - { - "type": "content_block_delta", - "index": 0, - "delta": { - "type": "text_delta", - "text": " doll reveals a smaller doll inside\n- You keep opening dolls (recursion" - } - }, - { - "type": "content_block_delta", - "index": 0, - "delta": { - "type": "text_delta", - "text": ") until you find the smallest one (base case)\n- Then you're done!\n\n## Common Use Cases" - } - }, - { - "type": "content_block_delta", - "index": 0, - "delta": { - "type": "text_delta", - "text": "\n- Calculating factorials\n- Tree/graph traversal\n- Sorting algorithms (quicksort, mergesort)" - } - }, - { - "type": "content_block_delta", - "index": 0, - "delta": { - "type": "text_delta", - "text": "\n- Processing nested structures" - } - }, - { - "type": "content_block_stop", - "index": 0 - }, - { - "type": "message_delta", - "delta": { - "stop_reason": "end_turn", - "stop_sequence": null, - "stop_details": null - }, - "usage": { - "input_tokens": 19, - "cache_creation_input_tokens": 0, - "cache_read_input_tokens": 0, - "output_tokens": 349 - } - }, - { - "type": "message_stop" - } - ], - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'anthropic/claude-sonnet-4.5',\n {\n messages: [\n {\n role: 'user',\n content: 'Explain the concept of recursion with a simple example.',\n },\n ],\n max_tokens: 1024,\n stream: true,\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - } - ], - "supports_async": false, - "external_info": "https://www.anthropic.com/claude/sonnet", - "terms": "https://www.anthropic.com/legal/commercial-terms", - "cover_image_url": "https://pub-26f1392c1b674324be6786695bd72257.r2.dev/anthropic/claude-sonnet-4.5.png", - "metadata": { - "Architecture": "Transformer", - "Extended Thinking": "Yes" - }, - "created_at": "2026-04-13 16:45:14", - "default_example": null, - "code_snippets": [], - "zdr": false, - "zdr_comment": null, - "schema": { - "input": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "messages": { - "type": "array", - "items": { - "type": "object", - "properties": { - "role": { - "type": "string", - "enum": [ - "user", - "assistant" - ] - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string" - }, - "text": { - "type": "string" - }, - "source": {} - }, - "required": [ - "type" - ], - "additionalProperties": false - } - } - ] - } - }, - "required": [ - "role", - "content" - ], - "additionalProperties": false - } - }, - "max_tokens": { - "type": "number", - "exclusiveMinimum": 0 - }, - "system": { - "type": "string" - }, - "temperature": { - "type": "number", - "minimum": 0, - "maximum": 1 - }, - "top_p": { - "type": "number", - "minimum": 0, - "maximum": 1 - }, - "top_k": { - "type": "number", - "exclusiveMinimum": 0 - }, - "stream": { - "type": "boolean" - }, - "metadata": { - "type": "object", - "propertyNames": { - "type": "string" - }, - "additionalProperties": {} - } - }, - "required": [ - "messages", - "max_tokens" - ], - "additionalProperties": {} - }, - "output": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "const": "message" - }, - "role": { - "type": "string", - "const": "assistant" - }, - "content": { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string" - }, - "text": { - "type": "string" - } - }, - "required": [ - "type" - ], - "additionalProperties": {} - } - }, - "model": { - "type": "string" - }, - "stop_reason": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "usage": { - "type": "object", - "properties": { - "input_tokens": { - "type": "number" - }, - "output_tokens": { - "type": "number" - } - }, - "required": [ - "input_tokens", - "output_tokens" - ], - "additionalProperties": false - } - }, - "required": [ - "id", - "type", - "role", - "content", - "model", - "stop_reason", - "usage" - ], - "additionalProperties": {} - } - } -} diff --git a/src/content/catalog-models/anthropic-claude-sonnet-4.6.json b/src/content/catalog-models/anthropic-claude-sonnet-4.6.json deleted file mode 100644 index 1bdf5e25a74f7fa..000000000000000 --- a/src/content/catalog-models/anthropic-claude-sonnet-4.6.json +++ /dev/null @@ -1,694 +0,0 @@ -{ - "model_id": "anthropic/claude-sonnet-4.6", - "provider_id": "anthropic", - "name": "Claude Sonnet 4.6", - "description": "Claude Sonnet 4.6 is Anthropic's latest balanced model offering strong coding, reasoning, and agentic capabilities with improved instruction following.", - "task": "Text Generation", - "tags": [ - "LLM", - "Coding", - "Reasoning", - "Agentic" - ], - "context_length": 200000, - "max_output_tokens": 128000, - "schema_version": "1.0.0", - "examples": [ - { - "name": "Simple Question", - "description": "Basic message request", - "input": { - "messages": [ - { - "role": "user", - "content": "What are the three laws of thermodynamics?" - } - ], - "max_tokens": 1024 - }, - "output": { - "text": "There are actually **four laws of thermodynamics** (numbered 0\u20133), but the three *main* ones most commonly referenced are:\n\n## The Three Main Laws\n\n**1st Law \u2013 Conservation of Energy**\nEnergy cannot be created or destroyed, only converted from one form to another. The total energy of an isolated system remains constant.\n\n**2nd Law \u2013 Entropy**\nThe total entropy of an isolated system always increases over time. Heat flows naturally from hot to cold, and processes are irreversible in nature.\n\n**3rd Law \u2013 Absolute Zero**\nAs a system approaches absolute zero (0 Kelvin / -273.15\u00b0C), its entropy approaches a minimum or constant value. It is impossible to reach absolute zero in a finite number of steps.\n\n---\n\n## The Often-Forgotten Zeroth Law\n**0th Law \u2013 Thermal Equilibrium**\nIf two systems are each in thermal equilibrium with a third system, they are in thermal equilibrium with each other. This establishes the concept of **temperature**.\n\n---\n\nWould you like a deeper explanation of any of these?" - }, - "raw_response": { - "id": "msg_01S23zge2x9ssM6otp3t33zw", - "type": "message", - "role": "assistant", - "content": [ - { - "type": "text", - "text": "There are actually **four laws of thermodynamics** (numbered 0\u20133), but the three *main* ones most commonly referenced are:\n\n## The Three Main Laws\n\n**1st Law \u2013 Conservation of Energy**\nEnergy cannot be created or destroyed, only converted from one form to another. The total energy of an isolated system remains constant.\n\n**2nd Law \u2013 Entropy**\nThe total entropy of an isolated system always increases over time. Heat flows naturally from hot to cold, and processes are irreversible in nature.\n\n**3rd Law \u2013 Absolute Zero**\nAs a system approaches absolute zero (0 Kelvin / -273.15\u00b0C), its entropy approaches a minimum or constant value. It is impossible to reach absolute zero in a finite number of steps.\n\n---\n\n## The Often-Forgotten Zeroth Law\n**0th Law \u2013 Thermal Equilibrium**\nIf two systems are each in thermal equilibrium with a third system, they are in thermal equilibrium with each other. This establishes the concept of **temperature**.\n\n---\n\nWould you like a deeper explanation of any of these?" - } - ], - "model": "claude-sonnet-4-6", - "stop_reason": "end_turn", - "usage": { - "input_tokens": 17, - "output_tokens": 241 - }, - "stop_sequence": null, - "stop_details": null, - "gatewayMetadata": { - "keySource": "BYOK" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'anthropic/claude-sonnet-4.6',\n {\n messages: [\n {\n role: 'user',\n content: 'What are the three laws of thermodynamics?',\n },\n ],\n max_tokens: 1024,\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "With System Message", - "description": "Using a system message to set context", - "input": { - "messages": [ - { - "role": "user", - "content": "How do I read a JSON file in Python?" - } - ], - "max_tokens": 1024, - "system": "You are a helpful coding assistant specializing in Python.", - "temperature": 0.3 - }, - "output": { - "text": "## Reading a JSON File in Python\n\n### Basic Method using `json` module\n\n```python\nimport json\n\n# Open and read the JSON file\nwith open('data.json', 'r') as file:\n data = json.load(file)\n\nprint(data)\n```\n\n### Common Approaches\n\n**1. Read as a dictionary/list**\n```python\nimport json\n\nwith open('data.json', 'r') as file:\n data = json.load(file) # Returns a Python dict or list\n\n# Access values\nprint(data['key'])\nprint(data['nested']['key'])\n```\n\n**2. Read a JSON string (not a file)**\n```python\nimport json\n\njson_string = '{\"name\": \"Alice\", \"age\": 30}'\ndata = json.loads(json_string) # Note: loads() not load()\n\nprint(data['name']) # Output: Alice\n```\n\n**3. Handle encoding explicitly**\n```python\nimport json\n\nwith open('data.json', 'r', encoding='utf-8') as file:\n data = json.load(file)\n```\n\n### Error Handling\n\n```python\nimport json\n\ntry:\n with open('data.json', 'r') as file:\n data = json.load(file)\nexcept FileNotFoundError:\n print(\"File not found\")\nexcept json.JSONDecodeError as e:\n print(f\"Invalid JSON: {e}\")\n```\n\n### Key Functions Summary\n\n| Function | Use Case |\n|----------|----------|\n| `json.load(file)` | Read from a **file object** |\n| `json.loads(string)` | Read from a **string** |\n| `json.dump(data, file)` | Write to a **file** |\n| `json.dumps(data)` | Convert to a **string** |\n\n### Example JSON file (`data.json`)\n```json\n{\n \"name\": \"Alice\",\n \"age\": 30,\n \"hobbies\": [\"reading\", \"coding\"]\n}\n```\n\n```python\nimport json\n\nwith open('data.json', 'r') as file:\n data = json.load(file)\n\nprint(data['name']) # Alice\nprint(data['hobbies'][0]) # reading\n```\n\nThe `json` module is built into Python, so **no installation is needed**." - }, - "raw_response": { - "id": "msg_015LKPCnULzDqfFALqKD6qZw", - "type": "message", - "role": "assistant", - "content": [ - { - "type": "text", - "text": "## Reading a JSON File in Python\n\n### Basic Method using `json` module\n\n```python\nimport json\n\n# Open and read the JSON file\nwith open('data.json', 'r') as file:\n data = json.load(file)\n\nprint(data)\n```\n\n### Common Approaches\n\n**1. Read as a dictionary/list**\n```python\nimport json\n\nwith open('data.json', 'r') as file:\n data = json.load(file) # Returns a Python dict or list\n\n# Access values\nprint(data['key'])\nprint(data['nested']['key'])\n```\n\n**2. Read a JSON string (not a file)**\n```python\nimport json\n\njson_string = '{\"name\": \"Alice\", \"age\": 30}'\ndata = json.loads(json_string) # Note: loads() not load()\n\nprint(data['name']) # Output: Alice\n```\n\n**3. Handle encoding explicitly**\n```python\nimport json\n\nwith open('data.json', 'r', encoding='utf-8') as file:\n data = json.load(file)\n```\n\n### Error Handling\n\n```python\nimport json\n\ntry:\n with open('data.json', 'r') as file:\n data = json.load(file)\nexcept FileNotFoundError:\n print(\"File not found\")\nexcept json.JSONDecodeError as e:\n print(f\"Invalid JSON: {e}\")\n```\n\n### Key Functions Summary\n\n| Function | Use Case |\n|----------|----------|\n| `json.load(file)` | Read from a **file object** |\n| `json.loads(string)` | Read from a **string** |\n| `json.dump(data, file)` | Write to a **file** |\n| `json.dumps(data)` | Convert to a **string** |\n\n### Example JSON file (`data.json`)\n```json\n{\n \"name\": \"Alice\",\n \"age\": 30,\n \"hobbies\": [\"reading\", \"coding\"]\n}\n```\n\n```python\nimport json\n\nwith open('data.json', 'r') as file:\n data = json.load(file)\n\nprint(data['name']) # Alice\nprint(data['hobbies'][0]) # reading\n```\n\nThe `json` module is built into Python, so **no installation is needed**." - } - ], - "model": "claude-sonnet-4-6", - "stop_reason": "end_turn", - "usage": { - "input_tokens": 29, - "output_tokens": 556 - }, - "stop_sequence": null, - "stop_details": null, - "gatewayMetadata": { - "keySource": "BYOK" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'anthropic/claude-sonnet-4.6',\n {\n messages: [\n {\n role: 'user',\n content: 'How do I read a JSON file in Python?',\n },\n ],\n max_tokens: 1024,\n system: 'You are a helpful coding assistant specializing in Python.',\n temperature: 0.3,\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Multi-turn Conversation", - "description": "Continuing a conversation with context", - "input": { - "messages": [ - { - "role": "user", - "content": "I need help planning a road trip from San Francisco to Los Angeles." - }, - { - "role": "assistant", - "content": "I'd be happy to help! The drive is about 380 miles and takes roughly 5-6 hours. Would you like suggestions for scenic routes or interesting stops along the way?" - }, - { - "role": "user", - "content": "Yes, what are some good places to stop?" - } - ], - "max_tokens": 1024 - }, - "output": { - "text": "Here are some great stops depending on which route you take:\n\n**Coastal Route (Highway 1) - Scenic but longer**\n- **Santa Cruz** - Beach boardwalk and pier\n- **Monterey** - Famous aquarium and Cannery Row\n- **Big Sur** - Stunning coastal cliffs and views\n- **San Simeon** - Hearst Castle tours\n- **San Luis Obispo** - Charming college town with good food\n\n**Inland Route (Highway 101 or I-5) - Faster**\n- **Gilroy** - Known as the garlic capital of the world\n- **Paso Robles** - Great wine country\n- **Santa Barbara** - Beautiful beaches and Spanish architecture\n\n**Tips to consider:**\n- The coastal route adds several hours but is one of the most beautiful drives in the US\n- Big Sur can have road closures so check conditions before you go\n- Santa Barbara is worth a stop on either route\n- Try to avoid driving through LA during rush hour\n\n**How long do you have for the trip?** That would help narrow down how many stops make sense. Also, are you interested in:\n- Food and restaurants\n- Outdoor activities\n- History and culture\n- A mix of everything" - }, - "raw_response": { - "id": "msg_01S9ZEwEprBa1m64zKWUvdmW", - "type": "message", - "role": "assistant", - "content": [ - { - "type": "text", - "text": "Here are some great stops depending on which route you take:\n\n**Coastal Route (Highway 1) - Scenic but longer**\n- **Santa Cruz** - Beach boardwalk and pier\n- **Monterey** - Famous aquarium and Cannery Row\n- **Big Sur** - Stunning coastal cliffs and views\n- **San Simeon** - Hearst Castle tours\n- **San Luis Obispo** - Charming college town with good food\n\n**Inland Route (Highway 101 or I-5) - Faster**\n- **Gilroy** - Known as the garlic capital of the world\n- **Paso Robles** - Great wine country\n- **Santa Barbara** - Beautiful beaches and Spanish architecture\n\n**Tips to consider:**\n- The coastal route adds several hours but is one of the most beautiful drives in the US\n- Big Sur can have road closures so check conditions before you go\n- Santa Barbara is worth a stop on either route\n- Try to avoid driving through LA during rush hour\n\n**How long do you have for the trip?** That would help narrow down how many stops make sense. Also, are you interested in:\n- Food and restaurants\n- Outdoor activities\n- History and culture\n- A mix of everything" - } - ], - "model": "claude-sonnet-4-6", - "stop_reason": "end_turn", - "usage": { - "input_tokens": 76, - "output_tokens": 280 - }, - "stop_sequence": null, - "stop_details": null, - "gatewayMetadata": { - "keySource": "BYOK" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'anthropic/claude-sonnet-4.6',\n {\n messages: [\n {\n role: 'user',\n content:\n 'I need help planning a road trip from San Francisco to Los Angeles.',\n },\n {\n role: 'assistant',\n content:\n \"I'd be happy to help! The drive is about 380 miles and takes roughly 5-6 hours. Would you like suggestions for scenic routes or interesting stops along the way?\",\n },\n {\n role: 'user',\n content: 'Yes, what are some good places to stop?',\n },\n ],\n max_tokens: 1024,\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Creative Writing", - "description": "Higher temperature for creative output", - "input": { - "messages": [ - { - "role": "user", - "content": "Write a short story opening about a detective finding an unusual clue." - } - ], - "max_tokens": 512, - "temperature": 0.8 - }, - "output": { - "text": "# The Smell of Lavender\n\nDetective Mara Chen had seen a lot of crime scenes in fourteen years on the force. She had learned to read them the way other people read books \u2014 patiently, without skipping ahead.\n\nBut this one was giving her trouble.\n\nThe apartment was sparse and cold, its single window open to the November street below. The victim, a retired accountant named Gerald Foss, lay slumped at his kitchen table with no signs of forced entry, no signs of struggle, and \u2014 this was the part that nagged at her \u2014 no signs that anyone had been upset about anything at all.\n\nEverything was deliberate. Calm.\n\nShe almost missed it.\n\nShe was pulling on a fresh glove when the draft shifted, and there it was \u2014 faint, out of place, almost polite. *Lavender.* Not a cleaning product. Not a candle. Something more personal, like soap or a fabric softener pressed warm from a dryer.\n\nMara stood very still.\n\nGerald Foss, according to his neighbor, had been allergic to every flowering plant known to mankind. His medicine cabinet held three different antihistamines. There wasn't a single flower, real or artificial, anywhere in the apartment.\n\nSomeone had been here recently. Someone clean, careful, and completely unafraid.\n\nShe pulled out her notebook and wrote one word.\n\n*Lavender.*\n\nThen she circled it twice." - }, - "raw_response": { - "id": "msg_0144jtkQ6nQrr9BswabiMh3h", - "type": "message", - "role": "assistant", - "content": [ - { - "type": "text", - "text": "# The Smell of Lavender\n\nDetective Mara Chen had seen a lot of crime scenes in fourteen years on the force. She had learned to read them the way other people read books \u2014 patiently, without skipping ahead.\n\nBut this one was giving her trouble.\n\nThe apartment was sparse and cold, its single window open to the November street below. The victim, a retired accountant named Gerald Foss, lay slumped at his kitchen table with no signs of forced entry, no signs of struggle, and \u2014 this was the part that nagged at her \u2014 no signs that anyone had been upset about anything at all.\n\nEverything was deliberate. Calm.\n\nShe almost missed it.\n\nShe was pulling on a fresh glove when the draft shifted, and there it was \u2014 faint, out of place, almost polite. *Lavender.* Not a cleaning product. Not a candle. Something more personal, like soap or a fabric softener pressed warm from a dryer.\n\nMara stood very still.\n\nGerald Foss, according to his neighbor, had been allergic to every flowering plant known to mankind. His medicine cabinet held three different antihistamines. There wasn't a single flower, real or artificial, anywhere in the apartment.\n\nSomeone had been here recently. Someone clean, careful, and completely unafraid.\n\nShe pulled out her notebook and wrote one word.\n\n*Lavender.*\n\nThen she circled it twice." - } - ], - "model": "claude-sonnet-4-6", - "stop_reason": "end_turn", - "usage": { - "input_tokens": 21, - "output_tokens": 317 - }, - "stop_sequence": null, - "stop_details": null, - "gatewayMetadata": { - "keySource": "BYOK" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'anthropic/claude-sonnet-4.6',\n {\n messages: [\n {\n role: 'user',\n content:\n 'Write a short story opening about a detective finding an unusual clue.',\n },\n ],\n max_tokens: 512,\n temperature: 0.8,\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Streaming Response", - "description": "Enable streaming for real-time output", - "input": { - "messages": [ - { - "role": "user", - "content": "Explain the concept of recursion with a simple example." - } - ], - "max_tokens": 1024, - "stream": true - }, - "output": { - "text": [ - "#", - " Recursion\n\n## Core Concept\n\nRecursion is when a **function calls itself** to solve a smaller", - " version of the same problem, breaking it down until it reaches a simple base case.\n\nEvery recursive solution", - " needs:\n1. **Base case** \u2014 when to stop\n2. **Recursive case** \u2014 calling", - " itself with a simpler input\n\n---\n\n## Simple Example: Factorial\n\n`5! = 5 \u00d7 ", - "4 \u00d7 3 \u00d7 2 \u00d7 1 = 120`\n\n```python\ndef factorial(n):\n # Base case: stop here", - "\n if n == 0:\n return 1\n\n # Recursive case: call itself with a smaller value\n return n * factorial(n - 1)\n\nprint", - "(factorial(5)) # Output: 120\n```\n\n---\n\n## How It Unfolds\n\n```\nfactorial(5)\n \u2514", - "\u2500\u2500 5 * factorial(4)\n \u2514\u2500\u2500 4 * factorial(3)\n \u2514\u2500\u2500 3 * factorial(2)\n ", - "\u2514\u2500\u2500 2 * factorial(1)\n \u2514\u2500\u2500 1 * factorial(0)\n \u2514\u2500\u2500 returns 1 \u2190 base case", - "\n\n# Then it works back up:\n1 * 1 = 1\n2", - " * 1 = 2\n3 * 2 = 6\n4 * 6 = 24\n5 * 24 = 120 \u2713\n```\n\n---\n\n## The", - " \"Thousand Clones\" Analogy\n\n> Imagine you're in", - " a long line and ask *\"what position am I in?\"*\n> You", - " ask the person in front, who asks the person in front of", - " them, and so on.\n> The person at the front says **\"I'm #", - "1\"** (base case), and the answer passes back", - " down the line.\n\n---\n\n## Key Warnings\n\n| \u26a0\ufe0f Problem | ", - "\u2705 Solution |\n|---|---|\n| No base case \u2192 **infinite loop** | Always define a stopping condition |\n| Too", - " many calls \u2192 **stack overflow** | Ensure input gets smaller each time |\n| Can be", - " slow with repeated work | Use memoization or iteration if needed |\n\n---\n\n##", - " Recursion vs. Iteration\n\nBoth solve the same problem \u2014 recursion is", - " often **more readable** for naturally nested problems (trees", - ", folders, fractals), while iteration is more **memory efficient** for simple loops", - "." - ] - }, - "raw_response": [ - { - "type": "message_start", - "message": { - "model": "claude-sonnet-4-6", - "id": "msg_013h2aK7NSZ33csCepec5U2R", - "type": "message", - "role": "assistant", - "content": [], - "stop_reason": null, - "stop_sequence": null, - "stop_details": null, - "usage": { - "input_tokens": 19, - "cache_creation_input_tokens": 0, - "cache_read_input_tokens": 0, - "cache_creation": { - "ephemeral_5m_input_tokens": 0, - "ephemeral_1h_input_tokens": 0 - }, - "output_tokens": 1, - "service_tier": "standard", - "inference_geo": "global" - } - } - }, - { - "type": "content_block_start", - "index": 0, - "content_block": { - "type": "text", - "text": "" - } - }, - { - "type": "ping" - }, - { - "type": "content_block_delta", - "index": 0, - "delta": { - "type": "text_delta", - "text": "#" - } - }, - { - "type": "content_block_delta", - "index": 0, - "delta": { - "type": "text_delta", - "text": " Recursion\n\n## Core Concept\n\nRecursion is when a **function calls itself** to solve a smaller" - } - }, - { - "type": "content_block_delta", - "index": 0, - "delta": { - "type": "text_delta", - "text": " version of the same problem, breaking it down until it reaches a simple base case.\n\nEvery recursive solution" - } - }, - { - "type": "content_block_delta", - "index": 0, - "delta": { - "type": "text_delta", - "text": " needs:\n1. **Base case** \u2014 when to stop\n2. **Recursive case** \u2014 calling" - } - }, - { - "type": "content_block_delta", - "index": 0, - "delta": { - "type": "text_delta", - "text": " itself with a simpler input\n\n---\n\n## Simple Example: Factorial\n\n`5! = 5 \u00d7 " - } - }, - { - "type": "content_block_delta", - "index": 0, - "delta": { - "type": "text_delta", - "text": "4 \u00d7 3 \u00d7 2 \u00d7 1 = 120`\n\n```python\ndef factorial(n):\n # Base case: stop here" - } - }, - { - "type": "content_block_delta", - "index": 0, - "delta": { - "type": "text_delta", - "text": "\n if n == 0:\n return 1\n\n # Recursive case: call itself with a smaller value\n return n * factorial(n - 1)\n\nprint" - } - }, - { - "type": "content_block_delta", - "index": 0, - "delta": { - "type": "text_delta", - "text": "(factorial(5)) # Output: 120\n```\n\n---\n\n## How It Unfolds\n\n```\nfactorial(5)\n \u2514" - } - }, - { - "type": "content_block_delta", - "index": 0, - "delta": { - "type": "text_delta", - "text": "\u2500\u2500 5 * factorial(4)\n \u2514\u2500\u2500 4 * factorial(3)\n \u2514\u2500\u2500 3 * factorial(2)\n " - } - }, - { - "type": "content_block_delta", - "index": 0, - "delta": { - "type": "text_delta", - "text": "\u2514\u2500\u2500 2 * factorial(1)\n \u2514\u2500\u2500 1 * factorial(0)\n \u2514\u2500\u2500 returns 1 \u2190 base case" - } - }, - { - "type": "content_block_delta", - "index": 0, - "delta": { - "type": "text_delta", - "text": "\n\n# Then it works back up:\n1 * 1 = 1\n2" - } - }, - { - "type": "content_block_delta", - "index": 0, - "delta": { - "type": "text_delta", - "text": " * 1 = 2\n3 * 2 = 6\n4 * 6 = 24\n5 * 24 = 120 \u2713\n```\n\n---\n\n## The" - } - }, - { - "type": "content_block_delta", - "index": 0, - "delta": { - "type": "text_delta", - "text": " \"Thousand Clones\" Analogy\n\n> Imagine you're in" - } - }, - { - "type": "content_block_delta", - "index": 0, - "delta": { - "type": "text_delta", - "text": " a long line and ask *\"what position am I in?\"*\n> You" - } - }, - { - "type": "content_block_delta", - "index": 0, - "delta": { - "type": "text_delta", - "text": " ask the person in front, who asks the person in front of" - } - }, - { - "type": "content_block_delta", - "index": 0, - "delta": { - "type": "text_delta", - "text": " them, and so on.\n> The person at the front says **\"I'm #" - } - }, - { - "type": "content_block_delta", - "index": 0, - "delta": { - "type": "text_delta", - "text": "1\"** (base case), and the answer passes back" - } - }, - { - "type": "content_block_delta", - "index": 0, - "delta": { - "type": "text_delta", - "text": " down the line.\n\n---\n\n## Key Warnings\n\n| \u26a0\ufe0f Problem | " - } - }, - { - "type": "content_block_delta", - "index": 0, - "delta": { - "type": "text_delta", - "text": "\u2705 Solution |\n|---|---|\n| No base case \u2192 **infinite loop** | Always define a stopping condition |\n| Too" - } - }, - { - "type": "content_block_delta", - "index": 0, - "delta": { - "type": "text_delta", - "text": " many calls \u2192 **stack overflow** | Ensure input gets smaller each time |\n| Can be" - } - }, - { - "type": "content_block_delta", - "index": 0, - "delta": { - "type": "text_delta", - "text": " slow with repeated work | Use memoization or iteration if needed |\n\n---\n\n##" - } - }, - { - "type": "content_block_delta", - "index": 0, - "delta": { - "type": "text_delta", - "text": " Recursion vs. Iteration\n\nBoth solve the same problem \u2014 recursion is" - } - }, - { - "type": "content_block_delta", - "index": 0, - "delta": { - "type": "text_delta", - "text": " often **more readable** for naturally nested problems (trees" - } - }, - { - "type": "content_block_delta", - "index": 0, - "delta": { - "type": "text_delta", - "text": ", folders, fractals), while iteration is more **memory efficient** for simple loops" - } - }, - { - "type": "content_block_delta", - "index": 0, - "delta": { - "type": "text_delta", - "text": "." - } - }, - { - "type": "content_block_stop", - "index": 0 - }, - { - "type": "message_delta", - "delta": { - "stop_reason": "end_turn", - "stop_sequence": null, - "stop_details": null - }, - "usage": { - "input_tokens": 19, - "cache_creation_input_tokens": 0, - "cache_read_input_tokens": 0, - "output_tokens": 562 - } - }, - { - "type": "message_stop" - } - ], - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'anthropic/claude-sonnet-4.6',\n {\n messages: [\n {\n role: 'user',\n content: 'Explain the concept of recursion with a simple example.',\n },\n ],\n max_tokens: 1024,\n stream: true,\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - } - ], - "supports_async": false, - "external_info": "https://www.anthropic.com/claude/sonnet", - "terms": "https://www.anthropic.com/legal/commercial-terms", - "cover_image_url": "https://pub-26f1392c1b674324be6786695bd72257.r2.dev/anthropic/claude-sonnet-4.6.png", - "metadata": { - "Architecture": "Transformer" - }, - "created_at": "2026-04-13 16:44:14", - "default_example": null, - "code_snippets": [], - "zdr": false, - "zdr_comment": null, - "schema": { - "input": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "messages": { - "type": "array", - "items": { - "type": "object", - "properties": { - "role": { - "type": "string", - "enum": [ - "user", - "assistant" - ] - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string" - }, - "text": { - "type": "string" - }, - "source": {} - }, - "required": [ - "type" - ], - "additionalProperties": false - } - } - ] - } - }, - "required": [ - "role", - "content" - ], - "additionalProperties": false - } - }, - "max_tokens": { - "type": "number", - "exclusiveMinimum": 0 - }, - "system": { - "type": "string" - }, - "temperature": { - "type": "number", - "minimum": 0, - "maximum": 1 - }, - "top_p": { - "type": "number", - "minimum": 0, - "maximum": 1 - }, - "top_k": { - "type": "number", - "exclusiveMinimum": 0 - }, - "stream": { - "type": "boolean" - }, - "metadata": { - "type": "object", - "propertyNames": { - "type": "string" - }, - "additionalProperties": {} - } - }, - "required": [ - "messages", - "max_tokens" - ], - "additionalProperties": {} - }, - "output": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "const": "message" - }, - "role": { - "type": "string", - "const": "assistant" - }, - "content": { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string" - }, - "text": { - "type": "string" - } - }, - "required": [ - "type" - ], - "additionalProperties": {} - } - }, - "model": { - "type": "string" - }, - "stop_reason": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "usage": { - "type": "object", - "properties": { - "input_tokens": { - "type": "number" - }, - "output_tokens": { - "type": "number" - } - }, - "required": [ - "input_tokens", - "output_tokens" - ], - "additionalProperties": false - } - }, - "required": [ - "id", - "type", - "role", - "content", - "model", - "stop_reason", - "usage" - ], - "additionalProperties": {} - } - } -} diff --git a/src/content/catalog-models/anthropic-claude-sonnet-4.json b/src/content/catalog-models/anthropic-claude-sonnet-4.json deleted file mode 100644 index d296919223b587f..000000000000000 --- a/src/content/catalog-models/anthropic-claude-sonnet-4.json +++ /dev/null @@ -1,613 +0,0 @@ -{ - "model_id": "anthropic/claude-sonnet-4", - "provider_id": "anthropic", - "name": "Claude Sonnet 4", - "description": "Claude Sonnet 4 delivers superior coding and reasoning while responding more precisely to instructions, a significant upgrade over previous versions.", - "task": "Text Generation", - "tags": [ - "LLM", - "Coding", - "Reasoning", - "Agentic" - ], - "context_length": 200000, - "max_output_tokens": 16000, - "schema_version": "1.0.0", - "examples": [ - { - "name": "Simple Question", - "description": "Basic message request", - "input": { - "messages": [ - { - "role": "user", - "content": "What are the three laws of thermodynamics?" - } - ], - "max_tokens": 1024 - }, - "output": { - "text": "The three laws of thermodynamics are fundamental principles that govern energy and heat:\n\n## First Law of Thermodynamics\n**Energy cannot be created or destroyed, only converted from one form to another.**\n- Also known as the law of conservation of energy\n- The total energy of an isolated system remains constant\n- Mathematically: \u0394U = Q - W (change in internal energy equals heat added minus work done by the system)\n\n## Second Law of Thermodynamics\n**The entropy (disorder) of an isolated system always increases over time.**\n- Heat flows naturally from hot to cold objects, never the reverse (without external work)\n- No heat engine can be 100% efficient\n- It's impossible to convert heat completely into work without some energy being lost as waste heat\n\n## Third Law of Thermodynamics\n**The entropy of a perfect crystal approaches zero as temperature approaches absolute zero.**\n- Absolute zero (0 Kelvin or -273.15\u00b0C) represents the theoretical point where molecular motion stops\n- It's impossible to reach absolute zero in a finite number of steps\n\n*Note: Some formulations include a \"zeroth law\" about thermal equilibrium, making it technically four laws, but the three above are the classical formulation.*" - }, - "raw_response": { - "id": "msg_01KCWPmBGq85xRjzGhNrX7n6", - "type": "message", - "role": "assistant", - "content": [ - { - "type": "text", - "text": "The three laws of thermodynamics are fundamental principles that govern energy and heat:\n\n## First Law of Thermodynamics\n**Energy cannot be created or destroyed, only converted from one form to another.**\n- Also known as the law of conservation of energy\n- The total energy of an isolated system remains constant\n- Mathematically: \u0394U = Q - W (change in internal energy equals heat added minus work done by the system)\n\n## Second Law of Thermodynamics\n**The entropy (disorder) of an isolated system always increases over time.**\n- Heat flows naturally from hot to cold objects, never the reverse (without external work)\n- No heat engine can be 100% efficient\n- It's impossible to convert heat completely into work without some energy being lost as waste heat\n\n## Third Law of Thermodynamics\n**The entropy of a perfect crystal approaches zero as temperature approaches absolute zero.**\n- Absolute zero (0 Kelvin or -273.15\u00b0C) represents the theoretical point where molecular motion stops\n- It's impossible to reach absolute zero in a finite number of steps\n\n*Note: Some formulations include a \"zeroth law\" about thermal equilibrium, making it technically four laws, but the three above are the classical formulation.*" - } - ], - "model": "claude-sonnet-4-20250514", - "stop_reason": "end_turn", - "usage": { - "input_tokens": 17, - "output_tokens": 272 - }, - "stop_sequence": null, - "stop_details": null, - "gatewayMetadata": { - "keySource": "BYOK" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'anthropic/claude-sonnet-4',\n {\n messages: [\n {\n role: 'user',\n content: 'What are the three laws of thermodynamics?',\n },\n ],\n max_tokens: 1024,\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "With System Message", - "description": "Using a system message to set context", - "input": { - "messages": [ - { - "role": "user", - "content": "How do I read a JSON file in Python?" - } - ], - "max_tokens": 1024, - "system": "You are a helpful coding assistant specializing in Python.", - "temperature": 0.3 - }, - "output": { - "text": "Here are several ways to read a JSON file in Python:\n\n## Basic Method\n\n```python\nimport json\n\n# Read JSON file\nwith open('data.json', 'r') as file:\n data = json.load(file)\n print(data)\n```\n\n## With Error Handling\n\n```python\nimport json\n\ntry:\n with open('data.json', 'r') as file:\n data = json.load(file)\n print(data)\nexcept FileNotFoundError:\n print(\"File not found!\")\nexcept json.JSONDecodeError:\n print(\"Invalid JSON format!\")\nexcept Exception as e:\n print(f\"An error occurred: {e}\")\n```\n\n## Specifying Encoding\n\n```python\nimport json\n\nwith open('data.json', 'r', encoding='utf-8') as file:\n data = json.load(file)\n print(data)\n```\n\n## Reading JSON String (if you have JSON as a string)\n\n```python\nimport json\n\njson_string = '{\"name\": \"John\", \"age\": 30}'\ndata = json.loads(json_string) # Note: loads() not load()\nprint(data)\n```\n\n## Example with Sample Data\n\nLet's say you have a file called `example.json`:\n```json\n{\n \"name\": \"Alice\",\n \"age\": 25,\n \"city\": \"New York\",\n \"hobbies\": [\"reading\", \"swimming\"]\n}\n```\n\nReading and accessing the data:\n```python\nimport json\n\nwith open('example.json', 'r') as file:\n data = json.load(file)\n \n print(f\"Name: {data['name']}\")\n print(f\"Age: {data['age']}\")\n print(f\"Hobbies: {', '.join(data['hobbies'])}\")\n```\n\n## Key Points:\n- Use `json.load()` for files\n- Use `json.loads()` for strings\n- Always use `with open()` for proper file handling\n- Add error handling for production code\n- The JSON data becomes a Python dictionary/list after loading" - }, - "raw_response": { - "id": "msg_01HK7EHouc5poo4jw7YU9MJr", - "type": "message", - "role": "assistant", - "content": [ - { - "type": "text", - "text": "Here are several ways to read a JSON file in Python:\n\n## Basic Method\n\n```python\nimport json\n\n# Read JSON file\nwith open('data.json', 'r') as file:\n data = json.load(file)\n print(data)\n```\n\n## With Error Handling\n\n```python\nimport json\n\ntry:\n with open('data.json', 'r') as file:\n data = json.load(file)\n print(data)\nexcept FileNotFoundError:\n print(\"File not found!\")\nexcept json.JSONDecodeError:\n print(\"Invalid JSON format!\")\nexcept Exception as e:\n print(f\"An error occurred: {e}\")\n```\n\n## Specifying Encoding\n\n```python\nimport json\n\nwith open('data.json', 'r', encoding='utf-8') as file:\n data = json.load(file)\n print(data)\n```\n\n## Reading JSON String (if you have JSON as a string)\n\n```python\nimport json\n\njson_string = '{\"name\": \"John\", \"age\": 30}'\ndata = json.loads(json_string) # Note: loads() not load()\nprint(data)\n```\n\n## Example with Sample Data\n\nLet's say you have a file called `example.json`:\n```json\n{\n \"name\": \"Alice\",\n \"age\": 25,\n \"city\": \"New York\",\n \"hobbies\": [\"reading\", \"swimming\"]\n}\n```\n\nReading and accessing the data:\n```python\nimport json\n\nwith open('example.json', 'r') as file:\n data = json.load(file)\n \n print(f\"Name: {data['name']}\")\n print(f\"Age: {data['age']}\")\n print(f\"Hobbies: {', '.join(data['hobbies'])}\")\n```\n\n## Key Points:\n- Use `json.load()` for files\n- Use `json.loads()` for strings\n- Always use `with open()` for proper file handling\n- Add error handling for production code\n- The JSON data becomes a Python dictionary/list after loading" - } - ], - "model": "claude-sonnet-4-20250514", - "stop_reason": "end_turn", - "usage": { - "input_tokens": 28, - "output_tokens": 501 - }, - "stop_sequence": null, - "stop_details": null, - "gatewayMetadata": { - "keySource": "BYOK" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'anthropic/claude-sonnet-4',\n {\n messages: [\n {\n role: 'user',\n content: 'How do I read a JSON file in Python?',\n },\n ],\n max_tokens: 1024,\n system: 'You are a helpful coding assistant specializing in Python.',\n temperature: 0.3,\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Multi-turn Conversation", - "description": "Continuing a conversation with context", - "input": { - "messages": [ - { - "role": "user", - "content": "I need help planning a road trip from San Francisco to Los Angeles." - }, - { - "role": "assistant", - "content": "I'd be happy to help! The drive is about 380 miles and takes roughly 5-6 hours. Would you like suggestions for scenic routes or interesting stops along the way?" - }, - { - "role": "user", - "content": "Yes, what are some good places to stop?" - } - ], - "max_tokens": 1024 - }, - "output": { - "text": "Here are some great stops along the SF to LA route:\n\n**If taking the coastal route (Highway 1/PCH):**\n- **Monterey/Carmel** - Monterey Bay Aquarium, charming Carmel-by-the-Sea\n- **Big Sur** - Stunning coastal views, McWay Falls, Bixby Creek Bridge\n- **Hearst Castle** - Historic mansion in San Simeon\n- **Morro Bay** - Iconic Morro Rock and waterfront\n- **San Luis Obispo** - Charming downtown and historic mission\n- **Pismo Beach** - Beautiful beaches and dunes\n\n**If taking the faster inland route (I-5):**\n- **Gilroy** - Famous garlic capital\n- **Paso Robles** - Wine country with great tastings\n- **Santa Ynez Valley** - More wine regions, Danish-style Solvang\n\n**Mixed route option:** Take Highway 1 partway for scenery, then cut inland via Highway 46 or 101.\n\nThe coastal route takes 7-9 hours with stops but offers incredible views. The inland route is faster (5-6 hours) but less scenic.\n\nWhat type of experience are you looking for - scenic beauty, food, wine, or quick travel time?" - }, - "raw_response": { - "id": "msg_01GNG7GjYUHbu1e36eP4G94J", - "type": "message", - "role": "assistant", - "content": [ - { - "type": "text", - "text": "Here are some great stops along the SF to LA route:\n\n**If taking the coastal route (Highway 1/PCH):**\n- **Monterey/Carmel** - Monterey Bay Aquarium, charming Carmel-by-the-Sea\n- **Big Sur** - Stunning coastal views, McWay Falls, Bixby Creek Bridge\n- **Hearst Castle** - Historic mansion in San Simeon\n- **Morro Bay** - Iconic Morro Rock and waterfront\n- **San Luis Obispo** - Charming downtown and historic mission\n- **Pismo Beach** - Beautiful beaches and dunes\n\n**If taking the faster inland route (I-5):**\n- **Gilroy** - Famous garlic capital\n- **Paso Robles** - Wine country with great tastings\n- **Santa Ynez Valley** - More wine regions, Danish-style Solvang\n\n**Mixed route option:** Take Highway 1 partway for scenery, then cut inland via Highway 46 or 101.\n\nThe coastal route takes 7-9 hours with stops but offers incredible views. The inland route is faster (5-6 hours) but less scenic.\n\nWhat type of experience are you looking for - scenic beauty, food, wine, or quick travel time?" - } - ], - "model": "claude-sonnet-4-20250514", - "stop_reason": "end_turn", - "usage": { - "input_tokens": 76, - "output_tokens": 299 - }, - "stop_sequence": null, - "stop_details": null, - "gatewayMetadata": { - "keySource": "BYOK" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'anthropic/claude-sonnet-4',\n {\n messages: [\n {\n role: 'user',\n content:\n 'I need help planning a road trip from San Francisco to Los Angeles.',\n },\n {\n role: 'assistant',\n content:\n \"I'd be happy to help! The drive is about 380 miles and takes roughly 5-6 hours. Would you like suggestions for scenic routes or interesting stops along the way?\",\n },\n {\n role: 'user',\n content: 'Yes, what are some good places to stop?',\n },\n ],\n max_tokens: 1024,\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Creative Writing", - "description": "Higher temperature for creative output", - "input": { - "messages": [ - { - "role": "user", - "content": "Write a short story opening about a detective finding an unusual clue." - } - ], - "max_tokens": 512, - "temperature": 0.8 - }, - "output": { - "text": "Detective Sarah Chen crouched beside the mahogany desk, her latex gloves squeaking against the wood as she carefully lifted what appeared to be an ordinary paper clip. But this one was different\u2014twisted into an intricate knot that seemed to defy the laws of physics, its metal curves flowing impossibly through themselves like a three-dimensional puzzle.\n\n\"Henderson, come look at this,\" she called to her partner, who was dusting for prints near the shattered window. The morning light caught the paper clip's surface, revealing tiny etchings along its length\u2014symbols that looked almost like writing, but in no alphabet she recognized.\n\nThe victim, renowned mathematician Dr. Marcus Webb, lay slumped in his chair just inches away, no visible wounds, no signs of struggle. Just him, his cluttered study, and this impossible piece of bent metal that hurt her eyes to look at directly.\n\nHenderson whistled low as he peered over her shoulder. \"That's... that's not possible. Metal doesn't bend that way.\"\n\nSarah felt a chill run down her spine as she realized the paper clip was warm to the touch, despite the October morning air seeping through the broken window. Whatever had happened in this room last night, she was certain this strange little object held the key to understanding it." - }, - "raw_response": { - "id": "msg_01HXYLgMgvUFaDSpLzUG4gNp", - "type": "message", - "role": "assistant", - "content": [ - { - "type": "text", - "text": "Detective Sarah Chen crouched beside the mahogany desk, her latex gloves squeaking against the wood as she carefully lifted what appeared to be an ordinary paper clip. But this one was different\u2014twisted into an intricate knot that seemed to defy the laws of physics, its metal curves flowing impossibly through themselves like a three-dimensional puzzle.\n\n\"Henderson, come look at this,\" she called to her partner, who was dusting for prints near the shattered window. The morning light caught the paper clip's surface, revealing tiny etchings along its length\u2014symbols that looked almost like writing, but in no alphabet she recognized.\n\nThe victim, renowned mathematician Dr. Marcus Webb, lay slumped in his chair just inches away, no visible wounds, no signs of struggle. Just him, his cluttered study, and this impossible piece of bent metal that hurt her eyes to look at directly.\n\nHenderson whistled low as he peered over her shoulder. \"That's... that's not possible. Metal doesn't bend that way.\"\n\nSarah felt a chill run down her spine as she realized the paper clip was warm to the touch, despite the October morning air seeping through the broken window. Whatever had happened in this room last night, she was certain this strange little object held the key to understanding it." - } - ], - "model": "claude-sonnet-4-20250514", - "stop_reason": "end_turn", - "usage": { - "input_tokens": 21, - "output_tokens": 277 - }, - "stop_sequence": null, - "stop_details": null, - "gatewayMetadata": { - "keySource": "BYOK" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'anthropic/claude-sonnet-4',\n {\n messages: [\n {\n role: 'user',\n content:\n 'Write a short story opening about a detective finding an unusual clue.',\n },\n ],\n max_tokens: 512,\n temperature: 0.8,\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Streaming Response", - "description": "Enable streaming for real-time output", - "input": { - "messages": [ - { - "role": "user", - "content": "Explain the concept of recursion with a simple example." - } - ], - "max_tokens": 1024, - "stream": true - }, - "output": { - "text": [ - "#", - " Recursion Explained\n\n**Recursion** is a programming technique where a function calls itself to solve a problem by breaking it down into smaller, similar subproblems.\n\n## Key Components", - " of Recursion\n\n1. **Base case**: A condition that stops the recursion\n2. **Recursive case**: The function calling itself with a modified input\n\n## Simple", - " Example: Calculating Factorial\n\nLet's calculate the factorial of a number (n! = n \u00d7 (n-1) \u00d7 (n-2) \u00d7 ... \u00d7 1):", - "\n\n```python\ndef factorial(n):\n # Base case: stop the recursion\n if n == 0 or n == 1:\n return 1\n ", - "\n # Recursive case: function calls itself\n else:\n return n * factorial(n - 1)\n\n# Example usage\nprint(factorial(5)) # Output: 120\n```", - "\n\n## How it works step by step:\n\n```\nfactorial(5)\n\u251c\u2500\u2500 5 * factorial(4)\n \u251c\u2500\u2500 5", - " * 4 * factorial(3)\n \u251c\u2500\u2500 5 * 4 * 3 * factorial(2)\n \u251c\u2500\u2500 5 * 4 * 3 * 2 * factorial(1)\n \u2514", - "\u2500\u2500 5 * 4 * 3 * 2 * 1 = 120\n```\n\n## Real-world Analogy\n\nThink of **", - "Russian nesting dolls**: To see what's inside,", - " you open one doll, then another smaller doll inside, and so on, until you reach", - " the smallest doll (base case). Then you put them back", - " together in reverse order.\n\n## Why Use Recursion?\n\n- Makes complex problems sim", - "pler to understand and code\n- Natural fit for problems with repet", - "itive, self-similar structure\n- Common in tree traversal, mathematical sequences, and divide", - "-and-conquer algorithms\n\n**Remember**: Always ensure you have a proper base case to avoid infinite recursion!" - ] - }, - "raw_response": [ - { - "type": "message_start", - "message": { - "model": "claude-sonnet-4-20250514", - "id": "msg_01Gx5KoaDWdSUmfXCRyH2RMg", - "type": "message", - "role": "assistant", - "content": [], - "stop_reason": null, - "stop_sequence": null, - "stop_details": null, - "usage": { - "input_tokens": 19, - "cache_creation_input_tokens": 0, - "cache_read_input_tokens": 0, - "cache_creation": { - "ephemeral_5m_input_tokens": 0, - "ephemeral_1h_input_tokens": 0 - }, - "output_tokens": 1, - "service_tier": "standard", - "inference_geo": "not_available" - } - } - }, - { - "type": "content_block_start", - "index": 0, - "content_block": { - "type": "text", - "text": "" - } - }, - { - "type": "ping" - }, - { - "type": "content_block_delta", - "index": 0, - "delta": { - "type": "text_delta", - "text": "#" - } - }, - { - "type": "content_block_delta", - "index": 0, - "delta": { - "type": "text_delta", - "text": " Recursion Explained\n\n**Recursion** is a programming technique where a function calls itself to solve a problem by breaking it down into smaller, similar subproblems.\n\n## Key Components" - } - }, - { - "type": "content_block_delta", - "index": 0, - "delta": { - "type": "text_delta", - "text": " of Recursion\n\n1. **Base case**: A condition that stops the recursion\n2. **Recursive case**: The function calling itself with a modified input\n\n## Simple" - } - }, - { - "type": "content_block_delta", - "index": 0, - "delta": { - "type": "text_delta", - "text": " Example: Calculating Factorial\n\nLet's calculate the factorial of a number (n! = n \u00d7 (n-1) \u00d7 (n-2) \u00d7 ... \u00d7 1):" - } - }, - { - "type": "content_block_delta", - "index": 0, - "delta": { - "type": "text_delta", - "text": "\n\n```python\ndef factorial(n):\n # Base case: stop the recursion\n if n == 0 or n == 1:\n return 1\n " - } - }, - { - "type": "content_block_delta", - "index": 0, - "delta": { - "type": "text_delta", - "text": "\n # Recursive case: function calls itself\n else:\n return n * factorial(n - 1)\n\n# Example usage\nprint(factorial(5)) # Output: 120\n```" - } - }, - { - "type": "content_block_delta", - "index": 0, - "delta": { - "type": "text_delta", - "text": "\n\n## How it works step by step:\n\n```\nfactorial(5)\n\u251c\u2500\u2500 5 * factorial(4)\n \u251c\u2500\u2500 5" - } - }, - { - "type": "content_block_delta", - "index": 0, - "delta": { - "type": "text_delta", - "text": " * 4 * factorial(3)\n \u251c\u2500\u2500 5 * 4 * 3 * factorial(2)\n \u251c\u2500\u2500 5 * 4 * 3 * 2 * factorial(1)\n \u2514" - } - }, - { - "type": "content_block_delta", - "index": 0, - "delta": { - "type": "text_delta", - "text": "\u2500\u2500 5 * 4 * 3 * 2 * 1 = 120\n```\n\n## Real-world Analogy\n\nThink of **" - } - }, - { - "type": "content_block_delta", - "index": 0, - "delta": { - "type": "text_delta", - "text": "Russian nesting dolls**: To see what's inside," - } - }, - { - "type": "content_block_delta", - "index": 0, - "delta": { - "type": "text_delta", - "text": " you open one doll, then another smaller doll inside, and so on, until you reach" - } - }, - { - "type": "content_block_delta", - "index": 0, - "delta": { - "type": "text_delta", - "text": " the smallest doll (base case). Then you put them back" - } - }, - { - "type": "content_block_delta", - "index": 0, - "delta": { - "type": "text_delta", - "text": " together in reverse order.\n\n## Why Use Recursion?\n\n- Makes complex problems sim" - } - }, - { - "type": "content_block_delta", - "index": 0, - "delta": { - "type": "text_delta", - "text": "pler to understand and code\n- Natural fit for problems with repet" - } - }, - { - "type": "content_block_delta", - "index": 0, - "delta": { - "type": "text_delta", - "text": "itive, self-similar structure\n- Common in tree traversal, mathematical sequences, and divide" - } - }, - { - "type": "content_block_delta", - "index": 0, - "delta": { - "type": "text_delta", - "text": "-and-conquer algorithms\n\n**Remember**: Always ensure you have a proper base case to avoid infinite recursion!" - } - }, - { - "type": "content_block_stop", - "index": 0 - }, - { - "type": "message_delta", - "delta": { - "stop_reason": "end_turn", - "stop_sequence": null, - "stop_details": null - }, - "usage": { - "input_tokens": 19, - "cache_creation_input_tokens": 0, - "cache_read_input_tokens": 0, - "output_tokens": 455 - } - }, - { - "type": "message_stop" - } - ], - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'anthropic/claude-sonnet-4',\n {\n messages: [\n {\n role: 'user',\n content: 'Explain the concept of recursion with a simple example.',\n },\n ],\n max_tokens: 1024,\n stream: true,\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - } - ], - "supports_async": false, - "external_info": "https://www.anthropic.com/claude/sonnet", - "terms": "https://www.anthropic.com/legal/commercial-terms", - "cover_image_url": "https://pub-26f1392c1b674324be6786695bd72257.r2.dev/anthropic/claude-sonnet-4.png", - "metadata": { - "Architecture": "Transformer" - }, - "created_at": "2026-04-13 16:45:15", - "default_example": null, - "code_snippets": [], - "zdr": false, - "zdr_comment": null, - "schema": { - "input": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "messages": { - "type": "array", - "items": { - "type": "object", - "properties": { - "role": { - "type": "string", - "enum": [ - "user", - "assistant" - ] - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string" - }, - "text": { - "type": "string" - }, - "source": {} - }, - "required": [ - "type" - ], - "additionalProperties": false - } - } - ] - } - }, - "required": [ - "role", - "content" - ], - "additionalProperties": false - } - }, - "max_tokens": { - "type": "number", - "exclusiveMinimum": 0 - }, - "system": { - "type": "string" - }, - "temperature": { - "type": "number", - "minimum": 0, - "maximum": 1 - }, - "top_p": { - "type": "number", - "minimum": 0, - "maximum": 1 - }, - "top_k": { - "type": "number", - "exclusiveMinimum": 0 - }, - "stream": { - "type": "boolean" - }, - "metadata": { - "type": "object", - "propertyNames": { - "type": "string" - }, - "additionalProperties": {} - } - }, - "required": [ - "messages", - "max_tokens" - ], - "additionalProperties": {} - }, - "output": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "const": "message" - }, - "role": { - "type": "string", - "const": "assistant" - }, - "content": { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string" - }, - "text": { - "type": "string" - } - }, - "required": [ - "type" - ], - "additionalProperties": {} - } - }, - "model": { - "type": "string" - }, - "stop_reason": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "usage": { - "type": "object", - "properties": { - "input_tokens": { - "type": "number" - }, - "output_tokens": { - "type": "number" - } - }, - "required": [ - "input_tokens", - "output_tokens" - ], - "additionalProperties": false - } - }, - "required": [ - "id", - "type", - "role", - "content", - "model", - "stop_reason", - "usage" - ], - "additionalProperties": {} - } - } -} diff --git a/src/content/catalog-models/assemblyai-universal-3-pro.json b/src/content/catalog-models/assemblyai-universal-3-pro.json deleted file mode 100644 index f54a6718da7259c..000000000000000 --- a/src/content/catalog-models/assemblyai-universal-3-pro.json +++ /dev/null @@ -1,1208 +0,0 @@ -{ - "model_id": "assemblyai/universal-3-pro", - "provider_id": "assemblyai", - "name": "AssemblyAI Universal-3 Pro", - "description": "AssemblyAI's Universal 3 Pro speech recognition model for high-accuracy transcription.", - "task": "Automatic Speech Recognition", - "tags": [ - "Speech-to-Text", - "Transcription", - "Multilingual" - ], - "context_length": null, - "max_output_tokens": null, - "schema_version": "1.0.0", - "examples": [ - { - "name": "Basic Transcription", - "description": "Transcribe an audio file with default settings", - "input": { - "audio_url": "https://cdn.openai.com/API/docs/audio/alloy.wav" - }, - "output": { - "text": "The sun rises in the east and sets in the west. This simple fact has been observed by humans for thousands of years." - }, - "raw_response": { - "state": "Completed", - "result": { - "text": "The sun rises in the east and sets in the west. This simple fact has been observed by humans for thousands of years.", - "words": [ - { - "text": "The", - "start": 32, - "end": 129, - "confidence": 0.9713957, - "speaker": null - }, - { - "text": "sun", - "start": 129, - "end": 404, - "confidence": 0.97053415, - "speaker": null - }, - { - "text": "rises", - "start": 420, - "end": 809, - "confidence": 0.9998932, - "speaker": null - }, - { - "text": "in", - "start": 841, - "end": 922, - "confidence": 0.999092, - "speaker": null - }, - { - "text": "the", - "start": 922, - "end": 1068, - "confidence": 0.9997658, - "speaker": null - }, - { - "text": "east", - "start": 1149, - "end": 1456, - "confidence": 0.9684294, - "speaker": null - }, - { - "text": "and", - "start": 1570, - "end": 1634, - "confidence": 0.9894344, - "speaker": null - }, - { - "text": "sets", - "start": 1715, - "end": 2055, - "confidence": 0.9999058, - "speaker": null - }, - { - "text": "in", - "start": 2055, - "end": 2104, - "confidence": 0.9997663, - "speaker": null - }, - { - "text": "the", - "start": 2120, - "end": 2217, - "confidence": 0.9999552, - "speaker": null - }, - { - "text": "west.", - "start": 2217, - "end": 2638, - "confidence": 0.9913442, - "speaker": null - }, - { - "text": "This", - "start": 3107, - "end": 3221, - "confidence": 0.9974367, - "speaker": null - }, - { - "text": "simple", - "start": 3269, - "end": 3560, - "confidence": 0.99965656, - "speaker": null - }, - { - "text": "fact", - "start": 3593, - "end": 3997, - "confidence": 0.999713, - "speaker": null - }, - { - "text": "has", - "start": 3997, - "end": 4175, - "confidence": 0.99924207, - "speaker": null - }, - { - "text": "been", - "start": 4224, - "end": 4289, - "confidence": 0.9995851, - "speaker": null - }, - { - "text": "observed", - "start": 4337, - "end": 4807, - "confidence": 0.9984724, - "speaker": null - }, - { - "text": "by", - "start": 4807, - "end": 4952, - "confidence": 0.9997143, - "speaker": null - }, - { - "text": "humans", - "start": 4969, - "end": 5422, - "confidence": 0.9997894, - "speaker": null - }, - { - "text": "for", - "start": 5422, - "end": 5519, - "confidence": 0.99947494, - "speaker": null - }, - { - "text": "thousands", - "start": 5616, - "end": 6118, - "confidence": 0.99950385, - "speaker": null - }, - { - "text": "of", - "start": 6118, - "end": 6231, - "confidence": 0.9995235, - "speaker": null - }, - { - "text": "years.", - "start": 6328, - "end": 6636, - "confidence": 0.9519594, - "speaker": null - } - ], - "utterances": null, - "confidence": 0.99276465, - "language_code": "en", - "language_confidence": 0.9998 - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'assemblyai/universal-3-pro',\n {\n audio_url: 'https://cdn.openai.com/API/docs/audio/alloy.wav',\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "With Language Code", - "description": "Transcribe with an explicit language code", - "input": { - "audio_url": "https://cdn.openai.com/API/docs/audio/echo.wav", - "language_code": "en" - }, - "output": { - "text": "In the heart of the city, there is a large park where people go to relax and enjoy nature. The park has a beautiful pond with ducks and swans." - }, - "raw_response": { - "state": "Completed", - "result": { - "text": "In the heart of the city, there is a large park where people go to relax and enjoy nature. The park has a beautiful pond with ducks and swans.", - "words": [ - { - "text": "In", - "start": 32, - "end": 80, - "confidence": 0.88134426, - "speaker": null - }, - { - "text": "the", - "start": 177, - "end": 241, - "confidence": 0.9984907, - "speaker": null - }, - { - "text": "heart", - "start": 258, - "end": 500, - "confidence": 0.99956447, - "speaker": null - }, - { - "text": "of", - "start": 500, - "end": 548, - "confidence": 0.9995684, - "speaker": null - }, - { - "text": "the", - "start": 596, - "end": 677, - "confidence": 0.99977916, - "speaker": null - }, - { - "text": "city,", - "start": 677, - "end": 967, - "confidence": 0.9956655, - "speaker": null - }, - { - "text": "there", - "start": 1322, - "end": 1435, - "confidence": 0.9987048, - "speaker": null - }, - { - "text": "is", - "start": 1467, - "end": 1516, - "confidence": 0.99971443, - "speaker": null - }, - { - "text": "a", - "start": 1564, - "end": 1596, - "confidence": 0.99948585, - "speaker": null - }, - { - "text": "large", - "start": 1709, - "end": 2016, - "confidence": 0.9987669, - "speaker": null - }, - { - "text": "park", - "start": 2129, - "end": 2467, - "confidence": 0.9981509, - "speaker": null - }, - { - "text": "where", - "start": 2693, - "end": 2838, - "confidence": 0.9559358, - "speaker": null - }, - { - "text": "people", - "start": 2854, - "end": 3145, - "confidence": 0.99979085, - "speaker": null - }, - { - "text": "go", - "start": 3177, - "end": 3338, - "confidence": 0.9993555, - "speaker": null - }, - { - "text": "to", - "start": 3338, - "end": 3467, - "confidence": 0.9998317, - "speaker": null - }, - { - "text": "relax", - "start": 3500, - "end": 4064, - "confidence": 0.99991953, - "speaker": null - }, - { - "text": "and", - "start": 4064, - "end": 4161, - "confidence": 0.9988979, - "speaker": null - }, - { - "text": "enjoy", - "start": 4161, - "end": 4484, - "confidence": 0.9999237, - "speaker": null - }, - { - "text": "nature.", - "start": 4484, - "end": 4887, - "confidence": 0.998528, - "speaker": null - }, - { - "text": "The", - "start": 5597, - "end": 5758, - "confidence": 0.990198, - "speaker": null - }, - { - "text": "park", - "start": 5758, - "end": 6016, - "confidence": 0.99979144, - "speaker": null - }, - { - "text": "has", - "start": 6064, - "end": 6177, - "confidence": 0.99926263, - "speaker": null - }, - { - "text": "a", - "start": 6177, - "end": 6242, - "confidence": 0.9992211, - "speaker": null - }, - { - "text": "beautiful", - "start": 6322, - "end": 6774, - "confidence": 0.99989605, - "speaker": null - }, - { - "text": "pond", - "start": 6790, - "end": 7193, - "confidence": 0.9998628, - "speaker": null - }, - { - "text": "with", - "start": 7193, - "end": 7355, - "confidence": 0.99960047, - "speaker": null - }, - { - "text": "ducks", - "start": 7371, - "end": 7806, - "confidence": 0.99963534, - "speaker": null - }, - { - "text": "and", - "start": 7855, - "end": 7919, - "confidence": 0.99866796, - "speaker": null - }, - { - "text": "swans.", - "start": 7935, - "end": 8629, - "confidence": 0.9833702, - "speaker": null - } - ], - "utterances": null, - "confidence": 0.9927905, - "language_code": "en_us", - "language_confidence": null - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'assemblyai/universal-3-pro',\n {\n audio_url: 'https://cdn.openai.com/API/docs/audio/echo.wav',\n language_code: 'en',\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "With Key Terms", - "description": "Improve accuracy for domain-specific vocabulary", - "input": { - "audio_url": "https://cdn.openai.com/API/docs/audio/nova.wav", - "keyterms_prompt": [ - "Kubernetes", - "microservices", - "containerization", - "load balancer" - ] - }, - "output": { - "text": "In the kitchen, the aroma of freshly baked bread filled the air. The loaves were golden brown and crusty on the outside and soft and warm on the inside." - }, - "raw_response": { - "state": "Completed", - "result": { - "text": "In the kitchen, the aroma of freshly baked bread filled the air. The loaves were golden brown and crusty on the outside and soft and warm on the inside.", - "words": [ - { - "text": "In", - "start": 32, - "end": 80, - "confidence": 0.9785539, - "speaker": null - }, - { - "text": "the", - "start": 177, - "end": 242, - "confidence": 0.99962807, - "speaker": null - }, - { - "text": "kitchen,", - "start": 258, - "end": 565, - "confidence": 0.99617165, - "speaker": null - }, - { - "text": "the", - "start": 743, - "end": 839, - "confidence": 0.9991928, - "speaker": null - }, - { - "text": "aroma", - "start": 839, - "end": 1292, - "confidence": 0.99992657, - "speaker": null - }, - { - "text": "of", - "start": 1308, - "end": 1405, - "confidence": 0.99955577, - "speaker": null - }, - { - "text": "freshly", - "start": 1405, - "end": 1889, - "confidence": 0.9996594, - "speaker": null - }, - { - "text": "baked", - "start": 1970, - "end": 2261, - "confidence": 0.99850214, - "speaker": null - }, - { - "text": "bread", - "start": 2293, - "end": 2584, - "confidence": 0.9999217, - "speaker": null - }, - { - "text": "filled", - "start": 2600, - "end": 2859, - "confidence": 0.9999, - "speaker": null - }, - { - "text": "the", - "start": 2859, - "end": 3004, - "confidence": 0.99993885, - "speaker": null - }, - { - "text": "air.", - "start": 3020, - "end": 3262, - "confidence": 0.9961201, - "speaker": null - }, - { - "text": "The", - "start": 4054, - "end": 4119, - "confidence": 0.99501073, - "speaker": null - }, - { - "text": "loaves", - "start": 4215, - "end": 4522, - "confidence": 0.9997483, - "speaker": null - }, - { - "text": "were", - "start": 4619, - "end": 4781, - "confidence": 0.9998282, - "speaker": null - }, - { - "text": "golden", - "start": 4878, - "end": 5249, - "confidence": 0.99248224, - "speaker": null - }, - { - "text": "brown", - "start": 5362, - "end": 5718, - "confidence": 0.9700398, - "speaker": null - }, - { - "text": "and", - "start": 5928, - "end": 5992, - "confidence": 0.9419883, - "speaker": null - }, - { - "text": "crusty", - "start": 6089, - "end": 6541, - "confidence": 0.9994146, - "speaker": null - }, - { - "text": "on", - "start": 6574, - "end": 6703, - "confidence": 0.9997141, - "speaker": null - }, - { - "text": "the", - "start": 6719, - "end": 6784, - "confidence": 0.9999218, - "speaker": null - }, - { - "text": "outside", - "start": 6881, - "end": 7365, - "confidence": 0.9993179, - "speaker": null - }, - { - "text": "and", - "start": 7365, - "end": 7462, - "confidence": 0.8661144, - "speaker": null - }, - { - "text": "soft", - "start": 7462, - "end": 7882, - "confidence": 0.9996922, - "speaker": null - }, - { - "text": "and", - "start": 7882, - "end": 7995, - "confidence": 0.9998481, - "speaker": null - }, - { - "text": "warm", - "start": 8028, - "end": 8270, - "confidence": 0.99996424, - "speaker": null - }, - { - "text": "on", - "start": 8270, - "end": 8399, - "confidence": 0.9998791, - "speaker": null - }, - { - "text": "the", - "start": 8415, - "end": 8512, - "confidence": 0.99982506, - "speaker": null - }, - { - "text": "inside.", - "start": 8512, - "end": 8964, - "confidence": 0.9834439, - "speaker": null - } - ], - "utterances": null, - "confidence": 0.9901139, - "language_code": "en", - "language_confidence": 0.9969 - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'assemblyai/universal-3-pro',\n {\n audio_url: 'https://cdn.openai.com/API/docs/audio/nova.wav',\n keyterms_prompt: [\n 'Kubernetes',\n 'microservices',\n 'containerization',\n 'load balancer',\n ],\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Speaker Diarization", - "description": "Identify different speakers in the audio", - "input": { - "audio_url": "https://cdn.openai.com/API/docs/audio/onyx.wav", - "speaker_labels": true - }, - "output": { - "text": "The train chugged along the tracks, carrying passengers to their destinations. The rhythmic sound of the wheels on the rails was soothing." - }, - "raw_response": { - "state": "Completed", - "result": { - "text": "The train chugged along the tracks, carrying passengers to their destinations. The rhythmic sound of the wheels on the rails was soothing.", - "words": [ - { - "text": "The", - "start": 32, - "end": 113, - "confidence": 0.9742124, - "speaker": "A" - }, - { - "text": "train", - "start": 177, - "end": 403, - "confidence": 0.99997795, - "speaker": "A" - }, - { - "text": "chugged", - "start": 516, - "end": 904, - "confidence": 0.99713653, - "speaker": "A" - }, - { - "text": "along", - "start": 904, - "end": 1130, - "confidence": 0.9999881, - "speaker": "A" - }, - { - "text": "the", - "start": 1227, - "end": 1308, - "confidence": 0.9999676, - "speaker": "A" - }, - { - "text": "tracks,", - "start": 1308, - "end": 1808, - "confidence": 0.9995983, - "speaker": "A" - }, - { - "text": "carrying", - "start": 2131, - "end": 2341, - "confidence": 0.9998933, - "speaker": "A" - }, - { - "text": "passengers", - "start": 2454, - "end": 3068, - "confidence": 0.999992, - "speaker": "A" - }, - { - "text": "to", - "start": 3100, - "end": 3229, - "confidence": 0.99999034, - "speaker": "A" - }, - { - "text": "their", - "start": 3262, - "end": 3423, - "confidence": 0.9999908, - "speaker": "A" - }, - { - "text": "destinations.", - "start": 3423, - "end": 4198, - "confidence": 0.9992286, - "speaker": "A" - }, - { - "text": "The", - "start": 5038, - "end": 5119, - "confidence": 0.99871373, - "speaker": "A" - }, - { - "text": "rhythmic", - "start": 5184, - "end": 5523, - "confidence": 0.9999517, - "speaker": "A" - }, - { - "text": "sound", - "start": 5523, - "end": 5926, - "confidence": 0.99993813, - "speaker": "A" - }, - { - "text": "of", - "start": 5926, - "end": 6007, - "confidence": 0.99991894, - "speaker": "A" - }, - { - "text": "the", - "start": 6007, - "end": 6088, - "confidence": 0.99993825, - "speaker": "A" - }, - { - "text": "wheels", - "start": 6169, - "end": 6459, - "confidence": 0.99995935, - "speaker": "A" - }, - { - "text": "on", - "start": 6556, - "end": 6605, - "confidence": 0.99997675, - "speaker": "A" - }, - { - "text": "the", - "start": 6637, - "end": 6718, - "confidence": 0.99999475, - "speaker": "A" - }, - { - "text": "rails", - "start": 6718, - "end": 7105, - "confidence": 0.9999932, - "speaker": "A" - }, - { - "text": "was", - "start": 7138, - "end": 7299, - "confidence": 0.999851, - "speaker": "A" - }, - { - "text": "soothing.", - "start": 7299, - "end": 7719, - "confidence": 0.98378325, - "speaker": "A" - } - ], - "utterances": [ - { - "text": "The train chugged along the tracks, carrying passengers to their destinations. The rhythmic sound of the wheels on the rails was soothing.", - "start": 32, - "end": 7719, - "confidence": 0.99781793, - "speaker": "A" - } - ], - "confidence": 0.99781793, - "language_code": "en", - "language_confidence": 0.9906 - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'assemblyai/universal-3-pro',\n {\n audio_url: 'https://cdn.openai.com/API/docs/audio/onyx.wav',\n speaker_labels: true,\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - } - ], - "supports_async": false, - "external_info": "https://www.assemblyai.com/", - "terms": "https://www.assemblyai.com/legal/terms-of-service", - "cover_image_url": "https://pub-26f1392c1b674324be6786695bd72257.r2.dev/assemblyai/universal-3-pro.png", - "metadata": { - "Multilingual": "Yes" - }, - "created_at": "2026-04-13 16:47:26", - "default_example": null, - "code_snippets": [], - "zdr": false, - "zdr_comment": null, - "schema": { - "input": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "audio_url": { - "description": "The URL of the audio file to transcribe. Can be a publicly accessible URL or a data URI (data:audio/...;base64,...). For data URIs, the audio will be uploaded to AssemblyAI automatically.", - "type": "string" - }, - "language_code": { - "description": "The language code for the audio file (e.g., \"en\", \"es\", \"fr\"). Defaults to automatic language detection.", - "type": "string" - }, - "language_detection": { - "description": "Enable automatic language detection. When enabled with speech_models, the system will automatically select the best model for the detected language.", - "type": "boolean" - }, - "prompt": { - "description": "A custom prompt to guide transcription style, formatting, and output characteristics. Maximum 1,500 words.", - "type": "string" - }, - "keyterms_prompt": { - "description": "An array of up to 1,000 words or phrases (max 6 words per phrase) to improve transcription accuracy. Cannot be used with the prompt parameter.", - "type": "array", - "items": { - "type": "string" - } - }, - "temperature": { - "description": "Controls randomness in model output (0.0-1.0). Lower values make output more deterministic. Default is 0.0.", - "type": "number", - "minimum": 0, - "maximum": 1 - }, - "speaker_labels": { - "description": "Enable speaker diarization to identify different speakers in the audio.", - "type": "boolean" - }, - "speakers_expected": { - "description": "Expected number of speakers for speaker diarization.", - "type": "integer", - "minimum": 1, - "maximum": 9007199254740991 - }, - "auto_chapters": { - "description": "Enable automatic chapter detection.", - "type": "boolean" - }, - "entity_detection": { - "description": "Enable detection of entities like names, organizations, and locations.", - "type": "boolean" - }, - "sentiment_analysis": { - "description": "Enable sentiment analysis for each sentence.", - "type": "boolean" - }, - "auto_highlights": { - "description": "Enable automatic extraction of key phrases and highlights.", - "type": "boolean" - }, - "content_safety": { - "description": "Enable content safety detection for sensitive content.", - "type": "boolean" - }, - "iab_categories": { - "description": "Enable IAB (Interactive Advertising Bureau) content taxonomy classification.", - "type": "boolean" - }, - "custom_spelling": { - "description": "Custom spelling rules to replace specific words or phrases in the transcription output.", - "type": "array", - "items": { - "type": "object", - "properties": { - "from": { - "type": "array", - "items": { - "type": "string" - } - }, - "to": { - "type": "string" - } - }, - "required": [ - "from", - "to" - ], - "additionalProperties": false - } - }, - "disfluencies": { - "description": "Include filler words like \"um\", \"uh\", etc. in the transcript.", - "type": "boolean" - }, - "multichannel": { - "description": "Process each audio channel separately for multi-channel audio files.", - "type": "boolean" - }, - "dual_channel": { - "description": "Process audio as dual-channel (stereo) for better accuracy.", - "type": "boolean" - }, - "webhook_url": { - "description": "URL to receive webhook notifications when transcription is complete.", - "type": "string", - "format": "uri" - }, - "audio_start_from": { - "description": "Timestamp (in milliseconds) to start transcription from.", - "type": "integer", - "minimum": 0, - "maximum": 9007199254740991 - }, - "audio_end_at": { - "description": "Timestamp (in milliseconds) to end transcription at.", - "type": "integer", - "minimum": 0, - "maximum": 9007199254740991 - }, - "word_boost": { - "description": "Array of words to boost recognition accuracy (legacy - use keyterms_prompt instead).", - "type": "array", - "items": { - "type": "string" - } - }, - "boost_param": { - "description": "How much to boost the words in word_boost.", - "type": "string", - "enum": [ - "low", - "default", - "high" - ] - }, - "filter_profanity": { - "description": "Filter profanity from the transcription.", - "type": "boolean" - }, - "redact_pii": { - "description": "Redact personally identifiable information.", - "type": "boolean" - }, - "redact_pii_audio": { - "description": "Generate a redacted audio file with PII removed.", - "type": "boolean" - }, - "redact_pii_policies": { - "description": "Specific PII policies to apply for redaction.", - "type": "array", - "items": { - "type": "string" - } - }, - "redact_pii_sub": { - "description": "Strategy for substituting redacted PII.", - "type": "string", - "enum": [ - "entity_name", - "hash" - ] - }, - "speech_threshold": { - "description": "Confidence threshold for speech detection.", - "type": "number", - "minimum": 0, - "maximum": 1 - }, - "domain": { - "description": "Domain-specific transcription mode. \"medical-v1\" enables medical terminology optimization.", - "type": "string", - "enum": [ - "medical-v1" - ] - } - }, - "required": [ - "audio_url" - ], - "additionalProperties": false - }, - "output": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "text": { - "description": "The transcribed text.", - "type": "string" - }, - "words": { - "description": "Word-level timestamps and confidence scores.", - "anyOf": [ - { - "type": "array", - "items": { - "type": "object", - "properties": { - "text": { - "type": "string" - }, - "start": { - "type": "number" - }, - "end": { - "type": "number" - }, - "confidence": { - "type": "number" - }, - "speaker": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "text", - "start", - "end", - "confidence" - ], - "additionalProperties": false - } - }, - { - "type": "null" - } - ] - }, - "utterances": { - "description": "Speaker-separated utterances (when speaker_labels is enabled).", - "anyOf": [ - { - "type": "array", - "items": { - "type": "object", - "properties": { - "text": { - "type": "string" - }, - "start": { - "type": "number" - }, - "end": { - "type": "number" - }, - "confidence": { - "type": "number" - }, - "speaker": { - "type": "string" - } - }, - "required": [ - "text", - "start", - "end", - "confidence", - "speaker" - ], - "additionalProperties": false - } - }, - { - "type": "null" - } - ] - }, - "confidence": { - "description": "Overall confidence score for the transcription.", - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "language_code": { - "description": "Detected or specified language code.", - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "language_confidence": { - "description": "Confidence score for language detection.", - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "text" - ], - "additionalProperties": false - } - } -} diff --git a/src/content/catalog-models/bytedance-seedream-4.0.json b/src/content/catalog-models/bytedance-seedream-4.0.json deleted file mode 100644 index 952b2d87c82cdb7..000000000000000 --- a/src/content/catalog-models/bytedance-seedream-4.0.json +++ /dev/null @@ -1,233 +0,0 @@ -{ - "model_id": "bytedance/seedream-4.0", - "provider_id": "bytedance", - "name": "Seedream 4.0", - "description": "Seedream 4.0 is ByteDance's image creation model that combines text-to-image generation and image editing into a single architecture, offering fast, high-resolution output up to 4K.", - "task": "Text-to-Image", - "tags": [ - "Image Generation", - "Image Editing", - "High Resolution" - ], - "context_length": null, - "max_output_tokens": null, - "schema_version": "1.0.0", - "examples": [ - { - "name": "Simple Generation", - "description": "Basic text-to-image generation", - "input": { - "prompt": "A serene mountain lake surrounded by pine trees at dawn" - }, - "output": { - "image": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/bytedance__seedream-4.0/simple-generation.jpeg" - }, - "raw_response": { - "state": "Completed", - "result": { - "image": "https://ark-content-generation-v2-ap-southeast-1.tos-ap-southeast-1.volces.com/seedream-4-0/021776387438887c5f50319cb4d4388d7836967b82aebe5227f8d_0.jpeg" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'bytedance/seedream-4.0',\n {\n prompt: 'A serene mountain lake surrounded by pine trees at dawn',\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "High Resolution", - "description": "4K quality image generation", - "input": { - "prompt": "A detailed steampunk mechanical owl with brass gears and copper feathers, intricate clockwork visible", - "size": "4K", - "aspect_ratio": "1:1" - }, - "output": { - "image": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/bytedance__seedream-4.0/high-resolution.jpeg" - }, - "raw_response": { - "state": "Completed", - "result": { - "image": "https://ark-content-generation-v2-ap-southeast-1.tos-ap-southeast-1.volces.com/seedream-4-0/021776387448153c5f50319cb4d4388d7836967b82aebe5807cbc_0.jpeg" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'bytedance/seedream-4.0',\n {\n prompt:\n 'A detailed steampunk mechanical owl with brass gears and copper feathers, intricate clockwork visible',\n size: '4K',\n aspect_ratio: '1:1',\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Widescreen Landscape", - "description": "Cinematic aspect ratio image", - "input": { - "prompt": "A vast alien desert landscape with two suns setting on the horizon, ancient ruins in the foreground", - "size": "2K", - "aspect_ratio": "21:9" - }, - "output": { - "image": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/bytedance__seedream-4.0/widescreen-landscape.jpeg" - }, - "raw_response": { - "state": "Completed", - "result": { - "image": "https://ark-content-generation-v2-ap-southeast-1.tos-ap-southeast-1.volces.com/seedream-4-0/021776387469085c5f50319cb4d4388d7836967b82aebe5dcf17e_0.jpeg" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'bytedance/seedream-4.0',\n {\n prompt:\n 'A vast alien desert landscape with two suns setting on the horizon, ancient ruins in the foreground',\n size: '2K',\n aspect_ratio: '21:9',\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Portrait Format", - "description": "Vertical image for portraits", - "input": { - "prompt": "An elegant Art Deco poster featuring a jazz singer under a spotlight", - "aspect_ratio": "9:16", - "enhance_prompt": true - }, - "output": { - "image": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/bytedance__seedream-4.0/portrait-format.jpeg" - }, - "raw_response": { - "state": "Completed", - "result": { - "image": "https://ark-content-generation-v2-ap-southeast-1.tos-ap-southeast-1.volces.com/seedream-4-0/021776387475078c5f50319cb4d4388d7836967b82aebe5e6ec81_0.jpeg" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'bytedance/seedream-4.0',\n {\n prompt:\n 'An elegant Art Deco poster featuring a jazz singer under a spotlight',\n aspect_ratio: '9:16',\n enhance_prompt: true,\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Detailed 4K", - "description": "High-resolution detailed botanical illustration", - "input": { - "prompt": "A detailed botanical illustration of exotic tropical flowers", - "size": "4K", - "aspect_ratio": "3:4" - }, - "output": { - "image": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/bytedance__seedream-4.0/detailed-4k.jpeg" - }, - "raw_response": { - "state": "Completed", - "result": { - "image": "https://ark-content-generation-v2-ap-southeast-1.tos-ap-southeast-1.volces.com/seedream-4-0/021776441662380e1f2c28e220bf76d8a56e2a46eaa08e982d37f_0.jpeg" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'bytedance/seedream-4.0',\n {\n prompt: 'A detailed botanical illustration of exotic tropical flowers',\n size: '4K',\n aspect_ratio: '3:4',\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - } - ], - "supports_async": false, - "external_info": "https://seed.bytedance.com/en/seedream4_0", - "terms": "", - "cover_image_url": "https://pub-26f1392c1b674324be6786695bd72257.r2.dev/bytedance/seedream-4.0.png", - "metadata": { - "Max Resolution": "4K", - "Editing": "Yes (single-sentence)" - }, - "created_at": "2026-04-08 22:04:50", - "default_example": null, - "code_snippets": [], - "zdr": false, - "zdr_comment": null, - "schema": { - "input": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "prompt": { - "type": "string" - }, - "size": { - "type": "string", - "enum": [ - "1K", - "2K", - "4K", - "custom" - ] - }, - "aspect_ratio": { - "type": "string", - "enum": [ - "match_input_image", - "1:1", - "4:3", - "3:4", - "16:9", - "9:16", - "3:2", - "2:3", - "21:9" - ] - }, - "width": { - "type": "integer", - "minimum": 1024, - "maximum": 4096 - }, - "height": { - "type": "integer", - "minimum": 1024, - "maximum": 4096 - }, - "enhance_prompt": { - "type": "boolean" - } - }, - "required": [ - "prompt" - ], - "additionalProperties": false - }, - "output": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "image": { - "type": "string", - "format": "uri" - } - }, - "required": [ - "image" - ], - "additionalProperties": false - } - } -} diff --git a/src/content/catalog-models/bytedance-seedream-4.5.json b/src/content/catalog-models/bytedance-seedream-4.5.json deleted file mode 100644 index 6bd9560d019f84b..000000000000000 --- a/src/content/catalog-models/bytedance-seedream-4.5.json +++ /dev/null @@ -1,271 +0,0 @@ -{ - "model_id": "bytedance/seedream-4.5", - "provider_id": "bytedance", - "name": "Seedream 4.5", - "description": "Seedream 4.5 builds on 4.0 with multi-reference image support, batch generation, and sequential image generation.", - "task": "Text-to-Image", - "tags": [ - "Image Generation", - "Multi-Reference", - "Batch" - ], - "context_length": null, - "max_output_tokens": null, - "schema_version": "1.0.0", - "examples": [ - { - "name": "Simple Generation", - "description": "Basic text-to-image generation", - "input": { - "prompt": "A cozy reading nook with floor-to-ceiling bookshelves and a comfortable armchair" - }, - "output": { - "images": [ - "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/bytedance__seedream-4.5/simple-generation-0.jpeg" - ] - }, - "raw_response": { - "state": "Completed", - "result": { - "images": [ - "https://ark-content-generation-v2-ap-southeast-1.tos-ap-southeast-1.volces.com/seedream-4-5/0217764052077481386b9a8ed856c57501cfa946ce34c9865285c_0.jpeg" - ] - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'bytedance/seedream-4.5',\n {\n prompt:\n 'A cozy reading nook with floor-to-ceiling bookshelves and a comfortable armchair',\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "High Resolution", - "description": "4K quality image generation", - "input": { - "prompt": "A hyperrealistic still life painting of fresh fruit on an antique wooden table with dramatic chiaroscuro lighting", - "size": "4K", - "aspect_ratio": "4:3" - }, - "output": { - "images": [ - "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/bytedance__seedream-4.5/high-resolution-0.jpeg" - ] - }, - "raw_response": { - "state": "Completed", - "result": { - "images": [ - "https://ark-content-generation-v2-ap-southeast-1.tos-ap-southeast-1.volces.com/seedream-4-5/0217764052077581386b9a8ed856c57501cfa946ce34c985dabe3_0.jpeg" - ] - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'bytedance/seedream-4.5',\n {\n prompt:\n 'A hyperrealistic still life painting of fresh fruit on an antique wooden table with dramatic chiaroscuro lighting',\n size: '4K',\n aspect_ratio: '4:3',\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Image-to-Image", - "description": "Edit using reference images", - "input": { - "prompt": "Transform this scene into a winter wonderland with snow covering everything", - "image_input": [ - "https://replicate.delivery/xezq/0lxxNQSg3NabCZrDiQVAPGVmjP1Q2dd7TgYCOTfI9LpyZaMLA/tmp89gopylq.jpg" - ], - "aspect_ratio": "match_input_image" - }, - "output": { - "images": [ - "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/bytedance__seedream-4.5/image-to-image-0.jpeg" - ] - }, - "raw_response": { - "state": "Completed", - "result": { - "images": [ - "https://ark-content-generation-v2-ap-southeast-1.tos-ap-southeast-1.volces.com/seedream-4-5/0217764052176861386b9a8ed856c57501cfa946ce34c98846458_0.jpeg" - ] - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'bytedance/seedream-4.5',\n {\n prompt:\n 'Transform this scene into a winter wonderland with snow covering everything',\n image_input: [\n 'https://replicate.delivery/xezq/0lxxNQSg3NabCZrDiQVAPGVmjP1Q2dd7TgYCOTfI9LpyZaMLA/tmp89gopylq.jpg',\n ],\n aspect_ratio: 'match_input_image',\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Sequential Generation", - "description": "Generate multiple related images", - "input": { - "prompt": "A character design sheet for a fantasy warrior: front view, side view, and back view", - "aspect_ratio": "16:9", - "sequential_image_generation": "auto", - "max_images": 3 - }, - "output": { - "images": [ - "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/bytedance__seedream-4.5/sequential-generation-0.jpeg" - ] - }, - "raw_response": { - "state": "Completed", - "result": { - "images": [ - "https://ark-content-generation-v2-ap-southeast-1.tos-ap-southeast-1.volces.com/seedream-4-5/0217764052291261386b9a8ed856c57501cfa946ce34c98481db1_0.jpeg" - ] - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'bytedance/seedream-4.5',\n {\n prompt:\n 'A character design sheet for a fantasy warrior: front view, side view, and back view',\n aspect_ratio: '16:9',\n sequential_image_generation: 'auto',\n max_images: 3,\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Multi-Image Edit", - "description": "Combine multiple reference images", - "input": { - "prompt": "Combine the style of the first image with the subject from the second image", - "image_input": [ - "https://replicate.delivery/xezq/TRYcLgNMrBpPJVq09ICKXWe4Z8d6olzpK5vtQPOB8O23ZaMLA/tmpaecga26m.jpg", - "https://replicate.delivery/xezq/1SbAc0aXYXbVD9doyrdCW78hYufVefMsaJXBrETN7Lu2npxsA/tmphvkx7emy.jpg" - ], - "size": "2K" - }, - "output": { - "images": [ - "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/bytedance__seedream-4.5/multi-image-edit-0.jpeg" - ] - }, - "raw_response": { - "state": "Completed", - "result": { - "images": [ - "https://ark-content-generation-v2-ap-southeast-1.tos-ap-southeast-1.volces.com/seedream-4-5/0217764052323791386b9a8ed856c57501cfa946ce34c98b2f132_0.jpeg" - ] - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'bytedance/seedream-4.5',\n {\n prompt:\n 'Combine the style of the first image with the subject from the second image',\n image_input: [\n 'https://replicate.delivery/xezq/TRYcLgNMrBpPJVq09ICKXWe4Z8d6olzpK5vtQPOB8O23ZaMLA/tmpaecga26m.jpg',\n 'https://replicate.delivery/xezq/1SbAc0aXYXbVD9doyrdCW78hYufVefMsaJXBrETN7Lu2npxsA/tmphvkx7emy.jpg',\n ],\n size: '2K',\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - } - ], - "supports_async": false, - "external_info": "https://seed.bytedance.com/en/seedream4_5", - "terms": "", - "cover_image_url": "https://pub-26f1392c1b674324be6786695bd72257.r2.dev/bytedance/seedream-4.5.png", - "metadata": { - "Max Images": "15", - "Multi-Reference": "Yes", - "Sequential Generation": "Yes" - }, - "created_at": "2026-04-08 22:06:07", - "default_example": null, - "code_snippets": [], - "zdr": false, - "zdr_comment": null, - "schema": { - "input": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "prompt": { - "type": "string" - }, - "image_input": { - "type": "array", - "items": { - "type": "string", - "format": "uri" - } - }, - "size": { - "type": "string", - "enum": [ - "2K", - "4K" - ] - }, - "aspect_ratio": { - "type": "string", - "enum": [ - "match_input_image", - "1:1", - "4:3", - "3:4", - "16:9", - "9:16", - "3:2", - "2:3", - "21:9" - ] - }, - "sequential_image_generation": { - "type": "string", - "enum": [ - "disabled", - "auto" - ] - }, - "max_images": { - "type": "integer", - "minimum": 1, - "maximum": 15 - }, - "disable_safety_checker": { - "type": "boolean" - } - }, - "required": [ - "prompt" - ], - "additionalProperties": false - }, - "output": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "images": { - "minItems": 1, - "type": "array", - "items": { - "type": "string", - "format": "uri" - } - } - }, - "required": [ - "images" - ], - "additionalProperties": false - } - } -} diff --git a/src/content/catalog-models/bytedance-seedream-5-lite.json b/src/content/catalog-models/bytedance-seedream-5-lite.json deleted file mode 100644 index ddcb2d0309c1823..000000000000000 --- a/src/content/catalog-models/bytedance-seedream-5-lite.json +++ /dev/null @@ -1,277 +0,0 @@ -{ - "model_id": "bytedance/seedream-5-lite", - "provider_id": "bytedance", - "name": "Seedream 5 Lite", - "description": "Seedream 5 Lite is a lighter, faster version of the Seedream 5 family with multi-reference and batch generation support.", - "task": "Text-to-Image", - "tags": [ - "Image Generation", - "Multi-Reference", - "Batch", - "Fast" - ], - "context_length": null, - "max_output_tokens": null, - "schema_version": "1.0.0", - "examples": [ - { - "name": "Simple Generation", - "description": "Basic text-to-image generation", - "input": { - "prompt": "A cute robot watering plants in a sunny greenhouse" - }, - "output": { - "images": [ - "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/bytedance__seedream-5-lite/simple-generation-0.jpeg" - ] - }, - "raw_response": { - "state": "Completed", - "result": { - "images": [ - "https://ark-acg-ap-southeast-1.tos-ap-southeast-1.volces.com/seedream-5-0/021776405291656e8ad6f8fac80a9b78040141fa10ae51dc262e8_0.jpeg" - ] - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'bytedance/seedream-5-lite',\n {\n prompt: 'A cute robot watering plants in a sunny greenhouse',\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "High Resolution PNG", - "description": "3K quality with PNG output", - "input": { - "prompt": "A detailed technical blueprint of a futuristic spacecraft with annotations and measurements", - "size": "3K", - "aspect_ratio": "16:9", - "output_format": "png" - }, - "output": { - "images": [ - "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/bytedance__seedream-5-lite/high-resolution-png-0.png" - ] - }, - "raw_response": { - "state": "Completed", - "result": { - "images": [ - "https://ark-acg-ap-southeast-1.tos-ap-southeast-1.volces.com/seedream-5-0/021776405293188e8ad6f8fac80a9b78040141fa10ae51d8ac521_0.png" - ] - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'bytedance/seedream-5-lite',\n {\n prompt:\n 'A detailed technical blueprint of a futuristic spacecraft with annotations and measurements',\n size: '3K',\n aspect_ratio: '16:9',\n output_format: 'png',\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Portrait Photo", - "description": "JPEG output for photographs", - "input": { - "prompt": "A professional headshot portrait with soft studio lighting and a neutral gray background", - "size": "2K", - "aspect_ratio": "3:4", - "output_format": "jpeg" - }, - "output": { - "images": [ - "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/bytedance__seedream-5-lite/portrait-photo-0.jpeg" - ] - }, - "raw_response": { - "state": "Completed", - "result": { - "images": [ - "https://ark-acg-ap-southeast-1.tos-ap-southeast-1.volces.com/seedream-5-0/021776405322247e8ad6f8fac80a9b78040141fa10ae51db518ee_0.jpeg" - ] - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'bytedance/seedream-5-lite',\n {\n prompt:\n 'A professional headshot portrait with soft studio lighting and a neutral gray background',\n size: '2K',\n aspect_ratio: '3:4',\n output_format: 'jpeg',\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Sequential Comic", - "description": "Generate sequential comic panels", - "input": { - "prompt": "A four-panel comic strip showing a cat discovering a cardboard box and deciding to sit in it", - "aspect_ratio": "4:3", - "sequential_image_generation": "auto", - "max_images": 4 - }, - "output": { - "images": [ - "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/bytedance__seedream-5-lite/sequential-comic-0.jpeg" - ] - }, - "raw_response": { - "state": "Completed", - "result": { - "images": [ - "https://ark-acg-ap-southeast-1.tos-ap-southeast-1.volces.com/seedream-5-0/0217764053440971386b9a8ed856c57501cfa946ce34c987bb335_0.jpeg" - ] - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'bytedance/seedream-5-lite',\n {\n prompt:\n 'A four-panel comic strip showing a cat discovering a cardboard box and deciding to sit in it',\n aspect_ratio: '4:3',\n sequential_image_generation: 'auto',\n max_images: 4,\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Image Variation", - "description": "Create variation from reference", - "input": { - "prompt": "Create a variation of this image in a watercolor painting style", - "image_input": [ - "https://replicate.delivery/xezq/jCypj4MeXYUiRyq7nfgm8z1OvFZF81wh4FznutDsZOuJz0YWA/tmp1iukn307.jpg" - ], - "size": "2K", - "aspect_ratio": "match_input_image" - }, - "output": { - "images": [ - "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/bytedance__seedream-5-lite/image-variation-0.jpeg" - ] - }, - "raw_response": { - "state": "Completed", - "result": { - "images": [ - "https://ark-acg-ap-southeast-1.tos-ap-southeast-1.volces.com/seedream-5-0/0217764053505731386b9a8ed856c57501cfa946ce34c989ba40c_0.jpeg" - ] - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'bytedance/seedream-5-lite',\n {\n prompt: 'Create a variation of this image in a watercolor painting style',\n image_input: [\n 'https://replicate.delivery/xezq/jCypj4MeXYUiRyq7nfgm8z1OvFZF81wh4FznutDsZOuJz0YWA/tmp1iukn307.jpg',\n ],\n size: '2K',\n aspect_ratio: 'match_input_image',\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - } - ], - "supports_async": false, - "external_info": "https://seed.bytedance.com/en/seedream5_0_lite", - "terms": "", - "cover_image_url": "https://pub-26f1392c1b674324be6786695bd72257.r2.dev/bytedance/seedream-5-lite.png", - "metadata": { - "Max Images": "15", - "Multi-Reference": "Yes", - "Output Formats": "JPEG, PNG, WebP" - }, - "created_at": "2026-04-08 22:07:41", - "default_example": null, - "code_snippets": [], - "zdr": false, - "zdr_comment": null, - "schema": { - "input": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "prompt": { - "type": "string" - }, - "image_input": { - "maxItems": 14, - "type": "array", - "items": { - "type": "string", - "format": "uri" - } - }, - "size": { - "type": "string", - "enum": [ - "2K", - "3K" - ] - }, - "aspect_ratio": { - "type": "string", - "enum": [ - "match_input_image", - "1:1", - "4:3", - "3:4", - "16:9", - "9:16", - "3:2", - "2:3", - "21:9" - ] - }, - "sequential_image_generation": { - "type": "string", - "enum": [ - "disabled", - "auto" - ] - }, - "max_images": { - "type": "integer", - "minimum": 1, - "maximum": 15 - }, - "output_format": { - "type": "string", - "enum": [ - "png", - "jpeg" - ] - } - }, - "required": [ - "prompt" - ], - "additionalProperties": false - }, - "output": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "images": { - "minItems": 1, - "type": "array", - "items": { - "type": "string", - "format": "uri" - } - } - }, - "required": [ - "images" - ], - "additionalProperties": false - } - } -} diff --git a/src/content/catalog-models/google-gemini-3-flash.json b/src/content/catalog-models/google-gemini-3-flash.json deleted file mode 100644 index d2902175265a84e..000000000000000 --- a/src/content/catalog-models/google-gemini-3-flash.json +++ /dev/null @@ -1,483 +0,0 @@ -{ - "model_id": "google/gemini-3-flash", - "provider_id": "google", - "name": "Gemini 3 Flash", - "description": "Gemini 3 Flash is Google's fast multimodal model with frontier intelligence, superior search, and grounding capabilities.", - "task": "Text Generation", - "tags": [ - "LLM", - "Fast", - "Multimodal", - "Reasoning" - ], - "context_length": 1000000, - "max_output_tokens": 8192, - "schema_version": "1.0.0", - "examples": [ - { - "name": "Simple Question", - "description": "Basic generateContent request", - "input": { - "contents": [ - { - "role": "user", - "parts": [ - { - "text": "What are the three laws of thermodynamics?" - } - ] - } - ] - }, - "output": { - "text": "While there are actually four laws of thermodynamics (numbered 0 through 3), the \"Three Laws\" usually refer to the following fundamental principles that govern how energy, heat, and matter behave:\n\n### 1. The First Law: The Law of Conservation of Energy\n**\"Energy cannot be created or destroyed, only transformed from one form to another.\"**\n\nThis law states that the total amount of energy in an isolated system remains constant. In practical terms, if you add heat to a system, that energy must either increase the system's internal temperature or be used to do work on the surroundings.\n* **The Equation:** $\\Delta U = Q - W$\n *(Change in internal energy = Heat added - Work done by the system)*\n\n### 2. The Second Law: The Law of Entropy\n**\"The total entropy of an isolated system can never decrease over time; it can only remain constant or increase.\"**\n\nEntropy is a measure of \"disorder\" or randomness. This law explains why processes have a specific direction (the \"arrow of time\"). It tells us that heat will always flow spontaneously from a hot object to a cold object, and that no machine can ever be 100% efficient because some energy is always \"lost\" as waste heat.\n* **Key takeaway:** Systems naturally progress toward a state of maximum disorder.\n\n### 3. The Third Law: The Law of Absolute Zero\n**\"As the temperature of a system approaches absolute zero, its entropy approaches a constant minimum.\"**\n\nAbsolute zero ($0$ Kelvin, or $-273.15^\\circ\\text{C}$) is the theoretical point where all molecular motion stops. This law implies that it is impossible to reach absolute zero in a finite number of steps. At this temperature, a perfect crystal would have zero entropy.\n* **Key takeaway:** You can get very close to absolute zero, but you can never actually get there.\n\n***\n\n### Bonus: The Zeroth Law (The Law of Equilibrium)\nPhysicists realized they needed this law *after* the first three were already named, so they called it the \"Zeroth\" law because it is the most fundamental. \n* **The Law:** If two systems are each in thermal equilibrium with a third system, they are in thermal equilibrium with each other. \n* **Simplified:** This is the logic that allows us to use **thermometers**. If the thermometer says the water is $100^\\circ$ and the same thermometer says the tea is $100^\\circ$, then the water and the tea are the same temperature.\n\n***\n\n### A Common Way to Remember Them:\nScientists often use a cynical \"gambling\" analogy to remember the laws:\n1. **First Law:** You can\u2019t win (you can\u2019t get more energy out than you put in).\n2. **Second Law:** You can\u2019t even break even (entropy always increases; you always lose some energy to heat).\n3. **Third Law:** You can\u2019t quit the game (you can\u2019t reach absolute zero)." - }, - "raw_response": { - "candidates": [ - { - "content": { - "role": "model", - "parts": [ - { - "text": "While there are actually four laws of thermodynamics (numbered 0 through 3), the \"Three Laws\" usually refer to the following fundamental principles that govern how energy, heat, and matter behave:\n\n### 1. The First Law: The Law of Conservation of Energy\n**\"Energy cannot be created or destroyed, only transformed from one form to another.\"**\n\nThis law states that the total amount of energy in an isolated system remains constant. In practical terms, if you add heat to a system, that energy must either increase the system's internal temperature or be used to do work on the surroundings.\n* **The Equation:** $\\Delta U = Q - W$\n *(Change in internal energy = Heat added - Work done by the system)*\n\n### 2. The Second Law: The Law of Entropy\n**\"The total entropy of an isolated system can never decrease over time; it can only remain constant or increase.\"**\n\nEntropy is a measure of \"disorder\" or randomness. This law explains why processes have a specific direction (the \"arrow of time\"). It tells us that heat will always flow spontaneously from a hot object to a cold object, and that no machine can ever be 100% efficient because some energy is always \"lost\" as waste heat.\n* **Key takeaway:** Systems naturally progress toward a state of maximum disorder.\n\n### 3. The Third Law: The Law of Absolute Zero\n**\"As the temperature of a system approaches absolute zero, its entropy approaches a constant minimum.\"**\n\nAbsolute zero ($0$ Kelvin, or $-273.15^\\circ\\text{C}$) is the theoretical point where all molecular motion stops. This law implies that it is impossible to reach absolute zero in a finite number of steps. At this temperature, a perfect crystal would have zero entropy.\n* **Key takeaway:** You can get very close to absolute zero, but you can never actually get there.\n\n***\n\n### Bonus: The Zeroth Law (The Law of Equilibrium)\nPhysicists realized they needed this law *after* the first three were already named, so they called it the \"Zeroth\" law because it is the most fundamental. \n* **The Law:** If two systems are each in thermal equilibrium with a third system, they are in thermal equilibrium with each other. \n* **Simplified:** This is the logic that allows us to use **thermometers**. If the thermometer says the water is $100^\\circ$ and the same thermometer says the tea is $100^\\circ$, then the water and the tea are the same temperature.\n\n***\n\n### A Common Way to Remember Them:\nScientists often use a cynical \"gambling\" analogy to remember the laws:\n1. **First Law:** You can\u2019t win (you can\u2019t get more energy out than you put in).\n2. **Second Law:** You can\u2019t even break even (entropy always increases; you always lose some energy to heat).\n3. **Third Law:** You can\u2019t quit the game (you can\u2019t reach absolute zero).", - "thoughtSignature": "CqkLAY89a19qCNl4uuKEEiZFrk/uT0hJLwMSmY8qnonXaWSr5n37N6xw9j45+UGCClhbVuK6cpRq7/oR4Tdzhsy6w7WWIspf2JBXYNOGo7i4L8638zGK5OGOvVcRpCuMXWsfrWhLS8fY9qC9WxEJqTsJR9gkNfO7A8h23/s2Ww2GhGvvRwYhA5L8uSaej/JdDd2rJdLn1QG0s8Hpf9Nhj7/mTRlfY5NYZv3r4UwIEurL3gE6Cqfk+kayL2/GEwcaRaGG3UbM74nSQmcldV2phXHuIDmNbUwoSNojDQteSPPG3NrGdW5A/qKz7W4dtTaq+Vq/dtEXleChH1Txf7hZtOfE62pxOEJK+Rm6E2hkXhOlkSry676UjrUHgLR23SfmmqgZ4Z9jdQ65DFAi3FA3Ww7Gw810tMasdXrdeeEGgDTXyjksTMmiG+DQ0ddw1npNb5v5Tnj6eEQpSxv57PpiAOkZF8pF8fk9E413eDCt6iRbZ3GToOeSplaN5z1ljhaKNMORBRDC7ZblLKzDJkES8vN2PGLGYlJdKA32pfT5Hmt82gkvC2udXwxsZH04TI4vb2wPfYfJQNgQRKv31n2jQryL9akJWjr1jwblk2P+DV1f+io5MYK0K/+V+b7FuOrDrzHRUuBqBm8OhJ5gNzThGTtjcMYNisw2tPgzddm9/uHd0mVYVHiRYGA7U8vlfZDFUTzQVD7A1B1LFEdhAkpbJ9z66xjS18bk4m/3GXfAIt8/QviFjmjAfeMZhylYNh2j7Cv8kEkIOAM3qApufLyuxbFrO/QRW2depUvJzD1M1qiTg139m9LQpQaEwao9PmzMxyUBKEUt6rV7cnycmvhjjAsG7MBn/WpQYzdUjHuzlAVF6ioDZEWu/co/FjYjnOzQjNfLCFjOy5TOuYgxANxAG3UtpLkLpwJdm6sAyn+gSyT8sRRofRa+cKYu5ZWmuziMC+2lbC4DEq/XMr/P6JCVYNJK2Ay9ZOsqWU0KpO17b6xynFZIeviXdPs3ODngRdE75u+SeJsFdsMUvsU0m+8WzmG76xGrX41/CprLlfax31xl6B7OxpsZvg1sl3D98+aPiTht5jJ9hQ9jSwl7GrKcOWKXCx98wYKPX4JIu78Yu0zBcpksgvbrQBJNRoVJJTQ06pT1oZQg0kPt6N7cbRqaZNbJun7ZRWb0lAIpUYO+P7jixDdMMr8sLtuYkbsd92Y/QlrDzSI5Dfb9Jg+5iPp+FvJappnXgjr3ZbdgV/4pXL7OznXMx+AWxrhldHVCmvW+qmlP8gJGovBfdR9t9rJSYlWP4M9UCjscUo/6Wl3xUEIdVtNf6gvfdb7LhT0e/AwIZmLEpvtbW8VTYtw7Ly4VWe0a/fkLP8d/L4p/nwb5PiARkbyLT0VIG5K3yZ+1F5d85ispp2szwjABH2yGgqQBbMUu4I/iae3VhFgOw24BabtdnH+QmogvA2Hi6wePJ4fmz2L+AVIwkGG7Z2ta6hde/8KEn38oM68LF6gJYvRkk1TFhSZlrYPZ+g1Ei+5gak37sbErhQ3qvkfxPIVBcuTRXQFR/a29L+Bcj4wvShU8PILtNaandlEQcMGfJzjU9cyM3EbJd1m/vIvHKL6gOjE2VUTqYfm8N0ELe/Kyvj1GJ1So3x2CMpYQJmNrrQBDA2SIJjdsXytkV5Ycaxt8cOCK9rkAkHHZ5lsujjjh2GgjJSWUKWeVWHCIfAwn8lsCIIZydTX1L515g7Rlz+hl29aZwf8F/cnBM68h5tu0zmfZAHCl3J6WuleW8ya1Ht6aOdb8Xe1xI+KKFJ+VnHjHU6Q7mLTWzaaNvboOBF5pW0dFDisDo+7YleHAtx5V9E3W3C2/V3pFrgjmfGAw3/tOR9h5ShpWdqAVJDWJCcZ4mYk3R0Wa7ezA2uTJpzKfl4Ya6XSisX9VN+EZfW4mglXB" - } - ] - }, - "finishReason": "STOP", - "avgLogprobs": -0.1735024595133252 - } - ], - "usageMetadata": { - "promptTokenCount": 8, - "candidatesTokenCount": 652, - "totalTokenCount": 1023, - "trafficType": "ON_DEMAND", - "promptTokensDetails": [ - { - "modality": "TEXT", - "tokenCount": 8 - } - ], - "candidatesTokensDetails": [ - { - "modality": "TEXT", - "tokenCount": 652 - } - ], - "thoughtsTokenCount": 363 - }, - "modelVersion": "gemini-3-flash-preview", - "createTime": "2026-04-17T05:47:50.289216Z", - "responseId": "hsnhacDTEYGPq8YPsdmS-Qc", - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'google/gemini-3-flash',\n {\n contents: [\n {\n role: 'user',\n parts: [\n {\n text: 'What are the three laws of thermodynamics?',\n },\n ],\n },\n ],\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "With System Instruction", - "description": "Using a system instruction to set context", - "input": { - "contents": [ - { - "role": "user", - "parts": [ - { - "text": "How do I read a JSON file in Python?" - } - ] - } - ], - "systemInstruction": { - "parts": [ - { - "text": "You are a helpful coding assistant specializing in Python." - } - ] - }, - "generationConfig": { - "temperature": 0.3 - } - }, - "output": { - "text": "To read a JSON file in Python, you use the built-in **`json`** module.\n\nHere is the most common and recommended way to do it:\n\n### Basic Example\n```python\nimport json\n\n# Open the file and load the data\nwith open('data.json', 'r', encoding='utf-8') as file:\n data = json.load(file)\n\n# Now 'data' is a Python dictionary (or list)\nprint(data)\n```\n\n---\n\n### Key Details to Remember\n\n#### 1. `json.load()` vs `json.loads()`\n* **`json.load(file_object)`**: Used to read from a **file**.\n* **`json.loads(json_string)`**: Used to parse a **string** that contains JSON data (the \"s\" stands for \"string\").\n\n#### 2. Using the `with` statement\nIt is best practice to use the `with` statement because it automatically closes the file for you, even if an error occurs during reading.\n\n#### 3. Handling Encoding\nIf your JSON file contains special characters (like emojis or non-English letters), it is safer to specify the encoding:\n```python\nwith open('data.json', 'r', encoding='utf-8') as file:\n data = json.load(file)\n```\n\n---\n\n### Error Handling\nIf the file is missing or the JSON is formatted incorrectly, your program will crash. You can wrap it in a `try-except` block to handle these cases:\n\n```python\nimport json\n\ntry:\n with open('data.json', 'r') as file:\n data = json.load(file)\nexcept FileNotFoundError:\n print(\"The file was not found.\")\nexcept json.JSONDecodeError:\n print(\"The file is not a valid JSON format.\")\n```\n\n### Reading JSON from a URL\nIf you want to read JSON directly from the web, you can use the `requests` library:\n\n```python\nimport requests\n\nresponse = requests.get('https://api.example.com/data')\ndata = response.json() # Automatically parses the JSON\nprint(data)\n```" - }, - "raw_response": { - "candidates": [ - { - "content": { - "role": "model", - "parts": [ - { - "text": "To read a JSON file in Python, you use the built-in **`json`** module.\n\nHere is the most common and recommended way to do it:\n\n### Basic Example\n```python\nimport json\n\n# Open the file and load the data\nwith open('data.json', 'r', encoding='utf-8') as file:\n data = json.load(file)\n\n# Now 'data' is a Python dictionary (or list)\nprint(data)\n```\n\n---\n\n### Key Details to Remember\n\n#### 1. `json.load()` vs `json.loads()`\n* **`json.load(file_object)`**: Used to read from a **file**.\n* **`json.loads(json_string)`**: Used to parse a **string** that contains JSON data (the \"s\" stands for \"string\").\n\n#### 2. Using the `with` statement\nIt is best practice to use the `with` statement because it automatically closes the file for you, even if an error occurs during reading.\n\n#### 3. Handling Encoding\nIf your JSON file contains special characters (like emojis or non-English letters), it is safer to specify the encoding:\n```python\nwith open('data.json', 'r', encoding='utf-8') as file:\n data = json.load(file)\n```\n\n---\n\n### Error Handling\nIf the file is missing or the JSON is formatted incorrectly, your program will crash. You can wrap it in a `try-except` block to handle these cases:\n\n```python\nimport json\n\ntry:\n with open('data.json', 'r') as file:\n data = json.load(file)\nexcept FileNotFoundError:\n print(\"The file was not found.\")\nexcept json.JSONDecodeError:\n print(\"The file is not a valid JSON format.\")\n```\n\n### Reading JSON from a URL\nIf you want to read JSON directly from the web, you can use the `requests` library:\n\n```python\nimport requests\n\nresponse = requests.get('https://api.example.com/data')\ndata = response.json() # Automatically parses the JSON\nprint(data)\n```", - "thoughtSignature": "CpoIAY89a18jqSNoAkdnLwrTiEVOfCWU2h+i0cF80VkEbpiDJonCd8buSMVdR/N8pVtqibgPP3INdZkmGbxBAer3Ojz/B+IvLyYtJEvr9Lj7q18FPXX1GOG10u3noKl3uyxQ2doaIGaJ+iV3c6SwqaB+AxhptZ5ht0utR6jdQuVwefyygMRgERQ5J24dX0YT3r2GR1ZYP0HnKwgtihUhP7yrl2wML1bnDNfz7/aQDQTr1h62ua2VC5HKJz1aP8OQ9g7qpMKrr0lgT5C1/He0Mtdl5jaFpms+/Qi0Z3kInqBwoJH0SmGiPGAWeOhq00VZuw2TmepnYBdXZUu90Z1FxJzkngyP2tSXiefd71CZ7LcnEDZiIw2uzLhOo0Sh+6JVcDd0uqAPfA4HDfA+GUGuFW3iJBOtFs3miOdID0I0tf5MD9CCEvUwsA9zk5YRtbZzZ81IWbwyXsMav6zqU9i1nNfd6nDx0Rb9rvi6Fczygy9qcXQVeWvD3K8Pcwr8IgnM42W4erRtxp/4vkAbRBHQqEr8ON0NSSCSK5jgfEenjfWT0f+1hXouaFD62HhKJjhfqjR/9EFntv6KxT3jut+6HFTmQbJgS/RqauJx4QhOekkSB9OB6tK59W1iEhZ4/32ifP1SajQGXAX+jaDfqb948NMWmSOaAGPAQeGoj6y/40s5sH3MUzTdrs1K5AWh+r9vuQmd2/ktKdhVGm1lwuQeUY2sGuLWoS+iFMtYin5CGGlzgJ1ptScvq6EZ5jHl+P0u7fPx67+u3fXvDSlQGy9JybVoJxfWCHYE91TDLC/nik0prPiRRa5RRqhWyP646TvGX7tY9xhcpq3JRRU+gauo+hKD/PLpgtjjpDa4LcYXPHHGEmcUChahRH865UocrqSOA1J1Z7R59+I5KYYpcFzQPheo+uv5MmYvWYtNB/4ek3UWNU9Y/tGCIFBk74S5+b5Xw+oKUt6dockpvnIfXeBhVRwWBkRLjFVQTCW+sEMRYM8ml8nzuc3uCFCk9VpgRpTccivx5aPAXCgtdoJ1I/RjKUHDQqRS2yFAX78mQw6bPTJl59niGIuiN7yTFfg2phsyFIctkiE1zJS2u82GYFfsUESqZ5utVFZuPpHDVHXcXFb665oFSwlIkTqI8Xhx65fNuBCIG+jFkn+Tx2v+CJlbTG5v+SlVN6mbkwdSya6LUNQeX+eoLK1o3qz7HtF7XJRvc7guEc01pRl4i0RUYZGjkVC3SdC55H1UrH6uYQ938j2FJhLgih2RqEKEfWENwYs20zxJTkJwxw9fBUcfob9Qakhay5CNLZQ9C29H3Y7YmSo7nIf72upvVFy8rMUXY4H7l9CU/ZMR+bxLWDEY+ly/RaOOAscpiGHdOtgvghnps8Jbqk9VaTTXZ9nhcujJ" - } - ] - }, - "finishReason": "STOP", - "avgLogprobs": -0.09832632964156421 - } - ], - "usageMetadata": { - "promptTokenCount": 20, - "candidatesTokenCount": 476, - "totalTokenCount": 792, - "trafficType": "ON_DEMAND", - "promptTokensDetails": [ - { - "modality": "TEXT", - "tokenCount": 20 - } - ], - "candidatesTokensDetails": [ - { - "modality": "TEXT", - "tokenCount": 476 - } - ], - "thoughtsTokenCount": 296 - }, - "modelVersion": "gemini-3-flash-preview", - "createTime": "2026-04-17T05:47:57.460588Z", - "responseId": "jcnhaayOHISRq8YP2o-ouQg", - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'google/gemini-3-flash',\n {\n contents: [\n {\n role: 'user',\n parts: [\n {\n text: 'How do I read a JSON file in Python?',\n },\n ],\n },\n ],\n systemInstruction: {\n parts: [\n {\n text: 'You are a helpful coding assistant specializing in Python.',\n },\n ],\n },\n generationConfig: {\n temperature: 0.3,\n },\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Multi-turn Conversation", - "description": "Continuing a conversation with context", - "input": { - "contents": [ - { - "role": "user", - "parts": [ - { - "text": "I need help planning a road trip from San Francisco to Los Angeles." - } - ] - }, - { - "role": "model", - "parts": [ - { - "text": "I'd be happy to help! The drive is about 380 miles and takes roughly 5-6 hours. Would you like suggestions for scenic routes or interesting stops along the way?" - } - ] - }, - { - "role": "user", - "parts": [ - { - "text": "Yes, what are some good places to stop?" - } - ] - } - ], - "generationConfig": { - "maxOutputTokens": 500 - } - }, - "output": { - "text": "To give you the best recommendations, it helps to know how much time you have. The drive can" - }, - "raw_response": { - "candidates": [ - { - "content": { - "role": "model", - "parts": [ - { - "text": "To give you the best recommendations, it helps to know how much time you have. The drive can", - "thoughtSignature": "CsEMAY89a1+MKxwIRFM9FZAI5vUueKSbga//EOdZuU7xXNiL7Af8Qk69+AoQGdXTicASRYeElP17NgERz6Szv5b0K7Wp0fhgWOIKhd6TuTHBGsH86lSet25yLc08epSZS5vfj5QsA7yI2gvxwfZn6M3z8RtdP7XbW0ueIM+qzDq8apirDmwO2re+2E9rNNVSQKARCZQ/ZXMcVAcWRO4i4r3OxOpdX7cBdGPuv11Xoj1rlMYvBuxRJs54SQAO0sVcMmvJNosLtOUqlp6gtwbLe0lvd+iF7pf/E9kc8OOuGPDFwolyPoCDebkgUIFSI2tpKtMm/Wb3BNAvNjxf9/wHKefo7wi3/lXdC2lGIMdcq0QTVHYq1P+lJN3knGL2NCTNxwXBtKMrLqPSfRFjm36hf1ItchDklYW+UIi32/+zoId0O/N4NGcKi3JBcMuT0dxwAmVmVVwhdtuSRLzKaZtub7lKa/At8loruBQt9Pyqr2CcRfXgkr6bmoXfeUQi4Nx+NP9f3A5uehrPFyST7QQhkXvvkvf8tiumQbqxkSmK+U0yBaMeBTPKPOlkqU1C5doe2nep13HtWQHGHcnYLQ+Z2lD2xmldC4fg/5rnM2NW3cw48DZ95cVjS2yDlvvfMZlhWg0JthF8raqluhQ2KoQbMHjZKsc3f14CLq4dJE0clzRKDQDVAIVfiahOM4fTlRSekyTP6xwEH+9FZUhuy+tJqJEz/Ucd6MrJ5mdpWU8JE1K4F5uznvv9rx/clyiXqKj7tiQAfv4TYHVQIEvHuysCQidXrEG0T12W5MdOTmND9M1BDCO3IiLkhBGNds+1RHudJxMQP9MZ1LrNVice2OFgZDyST6YaX7xkfGCzO6FzwoOWThzsxS16kwpoRgvcKQWg00WXOMFuIjjUkycpZ7XBa5bJvKIUbhrhN1w5dB73AYtrf8rMpTewM/fVgFgJ2zGAvDBhg82nizCpzdutes/eupCkuHCVw9uKkLxmmKMnXJi0d1CsY9XcO2JQUdbEi9t3phcxPxIimEstmF+qb0I55H8EZot9HoxrS33rjG+ocr9o/ONOS/bxEfaxoRuPdcvoN0TFYx8Y3asDGdVf0Kdx3gSrdNqQG+j0KmEVmp0qiflsPFIZ1is5bX6xYLm6BQj8HzXIIH16fOHUVmulkjL13hyuftNUONSGSwdI6HsAN/ZZ0eoek3LS4rxsCLo2zIJ2bukKR4Z9zT7OArlpF9zMLhH5bYTBx/+fLJaWY4VlBcMiq0Lt+DNJ+8PRASpq5nBHECIXf2klHRg8iCqiya28/bNskjf2YlvP8C8sV4CgkVzs0TBRPlpwjKYTjbG8XaS6SjeXBdtXCtZJqEZhcVgQN0iLd2Wg8EAmirFUybT/JSGCKnYK95G2Sadp0RarHHH4iQKOEU3U+2o6p/TbgM+kVdF89rer3/QjAkEBEx9kmpOe8UpIIOTIUk1kBxbWWg3ULNo+TSTokAAKBrCma9KYZutwtNnsjaBjwntV6SLb2Ly3/KyrpC4wz5toYRcMF2Kt4ZcrIFMJlaJnb1IW4rR85OqaW8he3ZqfwmBvim7g5tEJLvcZsnA3hgE4ufOlcuC6XKbI4fQj86Q75flLEedTBI4Xj+Kon4QzRm1nRl1qoBXftm9aKXxZ7wIZBFKsRvRNEsFGNGwdNPH6jLP8aR3XleCY0tPRxIQlH3fyYexFeM34FrOc27fzChDzlvklxdOQOyO9lPWFSNNRryko86+Y231/IyVqt4eMKwnEf1CiLy/KVp2e+rUYnAtAyy7p9Fyy9S6CNqCPc08MkRAG3VlIhMS7MhlQNcwCs+a78lib8HQA5qt7H6YzIk7KbiEbN37kRYvzcCQYvyq3o2npbCxUhkt7Pk5Tiy1XcvytR+qXxekHhFRo8ODLkuka5RTuhsABO7z9dRWnWBU5Bn7qoT7CurVufof3ssqR1BcsTjzxDG621ALUTxnxi39gre6O+PaZFUsEv3tLojU6vjU+ABPOsY+um7I2BF0EBeNRasknuFPgzfXQLyTb6yrEvEQ0lJCbemjyFXD5onJo0TDY4flH+lxZrIXkjnxxnmn61oICa3r5U6hnCXKhtIAbzs75hBPiM81esMREFA2FQ+OeJqznsMhejig=" - } - ] - }, - "finishReason": "MAX_TOKENS", - "avgLogprobs": -7.779651683751491 - } - ], - "usageMetadata": { - "promptTokenCount": 64, - "candidatesTokenCount": 20, - "totalTokenCount": 560, - "trafficType": "ON_DEMAND", - "promptTokensDetails": [ - { - "modality": "TEXT", - "tokenCount": 64 - } - ], - "candidatesTokensDetails": [ - { - "modality": "TEXT", - "tokenCount": 20 - } - ], - "thoughtsTokenCount": 476 - }, - "modelVersion": "gemini-3-flash-preview", - "createTime": "2026-04-17T05:48:02.222198Z", - "responseId": "ksnhafbHDZCeq8YPtfXXyQ4", - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'google/gemini-3-flash',\n {\n contents: [\n {\n role: 'user',\n parts: [\n {\n text: 'I need help planning a road trip from San Francisco to Los Angeles.',\n },\n ],\n },\n {\n role: 'model',\n parts: [\n {\n text: \"I'd be happy to help! The drive is about 380 miles and takes roughly 5-6 hours. Would you like suggestions for scenic routes or interesting stops along the way?\",\n },\n ],\n },\n {\n role: 'user',\n parts: [\n {\n text: 'Yes, what are some good places to stop?',\n },\n ],\n },\n ],\n generationConfig: {\n maxOutputTokens: 500,\n },\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Creative Writing", - "description": "Higher temperature for creative output", - "input": { - "contents": [ - { - "role": "user", - "parts": [ - { - "text": "Write a short story opening about a detective finding an unusual clue." - } - ] - } - ], - "generationConfig": { - "temperature": 0.8, - "maxOutputTokens": 300 - } - }, - "output": { - "text": "The yellow police tape hummed in the drafty" - }, - "raw_response": { - "candidates": [ - { - "content": { - "role": "model", - "parts": [ - { - "text": "The yellow police tape hummed in the drafty", - "thoughtSignature": "CvAIAY89a184jaSQCZEM4oHqR38/9rVamPb8K209g7cY61/Q3OxFivZwmOKnowcQMnAxvVGTaxxuDlXAqiNS70l3UPnk+3GPr8wExttqJyoSzP/k1E1UpMurGT/CEhXJnmfAaf3ChjjPztJVM/Mb94nkIjh284U1w0KQOHh/T1Za3F3KUlkPVcIPOoctReIMhsI1Z/Do/LZykKPYMZtDp73oJU6ADi+Yo6DZH1Voc56qKXmJTCadmNjsNXzTkklCXdwspIvfdeh3MeT/DY3wbu8SseGNxp8JQx6v+6hry8KL9G0EjP478Zz2iYmV58hdWvmhSvioQtJ9wGN2CEK4v2vpmGmlO4Xzh908uu3YA6pHevmPrgkWjYwJ/vZ27kVFCL2pfXNNQBWcX9rQuGueSfkLYjBr90c6iyVJcM/saAbmBbBfKHko5rfkwwKjPFoj9y8kXQ7lBl3H9YRVjvkfJNxaDVxz+IygwHB52H1h78mZmc27g9faKAwzxn/GNhIG3r18TVKy6liAsebOVKpeC1bPuFIGEo6nwdzIBdsJP7/ngU9+4mCZ60/n3293iPJxff4zA+7tRTfjDTjtSuPW2Ta6phZ2NfnKwKWbwuwqxDdSAK9N8RRugb6hn2o7lIoG1BEQ+T3W728uzpDFhEpa0P9RBiYAV1oDJ5kDCZBdC7JqWS1RjxfOqe8Mh6KgMD8eMEImYF4dHU8Ppt4BANexgK3rSHSauW3Ykb0r8KxTIjKmd6mJ/ImJLuqwVshwjx8Ovbt38D9cag4MiNbq5rwjAgTk1BbFF0XQvTRef2LHYEqIBIvYYxKLH6eYFhrAWG/TT9tp7R/TZD2pfs+fGqMzyehGEFOUjMyhphgK5o0hKsXe/xHGeQsTdu3kFySVlc+bvzV5ve0T2hau1xXD+tnBNFpCaHlS25amUdTXJluWuF2iDfzet648bckCQTxQRBEGT5QiF7CKdvu+l3x/Jct5l9ZynwMcr0rHhkm+7iL74QFykS1lZT+9GiJO7bj2Onz6RUdAIAEg7PWp/zvwX8P+uSeXMMX0hBuRZ69oR1z9EfUFBsravP/XwxWpbFi2QCk2RhbaBolrzPkNq5C1Fnk7H1YWFvDkRnQ+vCVdWitRVhIJSJ/MCuH2ryewJ1eywlVLPddlu/mGtTqAMJSZJz+f6h9BUrRffA8EDL10L2lVb+IpwvVrwvaVqCoFiRYmYmtyrm+ckJMR/8LRsM5aCoJyKGgt/QmhLrDI9br/r6ghkxj4IhS4K03+rcDpG6aZ/W6WKw5tnq/gaZNG7ZhV6PXSxuKdTBMnw6waSqFc2d1UhLTbSwJDxhUn3seOWltq6rBRxJNLRxn/rB0aM3G0chiHQxMwKZxoXBhmc+Lph07RZlSs/IGdn1tvPNhDbAKEVCBwRUrvouCYNdOqS5UCkLwnTFOpm5XX3G+I/hFPgBgZksGu7ylh298RfWUaojbDBd5rWjs6/vDyNKT8/M80B3B+anLSgpoGl+Emv0ocdKJbVf5OBCo=" - } - ] - }, - "finishReason": "MAX_TOKENS", - "avgLogprobs": -15.592795781649631 - } - ], - "usageMetadata": { - "promptTokenCount": 13, - "candidatesTokenCount": 10, - "totalTokenCount": 309, - "trafficType": "ON_DEMAND", - "promptTokensDetails": [ - { - "modality": "TEXT", - "tokenCount": 13 - } - ], - "candidatesTokensDetails": [ - { - "modality": "TEXT", - "tokenCount": 10 - } - ], - "thoughtsTokenCount": 286 - }, - "modelVersion": "gemini-3-flash-preview", - "createTime": "2026-04-17T05:48:06.216204Z", - "responseId": "lsnhaYyZDd-jq8YPlobFmAo", - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'google/gemini-3-flash',\n {\n contents: [\n {\n role: 'user',\n parts: [\n {\n text: 'Write a short story opening about a detective finding an unusual clue.',\n },\n ],\n },\n ],\n generationConfig: {\n temperature: 0.8,\n maxOutputTokens: 300,\n },\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - } - ], - "supports_async": false, - "external_info": "https://deepmind.google/technologies/gemini/", - "terms": "https://ai.google.dev/gemini-api/terms", - "cover_image_url": "https://pub-26f1392c1b674324be6786695bd72257.r2.dev/google/gemini-3-flash.png", - "metadata": { - "Architecture": "Transformer (multimodal)", - "Thinking": "Yes" - }, - "created_at": "2026-04-13 16:46:30", - "default_example": null, - "code_snippets": [], - "zdr": false, - "zdr_comment": null, - "schema": { - "input": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "contents": { - "type": "array", - "items": { - "type": "object", - "properties": { - "role": { - "type": "string", - "enum": [ - "user", - "model" - ] - }, - "parts": { - "type": "array", - "items": { - "type": "object", - "properties": { - "text": { - "type": "string" - } - }, - "additionalProperties": {} - } - } - }, - "required": [ - "parts" - ], - "additionalProperties": {} - } - }, - "systemInstruction": { - "type": "object", - "properties": { - "parts": { - "type": "array", - "items": { - "type": "object", - "properties": { - "text": { - "type": "string" - } - }, - "additionalProperties": {} - } - } - }, - "required": [ - "parts" - ], - "additionalProperties": {} - }, - "generationConfig": { - "type": "object", - "properties": { - "temperature": { - "type": "number" - }, - "topP": { - "type": "number" - }, - "topK": { - "type": "number" - }, - "maxOutputTokens": { - "type": "number" - }, - "candidateCount": { - "type": "number" - }, - "stopSequences": { - "type": "array", - "items": { - "type": "string" - } - }, - "responseMimeType": { - "type": "string" - } - }, - "additionalProperties": {} - }, - "safetySettings": { - "type": "array", - "items": { - "type": "object", - "properties": { - "category": { - "type": "string" - }, - "threshold": { - "type": "string" - } - }, - "required": [ - "category", - "threshold" - ], - "additionalProperties": {} - } - }, - "tools": { - "type": "array", - "items": {} - }, - "toolConfig": {} - }, - "required": [ - "contents" - ], - "additionalProperties": {} - }, - "output": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "candidates": { - "type": "array", - "items": {} - }, - "usageMetadata": { - "type": "object", - "properties": { - "promptTokenCount": { - "type": "number" - }, - "candidatesTokenCount": { - "type": "number" - }, - "totalTokenCount": { - "type": "number" - } - }, - "additionalProperties": {} - }, - "modelVersion": { - "type": "string" - } - }, - "additionalProperties": {} - } - } -} diff --git a/src/content/catalog-models/google-gemini-3.1-flash-lite.json b/src/content/catalog-models/google-gemini-3.1-flash-lite.json deleted file mode 100644 index 8b332f192c8abfa..000000000000000 --- a/src/content/catalog-models/google-gemini-3.1-flash-lite.json +++ /dev/null @@ -1,466 +0,0 @@ -{ - "model_id": "google/gemini-3.1-flash-lite", - "provider_id": "google", - "name": "Gemini 3.1 Flash Lite", - "description": "Google's lightest and most cost-efficient Gemini model for high-throughput tasks.", - "task": "Text Generation", - "tags": [ - "LLM", - "Fast", - "Cost-Efficient", - "Multimodal" - ], - "context_length": 1000000, - "max_output_tokens": 8192, - "schema_version": "1.0.0", - "examples": [ - { - "name": "Simple Question", - "description": "Basic generateContent request", - "input": { - "contents": [ - { - "role": "user", - "parts": [ - { - "text": "What are the three laws of thermodynamics?" - } - ] - } - ] - }, - "output": { - "text": "The three laws of thermodynamics (plus the \"zeroth\" law, which was defined later but is foundational) describe how energy moves and transforms within physical systems.\n\nHere is a breakdown of the laws:\n\n### 0. The Zeroth Law (The Law of Equilibrium)\n**\"If two systems are each in thermal equilibrium with a third system, they are in thermal equilibrium with each other.\"**\n* **What it means:** This law essentially defines the concept of **temperature**. It allows us to use thermometers; if a thermometer reads the same temperature when placed in two different containers of water, we know the water in both containers is at the same temperature, even if they aren't touching.\n\n### 1. The First Law (The Law of Conservation of Energy)\n**\"Energy cannot be created or destroyed, only transformed from one form to another.\"**\n* **What it means:** The total energy of an isolated system remains constant. You can change energy from heat to work (or vice versa), but you cannot get \"something for nothing.\" If you put a certain amount of energy into a system, you will get that same amount back out in some form (like heat or motion), unless some is lost to the environment.\n\n### 2. The Second Law (The Law of Entropy)\n**\"The entropy of an isolated system will always increase over time; it can never decrease.\"**\n* **What it means:** This law introduces the concept of **entropy**, which is often described as a measure of disorder or randomness. It states that energy naturally spreads out and becomes less useful over time. Heat will always flow spontaneously from a hot object to a cold object, never the other way around. This is why perpetual motion machines are impossible and why time feels like it has a \"direction\" (the arrow of time).\n\n### 3. The Third Law (The Law of Absolute Zero)\n**\"As the temperature of a system approaches absolute zero (0 Kelvin), the entropy of a perfect crystal approaches zero.\"**\n* **What it means:** It is impossible to reach absolute zero through any finite number of physical processes. As a system gets colder, its particles lose energy and move less, eventually reaching a state of minimum possible motion and perfect order (a perfect crystal structure). Because you can never extract all the energy from a system, you can never reach absolute zero.\n\n***\n\n### Summary\n* **0th Law:** You have to play by the rules of temperature (equilibrium).\n* **1st Law:** You can't win (you can't create energy).\n* **2nd Law:** You can't even break even (you always lose some energy to entropy).\n* **3rd Law:** You can't get out of the game (you can't reach absolute zero)." - }, - "raw_response": { - "candidates": [ - { - "content": { - "role": "model", - "parts": [ - { - "text": "The three laws of thermodynamics (plus the \"zeroth\" law, which was defined later but is foundational) describe how energy moves and transforms within physical systems.\n\nHere is a breakdown of the laws:\n\n### 0. The Zeroth Law (The Law of Equilibrium)\n**\"If two systems are each in thermal equilibrium with a third system, they are in thermal equilibrium with each other.\"**\n* **What it means:** This law essentially defines the concept of **temperature**. It allows us to use thermometers; if a thermometer reads the same temperature when placed in two different containers of water, we know the water in both containers is at the same temperature, even if they aren't touching.\n\n### 1. The First Law (The Law of Conservation of Energy)\n**\"Energy cannot be created or destroyed, only transformed from one form to another.\"**\n* **What it means:** The total energy of an isolated system remains constant. You can change energy from heat to work (or vice versa), but you cannot get \"something for nothing.\" If you put a certain amount of energy into a system, you will get that same amount back out in some form (like heat or motion), unless some is lost to the environment.\n\n### 2. The Second Law (The Law of Entropy)\n**\"The entropy of an isolated system will always increase over time; it can never decrease.\"**\n* **What it means:** This law introduces the concept of **entropy**, which is often described as a measure of disorder or randomness. It states that energy naturally spreads out and becomes less useful over time. Heat will always flow spontaneously from a hot object to a cold object, never the other way around. This is why perpetual motion machines are impossible and why time feels like it has a \"direction\" (the arrow of time).\n\n### 3. The Third Law (The Law of Absolute Zero)\n**\"As the temperature of a system approaches absolute zero (0 Kelvin), the entropy of a perfect crystal approaches zero.\"**\n* **What it means:** It is impossible to reach absolute zero through any finite number of physical processes. As a system gets colder, its particles lose energy and move less, eventually reaching a state of minimum possible motion and perfect order (a perfect crystal structure). Because you can never extract all the energy from a system, you can never reach absolute zero.\n\n***\n\n### Summary\n* **0th Law:** You have to play by the rules of temperature (equilibrium).\n* **1st Law:** You can't win (you can't create energy).\n* **2nd Law:** You can't even break even (you always lose some energy to entropy).\n* **3rd Law:** You can't get out of the game (you can't reach absolute zero).", - "thoughtSignature": "AY89a18/qrzuCK5CIDaOYqC1wX01eZUMGTdZMAh65fcN1mR4la5a1PFsdF4H9pnJ50w=" - } - ] - }, - "finishReason": "STOP" - } - ], - "usageMetadata": { - "promptTokenCount": 8, - "candidatesTokenCount": 589, - "totalTokenCount": 597, - "trafficType": "ON_DEMAND", - "promptTokensDetails": [ - { - "modality": "TEXT", - "tokenCount": 8 - } - ], - "candidatesTokensDetails": [ - { - "modality": "TEXT", - "tokenCount": 589 - } - ] - }, - "modelVersion": "gemini-3.1-flash-lite-preview", - "createTime": "2026-04-17T05:56:31.311694Z", - "responseId": "j8vhaY6DE6yQq8YPhOuliQs", - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'google/gemini-3.1-flash-lite',\n {\n contents: [\n {\n role: 'user',\n parts: [\n {\n text: 'What are the three laws of thermodynamics?',\n },\n ],\n },\n ],\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "With System Instruction", - "description": "Using a system instruction to set context", - "input": { - "contents": [ - { - "role": "user", - "parts": [ - { - "text": "How do I read a JSON file in Python?" - } - ] - } - ], - "systemInstruction": { - "parts": [ - { - "text": "You are a helpful coding assistant specializing in Python." - } - ] - }, - "generationConfig": { - "temperature": 0.3 - } - }, - "output": { - "text": "To read a JSON file in Python, you use the built-in `json` module.\n\nHere is the standard way to do it:\n\n### 1. The Basic Approach\nUse the `open()` function to open the file and `json.load()` to parse it into a Python dictionary or list.\n\n```python\nimport json\n\n# Open the file\nwith open('data.json', 'r') as file:\n data = json.load(file)\n\n# Now 'data' is a Python dictionary or list\nprint(data)\n```\n\n### Key details:\n* **`with open(...)`**: This is a \"context manager.\" It is best practice because it ensures the file is automatically closed after you are done reading it, even if an error occurs.\n* **`json.load()`**: This function takes the file object and converts the JSON data into the corresponding Python object (e.g., `{}` becomes a `dict`, `[]` becomes a `list`, `true` becomes `True`).\n\n---\n\n### 2. Handling Errors (Best Practice)\nIf the file might not exist or the JSON might be malformed, it is good practice to add error handling:\n\n```python\nimport json\n\ntry:\n with open('data.json', 'r') as file:\n data = json.load(file)\nexcept FileNotFoundError:\n print(\"The file was not found.\")\nexcept json.JSONDecodeError:\n print(\"The file contains invalid JSON.\")\n```\n\n---\n\n### 3. What if you have a JSON string instead of a file?\nIf you already have the JSON data stored in a variable (as a string) rather than in a file, use `json.loads()` (the \"s\" stands for \"string\"):\n\n```python\nimport json\n\njson_string = '{\"name\": \"Alice\", \"age\": 30}'\ndata = json.loads(json_string)\n\nprint(data[\"name\"]) # Output: Alice\n```\n\n### Summary:\n* Use **`json.load(file_object)`** to read from a **file**.\n* Use **`json.loads(string)`** to read from a **string**." - }, - "raw_response": { - "candidates": [ - { - "content": { - "role": "model", - "parts": [ - { - "text": "To read a JSON file in Python, you use the built-in `json` module.\n\nHere is the standard way to do it:\n\n### 1. The Basic Approach\nUse the `open()` function to open the file and `json.load()` to parse it into a Python dictionary or list.\n\n```python\nimport json\n\n# Open the file\nwith open('data.json', 'r') as file:\n data = json.load(file)\n\n# Now 'data' is a Python dictionary or list\nprint(data)\n```\n\n### Key details:\n* **`with open(...)`**: This is a \"context manager.\" It is best practice because it ensures the file is automatically closed after you are done reading it, even if an error occurs.\n* **`json.load()`**: This function takes the file object and converts the JSON data into the corresponding Python object (e.g., `{}` becomes a `dict`, `[]` becomes a `list`, `true` becomes `True`).\n\n---\n\n### 2. Handling Errors (Best Practice)\nIf the file might not exist or the JSON might be malformed, it is good practice to add error handling:\n\n```python\nimport json\n\ntry:\n with open('data.json', 'r') as file:\n data = json.load(file)\nexcept FileNotFoundError:\n print(\"The file was not found.\")\nexcept json.JSONDecodeError:\n print(\"The file contains invalid JSON.\")\n```\n\n---\n\n### 3. What if you have a JSON string instead of a file?\nIf you already have the JSON data stored in a variable (as a string) rather than in a file, use `json.loads()` (the \"s\" stands for \"string\"):\n\n```python\nimport json\n\njson_string = '{\"name\": \"Alice\", \"age\": 30}'\ndata = json.loads(json_string)\n\nprint(data[\"name\"]) # Output: Alice\n```\n\n### Summary:\n* Use **`json.load(file_object)`** to read from a **file**.\n* Use **`json.loads(string)`** to read from a **string**.", - "thoughtSignature": "AY89a1+QCQyLEPmRYl+2AVmXHaIx0o+LPUSsAf95sDbX+GN5Rb8WyV+hgYbfVxXFwDQ=" - } - ] - }, - "finishReason": "STOP" - } - ], - "usageMetadata": { - "promptTokenCount": 20, - "candidatesTokenCount": 478, - "totalTokenCount": 498, - "trafficType": "ON_DEMAND", - "promptTokensDetails": [ - { - "modality": "TEXT", - "tokenCount": 20 - } - ], - "candidatesTokensDetails": [ - { - "modality": "TEXT", - "tokenCount": 478 - } - ] - }, - "modelVersion": "gemini-3.1-flash-lite-preview", - "createTime": "2026-04-17T05:56:31.695319Z", - "responseId": "j8vhaZe4Kuyeq8YPgY-7yQ8", - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'google/gemini-3.1-flash-lite',\n {\n contents: [\n {\n role: 'user',\n parts: [\n {\n text: 'How do I read a JSON file in Python?',\n },\n ],\n },\n ],\n systemInstruction: {\n parts: [\n {\n text: 'You are a helpful coding assistant specializing in Python.',\n },\n ],\n },\n generationConfig: {\n temperature: 0.3,\n },\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Multi-turn Conversation", - "description": "Continuing a conversation with context", - "input": { - "contents": [ - { - "role": "user", - "parts": [ - { - "text": "I need help planning a road trip from San Francisco to Los Angeles." - } - ] - }, - { - "role": "model", - "parts": [ - { - "text": "I'd be happy to help! The drive is about 380 miles and takes roughly 5-6 hours. Would you like suggestions for scenic routes or interesting stops along the way?" - } - ] - }, - { - "role": "user", - "parts": [ - { - "text": "Yes, what are some good places to stop?" - } - ] - } - ], - "generationConfig": { - "maxOutputTokens": 500 - } - }, - "output": {}, - "raw_response": { - "candidates": [ - { - "content": { - "role": "model" - }, - "finishReason": "MAX_TOKENS" - } - ], - "usageMetadata": { - "promptTokenCount": 64, - "candidatesTokenCount": 496, - "totalTokenCount": 560, - "trafficType": "ON_DEMAND", - "promptTokensDetails": [ - { - "modality": "TEXT", - "tokenCount": 64 - } - ], - "candidatesTokensDetails": [ - { - "modality": "TEXT", - "tokenCount": 496 - } - ] - }, - "modelVersion": "gemini-3.1-flash-lite-preview", - "createTime": "2026-04-17T05:56:34.641767Z", - "responseId": "ksvhaeeVJ6CIq8YPzKOY8Qk", - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'google/gemini-3.1-flash-lite',\n {\n contents: [\n {\n role: 'user',\n parts: [\n {\n text: 'I need help planning a road trip from San Francisco to Los Angeles.',\n },\n ],\n },\n {\n role: 'model',\n parts: [\n {\n text: \"I'd be happy to help! The drive is about 380 miles and takes roughly 5-6 hours. Would you like suggestions for scenic routes or interesting stops along the way?\",\n },\n ],\n },\n {\n role: 'user',\n parts: [\n {\n text: 'Yes, what are some good places to stop?',\n },\n ],\n },\n ],\n generationConfig: {\n maxOutputTokens: 500,\n },\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Creative Writing", - "description": "Higher temperature for creative output", - "input": { - "contents": [ - { - "role": "user", - "parts": [ - { - "text": "Write a short story opening about a detective finding an unusual clue." - } - ] - } - ], - "generationConfig": { - "temperature": 0.8, - "maxOutputTokens": 300 - } - }, - "output": { - "text": "The rain drummed a frantic rhythm against the windowpane of the derelict apartment, but Detective Elias Thorne didn\u2019t hear it. He was staring at the center of the dust-choked rug, where the victim had supposedly spent his final moments.\n\nThere was no blood. There were no shell casings. There was only a single, perfectly preserved sprig of lavender resting on the floorboards.\n\nThorne knelt, his knees popping in the silence, and pulled a pair of latex gloves from his pocket. As he leaned in, the scent hit him\u2014not the stale, metallic smell of death he had expected, but a sharp, clinical floral aroma that felt entirely out of place in a room smelling of rot and damp wallpaper. \n\nHe reached out with his tweezers to bag the evidence, but stopped cold. The lavender wasn't just lying on the wood; it was pulsing. A faint, rhythmic bioluminescence ebbed from the petals, casting a soft, rhythmic violet glow against the floorboards. It was breathing in sync with his own heartbeat.\n\nThorne pulled his hand back, his pulse quickening. He had been a homicide detective for twenty years, and he knew that dead men didn't leave behind flowers that remembered how to live." - }, - "raw_response": { - "candidates": [ - { - "content": { - "role": "model", - "parts": [ - { - "text": "The rain drummed a frantic rhythm against the windowpane of the derelict apartment, but Detective Elias Thorne didn\u2019t hear it. He was staring at the center of the dust-choked rug, where the victim had supposedly spent his final moments.\n\nThere was no blood. There were no shell casings. There was only a single, perfectly preserved sprig of lavender resting on the floorboards.\n\nThorne knelt, his knees popping in the silence, and pulled a pair of latex gloves from his pocket. As he leaned in, the scent hit him\u2014not the stale, metallic smell of death he had expected, but a sharp, clinical floral aroma that felt entirely out of place in a room smelling of rot and damp wallpaper. \n\nHe reached out with his tweezers to bag the evidence, but stopped cold. The lavender wasn't just lying on the wood; it was pulsing. A faint, rhythmic bioluminescence ebbed from the petals, casting a soft, rhythmic violet glow against the floorboards. It was breathing in sync with his own heartbeat.\n\nThorne pulled his hand back, his pulse quickening. He had been a homicide detective for twenty years, and he knew that dead men didn't leave behind flowers that remembered how to live.", - "thoughtSignature": "AY89a1+eXS7mOv1k0+/v1b+BiI4lvuku7YD6rc6ahAuTpH0CIsazBf70N9Q9YTPsq9k=" - } - ] - }, - "finishReason": "STOP" - } - ], - "usageMetadata": { - "promptTokenCount": 13, - "candidatesTokenCount": 256, - "totalTokenCount": 269, - "trafficType": "ON_DEMAND", - "promptTokensDetails": [ - { - "modality": "TEXT", - "tokenCount": 13 - } - ], - "candidatesTokensDetails": [ - { - "modality": "TEXT", - "tokenCount": 256 - } - ] - }, - "modelVersion": "gemini-3.1-flash-lite-preview", - "createTime": "2026-04-17T05:56:34.799909Z", - "responseId": "ksvhaaXpMIGPq8YPsdmS-Qc", - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'google/gemini-3.1-flash-lite',\n {\n contents: [\n {\n role: 'user',\n parts: [\n {\n text: 'Write a short story opening about a detective finding an unusual clue.',\n },\n ],\n },\n ],\n generationConfig: {\n temperature: 0.8,\n maxOutputTokens: 300,\n },\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - } - ], - "supports_async": false, - "external_info": "https://deepmind.google/technologies/gemini/", - "terms": "https://ai.google.dev/gemini-api/terms", - "cover_image_url": "https://pub-26f1392c1b674324be6786695bd72257.r2.dev/google/gemini-3.1-flash-lite.png", - "metadata": { - "Architecture": "Transformer (multimodal)" - }, - "created_at": "2026-04-13 16:46:30", - "default_example": null, - "code_snippets": [], - "zdr": false, - "zdr_comment": null, - "schema": { - "input": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "contents": { - "type": "array", - "items": { - "type": "object", - "properties": { - "role": { - "type": "string", - "enum": [ - "user", - "model" - ] - }, - "parts": { - "type": "array", - "items": { - "type": "object", - "properties": { - "text": { - "type": "string" - } - }, - "additionalProperties": {} - } - } - }, - "required": [ - "parts" - ], - "additionalProperties": {} - } - }, - "systemInstruction": { - "type": "object", - "properties": { - "parts": { - "type": "array", - "items": { - "type": "object", - "properties": { - "text": { - "type": "string" - } - }, - "additionalProperties": {} - } - } - }, - "required": [ - "parts" - ], - "additionalProperties": {} - }, - "generationConfig": { - "type": "object", - "properties": { - "temperature": { - "type": "number" - }, - "topP": { - "type": "number" - }, - "topK": { - "type": "number" - }, - "maxOutputTokens": { - "type": "number" - }, - "candidateCount": { - "type": "number" - }, - "stopSequences": { - "type": "array", - "items": { - "type": "string" - } - }, - "responseMimeType": { - "type": "string" - } - }, - "additionalProperties": {} - }, - "safetySettings": { - "type": "array", - "items": { - "type": "object", - "properties": { - "category": { - "type": "string" - }, - "threshold": { - "type": "string" - } - }, - "required": [ - "category", - "threshold" - ], - "additionalProperties": {} - } - }, - "tools": { - "type": "array", - "items": {} - }, - "toolConfig": {} - }, - "required": [ - "contents" - ], - "additionalProperties": {} - }, - "output": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "candidates": { - "type": "array", - "items": {} - }, - "usageMetadata": { - "type": "object", - "properties": { - "promptTokenCount": { - "type": "number" - }, - "candidatesTokenCount": { - "type": "number" - }, - "totalTokenCount": { - "type": "number" - } - }, - "additionalProperties": {} - }, - "modelVersion": { - "type": "string" - } - }, - "additionalProperties": {} - } - } -} diff --git a/src/content/catalog-models/google-gemini-3.1-pro.json b/src/content/catalog-models/google-gemini-3.1-pro.json deleted file mode 100644 index d53e350b9c0a159..000000000000000 --- a/src/content/catalog-models/google-gemini-3.1-pro.json +++ /dev/null @@ -1,483 +0,0 @@ -{ - "model_id": "google/gemini-3.1-pro", - "provider_id": "google", - "name": "Gemini 3.1 Pro", - "description": "Google's most intelligent Gemini model with improved reasoning, a medium thinking level, and a 1M token context window.", - "task": "Text Generation", - "tags": [ - "LLM", - "Reasoning", - "Multimodal", - "Thinking" - ], - "context_length": 1000000, - "max_output_tokens": 65536, - "schema_version": "1.0.0", - "examples": [ - { - "name": "Simple Question", - "description": "Basic generateContent request", - "input": { - "contents": [ - { - "role": "user", - "parts": [ - { - "text": "What are the three laws of thermodynamics?" - } - ] - } - ] - }, - "output": { - "text": "The laws of thermodynamics are the fundamental principles that describe how energy moves and changes within the universe. While the prompt asks for the \"three\" laws, there are actually four (scientists later added a \"Zeroth\" law). \n\nHere is a breakdown of the three main laws, plus the bonus Zeroth law, explained in both scientific terms and plain English.\n\n### 1. The First Law: The Law of Conservation of Energy\n* **The Science:** Energy cannot be created or destroyed in an isolated system; it can only change forms. The change in a system's internal energy is equal to the heat added to the system minus the work done by the system.\n* **Plain English:** You can\u2019t get something for nothing. Energy just trades places or changes its outfit. \n* **Everyday Example:** When you turn on a lightbulb, electrical energy isn't destroyed; it is transformed into light energy and heat energy. When you eat an apple, your body converts the chemical energy in the food into kinetic energy so you can move.\n\n### 2. The Second Law: The Law of Entropy\n* **The Science:** The total entropy (a measure of disorder, randomness, or chaotic energy) of an isolated system will always increase over time. Furthermore, heat will always flow spontaneously from a hotter object to a colder one, never the other way around. \n* **Plain English:** Things naturally degrade and become more disorganized over time. Because some energy is always lost as unusable heat when it changes forms, no process is 100% efficient. \n* **Everyday Example:** If you leave a hot cup of coffee on a table, it will naturally cool down as its heat spreads into the room. It will never spontaneously gather heat from the room to make itself boiling hot again. Similarly, a tidy room will naturally become messy over time unless you expend energy (do work) to clean it.\n\n### 3. The Third Law: Absolute Zero\n* **The Science:** As the temperature of a system approaches absolute zero (0 Kelvin, or -273.15\u00b0C / -459.67\u00b0F), the entropy of the system approaches a constant minimum. \n* **Plain English:** Absolute zero is the coldest possible temperature, where all molecular and atomic movement completely stops. This law states that it is physically impossible to actually reach absolute zero because doing so would require an infinite amount of work.\n* **Everyday Example:** Imagine a bustling crowd of people (molecules) moving around. As the room gets colder, they slow down. At absolute zero, every single person would be perfectly frozen in place. \n\n---\n\n### *Bonus: The Zeroth Law (Thermal Equilibrium)*\nScientists realized this principle was so fundamental that it needed to precede the First, Second, and Third laws\u2014hence, the \"Zeroth\" law.\n* **The Science:** If System A is in thermal equilibrium (the same temperature) with System B, and System B is in thermal equilibrium with System C, then System A is in thermal equilibrium with System C.\n* **Plain English:** If two things are the same temperature as a third thing, they are all the same temperature. \n* **Everyday Example:** This is why thermometers work. If a thermometer is the same temperature as a room, and you are the same temperature as the room, you are the same temperature as the thermometer.\n\n### The \"Gambling\" Summary\nA famous and humorous way physicists remember the laws of thermodynamics is by comparing the universe to a rigged casino game:\n* **1st Law:** *You can\u2019t win.* (You cannot create energy out of nothing).\n* **2nd Law:** *You can\u2019t break even.* (You always lose some energy to heat/entropy).\n* **3rd Law:** *You can\u2019t quit the game.* (You can never reach absolute zero)." - }, - "raw_response": { - "candidates": [ - { - "content": { - "role": "model", - "parts": [ - { - "text": "The laws of thermodynamics are the fundamental principles that describe how energy moves and changes within the universe. While the prompt asks for the \"three\" laws, there are actually four (scientists later added a \"Zeroth\" law). \n\nHere is a breakdown of the three main laws, plus the bonus Zeroth law, explained in both scientific terms and plain English.\n\n### 1. The First Law: The Law of Conservation of Energy\n* **The Science:** Energy cannot be created or destroyed in an isolated system; it can only change forms. The change in a system's internal energy is equal to the heat added to the system minus the work done by the system.\n* **Plain English:** You can\u2019t get something for nothing. Energy just trades places or changes its outfit. \n* **Everyday Example:** When you turn on a lightbulb, electrical energy isn't destroyed; it is transformed into light energy and heat energy. When you eat an apple, your body converts the chemical energy in the food into kinetic energy so you can move.\n\n### 2. The Second Law: The Law of Entropy\n* **The Science:** The total entropy (a measure of disorder, randomness, or chaotic energy) of an isolated system will always increase over time. Furthermore, heat will always flow spontaneously from a hotter object to a colder one, never the other way around. \n* **Plain English:** Things naturally degrade and become more disorganized over time. Because some energy is always lost as unusable heat when it changes forms, no process is 100% efficient. \n* **Everyday Example:** If you leave a hot cup of coffee on a table, it will naturally cool down as its heat spreads into the room. It will never spontaneously gather heat from the room to make itself boiling hot again. Similarly, a tidy room will naturally become messy over time unless you expend energy (do work) to clean it.\n\n### 3. The Third Law: Absolute Zero\n* **The Science:** As the temperature of a system approaches absolute zero (0 Kelvin, or -273.15\u00b0C / -459.67\u00b0F), the entropy of the system approaches a constant minimum. \n* **Plain English:** Absolute zero is the coldest possible temperature, where all molecular and atomic movement completely stops. This law states that it is physically impossible to actually reach absolute zero because doing so would require an infinite amount of work.\n* **Everyday Example:** Imagine a bustling crowd of people (molecules) moving around. As the room gets colder, they slow down. At absolute zero, every single person would be perfectly frozen in place. \n\n---\n\n### *Bonus: The Zeroth Law (Thermal Equilibrium)*\nScientists realized this principle was so fundamental that it needed to precede the First, Second, and Third laws\u2014hence, the \"Zeroth\" law.\n* **The Science:** If System A is in thermal equilibrium (the same temperature) with System B, and System B is in thermal equilibrium with System C, then System A is in thermal equilibrium with System C.\n* **Plain English:** If two things are the same temperature as a third thing, they are all the same temperature. \n* **Everyday Example:** This is why thermometers work. If a thermometer is the same temperature as a room, and you are the same temperature as the room, you are the same temperature as the thermometer.\n\n### The \"Gambling\" Summary\nA famous and humorous way physicists remember the laws of thermodynamics is by comparing the universe to a rigged casino game:\n* **1st Law:** *You can\u2019t win.* (You cannot create energy out of nothing).\n* **2nd Law:** *You can\u2019t break even.* (You always lose some energy to heat/entropy).\n* **3rd Law:** *You can\u2019t quit the game.* (You can never reach absolute zero).", - "thoughtSignature": "CukdAY89a1/JNlElaHLRqgJBgLDUmWtvxcCTkUFQDQoIKIzMnMD7okyPA4FwhCPTW+6WhdipRl7CbxH6TaTxG6pGaRYORUPogRIRzr8jHXtfUsIR51eJv4EruvMiz1qQqJ8ButQTSJIMD2fZG97i/3QMyxNAUXBmxoYH2Gd7jt/VkN+6iVjbDSwBpvf9T+oOh0l6MGClG1snOHBMIzEMuAxmHpCo0pl/1Fq7noAbBx9OJ72ME/HS+uBqAh8xI+8j6qd9VHPnAxgnjCPDXYd7TNcLprEjM84sEidmsh0Ot4NIQQcNPDwA18uu4WcE8hS0A1LsabbFRN6LNFTZ8IDMuzOodT11XEczTECPvA3mbsk5SWGwt4Sz3RxzuENEB6u4kgMcSYEKWMT5JVVcv9ek0EnUQahlkMZCUtrL0CYSO0G1/EnyLUnqZaomr/NuyIMLkU2umeQIEwMRVDLhbkdhVKlAHFcflGsWJuQWhqF3pUyzQWwvP9RBHzoVpKEFpkovPZtAiKbJ8oiT4yCpWqFN0xWuuE5ozxPUrMN2N3HsBvpGO68PDkPOkeoYkNk4o+BW4GmnZB2bTlgNb4sVwSz19V45E8uV+zVPfdHnaddATApNirtvM6p5j8RIEMRXMXHjyoeOiGw/8ok9N9Q1IuqZyD0j119QynV4XntqJmygkw7HJz9RHQCcZUTOTd9NcFu4CUiNDKpHLWL+kG5MPXxOjOPFaSAnpinVix3SrdMN1ZuEQGsiqI1nvlwy2XQRG+Da3wEJZ0bpmr8LBT4ajsEOLAfdOB3yOKeQFqT6y5CoEgtEQG2HlYgs/+pV8yU5PqaC+PJgWqiUCiyyPQuwCAIdWgAKE6xlVB1y6FaYBAGrf5HUz3TQsf4daqbvKt2rWpyUk9k99qMOcWfWyxAFQ0FX/JulTjJAXoj+vXy8OFiq2xmOIbdw7j92zNir8UMlW4PPXi/uN/kvmMktQsMwVCpY1JbgKAW3IjkIACCn1Hdd1KmimfXKANrOJSq21mw/+BU72AHMGuMQZksJqF/+iYOhcupzdf5drGn/pedjs78w4HNRs/IR1fTOExrktkQO2KpKL0t8GAnl+KERISvdAjRv7JulwAA2VuCKuNFBNCDsre9ylUoVT2tvSZ0zxrpGhmpmqiP3klC+P6ySpglVx2/BDAFJSFcLMnyj/VPCAF5+WEf3Swzg5jq4evIT4orqdbKsbGQ/42tnpdearoAA4aZdTeUuPfDGfWZmtZrD8CpyfaKbXD8lXVcbePSw8lJ4GR1HB7Al/r7cDaiku8/4AH7JUy41lQSX4ZS3apM/0B2bUHIfM1IVMVyb7XXn/nkOmjYnjMEA3kvIrJMBICbhzFBhJL74XZGjJycsnJVgOt5fecYuJtrjkTBCqD8LtG62Vd5GsDc7ySY1McD0MdDTIUmsANMCm1PRcmmoSRkUWsAxrEr8Cuau6lbPqwIxsQAdoU936GiqxK96U8l2IO75QiKYEJNWmbzFu2pyMhhf2D48yORBSJq7rbcy+qN9/A/0TD25GnOsJQXnK9x448v1NYG7eTztSUYJJQycwBzFmyG6PqiP8kD/5XymErM2XiKFurJk4kjAKpNB4IvXc0KC2rvXAaKC+NCzjFhxQ5Ep9KzgNxhuNnST0GR8gKfwBZdrxIGG24LYHQNnI7iWZMQsU/z4xkeZRVtjlmfUpROugjBQH1JA16wvs5XpkCGgc7wWo2nceWkF1rV5Eg6uAioUobCWirZKvy6fHaIhkkDfPsTR4q9r0UPmx0N7SZY5E/n2H6YDXEzb+sNMTB4k/HpXOHvhdhiLLtR8d4JX2NsOc9+GDIU3bVAHDiS6SPtjsZmXT6UpVLAlcq1M76H0E3tShQPX+FttAWvYMe3/jnKMekTNLqHxnW7WXGT+KCzX+NJjDR1zXAsBvHZV7AZJKRk1z+Y3E8Yc/ufZXj6mPhkfopa5uqnUVmTUhz0BB6lwGs3cggiuKgOqwzhCHZdFKytoYPQDCigI1T7U44gByGn+610bGW/R5WE7e2vAMg4aEgYMkI6mXwfBPHbhSl5UamdQtd0Zw2JGyYjkaSdwxtUAYcXzk9vOdP8YONyzT6VAPaqifI2dI258sgpujr421Iug5fvWJzfG6DA1M17Z8LO52F1PWOC/gng/maWtnyFdqhGV+8cA/5d5d6DMWOZU4725/udHCKASUtUkRCjmyRAjPrP+XItT9pFppP0fQU6DVnKlFrbj/5SSmN8ndqM3iLB5muJbAgcfLWIfLe4O5LEX/NDMHknJUnz19f8pPM0QTd7ZxC3b6WYDKPSZGIkOGXMIyVRdbVwww55BH23Fh6mWqCg2h2NctOKVmyV3ugOxz3zHCuGRyS+IN+qx8Z6UZKcV82qHINTloDQInt/nkRVy9aVRDBJZFj8vro4okt1CBxK5JC3dcYtEpSeAswMwdhkWEKYJ+uv2CVu0aXrfdluh5BMtNNA51Rfn+ddDtiX6HHmEaBGFPT/NDtNijuEb0amtlfJy5BfwyjQzQfT2iQMA3v7TQBl4u36nkz/HgVWwvi5dysewMktnPl5ihilHEckDYYdnX4rh95eiswcp8YzHiBmWOjyZm6Q2ELVspcY+FwHfZlVYmnRLhw56TxipbIZgkQdLGzfgEmpLg4+gokkEcLFyD9nilsJu6zcunpowF8f6O4F3T8cqk4q3K6k8XzlD8HgY44LPWJfrelBBitDZBUHz1fwPGnIcZ1nXWeTCBO9NtbfMGe0+Se5eoy/N9o+2+66WMMhK62dRLYvukcHqoZfUQSzlzWMbmzem5LIcQejIv0proYG1AxVc/A6/4qsaOR0dMoRiQ9sV/xk0pYq1R7Xx8O5Fd/ZOF+eRlfIKm0opLulqc9mdalkIbxLaG10Fk4jokNBo9EFvQqJWEQZ5cvV9SGQIDlZaIv48LdL4I6yisvH8Lijg7udDQMIsA2uZcOEN0dm0PzQNe+xIARnfHhhlIYeU1zZ8ctXLhWsetwQtTHx19Y6NmkDLqFl5k7/jmovzj2c/VsoE5eQjYiL54t66vPeU/dAQQATSNntOcMeS5+4m7Vmk+HGNInbdhaH0Vijm1FVuOfozcYeK9f1sHo+ucu+tvN+g+YlKzEOJ3iCo6O+Ow0nqhH+8Z+Y0K+v3UTJj6RJcmmOzVTjo154lSJfkVgn1XAvELJV/hav44dj6DJdI0Ae6H/YqMszzO4Deffg3nK3oVM750cWAnAMHnm4q2647CXrwP2nJvmM6xnAlLeK6xg0V1xtqbAlmhkZ9AxozX0fG3Zf/e/Np7VMvGa55rSN7MwhqiLir4uhatJ5DliOESq51E3Uj6Ss2X8GAP30QItnv3PD0FUyLzpskatNJTusWHNOxTwmmb5M+ZN7Xt+Vn/y6rVUF6t4RHzacF/8a8W/TM7yMp771D/Q+54SUadmV+yj27wxjF7JeBTIm20KMbuE2rl+wvDKf3EjpowzlfsXjPlYqSl69KTfD5MLnGiSnTHUpdBsCBhM3ahcwwcM/Bh16VU7DchPOvGS3xnMaWspw9Kr0wOA3/sInosoZJ/F/G/J7Vt2wX1Bw5+OrKYAyBXEJCrmkAEQMUyzIhChKTOqqRHV0/Xgq0AiRdmeNOsDfiVWI7hIKSk2osbDynE/0vlBpFhSImoolJJa+3L2BodHSwoBYefN3n0tLb+tf0B7RppyhkxuRXnYns0NqkVOuttbhnBev0v8C+3XnSNw6OcHEJuHvxSz9sDqrg86oMnZTldd0/reNgKd5RfF7jHWG02UCLxq9eVzG7HIgwMZyeLbnBenG54z3qnnT/Rni9BWp5AtZ8FF+xODGang4kK9A61DEUK5016KcCJ/tg0QNi2HfSv/JkyjVNrMgg0GIi9NWk8F/cpjoqUl1L5gmbVetIPB6XNbtN2LOIWy2A7kXXQaSrAvxIiQkCwerXlGe+v2Zic0cpINivg/lZZPD8eh5sdUa/3bYn3lJRArPgGAqmD86qYVIvG1DqTFt3lYFcpqKGbFk/PcptKVPp9IDnVSVzg3ai3L0Jkh7FSVtXJWFocpzroaUnKC4zYApKP4xevc6j5Sq45tKvO8R0yK1ZpxxAeeXPACmzLMOt8rE4ngrIKHVbt8qDmYPMMUZy/Gc4Did8zot28BoXRSpE9R7dfKTqC3zzpPlZtnoHFo94VPxgODLhsK8a3loSI4hRNa/pwB6fKtmLBEi4BlSCfnpa/RpBJ4FS+awu9XHzpRBwtqkXnC5NAlgBLLUUj5+Ib35NeBnc3YZgDYdAzgAfU+ZRvSdF55HQW9nqdUPfpiYBHJIZz86dd0F+J+8rqVVjZIPF1A6wApaAYqPNY7u5oTS3wOCRKp/n0rSYSlFiTeSg0MdGtL8k5A8kkYdUiiXhbAZdAXxtJTyhfteA0rW2ubR0YAZ7mwbCjVuO01JVLK76YP6XQH7/3FkwJEppnIi0FIp6WMgOvayfI1PY13WCIFMR6OuNKG5290CySkS1LjB7VqC4tll6hTIO9K1ap21kj9myTAdg6VjbT2eKCzjm+0Vq7NjNmqYaozFkGXQyQbWhKnqtfbfUNsLZPKqIX4579EMPxG5/eEmG3LX9WRj4YCCrRZIXE918esIvHg3EFLV78sEba1bVnLIUAAyNLUHJc/8ZigAgxWjNs9hnSpIAI5wVJwhL28TXLY6zdoThKm3zP53b+9ZHdhNzno5WY6PnDO0H97ymmMpMEUhjPFQFpj2LyXLEHij/chhuW5+hInjbjmEHR+R6oHiEfGKm3H1iJ4xQTsZGaa6uYLrIZAyWdbKl1Xpz2cgXM8qTApjh91GdB0qePfWxVFjHPTay2159QWuHcgB0utwFw7bdW1czmI6mjwtL4Vo1x8FdekzITVUnRNW0Ochy9JS12O4PEee5zB47aHNlFjngGmnU9sGjxIpqRDOLgf7qFi/777tsMOjAHDKYq8D4Wx76lkWixgxXOXriXcxTVhzKC+YQueXxGkveVWivNo4VGY2Ztf7ovxkPvJZQFZjoRCbE92xXLcV8HaBJFsRp8JOu7XX+sCClWWZn5HU5aO3r2PTk6YpD9+XifMxkWCCm/cbyelEfRPktvw==" - } - ] - }, - "finishReason": "STOP", - "avgLogprobs": -0.24408692330364393 - } - ], - "usageMetadata": { - "promptTokenCount": 8, - "candidatesTokenCount": 828, - "totalTokenCount": 1761, - "trafficType": "ON_DEMAND", - "promptTokensDetails": [ - { - "modality": "TEXT", - "tokenCount": 8 - } - ], - "candidatesTokensDetails": [ - { - "modality": "TEXT", - "tokenCount": 828 - } - ], - "thoughtsTokenCount": 925 - }, - "modelVersion": "gemini-3.1-pro-preview", - "createTime": "2026-04-17T00:58:04.691850Z", - "responseId": "nIXhaYqdKqyA9LsPwLiNqQg", - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'google/gemini-3.1-pro',\n {\n contents: [\n {\n role: 'user',\n parts: [\n {\n text: 'What are the three laws of thermodynamics?',\n },\n ],\n },\n ],\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "With System Instruction", - "description": "Using a system instruction to set context", - "input": { - "contents": [ - { - "role": "user", - "parts": [ - { - "text": "How do I read a JSON file in Python?" - } - ] - } - ], - "systemInstruction": { - "parts": [ - { - "text": "You are a helpful coding assistant specializing in Python." - } - ] - }, - "generationConfig": { - "temperature": 0.3 - } - }, - "output": { - "text": "To read a JSON file in Python, you can use the built-in `json` module. \n\nHere is the most common and standard way to do it:\n\n### Basic Example\n\nAssuming you have a file named `data.json`, here is how you read it:\n\n```python\nimport json\n\n# Open the file in read mode\nwith open('data.json', 'r', encoding='utf-8') as file:\n # Load the JSON data into a Python dictionary\n data = json.load(file)\n\n# Now you can use 'data' like a normal Python dictionary\nprint(data)\n```\n\n### How it works:\n1. **`import json`**: Imports Python's built-in JSON library.\n2. **`with open(...) as file:`**: Opens the file safely. Using `with` ensures that the file is automatically closed after it is read, even if an error occurs. Adding `encoding='utf-8'` is a best practice to prevent errors with special characters.\n3. **`json.load(file)`**: Reads the file and converts the JSON data into the corresponding Python object (usually a dictionary or a list).\n\n---\n\n### Advanced Example (with Error Handling)\n\nIf you want to write robust code, it is a good idea to handle potential errors, such as the file not existing or the JSON being formatted incorrectly:\n\n```python\nimport json\n\nfile_path = 'data.json'\n\ntry:\n with open(file_path, 'r', encoding='utf-8') as file:\n data = json.load(file)\n print(\"Successfully read JSON data!\")\n \nexcept FileNotFoundError:\n print(f\"Error: The file {file_path} was not found.\")\nexcept json.JSONDecodeError:\n print(f\"Error: The file {file_path} does not contain valid JSON.\")\n```\n\n### A Quick Note: `load()` vs `loads()`\n* Use **`json.load()`** (no 's') when reading directly from a **file**.\n* Use **`json.loads()`** (with an 's' for string) if you are reading JSON from a **string variable** in your code." - }, - "raw_response": { - "candidates": [ - { - "content": { - "role": "model", - "parts": [ - { - "text": "To read a JSON file in Python, you can use the built-in `json` module. \n\nHere is the most common and standard way to do it:\n\n### Basic Example\n\nAssuming you have a file named `data.json`, here is how you read it:\n\n```python\nimport json\n\n# Open the file in read mode\nwith open('data.json', 'r', encoding='utf-8') as file:\n # Load the JSON data into a Python dictionary\n data = json.load(file)\n\n# Now you can use 'data' like a normal Python dictionary\nprint(data)\n```\n\n### How it works:\n1. **`import json`**: Imports Python's built-in JSON library.\n2. **`with open(...) as file:`**: Opens the file safely. Using `with` ensures that the file is automatically closed after it is read, even if an error occurs. Adding `encoding='utf-8'` is a best practice to prevent errors with special characters.\n3. **`json.load(file)`**: Reads the file and converts the JSON data into the corresponding Python object (usually a dictionary or a list).\n\n---\n\n### Advanced Example (with Error Handling)\n\nIf you want to write robust code, it is a good idea to handle potential errors, such as the file not existing or the JSON being formatted incorrectly:\n\n```python\nimport json\n\nfile_path = 'data.json'\n\ntry:\n with open(file_path, 'r', encoding='utf-8') as file:\n data = json.load(file)\n print(\"Successfully read JSON data!\")\n \nexcept FileNotFoundError:\n print(f\"Error: The file {file_path} was not found.\")\nexcept json.JSONDecodeError:\n print(f\"Error: The file {file_path} does not contain valid JSON.\")\n```\n\n### A Quick Note: `load()` vs `loads()`\n* Use **`json.load()`** (no 's') when reading directly from a **file**.\n* Use **`json.loads()`** (with an 's' for string) if you are reading JSON from a **string variable** in your code.", - "thoughtSignature": "CvMRAY89a18FbXEddL8DanEpuPCn/i+5iM1SQjc0uDlyNyMluXp5ptu6txVx+5MaOceIyg/Y7qf9kL3tVpU4KBTvfWIgZxEK9JUi033jn/nLasOEbI94nT+sycFp+s+7ogv+sE6AL1wl2RNITCBM/pP/rxn47zEKHaq6432qCLrp+5AU8QM7T84TAZJYZi5+hq6tKp4jcuFuJ1paSmF6ibHTTznxd6FTMcayJSIf3F5gH0B/89vUf3l62rseMpM+kDgz/D4r43Lpg8RIl74D714K1uvuyeUUL9E9TnK6n8EPXkyaz3O/Pcn5uwNQcPVf+UsbLXx96JvMqI4K/WdkDQoS0pRXie6yWvwkdN4CKAsx2Ovcu3w/TOhs4iizEAbf+6TUuQnJaX78xYmXQ/aG+NfP85egxa4KMqth++MncCbbJjrvSrxTKG0IkJN90oRAy7zKItLBUGQJf6sq3sGdaWvbutfipAeZQPM4VWySW3gJmtNHf28w00FcLenv0g90c0sNLDeovz/bNAblrp75CC1C3pXCwWV0Fp1r60lRmOD012aQ3zJ+vMKD/yYV/ZQuYIgu7bS9tMFNYG+DWI4ZJl0CXWQg50XfDQu5eJEUnPhNCx2uiVeJPm8ShA62huUjsF5nCezXLXCR3t+4jHoIiOZ4GYO/nNU0fqBWRd7xXDHkWFKbOZlpJCFzuQ60jWSSMZWOl6NE3Oo6+yoghUmM6NpSL3y2EY1Lh2jtyHTvMZFmL3mqnkeehB3zNOzbAx1YGUXP3JMF5pD/TGNSYRpSbMVBjqxvRsTSVByg8+s9aeqA2FFHipoz99CaOTX5e24us51QyhilYgUsPj+vKMusLWWySeXW2fRpjQFMA/uJBKgAYwLIZTvJobHq7K7v23g+gY50j+hJzhGsw0anyrc9dUNixGaRF9Wn1QX7AAOTFNe0er44lEDxww4tL0LyQ/RzKcDkiuSg+lbDXBpWiRYNEzCeNMIx4cmMS1KqcpP6qWoMtPoxApzdv3mUI9QUPwm24R/+gHsou11vwFO1KrQdgZHAFlBNWk4lUAeRANHkyXpXd1EDO7a7WYneAXaCa+ibaCgI3WysraCrBROEaZ4QonBBy2s/ZMvxe08HTkBA90apP3MH6ZySscbEHueBeTqTTTpK0agYMx4DWGYLxFREas10ZQ3d54WTl/faQNKx/vODmm2Xx85gRYcwWcjCnZ/yghm6x4YntbFRKytE0B2xgtVRC8yxGS1SwhORV4vBzSSLthKbSem4hD2fRFX1ArsfLhKt2iCUJFlt9iEAR3/o2acBAN+C+uJr4JeHrub7IVBDIyA4ROT6q9xejUL6qbngM4StDZdGUSh9lenJHazLII1ZBpFbBks7Oz3B0MOSgtdzMCtGfRJ4h6VgE4MRXdwllyOTiFWaMrEjDQPTW6KxN1qTcEU+Yp1+JFQ9e3ptzJFHhyr4Ug74DevNXlTqGEXtSO2xs8UttWpBPZydjTj36BJSvVqxAGjBE2qixeWdNTfq4aIi4GxZbzWIuFDdKXOibV4DBD9U1MoClNpODBo+J36OViDxOam9rGl3s0Mrze+lWHn3mfeu07J4GfeDaWiPDX5o09E7oiy7/K6sjlk9w4Lxh48oHGDsTlBZebdWqUY9KN4W/IIZD7BmA3Sixxf5xOx5ei5QYOl0z87mUvVj2waAK/jwVI0hLnwq4w3hOPJbu3jqMhzG3XynnEzBs31m+36rM7G1GfZMUa2FQ042m5GQEblrG4DsgmxChJlMJKQpBb6bx5HYGkZSnFo8FKaqrHmiI+QR5rbhJmna7XF542+0I1RaOA7e+uoUj6vJyKNMmEo0UssFsp6p1dZuyOOh/c+uu6APtkPPLASa+fFcb4Cg8HFEqEZdR4PS5prAI3t9gOVNspUye3BC6qO3bdWLheByIemvBoGzDRF8LfM86KG+ucI1mNvJus9KkwIDSEsQhGASriT5JMz/boAGCIUNLVJxRXBxzjXy2jCn4Nu0wIVqFjPuzAkL21V0Qg4ixFAdtEh0RZ3x6WJaE8nv1VpLGdc+8xvQ1Z76DlNxi3VO7jGzLiN2J2p50poOqZi/CS/DtucLMBb2+Hjc9a8epYTbQEs3NJXe1qHcwtAiZV13w6NaAMoHGp409Sa/FBkNSKfIortOjU3qFHc3/YhNjZmJsGQIJQO6m6f9AGLtuPBN4Hr1EOBAE5/Un/qno4cTSZ5Zdeu5CUHC0McF8JDQA3INXhPcI9SOEEIApdW/F5ra5OdAAVj/Ty3TFFz8EHGtZ4lb2pgIJGbt12knErkTsaE6w332+B2fYdn4klVt5D47X7SJvLnolaIylr+DJu3UsaF+SSAcnK8TVboL0PneUam8y33LdUnNSEYcXamz0Np6fhKvNaH1akXWmRe6//IonPJkFYYtKD93DVsb3cv+cLQUEwRCspMMRs8xkOd1TcTDlFvuZeCElaCn7PQZkfvZu8/sl/iBGVfaw+G+KWY/RiepvySXgkuJiRE/TL7exVW0HrQhT3Nwb5lzLpVsSSoCR6zXvzzzwEir7vWHWAPzZ0vtNzLTLF0NXnoXyleUrzaHn5p6qwuMC2vAOsWAiXznOK/HQ5/6f6pCMi+pO9gbE7pmjKb0KJe6/IzJ/YiQUjL02QkZuxpVwmPp00E7SqTCSnH+CKeLRX+OISyg2DouMKc3zFbHGurdgoGyu3jA+/rc202vGVoUP7ILNemOlM4SybNbB6Qfspe67iSxrkNMuV+u0pAi+mDaZMA7tMIuHAUvc9fee3jb0RzrYb16ehqycrYD1RsW7IWkKve+BGJGya9JdTs7ioqXB9kNx/FV91z8tlO7EHLTixVs4REh0rMF4N7ENilT6peJ4gy0pKj6E0FA7DflHRxmKUqF5rBQOdCQqnDUvz6E63P7RLzcrNilV6N62FHdzTKtNxVDp774HYwdHyX3QBGqg086IUOZTptRdwDUmNyNHAZKKyGnJZufG60gk4V3dsueWLnYQdzyH7g6AMIygwg3+Zv5sWGz9hh5szhVVDbh4k/wVqYiTTMmTCD3CfqS0WU=" - } - ] - }, - "finishReason": "STOP", - "avgLogprobs": -0.13193573454933058 - } - ], - "usageMetadata": { - "promptTokenCount": 20, - "candidatesTokenCount": 478, - "totalTokenCount": 1088, - "trafficType": "ON_DEMAND", - "promptTokensDetails": [ - { - "modality": "TEXT", - "tokenCount": 20 - } - ], - "candidatesTokensDetails": [ - { - "modality": "TEXT", - "tokenCount": 478 - } - ], - "thoughtsTokenCount": 590 - }, - "modelVersion": "gemini-3.1-pro-preview", - "createTime": "2026-04-17T00:58:06.706819Z", - "responseId": "noXhaYOSK5eDpucP34WHiQw", - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'google/gemini-3.1-pro',\n {\n contents: [\n {\n role: 'user',\n parts: [\n {\n text: 'How do I read a JSON file in Python?',\n },\n ],\n },\n ],\n systemInstruction: {\n parts: [\n {\n text: 'You are a helpful coding assistant specializing in Python.',\n },\n ],\n },\n generationConfig: {\n temperature: 0.3,\n },\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Multi-turn Conversation", - "description": "Continuing a conversation with context", - "input": { - "contents": [ - { - "role": "user", - "parts": [ - { - "text": "I need help planning a road trip from San Francisco to Los Angeles." - } - ] - }, - { - "role": "model", - "parts": [ - { - "text": "I'd be happy to help! The drive is about 380 miles and takes roughly 5-6 hours. Would you like suggestions for scenic routes or interesting stops along the way?" - } - ] - }, - { - "role": "user", - "parts": [ - { - "text": "Yes, what are some good places to stop?" - } - ] - } - ], - "generationConfig": { - "maxOutputTokens": 500 - } - }, - "output": { - "text": "The best stops really depend on which route you decide to take! There are three" - }, - "raw_response": { - "candidates": [ - { - "content": { - "role": "model", - "parts": [ - { - "text": "The best stops really depend on which route you decide to take! There are three", - "thoughtSignature": "CusNAY89a19w9AIPxKvbuUfUkzudgllnysvy8j4JkhUnfV4d8zcWGgZVCvhWZ8xsql7I+NdLOdBBpJqblTboQ3qA9Rc6Ct/JVFDAbrHhaICZPhI2fJCWrpyOgJbvFqxGy9CGAjIP2B4N+Ani9Zo4Gbhg/BWiz9Gxi/+owOUubc39d5QNdXrJsinP/9eLZ3tAhidZFMOaOXIw8N5d6V0AyTTjXpISAeJpjUT8KX/gfGcSwDyntIxikcCltG49TqR3AKkcJJvGpS2u5dUpLvjETIte2NmVeTVjDoNhrUOLa37W3u83+N/4+PygOjLvCUlEmuE+9uftsxZ3KQRw6QNbWRhkcIlXUOfo6juiLes+xsdDfTAGNQVy/CXbmEAvHjRueHhbWKXljT1090FYdE6rHvd3yllxR1uw026zI/pt33wI2mwYmUvqqlUEgIkBYnb9/Fn9c5wNGwgAcI5TQUfEpulB7iGcu2zNFluD6No1dim+UuD1OtOFREKmU1PzB5Uyo2DplK5RoZWS7Cz2yZwo+JNY6Jeo1c7E2VQ70zBtDA8tqv6f6u6RA7XjPmJkHlCDCpfUn9qppJrSPHCMJU0MxlWOmHSRjZi5LDMxeIod1nR/Yq8FAy34nVAmIKvSImp+XSArwVwhxUt3LRSvYomwBe6k0juHZWJiUbGdVD3aADRKy186gyuwxDd8SHce3GSLgUqIIpZwht3OnVFL9deoBJivID1f5OmM4S+fgH7vv7555OEZeQGq3qMKWyfnJL/rMwZb56LR57hHZiW4DarDK4yaxJLkIEtosdIYk9g8i9Gh+apP4qM2qg0DqWLfX925cKXc/3RZ34ePvFIou11f9jNYQb/c2oumpiaJIu6l648BsVPiwGOU4nqsG0mMf0zL7QcLKu7rsab/e/W0dOjRvnREZ8Nk1ycygIms/+aMSJePqgj4UXAUOuw61cfBUHgo+yCC7QsyEevx6Rwjs4pEMgIxCib6Ngyk/Yq4vp1cvIjl7B9xKKKWZJWcUgQZGN2ntUr/pI7tEux8na2qOwTAp4e6U8tj/47PKTPIBG8m9/onanvXpB7uEWcVo6ZRmVDWlJ3Pb1G8p1Xxn0oxw6qijbu5+RLl0KJGrwGmBkpdthLQWcwRZtqOWZot0ktcEgsgwxWLb5P0giDp8H6CF6XkznHpCksKkIBFBHwHKMVBRUJGcvw+vvgF98aqDjEsfuz0KppeAanxt+iAuWL9HQ9S7am5PciDZV16giKgWVotkMp5MdhCzt7ikNmXLA0phADtvphL+z8ii2NPPneGe8OQCAJgVCDLYKq14WNYcXjTd3MfkXVFpDk/ognvYjfR53v4h2Pff6M+WNVw80E1XVDp8Tn4la+khJIqvLocEEDmhx4eKusjuEGypnAHZEIchVdFLjD7eEcvA69u5iGidjGdAvL7d8+ThjIa5ztrjoeQXnystbvNL+R2HVKBT1FADMltaP+WCTUbFkR9z99CfSks3sxn2XJ+X4vpDUIa99S64F9FWsZ2nAidRQcYspT5JLsmoqfBu2chMJyEWkhZyoVeV0tLyUpeD7LYzaQuYDE5Gdd16s+dtYGeHL5vq9GWhzNI0X7MhbQuoa9WqDZEdU78arTXWleNVvcxVcPFM9i4Varb/RZvybBEaq5axv2ueA1o/koAMV/kRSdA9sTZztVQnZfmvUKWidOfuPyBNsuzEKQhjSYvHs+MjHtIjpcxm0wEqJk63ID5xKN2jJZcw93lZgjxnrcWUP6DCdscngS8pKfJ6EN7+E3dS0Z+3BSJTqwNq/K6YCt27Fz8XRa5LUgB16ys4FE71ksjKn58+anwZClStWXJ1eck4O8TynLS63Y+MGsoFT+O+Ob+yki4hlTviMMUeZ1/8c0vKcBy+AmENJDWIec0l5cE9BUMOeiL2W4FDDVW/zKiEa/TfxKh0m/cS6JPdlv/WaoIIZ9A1KXZxVOfoG+sJ6OBO2EhBF9aQJrRhxWCShQ8CmzwXKqbOk4lmvW2j/xvyhT/aAavMs8IYn74r9hO4Sr4MCAnMZMF7gqCsFkOmDj0iJpv50VCxOGZ2Liob3H6yhrZXh82nwqW5yfWoVSpbR4LLv+ZlL0Aw79u+yBt6mjBO6M6DBHJXQTdaaHiPkBm19D1NPB3Gi1VPrBPeq/AJxSb4ahf3A7Vai25qfjFOAHHa0ahKlk6thrcciVCBPUEdopvOZpVBdGCrG1eRKrXlkDh90lGxYm1DTeOYnStVptnCCa/EFyiVjvHExP1G3it7bSVM669oiyxG3DFmd0qVnpmASdHFs0/I1QOj2aoyTDXXYEx2RQs/Z1U4HlIm9xLami9knqkDaQQZufXj+LGDdAnmwv9XN+CCQ==" - } - ] - }, - "finishReason": "MAX_TOKENS", - "avgLogprobs": -8.212950519499952 - } - ], - "usageMetadata": { - "promptTokenCount": 64, - "candidatesTokenCount": 16, - "totalTokenCount": 560, - "trafficType": "ON_DEMAND", - "promptTokensDetails": [ - { - "modality": "TEXT", - "tokenCount": 64 - } - ], - "candidatesTokensDetails": [ - { - "modality": "TEXT", - "tokenCount": 16 - } - ], - "thoughtsTokenCount": 480 - }, - "modelVersion": "gemini-3.1-pro-preview", - "createTime": "2026-04-17T00:58:22.165603Z", - "responseId": "roXhaeONCsmApucP_8_n-Qc", - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'google/gemini-3.1-pro',\n {\n contents: [\n {\n role: 'user',\n parts: [\n {\n text: 'I need help planning a road trip from San Francisco to Los Angeles.',\n },\n ],\n },\n {\n role: 'model',\n parts: [\n {\n text: \"I'd be happy to help! The drive is about 380 miles and takes roughly 5-6 hours. Would you like suggestions for scenic routes or interesting stops along the way?\",\n },\n ],\n },\n {\n role: 'user',\n parts: [\n {\n text: 'Yes, what are some good places to stop?',\n },\n ],\n },\n ],\n generationConfig: {\n maxOutputTokens: 500,\n },\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Creative Writing", - "description": "Higher temperature for creative output", - "input": { - "contents": [ - { - "role": "user", - "parts": [ - { - "text": "Write a short story opening about a detective finding an unusual clue." - } - ] - } - ], - "generationConfig": { - "temperature": 0.8, - "maxOutputTokens": 300 - } - }, - "output": { - "text": "The air in Elias Vance\u2019s apartment smelled of stale copper" - }, - "raw_response": { - "candidates": [ - { - "content": { - "role": "model", - "parts": [ - { - "text": "The air in Elias Vance\u2019s apartment smelled of stale copper", - "thoughtSignature": "Cq4JAY89a182dWgWqxl+2ki63AHSyM5ZH2lCKULPaq6FwVzqU8cjzEuUMCW+PtvlWb4o8I43mjINtaopb+0gfW34S3B+T/ho11F45VvPlOtThgRHYzNW380UwBnoDc95tH/lYRrI05dWolDbmYq6VlbJBzyuXa4KSRkQsPdgsaRRylO8j738BXvyGMuiKcPRRtm+5ZL6M1oeqKrGGu1Z9ye9f1ZiO5bX105o2QZwnJ3muHcraACV86Hn11Au6iEnhpoN94OzVxn4b9Gun97TLdAHA4PSI0zmVuo1twzc3Ai9ELnr79qMrHzi1FL/E3WG+zh8pftb5kpQHGpIW4VCvUXr0nPaswhuCCBFMc7sGrTG/9FnreK5QPQKKU+C1F+WojRr3k9ReZ36VAib4CqW8Y23JsUhup3OjwoU++C5g2PeVZF5l38VqzJTvLYHp4RKzKr3fYUsg5l0Rl3o7eHQ+/BXU5mdNbEmlvDHzHbpayGSDhGlxDjBBAAwclf/XM+6kNGIg9p0EcOS8kOmw+PqrRF09uLiuVceXYflgMbUT2g314LC7Gzmfygtd9XCNrl6lnYPoZZirjGax+14OL+/m6+BIZPT/HXyyy6EZn9yHpSRWkIpR8mbmclANJDPB1RmM9M67YzeZ4aenNZV3V0Kh9vSHgimXjuz3FkwINi+wxpErzFHsnbGtuBJv6xjl9jKa0DAq4FU/V1u5hjv1Z6K2uLEUtx67Ol9ojrd5AECXhhw1U1ytmPz1Enly3kNciGIprAHFa3/eWT+maYFNMbCHKCULAwEVzb2m3H6fCnMRyEXMQCFcbZ+QXDN+zUd1Hc7xsRw7u2fZloeR6/KVVlqN//4mefFy4HFGFjqpTCIPuUtpLwDDExWWDQqZHwnJy5xQhgT1MxpugXaCFWMkQIO6mOZbBLd+4LP1VR2ObW4e0kiFcuriJbpg/z2gzd3aQB3bbj2ufBBm2QffRzdu6pqCGHw1UICot926fux2fzFRf8ReF3ZVdcA4QeJzVuQe68wNtsSB+6bjp8O0/G+opcgy5GpjDbtfcqOM3h2dTshksC9LULh8WFxzxUZ9WxNoyjcITHqm5xoU3fZw0vAbyTPDEI9GtqcxNFvuhs266Z5FPlqoCGBFGbjViesqZaP0juB9q4N+WWF34Od8igXBWwYs8My+WM5Zce0eKwWp47UY3wAmpjVKimsNzI5lSES3o+72mW8garA6O0Cv+1lVXyqPKC2QdOim+CLxJyjwY/NZWVYy5b5hMHI+LRwhOIk4HXMZHejry53BQCLCyPhfhg81fVykTiAcwr4cs74aHbXb8C5514wpJwFQ1MeU4z5cCfTp9t/4ot7PeQbC8+HCTpO57m4rRdNpoEwzOGNezElnvf4nNzK/E2dv3uHxevjTyR23OQbB9l9MzZbKWqidlfJfzP5/YwAfy1a+vi7bbqvLSeIVwKHl5Yz6qz7VV2kJEigbG8DNJg8RrAtV8nz8kLg/LZgrtlkqAn4AaeAwwKer0OH33c+rREg8XVSPAoFKZHluqICy7xqzx3mD9rhgg7WUrXJYrcfEdGUGHjOLW4mtyaYOFhkMf1AhtblZpQTrAHb9w==" - } - ] - }, - "finishReason": "MAX_TOKENS", - "avgLogprobs": -7.339017173991171 - } - ], - "usageMetadata": { - "promptTokenCount": 13, - "candidatesTokenCount": 12, - "totalTokenCount": 309, - "trafficType": "ON_DEMAND", - "promptTokensDetails": [ - { - "modality": "TEXT", - "tokenCount": 13 - } - ], - "candidatesTokensDetails": [ - { - "modality": "TEXT", - "tokenCount": 12 - } - ], - "thoughtsTokenCount": 284 - }, - "modelVersion": "gemini-3.1-pro-preview", - "createTime": "2026-04-17T00:58:27.814075Z", - "responseId": "s4XhafvXMemVq8YPzcOY0Qg", - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'google/gemini-3.1-pro',\n {\n contents: [\n {\n role: 'user',\n parts: [\n {\n text: 'Write a short story opening about a detective finding an unusual clue.',\n },\n ],\n },\n ],\n generationConfig: {\n temperature: 0.8,\n maxOutputTokens: 300,\n },\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - } - ], - "supports_async": false, - "external_info": "https://deepmind.google/technologies/gemini/", - "terms": "https://ai.google.dev/gemini-api/terms", - "cover_image_url": "https://pub-26f1392c1b674324be6786695bd72257.r2.dev/google/gemini-3.1-pro.png", - "metadata": { - "Architecture": "Transformer (multimodal)", - "Thinking": "Yes (medium level)" - }, - "created_at": "2026-04-13 16:46:29", - "default_example": null, - "code_snippets": [], - "zdr": false, - "zdr_comment": null, - "schema": { - "input": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "contents": { - "type": "array", - "items": { - "type": "object", - "properties": { - "role": { - "type": "string", - "enum": [ - "user", - "model" - ] - }, - "parts": { - "type": "array", - "items": { - "type": "object", - "properties": { - "text": { - "type": "string" - } - }, - "additionalProperties": {} - } - } - }, - "required": [ - "parts" - ], - "additionalProperties": {} - } - }, - "systemInstruction": { - "type": "object", - "properties": { - "parts": { - "type": "array", - "items": { - "type": "object", - "properties": { - "text": { - "type": "string" - } - }, - "additionalProperties": {} - } - } - }, - "required": [ - "parts" - ], - "additionalProperties": {} - }, - "generationConfig": { - "type": "object", - "properties": { - "temperature": { - "type": "number" - }, - "topP": { - "type": "number" - }, - "topK": { - "type": "number" - }, - "maxOutputTokens": { - "type": "number" - }, - "candidateCount": { - "type": "number" - }, - "stopSequences": { - "type": "array", - "items": { - "type": "string" - } - }, - "responseMimeType": { - "type": "string" - } - }, - "additionalProperties": {} - }, - "safetySettings": { - "type": "array", - "items": { - "type": "object", - "properties": { - "category": { - "type": "string" - }, - "threshold": { - "type": "string" - } - }, - "required": [ - "category", - "threshold" - ], - "additionalProperties": {} - } - }, - "tools": { - "type": "array", - "items": {} - }, - "toolConfig": {} - }, - "required": [ - "contents" - ], - "additionalProperties": {} - }, - "output": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "candidates": { - "type": "array", - "items": {} - }, - "usageMetadata": { - "type": "object", - "properties": { - "promptTokenCount": { - "type": "number" - }, - "candidatesTokenCount": { - "type": "number" - }, - "totalTokenCount": { - "type": "number" - } - }, - "additionalProperties": {} - }, - "modelVersion": { - "type": "string" - } - }, - "additionalProperties": {} - } - } -} diff --git a/src/content/catalog-models/google-imagen-4.json b/src/content/catalog-models/google-imagen-4.json deleted file mode 100644 index 413eeecd4fe1969..000000000000000 --- a/src/content/catalog-models/google-imagen-4.json +++ /dev/null @@ -1,215 +0,0 @@ -{ - "model_id": "google/imagen-4", - "provider_id": "google", - "name": "Imagen 4", - "description": "Google's latest image generation model producing high-quality, photorealistic images from text prompts with support for multiple aspect ratios.", - "task": "Text-to-Image", - "tags": [ - "Image Generation", - "High Quality", - "Photorealistic" - ], - "context_length": null, - "max_output_tokens": null, - "schema_version": "1.0.0", - "examples": [ - { - "name": "Simple Generation", - "description": "Basic text-to-image with just a prompt", - "input": { - "prompt": "A golden retriever puppy playing in autumn leaves" - }, - "output": { - "image": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/google__imagen-4/simple-generation.png" - }, - "raw_response": { - "state": "Completed", - "result": { - "image": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/google__imagen-4/simple-generation.png" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'google/imagen-4',\n {\n prompt: 'A golden retriever puppy playing in autumn leaves',\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Widescreen Landscape", - "description": "Generate a widescreen landscape image", - "input": { - "prompt": "A dramatic drone shot of a winding river through an autumn forest, warm golden and red tones", - "aspect_ratio": "16:9" - }, - "output": { - "image": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/google__imagen-4/widescreen-landscape.png" - }, - "raw_response": { - "state": "Completed", - "result": { - "image": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/google__imagen-4/widescreen-landscape.png" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'google/imagen-4',\n {\n prompt:\n 'A dramatic drone shot of a winding river through an autumn forest, warm golden and red tones',\n aspect_ratio: '16:9',\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Portrait Format", - "description": "Vertical portrait-style image", - "input": { - "prompt": "An elegant Art Deco poster featuring a jazz singer under a spotlight", - "aspect_ratio": "9:16" - }, - "output": { - "image": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/google__imagen-4/portrait-format.png" - }, - "raw_response": { - "state": "Completed", - "result": { - "image": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/google__imagen-4/portrait-format.png" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'google/imagen-4',\n {\n prompt:\n 'An elegant Art Deco poster featuring a jazz singer under a spotlight',\n aspect_ratio: '9:16',\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "With People", - "description": "Allow generation of adult people", - "input": { - "prompt": "A chef preparing sushi in a traditional Japanese kitchen, detailed close-up", - "person_generation": "allow_adult" - }, - "output": { - "image": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/google__imagen-4/with-people.png" - }, - "raw_response": { - "state": "Completed", - "result": { - "image": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/google__imagen-4/with-people.png" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'google/imagen-4',\n {\n prompt:\n 'A chef preparing sushi in a traditional Japanese kitchen, detailed close-up',\n person_generation: 'allow_adult',\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Product Photo", - "description": "Square product photography", - "input": { - "prompt": "A sleek wireless headphone on a minimalist white marble surface with soft studio lighting", - "aspect_ratio": "1:1" - }, - "output": { - "image": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/google__imagen-4/product-photo.png" - }, - "raw_response": { - "state": "Completed", - "result": { - "image": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/google__imagen-4/product-photo.png" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'google/imagen-4',\n {\n prompt:\n 'A sleek wireless headphone on a minimalist white marble surface with soft studio lighting',\n aspect_ratio: '1:1',\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - } - ], - "supports_async": false, - "external_info": "https://deepmind.google/technologies/imagen/", - "terms": "https://ai.google.dev/gemini-api/terms", - "cover_image_url": "https://pub-26f1392c1b674324be6786695bd72257.r2.dev/google/imagen-4.png", - "metadata": { - "Aspect Ratios": "1:1, 3:4, 4:3, 9:16, 16:9", - "Person Generation": "Configurable (dont_allow, allow_adult, allow_all)" - }, - "created_at": "2026-04-14 18:41:41", - "default_example": null, - "code_snippets": [], - "zdr": false, - "zdr_comment": null, - "schema": { - "input": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "prompt": { - "description": "Text prompt describing the image to generate", - "type": "string" - }, - "aspect_ratio": { - "description": "Aspect ratio of the generated image", - "type": "string", - "enum": [ - "1:1", - "3:4", - "4:3", - "9:16", - "16:9" - ] - }, - "person_generation": { - "description": "Allow the model to generate images of people. dont_allow: block people, allow_adult: adults only, allow_all: adults and children", - "type": "string", - "enum": [ - "dont_allow", - "allow_adult", - "allow_all" - ] - } - }, - "required": [ - "prompt" - ], - "additionalProperties": false - }, - "output": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "image": { - "description": "URL to the generated image", - "type": "string", - "format": "uri" - } - }, - "required": [ - "image" - ], - "additionalProperties": false - } - } -} diff --git a/src/content/catalog-models/google-nano-banana-2.json b/src/content/catalog-models/google-nano-banana-2.json deleted file mode 100644 index d77b909f13615cd..000000000000000 --- a/src/content/catalog-models/google-nano-banana-2.json +++ /dev/null @@ -1,214 +0,0 @@ -{ - "model_id": "google/nano-banana-2", - "provider_id": "google", - "name": "Nano Banana 2", - "description": "Google's second-generation image generation model with improved quality and speed.", - "task": "Text-to-Image", - "tags": [ - "Image Generation", - "Fast", - "High Quality" - ], - "context_length": null, - "max_output_tokens": null, - "schema_version": "1.0.0", - "examples": [ - { - "name": "Futuristic City", - "description": "Sci-fi cityscape with neon lights", - "input": { - "prompt": "A futuristic cyberpunk city at night with towering skyscrapers, neon signs in Japanese and English, flying cars, and rain-slicked streets reflecting colorful lights", - "aspect_ratio": "16:9" - }, - "output": { - "image": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/google__nano-banana-2/futuristic-city.png" - }, - "raw_response": { - "state": "Completed", - "result": { - "image": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/google__nano-banana-2/futuristic-city.png" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'google/nano-banana-2',\n {\n prompt:\n 'A futuristic cyberpunk city at night with towering skyscrapers, neon signs in Japanese and English, flying cars, and rain-slicked streets reflecting colorful lights',\n aspect_ratio: '16:9',\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Abstract Art", - "description": "Modern abstract expressionist painting", - "input": { - "prompt": "An abstract expressionist painting with bold splashes of cobalt blue, crimson red, and gold leaf accents on a large canvas", - "aspect_ratio": "1:1", - "output_format": "png" - }, - "output": { - "image": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/google__nano-banana-2/abstract-art.png" - }, - "raw_response": { - "state": "Completed", - "result": { - "image": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/google__nano-banana-2/abstract-art.png" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'google/nano-banana-2',\n {\n prompt:\n 'An abstract expressionist painting with bold splashes of cobalt blue, crimson red, and gold leaf accents on a large canvas',\n aspect_ratio: '1:1',\n output_format: 'png',\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "With Google Search", - "description": "Use web search grounding for current events", - "input": { - "prompt": "An illustration of the latest Mars rover exploring the Martian surface", - "aspect_ratio": "16:9", - "google_search": true - }, - "output": { - "image": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/google__nano-banana-2/with-google-search.png" - }, - "raw_response": { - "state": "Completed", - "result": { - "image": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/google__nano-banana-2/with-google-search.png" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'google/nano-banana-2',\n {\n prompt:\n 'An illustration of the latest Mars rover exploring the Martian surface',\n aspect_ratio: '16:9',\n google_search: true,\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "High Resolution Portrait", - "description": "4K portrait with specific aspect ratio", - "input": { - "prompt": "A professional studio portrait of a woman with dramatic side lighting, wearing elegant jewelry", - "aspect_ratio": "3:4", - "output_format": "jpg", - "resolution": "4K" - }, - "output": { - "image": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/google__nano-banana-2/high-resolution-portrait.jpg" - }, - "raw_response": { - "state": "Completed", - "result": { - "image": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/google__nano-banana-2/high-resolution-portrait.jpg" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'google/nano-banana-2',\n {\n prompt:\n 'A professional studio portrait of a woman with dramatic side lighting, wearing elegant jewelry',\n aspect_ratio: '3:4',\n output_format: 'jpg',\n resolution: '4K',\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - } - ], - "supports_async": false, - "external_info": "https://deepmind.google/technologies/imagen/", - "terms": "https://ai.google.dev/gemini-api/terms", - "cover_image_url": "https://pub-26f1392c1b674324be6786695bd72257.r2.dev/google/nano-banana-2.png", - "metadata": { - "Output Format": "JPEG" - }, - "created_at": "2026-04-08 22:03:11", - "default_example": null, - "code_snippets": [], - "zdr": false, - "zdr_comment": null, - "schema": { - "input": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "prompt": { - "type": "string" - }, - "image_input": { - "maxItems": 3, - "type": "array", - "items": { - "type": "string" - } - }, - "aspect_ratio": { - "type": "string", - "enum": [ - "match_input_image", - "1:1", - "2:3", - "3:2", - "3:4", - "4:3", - "4:5", - "5:4", - "9:16", - "16:9", - "21:9" - ] - }, - "output_format": { - "type": "string", - "enum": [ - "jpg", - "png" - ] - }, - "resolution": { - "type": "string", - "enum": [ - "1K", - "2K", - "4K" - ] - }, - "google_search": { - "type": "boolean" - }, - "image_search": { - "type": "boolean" - } - }, - "required": [ - "prompt" - ], - "additionalProperties": false - }, - "output": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "image": { - "type": "string", - "format": "uri" - } - }, - "required": [ - "image" - ], - "additionalProperties": false - } - } -} diff --git a/src/content/catalog-models/google-nano-banana-pro.json b/src/content/catalog-models/google-nano-banana-pro.json deleted file mode 100644 index 36cc7f429437a68..000000000000000 --- a/src/content/catalog-models/google-nano-banana-pro.json +++ /dev/null @@ -1,207 +0,0 @@ -{ - "model_id": "google/nano-banana-pro", - "provider_id": "google", - "name": "Nano Banana Pro", - "description": "Google's higher-quality image generation model with improved detail and prompt adherence.", - "task": "Text-to-Image", - "tags": [ - "Image Generation", - "High Quality" - ], - "context_length": null, - "max_output_tokens": null, - "schema_version": "1.0.0", - "examples": [ - { - "name": "Product Photography", - "description": "Professional product shot", - "input": { - "prompt": "A sleek modern wireless headphone on a minimalist white marble surface with soft studio lighting and subtle shadows", - "aspect_ratio": "1:1", - "output_format": "png" - }, - "output": { - "image": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/google__nano-banana-pro/product-photography.png" - }, - "raw_response": { - "state": "Completed", - "result": { - "image": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/google__nano-banana-pro/product-photography.png" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'google/nano-banana-pro',\n {\n prompt:\n 'A sleek modern wireless headphone on a minimalist white marble surface with soft studio lighting and subtle shadows',\n aspect_ratio: '1:1',\n output_format: 'png',\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Fantasy Illustration", - "description": "Epic fantasy scene", - "input": { - "prompt": "An epic fantasy illustration of a wizard casting a spell in an ancient library, magical runes floating in the air, dust motes catching golden light streaming through stained glass windows", - "aspect_ratio": "16:9", - "image_size": "2K" - }, - "output": { - "image": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/google__nano-banana-pro/fantasy-illustration.png" - }, - "raw_response": { - "state": "Completed", - "result": { - "image": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/google__nano-banana-pro/fantasy-illustration.png" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'google/nano-banana-pro',\n {\n prompt:\n 'An epic fantasy illustration of a wizard casting a spell in an ancient library, magical runes floating in the air, dust motes catching golden light streaming through stained glass windows',\n aspect_ratio: '16:9',\n image_size: '2K',\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Architectural Visualization", - "description": "Modern architecture render", - "input": { - "prompt": "A photorealistic architectural visualization of a modern glass house perched on a cliff overlooking the ocean at sunset", - "aspect_ratio": "16:9", - "output_format": "jpg", - "image_size": "4K" - }, - "output": { - "image": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/google__nano-banana-pro/architectural-visualization.jpg" - }, - "raw_response": { - "state": "Completed", - "result": { - "image": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/google__nano-banana-pro/architectural-visualization.jpg" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'google/nano-banana-pro',\n {\n prompt:\n 'A photorealistic architectural visualization of a modern glass house perched on a cliff overlooking the ocean at sunset',\n aspect_ratio: '16:9',\n output_format: 'jpg',\n image_size: '4K',\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Character Design", - "description": "Game character concept art", - "input": { - "prompt": "A detailed character design sheet for a steampunk inventor, showing front view, side view, and detail callouts for mechanical arm and goggles", - "aspect_ratio": "3:2" - }, - "output": { - "image": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/google__nano-banana-pro/character-design.png" - }, - "raw_response": { - "state": "Completed", - "result": { - "image": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/google__nano-banana-pro/character-design.png" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'google/nano-banana-pro',\n {\n prompt:\n 'A detailed character design sheet for a steampunk inventor, showing front view, side view, and detail callouts for mechanical arm and goggles',\n aspect_ratio: '3:2',\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - } - ], - "supports_async": false, - "external_info": "https://deepmind.google/technologies/imagen/", - "terms": "https://ai.google.dev/gemini-api/terms", - "cover_image_url": "https://pub-26f1392c1b674324be6786695bd72257.r2.dev/google/nano-banana-pro.png", - "metadata": { - "Output Format": "JPEG" - }, - "created_at": "2026-04-08 22:01:25", - "default_example": null, - "code_snippets": [], - "zdr": false, - "zdr_comment": null, - "schema": { - "input": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "prompt": { - "type": "string" - }, - "image_input": { - "maxItems": 3, - "type": "array", - "items": { - "type": "string" - } - }, - "aspect_ratio": { - "type": "string", - "enum": [ - "1:1", - "3:2", - "2:3", - "3:4", - "4:3", - "4:5", - "5:4", - "9:16", - "16:9", - "21:9" - ] - }, - "output_format": { - "type": "string", - "enum": [ - "jpg", - "png", - "webp" - ] - }, - "image_size": { - "type": "string", - "enum": [ - "1K", - "2K", - "4K" - ] - } - }, - "required": [ - "prompt" - ], - "additionalProperties": false - }, - "output": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "image": { - "type": "string", - "format": "uri" - } - }, - "required": [ - "image" - ], - "additionalProperties": false - } - } -} diff --git a/src/content/catalog-models/google-nano-banana.json b/src/content/catalog-models/google-nano-banana.json deleted file mode 100644 index b00bc87f98a6481..000000000000000 --- a/src/content/catalog-models/google-nano-banana.json +++ /dev/null @@ -1,232 +0,0 @@ -{ - "model_id": "google/nano-banana", - "provider_id": "google", - "name": "Nano Banana", - "description": "Google's fast image generation model producing high-quality images from text prompts.", - "task": "Text-to-Image", - "tags": [ - "Image Generation", - "Fast" - ], - "context_length": null, - "max_output_tokens": null, - "schema_version": "1.0.0", - "examples": [ - { - "name": "Cozy Coffee Shop", - "description": "Interior scene with warm lighting and a cat", - "input": { - "prompt": "A cozy coffee shop interior with warm lighting, plants hanging from the ceiling, and a cat sleeping on a velvet armchair by the window", - "aspect_ratio": "16:9" - }, - "output": { - "image": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/google__nano-banana/cozy-coffee-shop.png" - }, - "raw_response": { - "state": "Completed", - "result": { - "image": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/google__nano-banana/cozy-coffee-shop.png" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'google/nano-banana',\n {\n prompt:\n 'A cozy coffee shop interior with warm lighting, plants hanging from the ceiling, and a cat sleeping on a velvet armchair by the window',\n aspect_ratio: '16:9',\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Vintage Tokyo Poster", - "description": "Retro travel poster style illustration", - "input": { - "prompt": "A vintage travel poster for Tokyo, Japan in the style of 1960s airline advertisements, with Mount Fuji in the background and cherry blossoms framing the scene", - "aspect_ratio": "9:16" - }, - "output": { - "image": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/google__nano-banana/vintage-tokyo-poster.png" - }, - "raw_response": { - "state": "Completed", - "result": { - "image": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/google__nano-banana/vintage-tokyo-poster.png" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'google/nano-banana',\n {\n prompt:\n 'A vintage travel poster for Tokyo, Japan in the style of 1960s airline advertisements, with Mount Fuji in the background and cherry blossoms framing the scene',\n aspect_ratio: '9:16',\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Dewdrops Macro", - "description": "Photorealistic macro photography", - "input": { - "prompt": "A photorealistic macro shot of dewdrops on a spider web at sunrise, with rainbow light refracting through each droplet", - "aspect_ratio": "1:1" - }, - "output": { - "image": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/google__nano-banana/dewdrops-macro.png" - }, - "raw_response": { - "state": "Completed", - "result": { - "image": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/google__nano-banana/dewdrops-macro.png" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'google/nano-banana',\n {\n prompt:\n 'A photorealistic macro shot of dewdrops on a spider web at sunrise, with rainbow light refracting through each droplet',\n aspect_ratio: '1:1',\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Pixel Art Marketplace", - "description": "Isometric pixel art scene", - "input": { - "prompt": "An isometric pixel art scene of a bustling medieval marketplace with merchants, knights, and a dragon perched on the town hall roof", - "aspect_ratio": "1:1" - }, - "output": { - "image": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/google__nano-banana/pixel-art-marketplace.png" - }, - "raw_response": { - "state": "Completed", - "result": { - "image": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/google__nano-banana/pixel-art-marketplace.png" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'google/nano-banana',\n {\n prompt:\n 'An isometric pixel art scene of a bustling medieval marketplace with merchants, knights, and a dragon perched on the town hall roof',\n aspect_ratio: '1:1',\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "High Resolution Landscape", - "description": "Generate a high-resolution 4K landscape image", - "input": { - "prompt": "A dramatic mountain landscape at golden hour with snow-capped peaks and a crystal clear alpine lake", - "aspect_ratio": "16:9", - "output_format": "png", - "image_size": "4K" - }, - "output": { - "image": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/google__nano-banana/high-resolution-landscape.png" - }, - "raw_response": { - "state": "Completed", - "result": { - "image": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/google__nano-banana/high-resolution-landscape.png" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'google/nano-banana',\n {\n prompt:\n 'A dramatic mountain landscape at golden hour with snow-capped peaks and a crystal clear alpine lake',\n aspect_ratio: '16:9',\n output_format: 'png',\n image_size: '4K',\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - } - ], - "supports_async": false, - "external_info": "https://deepmind.google/technologies/imagen/", - "terms": "https://ai.google.dev/gemini-api/terms", - "cover_image_url": "https://pub-26f1392c1b674324be6786695bd72257.r2.dev/google/nano-banana.png", - "metadata": { - "Output Format": "JPEG" - }, - "created_at": "2026-04-08 21:58:29", - "default_example": null, - "code_snippets": [], - "zdr": false, - "zdr_comment": null, - "schema": { - "input": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "prompt": { - "type": "string" - }, - "image_input": { - "maxItems": 3, - "type": "array", - "items": { - "type": "string" - } - }, - "aspect_ratio": { - "type": "string", - "enum": [ - "1:1", - "3:2", - "2:3", - "3:4", - "4:3", - "4:5", - "5:4", - "9:16", - "16:9", - "21:9" - ] - }, - "output_format": { - "type": "string", - "enum": [ - "jpg", - "png", - "webp" - ] - }, - "image_size": { - "type": "string", - "enum": [ - "1K", - "2K", - "4K" - ] - } - }, - "required": [ - "prompt" - ], - "additionalProperties": false - }, - "output": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "image": { - "type": "string", - "format": "uri" - } - }, - "required": [ - "image" - ], - "additionalProperties": false - } - } -} diff --git a/src/content/catalog-models/google-veo-3-fast.json b/src/content/catalog-models/google-veo-3-fast.json deleted file mode 100644 index f1aec912b77c4c2..000000000000000 --- a/src/content/catalog-models/google-veo-3-fast.json +++ /dev/null @@ -1,224 +0,0 @@ -{ - "model_id": "google/veo-3-fast", - "provider_id": "google", - "name": "Veo 3 Fast", - "description": "A faster version of Veo 3 optimized for lower latency video generation with audio support.", - "task": "Text-to-Video", - "tags": [ - "Video Generation", - "Audio", - "Fast" - ], - "context_length": null, - "max_output_tokens": null, - "schema_version": "1.0.0", - "examples": [ - { - "name": "Quick Preview", - "description": "Fast video generation for previews", - "input": { - "prompt": "Ocean waves crashing on a rocky shoreline at sunset", - "duration": "6s", - "aspect_ratio": "16:9", - "resolution": "720p", - "generate_audio": true - }, - "output": { - "video": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/google__veo-3-fast/quick-preview.mp4" - }, - "raw_response": { - "state": "Completed", - "result": { - "video": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/google__veo-3-fast/quick-preview.mp4" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'google/veo-3-fast',\n {\n prompt: 'Ocean waves crashing on a rocky shoreline at sunset',\n duration: '6s',\n aspect_ratio: '16:9',\n resolution: '720p',\n generate_audio: true,\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Social Media Clip", - "description": "Quick vertical video for stories", - "input": { - "prompt": "A coffee cup with steam rising, cozy cafe atmosphere", - "duration": "4s", - "aspect_ratio": "9:16", - "resolution": "720p", - "generate_audio": true - }, - "output": { - "video": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/google__veo-3-fast/social-media-clip.mp4" - }, - "raw_response": { - "state": "Completed", - "result": { - "video": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/google__veo-3-fast/social-media-clip.mp4" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'google/veo-3-fast',\n {\n prompt: 'A coffee cup with steam rising, cozy cafe atmosphere',\n duration: '4s',\n aspect_ratio: '9:16',\n resolution: '720p',\n generate_audio: true,\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Animated Loop", - "description": "Short loopable animation", - "input": { - "prompt": "A campfire burning with flames dancing and sparks floating upward, seamless loop", - "duration": "4s", - "aspect_ratio": "16:9", - "resolution": "720p", - "generate_audio": true - }, - "output": { - "video": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/google__veo-3-fast/animated-loop.mp4" - }, - "raw_response": { - "state": "Completed", - "result": { - "video": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/google__veo-3-fast/animated-loop.mp4" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'google/veo-3-fast',\n {\n prompt:\n 'A campfire burning with flames dancing and sparks floating upward, seamless loop',\n duration: '4s',\n aspect_ratio: '16:9',\n resolution: '720p',\n generate_audio: true,\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Product Shot", - "description": "Quick product video preview", - "input": { - "prompt": "A smartphone rotating on a dark surface with dramatic lighting", - "duration": "6s", - "aspect_ratio": "16:9", - "resolution": "720p", - "generate_audio": false - }, - "output": { - "video": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/google__veo-3-fast/product-shot.mp4" - }, - "raw_response": { - "state": "Completed", - "result": { - "video": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/google__veo-3-fast/product-shot.mp4" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'google/veo-3-fast',\n {\n prompt: 'A smartphone rotating on a dark surface with dramatic lighting',\n duration: '6s',\n aspect_ratio: '16:9',\n resolution: '720p',\n generate_audio: false,\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - } - ], - "supports_async": false, - "external_info": "https://deepmind.google/technologies/veo/", - "terms": "https://ai.google.dev/gemini-api/terms", - "cover_image_url": "https://pub-26f1392c1b674324be6786695bd72257.r2.dev/google/veo-3-fast.png", - "metadata": { - "Max Duration": "8 seconds", - "Audio Generation": "Yes", - "Resolutions": "720p, 1080p" - }, - "created_at": "2026-04-08 21:38:24", - "default_example": null, - "code_snippets": [], - "zdr": false, - "zdr_comment": null, - "schema": { - "input": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "prompt": { - "description": "Text prompt describing the video to generate", - "type": "string" - }, - "image_input": { - "description": "Base64-encoded reference image for i2v", - "type": "string" - }, - "duration": { - "description": "Video duration", - "default": "6s", - "type": "string", - "enum": [ - "4s", - "6s", - "8s" - ] - }, - "aspect_ratio": { - "description": "Video aspect ratio", - "default": "16:9", - "type": "string", - "enum": [ - "16:9", - "9:16", - "1:1" - ] - }, - "resolution": { - "description": "Video resolution", - "default": "720p", - "type": "string", - "enum": [ - "720p", - "1080p" - ] - }, - "generate_audio": { - "description": "Whether to generate audio with the video", - "default": true, - "type": "boolean" - } - }, - "required": [ - "prompt", - "duration", - "aspect_ratio", - "resolution", - "generate_audio" - ], - "additionalProperties": false - }, - "output": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "video": { - "description": "URL to the generated video", - "type": "string", - "format": "uri" - } - }, - "required": [ - "video" - ], - "additionalProperties": false - } - } -} diff --git a/src/content/catalog-models/google-veo-3.1-fast.json b/src/content/catalog-models/google-veo-3.1-fast.json deleted file mode 100644 index 90b339f24a32923..000000000000000 --- a/src/content/catalog-models/google-veo-3.1-fast.json +++ /dev/null @@ -1,224 +0,0 @@ -{ - "model_id": "google/veo-3.1-fast", - "provider_id": "google", - "name": "Veo 3.1 Fast", - "description": "A faster version of Veo 3.1 optimized for lower latency while maintaining high-quality video and audio output.", - "task": "Text-to-Video", - "tags": [ - "Video Generation", - "Audio", - "Fast" - ], - "context_length": null, - "max_output_tokens": null, - "schema_version": "1.0.0", - "examples": [ - { - "name": "Quick Demo", - "description": "Fast video generation for testing", - "input": { - "prompt": "A butterfly landing on a colorful flower in a garden", - "duration": "6s", - "aspect_ratio": "16:9", - "resolution": "720p", - "generate_audio": true - }, - "output": { - "video": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/google__veo-3.1-fast/quick-demo.mp4" - }, - "raw_response": { - "state": "Completed", - "result": { - "video": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/google__veo-3.1-fast/quick-demo.mp4" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'google/veo-3.1-fast',\n {\n prompt: 'A butterfly landing on a colorful flower in a garden',\n duration: '6s',\n aspect_ratio: '16:9',\n resolution: '720p',\n generate_audio: true,\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Social Content", - "description": "Quick vertical video for social media", - "input": { - "prompt": "Aesthetic morning routine: sun rays through curtains, coffee being poured", - "duration": "6s", - "aspect_ratio": "9:16", - "resolution": "720p", - "generate_audio": true - }, - "output": { - "video": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/google__veo-3.1-fast/social-content.mp4" - }, - "raw_response": { - "state": "Completed", - "result": { - "video": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/google__veo-3.1-fast/social-content.mp4" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'google/veo-3.1-fast',\n {\n prompt:\n 'Aesthetic morning routine: sun rays through curtains, coffee being poured',\n duration: '6s',\n aspect_ratio: '9:16',\n resolution: '720p',\n generate_audio: true,\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Motion Graphics", - "description": "Quick animated graphics", - "input": { - "prompt": "Glowing neon lines forming geometric patterns on a dark background", - "duration": "4s", - "aspect_ratio": "16:9", - "resolution": "720p", - "generate_audio": false - }, - "output": { - "video": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/google__veo-3.1-fast/motion-graphics.mp4" - }, - "raw_response": { - "state": "Completed", - "result": { - "video": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/google__veo-3.1-fast/motion-graphics.mp4" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'google/veo-3.1-fast',\n {\n prompt:\n 'Glowing neon lines forming geometric patterns on a dark background',\n duration: '4s',\n aspect_ratio: '16:9',\n resolution: '720p',\n generate_audio: false,\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Ambient Scene", - "description": "Relaxing background video", - "input": { - "prompt": "Rain falling on a window with a blurred city skyline in the background at night", - "duration": "8s", - "aspect_ratio": "16:9", - "resolution": "720p", - "generate_audio": true - }, - "output": { - "video": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/google__veo-3.1-fast/ambient-scene.mp4" - }, - "raw_response": { - "state": "Completed", - "result": { - "video": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/google__veo-3.1-fast/ambient-scene.mp4" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'google/veo-3.1-fast',\n {\n prompt:\n 'Rain falling on a window with a blurred city skyline in the background at night',\n duration: '8s',\n aspect_ratio: '16:9',\n resolution: '720p',\n generate_audio: true,\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - } - ], - "supports_async": false, - "external_info": "https://deepmind.google/technologies/veo/", - "terms": "https://ai.google.dev/gemini-api/terms", - "cover_image_url": "https://pub-26f1392c1b674324be6786695bd72257.r2.dev/google/veo-3.1-fast.png", - "metadata": { - "Max Duration": "8 seconds", - "Audio Generation": "Yes", - "Resolutions": "720p, 1080p" - }, - "created_at": "2026-04-08 21:40:52", - "default_example": null, - "code_snippets": [], - "zdr": false, - "zdr_comment": null, - "schema": { - "input": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "prompt": { - "description": "Text prompt describing the video to generate", - "type": "string" - }, - "image_input": { - "description": "Base64-encoded reference image for i2v", - "type": "string" - }, - "duration": { - "description": "Video duration", - "default": "6s", - "type": "string", - "enum": [ - "4s", - "6s", - "8s" - ] - }, - "aspect_ratio": { - "description": "Video aspect ratio", - "default": "16:9", - "type": "string", - "enum": [ - "16:9", - "9:16", - "1:1" - ] - }, - "resolution": { - "description": "Video resolution", - "default": "720p", - "type": "string", - "enum": [ - "720p", - "1080p" - ] - }, - "generate_audio": { - "description": "Whether to generate audio with the video", - "default": true, - "type": "boolean" - } - }, - "required": [ - "prompt", - "duration", - "aspect_ratio", - "resolution", - "generate_audio" - ], - "additionalProperties": false - }, - "output": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "video": { - "description": "URL to the generated video", - "type": "string", - "format": "uri" - } - }, - "required": [ - "video" - ], - "additionalProperties": false - } - } -} diff --git a/src/content/catalog-models/google-veo-3.1.json b/src/content/catalog-models/google-veo-3.1.json deleted file mode 100644 index c0246c549ffdc7a..000000000000000 --- a/src/content/catalog-models/google-veo-3.1.json +++ /dev/null @@ -1,224 +0,0 @@ -{ - "model_id": "google/veo-3.1", - "provider_id": "google", - "name": "Veo 3.1", - "description": "Google's latest video generation model with improved quality, motion, and audio generation.", - "task": "Text-to-Video", - "tags": [ - "Video Generation", - "Audio", - "High Quality" - ], - "context_length": null, - "max_output_tokens": null, - "schema_version": "1.0.0", - "examples": [ - { - "name": "Nature Documentary", - "description": "High quality nature footage", - "input": { - "prompt": "A majestic eagle soaring over snow-capped mountains, tracking shot following the bird as it glides through clouds", - "duration": "8s", - "aspect_ratio": "16:9", - "resolution": "1080p", - "generate_audio": true - }, - "output": { - "video": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/google__veo-3.1/nature-documentary.mp4" - }, - "raw_response": { - "state": "Completed", - "result": { - "video": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/google__veo-3.1/nature-documentary.mp4" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'google/veo-3.1',\n {\n prompt:\n 'A majestic eagle soaring over snow-capped mountains, tracking shot following the bird as it glides through clouds',\n duration: '8s',\n aspect_ratio: '16:9',\n resolution: '1080p',\n generate_audio: true,\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Urban Time-lapse", - "description": "City life time-lapse video", - "input": { - "prompt": "A time-lapse of a busy city intersection at night, car lights creating streaks, people walking in fast motion", - "duration": "6s", - "aspect_ratio": "16:9", - "resolution": "1080p", - "generate_audio": true - }, - "output": { - "video": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/google__veo-3.1/urban-time-lapse.mp4" - }, - "raw_response": { - "state": "Completed", - "result": { - "video": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/google__veo-3.1/urban-time-lapse.mp4" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'google/veo-3.1',\n {\n prompt:\n 'A time-lapse of a busy city intersection at night, car lights creating streaks, people walking in fast motion',\n duration: '6s',\n aspect_ratio: '16:9',\n resolution: '1080p',\n generate_audio: true,\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Abstract Art", - "description": "Abstract motion graphics", - "input": { - "prompt": "Colorful ink drops falling into water in slow motion, creating organic swirling patterns", - "duration": "6s", - "aspect_ratio": "16:9", - "resolution": "720p", - "generate_audio": false - }, - "output": { - "video": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/google__veo-3.1/abstract-art.mp4" - }, - "raw_response": { - "state": "Completed", - "result": { - "video": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/google__veo-3.1/abstract-art.mp4" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'google/veo-3.1',\n {\n prompt:\n 'Colorful ink drops falling into water in slow motion, creating organic swirling patterns',\n duration: '6s',\n aspect_ratio: '16:9',\n resolution: '720p',\n generate_audio: false,\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Food Video", - "description": "Appetizing food footage", - "input": { - "prompt": "Melted chocolate being poured over fresh strawberries in slow motion, rich and glossy", - "duration": "4s", - "aspect_ratio": "9:16", - "resolution": "1080p", - "generate_audio": true - }, - "output": { - "video": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/google__veo-3.1/food-video.mp4" - }, - "raw_response": { - "state": "Completed", - "result": { - "video": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/google__veo-3.1/food-video.mp4" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'google/veo-3.1',\n {\n prompt:\n 'Melted chocolate being poured over fresh strawberries in slow motion, rich and glossy',\n duration: '4s',\n aspect_ratio: '9:16',\n resolution: '1080p',\n generate_audio: true,\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - } - ], - "supports_async": false, - "external_info": "https://deepmind.google/technologies/veo/", - "terms": "https://ai.google.dev/gemini-api/terms", - "cover_image_url": "https://pub-26f1392c1b674324be6786695bd72257.r2.dev/google/veo-3.1.png", - "metadata": { - "Max Duration": "8 seconds", - "Audio Generation": "Yes", - "Resolutions": "720p, 1080p" - }, - "created_at": "2026-04-08 21:36:13", - "default_example": null, - "code_snippets": [], - "zdr": false, - "zdr_comment": null, - "schema": { - "input": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "prompt": { - "description": "Text prompt describing the video to generate", - "type": "string" - }, - "image_input": { - "description": "Base64-encoded reference image for i2v", - "type": "string" - }, - "duration": { - "description": "Video duration", - "default": "6s", - "type": "string", - "enum": [ - "4s", - "6s", - "8s" - ] - }, - "aspect_ratio": { - "description": "Video aspect ratio", - "default": "16:9", - "type": "string", - "enum": [ - "16:9", - "9:16", - "1:1" - ] - }, - "resolution": { - "description": "Video resolution", - "default": "720p", - "type": "string", - "enum": [ - "720p", - "1080p" - ] - }, - "generate_audio": { - "description": "Whether to generate audio with the video", - "default": true, - "type": "boolean" - } - }, - "required": [ - "prompt", - "duration", - "aspect_ratio", - "resolution", - "generate_audio" - ], - "additionalProperties": false - }, - "output": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "video": { - "description": "URL to the generated video", - "type": "string", - "format": "uri" - } - }, - "required": [ - "video" - ], - "additionalProperties": false - } - } -} diff --git a/src/content/catalog-models/google-veo-3.json b/src/content/catalog-models/google-veo-3.json deleted file mode 100644 index 4480e20a296dd61..000000000000000 --- a/src/content/catalog-models/google-veo-3.json +++ /dev/null @@ -1,253 +0,0 @@ -{ - "model_id": "google/veo-3", - "provider_id": "google", - "name": "Veo 3", - "description": "Google's video generation model capable of producing high-quality videos with optional audio from text prompts.", - "task": "Text-to-Video", - "tags": [ - "Video Generation", - "Audio" - ], - "context_length": null, - "max_output_tokens": null, - "schema_version": "1.0.0", - "examples": [ - { - "name": "Simple Video Generation", - "description": "Basic text-to-video with default settings", - "input": { - "prompt": "A golden retriever running through a field of sunflowers on a sunny day", - "duration": "6s", - "aspect_ratio": "16:9", - "resolution": "720p", - "generate_audio": true - }, - "output": { - "video": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/google__veo-3/simple-video-generation.mp4" - }, - "raw_response": { - "state": "Completed", - "result": { - "video": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/google__veo-3/simple-video-generation.mp4" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'google/veo-3',\n {\n prompt:\n 'A golden retriever running through a field of sunflowers on a sunny day',\n duration: '6s',\n aspect_ratio: '16:9',\n resolution: '720p',\n generate_audio: true,\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Cinematic Scene", - "description": "Widescreen cinematic video in 1080p", - "input": { - "prompt": "A dramatic drone shot flying through misty mountain peaks at sunrise, with clouds rolling through valleys below", - "duration": "8s", - "aspect_ratio": "16:9", - "resolution": "1080p", - "generate_audio": true - }, - "output": { - "video": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/google__veo-3/cinematic-scene.mp4" - }, - "raw_response": { - "state": "Completed", - "result": { - "video": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/google__veo-3/cinematic-scene.mp4" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'google/veo-3',\n {\n prompt:\n 'A dramatic drone shot flying through misty mountain peaks at sunrise, with clouds rolling through valleys below',\n duration: '8s',\n aspect_ratio: '16:9',\n resolution: '1080p',\n generate_audio: true,\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Vertical Video", - "description": "Portrait orientation for social media", - "input": { - "prompt": "A barista expertly pouring latte art, close-up shot with shallow depth of field", - "duration": "6s", - "aspect_ratio": "9:16", - "resolution": "720p", - "generate_audio": true - }, - "output": { - "video": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/google__veo-3/vertical-video.mp4" - }, - "raw_response": { - "state": "Completed", - "result": { - "video": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/google__veo-3/vertical-video.mp4" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'google/veo-3',\n {\n prompt:\n 'A barista expertly pouring latte art, close-up shot with shallow depth of field',\n duration: '6s',\n aspect_ratio: '9:16',\n resolution: '720p',\n generate_audio: true,\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Short Format", - "description": "Short video for social media posts", - "input": { - "prompt": "A timelapse of a flower blooming, soft natural lighting", - "duration": "4s", - "aspect_ratio": "16:9", - "resolution": "720p", - "generate_audio": true - }, - "output": { - "video": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/google__veo-3/short-format.mp4" - }, - "raw_response": { - "state": "Completed", - "result": { - "video": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/google__veo-3/short-format.mp4" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'google/veo-3',\n {\n prompt: 'A timelapse of a flower blooming, soft natural lighting',\n duration: '4s',\n aspect_ratio: '16:9',\n resolution: '720p',\n generate_audio: true,\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Silent Video", - "description": "Video without audio generation", - "input": { - "prompt": "Abstract flowing liquid metal morphing into geometric shapes", - "duration": "6s", - "aspect_ratio": "16:9", - "resolution": "720p", - "generate_audio": false - }, - "output": { - "video": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/google__veo-3/silent-video.mp4" - }, - "raw_response": { - "state": "Completed", - "result": { - "video": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/google__veo-3/silent-video.mp4" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'google/veo-3',\n {\n prompt: 'Abstract flowing liquid metal morphing into geometric shapes',\n duration: '6s',\n aspect_ratio: '16:9',\n resolution: '720p',\n generate_audio: false,\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - } - ], - "supports_async": false, - "external_info": "https://deepmind.google/technologies/veo/", - "terms": "https://ai.google.dev/gemini-api/terms", - "cover_image_url": "https://pub-26f1392c1b674324be6786695bd72257.r2.dev/google/veo-3.png", - "metadata": { - "Max Duration": "8 seconds", - "Audio Generation": "Yes", - "Resolutions": "720p, 1080p" - }, - "created_at": "2026-04-08 21:34:32", - "default_example": null, - "code_snippets": [], - "zdr": false, - "zdr_comment": null, - "schema": { - "input": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "prompt": { - "description": "Text prompt describing the video to generate", - "type": "string" - }, - "image_input": { - "description": "Base64-encoded reference image for i2v", - "type": "string" - }, - "duration": { - "description": "Video duration", - "default": "6s", - "type": "string", - "enum": [ - "4s", - "6s", - "8s" - ] - }, - "aspect_ratio": { - "description": "Video aspect ratio", - "default": "16:9", - "type": "string", - "enum": [ - "16:9", - "9:16", - "1:1" - ] - }, - "resolution": { - "description": "Video resolution", - "default": "720p", - "type": "string", - "enum": [ - "720p", - "1080p" - ] - }, - "generate_audio": { - "description": "Whether to generate audio with the video", - "default": true, - "type": "boolean" - } - }, - "required": [ - "prompt", - "duration", - "aspect_ratio", - "resolution", - "generate_audio" - ], - "additionalProperties": false - }, - "output": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "video": { - "description": "URL to the generated video", - "type": "string", - "format": "uri" - } - }, - "required": [ - "video" - ], - "additionalProperties": false - } - } -} diff --git a/src/content/catalog-models/inworld-tts-1.5-max.json b/src/content/catalog-models/inworld-tts-1.5-max.json deleted file mode 100644 index e936e964200b8f3..000000000000000 --- a/src/content/catalog-models/inworld-tts-1.5-max.json +++ /dev/null @@ -1,342 +0,0 @@ -{ - "model_id": "inworld/tts-1.5-max", - "provider_id": "inworld", - "name": "Inworld TTS 1.5 Max", - "description": "Highest-quality text-to-speech with under 200ms latency, emotion control, and 15-language support.", - "task": "Text-to-Speech", - "tags": [ - "TTS", - "Speech Synthesis", - "Low Latency", - "Multilingual", - "Emotion Control" - ], - "context_length": null, - "max_output_tokens": null, - "schema_version": "1.0.0", - "examples": [ - { - "name": "Simple Speech", - "description": "Generate speech with default settings", - "input": { - "text": "Hello! Welcome to Cloudflare AI Gateway. Let me show you what we can do.", - "voice_id": "Dennis", - "output_format": "mp3", - "temperature": 1, - "timestamp_type": "none" - }, - "output": { - "audio": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/inworld__tts-1.5-max/simple-speech.mp3" - }, - "raw_response": { - "state": "Completed", - "result": { - "audio": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/inworld__tts-1.5-max/simple-speech.mp3" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'inworld/tts-1.5-max',\n {\n text: 'Hello! Welcome to Cloudflare AI Gateway. Let me show you what we can do.',\n voice_id: 'Dennis',\n output_format: 'mp3',\n temperature: 1,\n timestamp_type: 'none',\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Slow Narration", - "description": "Slower speech for narration", - "input": { - "text": "In the beginning, the universe was a singularity of infinite density. Then, in a fraction of a second, it expanded into everything we know today.", - "voice_id": "Dennis", - "output_format": "mp3", - "speaking_rate": 0.85, - "temperature": 1, - "timestamp_type": "none" - }, - "output": { - "audio": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/inworld__tts-1.5-max/slow-narration.mp3" - }, - "raw_response": { - "state": "Completed", - "result": { - "audio": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/inworld__tts-1.5-max/slow-narration.mp3" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'inworld/tts-1.5-max',\n {\n text: 'In the beginning, the universe was a singularity of infinite density. Then, in a fraction of a second, it expanded into everything we know today.',\n voice_id: 'Dennis',\n output_format: 'mp3',\n speaking_rate: 0.85,\n temperature: 1,\n timestamp_type: 'none',\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "High Quality Audio", - "description": "Higher sample rate for studio quality", - "input": { - "text": "This recording is generated at studio quality for the best possible listening experience.", - "voice_id": "Dennis", - "output_format": "mp3", - "sample_rate": 48000, - "temperature": 1, - "timestamp_type": "none" - }, - "output": { - "audio": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/inworld__tts-1.5-max/high-quality-audio.mp3" - }, - "raw_response": { - "state": "Completed", - "result": { - "audio": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/inworld__tts-1.5-max/high-quality-audio.mp3" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'inworld/tts-1.5-max',\n {\n text: 'This recording is generated at studio quality for the best possible listening experience.',\n voice_id: 'Dennis',\n output_format: 'mp3',\n sample_rate: 48000,\n temperature: 1,\n timestamp_type: 'none',\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "With Text Normalization", - "description": "Expand numbers and abbreviations before synthesis", - "input": { - "text": "The meeting is at 3:30 PM on Jan 15th, 2026. Please confirm by calling 555-0123.", - "voice_id": "Dennis", - "output_format": "mp3", - "temperature": 1, - "timestamp_type": "none", - "apply_text_normalization": true - }, - "output": { - "audio": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/inworld__tts-1.5-max/with-text-normalization.mp3" - }, - "raw_response": { - "state": "Completed", - "result": { - "audio": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/inworld__tts-1.5-max/with-text-normalization.mp3" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'inworld/tts-1.5-max',\n {\n text: 'The meeting is at 3:30 PM on Jan 15th, 2026. Please confirm by calling 555-0123.',\n voice_id: 'Dennis',\n output_format: 'mp3',\n temperature: 1,\n timestamp_type: 'none',\n apply_text_normalization: true,\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - } - ], - "supports_async": false, - "external_info": "https://inworld.ai/", - "terms": "https://inworld.ai/terms", - "cover_image_url": "https://pub-26f1392c1b674324be6786695bd72257.r2.dev/inworld/tts-1.5-max.png", - "metadata": { - "Latency": "<200ms", - "Languages": "15" - }, - "created_at": "2026-04-13 16:47:22", - "default_example": null, - "code_snippets": [], - "zdr": false, - "zdr_comment": null, - "schema": { - "input": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "text": { - "description": "The text to be synthesized into speech. Maximum input of 2,000 characters.", - "type": "string", - "maxLength": 2000 - }, - "voice_id": { - "description": "The ID of the voice to use for synthesizing speech. Defaults to Dennis.", - "default": "Dennis", - "type": "string", - "enum": [ - "Loretta", - "Darlene", - "Marlene", - "Hank", - "Evelyn", - "Celeste", - "Pippa", - "Tessa", - "Liam", - "Callum", - "Hamish", - "Abby", - "Graham", - "Rupert", - "Mortimer", - "Snik", - "Anjali", - "Saanvi", - "Arjun", - "Claire", - "Oliver", - "Simon", - "Elliot", - "James", - "Serena", - "Gareth", - "Vinny", - "Lauren", - "Jessica", - "Ethan", - "Tyler", - "Jason", - "Chloe", - "Veronica", - "Victoria", - "Miranda", - "Sebastian", - "Victor", - "Malcolm", - "Nate", - "Brian", - "Amina", - "Kelsey", - "Derek", - "Evan", - "Kayla", - "Jake", - "Grant", - "Tristan", - "Nadia", - "Selene", - "Marcus", - "Riley", - "Damon", - "Cedric", - "Mia", - "Naomi", - "Jonah", - "Levi", - "Avery", - "Brandon", - "Conrad", - "Bianca", - "Lucian", - "Trevor", - "Alex", - "Ashley", - "Craig", - "Deborah", - "Dennis", - "Edward", - "Elizabeth", - "Hades", - "Julia", - "Pixie", - "Mark", - "Olivia", - "Priya", - "Ronald", - "Sarah", - "Shaun", - "Theodore", - "Timothy", - "Wendy", - "Dominus", - "Hana", - "Clive", - "Carter", - "Blake", - "Luna", - "Reed", - "Duncan", - "Felix", - "Eleanor", - "Sophie" - ] - }, - "output_format": { - "description": "The output format for the audio. Supported formats are mp3, opus, wav, and flac. Defaults to mp3.", - "default": "mp3", - "type": "string", - "enum": [ - "mp3", - "opus", - "wav", - "flac" - ] - }, - "bit_rate": { - "description": "Bits per second of the audio. Only for compressed audio formats (mp3, opus). The default is 128,000.", - "type": "integer", - "minimum": -9007199254740991, - "maximum": 9007199254740991 - }, - "sample_rate": { - "description": "The synthesis sample rate in hertz. Accepts: 8000, 16000, 22050, 24000, 32000, 44100, 48000. The default is 48,000.", - "type": "integer", - "minimum": -9007199254740991, - "maximum": 9007199254740991 - }, - "speaking_rate": { - "description": "Speaking rate/speed, in the range [0.5, 1.5]. The default is 1.0. We recommend using values above 0.8 to ensure high quality.", - "type": "number", - "minimum": 0.5, - "maximum": 1.5 - }, - "temperature": { - "description": "Determines the degree of randomness when sampling audio tokens. Defaults to 1.0. Accepts values between 0 (exclusive) and 2 (inclusive). Higher values = more expressive, lower values = more deterministic.", - "default": 1, - "type": "number", - "minimum": 0.01, - "maximum": 2 - }, - "timestamp_type": { - "description": "Controls timestamp metadata returned with the audio. \"word\" returns word-level timing, \"character\" returns character-level timing. Note: adds latency. Defaults to none.", - "default": "none", - "type": "string", - "enum": [ - "none", - "word", - "character" - ] - }, - "apply_text_normalization": { - "description": "When enabled, text normalization expands numbers, dates, times, and abbreviations before converting to speech. Turning this off may reduce latency.", - "type": "boolean" - } - }, - "required": [ - "text", - "voice_id", - "output_format", - "temperature", - "timestamp_type" - ], - "additionalProperties": false - }, - "output": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "audio": { - "description": "URL to the generated audio file", - "type": "string" - } - }, - "required": [ - "audio" - ], - "additionalProperties": false - } - } -} diff --git a/src/content/catalog-models/inworld-tts-1.5-mini.json b/src/content/catalog-models/inworld-tts-1.5-mini.json deleted file mode 100644 index 99b03e0e823c792..000000000000000 --- a/src/content/catalog-models/inworld-tts-1.5-mini.json +++ /dev/null @@ -1,311 +0,0 @@ -{ - "model_id": "inworld/tts-1.5-mini", - "provider_id": "inworld", - "name": "Inworld TTS 1.5 Mini", - "description": "Ultra-fast, cost-efficient text-to-speech with approximately 120ms latency and 15-language support.", - "task": "Text-to-Speech", - "tags": [ - "TTS", - "Speech Synthesis", - "Ultra-Low Latency", - "Multilingual", - "Cost-Efficient" - ], - "context_length": null, - "max_output_tokens": null, - "schema_version": "1.0.0", - "examples": [ - { - "name": "Simple Speech", - "description": "Generate speech with default settings", - "input": { - "text": "Hello! Welcome to Cloudflare AI Gateway. Let me show you what we can do.", - "voice_id": "Dennis", - "output_format": "mp3", - "temperature": 1, - "timestamp_type": "none" - }, - "output": { - "audio": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/inworld__tts-1.5-mini/simple-speech.mp3" - }, - "raw_response": { - "state": "Completed", - "result": { - "audio": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/inworld__tts-1.5-mini/simple-speech.mp3" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'inworld/tts-1.5-mini',\n {\n text: 'Hello! Welcome to Cloudflare AI Gateway. Let me show you what we can do.',\n voice_id: 'Dennis',\n output_format: 'mp3',\n temperature: 1,\n timestamp_type: 'none',\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Fast Speech", - "description": "Speed up speech for quick playback", - "input": { - "text": "This is a fast-paced summary of the key findings from the quarterly report. Revenue is up fifteen percent and user growth exceeded expectations.", - "voice_id": "Dennis", - "output_format": "mp3", - "speaking_rate": 1.4, - "temperature": 1, - "timestamp_type": "none" - }, - "output": { - "audio": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/inworld__tts-1.5-mini/fast-speech.mp3" - }, - "raw_response": { - "state": "Completed", - "result": { - "audio": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/inworld__tts-1.5-mini/fast-speech.mp3" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'inworld/tts-1.5-mini',\n {\n text: 'This is a fast-paced summary of the key findings from the quarterly report. Revenue is up fifteen percent and user growth exceeded expectations.',\n voice_id: 'Dennis',\n output_format: 'mp3',\n speaking_rate: 1.4,\n temperature: 1,\n timestamp_type: 'none',\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Low Latency", - "description": "Minimize latency by disabling text normalization", - "input": { - "text": "Quick response needed. The server is ready.", - "voice_id": "Dennis", - "output_format": "mp3", - "temperature": 1, - "timestamp_type": "none", - "apply_text_normalization": false - }, - "output": { - "audio": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/inworld__tts-1.5-mini/low-latency.mp3" - }, - "raw_response": { - "state": "Completed", - "result": { - "audio": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/inworld__tts-1.5-mini/low-latency.mp3" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'inworld/tts-1.5-mini',\n {\n text: 'Quick response needed. The server is ready.',\n voice_id: 'Dennis',\n output_format: 'mp3',\n temperature: 1,\n timestamp_type: 'none',\n apply_text_normalization: false,\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - } - ], - "supports_async": false, - "external_info": "https://inworld.ai/", - "terms": "https://inworld.ai/terms", - "cover_image_url": "https://pub-26f1392c1b674324be6786695bd72257.r2.dev/inworld/tts-1.5-mini.png", - "metadata": { - "Latency": "~120ms", - "Languages": "15" - }, - "created_at": "2026-04-13 16:47:23", - "default_example": null, - "code_snippets": [], - "zdr": false, - "zdr_comment": null, - "schema": { - "input": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "text": { - "description": "The text to be synthesized into speech. Maximum input of 2,000 characters.", - "type": "string", - "maxLength": 2000 - }, - "voice_id": { - "description": "The ID of the voice to use for synthesizing speech. Defaults to Dennis.", - "default": "Dennis", - "type": "string", - "enum": [ - "Loretta", - "Darlene", - "Marlene", - "Hank", - "Evelyn", - "Celeste", - "Pippa", - "Tessa", - "Liam", - "Callum", - "Hamish", - "Abby", - "Graham", - "Rupert", - "Mortimer", - "Snik", - "Anjali", - "Saanvi", - "Arjun", - "Claire", - "Oliver", - "Simon", - "Elliot", - "James", - "Serena", - "Gareth", - "Vinny", - "Lauren", - "Jessica", - "Ethan", - "Tyler", - "Jason", - "Chloe", - "Veronica", - "Victoria", - "Miranda", - "Sebastian", - "Victor", - "Malcolm", - "Nate", - "Brian", - "Amina", - "Kelsey", - "Derek", - "Evan", - "Kayla", - "Jake", - "Grant", - "Tristan", - "Nadia", - "Selene", - "Marcus", - "Riley", - "Damon", - "Cedric", - "Mia", - "Naomi", - "Jonah", - "Levi", - "Avery", - "Brandon", - "Conrad", - "Bianca", - "Lucian", - "Trevor", - "Alex", - "Ashley", - "Craig", - "Deborah", - "Dennis", - "Edward", - "Elizabeth", - "Hades", - "Julia", - "Pixie", - "Mark", - "Olivia", - "Priya", - "Ronald", - "Sarah", - "Shaun", - "Theodore", - "Timothy", - "Wendy", - "Dominus", - "Hana", - "Clive", - "Carter", - "Blake", - "Luna", - "Reed", - "Duncan", - "Felix", - "Eleanor", - "Sophie" - ] - }, - "output_format": { - "description": "The output format for the audio. Supported formats are mp3, opus, wav, and flac. Defaults to mp3.", - "default": "mp3", - "type": "string", - "enum": [ - "mp3", - "opus", - "wav", - "flac" - ] - }, - "bit_rate": { - "description": "Bits per second of the audio. Only for compressed audio formats (mp3, opus). The default is 128,000.", - "type": "integer", - "minimum": -9007199254740991, - "maximum": 9007199254740991 - }, - "sample_rate": { - "description": "The synthesis sample rate in hertz. Accepts: 8000, 16000, 22050, 24000, 32000, 44100, 48000. The default is 48,000.", - "type": "integer", - "minimum": -9007199254740991, - "maximum": 9007199254740991 - }, - "speaking_rate": { - "description": "Speaking rate/speed, in the range [0.5, 1.5]. The default is 1.0. We recommend using values above 0.8 to ensure high quality.", - "type": "number", - "minimum": 0.5, - "maximum": 1.5 - }, - "temperature": { - "description": "Determines the degree of randomness when sampling audio tokens. Defaults to 1.0. Accepts values between 0 (exclusive) and 2 (inclusive). Higher values = more expressive, lower values = more deterministic.", - "default": 1, - "type": "number", - "minimum": 0.01, - "maximum": 2 - }, - "timestamp_type": { - "description": "Controls timestamp metadata returned with the audio. \"word\" returns word-level timing, \"character\" returns character-level timing. Note: adds latency. Defaults to none.", - "default": "none", - "type": "string", - "enum": [ - "none", - "word", - "character" - ] - }, - "apply_text_normalization": { - "description": "When enabled, text normalization expands numbers, dates, times, and abbreviations before converting to speech. Turning this off may reduce latency.", - "type": "boolean" - } - }, - "required": [ - "text", - "voice_id", - "output_format", - "temperature", - "timestamp_type" - ], - "additionalProperties": false - }, - "output": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "audio": { - "description": "URL to the generated audio file", - "type": "string" - } - }, - "required": [ - "audio" - ], - "additionalProperties": false - } - } -} diff --git a/src/content/catalog-models/minimax-hailuo-2.3-fast.json b/src/content/catalog-models/minimax-hailuo-2.3-fast.json deleted file mode 100644 index 06aa1c1d1501e04..000000000000000 --- a/src/content/catalog-models/minimax-hailuo-2.3-fast.json +++ /dev/null @@ -1,208 +0,0 @@ -{ - "model_id": "minimax/hailuo-2.3-fast", - "provider_id": "minimax", - "name": "MiniMax Hailuo 2.3 Fast", - "description": "A lower-latency version of Hailuo 2.3 that preserves core motion quality, visual consistency, and stylization while enabling faster iteration.", - "task": "Text-to-Video", - "tags": [ - "Video Generation", - "Image-to-Video", - "Fast" - ], - "context_length": null, - "max_output_tokens": null, - "schema_version": "1.0.0", - "examples": [ - { - "name": "Basic I2V", - "description": "Animate a photo with default settings", - "input": { - "first_frame_image": "https://replicate.delivery/xezq/MQpUhqkESIIQDlWUxtNcsznZLfUTmhEbCV3vdAZGHGPwwaMLA/tmpgl4gvv5n.jpeg", - "prompt": "Gentle movement and subtle animation, natural-looking motion", - "prompt_optimizer": true, - "fast_pretreatment": false, - "duration": 6, - "resolution": "768P" - }, - "output": { - "video": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/minimax__hailuo-2.3-fast/basic-i2v.mp4" - }, - "raw_response": { - "state": "Completed", - "result": { - "video": "https://video-product.cdn.minimax.io/inference_output/video/2026-04-17/eff40703-0339-4d1d-b66a-db050e878038/output.mp4", - "task_id": "388514752192863", - "status": "Success" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'minimax/hailuo-2.3-fast',\n {\n first_frame_image:\n 'https://replicate.delivery/xezq/MQpUhqkESIIQDlWUxtNcsznZLfUTmhEbCV3vdAZGHGPwwaMLA/tmpgl4gvv5n.jpeg',\n prompt: 'Gentle movement and subtle animation, natural-looking motion',\n prompt_optimizer: true,\n fast_pretreatment: false,\n duration: 6,\n resolution: '768P',\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "High Resolution I2V", - "description": "Animate a photo in 1080P", - "input": { - "first_frame_image": "https://replicate.delivery/xezq/IeNNble3XUqhpUZTd3CkYTUf8EgkFU1fl1Jnyive3B26MsGzC/tmp51dpln4i.jpeg", - "prompt": "Camera slowly pans across the scene with cinematic depth of field", - "prompt_optimizer": true, - "fast_pretreatment": false, - "duration": 6, - "resolution": "1080P" - }, - "output": { - "video": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/minimax__hailuo-2.3-fast/high-resolution-i2v.mp4" - }, - "raw_response": { - "state": "Completed", - "result": { - "video": "https://video-product.cdn.minimax.io/inference_output/video/2026-04-17/2b6251d2-d4ae-4d58-b12f-2609c50fadc2/output.mp4", - "task_id": "388515984507205", - "status": "Success" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'minimax/hailuo-2.3-fast',\n {\n first_frame_image:\n 'https://replicate.delivery/xezq/IeNNble3XUqhpUZTd3CkYTUf8EgkFU1fl1Jnyive3B26MsGzC/tmp51dpln4i.jpeg',\n prompt: 'Camera slowly pans across the scene with cinematic depth of field',\n prompt_optimizer: true,\n fast_pretreatment: false,\n duration: 6,\n resolution: '1080P',\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Fast Processing", - "description": "Quick I2V with fast pretreatment enabled", - "input": { - "first_frame_image": "https://replicate.delivery/xezq/jfh37lJpnDQhaKcAfCrxSCEh7HA7lv5cCWmJW284tYXwh1YWA/tmpw2i437qe.jpeg", - "prompt": "Hair blowing in the wind, eyes blinking naturally", - "prompt_optimizer": true, - "fast_pretreatment": true, - "duration": 6, - "resolution": "768P" - }, - "output": { - "video": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/minimax__hailuo-2.3-fast/fast-processing.mp4" - }, - "raw_response": { - "state": "Completed", - "result": { - "video": "https://video-product.cdn.minimax.io/inference_output/video/2026-04-17/b64303a0-0227-4d42-983a-dcaec397b6b1/output.mp4", - "task_id": "388515980755024", - "status": "Success" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'minimax/hailuo-2.3-fast',\n {\n first_frame_image:\n 'https://replicate.delivery/xezq/jfh37lJpnDQhaKcAfCrxSCEh7HA7lv5cCWmJW284tYXwh1YWA/tmpw2i437qe.jpeg',\n prompt: 'Hair blowing in the wind, eyes blinking naturally',\n prompt_optimizer: true,\n fast_pretreatment: true,\n duration: 6,\n resolution: '768P',\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - } - ], - "supports_async": false, - "external_info": "https://hailuoai.com/", - "terms": "https://hailuoai.com/terms", - "cover_image_url": "https://pub-26f1392c1b674324be6786695bd72257.r2.dev/minimax/hailuo-2.3-fast.png", - "metadata": { - "Resolutions": "540p, 720p, 1080p" - }, - "created_at": "2026-04-13 16:46:34", - "default_example": null, - "code_snippets": [], - "zdr": false, - "zdr_comment": null, - "schema": { - "input": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "first_frame_image": { - "description": "URL or base64 data URI of the first frame image", - "type": "string" - }, - "prompt": { - "type": "string", - "maxLength": 2000 - }, - "prompt_optimizer": { - "default": true, - "type": "boolean" - }, - "fast_pretreatment": { - "default": false, - "type": "boolean" - }, - "duration": { - "default": 6, - "anyOf": [ - { - "type": "number", - "const": 6 - }, - { - "type": "number", - "const": 10 - } - ] - }, - "resolution": { - "default": "768P", - "type": "string", - "enum": [ - "768P", - "1080P" - ] - } - }, - "required": [ - "first_frame_image", - "prompt_optimizer", - "fast_pretreatment", - "duration", - "resolution" - ], - "additionalProperties": false - }, - "output": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "video": { - "type": "string", - "format": "uri" - }, - "task_id": { - "type": "string" - }, - "status": { - "type": "string", - "enum": [ - "Preparing", - "Queueing", - "Processing", - "Success", - "Fail" - ] - } - }, - "required": [ - "task_id" - ], - "additionalProperties": false - } - } -} diff --git a/src/content/catalog-models/minimax-hailuo-2.3.json b/src/content/catalog-models/minimax-hailuo-2.3.json deleted file mode 100644 index c0583040d342de4..000000000000000 --- a/src/content/catalog-models/minimax-hailuo-2.3.json +++ /dev/null @@ -1,236 +0,0 @@ -{ - "model_id": "minimax/hailuo-2.3", - "provider_id": "minimax", - "name": "MiniMax Hailuo 2.3", - "description": "A high-fidelity video generation model optimized for realistic human motion, cinematic VFX, expressive characters, and strong prompt and style adherence across text-to-video and image-to-video workflows.", - "task": "Text-to-Video", - "tags": [ - "Video Generation", - "Cinematic", - "Image-to-Video" - ], - "context_length": null, - "max_output_tokens": null, - "schema_version": "1.0.0", - "examples": [ - { - "name": "Simple Video", - "description": "Basic text-to-video with default settings", - "input": { - "prompt": "A golden retriever playing fetch on a sandy beach at sunset", - "prompt_optimizer": true, - "fast_pretreatment": false, - "duration": 6, - "resolution": "768P" - }, - "output": { - "video": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/minimax__hailuo-2.3/simple-video.mp4" - }, - "raw_response": { - "state": "Completed", - "result": { - "video": "https://video-product.cdn.minimax.io/inference_output/video/2026-04-17/97d0c2d0-45ab-4ce8-a1f4-177401f43073/output.mp4", - "task_id": "388507504709991", - "status": "Success" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'minimax/hailuo-2.3',\n {\n prompt: 'A golden retriever playing fetch on a sandy beach at sunset',\n prompt_optimizer: true,\n fast_pretreatment: false,\n duration: 6,\n resolution: '768P',\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "High Resolution", - "description": "1080P video for higher quality output", - "input": { - "prompt": "A professional chef preparing sushi in a traditional Japanese kitchen, detailed close-up shots", - "prompt_optimizer": true, - "fast_pretreatment": false, - "duration": 6, - "resolution": "1080P" - }, - "output": { - "video": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/minimax__hailuo-2.3/high-resolution.mp4" - }, - "raw_response": { - "state": "Completed", - "result": { - "video": "https://video-product.cdn.minimax.io/inference_output/video/2026-04-17/1ee6a770-eb88-4b6a-86ea-61981f01ed65/output.mp4", - "task_id": "388510158565457", - "status": "Success" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'minimax/hailuo-2.3',\n {\n prompt:\n 'A professional chef preparing sushi in a traditional Japanese kitchen, detailed close-up shots',\n prompt_optimizer: true,\n fast_pretreatment: false,\n duration: 6,\n resolution: '1080P',\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Image to Video", - "description": "Animate a still image with I2V", - "input": { - "prompt": "Slowly zoom in with subtle parallax movement, gentle atmospheric motion", - "first_frame_image": "https://replicate.delivery/xezq/MQpUhqkESIIQDlWUxtNcsznZLfUTmhEbCV3vdAZGHGPwwaMLA/tmpgl4gvv5n.jpeg", - "prompt_optimizer": true, - "fast_pretreatment": false, - "duration": 6, - "resolution": "768P" - }, - "output": { - "video": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/minimax__hailuo-2.3/image-to-video.mp4" - }, - "raw_response": { - "state": "Completed", - "result": { - "video": "https://video-product.cdn.minimax.io/inference_output/video/2026-04-17/a19c7850-6f3b-47dd-b6f1-decb592a11ff/output.mp4", - "task_id": "388509844320343", - "status": "Success" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'minimax/hailuo-2.3',\n {\n prompt:\n 'Slowly zoom in with subtle parallax movement, gentle atmospheric motion',\n first_frame_image:\n 'https://replicate.delivery/xezq/MQpUhqkESIIQDlWUxtNcsznZLfUTmhEbCV3vdAZGHGPwwaMLA/tmpgl4gvv5n.jpeg',\n prompt_optimizer: true,\n fast_pretreatment: false,\n duration: 6,\n resolution: '768P',\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Fast Processing", - "description": "Enable fast pretreatment for quicker results", - "input": { - "prompt": "Fireworks exploding over a city skyline at night, colorful reflections on water", - "prompt_optimizer": true, - "fast_pretreatment": true, - "duration": 6, - "resolution": "768P" - }, - "output": { - "video": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/minimax__hailuo-2.3/fast-processing.mp4" - }, - "raw_response": { - "state": "Completed", - "result": { - "video": "https://video-product.cdn.minimax.io/inference_output/video/2026-04-17/438b5433-5d32-4760-9564-c86da3d22aee/output.mp4", - "task_id": "388509805367378", - "status": "Success" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'minimax/hailuo-2.3',\n {\n prompt:\n 'Fireworks exploding over a city skyline at night, colorful reflections on water',\n prompt_optimizer: true,\n fast_pretreatment: true,\n duration: 6,\n resolution: '768P',\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - } - ], - "supports_async": false, - "external_info": "https://hailuoai.com/", - "terms": "https://hailuoai.com/terms", - "cover_image_url": "https://pub-26f1392c1b674324be6786695bd72257.r2.dev/minimax/hailuo-2.3.png", - "metadata": { - "Resolutions": "540p, 720p, 1080p" - }, - "created_at": "2026-04-13 16:46:33", - "default_example": null, - "code_snippets": [], - "zdr": false, - "zdr_comment": null, - "schema": { - "input": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "prompt": { - "type": "string", - "maxLength": 2000 - }, - "first_frame_image": { - "type": "string" - }, - "prompt_optimizer": { - "default": true, - "type": "boolean" - }, - "fast_pretreatment": { - "default": false, - "type": "boolean" - }, - "duration": { - "default": 6, - "anyOf": [ - { - "type": "number", - "const": 6 - }, - { - "type": "number", - "const": 10 - } - ] - }, - "resolution": { - "default": "768P", - "type": "string", - "enum": [ - "768P", - "1080P" - ] - } - }, - "required": [ - "prompt_optimizer", - "fast_pretreatment", - "duration", - "resolution" - ], - "additionalProperties": false - }, - "output": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "video": { - "type": "string", - "format": "uri" - }, - "task_id": { - "type": "string" - }, - "status": { - "type": "string", - "enum": [ - "Preparing", - "Queueing", - "Processing", - "Success", - "Fail" - ] - } - }, - "required": [ - "task_id" - ], - "additionalProperties": false - } - } -} diff --git a/src/content/catalog-models/minimax-m2.7.json b/src/content/catalog-models/minimax-m2.7.json deleted file mode 100644 index a48ec3d1fefc5e3..000000000000000 --- a/src/content/catalog-models/minimax-m2.7.json +++ /dev/null @@ -1,746 +0,0 @@ -{ - "model_id": "minimax/m2.7", - "provider_id": "minimax", - "name": "MiniMax M2.7", - "description": "MiniMax's M2.7 language model with multilingual capabilities.", - "task": "Text Generation", - "tags": [ - "LLM", - "Multilingual" - ], - "context_length": 128000, - "max_output_tokens": 4096, - "schema_version": "1.0.0", - "examples": [ - { - "name": "Simple Conversation", - "description": "Basic chat completion request", - "input": { - "messages": [ - { - "role": "user", - "content": "What is the capital of France?" - } - ], - "max_tokens": 2048 - }, - "output": { - "text": "The capital of France is Paris." - }, - "raw_response": { - "state": "Completed", - "result": { - "id": "0631ffc9d58c021caa67f029a1b2cfde", - "choices": [ - { - "index": 0, - "message": { - "role": "assistant", - "content": "The capital of France is Paris.", - "name": "MiniMax AI", - "audio_content": "", - "reasoning_content": "The user asks: \"What is the capital of France?\" It's a simple factual question. The answer: Paris.\n\nWe should respond succinctly. Probably no need for extra context. Just answer.", - "reasoning_details": [ - { - "type": "reasoning.text", - "id": "reasoning-text-1", - "format": "MiniMax-response-v1", - "index": 0, - "text": "The user asks: \"What is the capital of France?\" It's a simple factual question. The answer: Paris.\n\nWe should respond succinctly. Probably no need for extra context. Just answer." - } - ] - }, - "finish_reason": "stop" - } - ], - "created": 1776471241, - "model": "MiniMax-M2.7", - "object": "chat.completion", - "usage": { - "total_tokens": 97, - "prompt_tokens": 48, - "completion_tokens": 49, - "total_characters": 0, - "completion_tokens_details": { - "reasoning_tokens": 42 - } - }, - "input_sensitive": false, - "output_sensitive": false, - "base_resp": { - "status_code": 0, - "status_msg": "" - }, - "input_sensitive_type": 0, - "output_sensitive_type": 0, - "output_sensitive_int": 0 - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'minimax/m2.7',\n {\n messages: [\n {\n role: 'user',\n content: 'What is the capital of France?',\n },\n ],\n max_tokens: 2048,\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "With System Prompt", - "description": "Using a system prompt to guide behavior", - "input": { - "messages": [ - { - "role": "system", - "content": "You are a helpful cooking assistant. Give concise recipes with metric measurements." - }, - { - "role": "user", - "content": "How do I make a simple pasta aglio e olio?" - } - ], - "temperature": 0.7, - "max_tokens": 2048 - }, - "output": { - "text": "# Pasta Aglio e Olio\n\n**Ingredients (2 servings):**\n\n- 200g spaghetti\n- 80ml extra virgin olive oil\n- 6 garlic cloves, thinly sliced\n- 1 tsp chili flakes (optional)\n- Fresh parsley, chopped\n- Salt to taste\n\n**Method:**\n\n1. Cook spaghetti in well-salted boiling water until al dente. Reserve 120ml pasta water.\n2. Heat olive oil in a pan over low-medium heat. Add garlic and chili flakes.\n3. Cook gently 2-3 minutes until garlic is golden (don't brown it).\n4. Add drained pasta to the pan. Toss with pasta water to create a light sauce.\n5. Finish with parsley and serve immediately.\n\n**Tips:**\n\n- Low heat is key\u2014garlic burns easily\n- Pasta water starches help the sauce cling to the noodles\n- Best served immediately" - }, - "raw_response": { - "state": "Completed", - "result": { - "id": "0631ffc9bee6dd1636ea41aa480eeabc", - "choices": [ - { - "index": 0, - "message": { - "role": "assistant", - "content": "# Pasta Aglio e Olio\n\n**Ingredients (2 servings):**\n\n- 200g spaghetti\n- 80ml extra virgin olive oil\n- 6 garlic cloves, thinly sliced\n- 1 tsp chili flakes (optional)\n- Fresh parsley, chopped\n- Salt to taste\n\n**Method:**\n\n1. Cook spaghetti in well-salted boiling water until al dente. Reserve 120ml pasta water.\n2. Heat olive oil in a pan over low-medium heat. Add garlic and chili flakes.\n3. Cook gently 2-3 minutes until garlic is golden (don't brown it).\n4. Add drained pasta to the pan. Toss with pasta water to create a light sauce.\n5. Finish with parsley and serve immediately.\n\n**Tips:**\n\n- Low heat is key\u2014garlic burns easily\n- Pasta water starches help the sauce cling to the noodles\n- Best served immediately", - "name": "MiniMax AI", - "audio_content": "", - "reasoning_content": "The user wants a simple pasta aglio e olio recipe. This is a classic Italian dish - pasta with garlic and oil. I'll give a concise recipe with metric measurements.", - "reasoning_details": [ - { - "type": "reasoning.text", - "id": "reasoning-text-1", - "format": "MiniMax-response-v1", - "index": 0, - "text": "The user wants a simple pasta aglio e olio recipe. This is a classic Italian dish - pasta with garlic and oil. I'll give a concise recipe with metric measurements." - } - ] - }, - "finish_reason": "stop" - } - ], - "created": 1776471241, - "model": "MiniMax-M2.7", - "object": "chat.completion", - "usage": { - "total_tokens": 259, - "prompt_tokens": 41, - "completion_tokens": 218, - "total_characters": 0, - "completion_tokens_details": { - "reasoning_tokens": 39 - } - }, - "input_sensitive": false, - "output_sensitive": false, - "base_resp": { - "status_code": 0, - "status_msg": "" - }, - "input_sensitive_type": 0, - "output_sensitive_type": 0, - "output_sensitive_int": 0 - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'minimax/m2.7',\n {\n messages: [\n {\n role: 'system',\n content:\n 'You are a helpful cooking assistant. Give concise recipes with metric measurements.',\n },\n {\n role: 'user',\n content: 'How do I make a simple pasta aglio e olio?',\n },\n ],\n temperature: 0.7,\n max_tokens: 2048,\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Multi-turn Conversation", - "description": "Continuing a conversation with context", - "input": { - "messages": [ - { - "role": "user", - "content": "What are the main differences between TCP and UDP?" - }, - { - "role": "assistant", - "content": "TCP is connection-oriented and guarantees delivery, while UDP is connectionless and faster but without delivery guarantees." - }, - { - "role": "user", - "content": "When would I choose UDP over TCP?" - } - ], - "temperature": 0.5, - "max_tokens": 2048 - }, - "output": { - "text": "Choose UDP over TCP when:\n\n1. **Real-time performance matters more than reliability**\n - Video/audio streaming\n - VoIP calls\n - Online gaming\n\n2. **Broadcasting or multicasting is needed**\n - UDP supports these natively; TCP doesn't\n\n3. **Low latency is critical**\n - Live sports streams\n - Financial market data feeds\n\n4. **The application handles its own reliability**\n - QUIC protocol (used by HTTP/3)\n - Custom protocols with built-in error handling\n\n5. **Simple request/response where loss is tolerable**\n - DNS queries (most use UDP)\n\n6. **Message sizes are small and frequent**\n - Connection overhead would outweigh benefits\n\n**Bottom line:** If a dropped packet is preferable to a delayed packet, UDP is likely the better choice." - }, - "raw_response": { - "state": "Completed", - "result": { - "id": "0631ffcb908457a58edde3894c3dd42d", - "choices": [ - { - "index": 0, - "message": { - "role": "assistant", - "content": "Choose UDP over TCP when:\n\n1. **Real-time performance matters more than reliability**\n - Video/audio streaming\n - VoIP calls\n - Online gaming\n\n2. **Broadcasting or multicasting is needed**\n - UDP supports these natively; TCP doesn't\n\n3. **Low latency is critical**\n - Live sports streams\n - Financial market data feeds\n\n4. **The application handles its own reliability**\n - QUIC protocol (used by HTTP/3)\n - Custom protocols with built-in error handling\n\n5. **Simple request/response where loss is tolerable**\n - DNS queries (most use UDP)\n\n6. **Message sizes are small and frequent**\n - Connection overhead would outweigh benefits\n\n**Bottom line:** If a dropped packet is preferable to a delayed packet, UDP is likely the better choice.", - "name": "MiniMax AI", - "audio_content": "", - "reasoning_content": "The user is asking about when to choose UDP over TCP. This is a follow-up question about networking protocols. Let me provide a comprehensive answer about use cases where UDP is preferred.\n\nKey scenarios for choosing UDP:\n1. Real-time applications where speed matters more than reliability (VoIP, video conferencing, online gaming)\n2. Broadcasting/multicasting (UDP supports these, TCP doesn't natively)\n3. Simple query-response protocols where occasional loss is acceptable (DNS queries)\n4. When you need low latency more than guaranteed delivery\n5. When the application layer handles its own reliability/ordering\n6. Small, frequent messages where connection overhead is costly\n7. Live streaming where missing a packet is better than waiting for retransmission\n\nLet me provide a clear, helpful answer.", - "reasoning_details": [ - { - "type": "reasoning.text", - "id": "reasoning-text-1", - "format": "MiniMax-response-v1", - "index": 0, - "text": "The user is asking about when to choose UDP over TCP. This is a follow-up question about networking protocols. Let me provide a comprehensive answer about use cases where UDP is preferred.\n\nKey scenarios for choosing UDP:\n1. Real-time applications where speed matters more than reliability (VoIP, video conferencing, online gaming)\n2. Broadcasting/multicasting (UDP supports these, TCP doesn't natively)\n3. Simple query-response protocols where occasional loss is acceptable (DNS queries)\n4. When you need low latency more than guaranteed delivery\n5. When the application layer handles its own reliability/ordering\n6. Small, frequent messages where connection overhead is costly\n7. Live streaming where missing a packet is better than waiting for retransmission\n\nLet me provide a clear, helpful answer." - } - ] - }, - "finish_reason": "stop" - } - ], - "created": 1776471243, - "model": "MiniMax-M2.7", - "object": "chat.completion", - "usage": { - "total_tokens": 417, - "prompt_tokens": 89, - "completion_tokens": 328, - "total_characters": 0, - "completion_tokens_details": { - "reasoning_tokens": 159 - } - }, - "input_sensitive": false, - "output_sensitive": false, - "base_resp": { - "status_code": 0, - "status_msg": "" - }, - "input_sensitive_type": 0, - "output_sensitive_type": 0, - "output_sensitive_int": 0 - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'minimax/m2.7',\n {\n messages: [\n {\n role: 'user',\n content: 'What are the main differences between TCP and UDP?',\n },\n {\n role: 'assistant',\n content:\n 'TCP is connection-oriented and guarantees delivery, while UDP is connectionless and faster but without delivery guarantees.',\n },\n {\n role: 'user',\n content: 'When would I choose UDP over TCP?',\n },\n ],\n temperature: 0.5,\n max_tokens: 2048,\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Creative Writing", - "description": "Higher temperature for creative output", - "input": { - "messages": [ - { - "role": "user", - "content": "Write a haiku about programming." - } - ], - "temperature": 0.9, - "max_tokens": 2048 - }, - "output": { - "text": "Code streams like soft rain \nloops and functions cascade on \nbugs fade into light" - }, - "raw_response": { - "state": "Completed", - "result": { - "id": "0631ffce4998ad3d775b54c22643a39a", - "choices": [ - { - "index": 0, - "message": { - "role": "assistant", - "content": "Code streams like soft rain \nloops and functions cascade on \nbugs fade into light", - "name": "MiniMax AI", - "audio_content": "", - "reasoning_content": "The user wants a haiku about programming. The request is straightforward. We need to produce a haiku, which is a three-line poem with a 5-7-5 syllable structure. The theme: programming.\n\nWe can produce something like:\n\n\"Code streams like rain, // loops and functions cascade // bugs fade to light.\" Let's count syllables.\n\nFirst line: \"Code streams like rain,\" => \"Code\" (1), \"streams\" (1), \"like\" (1), \"rain\" (1) -> that's 4 syllables? Actually \"Code\" (1) \"streams\" (1) \"like\" (1) \"rain\" (1) = 4. Need 5 syllables. Could be \"Code streams like rain\" (4) add \"soft\"? \"Code streams like soft rain\" => \"Code\"1 \"streams\"1 \"like\"1 \"soft\"1 \"rain\"1 = 5. Good.\n\nSecond line: \"loops and functions cascade\" => loops(1) and(1) func-tions(2?) Actually \"functions\" = 2 syllables (func-tions). So loops(1), and(1), func(1) tions(1) => total 5? Wait let's count: loops (1), and (1), func (1), tions (1) = 4? Actually \"functions\" has two syllables: \"func-tions\". So loops (1) + and (1) + func (1) + tions (1) = 4. Need 7 syllables. Could be \"loops and functions cascade\" count: loops (1) and (1) functions (2) cascade (2) => total 6? Let's count: loops (1) = 1, and (1) = 2, func (1) = 3, tions (1) = 4, cas (1) = 5, cade (1) = 6. Need 7 syllables. Add \"softly\" maybe? \"loops and functions cascade softly\". Count: loops (1), and (1) =2, functions (2)=4, cascade (2)=6, softly (2)=8. That's 8. Remove something. Could be \"loops and functions cascade\" = 6. Need one more. Maybe \"loops and functions cascade on\". Count: loops(1), and(1)=2, functions(2)=4, cascade(2)=6, on(1)=7. Good.\n\nThird line: \"bugs fade to light\". Count: bugs(1) fade(1) to(1) light(1) =4, need 5 syllables. Could be \"bugs fade into light\". Count: bugs(1), fade(1), in(1), to(1), light(1) =5. Good. But \"into\" is two syllables? Actually \"in-to\" =2 syllables. So \"bugs fade into light\": bugs(1), fade(1), in(1), to(1), light(1) =5? Let's count: \"bugs\" (1), \"fade\" (1) ->2, \"in-to\" (2) ->4, \"light\" (1) ->5. That's correct.\n\nSo final haiku:\n\nCode streams like soft rain\nloops and functions cascade on\nbugs fade into light\n\nCheck each line syllable count:\n\nLine1: \"Code\"1 \"streams\"1 \"like\"1 \"soft\"1 \"rain\"1 =>5 correct.\n\nLine2: \"loops\"1 \"and\"1 \"func\"1 \"tions\"1 \"cas\"1 \"cade\"1 \"on\"1 =>7? Let's count: \"loops\" (1) \"and\" (2) \"func\" (3) \"tions\" (4) \"cas\" (5) \"cade\" (6) \"on\" (7). That's 7. Good.\n\nLine3: \"bugs\"1 \"fade\"2? Actually \"fade\" is one syllable, \"in\"1 \"to\"1 \"light\"1 = \"bugs\"(1), \"fade\"(2), \"in\"(3), \"to\"(4), \"light\"(5). Wait we need to count \"in\" and \"to\" each one syllable. So \"bugs fade into light\": bugs(1), fade(1) =2, in(1)=3, to(1)=4, light(1)=5. Actually we have \"bugs fade into light\": but we might need \"in\" and \"to\"? It's \"into\": \"in\"+\"to\"? \"into\" is two syllables: \"in\"+\"to\". So total: bugs(1) fade(2) in(3) to(4) light(5) =>5. Good.\n\nThus haiku meets format.\n\nWe can optionally include a title? The user didn't ask for title. Provide just the haiku. The style might be plain text.\n\nLet's output. Also ensure we comply with no disallowed content. It's fine.\n\nProceed.", - "reasoning_details": [ - { - "type": "reasoning.text", - "id": "reasoning-text-1", - "format": "MiniMax-response-v1", - "index": 0, - "text": "The user wants a haiku about programming. The request is straightforward. We need to produce a haiku, which is a three-line poem with a 5-7-5 syllable structure. The theme: programming.\n\nWe can produce something like:\n\n\"Code streams like rain, // loops and functions cascade // bugs fade to light.\" Let's count syllables.\n\nFirst line: \"Code streams like rain,\" => \"Code\" (1), \"streams\" (1), \"like\" (1), \"rain\" (1) -> that's 4 syllables? Actually \"Code\" (1) \"streams\" (1) \"like\" (1) \"rain\" (1) = 4. Need 5 syllables. Could be \"Code streams like rain\" (4) add \"soft\"? \"Code streams like soft rain\" => \"Code\"1 \"streams\"1 \"like\"1 \"soft\"1 \"rain\"1 = 5. Good.\n\nSecond line: \"loops and functions cascade\" => loops(1) and(1) func-tions(2?) Actually \"functions\" = 2 syllables (func-tions). So loops(1), and(1), func(1) tions(1) => total 5? Wait let's count: loops (1), and (1), func (1), tions (1) = 4? Actually \"functions\" has two syllables: \"func-tions\". So loops (1) + and (1) + func (1) + tions (1) = 4. Need 7 syllables. Could be \"loops and functions cascade\" count: loops (1) and (1) functions (2) cascade (2) => total 6? Let's count: loops (1) = 1, and (1) = 2, func (1) = 3, tions (1) = 4, cas (1) = 5, cade (1) = 6. Need 7 syllables. Add \"softly\" maybe? \"loops and functions cascade softly\". Count: loops (1), and (1) =2, functions (2)=4, cascade (2)=6, softly (2)=8. That's 8. Remove something. Could be \"loops and functions cascade\" = 6. Need one more. Maybe \"loops and functions cascade on\". Count: loops(1), and(1)=2, functions(2)=4, cascade(2)=6, on(1)=7. Good.\n\nThird line: \"bugs fade to light\". Count: bugs(1) fade(1) to(1) light(1) =4, need 5 syllables. Could be \"bugs fade into light\". Count: bugs(1), fade(1), in(1), to(1), light(1) =5. Good. But \"into\" is two syllables? Actually \"in-to\" =2 syllables. So \"bugs fade into light\": bugs(1), fade(1), in(1), to(1), light(1) =5? Let's count: \"bugs\" (1), \"fade\" (1) ->2, \"in-to\" (2) ->4, \"light\" (1) ->5. That's correct.\n\nSo final haiku:\n\nCode streams like soft rain\nloops and functions cascade on\nbugs fade into light\n\nCheck each line syllable count:\n\nLine1: \"Code\"1 \"streams\"1 \"like\"1 \"soft\"1 \"rain\"1 =>5 correct.\n\nLine2: \"loops\"1 \"and\"1 \"func\"1 \"tions\"1 \"cas\"1 \"cade\"1 \"on\"1 =>7? Let's count: \"loops\" (1) \"and\" (2) \"func\" (3) \"tions\" (4) \"cas\" (5) \"cade\" (6) \"on\" (7). That's 7. Good.\n\nLine3: \"bugs\"1 \"fade\"2? Actually \"fade\" is one syllable, \"in\"1 \"to\"1 \"light\"1 = \"bugs\"(1), \"fade\"(2), \"in\"(3), \"to\"(4), \"light\"(5). Wait we need to count \"in\" and \"to\" each one syllable. So \"bugs fade into light\": bugs(1), fade(1) =2, in(1)=3, to(1)=4, light(1)=5. Actually we have \"bugs fade into light\": but we might need \"in\" and \"to\"? It's \"into\": \"in\"+\"to\"? \"into\" is two syllables: \"in\"+\"to\". So total: bugs(1) fade(2) in(3) to(4) light(5) =>5. Good.\n\nThus haiku meets format.\n\nWe can optionally include a title? The user didn't ask for title. Provide just the haiku. The style might be plain text.\n\nLet's output. Also ensure we comply with no disallowed content. It's fine.\n\nProceed." - } - ] - }, - "finish_reason": "stop" - } - ], - "created": 1776471246, - "model": "MiniMax-M2.7", - "object": "chat.completion", - "usage": { - "total_tokens": 1124, - "prompt_tokens": 48, - "completion_tokens": 1076, - "total_characters": 0, - "completion_tokens_details": { - "reasoning_tokens": 1059 - } - }, - "input_sensitive": false, - "output_sensitive": false, - "base_resp": { - "status_code": 0, - "status_msg": "" - }, - "input_sensitive_type": 0, - "output_sensitive_type": 0, - "output_sensitive_int": 0 - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'minimax/m2.7',\n {\n messages: [\n {\n role: 'user',\n content: 'Write a haiku about programming.',\n },\n ],\n temperature: 0.9,\n max_tokens: 2048,\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - } - ], - "supports_async": false, - "external_info": "https://www.minimaxi.com/", - "terms": "https://www.minimaxi.com/terms", - "cover_image_url": "https://pub-26f1392c1b674324be6786695bd72257.r2.dev/minimax/m2.7.png", - "metadata": { - "Architecture": "Transformer" - }, - "created_at": "2026-04-13 16:46:35", - "default_example": null, - "code_snippets": [], - "zdr": false, - "zdr_comment": null, - "schema": { - "input": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "messages": { - "type": "array", - "items": { - "type": "object", - "properties": { - "role": { - "type": "string", - "enum": [ - "system", - "user", - "assistant", - "tool" - ] - }, - "name": { - "type": "string" - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "array", - "items": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "text" - }, - "text": { - "type": "string" - } - }, - "required": [ - "type", - "text" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "image_url" - }, - "image_url": { - "type": "object", - "properties": { - "url": { - "type": "string" - } - }, - "required": [ - "url" - ], - "additionalProperties": false - } - }, - "required": [ - "type", - "image_url" - ], - "additionalProperties": false - } - ] - } - } - ] - }, - "tool_calls": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "const": "function" - }, - "function": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "arguments": { - "type": "string" - } - }, - "required": [ - "name", - "arguments" - ], - "additionalProperties": false - } - }, - "required": [ - "id", - "type", - "function" - ], - "additionalProperties": false - } - } - }, - "required": [ - "role", - "content" - ], - "additionalProperties": {} - } - }, - "temperature": { - "type": "number", - "minimum": 0, - "maximum": 1 - }, - "max_tokens": { - "type": "number", - "exclusiveMinimum": 0 - }, - "max_completion_tokens": { - "type": "number", - "exclusiveMinimum": 0 - }, - "top_p": { - "type": "number", - "minimum": 0, - "maximum": 1 - }, - "stream": { - "type": "boolean" - }, - "stream_options": { - "type": "object", - "properties": { - "include_usage": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "tools": { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "function" - }, - "function": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "parameters": {} - }, - "required": [ - "name", - "description", - "parameters" - ], - "additionalProperties": false - } - }, - "required": [ - "type", - "function" - ], - "additionalProperties": false - } - }, - "tool_choice": { - "type": "string", - "enum": [ - "none", - "auto" - ] - }, - "response_format": { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "json_schema" - }, - "json_schema": { - "type": "object", - "properties": { - "name": { - "type": "string", - "maxLength": 64 - }, - "description": { - "type": "string" - }, - "schema": { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "object" - }, - "properties": {} - }, - "required": [ - "type", - "properties" - ], - "additionalProperties": false - } - }, - "required": [ - "name", - "schema" - ], - "additionalProperties": false - } - }, - "required": [ - "type", - "json_schema" - ], - "additionalProperties": false - }, - "mask_sensitive_info": { - "type": "boolean" - } - }, - "required": [ - "messages" - ], - "additionalProperties": {} - }, - "output": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "choices": { - "type": "array", - "items": { - "type": "object", - "properties": { - "index": { - "type": "number" - }, - "message": { - "type": "object", - "properties": { - "role": { - "type": "string", - "const": "assistant" - }, - "content": { - "type": "string" - }, - "tool_calls": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "const": "function" - }, - "function": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "arguments": { - "type": "string" - } - }, - "required": [ - "name", - "arguments" - ], - "additionalProperties": false - } - }, - "required": [ - "id", - "type", - "function" - ], - "additionalProperties": false - } - } - }, - "required": [ - "role", - "content" - ], - "additionalProperties": {} - }, - "finish_reason": { - "type": "string", - "enum": [ - "stop", - "length", - "tool_calls" - ] - } - }, - "required": [ - "index", - "message", - "finish_reason" - ], - "additionalProperties": {} - } - }, - "created": { - "type": "number" - }, - "model": { - "type": "string" - }, - "object": { - "type": "string", - "enum": [ - "chat.completion", - "chat.completion.chunk" - ] - }, - "usage": { - "type": "object", - "properties": { - "total_tokens": { - "type": "number" - }, - "prompt_tokens": { - "type": "number" - }, - "completion_tokens": { - "type": "number" - } - }, - "required": [ - "total_tokens", - "prompt_tokens", - "completion_tokens" - ], - "additionalProperties": {} - }, - "input_sensitive": { - "type": "boolean" - }, - "output_sensitive": { - "type": "boolean" - }, - "base_resp": { - "type": "object", - "properties": { - "status_code": { - "type": "number" - }, - "status_msg": { - "type": "string" - } - }, - "required": [ - "status_code", - "status_msg" - ], - "additionalProperties": false - } - }, - "required": [ - "id", - "choices", - "created", - "model", - "object" - ], - "additionalProperties": {} - } - } -} diff --git a/src/content/catalog-models/minimax-music-2.6.json b/src/content/catalog-models/minimax-music-2.6.json deleted file mode 100644 index b93b42fc3d0a0f3..000000000000000 --- a/src/content/catalog-models/minimax-music-2.6.json +++ /dev/null @@ -1,275 +0,0 @@ -{ - "model_id": "minimax/music-2.6", - "provider_id": "minimax", - "name": "MiniMax Music 2.6", - "description": "MiniMax's music generation model that creates full-length songs with vocals from text prompts and lyrics, or instrumental tracks. Supports BPM/key control and auto-generated lyrics.", - "task": "Music Generation", - "tags": [ - "Music", - "Audio Generation", - "Vocals", - "Instrumental" - ], - "context_length": null, - "max_output_tokens": null, - "schema_version": "1.0.0", - "examples": [ - { - "name": "Simple Prompt", - "description": "Generate music from a style description with auto-generated lyrics", - "input": { - "prompt": "An upbeat electronic dance track with a catchy synth melody and driving beat", - "lyrics_optimizer": true, - "is_instrumental": false - }, - "output": { - "audio": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/minimax__music-2.6/simple-prompt.mp3" - }, - "raw_response": { - "state": "Completed", - "result": { - "audio": "https://minimax-algeng-chat-tts-us.oss-us-east-1.aliyuncs.com/music%2Fprod%2Ftts-20260417092034-QxSPMzdbiRxBSbDb.mp3" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'minimax/music-2.6',\n {\n prompt:\n 'An upbeat electronic dance track with a catchy synth melody and driving beat',\n lyrics_optimizer: true,\n is_instrumental: false,\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "With Lyrics", - "description": "Generate a song with custom lyrics", - "input": { - "prompt": "A warm acoustic folk ballad with fingerpicked guitar and gentle vocals", - "lyrics": "Walking down a dusty road\nWith the sunset painting gold\nEvery step a story told\nOf the places I call home", - "lyrics_optimizer": false, - "is_instrumental": false - }, - "output": { - "audio": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/minimax__music-2.6/with-lyrics.mp3" - }, - "raw_response": { - "state": "Completed", - "result": { - "audio": "https://minimax-algeng-chat-tts-us.oss-us-east-1.aliyuncs.com/music%2Fprod%2Ftts-20260417091919-YiIxwmvIqXtREDcu.mp3" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'minimax/music-2.6',\n {\n prompt:\n 'A warm acoustic folk ballad with fingerpicked guitar and gentle vocals',\n lyrics:\n 'Walking down a dusty road\\nWith the sunset painting gold\\nEvery step a story told\\nOf the places I call home',\n lyrics_optimizer: false,\n is_instrumental: false,\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Instrumental", - "description": "Generate instrumental music without vocals", - "input": { - "prompt": "A calm lo-fi hip hop instrumental with vinyl crackle and mellow piano chords", - "lyrics_optimizer": false, - "is_instrumental": true - }, - "output": { - "audio": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/minimax__music-2.6/instrumental.mp3" - }, - "raw_response": { - "state": "Completed", - "result": { - "audio": "https://minimax-algeng-chat-tts-us.oss-us-east-1.aliyuncs.com/music%2Fprod%2Ftts-20260417092057-LOwvBOOdyGvAyHkQ.mp3" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'minimax/music-2.6',\n {\n prompt:\n 'A calm lo-fi hip hop instrumental with vinyl crackle and mellow piano chords',\n lyrics_optimizer: false,\n is_instrumental: true,\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "High Quality Audio", - "description": "Specify audio format and sample rate", - "input": { - "prompt": "An orchestral cinematic score building to an epic crescendo with full symphony", - "sample_rate": 44100, - "format": "wav", - "lyrics_optimizer": true, - "is_instrumental": false - }, - "output": { - "audio": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/minimax__music-2.6/high-quality-audio.wav" - }, - "raw_response": { - "state": "Completed", - "result": { - "audio": "https://minimax-algeng-chat-tts-us.oss-us-east-1.aliyuncs.com/music%2Fprod%2Ftts-20260417092208-UGTfqDggHaemCDAW.wav" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'minimax/music-2.6',\n {\n prompt:\n 'An orchestral cinematic score building to an epic crescendo with full symphony',\n sample_rate: 44100,\n format: 'wav',\n lyrics_optimizer: true,\n is_instrumental: false,\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Auto-Generated Lyrics", - "description": "Let the model generate lyrics from the prompt", - "input": { - "prompt": "A cheerful pop song about a summer road trip with friends", - "lyrics_optimizer": true, - "is_instrumental": false - }, - "output": { - "audio": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/minimax__music-2.6/auto-generated-lyrics.mp3" - }, - "raw_response": { - "state": "Completed", - "result": { - "audio": "https://minimax-algeng-chat-tts-us.oss-us-east-1.aliyuncs.com/music%2Fprod%2Ftts-20260417092245-UlqOBbhqSXtRPopt.mp3" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'minimax/music-2.6',\n {\n prompt: 'A cheerful pop song about a summer road trip with friends',\n lyrics_optimizer: true,\n is_instrumental: false,\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - } - ], - "supports_async": false, - "external_info": "https://www.minimaxi.com/", - "terms": "https://www.minimaxi.com/terms", - "cover_image_url": "https://pub-26f1392c1b674324be6786695bd72257.r2.dev/minimax/music-2.6.png", - "metadata": { - "Max Duration": "~6 minutes", - "Modes": "Vocals, Instrumental, Auto-Lyrics", - "Audio Formats": "mp3, wav" - }, - "created_at": "2026-04-14 18:41:44", - "default_example": null, - "code_snippets": [], - "zdr": false, - "zdr_comment": null, - "schema": { - "input": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "prompt": { - "description": "Description of the music style, mood, and scenario", - "type": "string", - "maxLength": 2000 - }, - "lyrics": { - "description": "Song lyrics, using \\n to separate lines", - "type": "string", - "minLength": 1, - "maxLength": 3500 - }, - "sample_rate": { - "description": "Audio sample rate", - "anyOf": [ - { - "type": "number", - "const": 16000 - }, - { - "type": "number", - "const": 24000 - }, - { - "type": "number", - "const": 32000 - }, - { - "type": "number", - "const": 44100 - } - ] - }, - "bitrate": { - "description": "Audio bitrate", - "anyOf": [ - { - "type": "number", - "const": 32000 - }, - { - "type": "number", - "const": 64000 - }, - { - "type": "number", - "const": 128000 - }, - { - "type": "number", - "const": 256000 - } - ] - }, - "format": { - "description": "Audio format", - "type": "string", - "enum": [ - "mp3", - "wav" - ] - }, - "lyrics_optimizer": { - "description": "Automatically generate lyrics based on the prompt description", - "default": false, - "type": "boolean" - }, - "is_instrumental": { - "description": "Generate instrumental music (no vocals)", - "default": false, - "type": "boolean" - } - }, - "required": [ - "prompt", - "lyrics_optimizer", - "is_instrumental" - ], - "additionalProperties": false - }, - "output": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "audio": { - "description": "URL to the generated audio file", - "type": "string", - "format": "uri" - } - }, - "required": [ - "audio" - ], - "additionalProperties": false - } - } -} diff --git a/src/content/catalog-models/minimax-speech-2.8-hd.json b/src/content/catalog-models/minimax-speech-2.8-hd.json deleted file mode 100644 index 3d9f35c3020fbd8..000000000000000 --- a/src/content/catalog-models/minimax-speech-2.8-hd.json +++ /dev/null @@ -1,274 +0,0 @@ -{ - "model_id": "minimax/speech-2.8-hd", - "provider_id": "minimax", - "name": "MiniMax Speech 2.8 HD", - "description": "MiniMax Speech 2.8 HD focuses on studio-grade audio generation with emotion control, multilingual support (40+ languages), and voice cloning.", - "task": "Text-to-Speech", - "tags": [ - "TTS", - "Speech Synthesis", - "Voice Cloning", - "Multilingual", - "High Quality" - ], - "context_length": null, - "max_output_tokens": null, - "schema_version": "1.0.0", - "examples": [ - { - "name": "Simple Speech", - "description": "Generate speech with default settings", - "input": { - "text": "Hello! Welcome to Cloudflare AI Gateway. Let me show you what we can do.", - "voice_id": "English_expressive_narrator", - "speed": 1, - "volume": 1, - "pitch": 0, - "format": "mp3" - }, - "output": { - "audio": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/minimax__speech-2.8-hd/simple-speech.mp3" - }, - "raw_response": { - "state": "Completed", - "result": { - "audio": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/minimax__speech-2.8-hd/simple-speech.mp3" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'minimax/speech-2.8-hd',\n {\n text: 'Hello! Welcome to Cloudflare AI Gateway. Let me show you what we can do.',\n voice_id: 'English_expressive_narrator',\n speed: 1,\n volume: 1,\n pitch: 0,\n format: 'mp3',\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Custom Voice", - "description": "Use a specific voice and adjust speed", - "input": { - "text": "The weather today is sunny with a high of 72 degrees. Perfect for a walk in the park.", - "voice_id": "English_expressive_narrator", - "speed": 0.9, - "volume": 1, - "pitch": 0, - "format": "mp3" - }, - "output": { - "audio": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/minimax__speech-2.8-hd/custom-voice.mp3" - }, - "raw_response": { - "state": "Completed", - "result": { - "audio": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/minimax__speech-2.8-hd/custom-voice.mp3" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'minimax/speech-2.8-hd',\n {\n text: 'The weather today is sunny with a high of 72 degrees. Perfect for a walk in the park.',\n voice_id: 'English_expressive_narrator',\n speed: 0.9,\n volume: 1,\n pitch: 0,\n format: 'mp3',\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "With Emotion", - "description": "Apply emotional tone to speech", - "input": { - "text": "Congratulations! You've just won the grand prize! This is absolutely incredible news!", - "voice_id": "English_expressive_narrator", - "speed": 1, - "volume": 1, - "pitch": 0, - "emotion": "happy", - "format": "mp3" - }, - "output": { - "audio": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/minimax__speech-2.8-hd/with-emotion.mp3" - }, - "raw_response": { - "state": "Completed", - "result": { - "audio": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/minimax__speech-2.8-hd/with-emotion.mp3" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'minimax/speech-2.8-hd',\n {\n text: \"Congratulations! You've just won the grand prize! This is absolutely incredible news!\",\n voice_id: 'English_expressive_narrator',\n speed: 1,\n volume: 1,\n pitch: 0,\n emotion: 'happy',\n format: 'mp3',\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "High Sample Rate", - "description": "Studio quality at 44.1kHz sample rate", - "input": { - "text": "This recording is generated at studio quality sample rate for the highest possible audio fidelity.", - "voice_id": "English_expressive_narrator", - "speed": 1, - "volume": 1, - "pitch": 0, - "format": "mp3", - "sample_rate": 44100 - }, - "output": { - "audio": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/minimax__speech-2.8-hd/high-sample-rate.mp3" - }, - "raw_response": { - "state": "Completed", - "result": { - "audio": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/minimax__speech-2.8-hd/high-sample-rate.mp3" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'minimax/speech-2.8-hd',\n {\n text: 'This recording is generated at studio quality sample rate for the highest possible audio fidelity.',\n voice_id: 'English_expressive_narrator',\n speed: 1,\n volume: 1,\n pitch: 0,\n format: 'mp3',\n sample_rate: 44100,\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - } - ], - "supports_async": false, - "external_info": "https://www.minimaxi.com/", - "terms": "https://www.minimaxi.com/terms", - "cover_image_url": "https://pub-26f1392c1b674324be6786695bd72257.r2.dev/minimax/speech-2.8-hd.png", - "metadata": { - "Languages": "40+", - "Voice Cloning": "Yes", - "Emotion Control": "Yes" - }, - "created_at": "2026-04-13 16:46:35", - "default_example": null, - "code_snippets": [], - "zdr": false, - "zdr_comment": null, - "schema": { - "input": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "text": { - "description": "The text to convert to speech. Maximum 10,000 characters.", - "type": "string", - "maxLength": 10000 - }, - "voice_id": { - "description": "The voice ID to use for synthesis", - "default": "English_expressive_narrator", - "type": "string" - }, - "speed": { - "description": "Speech speed (0.5 to 2)", - "default": 1, - "type": "number", - "minimum": 0.5, - "maximum": 2 - }, - "volume": { - "description": "Speech volume (0 to 10)", - "default": 1, - "type": "number", - "minimum": 0, - "maximum": 10 - }, - "pitch": { - "description": "Pitch adjustment (-12 to 12)", - "default": 0, - "type": "integer", - "minimum": -12, - "maximum": 12 - }, - "emotion": { - "description": "Emotion control for synthesized speech", - "type": "string", - "enum": [ - "happy", - "sad", - "angry", - "fearful", - "disgusted", - "surprised", - "calm", - "fluent" - ] - }, - "format": { - "description": "Output audio format", - "default": "mp3", - "type": "string", - "enum": [ - "mp3", - "flac", - "wav" - ] - }, - "sample_rate": { - "description": "Audio sample rate", - "anyOf": [ - { - "type": "number", - "const": 8000 - }, - { - "type": "number", - "const": 16000 - }, - { - "type": "number", - "const": 22050 - }, - { - "type": "number", - "const": 24000 - }, - { - "type": "number", - "const": 32000 - }, - { - "type": "number", - "const": 44100 - } - ] - } - }, - "required": [ - "text", - "voice_id", - "speed", - "volume", - "pitch", - "format" - ], - "additionalProperties": false - }, - "output": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "audio": { - "description": "URL to the generated audio file", - "type": "string" - } - }, - "required": [ - "audio" - ], - "additionalProperties": false - } - } -} diff --git a/src/content/catalog-models/minimax-speech-2.8-turbo.json b/src/content/catalog-models/minimax-speech-2.8-turbo.json deleted file mode 100644 index ef43ef033625005..000000000000000 --- a/src/content/catalog-models/minimax-speech-2.8-turbo.json +++ /dev/null @@ -1,273 +0,0 @@ -{ - "model_id": "minimax/speech-2.8-turbo", - "provider_id": "minimax", - "name": "MiniMax Speech 2.8 Turbo", - "description": "MiniMax Speech 2.8 Turbo turns text into natural, expressive speech with voice cloning, emotion control, and 40+ language support at faster speeds.", - "task": "Text-to-Speech", - "tags": [ - "TTS", - "Speech Synthesis", - "Voice Cloning", - "Multilingual", - "Fast" - ], - "context_length": null, - "max_output_tokens": null, - "schema_version": "1.0.0", - "examples": [ - { - "name": "Simple Speech", - "description": "Generate speech with default settings", - "input": { - "text": "Hello! Welcome to Cloudflare AI Gateway. Let me show you what we can do.", - "voice_id": "English_expressive_narrator", - "speed": 1, - "volume": 1, - "pitch": 0, - "format": "mp3" - }, - "output": { - "audio": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/minimax__speech-2.8-turbo/simple-speech.mp3" - }, - "raw_response": { - "state": "Completed", - "result": { - "audio": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/minimax__speech-2.8-turbo/simple-speech.mp3" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'minimax/speech-2.8-turbo',\n {\n text: 'Hello! Welcome to Cloudflare AI Gateway. Let me show you what we can do.',\n voice_id: 'English_expressive_narrator',\n speed: 1,\n volume: 1,\n pitch: 0,\n format: 'mp3',\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Fast Narration", - "description": "Speed up narration for quick playback", - "input": { - "text": "This is a fast-paced summary of the key findings from the quarterly report. Revenue is up fifteen percent and user growth exceeded expectations.", - "voice_id": "English_expressive_narrator", - "speed": 1.5, - "volume": 1, - "pitch": 0, - "format": "mp3" - }, - "output": { - "audio": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/minimax__speech-2.8-turbo/fast-narration.mp3" - }, - "raw_response": { - "state": "Completed", - "result": { - "audio": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/minimax__speech-2.8-turbo/fast-narration.mp3" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'minimax/speech-2.8-turbo',\n {\n text: 'This is a fast-paced summary of the key findings from the quarterly report. Revenue is up fifteen percent and user growth exceeded expectations.',\n voice_id: 'English_expressive_narrator',\n speed: 1.5,\n volume: 1,\n pitch: 0,\n format: 'mp3',\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Calm Tone", - "description": "Calm and steady speech for meditation or relaxation", - "input": { - "text": "Take a deep breath in. Hold it for a moment. Now slowly exhale. Let your shoulders relax and release any tension.", - "voice_id": "English_expressive_narrator", - "speed": 0.8, - "volume": 1, - "pitch": 0, - "emotion": "calm", - "format": "mp3" - }, - "output": { - "audio": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/minimax__speech-2.8-turbo/calm-tone.mp3" - }, - "raw_response": { - "state": "Completed", - "result": { - "audio": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/minimax__speech-2.8-turbo/calm-tone.mp3" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'minimax/speech-2.8-turbo',\n {\n text: 'Take a deep breath in. Hold it for a moment. Now slowly exhale. Let your shoulders relax and release any tension.',\n voice_id: 'English_expressive_narrator',\n speed: 0.8,\n volume: 1,\n pitch: 0,\n emotion: 'calm',\n format: 'mp3',\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Adjusted Pitch", - "description": "Lower the pitch for a deeper voice", - "input": { - "text": "Good evening. Tonight we explore the mysteries of the deep ocean and the creatures that live in total darkness.", - "voice_id": "English_expressive_narrator", - "speed": 1, - "volume": 1, - "pitch": -6, - "format": "mp3" - }, - "output": { - "audio": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/minimax__speech-2.8-turbo/adjusted-pitch.mp3" - }, - "raw_response": { - "state": "Completed", - "result": { - "audio": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/minimax__speech-2.8-turbo/adjusted-pitch.mp3" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'minimax/speech-2.8-turbo',\n {\n text: 'Good evening. Tonight we explore the mysteries of the deep ocean and the creatures that live in total darkness.',\n voice_id: 'English_expressive_narrator',\n speed: 1,\n volume: 1,\n pitch: -6,\n format: 'mp3',\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - } - ], - "supports_async": false, - "external_info": "https://www.minimaxi.com/", - "terms": "https://www.minimaxi.com/terms", - "cover_image_url": "https://pub-26f1392c1b674324be6786695bd72257.r2.dev/minimax/speech-2.8-turbo.png", - "metadata": { - "Languages": "40+", - "Voice Cloning": "Yes", - "Emotion Control": "Yes" - }, - "created_at": "2026-04-13 16:46:36", - "default_example": null, - "code_snippets": [], - "zdr": false, - "zdr_comment": null, - "schema": { - "input": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "text": { - "description": "The text to convert to speech. Maximum 10,000 characters.", - "type": "string", - "maxLength": 10000 - }, - "voice_id": { - "description": "The voice ID to use for synthesis", - "default": "English_expressive_narrator", - "type": "string" - }, - "speed": { - "description": "Speech speed (0.5 to 2)", - "default": 1, - "type": "number", - "minimum": 0.5, - "maximum": 2 - }, - "volume": { - "description": "Speech volume (0 to 10)", - "default": 1, - "type": "number", - "minimum": 0, - "maximum": 10 - }, - "pitch": { - "description": "Pitch adjustment (-12 to 12)", - "default": 0, - "type": "integer", - "minimum": -12, - "maximum": 12 - }, - "emotion": { - "description": "Emotion control for synthesized speech", - "type": "string", - "enum": [ - "happy", - "sad", - "angry", - "fearful", - "disgusted", - "surprised", - "calm", - "fluent" - ] - }, - "format": { - "description": "Output audio format", - "default": "mp3", - "type": "string", - "enum": [ - "mp3", - "flac", - "wav" - ] - }, - "sample_rate": { - "description": "Audio sample rate", - "anyOf": [ - { - "type": "number", - "const": 8000 - }, - { - "type": "number", - "const": 16000 - }, - { - "type": "number", - "const": 22050 - }, - { - "type": "number", - "const": 24000 - }, - { - "type": "number", - "const": 32000 - }, - { - "type": "number", - "const": 44100 - } - ] - } - }, - "required": [ - "text", - "voice_id", - "speed", - "volume", - "pitch", - "format" - ], - "additionalProperties": false - }, - "output": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "audio": { - "description": "URL to the generated audio file", - "type": "string" - } - }, - "required": [ - "audio" - ], - "additionalProperties": false - } - } -} diff --git a/src/content/catalog-models/openai-gpt-4.1-mini.json b/src/content/catalog-models/openai-gpt-4.1-mini.json deleted file mode 100644 index e58aab234ba9b49..000000000000000 --- a/src/content/catalog-models/openai-gpt-4.1-mini.json +++ /dev/null @@ -1,7337 +0,0 @@ -{ - "model_id": "openai/gpt-4.1-mini", - "provider_id": "openai", - "name": "GPT-4.1 mini", - "description": "Fast, affordable version of GPT-4.1 with a million-token context window.", - "task": "Text Generation", - "tags": [ - "LLM", - "Fast", - "Cost-Efficient" - ], - "context_length": 1047576, - "max_output_tokens": 32768, - "schema_version": "1.0.0", - "examples": [ - { - "name": "Simple Question", - "description": "Basic chat completion request", - "input": { - "messages": [ - { - "role": "user", - "content": "What are the three laws of thermodynamics?" - } - ] - }, - "output": { - "text": "The three laws of thermodynamics are fundamental principles that describe how energy behaves in physical systems:\n\n1. **First Law of Thermodynamics (Law of Energy Conservation):** \n Energy cannot be created or destroyed; it can only be transferred or transformed from one form to another. In other words, the total energy of an isolated system remains constant. Mathematically, it is often expressed as: \n \\[\n \\Delta U = Q - W\n \\] \n where \\(\\Delta U\\) is the change in internal energy of the system, \\(Q\\) is the heat added to the system, and \\(W\\) is the work done by the system.\n\n2. **Second Law of Thermodynamics:** \n The total entropy of an isolated system can never decrease over time; it either increases or remains constant in ideal cases. Entropy is a measure of disorder or randomness. This law implies that natural processes tend to move toward a state of greater disorder, and it explains the direction of heat transfer (from hot to cold). \n\n3. **Third Law of Thermodynamics:** \n As the temperature of a system approaches absolute zero (0 Kelvin), the entropy of a perfect crystal approaches a constant minimum, which can be taken as zero. This means it is impossible to reach absolute zero temperature through any finite series of processes.\n\nIf you need, I can also explain the Zeroth Law, which is foundational and often included when discussing thermodynamics." - }, - "raw_response": { - "id": "chatcmpl-DVnUpsMw42Gxv3Iebj1PqAKL5ggSz", - "object": "chat.completion", - "created": 1776470803, - "model": "gpt-4.1-mini-2025-04-14", - "choices": [ - { - "index": 0, - "message": { - "role": "assistant", - "content": "The three laws of thermodynamics are fundamental principles that describe how energy behaves in physical systems:\n\n1. **First Law of Thermodynamics (Law of Energy Conservation):** \n Energy cannot be created or destroyed; it can only be transferred or transformed from one form to another. In other words, the total energy of an isolated system remains constant. Mathematically, it is often expressed as: \n \\[\n \\Delta U = Q - W\n \\] \n where \\(\\Delta U\\) is the change in internal energy of the system, \\(Q\\) is the heat added to the system, and \\(W\\) is the work done by the system.\n\n2. **Second Law of Thermodynamics:** \n The total entropy of an isolated system can never decrease over time; it either increases or remains constant in ideal cases. Entropy is a measure of disorder or randomness. This law implies that natural processes tend to move toward a state of greater disorder, and it explains the direction of heat transfer (from hot to cold). \n\n3. **Third Law of Thermodynamics:** \n As the temperature of a system approaches absolute zero (0 Kelvin), the entropy of a perfect crystal approaches a constant minimum, which can be taken as zero. This means it is impossible to reach absolute zero temperature through any finite series of processes.\n\nIf you need, I can also explain the Zeroth Law, which is foundational and often included when discussing thermodynamics.", - "refusal": null, - "annotations": [] - }, - "finish_reason": "stop", - "logprobs": null - } - ], - "usage": { - "prompt_tokens": 16, - "completion_tokens": 297, - "total_tokens": 313, - "prompt_tokens_details": { - "cached_tokens": 0, - "audio_tokens": 0 - }, - "completion_tokens_details": { - "reasoning_tokens": 0, - "audio_tokens": 0, - "accepted_prediction_tokens": 0, - "rejected_prediction_tokens": 0 - } - }, - "service_tier": "default", - "system_fingerprint": "fp_283a574ac4", - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'openai/gpt-4.1-mini',\n {\n messages: [\n {\n role: 'user',\n content: 'What are the three laws of thermodynamics?',\n },\n ],\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "With System Message", - "description": "Using a system message to set context", - "input": { - "messages": [ - { - "role": "system", - "content": "You are a helpful coding assistant specializing in Python." - }, - { - "role": "user", - "content": "How do I read a JSON file in Python?" - } - ] - }, - "output": { - "text": "To read a JSON file in Python, you can use the built-in `json` module. Here's a simple example:\n\n```python\nimport json\n\n# Open the JSON file\nwith open('data.json', 'r') as file:\n # Load the content of the file into a Python dictionary\n data = json.load(file)\n\n# Now you can use `data` like a regular Python dictionary\nprint(data)\n```\n\n### Explanation:\n- `open('data.json', 'r')` opens the file in read mode.\n- `json.load(file)` reads the JSON content from the file and converts it into a Python dictionary (or list, depending on the JSON structure).\n\nMake sure your JSON file is properly formatted. If you want to handle errors, you can add a try-except block as well.\n\nLet me know if you need help with that!" - }, - "raw_response": { - "id": "chatcmpl-DVnUrjszaGgaXrIiPHLa9h9MNQaG7", - "object": "chat.completion", - "created": 1776470805, - "model": "gpt-4.1-mini-2025-04-14", - "choices": [ - { - "index": 0, - "message": { - "role": "assistant", - "content": "To read a JSON file in Python, you can use the built-in `json` module. Here's a simple example:\n\n```python\nimport json\n\n# Open the JSON file\nwith open('data.json', 'r') as file:\n # Load the content of the file into a Python dictionary\n data = json.load(file)\n\n# Now you can use `data` like a regular Python dictionary\nprint(data)\n```\n\n### Explanation:\n- `open('data.json', 'r')` opens the file in read mode.\n- `json.load(file)` reads the JSON content from the file and converts it into a Python dictionary (or list, depending on the JSON structure).\n\nMake sure your JSON file is properly formatted. If you want to handle errors, you can add a try-except block as well.\n\nLet me know if you need help with that!", - "refusal": null, - "annotations": [] - }, - "finish_reason": "stop", - "logprobs": null - } - ], - "usage": { - "prompt_tokens": 31, - "completion_tokens": 175, - "total_tokens": 206, - "prompt_tokens_details": { - "cached_tokens": 0, - "audio_tokens": 0 - }, - "completion_tokens_details": { - "reasoning_tokens": 0, - "audio_tokens": 0, - "accepted_prediction_tokens": 0, - "rejected_prediction_tokens": 0 - } - }, - "service_tier": "default", - "system_fingerprint": "fp_126f34fc80", - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'openai/gpt-4.1-mini',\n {\n messages: [\n {\n role: 'system',\n content: 'You are a helpful coding assistant specializing in Python.',\n },\n {\n role: 'user',\n content: 'How do I read a JSON file in Python?',\n },\n ],\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Multi-turn Conversation", - "description": "Continuing a conversation with context", - "input": { - "messages": [ - { - "role": "user", - "content": "I need help planning a road trip from San Francisco to Los Angeles." - }, - { - "role": "assistant", - "content": "I'd be happy to help! The drive is about 380 miles and takes roughly 5-6 hours. Would you like suggestions for scenic routes or interesting stops along the way?" - }, - { - "role": "user", - "content": "Yes, what are some good places to stop?" - } - ], - "max_completion_tokens": 2048 - }, - "output": { - "text": "Great! Here are some popular and scenic stops along the drive from San Francisco to Los Angeles:\n\n1. **Half Moon Bay** \u2013 Just south of San Francisco, it\u2019s a charming coastal town with beautiful beaches and great spots for breakfast or coffee.\n2. **Santa Cruz** \u2013 Known for its classic boardwalk, beach vibes, and surfing culture.\n3. **Monterey** \u2013 Famous for the Monterey Bay Aquarium, Cannery Row, and stunning coastal views.\n4. **Carmel-by-the-Sea** \u2013 A picturesque town with art galleries, boutique shops, and beautiful beaches.\n5. **Big Sur** \u2013 One of the most scenic stretches of the California coast with dramatic cliffs, waterfalls (like McWay Falls), and state parks.\n6. **San Simeon** \u2013 Home to Hearst Castle, a historic mansion worth touring.\n7. **Pismo Beach** \u2013 Great for a beach break, known for its dunes and laid-back atmosphere.\n8. **Santa Barbara** \u2013 Often called the \u201cAmerican Riviera\u201d for its Mediterranean climate, with beaches, shopping, and wine tasting.\n\nWould you like recommendations for dining, accommodations, or activities at any of these stops?" - }, - "raw_response": { - "id": "chatcmpl-DVnUta0ufWlsHWkhAX7ObzcLxe4ys", - "object": "chat.completion", - "created": 1776470807, - "model": "gpt-4.1-mini-2025-04-14", - "choices": [ - { - "index": 0, - "message": { - "role": "assistant", - "content": "Great! Here are some popular and scenic stops along the drive from San Francisco to Los Angeles:\n\n1. **Half Moon Bay** \u2013 Just south of San Francisco, it\u2019s a charming coastal town with beautiful beaches and great spots for breakfast or coffee.\n2. **Santa Cruz** \u2013 Known for its classic boardwalk, beach vibes, and surfing culture.\n3. **Monterey** \u2013 Famous for the Monterey Bay Aquarium, Cannery Row, and stunning coastal views.\n4. **Carmel-by-the-Sea** \u2013 A picturesque town with art galleries, boutique shops, and beautiful beaches.\n5. **Big Sur** \u2013 One of the most scenic stretches of the California coast with dramatic cliffs, waterfalls (like McWay Falls), and state parks.\n6. **San Simeon** \u2013 Home to Hearst Castle, a historic mansion worth touring.\n7. **Pismo Beach** \u2013 Great for a beach break, known for its dunes and laid-back atmosphere.\n8. **Santa Barbara** \u2013 Often called the \u201cAmerican Riviera\u201d for its Mediterranean climate, with beaches, shopping, and wine tasting.\n\nWould you like recommendations for dining, accommodations, or activities at any of these stops?", - "refusal": null, - "annotations": [] - }, - "finish_reason": "stop", - "logprobs": null - } - ], - "usage": { - "prompt_tokens": 75, - "completion_tokens": 241, - "total_tokens": 316, - "prompt_tokens_details": { - "cached_tokens": 0, - "audio_tokens": 0 - }, - "completion_tokens_details": { - "reasoning_tokens": 0, - "audio_tokens": 0, - "accepted_prediction_tokens": 0, - "rejected_prediction_tokens": 0 - } - }, - "service_tier": "default", - "system_fingerprint": "fp_babb1d6bc3", - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'openai/gpt-4.1-mini',\n {\n messages: [\n {\n role: 'user',\n content:\n 'I need help planning a road trip from San Francisco to Los Angeles.',\n },\n {\n role: 'assistant',\n content:\n \"I'd be happy to help! The drive is about 380 miles and takes roughly 5-6 hours. Would you like suggestions for scenic routes or interesting stops along the way?\",\n },\n {\n role: 'user',\n content: 'Yes, what are some good places to stop?',\n },\n ],\n max_completion_tokens: 2048,\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Creative Writing", - "description": "Longer completion for creative output", - "input": { - "messages": [ - { - "role": "user", - "content": "Write a short story opening about a detective finding an unusual clue." - } - ], - "max_completion_tokens": 2048 - }, - "output": { - "text": "Detective Elena Marsh crouched beside the shattered window, the cold wind tugging at her coat. Amid the splintered glass and upturned furniture, something caught her eye\u2014a single, iridescent feather resting delicately on the floor. It shimmered with colors she couldn\u2019t place, almost otherworldly. She reached down, careful not to disturb the scene further, and traced the feather\u2019s fragile quill between her fingers. This wasn\u2019t just a clue. It was a message. And Elena had a feeling it was about to rewrite everything she thought she knew about the case." - }, - "raw_response": { - "id": "chatcmpl-DVnUuEMVdui5BtdTVUHhhb3cMeSoB", - "object": "chat.completion", - "created": 1776470808, - "model": "gpt-4.1-mini-2025-04-14", - "choices": [ - { - "index": 0, - "message": { - "role": "assistant", - "content": "Detective Elena Marsh crouched beside the shattered window, the cold wind tugging at her coat. Amid the splintered glass and upturned furniture, something caught her eye\u2014a single, iridescent feather resting delicately on the floor. It shimmered with colors she couldn\u2019t place, almost otherworldly. She reached down, careful not to disturb the scene further, and traced the feather\u2019s fragile quill between her fingers. This wasn\u2019t just a clue. It was a message. And Elena had a feeling it was about to rewrite everything she thought she knew about the case.", - "refusal": null, - "annotations": [] - }, - "finish_reason": "stop", - "logprobs": null - } - ], - "usage": { - "prompt_tokens": 20, - "completion_tokens": 119, - "total_tokens": 139, - "prompt_tokens_details": { - "cached_tokens": 0, - "audio_tokens": 0 - }, - "completion_tokens_details": { - "reasoning_tokens": 0, - "audio_tokens": 0, - "accepted_prediction_tokens": 0, - "rejected_prediction_tokens": 0 - } - }, - "service_tier": "default", - "system_fingerprint": "fp_babb1d6bc3", - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'openai/gpt-4.1-mini',\n {\n messages: [\n {\n role: 'user',\n content:\n 'Write a short story opening about a detective finding an unusual clue.',\n },\n ],\n max_completion_tokens: 2048,\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Streaming Response", - "description": "Enable streaming for real-time output", - "input": { - "messages": [ - { - "role": "user", - "content": "Explain the concept of recursion with a simple example." - } - ], - "stream": true, - "stream_options": { - "include_usage": true - } - }, - "output": { - "text": [ - "Rec", - "ursion", - " is", - " a", - " programming", - " concept", - " where", - " a", - " function", - " calls", - " itself", - " in", - " order", - " to", - " solve", - " a", - " problem", - ".", - " A", - " recursive", - " function", - " typically", - " has", - " two", - " main", - " parts", - ":\n\n", - "1", - ".", - " **", - "Base", - " Case", - ":**", - " The", - " condition", - " under", - " which", - " the", - " function", - " stops", - " calling", - " itself", - ".", - " This", - " prevents", - " infinite", - " recursion", - ".\n", - "2", - ".", - " **", - "Recursive", - " Case", - ":**", - " The", - " part", - " where", - " the", - " function", - " calls", - " itself", - " with", - " a", - " smaller", - " or", - " simpler", - " input", - ",", - " gradually", - " approaching", - " the", - " base", - " case", - ".\n\n", - "###", - " Simple", - " Example", - ":", - " Factor", - "ial", - " of", - " a", - " Number", - "\n\n", - "The", - " factorial", - " of", - " a", - " number", - " \\(", - " n", - " \\", - ")", - " (", - "written", - " as", - " \\(", - " n", - "!", - " \\", - "))", - " is", - " the", - " product", - " of", - " all", - " positive", - " integers", - " less", - " than", - " or", - " equal", - " to", - " \\(", - " n", - " \\", - ").", - " It", - " can", - " be", - " defined", - " recursively", - " as", - ":\n\n", - "-", - " \\(", - " ", - "0", - "!", - " =", - " ", - "1", - " \\", - ")", - " (", - "Base", - " case", - ")\n", - "-", - " \\(", - " n", - "!", - " =", - " n", - " \\", - "times", - " (", - "n", - "-", - "1", - ")!", - " \\", - ")", - " (", - "Recursive", - " case", - ")\n\n", - "Here's", - " how", - " you", - " can", - " implement", - " factorial", - " recursively", - " in", - " Python", - ":\n\n", - "```", - "python", - "\n", - "def", - " factorial", - "(n", - "):\n", - " ", - " if", - " n", - " ==", - " ", - "0", - ":\n", - " ", - " return", - " ", - "1", - " ", - " #", - " Base", - " case", - "\n", - " ", - " else", - ":\n", - " ", - " return", - " n", - " *", - " factorial", - "(n", - " -", - " ", - "1", - ")", - " #", - " Recursive", - " case", - "\n\n", - "print", - "(f", - "actor", - "ial", - "(", - "5", - "))", - " ", - " #", - " Output", - ":", - " ", - "120", - "\n", - "``", - "`\n\n", - "###", - " Explanation", - ":\n\n", - "-", - " When", - " `", - "factor", - "ial", - "(", - "5", - ")`", - " is", - " called", - ",", - " it", - " returns", - " \\(", - " ", - "5", - " \\", - "times", - " factorial", - "(", - "4", - ")", - " \\", - ").\n", - "-", - " `", - "factor", - "ial", - "(", - "4", - ")`", - " returns", - " \\(", - " ", - "4", - " \\", - "times", - " factorial", - "(", - "3", - ")", - " \\", - "),", - " and", - " so", - " on", - ".\n", - "-", - " Eventually", - ",", - " `", - "factor", - "ial", - "(", - "0", - ")`", - " returns", - " ", - "1", - ",", - " stopping", - " the", - " recursion", - ".\n", - "-", - " The", - " results", - " are", - " then", - " combined", - " back", - " up", - " to", - " give", - " the", - " final", - " answer", - ".\n\n", - "This", - " shows", - " how", - " recursion", - " breaks", - " down", - " a", - " problem", - " into", - " smaller", - " identical", - " problems", - " until", - " reaching", - " the", - " simplest", - " one", - "." - ] - }, - "raw_response": [ - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "role": "assistant", - "content": "", - "refusal": null - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "lu0xYRXB" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": "Rec" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "hlVju78" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": "ursion" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "ueie" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " is" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "rltboiQ" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " a" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "d7xApF6i" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " programming" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "3OuRIXHe9QgJ40" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " concept" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "hK" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " where" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "uBwi" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " a" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "2IQ3GX1W" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " function" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "N" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " calls" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "GvGR" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " itself" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "3r3" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " in" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "WcE1MQR" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " order" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "1Kzi" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " to" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "IxO8PKu" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " solve" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "OaLk" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " a" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "r9OJsZiJ" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " problem" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "md" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": "." - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "BTYLwhgjU" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " A" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "MYkduSrD" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " recursive" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " function" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "h" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " typically" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " has" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "AUdMof" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " two" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "FdCllA" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " main" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "ywePc" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " parts" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "3U3P" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": ":\n\n" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "KKeIp" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": "1" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "bN1bhgR16" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": "." - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "6o7aUhvaq" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " **" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "bVAmRx9" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": "Base" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "nI7W2S" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " Case" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "7MQwN" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": ":**" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "koc6gAp" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " The" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "znmKYV" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " condition" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " under" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "ne1y" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " which" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "jEyF" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " the" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "oA7d0c" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " function" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "m" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " stops" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "rBn7" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " calling" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "kW" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " itself" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "ObT" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": "." - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "v9Nk6U4IE" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " This" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "3qOnU" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " prevents" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "q" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " infinite" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "b" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " recursion" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": ".\n" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "2RLuW61" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": "2" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "aOguUha0j" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": "." - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "drhzsYfK3" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " **" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "xeFApyL" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": "Recursive" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "P" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " Case" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "VqUO6" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": ":**" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "itPnFuu" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " The" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Xe7UZR" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " part" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Lvc1f" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " where" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "i15P" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " the" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "VvYcJW" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " function" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "0" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " calls" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "vpsz" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " itself" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Gw9" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " with" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "15IRI" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " a" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "8keH33jU" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " smaller" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "OK" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " or" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "4TdrlxZ" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " simpler" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Nf" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " input" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "0Ykf" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": "," - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "i0WSlwG4s" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " gradually" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " approaching" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "uJ31eB1VMMa7kf" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " the" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "ENdaBI" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " base" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Amvo3" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " case" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "ekDDC" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": ".\n\n" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "aaoE9" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": "###" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "8xV5acv" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " Simple" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "2ld" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " Example" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Ov" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": ":" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "YhsI1YkJS" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " Factor" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "5M7" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": "ial" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "BHHR3ez" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " of" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "JfNraAl" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " a" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "YIyquvkf" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " Number" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "mgm" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": "\n\n" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "z0T8eI" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": "The" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "RQtW0OD" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " factorial" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " of" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "X457NAu" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " a" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Vjjm5Ill" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " number" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "SQx" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " \\(" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "nGrkNW" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " n" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "THEehCBK" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " \\" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "sOfPav5" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": ")" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "PXIGmom4V" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " (" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Vs1KtUDH" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": "written" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Lcy" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " as" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Snjuuvb" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " \\(" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "6JZGXi" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " n" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "JDoZQY3o" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": "!" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "K1XwF4XrL" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " \\" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "CN73SJV" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": "))" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "akb8RqWG" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " is" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "lx8a91C" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " the" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "GSxrzR" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " product" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "YQ" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " of" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "4dBYKA9" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " all" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "QyEF6H" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " positive" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "m" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " integers" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "8" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " less" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "d0yE1" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " than" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "bbTux" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " or" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "sVf3yIv" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " equal" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "HeGd" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " to" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "JjQB7XH" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " \\(" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "mPsPOd" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " n" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Q1sBPRVD" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " \\" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "FT7RBAD" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": ")." - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "q22SswMv" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " It" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "KJL2Ykq" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " can" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "jZU92O" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " be" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "MxJGqZ3" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " defined" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "cp" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " recursively" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "mbSjR6Nf3COxtq" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " as" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "yDul8Nj" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": ":\n\n" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "AszH3" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": "-" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "4H3GMZvE7" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " \\(" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "D9t5XA" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "JVFROJPzI" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": "0" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "f7pUED89e" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": "!" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "ctZgMeAgy" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " =" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "q1axwvsI" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "oXeTQefdW" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": "1" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "gSX7DviRs" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " \\" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "2qJt1U3" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": ")" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "5l5ZnrwS6" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " (" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "xi3qznTK" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": "Base" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "F6Di50" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " case" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "jeFkN" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": ")\n" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "l5zbAri" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": "-" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "vkAsa6lDa" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " \\(" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "JJHdB4" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " n" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "KDyU5VjN" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": "!" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "FckuI8HWw" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " =" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "FOn1wcCa" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " n" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "5nNmYfH4" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " \\" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "eguHCFj" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": "times" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "AlSjd" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " (" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "tRmuFRaf" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": "n" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "G1XMCdoGR" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": "-" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Z0U7MGlqG" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": "1" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "AHBZg2ulf" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": ")!" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "uw9FIyuh" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " \\" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "G1ickM2" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": ")" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "xxmHuy1jF" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " (" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "MjqSYD2E" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": "Recursive" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "z" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " case" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "kxeJm" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": ")\n\n" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "PCXCX" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": "Here's" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "RYE8" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " how" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "7y5gWq" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " you" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "pdvpci" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " can" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "IHndSz" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " implement" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " factorial" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " recursively" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "HBvJxJKcdWVqgg" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " in" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "HjvN7bL" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " Python" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "lfk" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": ":\n\n" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Kb14o" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": "```" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "fpbWCU8" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": "python" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "KkUY" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": "\n" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "S82Y1Ubr" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": "def" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "y7UA1JA" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " factorial" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": "(n" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "DpiCUJwL" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": "):\n" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "NEOnH1" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "dfNNQfc" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " if" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "fyOzUZi" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " n" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "4dhvglx4" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " ==" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "GezOm4w" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "eufuAA9B4" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": "0" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "cPnTvUKyj" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": ":\n" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "6hWh9nc" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "P5S" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " return" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "bUY" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "ae9cyLNlO" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": "1" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "EdeLcrTpA" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "eSjyOe" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " #" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "7GE69Cjx" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " Base" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "MxZHf" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " case" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Ls5i4" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": "\n" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "5dumatX0" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Lxi9G2N" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " else" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "oNnyg" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": ":\n" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "ad1I8RY" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "qaj" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " return" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "B2u" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " n" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "OLeeqTAK" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " *" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "AfJewMlk" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " factorial" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": "(n" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "iVWrooZG" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " -" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "QzM0px6a" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "59dhlburc" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": "1" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "vC3ECopN7" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": ")" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Uel5EmXTs" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " #" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "UdB7o7vJ" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " Recursive" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " case" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "pP1Im" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": "\n\n" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "10RqXl" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": "print" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "JBFOI" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": "(f" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "qdGsfBJ3" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": "actor" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "iH1i9" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": "ial" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Bqv4aWz" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": "(" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "HbLlNSFra" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": "5" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "HyICmd0nv" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": "))" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "akUK1ML8" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "fW7HhKBmB" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " #" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "ZEk9uMFf" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " Output" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "1pa" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": ":" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "ObYEx2Huk" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "jV7JjEHGT" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": "120" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "qNpXNCT" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": "\n" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "KuYwZpbx" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": "``" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "sFzPIpva" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": "`\n\n" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "ZCNql" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": "###" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "lVnj6MU" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " Explanation" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "lvKk9SzYt01hOS" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": ":\n\n" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "KUMGR" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": "-" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "yTkTAg0Kb" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " When" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "SedOM" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " `" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "di5A2vxB" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": "factor" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "U5CU" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": "ial" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "68kpdf4" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": "(" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "2tjn4uA3S" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": "5" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "NbgfLwP5e" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": ")`" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "txd1t2jG" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " is" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "FivwNSh" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " called" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "tUi" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": "," - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "796FllUEw" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " it" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "u5dLXON" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " returns" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Kr" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " \\(" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "9rF1QU" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "o5uFPe7Q5" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": "5" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "FoeCzWMSd" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " \\" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "8M72Nt0" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": "times" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "e4xwF" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " factorial" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": "(" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "05t4WMa40" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": "4" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "IGfsrEIGe" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": ")" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "UWTbZsQqb" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " \\" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "HxieLdh" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": ").\n" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "EJhN59" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": "-" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "rLoE9csnz" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " `" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "GLjUZ9mF" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": "factor" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "HI8Y" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": "ial" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Z4NDGIp" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": "(" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "4IynZXAus" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": "4" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "uBRe2AM4M" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": ")`" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "4Qf440pv" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " returns" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "B9" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " \\(" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "C8peL5" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "4o2y5QGC3" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": "4" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "MpgHFHuqW" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " \\" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "KrtKbwp" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": "times" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "4vhWH" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " factorial" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": "(" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "xJpa3HGSv" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": "3" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "V6rE0SGlx" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": ")" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "7E4KTgpi7" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " \\" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Ax2lX7I" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": ")," - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "4fNt0u51" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " and" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "ctGrzE" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " so" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "BfNzApp" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " on" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "BzCbrUP" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": ".\n" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "72K64M1" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": "-" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "5eHCEnn8B" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " Eventually" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "7oudXokrmcYhejh" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": "," - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "qmRDs6H2S" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " `" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Zij0ijYE" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": "factor" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "lmZz" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": "ial" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "ejGjm4G" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": "(" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "q4dfpbgQP" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": "0" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "vjDN4v6S8" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": ")`" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "kHziB5fj" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " returns" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "YN" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "GWa3t59VN" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": "1" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "OPGyaXmGw" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": "," - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "t3OKWTdHD" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " stopping" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "p" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " the" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "UfrNfx" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " recursion" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": ".\n" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "eBLOf2J" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": "-" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "8Ru8DYyCg" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " The" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "vahYsL" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " results" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Af" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " are" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "iUmkMw" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " then" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "ZnjRl" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " combined" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "C" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " back" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "GJyvj" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " up" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "pi6vl8M" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " to" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "NTlkG6T" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " give" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "7EOMm" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " the" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "CAW05M" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " final" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "OFUu" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " answer" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "0ve" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": ".\n\n" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "CJFDE" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": "This" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "uZYu6u" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " shows" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "bZ1L" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " how" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "uDwHyG" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " recursion" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " breaks" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "ajD" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " down" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "ebIkK" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " a" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "i0u8EIPm" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " problem" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "pN" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " into" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "S4oRO" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " smaller" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "o9" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " identical" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " problems" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "1" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " until" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "L6L8" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " reaching" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "X" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " the" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "pxQbXH" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " simplest" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "v" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": " one" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "1YH5o1" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": { - "content": "." - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "1hdnOfAbh" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [ - { - "index": 0, - "delta": {}, - "logprobs": null, - "finish_reason": "stop" - } - ], - "usage": null, - "obfuscation": "JRFt" - }, - { - "id": "chatcmpl-DVnUwt8ma1xhCsCHYkhjGk6BAkCs1", - "object": "chat.completion.chunk", - "created": 1776470810, - "model": "gpt-4.1-mini-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_75f84a798a", - "choices": [], - "usage": { - "prompt_tokens": 17, - "completion_tokens": 322, - "total_tokens": 339, - "prompt_tokens_details": { - "cached_tokens": 0, - "audio_tokens": 0 - }, - "completion_tokens_details": { - "reasoning_tokens": 0, - "audio_tokens": 0, - "accepted_prediction_tokens": 0, - "rejected_prediction_tokens": 0 - } - }, - "obfuscation": "F5smuxC" - } - ], - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'openai/gpt-4.1-mini',\n {\n messages: [\n {\n role: 'user',\n content: 'Explain the concept of recursion with a simple example.',\n },\n ],\n stream: true,\n stream_options: {\n include_usage: true,\n },\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - } - ], - "supports_async": false, - "external_info": "https://openai.com/index/gpt-4-1/", - "terms": "https://openai.com/policies/", - "cover_image_url": "https://pub-26f1392c1b674324be6786695bd72257.r2.dev/openai/gpt-4.1-mini.png", - "metadata": { - "Architecture": "Transformer" - }, - "created_at": "2026-04-13 16:45:21", - "default_example": null, - "code_snippets": [], - "zdr": false, - "zdr_comment": null, - "schema": { - "input": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "messages": { - "type": "array", - "items": { - "type": "object", - "properties": { - "role": { - "type": "string", - "enum": [ - "system", - "developer", - "user", - "assistant", - "tool" - ] - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - }, - { - "type": "array", - "items": {} - } - ] - } - }, - "required": [ - "role", - "content" - ], - "additionalProperties": {} - } - }, - "temperature": { - "type": "number", - "minimum": 0, - "maximum": 2 - }, - "max_tokens": { - "type": "number", - "exclusiveMinimum": 0 - }, - "max_completion_tokens": { - "type": "number", - "exclusiveMinimum": 0 - }, - "top_p": { - "type": "number", - "minimum": 0, - "maximum": 1 - }, - "frequency_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2 - }, - "presence_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2 - }, - "stream": { - "type": "boolean" - }, - "stream_options": { - "type": "object", - "properties": { - "include_usage": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "tools": { - "type": "array", - "items": {} - }, - "tool_choice": {}, - "response_format": {} - }, - "required": [ - "messages" - ], - "additionalProperties": {} - }, - "output": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "object": { - "type": "string" - }, - "created": { - "type": "number" - }, - "model": { - "type": "string" - }, - "choices": { - "type": "array", - "items": { - "type": "object", - "properties": { - "index": { - "type": "number" - }, - "message": { - "type": "object", - "properties": { - "role": { - "type": "string" - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "tool_calls": { - "type": "array", - "items": {} - } - }, - "required": [ - "role" - ], - "additionalProperties": {} - }, - "finish_reason": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "index", - "message", - "finish_reason" - ], - "additionalProperties": {} - } - }, - "usage": { - "type": "object", - "properties": { - "prompt_tokens": { - "type": "number" - }, - "completion_tokens": { - "type": "number" - }, - "total_tokens": { - "type": "number" - } - }, - "required": [ - "prompt_tokens", - "completion_tokens", - "total_tokens" - ], - "additionalProperties": {} - } - }, - "required": [ - "id", - "object", - "created", - "model", - "choices" - ], - "additionalProperties": {} - } - } -} diff --git a/src/content/catalog-models/openai-gpt-4.1.json b/src/content/catalog-models/openai-gpt-4.1.json deleted file mode 100644 index 129b51c288f524f..000000000000000 --- a/src/content/catalog-models/openai-gpt-4.1.json +++ /dev/null @@ -1,9815 +0,0 @@ -{ - "model_id": "openai/gpt-4.1", - "provider_id": "openai", - "name": "GPT-4.1", - "description": "OpenAI's flagship GPT model for complex tasks with a million-token context window.", - "task": "Text Generation", - "tags": [ - "LLM", - "Coding", - "Reasoning" - ], - "context_length": 1047576, - "max_output_tokens": 32768, - "schema_version": "1.0.0", - "examples": [ - { - "name": "Simple Question", - "description": "Basic chat completion request", - "input": { - "messages": [ - { - "role": "user", - "content": "What are the three laws of thermodynamics?" - } - ] - }, - "output": { - "text": "Certainly! The **three laws of thermodynamics** are fundamental principles describing how energy moves and changes in physical systems:\n\n---\n\n**1. First Law of Thermodynamics (Law of Energy Conservation):** \n*Energy cannot be created or destroyed, only converted from one form to another.*\n\n- In other words, the total energy of an isolated system is constant.\n- Mathematically: \n \u0394U = Q \u2212 W \n Where \u0394U is the change in internal energy, Q is heat added to the system, and W is work done by the system.\n\n---\n\n**2. Second Law of Thermodynamics (Law of Entropy):** \n*The entropy of an isolated system always increases over time, or remains constant in ideal cases; it never decreases.*\n\n- This law explains why certain processes are irreversible, and why heat flows from hotter to colder bodies naturally.\n- It also means that energy transformations are never 100% efficient; some energy is always dispersed as heat.\n\n---\n\n**3. Third Law of Thermodynamics:** \n*As temperature approaches absolute zero (0 K), the entropy of a perfect crystal approaches zero.*\n\n- This suggests it is impossible to reach absolute zero in any finite number of steps.\n- At absolute zero, a perfectly ordered crystal would have only one microstate (minimum entropy).\n\n---\n\n**Summary Table:**\n\n| Law | Main Statement |\n|------------|-----------------------------------------------------------|\n| First | Energy is conserved |\n| Second | Entropy increases or remains constant |\n| Third | Entropy approaches zero as temperature approaches 0 K |" - }, - "raw_response": { - "id": "chatcmpl-DVnUz3cM4bgGfNijU6O2Bjr5zBIE8", - "object": "chat.completion", - "created": 1776470813, - "model": "gpt-4.1-2025-04-14", - "choices": [ - { - "index": 0, - "message": { - "role": "assistant", - "content": "Certainly! The **three laws of thermodynamics** are fundamental principles describing how energy moves and changes in physical systems:\n\n---\n\n**1. First Law of Thermodynamics (Law of Energy Conservation):** \n*Energy cannot be created or destroyed, only converted from one form to another.*\n\n- In other words, the total energy of an isolated system is constant.\n- Mathematically: \n \u0394U = Q \u2212 W \n Where \u0394U is the change in internal energy, Q is heat added to the system, and W is work done by the system.\n\n---\n\n**2. Second Law of Thermodynamics (Law of Entropy):** \n*The entropy of an isolated system always increases over time, or remains constant in ideal cases; it never decreases.*\n\n- This law explains why certain processes are irreversible, and why heat flows from hotter to colder bodies naturally.\n- It also means that energy transformations are never 100% efficient; some energy is always dispersed as heat.\n\n---\n\n**3. Third Law of Thermodynamics:** \n*As temperature approaches absolute zero (0 K), the entropy of a perfect crystal approaches zero.*\n\n- This suggests it is impossible to reach absolute zero in any finite number of steps.\n- At absolute zero, a perfectly ordered crystal would have only one microstate (minimum entropy).\n\n---\n\n**Summary Table:**\n\n| Law | Main Statement |\n|------------|-----------------------------------------------------------|\n| First | Energy is conserved |\n| Second | Entropy increases or remains constant |\n| Third | Entropy approaches zero as temperature approaches 0 K |", - "refusal": null, - "annotations": [] - }, - "finish_reason": "stop", - "logprobs": null - } - ], - "usage": { - "prompt_tokens": 16, - "completion_tokens": 319, - "total_tokens": 335, - "prompt_tokens_details": { - "cached_tokens": 0, - "audio_tokens": 0 - }, - "completion_tokens_details": { - "reasoning_tokens": 0, - "audio_tokens": 0, - "accepted_prediction_tokens": 0, - "rejected_prediction_tokens": 0 - } - }, - "service_tier": "default", - "system_fingerprint": "fp_464203d4c6", - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'openai/gpt-4.1',\n {\n messages: [\n {\n role: 'user',\n content: 'What are the three laws of thermodynamics?',\n },\n ],\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "With System Message", - "description": "Using a system message to set context", - "input": { - "messages": [ - { - "role": "system", - "content": "You are a helpful coding assistant specializing in Python." - }, - { - "role": "user", - "content": "How do I read a JSON file in Python?" - } - ] - }, - "output": { - "text": "To read a JSON file in Python, you can use the built-in `json` module. Here\u2019s a simple step-by-step example:\n\n### 1. Import the `json` module\n\n```python\nimport json\n```\n\n### 2. Open and read the JSON file\n\nAssuming your JSON file is named `data.json`:\n\n```python\nwith open('data.json', 'r') as file:\n data = json.load(file)\n```\n\n### 3. Now `data` is a Python object (usually a `dict` or `list`) \nYou can use `data` just like any other Python dictionary or list.\n\n### Full Example\n\nAssume `data.json` contains:\n```json\n{\n \"name\": \"Alice\",\n \"age\": 30,\n \"city\": \"Wonderland\"\n}\n```\n\nPython code:\n```python\nimport json\n\nwith open('data.json', 'r') as file:\n data = json.load(file)\n\nprint(data[\"name\"]) # Output: Alice\nprint(data[\"age\"]) # Output: 30\n```\n\n---\n\n**Recap:** \n- Use `import json`.\n- Use `with open(filename) as f: data = json.load(f)`\n- Now, `data` contains your JSON data as Python objects!" - }, - "raw_response": { - "id": "chatcmpl-DVnV0JChfu6u4m6dzXKPW2Rb0MofH", - "object": "chat.completion", - "created": 1776470814, - "model": "gpt-4.1-2025-04-14", - "choices": [ - { - "index": 0, - "message": { - "role": "assistant", - "content": "To read a JSON file in Python, you can use the built-in `json` module. Here\u2019s a simple step-by-step example:\n\n### 1. Import the `json` module\n\n```python\nimport json\n```\n\n### 2. Open and read the JSON file\n\nAssuming your JSON file is named `data.json`:\n\n```python\nwith open('data.json', 'r') as file:\n data = json.load(file)\n```\n\n### 3. Now `data` is a Python object (usually a `dict` or `list`) \nYou can use `data` just like any other Python dictionary or list.\n\n### Full Example\n\nAssume `data.json` contains:\n```json\n{\n \"name\": \"Alice\",\n \"age\": 30,\n \"city\": \"Wonderland\"\n}\n```\n\nPython code:\n```python\nimport json\n\nwith open('data.json', 'r') as file:\n data = json.load(file)\n\nprint(data[\"name\"]) # Output: Alice\nprint(data[\"age\"]) # Output: 30\n```\n\n---\n\n**Recap:** \n- Use `import json`.\n- Use `with open(filename) as f: data = json.load(f)`\n- Now, `data` contains your JSON data as Python objects!", - "refusal": null, - "annotations": [] - }, - "finish_reason": "stop", - "logprobs": null - } - ], - "usage": { - "prompt_tokens": 31, - "completion_tokens": 268, - "total_tokens": 299, - "prompt_tokens_details": { - "cached_tokens": 0, - "audio_tokens": 0 - }, - "completion_tokens_details": { - "reasoning_tokens": 0, - "audio_tokens": 0, - "accepted_prediction_tokens": 0, - "rejected_prediction_tokens": 0 - } - }, - "service_tier": "default", - "system_fingerprint": "fp_7e40a569fc", - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'openai/gpt-4.1',\n {\n messages: [\n {\n role: 'system',\n content: 'You are a helpful coding assistant specializing in Python.',\n },\n {\n role: 'user',\n content: 'How do I read a JSON file in Python?',\n },\n ],\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Multi-turn Conversation", - "description": "Continuing a conversation with context", - "input": { - "messages": [ - { - "role": "user", - "content": "I need help planning a road trip from San Francisco to Los Angeles." - }, - { - "role": "assistant", - "content": "I'd be happy to help! The drive is about 380 miles and takes roughly 5-6 hours. Would you like suggestions for scenic routes or interesting stops along the way?" - }, - { - "role": "user", - "content": "Yes, what are some good places to stop?" - } - ], - "max_completion_tokens": 2048 - }, - "output": { - "text": "Great! There are two main routes between San Francisco and Los Angeles:\n\n**1. The Scenic Pacific Coast Highway (Highway 1):** \nThis is the most beautiful (and slower) option, hugging the coastline with stunning ocean views. Key stops along this route include:\n\n- **Half Moon Bay:** Charming coastal town, great for beaches and breakfast.\n- **Santa Cruz:** Fun boardwalk, surf spots, and natural bridges.\n- **Monterey:** Monterey Bay Aquarium, Cannery Row, 17-Mile Drive.\n- **Carmel-by-the-Sea:** Picturesque town, great art galleries, boutiques, and beaches.\n- **Big Sur:** Breathtaking cliffs, Bixby Creek Bridge, McWay Falls, and several state parks for hiking (like Julia Pfeiffer Burns State Park).\n- **Hearst Castle (San Simeon):** Grand historic estate you can tour.\n- **Cambria & Morro Bay:** Cute small towns, Morro Rock, great seafood.\n- **San Luis Obispo:** Lively downtown, Madonna Inn for quirky photos, Mission San Luis Obispo.\n- **Pismo Beach:** Famous for its dunes and clam chowder.\n- **Santa Barbara:** Gorgeous beaches, Spanish architecture, great lunch stop, wine tasting.\n- **Malibu:** Beautiful beaches and coastal views just before you reach LA.\n\n*Tip: This route is best enjoyed over 2-3 days, but you can do portions if you\u2019re on a tighter schedule.*\n\n---\n\n**2. The Fast Inland Route (Highway 101 or I-5):** \nQuicker, but less scenic. For quick but worthwhile stops:\n\n- **Gilroy:** Garlic capital, outlet shopping.\n- **Paso Robles:** Renowned wineries and adorable downtown.\n- **Santa Barbara:** As above, worth a detour if you take Hwy 101.\n\nIf you\u2019re on **I-5**, main stops are limited\u2014Harris Ranch is a classic spot for a meal (and cattle viewing), but scenery is mostly farmland.\n\n---\n\n**Let me know:**\n- Do you have 1 day or several for the drive?\n- What are your interests (scenery, food, wine, beaches, hiking)?\n- Traveling solo, as a couple, or with family/kids?\n\nWith a bit more info, I can tailor a perfect list for you!" - }, - "raw_response": { - "id": "chatcmpl-DVnV37uMPRNbZz6wc0f1dEO7gTp17", - "object": "chat.completion", - "created": 1776470817, - "model": "gpt-4.1-2025-04-14", - "choices": [ - { - "index": 0, - "message": { - "role": "assistant", - "content": "Great! There are two main routes between San Francisco and Los Angeles:\n\n**1. The Scenic Pacific Coast Highway (Highway 1):** \nThis is the most beautiful (and slower) option, hugging the coastline with stunning ocean views. Key stops along this route include:\n\n- **Half Moon Bay:** Charming coastal town, great for beaches and breakfast.\n- **Santa Cruz:** Fun boardwalk, surf spots, and natural bridges.\n- **Monterey:** Monterey Bay Aquarium, Cannery Row, 17-Mile Drive.\n- **Carmel-by-the-Sea:** Picturesque town, great art galleries, boutiques, and beaches.\n- **Big Sur:** Breathtaking cliffs, Bixby Creek Bridge, McWay Falls, and several state parks for hiking (like Julia Pfeiffer Burns State Park).\n- **Hearst Castle (San Simeon):** Grand historic estate you can tour.\n- **Cambria & Morro Bay:** Cute small towns, Morro Rock, great seafood.\n- **San Luis Obispo:** Lively downtown, Madonna Inn for quirky photos, Mission San Luis Obispo.\n- **Pismo Beach:** Famous for its dunes and clam chowder.\n- **Santa Barbara:** Gorgeous beaches, Spanish architecture, great lunch stop, wine tasting.\n- **Malibu:** Beautiful beaches and coastal views just before you reach LA.\n\n*Tip: This route is best enjoyed over 2-3 days, but you can do portions if you\u2019re on a tighter schedule.*\n\n---\n\n**2. The Fast Inland Route (Highway 101 or I-5):** \nQuicker, but less scenic. For quick but worthwhile stops:\n\n- **Gilroy:** Garlic capital, outlet shopping.\n- **Paso Robles:** Renowned wineries and adorable downtown.\n- **Santa Barbara:** As above, worth a detour if you take Hwy 101.\n\nIf you\u2019re on **I-5**, main stops are limited\u2014Harris Ranch is a classic spot for a meal (and cattle viewing), but scenery is mostly farmland.\n\n---\n\n**Let me know:**\n- Do you have 1 day or several for the drive?\n- What are your interests (scenery, food, wine, beaches, hiking)?\n- Traveling solo, as a couple, or with family/kids?\n\nWith a bit more info, I can tailor a perfect list for you!", - "refusal": null, - "annotations": [] - }, - "finish_reason": "stop", - "logprobs": null - } - ], - "usage": { - "prompt_tokens": 75, - "completion_tokens": 481, - "total_tokens": 556, - "prompt_tokens_details": { - "cached_tokens": 0, - "audio_tokens": 0 - }, - "completion_tokens_details": { - "reasoning_tokens": 0, - "audio_tokens": 0, - "accepted_prediction_tokens": 0, - "rejected_prediction_tokens": 0 - } - }, - "service_tier": "default", - "system_fingerprint": "fp_3fcf29cddc", - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'openai/gpt-4.1',\n {\n messages: [\n {\n role: 'user',\n content:\n 'I need help planning a road trip from San Francisco to Los Angeles.',\n },\n {\n role: 'assistant',\n content:\n \"I'd be happy to help! The drive is about 380 miles and takes roughly 5-6 hours. Would you like suggestions for scenic routes or interesting stops along the way?\",\n },\n {\n role: 'user',\n content: 'Yes, what are some good places to stop?',\n },\n ],\n max_completion_tokens: 2048,\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Creative Writing", - "description": "Longer completion for creative output", - "input": { - "messages": [ - { - "role": "user", - "content": "Write a short story opening about a detective finding an unusual clue." - } - ], - "max_completion_tokens": 2048 - }, - "output": { - "text": "Detective Lila Maren knelt beside the wrought-iron fence, her breath misting in the pale dawn light. The alley was quiet, save for the distant hum of the city waking. She scanned the scuffed cobblestones, expecting the usual\u2014a cigarette butt, perhaps, or a scrap of torn fabric. Instead, nestled in a shallow puddle, she found a single red chess pawn, oddly pristine amid the grime.\n\nLila lifted it with gloved fingers, turning it over as she studied its glossy sheen. No markings. No blood. Just a chess piece, out of place and glinting like a secret. She frowned, recalling the message scrawled on the victim\u2019s mirror upstairs: \u201cCheckmate.\u201d The game, it seemed, was just beginning." - }, - "raw_response": { - "id": "chatcmpl-DVnV5b5ltpItctts03EY2jcCCWLEe", - "object": "chat.completion", - "created": 1776470819, - "model": "gpt-4.1-2025-04-14", - "choices": [ - { - "index": 0, - "message": { - "role": "assistant", - "content": "Detective Lila Maren knelt beside the wrought-iron fence, her breath misting in the pale dawn light. The alley was quiet, save for the distant hum of the city waking. She scanned the scuffed cobblestones, expecting the usual\u2014a cigarette butt, perhaps, or a scrap of torn fabric. Instead, nestled in a shallow puddle, she found a single red chess pawn, oddly pristine amid the grime.\n\nLila lifted it with gloved fingers, turning it over as she studied its glossy sheen. No markings. No blood. Just a chess piece, out of place and glinting like a secret. She frowned, recalling the message scrawled on the victim\u2019s mirror upstairs: \u201cCheckmate.\u201d The game, it seemed, was just beginning.", - "refusal": null, - "annotations": [] - }, - "finish_reason": "stop", - "logprobs": null - } - ], - "usage": { - "prompt_tokens": 20, - "completion_tokens": 159, - "total_tokens": 179, - "prompt_tokens_details": { - "cached_tokens": 0, - "audio_tokens": 0 - }, - "completion_tokens_details": { - "reasoning_tokens": 0, - "audio_tokens": 0, - "accepted_prediction_tokens": 0, - "rejected_prediction_tokens": 0 - } - }, - "service_tier": "default", - "system_fingerprint": "fp_7a56a8eabf", - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'openai/gpt-4.1',\n {\n messages: [\n {\n role: 'user',\n content:\n 'Write a short story opening about a detective finding an unusual clue.',\n },\n ],\n max_completion_tokens: 2048,\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Streaming Response", - "description": "Enable streaming for real-time output", - "input": { - "messages": [ - { - "role": "user", - "content": "Explain the concept of recursion with a simple example." - } - ], - "stream": true, - "stream_options": { - "include_usage": true - } - }, - "output": { - "text": [ - "**", - "Rec", - "ursion", - "**", - " is", - " a", - " programming", - " technique", - " where", - " a", - " function", - " calls", - " itself", - " to", - " solve", - " a", - " problem", - ".", - " Each", - " time", - " the", - " function", - " calls", - " itself", - ",", - " it", - " breaks", - " the", - " problem", - " down", - " into", - " smaller", - " sub", - "pro", - "blems", - ".", - " For", - " recursion", - " to", - " stop", - ",", - " a", - " **", - "base", - " case", - "**", - " (", - "or", - " termination", - " condition", - ")", - " is", - " required", - ".\n\n", - "**", - "Simple", - " Example", - ":", - " Calcul", - "ating", - " Factor", - "ial", - "**\n\n", - "The", - " **", - "factor", - "ial", - "**", - " of", - " a", - " non", - "-negative", - " integer", - " `", - "n", - "`", - " (", - "written", - " as", - " `", - "n", - "!", - "`)", - " is", - " the", - " product", - " of", - " all", - " positive", - " integers", - " less", - " than", - " or", - " equal", - " to", - " `", - "n", - "`.\n\n", - "**", - "Mat", - "hem", - "atically", - ":", - "**\n", - "-", - " `", - "n", - "!", - " =", - " n", - " \u00d7", - " (", - "n", - "-", - "1", - ")", - " \u00d7", - " (", - "n", - "-", - "2", - ")", - " \u00d7", - " ...", - " \u00d7", - " ", - "1", - "`\n", - "-", - " By", - " definition", - ",", - " `", - "0", - "!", - " =", - " ", - "1", - "`\n\n", - "**", - "Recursive", - " Definition", - ":", - "**\n", - "-", - " If", - " `", - "n", - " ==", - " ", - "0", - "`,", - " then", - " `", - "factor", - "ial", - "(n", - ")", - " =", - " ", - "1", - "`", - " ", - " (", - "base", - " case", - ")\n", - "-", - " If", - " `", - "n", - " >", - " ", - "0", - "`,", - " then", - " `", - "factor", - "ial", - "(n", - ")", - " =", - " n", - " \u00d7", - " factorial", - "(n", - "-", - "1", - ")`", - " ", - " (", - "recursive", - " case", - ")\n\n", - "**", - "Code", - " Example", - " in", - " Python", - ":", - "**\n", - "```", - "python", - "\n", - "def", - " factorial", - "(n", - "):\n", - " ", - " if", - " n", - " ==", - " ", - "0", - ":", - " ", - " #", - " Base", - " case", - "\n", - " ", - " return", - " ", - "1", - "\n", - " ", - " else", - ":\n", - " ", - " return", - " n", - " *", - " factorial", - "(n", - " -", - " ", - "1", - ")", - " ", - " #", - " Recursive", - " call", - "\n", - "``", - "`\n\n", - "**", - "How", - " it", - " works", - ":", - "**\n", - "To", - " compute", - " `", - "factor", - "ial", - "(", - "4", - ")`", - ":\n", - "-", - " `", - "factor", - "ial", - "(", - "4", - ")`", - " returns", - " `", - "4", - " *", - " factorial", - "(", - "3", - ")`\n", - "-", - " `", - "factor", - "ial", - "(", - "3", - ")`", - " returns", - " `", - "3", - " *", - " factorial", - "(", - "2", - ")`\n", - "-", - " `", - "factor", - "ial", - "(", - "2", - ")`", - " returns", - " `", - "2", - " *", - " factorial", - "(", - "1", - ")`\n", - "-", - " `", - "factor", - "ial", - "(", - "1", - ")`", - " returns", - " `", - "1", - " *", - " factorial", - "(", - "0", - ")`\n", - "-", - " `", - "factor", - "ial", - "(", - "0", - ")`", - " returns", - " `", - "1", - "`", - " (", - "base", - " case", - ")\n\n", - "So", - ",\n", - "-", - " `", - "factor", - "ial", - "(", - "1", - ")`", - " =", - " ", - "1", - " \u00d7", - " ", - "1", - " =", - " ", - "1", - "\n", - "-", - " `", - "factor", - "ial", - "(", - "2", - ")`", - " =", - " ", - "2", - " \u00d7", - " ", - "1", - " =", - " ", - "2", - "\n", - "-", - " `", - "factor", - "ial", - "(", - "3", - ")`", - " =", - " ", - "3", - " \u00d7", - " ", - "2", - " =", - " ", - "6", - "\n", - "-", - " `", - "factor", - "ial", - "(", - "4", - ")`", - " =", - " ", - "4", - " \u00d7", - " ", - "6", - " =", - " ", - "24", - "\n\n", - "**", - "In", - " summary", - ":**", - " \n", - "Rec", - "ursion", - " is", - " when", - " a", - " function", - " calls", - " itself", - ",", - " and", - " the", - " problem", - " gets", - " divided", - " into", - " smaller", - " parts", - " until", - " reaching", - " a", - " simple", - ",", - " solv", - "able", - " case", - " (", - "the", - " base", - " case", - ")." - ] - }, - "raw_response": [ - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "role": "assistant", - "content": "", - "refusal": null - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "nqlUcqwR28bhP" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "**" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "F8I8qrGpbmKbK" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "Rec" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "5Cms1o43rBPM" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "ursion" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "RfvBqEP7j" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "**" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "AQv7Gd5DYc5Re" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " is" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "adspjAFjYuY3" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " a" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "6ZmcHKV6xLAQG" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " programming" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "zji" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " technique" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "5xRfs" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " where" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "PWhDGQUHP" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " a" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "mfR7ISQs4nR9H" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " function" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "eBDMR9" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " calls" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "wUV4KhFPx" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " itself" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "vh4HWZgN" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " to" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Iy1a0C1B4cvd" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " solve" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "qOus54Wy9" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " a" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "5WQk8effKoiUE" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " problem" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "2q7r72e" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "." - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "BBEkc4h45SXYKr" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " Each" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "yjhZypwz0N" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " time" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "IBQEMnwhEN" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " the" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "TnCHcH3xBF4" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " function" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "F3Jzjd" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " calls" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "20MP8Q1cB" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " itself" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "8pSk1s0R" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "," - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "cVe50RdPTo3VFX" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " it" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "H6Se7tRDeUFu" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " breaks" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "7If4IFlM" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " the" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "xme2Pq0P2FK" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " problem" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "RchXm4m" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " down" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "KWlZC69plP" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " into" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "FSXSS0Cvip" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " smaller" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "JG92npi" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " sub" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "ANR6HUogCAs" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "pro" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "WCAIyahUldsC" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "blems" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "5DWx2elHud" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "." - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "BUstAwZaLE12C3" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " For" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "5upUPUIExdK" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " recursion" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "X42oh" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " to" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "pPNyJMTs2ONc" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " stop" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "u7jNxZfgak" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "," - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Dj3LzEcL3owoBH" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " a" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "AWo8M8QObBOMS" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " **" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "TDYnblFSwSH5" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "base" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "ULy4anzi8WG" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " case" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "A4bizECHkS" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "**" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "3grrLtaOb9G0q" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " (" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "1COsNQu6Qz0FP" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "or" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "dwZ4sf0P8YrOW" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " termination" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "4wm" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " condition" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "tvDCA" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": ")" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "rqeyKwZ04cIdZo" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " is" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "0CkOTXOLNLzt" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " required" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "YQ2nBl" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": ".\n\n" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "6H0sAcNeEZ" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "**" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "PZLYLRXH8hSdp" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "Simple" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "V9R1zooZ1" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " Example" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "cdFiO3r" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": ":" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "tWXoXKiiqTbqIC" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " Calcul" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "uSovr8Yw" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "ating" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "OFdCm2nH5F" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " Factor" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "ndjwq2N0" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "ial" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "AMll5H6zZimG" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "**\n\n" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "bMua3xOa9" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "The" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "ym8qjnILljlY" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " **" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Sk8C4mqvTd4L" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "factor" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "C6LEKBwv6" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "ial" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "O1bvJC3rfOwt" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "**" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "YLcdb8COx2QRT" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " of" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "WEY4HLNk3Qkd" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " a" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "9TiDu0DoxvPY0" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " non" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "IlEsuVQ7ELC" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "-negative" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "HsE8pO" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " integer" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "yupnj0v" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " `" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "ieTbecc4wFSjI" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "n" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "xZRM2cv6C7LtYY" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "`" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "zmiiekPAgAn6Xx" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " (" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "OIbAvVAy7HmS4" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "written" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "kgcbQ9Gg" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " as" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "6G4KDF6Tf4rN" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " `" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "xlcbW2kMcbBUF" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "n" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "CvvLc2DMzcSshL" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "!" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "A8SL1JjBOnUoqn" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "`)" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "pJl6kdQrSViVC" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " is" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "pAk51ySzhAAg" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " the" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "KBMB3brqXY7" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " product" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "IitkQmg" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " of" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "WfYY4VTtxNlm" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " all" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Crl80acksiq" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " positive" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "EBvau5" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " integers" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "80VTBo" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " less" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "EN6JsNQGl2" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " than" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "duHyTwsdky" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " or" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "F4NzgsZSm2d9" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " equal" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "ZiogGwBBb" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " to" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "5JIEThqtAwel" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " `" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "lnyYIwLvfpmZU" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "n" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "LnqTbCaYYSovEV" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "`.\n\n" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "2S1AP6Mth" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "**" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "3qDclRKgnvt35" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "Mat" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "JzTFk5T5Y9KR" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "hem" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "VT1h1MqMBnbq" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "atically" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "VYcdCNl" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": ":" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "DPfGmPVxNwjAkq" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "**\n" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "zhWBcPxr3yB" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "-" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "5pmMg4etCG9Xfo" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " `" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "X8ISiVayT86Q9" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "n" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "XFE0ltRDMJxmOz" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "!" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "sc0CxJHaxTxLTz" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " =" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "B9dmjORYZpOnV" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " n" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "I1uu3Py66ynkI" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " \u00d7" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "DElzozSr1GCv8" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " (" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "nsTKm6NO7KSRs" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "n" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "7dq3KkSrmJ2hhM" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "-" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "G4TrDpbLcl2QiK" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "1" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "5SStWsiJMxrp5b" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": ")" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "r0nu3IA2MwJhb9" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " \u00d7" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "D1ztlM4KeiQCF" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " (" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "1KPAEoQlUEUFO" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "n" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "w2AnSQhMPedJrS" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "-" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "dokjpDtY99ILAX" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "2" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "nbbE8SOaHorpcq" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": ")" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "S9f96MGQmwXoxJ" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " \u00d7" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "VFK6XVAcc0zED" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " ..." - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Xjo35JXZw2V" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " \u00d7" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "PqDRTZfJO7u8g" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "val4h3489De4Cj" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "1" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "0xlCCeVYguuPTe" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "`\n" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "8A9jBH8ULP4T" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "-" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "ApBRghvAjaEsxH" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " By" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "gmNaT7ejDblF" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " definition" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "81aQ" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "," - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "G2bROV5jlK06zt" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " `" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "bbTQkm9dHzfCt" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "0" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "PV4jCs1Di0MJaO" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "!" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "59U3cUckTK0HGi" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " =" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "dVPt3EPHSccbL" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "6XKxI6M82pTaGN" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "1" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "C0fJhGTyFCikUE" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "`\n\n" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "ubaoNSIpL8" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "**" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "ep6Hry2jAlOnr" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "Recursive" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "MFoWvP" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " Definition" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "jeDG" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": ":" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "BCvjFTZ3C6KQ7B" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "**\n" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "0RCJhcRio2k" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "-" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "6FEvHzFbY5gyml" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " If" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "hqnFmPp0tYaw" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " `" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "DrSsO0SBRIeq7" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "n" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "zK4dsiWLFsWJLr" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " ==" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "bAPCC4cabryj" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "QIOrsZnqc8uX1b" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "0" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "7d7zqHlLTq5pqH" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "`," - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "TRXV128YV562b" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " then" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "JyfYjBu54L" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " `" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "KnfuSYZgmdj4u" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "factor" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "nLLMQcYQB" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "ial" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "lF596AzzrOZR" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "(n" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Fu64sZT05V965" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": ")" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "aQjn0maQx1GEqf" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " =" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "f8xdPTYcAUtpO" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "ih8ijucODJPb5F" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "1" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "zDJfZrrpcoS9Vt" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "`" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "gNduNvrkWKjyUk" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "C5e9xPYAxUk7a" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " (" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "EYJYCBzF6G9z5" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "base" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "6xDL3ENcJ66" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " case" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "dGPzwy9Fz3" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": ")\n" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "3OWqh1JRm1HL" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "-" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "f1dgZUOxEgMlMd" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " If" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "ChQmMRcyP4UX" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " `" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "tatzvEhehgtvG" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "n" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "4XBq5OSDozfVxt" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " >" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "EQ52PGuprrU7o" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "twT7Rn48pqOlDr" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "0" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "DWpuXSvcs2Dzys" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "`," - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "heJ7cUSYOCZN2" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " then" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "9QpMTKMyUQ" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " `" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "zzzNYJ5NIu4YJ" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "factor" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "E94Mjp3Vs" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "ial" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "yBuBWyZLG6yI" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "(n" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "bHmNJmC2hXFk4" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": ")" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "LzMa36oFi7wrza" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " =" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Y0aZihRbOnZjp" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " n" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "f5HLYbngXQ76F" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " \u00d7" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "K3OwfVfBoU3MK" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " factorial" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "6M7R0" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "(n" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "mkJsOWsLdxrIK" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "-" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "v5x8aFfuY7E0b2" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "1" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "SXWFksay8ytClQ" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": ")`" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "ThhByjTz2GF7V" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "V417yzlgyJ49FM" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " (" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Ack0ndddKMFtV" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "recursive" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "i2SKZc" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " case" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "xT5yCuV2Kl" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": ")\n\n" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "kLmyvZk437" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "**" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "CC1YahHnRtZqv" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "Code" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "au9sHRBL8jr" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " Example" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "EXmEfIM" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " in" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "6X7k4Dx3GeLT" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " Python" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "stiiJBXq" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": ":" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "U2ooJYZZWMGm0j" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "**\n" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "x6JlNgPk3r5" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "```" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "sU1IlPjYzlVg" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "python" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "zS8TNijT9" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "\n" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "MYO3OucTsSMSD" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "def" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "j6r8F71Iq4l0" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " factorial" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "0uyP7" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "(n" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "uA7RJxUYwP6Qx" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "):\n" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "22JIVvantbv" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "7buI85oBjsBf" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " if" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "0Pod2k6U45vR" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " n" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "p2UHSiS0myQnH" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " ==" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "WddV1sJQjyNt" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "6ThuFkzaWH90LS" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "0" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "VFgRt53ZxB0sLn" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": ":" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "agg7ICgjSmMK69" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "CcpnZJc" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " #" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "2yhwynJ41Ih5I" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " Base" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "vQ8CL36JEl" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " case" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "neUuxu59cx" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "\n" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "cUxAcuOGFF4YM" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "ITcz1eFg" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " return" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "5cAbLhZq" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "ROKcCUgG473ZwV" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "1" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "9vI0TWDXPh7eSR" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "\n" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "GpJ3GqfyV2ZCE" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "v3uluKEisc6j" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " else" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "MfDqOPmYAN" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": ":\n" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "6pAelzTSQAPR" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "pzGrpSN0" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " return" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "aU8eNCpz" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " n" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "acGp4lp1V3PF4" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " *" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "mZxPjtyOoOSta" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " factorial" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "pSzH5" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "(n" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "hPPWv3oOiBdvg" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " -" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "XFtqnX8vrv69k" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Koco8SgAyhduN1" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "1" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "epPhwZkBb60kBA" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": ")" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "h43Cc32AJNXoxz" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "o4dDr3lA3b2So" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " #" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "UN1mYsHhonPWM" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " Recursive" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "iQRUZ" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " call" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "E27gmSfEJv" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "\n" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "P5U5RboYiox1Y" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "``" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "MEcj3xxNwyK4V" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "`\n\n" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "4cSaqhuFAw" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "**" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "cHHNEsX61vlV9" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "How" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Gw7D8e5kVPMa" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " it" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "ZzTTNvpStbZa" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " works" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "10KBagdJJ" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": ":" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "35bgbnQYJzTiw4" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "**\n" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "dyRplYcRBAC" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "To" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "fHHH12Uii0GjA" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " compute" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "5gihPo3" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " `" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "4wCtazEnYiOsZ" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "factor" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "WKLtItpE2" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "ial" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "2xvepzBNzVqc" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "(" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "39pl6kOVfaVHRe" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "4" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "tylvytl8G6Lz4q" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": ")`" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "iURtiDzxOV1cI" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": ":\n" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "iSspfrEO4MlU" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "-" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "FsBYFxc9HgRfRT" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " `" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "nPlgNwAfjqmkF" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "factor" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "agR8DXiL2" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "ial" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "fNYZ10kL8BMa" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "(" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "DwFXJN6jTs9lO2" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "4" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "26Yk8qq7ZO2NVr" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": ")`" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "8GiaEwYLuOOpk" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " returns" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "YBihoMK" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " `" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "oX5WHxzOLzUOv" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "4" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "tHlBWg9dOda5uW" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " *" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "hPDjWH3awYy2n" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " factorial" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "OhcSc" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "(" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "K5ix5XrlKbOeXd" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "3" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "qRU3TEbhN7L4ly" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": ")`\n" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "4UHOXepHu71" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "-" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "7eXhp7XlyBkCDS" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " `" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "SRR1eIkbaS3DF" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "factor" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "njUht3TcJ" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "ial" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "dtobWJnyYvIQ" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "(" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "1PztlmyF3sNvAV" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "3" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "o1175Ai4duaweW" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": ")`" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "uXpRr6ID7PvAC" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " returns" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "fe6P5eJ" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " `" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "MagtUxKFCdVId" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "3" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "KT5B3pyMCGvumk" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " *" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "n8ScFKnx6BHif" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " factorial" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "q2MZy" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "(" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "GW6cabw3xnBpjN" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "2" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "vmAYXfET31qdcZ" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": ")`\n" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "dmCIXLhCCsP" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "-" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "PsJ3Hsov8q7Fwy" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " `" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "CyFHAj2e0dGQD" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "factor" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "0lCbQ1lAy" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "ial" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "9YYZWiVYqyUa" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "(" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "4YQZYOVKc5Sj0j" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "2" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "kM7iDo6fcisQXH" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": ")`" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "hHCSkvX8Ldf34" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " returns" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "n2Y3vuN" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " `" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "AqbVRXxUc1T79" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "2" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "NAO47XHgZxnEBn" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " *" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "yfR9EkfxakDTq" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " factorial" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "E0i8K" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "(" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "GvjSY2MnHmLpic" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "1" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "y2tKxh67Mdwtfu" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": ")`\n" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Co4Vfx3ck6P" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "-" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "NI1083dP0gyfN6" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " `" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "OkFM4TFuyH5nR" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "factor" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "DkkVICbl2" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "ial" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "uxOomOeqCwrp" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "(" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "fzPlaAIpAsnhQA" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "1" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "MnBPEbxkhm9Lpr" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": ")`" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "hUy6idO6hnNNX" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " returns" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "LqFOh9K" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " `" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "J71q04k0sV1XD" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "1" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "CspyVR5PvkjBmK" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " *" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "5JjrpBZKcwIrL" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " factorial" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Y4eHt" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "(" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "WzvPAbZfemw4NT" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "0" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "YJyRPyBVgW3ojR" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": ")`\n" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Y9QjCpYKMBR" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "-" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "tM8CGZqyEvp09d" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " `" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "N4tkgIriPqM6D" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "factor" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "IRWD0lMvR" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "ial" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "PkO33yLgzT4S" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "(" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "eSJb9p5ROzmjhl" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "0" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "XDFemcs0jfeYdD" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": ")`" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "iVLgbYXGLfC67" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " returns" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "EjcMaBW" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " `" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "xWQpCQLz4JVLU" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "1" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "O5iY9ROkm7QoEh" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "`" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "WuEpda9e0V93iA" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " (" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "bmcah9rRIPrOq" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "base" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "03mBmt1AADo" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " case" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "GUUzDgCSR0" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": ")\n\n" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "3qb4G5N5IL" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "So" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "PS6uO5jhS9Zbe" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": ",\n" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "g5rltdW6kiBb" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "-" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "EGFP8uBat3zfqE" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " `" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "qB2yvTREcnGej" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "factor" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "oFW6mgvQv" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "ial" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "dwo2oqxAVkGZ" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "(" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "8qQjHDqbSp5YgW" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "1" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "zpgSybVTiACF5O" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": ")`" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "rzZy927R7IjJ1" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " =" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "cTGPQIi4QPprr" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "XC0RsuNublrTcW" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "1" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "l0ItrXqRLLPMBI" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " \u00d7" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "CqNKKeBQKT8wD" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "OJYyjMKX46bdr4" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "1" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "H20UgHqLfVyBj2" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " =" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "rGJ6bFIxWRGvC" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "PC5tmyTKyu65gW" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "1" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "3Dpz8PdkgMvWq0" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "\n" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "RIS7dyo5sNZxA" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "-" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "CkEwQCvER4qcjV" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " `" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "YYsjZv4qYyBUv" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "factor" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "2IXiI3qsq" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "ial" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "rYQFqrBS3iTY" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "(" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "1Hf2q2cHj7vrDq" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "2" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "991ClIryWYVctR" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": ")`" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "7iBhcbobz6GZ9" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " =" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "YjJq8OEk52cAh" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "xIvQozjT5BYW25" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "2" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Gar8RQQfxvkH6p" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " \u00d7" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "GLnxQJcYxR4cr" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "QnjhcUebqL8EWH" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "1" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "yYzh8MAzMy6JVZ" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " =" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "IJudc3lo4uGoH" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "BRec9VWSN33zCc" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "2" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "vhO1wUQ4xOh36O" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "\n" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "UQ3Tx9virdw3T" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "-" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "MEvHyVnbIBJfQo" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " `" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "UrN0UTgOWfb0j" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "factor" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "sRph4TFLC" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "ial" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "58QfQcehfqXO" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "(" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "ZFerhZwCAKj2ya" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "3" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "u2JwTxoEW0VBCs" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": ")`" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "U0ZuJIVrJST8h" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " =" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "QFs77CA9fhTNM" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "5Rvl6KkBLTu8QT" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "3" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "pDaO6f1cMz8ltt" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " \u00d7" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Wa4mujRgPiedi" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "CqgYkPC5CTEhwl" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "2" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "a0FEiasW3IHG2A" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " =" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "bZN3lkfRknQdh" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "OjqEx8VvbnDmUD" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "6" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "RbLEN4ATD0NpL8" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "\n" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "57XUlZz4z80L5" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "-" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "6NKdPY9U36XVdL" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " `" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "RQGnWAoXrV7Jm" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "factor" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "OGWk9dGdx" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "ial" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "0EGMmucAdc6m" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "(" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "evgZArF9Kjmnon" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "4" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "CUuFPSAy8nkrrB" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": ")`" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "CeWFHaERgUdnv" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " =" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "npez5Mw8M4zXy" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "BzE81uyTpXB78Q" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "4" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "yG3X7RVRm8izCR" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " \u00d7" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "O7whl7Wi6ttHK" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "gjIuH84Ot692Ta" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "6" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "9LCdZ7NVem5j1D" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " =" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "19ShyYcubjAHR" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "tKplOl4gjPRQ7Q" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "24" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "1XDjz00plcOKW" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "\n\n" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "ZTeOnfVxdxC" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "**" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "exeiYKcthso34" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "In" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "1KCRWgwxktt6h" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " summary" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "pqPzY97" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": ":**" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "GRQ5KeQkjeKd" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " \n" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "oT0AzPYDa92" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "Rec" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "L35Q96nmXBbt" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "ursion" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "nGGgrENHd" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " is" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "t62Buiq1RDa5" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " when" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "4pxhEI69Iw" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " a" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "zGJep2pjrgfw1" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " function" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "OCs0X7" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " calls" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "cuzDQbgva" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " itself" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "jisYd3l5" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "," - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "UzluW5tdWR84Ap" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " and" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "ujlaX3Sick8" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " the" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "K1DAPkYstqY" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " problem" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Y6sPHx0" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " gets" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "M4QmBHAX8v" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " divided" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "DX0iGDR" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " into" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "jpyh0ycwac" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " smaller" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "fSiwhmY" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " parts" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "nx3ZlRroa" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " until" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Fzo3djwkb" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " reaching" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "vcz1Vm" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " a" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Fs8b7DJ9AU3ZS" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " simple" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "n2oThkGB" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "," - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Byc2BVvn6Ri6Xd" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " solv" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "yT1fSnRJgE" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "able" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "pOktXLePH3p" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " case" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "WqkIhLAcqu" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " (" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "KN4wqm4MkF00G" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": "the" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "sHP5jP0AFGve" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " base" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "tivsPDq10v" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": " case" - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "A8ACxg7bht" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": { - "content": ")." - }, - "logprobs": null, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "BJlEVOT35aBO9" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [ - { - "index": 0, - "delta": {}, - "logprobs": null, - "finish_reason": "stop" - } - ], - "usage": null, - "obfuscation": "ZdkQE6Sfy" - }, - { - "id": "chatcmpl-DVnV8rG1ILDUR9r3HsKDVd4dbGH0A", - "object": "chat.completion.chunk", - "created": 1776470822, - "model": "gpt-4.1-2025-04-14", - "service_tier": "default", - "system_fingerprint": "fp_51f6d1255b", - "choices": [], - "usage": { - "prompt_tokens": 17, - "completion_tokens": 440, - "total_tokens": 457, - "prompt_tokens_details": { - "cached_tokens": 0, - "audio_tokens": 0 - }, - "completion_tokens_details": { - "reasoning_tokens": 0, - "audio_tokens": 0, - "accepted_prediction_tokens": 0, - "rejected_prediction_tokens": 0 - } - }, - "obfuscation": "qHFF5gBP2hPp" - } - ], - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'openai/gpt-4.1',\n {\n messages: [\n {\n role: 'user',\n content: 'Explain the concept of recursion with a simple example.',\n },\n ],\n stream: true,\n stream_options: {\n include_usage: true,\n },\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - } - ], - "supports_async": false, - "external_info": "https://openai.com/index/gpt-4-1/", - "terms": "https://openai.com/policies/", - "cover_image_url": "https://pub-26f1392c1b674324be6786695bd72257.r2.dev/openai/gpt-4.1.png", - "metadata": { - "Architecture": "Transformer" - }, - "created_at": "2026-04-13 16:45:21", - "default_example": null, - "code_snippets": [], - "zdr": false, - "zdr_comment": null, - "schema": { - "input": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "messages": { - "type": "array", - "items": { - "type": "object", - "properties": { - "role": { - "type": "string", - "enum": [ - "system", - "developer", - "user", - "assistant", - "tool" - ] - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - }, - { - "type": "array", - "items": {} - } - ] - } - }, - "required": [ - "role", - "content" - ], - "additionalProperties": {} - } - }, - "temperature": { - "type": "number", - "minimum": 0, - "maximum": 2 - }, - "max_tokens": { - "type": "number", - "exclusiveMinimum": 0 - }, - "max_completion_tokens": { - "type": "number", - "exclusiveMinimum": 0 - }, - "top_p": { - "type": "number", - "minimum": 0, - "maximum": 1 - }, - "frequency_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2 - }, - "presence_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2 - }, - "stream": { - "type": "boolean" - }, - "stream_options": { - "type": "object", - "properties": { - "include_usage": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "tools": { - "type": "array", - "items": {} - }, - "tool_choice": {}, - "response_format": {} - }, - "required": [ - "messages" - ], - "additionalProperties": {} - }, - "output": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "object": { - "type": "string" - }, - "created": { - "type": "number" - }, - "model": { - "type": "string" - }, - "choices": { - "type": "array", - "items": { - "type": "object", - "properties": { - "index": { - "type": "number" - }, - "message": { - "type": "object", - "properties": { - "role": { - "type": "string" - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "tool_calls": { - "type": "array", - "items": {} - } - }, - "required": [ - "role" - ], - "additionalProperties": {} - }, - "finish_reason": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "index", - "message", - "finish_reason" - ], - "additionalProperties": {} - } - }, - "usage": { - "type": "object", - "properties": { - "prompt_tokens": { - "type": "number" - }, - "completion_tokens": { - "type": "number" - }, - "total_tokens": { - "type": "number" - } - }, - "required": [ - "prompt_tokens", - "completion_tokens", - "total_tokens" - ], - "additionalProperties": {} - } - }, - "required": [ - "id", - "object", - "created", - "model", - "choices" - ], - "additionalProperties": {} - } - } -} diff --git a/src/content/catalog-models/openai-gpt-4o-transcribe.json b/src/content/catalog-models/openai-gpt-4o-transcribe.json deleted file mode 100644 index f48d836c19d73e4..000000000000000 --- a/src/content/catalog-models/openai-gpt-4o-transcribe.json +++ /dev/null @@ -1,183 +0,0 @@ -{ - "model_id": "openai/gpt-4o-transcribe", - "provider_id": "openai", - "name": "gpt-4o-transcribe", - "description": "A speech-to-text model that uses GPT-4o to transcribe audio with improved word error rate and better language recognition compared to original Whisper models.", - "task": "Automatic Speech Recognition", - "tags": [ - "Speech-to-Text", - "Transcription", - "Multilingual" - ], - "context_length": null, - "max_output_tokens": null, - "schema_version": "1.0.0", - "examples": [ - { - "name": "Basic Transcription", - "description": "Transcribe an audio file with default settings", - "input": { - "file": "data:audio/wav;base64,UklGRqQ+AABXQVZFZm10IBAAAAABAAEAQB8AAIA+AAACABAAZGF0YYA+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, - "output": { - "text": "Hello" - }, - "raw_response": { - "state": "Completed", - "result": { - "text": "Hello" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'openai/gpt-4o-transcribe',\n {\n file: 'data:audio/wav;base64,UklGRqQ+AABXQVZFZm10IBAAAAABAAEAQB8AAIA+AAACABAAZGF0YYA+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA',\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "With Language Hint", - "description": "Transcribe with a language hint for better accuracy", - "input": { - "file": "data:audio/wav;base64,UklGRqQ+AABXQVZFZm10IBAAAAABAAEAQB8AAIA+AAACABAAZGF0YYA+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "language": "en" - }, - "output": { - "text": "Hello" - }, - "raw_response": { - "state": "Completed", - "result": { - "text": "Hello" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'openai/gpt-4o-transcribe',\n {\n file: 'data:audio/wav;base64,UklGRqQ+AABXQVZFZm10IBAAAAABAAEAQB8AAIA+AAACABAAZGF0YYA+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA',\n language: 'en',\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Guided Transcription", - "description": "Use a prompt to guide transcription style and context", - "input": { - "file": "data:audio/wav;base64,UklGRqQ+AABXQVZFZm10IBAAAAABAAEAQB8AAIA+AAACABAAZGF0YYA+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "language": "en", - "prompt": "This is a technical discussion about Kubernetes and cloud-native architecture." - }, - "output": { - "text": "This is a technical discussion about Kubernetes and cloud-native architecture." - }, - "raw_response": { - "state": "Completed", - "result": { - "text": "This is a technical discussion about Kubernetes and cloud-native architecture." - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'openai/gpt-4o-transcribe',\n {\n file: 'data:audio/wav;base64,UklGRqQ+AABXQVZFZm10IBAAAAABAAEAQB8AAIA+AAACABAAZGF0YYA+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA',\n language: 'en',\n prompt:\n 'This is a technical discussion about Kubernetes and cloud-native architecture.',\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "High Temperature", - "description": "Higher temperature for more varied transcription", - "input": { - "file": "data:audio/wav;base64,UklGRqQ+AABXQVZFZm10IBAAAAABAAEAQB8AAIA+AAACABAAZGF0YYA+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "temperature": 0.5 - }, - "output": { - "text": "Hello, world!" - }, - "raw_response": { - "state": "Completed", - "result": { - "text": "Hello, world!" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'openai/gpt-4o-transcribe',\n {\n file: 'data:audio/wav;base64,UklGRqQ+AABXQVZFZm10IBAAAAABAAEAQB8AAIA+AAACABAAZGF0YYA+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA',\n temperature: 0.5,\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - } - ], - "supports_async": false, - "external_info": "https://openai.com/", - "terms": "https://openai.com/policies/", - "cover_image_url": "https://pub-26f1392c1b674324be6786695bd72257.r2.dev/openai/gpt-4o-transcribe.png", - "metadata": { - "Context Window": "16,000 tokens", - "Max Output": "2,000 tokens", - "Knowledge Cutoff": "Jun 01, 2024" - }, - "created_at": "2026-04-13 16:45:23", - "default_example": null, - "code_snippets": [], - "zdr": false, - "zdr_comment": null, - "schema": { - "input": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "file": { - "description": "The audio file as a data URI (data:audio/...;base64,...) or HTTPS URL. Supported formats: flac, mp3, mp4, mpeg, mpga, m4a, ogg, wav, webm.", - "type": "string" - }, - "language": { - "description": "The language of the input audio. Supplying the input language in ISO-639-1 format will improve accuracy and latency.", - "type": "string" - }, - "prompt": { - "description": "An optional text to guide the model's style or continue a previous audio segment. The prompt should match the audio language.", - "type": "string" - }, - "temperature": { - "description": "The sampling temperature, between 0 and 1. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic. Defaults to 0 if omitted.", - "type": "number", - "minimum": 0, - "maximum": 1 - } - }, - "required": [ - "file" - ], - "additionalProperties": false - }, - "output": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "text": { - "description": "The transcribed text.", - "type": "string" - } - }, - "required": [ - "text" - ], - "additionalProperties": false - } - } -} diff --git a/src/content/catalog-models/openai-gpt-5.4-mini.json b/src/content/catalog-models/openai-gpt-5.4-mini.json deleted file mode 100644 index 374351f914de651..000000000000000 --- a/src/content/catalog-models/openai-gpt-5.4-mini.json +++ /dev/null @@ -1,5529 +0,0 @@ -{ - "model_id": "openai/gpt-5.4-mini", - "provider_id": "openai", - "name": "GPT-5.4 mini", - "description": "GPT-5.4 Mini is a smaller, faster, and more cost-efficient version of GPT-5.4 for lightweight tasks.", - "task": "Text Generation", - "tags": [ - "LLM", - "Fast", - "Cost-Efficient" - ], - "context_length": 128000, - "max_output_tokens": 16384, - "schema_version": "1.0.0", - "examples": [ - { - "name": "Simple Question", - "description": "Basic chat completion request", - "input": { - "messages": [ - { - "role": "user", - "content": "What are the three laws of thermodynamics?" - } - ] - }, - "output": { - "text": "The three laws of thermodynamics are:\n\n1. **First Law: Conservation of energy** \n Energy cannot be created or destroyed, only transferred or transformed. \n In simple form: \n **\u0394U = Q \u2212 W** \n where \u0394U is the change in internal energy, Q is heat added to the system, and W is work done by the system.\n\n2. **Second Law: Entropy increases** \n In an isolated system, entropy tends to increase over time. This means natural processes are irreversible and energy tends to spread out. \n A common implication: no heat engine can be 100% efficient.\n\n3. **Third Law: Absolute zero is unattainable** \n As temperature approaches absolute zero, the entropy of a perfect crystal approaches a minimum value, usually taken as zero. \n In practice, it\u2019s impossible to reach exactly 0 K in a finite number of steps.\n\nIf you want, I can also give you a **very simple everyday analogy** for each law." - }, - "raw_response": { - "id": "chatcmpl-DVnVB12AdRglT0QAUKVZ2kfSuzFOP", - "object": "chat.completion", - "created": 1776470825, - "model": "gpt-5.4-mini-2026-03-17", - "choices": [ - { - "index": 0, - "message": { - "role": "assistant", - "content": "The three laws of thermodynamics are:\n\n1. **First Law: Conservation of energy** \n Energy cannot be created or destroyed, only transferred or transformed. \n In simple form: \n **\u0394U = Q \u2212 W** \n where \u0394U is the change in internal energy, Q is heat added to the system, and W is work done by the system.\n\n2. **Second Law: Entropy increases** \n In an isolated system, entropy tends to increase over time. This means natural processes are irreversible and energy tends to spread out. \n A common implication: no heat engine can be 100% efficient.\n\n3. **Third Law: Absolute zero is unattainable** \n As temperature approaches absolute zero, the entropy of a perfect crystal approaches a minimum value, usually taken as zero. \n In practice, it\u2019s impossible to reach exactly 0 K in a finite number of steps.\n\nIf you want, I can also give you a **very simple everyday analogy** for each law.", - "refusal": null, - "annotations": [] - }, - "finish_reason": "stop" - } - ], - "usage": { - "prompt_tokens": 15, - "completion_tokens": 211, - "total_tokens": 226, - "prompt_tokens_details": { - "cached_tokens": 0, - "audio_tokens": 0 - }, - "completion_tokens_details": { - "reasoning_tokens": 0, - "audio_tokens": 0, - "accepted_prediction_tokens": 0, - "rejected_prediction_tokens": 0 - } - }, - "service_tier": "default", - "system_fingerprint": null, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'openai/gpt-5.4-mini',\n {\n messages: [\n {\n role: 'user',\n content: 'What are the three laws of thermodynamics?',\n },\n ],\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "With System Message", - "description": "Using a system message to set context", - "input": { - "messages": [ - { - "role": "system", - "content": "You are a helpful coding assistant specializing in Python." - }, - { - "role": "user", - "content": "How do I read a JSON file in Python?" - } - ] - }, - "output": { - "text": "Use Python\u2019s built-in `json` module.\n\n```python\nimport json\n\nwith open(\"data.json\", \"r\", encoding=\"utf-8\") as f:\n data = json.load(f)\n\nprint(data)\n```\n\n### Notes\n- `json.load(f)` reads JSON from a file object.\n- `json.loads(s)` reads JSON from a string.\n- The result is usually a Python `dict` or `list`, depending on the JSON structure.\n\n### Example JSON\n```json\n{\n \"name\": \"Alice\",\n \"age\": 30\n}\n```\n\n### Python result\n```python\n{'name': 'Alice', 'age': 30}\n```\n\nIf you want, I can also show how to:\n- read JSON into a pandas DataFrame\n- handle invalid JSON errors\n- write JSON back to a file" - }, - "raw_response": { - "id": "chatcmpl-DVnVDQEDXijlKMCbGNVtJzuMx2D8F", - "object": "chat.completion", - "created": 1776470827, - "model": "gpt-5.4-mini-2026-03-17", - "choices": [ - { - "index": 0, - "message": { - "role": "assistant", - "content": "Use Python\u2019s built-in `json` module.\n\n```python\nimport json\n\nwith open(\"data.json\", \"r\", encoding=\"utf-8\") as f:\n data = json.load(f)\n\nprint(data)\n```\n\n### Notes\n- `json.load(f)` reads JSON from a file object.\n- `json.loads(s)` reads JSON from a string.\n- The result is usually a Python `dict` or `list`, depending on the JSON structure.\n\n### Example JSON\n```json\n{\n \"name\": \"Alice\",\n \"age\": 30\n}\n```\n\n### Python result\n```python\n{'name': 'Alice', 'age': 30}\n```\n\nIf you want, I can also show how to:\n- read JSON into a pandas DataFrame\n- handle invalid JSON errors\n- write JSON back to a file", - "refusal": null, - "annotations": [] - }, - "finish_reason": "stop" - } - ], - "usage": { - "prompt_tokens": 30, - "completion_tokens": 176, - "total_tokens": 206, - "prompt_tokens_details": { - "cached_tokens": 0, - "audio_tokens": 0 - }, - "completion_tokens_details": { - "reasoning_tokens": 0, - "audio_tokens": 0, - "accepted_prediction_tokens": 0, - "rejected_prediction_tokens": 0 - } - }, - "service_tier": "default", - "system_fingerprint": null, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'openai/gpt-5.4-mini',\n {\n messages: [\n {\n role: 'system',\n content: 'You are a helpful coding assistant specializing in Python.',\n },\n {\n role: 'user',\n content: 'How do I read a JSON file in Python?',\n },\n ],\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Multi-turn Conversation", - "description": "Continuing a conversation with context", - "input": { - "messages": [ - { - "role": "user", - "content": "I need help planning a road trip from San Francisco to Los Angeles." - }, - { - "role": "assistant", - "content": "I'd be happy to help! The drive is about 380 miles and takes roughly 5-6 hours. Would you like suggestions for scenic routes or interesting stops along the way?" - }, - { - "role": "user", - "content": "Yes, what are some good places to stop?" - } - ], - "max_completion_tokens": 2048 - }, - "output": { - "text": "Absolutely \u2014 the San Francisco to Los Angeles drive has a lot of great stop options depending on whether you want the **fastest route** or the **most scenic one**.\n\n## Best stops if you take Highway 1 / Pacific Coast Highway\nThis is the most scenic route, but it can add a lot of time.\n\n### 1. Monterey / Carmel-by-the-Sea\n- Great for a first major stop south of SF\n- **Monterey Bay Aquarium** is a top attraction\n- Carmel has a charming village feel, beaches, and galleries\n\n### 2. Big Sur\n- One of the most famous scenic stretches in California\n- Must-see viewpoints:\n - **Bixby Creek Bridge**\n - **Pfeiffer Beach**\n - **Julia Pfeiffer Burns State Park** / McWay Falls\n- Ideal if you want dramatic coastline and photo stops\n\n### 3. San Simeon / Hearst Castle\n- Good place to break up the drive\n- **Hearst Castle** is the big attraction here\n- Also possible to see elephant seals at **Piedras Blancas**\n\n### 4. San Luis Obispo\n- Nice overnight or lunch stop\n- Relaxed downtown, good food, and easy access to nearby wine country\n\n### 5. Santa Barbara\n- Beautiful coastal city, great for a meal or longer stop\n- **Stearns Wharf**, the mission, and the harbor are popular\n- Good \u201clast major stop\u201d before LA\n\n## Best stops if you take the faster inland route (US-101 / I-5)\nThis is quicker and still has good options.\n\n### 1. San Luis Obispo\n- Great midway break\n- Walkable downtown and lots of restaurants\n\n### 2. Solvang\n- A fun Danish-style town near Santa Barbara\n- Good for pastries, coffee, and a quick stretch\n\n### 3. Santa Barbara\n- Still worth stopping even on the faster route\n- Beautiful and easy to enjoy without a huge detour\n\n### 4. Ventura / Oxnard\n- Good coastal stop before reaching LA\n- Less crowded than Santa Barbara\n\n## If you want a balanced one-day route\nA practical plan is:\n- **SF \u2192 Monterey / Carmel**\n- **Monterey \u2192 Big Sur**\n- **Big Sur \u2192 San Luis Obispo**\n- **San Luis Obispo \u2192 Santa Barbara**\n- **Santa Barbara \u2192 LA**\n\nThat\u2019s a lot for one day, so many people do it as a **2-day or 3-day road trip**.\n\n## Quick recommendation\nIf you only want a few stops, I\u2019d pick:\n1. **Monterey**\n2. **Big Sur**\n3. **Santa Barbara**\n\nIf you want, I can also make you:\n- a **1-day itinerary**\n- a **2-day scenic itinerary**\n- or a route with **food, beaches, and hiking stops**." - }, - "raw_response": { - "id": "chatcmpl-DVnVDSqb2DaSLNqKCpSBwk0puM04a", - "object": "chat.completion", - "created": 1776470827, - "model": "gpt-5.4-mini-2026-03-17", - "choices": [ - { - "index": 0, - "message": { - "role": "assistant", - "content": "Absolutely \u2014 the San Francisco to Los Angeles drive has a lot of great stop options depending on whether you want the **fastest route** or the **most scenic one**.\n\n## Best stops if you take Highway 1 / Pacific Coast Highway\nThis is the most scenic route, but it can add a lot of time.\n\n### 1. Monterey / Carmel-by-the-Sea\n- Great for a first major stop south of SF\n- **Monterey Bay Aquarium** is a top attraction\n- Carmel has a charming village feel, beaches, and galleries\n\n### 2. Big Sur\n- One of the most famous scenic stretches in California\n- Must-see viewpoints:\n - **Bixby Creek Bridge**\n - **Pfeiffer Beach**\n - **Julia Pfeiffer Burns State Park** / McWay Falls\n- Ideal if you want dramatic coastline and photo stops\n\n### 3. San Simeon / Hearst Castle\n- Good place to break up the drive\n- **Hearst Castle** is the big attraction here\n- Also possible to see elephant seals at **Piedras Blancas**\n\n### 4. San Luis Obispo\n- Nice overnight or lunch stop\n- Relaxed downtown, good food, and easy access to nearby wine country\n\n### 5. Santa Barbara\n- Beautiful coastal city, great for a meal or longer stop\n- **Stearns Wharf**, the mission, and the harbor are popular\n- Good \u201clast major stop\u201d before LA\n\n## Best stops if you take the faster inland route (US-101 / I-5)\nThis is quicker and still has good options.\n\n### 1. San Luis Obispo\n- Great midway break\n- Walkable downtown and lots of restaurants\n\n### 2. Solvang\n- A fun Danish-style town near Santa Barbara\n- Good for pastries, coffee, and a quick stretch\n\n### 3. Santa Barbara\n- Still worth stopping even on the faster route\n- Beautiful and easy to enjoy without a huge detour\n\n### 4. Ventura / Oxnard\n- Good coastal stop before reaching LA\n- Less crowded than Santa Barbara\n\n## If you want a balanced one-day route\nA practical plan is:\n- **SF \u2192 Monterey / Carmel**\n- **Monterey \u2192 Big Sur**\n- **Big Sur \u2192 San Luis Obispo**\n- **San Luis Obispo \u2192 Santa Barbara**\n- **Santa Barbara \u2192 LA**\n\nThat\u2019s a lot for one day, so many people do it as a **2-day or 3-day road trip**.\n\n## Quick recommendation\nIf you only want a few stops, I\u2019d pick:\n1. **Monterey**\n2. **Big Sur**\n3. **Santa Barbara**\n\nIf you want, I can also make you:\n- a **1-day itinerary**\n- a **2-day scenic itinerary**\n- or a route with **food, beaches, and hiking stops**.", - "refusal": null, - "annotations": [] - }, - "finish_reason": "stop" - } - ], - "usage": { - "prompt_tokens": 76, - "completion_tokens": 601, - "total_tokens": 677, - "prompt_tokens_details": { - "cached_tokens": 0, - "audio_tokens": 0 - }, - "completion_tokens_details": { - "reasoning_tokens": 0, - "audio_tokens": 0, - "accepted_prediction_tokens": 0, - "rejected_prediction_tokens": 0 - } - }, - "service_tier": "default", - "system_fingerprint": null, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'openai/gpt-5.4-mini',\n {\n messages: [\n {\n role: 'user',\n content:\n 'I need help planning a road trip from San Francisco to Los Angeles.',\n },\n {\n role: 'assistant',\n content:\n \"I'd be happy to help! The drive is about 380 miles and takes roughly 5-6 hours. Would you like suggestions for scenic routes or interesting stops along the way?\",\n },\n {\n role: 'user',\n content: 'Yes, what are some good places to stop?',\n },\n ],\n max_completion_tokens: 2048,\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Creative Writing", - "description": "Longer completion for creative output", - "input": { - "messages": [ - { - "role": "user", - "content": "Write a short story opening about a detective finding an unusual clue." - } - ], - "max_completion_tokens": 2048 - }, - "output": { - "text": "The rain had been falling since midnight, soft and persistent, turning the city into a blur of sodium light and reflected secrets. Detective Mara Venn stood in the doorway of apartment 4B, one gloved hand resting against the frame, and looked down at the object gleaming on the floorboards.\n\nIt wasn\u2019t a weapon. It wasn\u2019t jewelry, either.\n\nAt first glance, it looked like a child\u2019s toy: a tiny brass bird with one wing folded and the other raised as if caught mid-flight. But when Mara knelt and picked it up, she felt the weight of it\u2014too heavy for its size\u2014and noticed the fine engraved line along its belly. A seam.\n\nShe turned the figurine over. Hidden beneath the bird\u2019s feet was a row of numbers, stamped so neatly they might have been part of the design. Not a serial number, exactly. Too deliberate for that. Too precise.\n\nBehind her, the apartment hummed with the low buzz of the refrigerator and the distant wail of a siren moving somewhere farther downtown. Inside the room, the dead man sat slumped in his chair as if he\u2019d merely nodded off. His hands were folded on the desk. His face was calm.\n\nMara looked again at the brass bird.\n\nThe numbers weren\u2019t random. She knew that before she even compared them to the note pinned under the victim\u2019s pen, written in a hand so steady it seemed almost smug:\n\n**You\u2019re late. Look under the third stone.**\n\nShe slipped the bird into an evidence bag and stared at the cold line of the victim\u2019s mouth.\n\nSomeone had planned this very carefully.\n\nAnd somehow, they had expected her to come." - }, - "raw_response": { - "id": "chatcmpl-DVnVEh2k96IQnpAZXEH5eHHSILLHq", - "object": "chat.completion", - "created": 1776470828, - "model": "gpt-5.4-mini-2026-03-17", - "choices": [ - { - "index": 0, - "message": { - "role": "assistant", - "content": "The rain had been falling since midnight, soft and persistent, turning the city into a blur of sodium light and reflected secrets. Detective Mara Venn stood in the doorway of apartment 4B, one gloved hand resting against the frame, and looked down at the object gleaming on the floorboards.\n\nIt wasn\u2019t a weapon. It wasn\u2019t jewelry, either.\n\nAt first glance, it looked like a child\u2019s toy: a tiny brass bird with one wing folded and the other raised as if caught mid-flight. But when Mara knelt and picked it up, she felt the weight of it\u2014too heavy for its size\u2014and noticed the fine engraved line along its belly. A seam.\n\nShe turned the figurine over. Hidden beneath the bird\u2019s feet was a row of numbers, stamped so neatly they might have been part of the design. Not a serial number, exactly. Too deliberate for that. Too precise.\n\nBehind her, the apartment hummed with the low buzz of the refrigerator and the distant wail of a siren moving somewhere farther downtown. Inside the room, the dead man sat slumped in his chair as if he\u2019d merely nodded off. His hands were folded on the desk. His face was calm.\n\nMara looked again at the brass bird.\n\nThe numbers weren\u2019t random. She knew that before she even compared them to the note pinned under the victim\u2019s pen, written in a hand so steady it seemed almost smug:\n\n**You\u2019re late. Look under the third stone.**\n\nShe slipped the bird into an evidence bag and stared at the cold line of the victim\u2019s mouth.\n\nSomeone had planned this very carefully.\n\nAnd somehow, they had expected her to come.", - "refusal": null, - "annotations": [] - }, - "finish_reason": "stop" - } - ], - "usage": { - "prompt_tokens": 19, - "completion_tokens": 343, - "total_tokens": 362, - "prompt_tokens_details": { - "cached_tokens": 0, - "audio_tokens": 0 - }, - "completion_tokens_details": { - "reasoning_tokens": 0, - "audio_tokens": 0, - "accepted_prediction_tokens": 0, - "rejected_prediction_tokens": 0 - } - }, - "service_tier": "default", - "system_fingerprint": null, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'openai/gpt-5.4-mini',\n {\n messages: [\n {\n role: 'user',\n content:\n 'Write a short story opening about a detective finding an unusual clue.',\n },\n ],\n max_completion_tokens: 2048,\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Streaming Response", - "description": "Enable streaming for real-time output", - "input": { - "messages": [ - { - "role": "user", - "content": "Explain the concept of recursion with a simple example." - } - ], - "stream": true, - "stream_options": { - "include_usage": true - } - }, - "output": { - "text": [ - "Rec", - "ursion", - " is", - " when", - " a", - " function", - " solves", - " a", - " problem", - " by", - " calling", - " itself", - " on", - " a", - " smaller", - " version", - " of", - " the", - " same", - " problem", - ".\n\n", - "###", - " Simple", - " idea", - "\n", - "A", - " recursive", - " function", - " usually", - " has", - ":\n", - "1", - ".", - " **", - "A", - " base", - " case", - "**", - " \u2014", - " when", - " to", - " stop", - " calling", - " itself", - "\n", - "2", - ".", - " **", - "A", - " recursive", - " case", - "**", - " \u2014", - " when", - " it", - " calls", - " itself", - " with", - " a", - " smaller", - " input", - "\n\n", - "###", - " Example", - ":", - " counting", - " down", - "\n", - "```", - "python", - "\n", - "def", - " countdown", - "(n", - "):\n", - " ", - " if", - " n", - " ==", - " ", - "0", - ":", - " ", - " #", - " base", - " case", - "\n", - " ", - " print", - "(\"", - "Done", - "!\")\n", - " ", - " else", - ":\n", - " ", - " print", - "(n", - ")\n", - " ", - " countdown", - "(n", - " -", - " ", - "1", - ")", - " ", - " #", - " recursive", - " call", - "\n", - "``", - "`\n\n", - "If", - " you", - " run", - ":\n", - "```", - "python", - "\n", - "count", - "down", - "(", - "3", - ")\n", - "``", - "`\n\n", - "It", - " prints", - ":\n", - "```", - "python", - "\n", - "3", - "\n", - "2", - "\n", - "1", - "\n", - "Done", - "!\n", - "``", - "`\n\n", - "###", - " How", - " it", - " works", - "\n", - "-", - " `", - "count", - "down", - "(", - "3", - ")`", - " prints", - " `", - "3", - "`,", - " then", - " calls", - " `", - "count", - "down", - "(", - "2", - ")`\n", - "-", - " `", - "count", - "down", - "(", - "2", - ")`", - " prints", - " `", - "2", - "`,", - " then", - " calls", - " `", - "count", - "down", - "(", - "1", - ")`\n", - "-", - " `", - "count", - "down", - "(", - "1", - ")`", - " prints", - " `", - "1", - "`,", - " then", - " calls", - " `", - "count", - "down", - "(", - "0", - ")`\n", - "-", - " `", - "count", - "down", - "(", - "0", - ")`", - " reaches", - " the", - " base", - " case", - " and", - " stops", - "\n\n", - "###", - " In", - " short", - "\n", - "Rec", - "ursion", - " is", - " like", - " solving", - " a", - " big", - " problem", - " by", - " breaking", - " it", - " into", - " smaller", - " versions", - " of", - " the", - " same", - " problem", - " until", - " you", - " reach", - " a", - " stopping", - " point", - "." - ] - }, - "raw_response": [ - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "role": "assistant", - "content": "", - "refusal": null - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "9pV" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "Rec" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "2K" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "ursion" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "UNBcpDdj76fe6Vd" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " is" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "QA" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " when" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " a" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "res" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " function" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "XpsZVZht5vF8" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " solves" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "TytWFjdpeEmnQt" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " a" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "rSl" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " problem" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "EEroTB55yktwe" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " by" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "sk" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " calling" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "ZGeyFsUzelW8s" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " itself" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Cd4ZuEvoStoIuF" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " on" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "ZN" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " a" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "zEQ" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " smaller" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "8PGFH5OOv6pHZ" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " version" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "SqNngl189599Z" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " of" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "NS" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " the" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "c" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " same" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " problem" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "NQmrorY0usYgR" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ".\n\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "###" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Px" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " Simple" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "foQrpb94keDWDy" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " idea" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Bx9" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "A" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "4HLv" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " recursive" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "j3be1oOS9IB" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " function" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "CB5WsxOZVOV6" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " usually" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "NRq7S5Q1WBNDP" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " has" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "a" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ":\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Xq" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "1" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "FVYX" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "." - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "r9j4" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " **" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Ev" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "A" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "aT3X" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " base" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " case" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "**" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "xWP" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " \u2014" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "1KM" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " when" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " to" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "qr" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " stop" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " calling" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "6oCnJJxVP5Eiw" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " itself" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "s5Xo8s4w10xQAi" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "lrE" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "2" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "SmBj" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "." - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "X6Y3" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " **" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "H5" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "A" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "euRw" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " recursive" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Sd9xJCjdXFL" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " case" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "**" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "AYB" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " \u2014" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Jnn" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " when" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " it" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "k5" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " calls" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "oEpsDttZv5dTzvD" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " itself" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "9X1XdzGf2aCJsF" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " with" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " a" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "fbW" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " smaller" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "ne4yyc3X6kuZB" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " input" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "a5NDpjDJwsEAyzE" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "\n\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "f" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "###" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Xa" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " Example" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "DMF0aOkbPPlAL" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ":" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "8Xfm" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " counting" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "AGBPgRvRPLvh" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " down" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "joj" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "```" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "4m" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "python" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "tlSOXevlmFm8ycj" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "w9y" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "def" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "E3" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " countdown" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "bwRMWYfa0JE" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "(n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "h2K" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "):\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "T" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "wA" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " if" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "nQ" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Efx" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " ==" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Vw" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "x5lF" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "0" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "HPRb" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ":" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Ari5" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "c7Pf075yi7rl" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " #" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Wi7" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " base" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " case" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Hjg" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "z3oL3H9dRoVaXB" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " print" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "zN06FG7KBWfOX5v" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "(\"" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "7f" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "Done" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "d" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "!\")\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "IIJYz3kUgGT4kcf" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "AT" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " else" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ":\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "hu" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "BKAttd7BJjA4pb" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " print" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "ZGN8o9wQbxJXwjK" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "(n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "FT7" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ")\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Lt" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "GG68lvRt12MOCn" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " countdown" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "1Cvprcwlwf5" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "(n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "UIQ" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " -" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Gm1" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "0uK9" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "1" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "lTG9" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ")" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "NzO4" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "9ZHg" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " #" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "UWE" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " recursive" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "RoXQCRnmzD2" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " call" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "HIK" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "``" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "ta5" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "`\n\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "If" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Pks" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " you" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "y" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " run" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "P" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ":\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "2s" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "```" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "gZ" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "python" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "ec1i4tqzWi7hwV3" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "cKr" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "count" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "down" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "2" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "(" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "44OM" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "3" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "O8nw" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ")\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "nO" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "``" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "ykD" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "`\n\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "It" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "gHr" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " prints" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "chs0ThleqKhXHx" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ":\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "q8" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "```" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "ab" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "python" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "PzgVOReUAMxsWxJ" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "7uj" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "3" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "0HzL" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "gd6" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "2" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "fXii" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "MZE" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "1" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "8o6k" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "i8a" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "Done" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "i" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "!\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Pk" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "``" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "MhU" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "`\n\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "###" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "VL" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " How" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "h" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " it" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Up" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " works" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "R5Q2BhK9KG8XI3I" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "U5c" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "-" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "g6Gd" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " `" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "ro8" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "count" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "down" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "G" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "(" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "eBE6" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "3" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "tmzr" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ")`" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "W7w" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " prints" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "NIX4YHoaKoQ1Rh" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " `" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "AHQ" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "3" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "e3jE" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "`," - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "cNK" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " then" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " calls" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "jSA95eRcI8OdheI" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " `" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "5Jv" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "count" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "down" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "q" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "(" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "oMZZ" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "2" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "8aW5" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ")`\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "r" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "-" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "auA0" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " `" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "go8" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "count" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "down" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "N" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "(" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "2S7d" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "2" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "OPrl" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ")`" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "HbN" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " prints" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Ajil8fBT6WWL9X" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " `" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "IYb" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "2" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "V0bC" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "`," - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "rXM" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " then" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " calls" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "BDvA75Qb6x5O3g1" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " `" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "HkN" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "count" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "down" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "o" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "(" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "QaOC" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "1" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "183U" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ")`\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "F" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "-" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Gpk9" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " `" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "vqQ" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "count" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "down" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "B" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "(" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "a2U4" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "1" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "uymI" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ")`" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "2h6" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " prints" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "re42K6JXmllWYL" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " `" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "3uN" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "1" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Gs1h" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "`," - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "ZuO" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " then" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " calls" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "iWHIfUQvSbltiA3" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " `" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "wRI" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "count" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "down" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "o" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "(" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "xNs0" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "0" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "CNFG" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ")`\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "B" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "-" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "abMe" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " `" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "MYD" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "count" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "down" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "m" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "(" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Cmx0" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "0" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "I6jy" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ")`" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "bqD" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " reaches" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "yOLLx3pF6QJry" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " the" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "X" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " base" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " case" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " and" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "b" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " stops" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "z1MC0JkG7mM9NFh" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "\n\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Y" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "###" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "rX" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " In" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "N8" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " short" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "HIxpxLiOw4IRzpi" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "g7s" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "Rec" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "WU" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "ursion" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "JTiiv8pkFPdt8jH" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " is" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "yU" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " like" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " solving" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "KXrtPef9zh9AR" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " a" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "APU" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " big" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "2" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " problem" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "RFzaPT9LSn3Vl" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " by" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "ty" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " breaking" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "D1dEDMF72LHc" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " it" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Wt" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " into" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " smaller" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "FbDrZHd6byHkA" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " versions" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "gTNtrSNedUTQ" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " of" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "eY" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " the" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "x" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " same" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " problem" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "UhtePXnvMuelS" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " until" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "grMwpNuMnkdOCqD" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " you" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "H" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " reach" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "CKKs0fI1wij4Zvf" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " a" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "u8p" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " stopping" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "yJKyrdZAy3eD" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " point" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "USdrp7haRdCbJb1" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "." - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "xzYa" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": {}, - "finish_reason": "stop" - } - ], - "usage": null, - "obfuscation": "xrRbdC17ZciDxjr" - }, - { - "id": "chatcmpl-DVnVIJWPzCL8OTA38vb3b0IM2eEca", - "object": "chat.completion.chunk", - "created": 1776470832, - "model": "gpt-5.4-mini-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [], - "usage": { - "prompt_tokens": 16, - "completion_tokens": 251, - "total_tokens": 267, - "prompt_tokens_details": { - "cached_tokens": 0, - "audio_tokens": 0 - }, - "completion_tokens_details": { - "reasoning_tokens": 0, - "audio_tokens": 0, - "accepted_prediction_tokens": 0, - "rejected_prediction_tokens": 0 - } - }, - "obfuscation": "Ic" - } - ], - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'openai/gpt-5.4-mini',\n {\n messages: [\n {\n role: 'user',\n content: 'Explain the concept of recursion with a simple example.',\n },\n ],\n stream: true,\n stream_options: {\n include_usage: true,\n },\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - } - ], - "supports_async": false, - "external_info": "https://openai.com/", - "terms": "https://openai.com/policies/", - "cover_image_url": "https://pub-26f1392c1b674324be6786695bd72257.r2.dev/openai/gpt-5.4-mini.png", - "metadata": { - "Architecture": "Transformer" - }, - "created_at": "2026-04-13 16:45:17", - "default_example": null, - "code_snippets": [], - "zdr": false, - "zdr_comment": null, - "schema": { - "input": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "messages": { - "type": "array", - "items": { - "type": "object", - "properties": { - "role": { - "type": "string", - "enum": [ - "system", - "developer", - "user", - "assistant", - "tool" - ] - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - }, - { - "type": "array", - "items": {} - } - ] - } - }, - "required": [ - "role", - "content" - ], - "additionalProperties": {} - } - }, - "temperature": { - "type": "number", - "minimum": 0, - "maximum": 2 - }, - "max_tokens": { - "type": "number", - "exclusiveMinimum": 0 - }, - "max_completion_tokens": { - "type": "number", - "exclusiveMinimum": 0 - }, - "top_p": { - "type": "number", - "minimum": 0, - "maximum": 1 - }, - "frequency_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2 - }, - "presence_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2 - }, - "stream": { - "type": "boolean" - }, - "stream_options": { - "type": "object", - "properties": { - "include_usage": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "tools": { - "type": "array", - "items": {} - }, - "tool_choice": {}, - "response_format": {} - }, - "required": [ - "messages" - ], - "additionalProperties": {} - }, - "output": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "object": { - "type": "string" - }, - "created": { - "type": "number" - }, - "model": { - "type": "string" - }, - "choices": { - "type": "array", - "items": { - "type": "object", - "properties": { - "index": { - "type": "number" - }, - "message": { - "type": "object", - "properties": { - "role": { - "type": "string" - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "tool_calls": { - "type": "array", - "items": {} - } - }, - "required": [ - "role" - ], - "additionalProperties": {} - }, - "finish_reason": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "index", - "message", - "finish_reason" - ], - "additionalProperties": {} - } - }, - "usage": { - "type": "object", - "properties": { - "prompt_tokens": { - "type": "number" - }, - "completion_tokens": { - "type": "number" - }, - "total_tokens": { - "type": "number" - } - }, - "required": [ - "prompt_tokens", - "completion_tokens", - "total_tokens" - ], - "additionalProperties": {} - } - }, - "required": [ - "id", - "object", - "created", - "model", - "choices" - ], - "additionalProperties": {} - } - } -} diff --git a/src/content/catalog-models/openai-gpt-5.4-nano.json b/src/content/catalog-models/openai-gpt-5.4-nano.json deleted file mode 100644 index 5c902a6ee41adda..000000000000000 --- a/src/content/catalog-models/openai-gpt-5.4-nano.json +++ /dev/null @@ -1,6150 +0,0 @@ -{ - "model_id": "openai/gpt-5.4-nano", - "provider_id": "openai", - "name": "GPT-5.4 nano", - "description": "GPT-5.4 Nano is OpenAI's smallest and fastest model, optimized for edge and low-latency use cases.", - "task": "Text Generation", - "tags": [ - "LLM", - "Fast", - "Cost-Efficient", - "Edge" - ], - "context_length": 128000, - "max_output_tokens": 16384, - "schema_version": "1.0.0", - "examples": [ - { - "name": "Simple Question", - "description": "Basic chat completion request", - "input": { - "messages": [ - { - "role": "user", - "content": "What are the three laws of thermodynamics?" - } - ] - }, - "output": { - "text": "The three laws of thermodynamics are:\n\n1. **Zeroth Law (thermal equilibrium):** \n If system A is in thermal equilibrium with system B, and system B is in thermal equilibrium with system C, then A is in thermal equilibrium with C. \n *This law justifies the concept of temperature.*\n\n2. **First Law (conservation of energy):** \n Energy cannot be created or destroyed. It can only be transferred or transformed. \n *In thermodynamics:* the change in internal energy of a system equals heat added to the system minus work done by the system.\n\n3. **Second Law (entropy and direction of processes):** \n Natural processes occur in a direction that increases the **total entropy** of the universe (or, equivalently, they tend to go from more ordered to less ordered forms). \n It also implies that **not all heat can be converted into work** in a cyclical process.\n\n*(There is also a \u201cThird Law,\u201d often presented alongside these as the third in the series.)*\n\n4. **Third Law (absolute zero):** \n As temperature approaches absolute zero (0 K), the entropy of a perfect crystal approaches a constant minimum value (typically zero). \n It is impossible to reach absolute zero in a finite number of steps." - }, - "raw_response": { - "id": "chatcmpl-DVnSyLOilRNmNr3S4HVuxEV3o73CA", - "object": "chat.completion", - "created": 1776470688, - "model": "gpt-5.4-nano-2026-03-17", - "choices": [ - { - "index": 0, - "message": { - "role": "assistant", - "content": "The three laws of thermodynamics are:\n\n1. **Zeroth Law (thermal equilibrium):** \n If system A is in thermal equilibrium with system B, and system B is in thermal equilibrium with system C, then A is in thermal equilibrium with C. \n *This law justifies the concept of temperature.*\n\n2. **First Law (conservation of energy):** \n Energy cannot be created or destroyed. It can only be transferred or transformed. \n *In thermodynamics:* the change in internal energy of a system equals heat added to the system minus work done by the system.\n\n3. **Second Law (entropy and direction of processes):** \n Natural processes occur in a direction that increases the **total entropy** of the universe (or, equivalently, they tend to go from more ordered to less ordered forms). \n It also implies that **not all heat can be converted into work** in a cyclical process.\n\n*(There is also a \u201cThird Law,\u201d often presented alongside these as the third in the series.)*\n\n4. **Third Law (absolute zero):** \n As temperature approaches absolute zero (0 K), the entropy of a perfect crystal approaches a constant minimum value (typically zero). \n It is impossible to reach absolute zero in a finite number of steps.", - "refusal": null, - "annotations": [] - }, - "finish_reason": "stop" - } - ], - "usage": { - "prompt_tokens": 15, - "completion_tokens": 269, - "total_tokens": 284, - "prompt_tokens_details": { - "cached_tokens": 0, - "audio_tokens": 0 - }, - "completion_tokens_details": { - "reasoning_tokens": 0, - "audio_tokens": 0, - "accepted_prediction_tokens": 0, - "rejected_prediction_tokens": 0 - } - }, - "service_tier": "default", - "system_fingerprint": null, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'openai/gpt-5.4-nano',\n {\n messages: [\n {\n role: 'user',\n content: 'What are the three laws of thermodynamics?',\n },\n ],\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "With System Message", - "description": "Using a system message to set context", - "input": { - "messages": [ - { - "role": "system", - "content": "You are a helpful coding assistant specializing in Python." - }, - { - "role": "user", - "content": "How do I read a JSON file in Python?" - } - ] - }, - "output": { - "text": "You can read a JSON file in Python using the built-in `json` module.\n\n```python\nimport json\n\nwith open(\"data.json\", \"r\", encoding=\"utf-8\") as f:\n data = json.load(f)\n\nprint(data) # data is now a Python dict/list depending on the JSON\n```\n\n**Notes:**\n- Use `json.load(f)` to read from a file object.\n- If your JSON file is an array at the top level, `data` will be a `list`; if it\u2019s an object, it\u2019ll be a `dict`.\n\nIf you want to read a JSON string instead (not a file), use `json.loads(s)`." - }, - "raw_response": { - "id": "chatcmpl-DVnSzJVB6hEuloVcaDknzODqh082f", - "object": "chat.completion", - "created": 1776470689, - "model": "gpt-5.4-nano-2026-03-17", - "choices": [ - { - "index": 0, - "message": { - "role": "assistant", - "content": "You can read a JSON file in Python using the built-in `json` module.\n\n```python\nimport json\n\nwith open(\"data.json\", \"r\", encoding=\"utf-8\") as f:\n data = json.load(f)\n\nprint(data) # data is now a Python dict/list depending on the JSON\n```\n\n**Notes:**\n- Use `json.load(f)` to read from a file object.\n- If your JSON file is an array at the top level, `data` will be a `list`; if it\u2019s an object, it\u2019ll be a `dict`.\n\nIf you want to read a JSON string instead (not a file), use `json.loads(s)`.", - "refusal": null, - "annotations": [] - }, - "finish_reason": "stop" - } - ], - "usage": { - "prompt_tokens": 30, - "completion_tokens": 144, - "total_tokens": 174, - "prompt_tokens_details": { - "cached_tokens": 0, - "audio_tokens": 0 - }, - "completion_tokens_details": { - "reasoning_tokens": 0, - "audio_tokens": 0, - "accepted_prediction_tokens": 0, - "rejected_prediction_tokens": 0 - } - }, - "service_tier": "default", - "system_fingerprint": null, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'openai/gpt-5.4-nano',\n {\n messages: [\n {\n role: 'system',\n content: 'You are a helpful coding assistant specializing in Python.',\n },\n {\n role: 'user',\n content: 'How do I read a JSON file in Python?',\n },\n ],\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Multi-turn Conversation", - "description": "Continuing a conversation with context", - "input": { - "messages": [ - { - "role": "user", - "content": "I need help planning a road trip from San Francisco to Los Angeles." - }, - { - "role": "assistant", - "content": "I'd be happy to help! The drive is about 380 miles and takes roughly 5-6 hours. Would you like suggestions for scenic routes or interesting stops along the way?" - }, - { - "role": "user", - "content": "Yes, what are some good places to stop?" - } - ], - "max_completion_tokens": 2048 - }, - "output": { - "text": "Absolutely\u2014here are some great stop ideas on a typical San Francisco \u2192 Los Angeles road trip (assuming you\u2019ll mostly take **I\u20115 or US\u2011101**). I\u2019ll list them by region so you can mix and match based on time and interests.\n\n## Best quick stops (easy to add)\n### Along/near the coast (great views)\n- **Half Moon Bay** \u2013 beaches, scenic overlooks, quick coffee/food stops.\n- **Santa Cruz (if you take/near US\u2011101)** \u2013 boardwalk area, viewpoints; fun even for a short stop.\n- **Monterey Bay / Cannery Row** \u2013 aquarium area and coastal scenery.\n- **Big Sur viewpoints (if you do the coastal route)** \n - Common highlights: **Bixby Bridge**, **McWay Falls (if open)**, scenic pullouts along Highway 1.\n\n> Note: Big Sur can be slower and is weather-dependent (and Highway 1 sections can close occasionally), so plan with current conditions if you choose this.\n\n### Classic \u201cHollywood-adjacent\u201d vibes\n- **Santa Barbara** \u2013 charming downtown, good food, beach walk.\n- **Solvang** \u2013 Danish-style village theme; silly/fun stop for snacks and photos.\n\n## Major \u201cworth it\u201d detours (more time, bigger payoff)\n### Wine country (if you like food + views)\n- **Santa Rosa / Healdsburg (Sonoma County)** \u2013 wineries, farm stands, tastings.\n- **Napa Valley (if you want a big wine day)** \u2013 mostly if you\u2019re okay with a longer detour.\n\n### Redwood / nature stops\n- **Henry Cowell Redwoods State Park (near Santa Cruz)** \u2013 redwood trails without a huge detour.\n- **Giant redwoods near Monterey area / Big Basin (depending on route)** \u2013 more forest time.\n\n### Route/landscape highlights on inland routes\nIf you go more inland (often faster, less coastline):\n- **Gilroy** \u2013 quick stop for garlic-themed food or outlets.\n- **Central Valley roadside stops** \u2013 quick lunch breaks, but fewer \u201cmust-see\u201d landmarks.\n\n## A few \u201cchoose based on your route\u201d suggestions\n- **If you take US\u2011101 (often prettier / more towns):** Half Moon Bay \u2192 Santa Cruz \u2192 Monterey \u2192 Santa Barbara \u2192 LA.\n- **If you take I\u20115 (usually faster):** San Jose area \u2192 Paso Robles (good mid-way option) \u2192 Santa Barbara \u2192 LA.\n- **If you want the iconic scenery:** prioritize **Highway 1 / Big Sur** (best views, slower, more planning).\n\n---\n\n### Quick questions so I can tailor a perfect stop list + itinerary\n1. What month (or approximate dates) are you going?\n2. Do you prefer **coastal views (slower, scenic)** or **faster/inland (more driving, fewer views)**?\n3. How many days do you want (e.g., 1 long day vs 2\u20133 days)?\n4. Any interests: beaches, hiking, wine, kitschy towns, food stops, museums?\n\nAnswer those and I\u2019ll propose a specific route with 6\u201312 stops, estimated timing, and backup options." - }, - "raw_response": { - "id": "chatcmpl-DVnT1xz56ah5Px0VXmp40Yxy793fo", - "object": "chat.completion", - "created": 1776470691, - "model": "gpt-5.4-nano-2026-03-17", - "choices": [ - { - "index": 0, - "message": { - "role": "assistant", - "content": "Absolutely\u2014here are some great stop ideas on a typical San Francisco \u2192 Los Angeles road trip (assuming you\u2019ll mostly take **I\u20115 or US\u2011101**). I\u2019ll list them by region so you can mix and match based on time and interests.\n\n## Best quick stops (easy to add)\n### Along/near the coast (great views)\n- **Half Moon Bay** \u2013 beaches, scenic overlooks, quick coffee/food stops.\n- **Santa Cruz (if you take/near US\u2011101)** \u2013 boardwalk area, viewpoints; fun even for a short stop.\n- **Monterey Bay / Cannery Row** \u2013 aquarium area and coastal scenery.\n- **Big Sur viewpoints (if you do the coastal route)** \n - Common highlights: **Bixby Bridge**, **McWay Falls (if open)**, scenic pullouts along Highway 1.\n\n> Note: Big Sur can be slower and is weather-dependent (and Highway 1 sections can close occasionally), so plan with current conditions if you choose this.\n\n### Classic \u201cHollywood-adjacent\u201d vibes\n- **Santa Barbara** \u2013 charming downtown, good food, beach walk.\n- **Solvang** \u2013 Danish-style village theme; silly/fun stop for snacks and photos.\n\n## Major \u201cworth it\u201d detours (more time, bigger payoff)\n### Wine country (if you like food + views)\n- **Santa Rosa / Healdsburg (Sonoma County)** \u2013 wineries, farm stands, tastings.\n- **Napa Valley (if you want a big wine day)** \u2013 mostly if you\u2019re okay with a longer detour.\n\n### Redwood / nature stops\n- **Henry Cowell Redwoods State Park (near Santa Cruz)** \u2013 redwood trails without a huge detour.\n- **Giant redwoods near Monterey area / Big Basin (depending on route)** \u2013 more forest time.\n\n### Route/landscape highlights on inland routes\nIf you go more inland (often faster, less coastline):\n- **Gilroy** \u2013 quick stop for garlic-themed food or outlets.\n- **Central Valley roadside stops** \u2013 quick lunch breaks, but fewer \u201cmust-see\u201d landmarks.\n\n## A few \u201cchoose based on your route\u201d suggestions\n- **If you take US\u2011101 (often prettier / more towns):** Half Moon Bay \u2192 Santa Cruz \u2192 Monterey \u2192 Santa Barbara \u2192 LA.\n- **If you take I\u20115 (usually faster):** San Jose area \u2192 Paso Robles (good mid-way option) \u2192 Santa Barbara \u2192 LA.\n- **If you want the iconic scenery:** prioritize **Highway 1 / Big Sur** (best views, slower, more planning).\n\n---\n\n### Quick questions so I can tailor a perfect stop list + itinerary\n1. What month (or approximate dates) are you going?\n2. Do you prefer **coastal views (slower, scenic)** or **faster/inland (more driving, fewer views)**?\n3. How many days do you want (e.g., 1 long day vs 2\u20133 days)?\n4. Any interests: beaches, hiking, wine, kitschy towns, food stops, museums?\n\nAnswer those and I\u2019ll propose a specific route with 6\u201312 stops, estimated timing, and backup options.", - "refusal": null, - "annotations": [] - }, - "finish_reason": "stop" - } - ], - "usage": { - "prompt_tokens": 76, - "completion_tokens": 665, - "total_tokens": 741, - "prompt_tokens_details": { - "cached_tokens": 0, - "audio_tokens": 0 - }, - "completion_tokens_details": { - "reasoning_tokens": 0, - "audio_tokens": 0, - "accepted_prediction_tokens": 0, - "rejected_prediction_tokens": 0 - } - }, - "service_tier": "default", - "system_fingerprint": null, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'openai/gpt-5.4-nano',\n {\n messages: [\n {\n role: 'user',\n content:\n 'I need help planning a road trip from San Francisco to Los Angeles.',\n },\n {\n role: 'assistant',\n content:\n \"I'd be happy to help! The drive is about 380 miles and takes roughly 5-6 hours. Would you like suggestions for scenic routes or interesting stops along the way?\",\n },\n {\n role: 'user',\n content: 'Yes, what are some good places to stop?',\n },\n ],\n max_completion_tokens: 2048,\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Creative Writing", - "description": "Longer completion for creative output", - "input": { - "messages": [ - { - "role": "user", - "content": "Write a short story opening about a detective finding an unusual clue." - } - ], - "max_completion_tokens": 2048 - }, - "output": { - "text": "The rain had been falling long enough to turn the city\u2019s neon into smeared watercolor, but it hadn\u2019t softened the edges of the crime scene.\n\nDetective Mara Kincaid stood just inside the taped perimeter, her coat dark with moisture and her mind sharper than the puddles gathering at her feet. The victim\u2019s apartment sat above a shuttered bakery, its windows fogged from the inside, its hallway smelling faintly of citrus cleaner and burnt copper.\n\nA uniform officer hovered nearby, eager to be useful. \u201cNo signs of forced entry, Detective. The husband\u2014\u201d He stopped, corrected himself. \u201cThe occupant. He found them like this.\u201d\n\nMara didn\u2019t look up. She was kneeling by the threshold, letting her flashlight sweep the floorboards the way some people read scripture\u2014slow, patient, searching for the lines that didn\u2019t belong.\n\nSomething glittered against the worn grain of wood.\n\nIt wasn\u2019t glass. It wasn\u2019t glitter from a spilled drink. It didn\u2019t catch the light like coins or broken jewelry. It caught it like\u2026 breath.\n\nA thin, translucent flake\u2014no bigger than a fingernail clipping\u2014lay half-buried in the seam between two planks. When Mara tilted her beam, the flake didn\u2019t reflect so much as *remember*. The light seemed to sink into it and come back altered, as if the material were holding a picture just out of reach.\n\n\u201cDon\u2019t touch it,\u201d she said automatically, though she hadn\u2019t realized she\u2019d spoken until the officer flinched.\n\nMara held her breath. The flake had a faint curve, like the edge of a leaf, and a delicate pattern of lines that didn\u2019t resemble any natural vein. Under the flashlight, the pattern looked almost\u2026 intentional.\n\nShe lifted her gloved hand, stopped millimeters above it, and felt a temperature difference. The wood around it was cold with night air. The flake was warmer, as though it had just been pressed there.\n\nOn instinct, she slid a small evidence marker beside it without moving the flake itself. Then she leaned closer and listened\u2014because in her line of work, some things weren\u2019t just seen.\n\nAt first there was only the rain and the distant rumble of traffic.\n\nThen\u2014barely audible beneath it\u2014a soft, rhythmic *tick\u2026 tick\u2026 tick*, like a clock inside something too small to be a clock.\n\nMara straightened slowly, her stomach tightening. The unusual clue wasn\u2019t just out of place.\n\nIt was *alive* in a way she couldn\u2019t explain.\n\nBehind her, the officer cleared his throat. \u201cDetective? Should we\u2014uh\u2014call for your tech?\u201d\n\nMara didn\u2019t answer right away. She stared at the flake until her eyes began to ache, watching the light tremble within it like it was trying to form a message.\n\nFinally, she said, \u201cYeah. And bring two sets of gloves.\u201d\n\nShe stood, turning toward the apartment interior where the air felt heavy with everything that had already happened.\n\nWhatever left this behind didn\u2019t want to be caught.\n\nBut it had made sure she\u2019d look\u2014down at the seam between boards\u2014at the moment her flashlight found it.\n\nAs if it knew exactly where her curiosity would go next." - }, - "raw_response": { - "id": "chatcmpl-DVnT1SUtcOln0seA0LbQDeFgl1Mdf", - "object": "chat.completion", - "created": 1776470691, - "model": "gpt-5.4-nano-2026-03-17", - "choices": [ - { - "index": 0, - "message": { - "role": "assistant", - "content": "The rain had been falling long enough to turn the city\u2019s neon into smeared watercolor, but it hadn\u2019t softened the edges of the crime scene.\n\nDetective Mara Kincaid stood just inside the taped perimeter, her coat dark with moisture and her mind sharper than the puddles gathering at her feet. The victim\u2019s apartment sat above a shuttered bakery, its windows fogged from the inside, its hallway smelling faintly of citrus cleaner and burnt copper.\n\nA uniform officer hovered nearby, eager to be useful. \u201cNo signs of forced entry, Detective. The husband\u2014\u201d He stopped, corrected himself. \u201cThe occupant. He found them like this.\u201d\n\nMara didn\u2019t look up. She was kneeling by the threshold, letting her flashlight sweep the floorboards the way some people read scripture\u2014slow, patient, searching for the lines that didn\u2019t belong.\n\nSomething glittered against the worn grain of wood.\n\nIt wasn\u2019t glass. It wasn\u2019t glitter from a spilled drink. It didn\u2019t catch the light like coins or broken jewelry. It caught it like\u2026 breath.\n\nA thin, translucent flake\u2014no bigger than a fingernail clipping\u2014lay half-buried in the seam between two planks. When Mara tilted her beam, the flake didn\u2019t reflect so much as *remember*. The light seemed to sink into it and come back altered, as if the material were holding a picture just out of reach.\n\n\u201cDon\u2019t touch it,\u201d she said automatically, though she hadn\u2019t realized she\u2019d spoken until the officer flinched.\n\nMara held her breath. The flake had a faint curve, like the edge of a leaf, and a delicate pattern of lines that didn\u2019t resemble any natural vein. Under the flashlight, the pattern looked almost\u2026 intentional.\n\nShe lifted her gloved hand, stopped millimeters above it, and felt a temperature difference. The wood around it was cold with night air. The flake was warmer, as though it had just been pressed there.\n\nOn instinct, she slid a small evidence marker beside it without moving the flake itself. Then she leaned closer and listened\u2014because in her line of work, some things weren\u2019t just seen.\n\nAt first there was only the rain and the distant rumble of traffic.\n\nThen\u2014barely audible beneath it\u2014a soft, rhythmic *tick\u2026 tick\u2026 tick*, like a clock inside something too small to be a clock.\n\nMara straightened slowly, her stomach tightening. The unusual clue wasn\u2019t just out of place.\n\nIt was *alive* in a way she couldn\u2019t explain.\n\nBehind her, the officer cleared his throat. \u201cDetective? Should we\u2014uh\u2014call for your tech?\u201d\n\nMara didn\u2019t answer right away. She stared at the flake until her eyes began to ache, watching the light tremble within it like it was trying to form a message.\n\nFinally, she said, \u201cYeah. And bring two sets of gloves.\u201d\n\nShe stood, turning toward the apartment interior where the air felt heavy with everything that had already happened.\n\nWhatever left this behind didn\u2019t want to be caught.\n\nBut it had made sure she\u2019d look\u2014down at the seam between boards\u2014at the moment her flashlight found it.\n\nAs if it knew exactly where her curiosity would go next.", - "refusal": null, - "annotations": [] - }, - "finish_reason": "stop" - } - ], - "usage": { - "prompt_tokens": 19, - "completion_tokens": 666, - "total_tokens": 685, - "prompt_tokens_details": { - "cached_tokens": 0, - "audio_tokens": 0 - }, - "completion_tokens_details": { - "reasoning_tokens": 0, - "audio_tokens": 0, - "accepted_prediction_tokens": 0, - "rejected_prediction_tokens": 0 - } - }, - "service_tier": "default", - "system_fingerprint": null, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'openai/gpt-5.4-nano',\n {\n messages: [\n {\n role: 'user',\n content:\n 'Write a short story opening about a detective finding an unusual clue.',\n },\n ],\n max_completion_tokens: 2048,\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Streaming Response", - "description": "Enable streaming for real-time output", - "input": { - "messages": [ - { - "role": "user", - "content": "Explain the concept of recursion with a simple example." - } - ], - "stream": true, - "stream_options": { - "include_usage": true - } - }, - "output": { - "text": [ - "Rec", - "ursion", - " is", - " a", - " programming", - " technique", - " where", - " a", - " function", - " solves", - " a", - " problem", - " by", - " calling", - " itself", - " on", - " smaller", - " versions", - " of", - " the", - " same", - " problem", - ".\n\n", - "A", - " key", - " idea", - " is", - " that", - " recursion", - " usually", - " needs", - ":\n", - "1", - ".", - " **", - "A", - " base", - " case", - "**", - " (", - "when", - " to", - " stop", - ").\n", - "2", - ".", - " **", - "A", - " recursive", - " case", - "**", - " (", - "the", - " problem", - " broken", - " into", - " a", - " smaller", - " sub", - "problem", - ").\n\n", - "###", - " Simple", - " Example", - ":", - " Factor", - "ial", - "\n", - "The", - " factorial", - " of", - " a", - " number", - " *", - "n", - "*", - " (", - "written", - " `", - "n", - "!", - "`)", - " is", - ":\n", - "-", - " `", - "n", - "!", - " =", - " n", - " \u00d7", - " (", - "n", - "-", - "1", - ")!", - "`\n", - "-", - " with", - " the", - " base", - " case", - " `", - "0", - "!", - " =", - " ", - "1", - "`\n\n", - "####", - " Code", - " (", - "Python", - "-like", - " pseud", - "ocode", - ")\n", - "```", - "python", - "\n", - "def", - " factorial", - "(n", - "):\n", - " ", - " if", - " n", - " ==", - " ", - "0", - ":", - " ", - " #", - " base", - " case", - "\n", - " ", - " return", - " ", - "1", - "\n", - " ", - " return", - " n", - " *", - " factorial", - "(n", - " -", - " ", - "1", - ")", - " ", - " #", - " recursive", - " case", - "\n", - "``", - "`\n\n", - "####", - " What", - " happens", - " for", - " `", - "factor", - "ial", - "(", - "4", - ")`", - "?\n", - "-", - " `", - "factor", - "ial", - "(", - "4", - ")", - " =", - " ", - "4", - " *", - " factorial", - "(", - "3", - ")`\n", - "-", - " `", - "factor", - "ial", - "(", - "3", - ")", - " =", - " ", - "3", - " *", - " factorial", - "(", - "2", - ")`\n", - "-", - " `", - "factor", - "ial", - "(", - "2", - ")", - " =", - " ", - "2", - " *", - " factorial", - "(", - "1", - ")`\n", - "-", - " `", - "factor", - "ial", - "(", - "1", - ")", - " =", - " ", - "1", - " *", - " factorial", - "(", - "0", - ")`\n", - "-", - " `", - "factor", - "ial", - "(", - "0", - ")", - " =", - " ", - "1", - "`\n\n", - "So", - ":", - " `", - "4", - " *", - " ", - "3", - " *", - " ", - "2", - " *", - " ", - "1", - " =", - " ", - "24", - "`\n\n", - "If", - " you", - " want", - ",", - " I", - " can", - " also", - " show", - " a", - " recursion", - " example", - " like", - " summ", - "ing", - " a", - " list", - " or", - " travers", - "ing", - " a", - " tree", - "." - ] - }, - "raw_response": [ - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "role": "assistant", - "content": "", - "refusal": null - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Vug" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "Rec" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "l1" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "ursion" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "AVvvoX0VNW3rttK" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " is" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "KK" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " a" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Ltv" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " programming" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "DP9aVjQnb" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " technique" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "GNZLeICmlog" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " where" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "C7Vm6sNPRylOAzP" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " a" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "J8m" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " function" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "E2fIBxKA1WeR" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " solves" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "sXA85npEoWok6l" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " a" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "nWY" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " problem" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "IDNkUh4oMUlVL" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " by" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Pm" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " calling" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "MioN1vOL3Y60k" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " itself" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "uMEgJfSGxpeTVw" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " on" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "xt" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " smaller" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "q1uXRiMtMw3tS" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " versions" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "u4dXQDJsFWl3" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " of" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "U2" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " the" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "w" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " same" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " problem" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "fZNaeEcULh2Lz" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ".\n\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "A" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "vbwa" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " key" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Q" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " idea" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " is" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "W2" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " that" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " recursion" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "pc75foKqlPU" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " usually" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "ilh8BnbkE11dL" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " needs" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "14PbRYwb9ivuxIw" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ":\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "3i" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "1" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "5hvi" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "." - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "DkW4" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " **" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "rx" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "A" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "g8ds" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " base" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " case" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "**" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Brz" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " (" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "s6X" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "when" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "i" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " to" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "CC" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " stop" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ").\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "E" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "2" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "KSxg" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "." - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "BZeq" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " **" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "ep" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "A" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "3PHm" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " recursive" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "U7kGmZDRACv" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " case" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "**" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "wge" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " (" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "cTx" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "the" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "w0" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " problem" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "jVd8oXsDQgXtp" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " broken" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "ZA6EVGq6gbxvMJ" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " into" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " a" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "zPM" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " smaller" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "dRbB0ozscP7gw" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " sub" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "I" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "problem" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "YDXI2BRY4qwqFT" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ").\n\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "E4BTBKKhXkJkUal" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "###" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Lh" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " Simple" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "hbVFiUsgHXkHEZ" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " Example" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "bpRIryrKGgHl6" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ":" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "hbc8" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " Factor" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "FvzI9G9xBZPMmW" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "ial" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Fk" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "NNt" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "The" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "A3" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " factorial" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "mnnnwMUt9DV" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " of" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "rr" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " a" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "TB3" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " number" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "NjRx4k5XaboIGv" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " *" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "oq1" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "1ZZv" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "*" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "yQE5" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " (" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "52e" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "written" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "7bdDyiV5mVspyF" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " `" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "eXH" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "eVDt" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "!" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "oaMH" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "`)" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "S9u" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " is" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "35" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ":\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "NL" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "-" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "n6up" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " `" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "ts4" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "3mki" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "!" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "fq5r" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " =" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Rl5" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "751" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " \u00d7" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "onH" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " (" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "VTV" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "hJ5q" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "-" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "wKkp" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "1" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "iYlU" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ")!" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "HS6" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "`\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "gQ" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "-" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "3A6H" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " with" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " the" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "i" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " base" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " case" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " `" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "xGc" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "0" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "but2" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "!" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "2CSr" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " =" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "tms" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "8XCI" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "1" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "msDU" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "`\n\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "####" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "P" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " Code" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " (" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "zOG" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "Python" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "popwQw7C4UiYu93" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "-like" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " pseud" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "kiLhs4Bwyjj1lma" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "ocode" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ")\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "nY" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "```" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Ti" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "python" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "glymQQSFpC5MTXb" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "oC4" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "def" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "5h" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " factorial" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Msr8cFioG3I" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "(n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "RUs" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "):\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "L" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "pu" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " if" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "hK" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "kT9" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " ==" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "PM" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "1VjU" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "0" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "p4hP" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ":" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "QCay" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "6YvZzBmfvFyX" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " #" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "jxX" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " base" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " case" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "63V" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "OzE5uZ6zoBJg5y" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " return" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "fwJhzFXwQqTi9P" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "QuVT" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "1" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Sbk4" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "XAe" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "1Y" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " return" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "HBpU2k2BjEM8cS" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "K4K" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " *" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "CCF" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " factorial" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "q884HYG52ug" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "(n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "ovY" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " -" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "BY9" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "9ByQ" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "1" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "kFXe" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ")" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "OipJ" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "5d4i" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " #" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "31e" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " recursive" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "FH5axIu2dbZ" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " case" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "5oq" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "``" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "nHx" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "`\n\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "####" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "r" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " What" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " happens" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "4Tcesa8KASfg8" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " for" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "8" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " `" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "dhs" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "factor" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "pGDstJrjOYlqPly" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "ial" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "8q" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "(" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "5n1D" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "4" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "oDda" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ")`" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "3eN" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "?\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Vn" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "-" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "q1Or" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " `" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "GzK" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "factor" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "riijCWBmqizlGNc" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "ial" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "I6" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "(" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "tKSA" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "4" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "mGzH" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ")" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "8QtC" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " =" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "FxF" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "0tiR" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "4" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "VpyP" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " *" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "ZuR" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " factorial" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "wmiF6i12nGu" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "(" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "UE1j" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "3" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "7WoX" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ")`\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "c" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "-" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "p6Kv" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " `" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Msv" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "factor" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "VDGkLdEIMVtEDhZ" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "ial" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "LE" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "(" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "WrH0" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "3" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "ngs2" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ")" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "3dOu" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " =" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "G2g" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "WiMX" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "3" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "RCQT" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " *" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "6GC" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " factorial" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "h5OyoXJTWU2" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "(" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "l80N" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "2" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "bjOr" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ")`\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "o" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "-" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Rc0P" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " `" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "J8G" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "factor" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "8RUzi1arRryVBbq" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "ial" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "jN" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "(" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "we39" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "2" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "GSx7" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ")" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Xj0g" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " =" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "VSg" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "a58b" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "2" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "6Jjx" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " *" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "JbT" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " factorial" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "g4pkzbZPP4K" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "(" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "UIII" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "1" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "1oeN" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ")`\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "P" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "-" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "0j2z" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " `" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "ZvN" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "factor" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "qbbUaKLqUHyhsCj" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "ial" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "WX" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "(" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "v15J" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "1" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "574c" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ")" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Ambc" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " =" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "tyy" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "wyLy" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "1" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "BCKr" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " *" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "a97" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " factorial" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "KBGmZxfL7v3" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "(" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "jH9k" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "0" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "SEJ3" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ")`\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "u" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "-" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "mvTQ" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " `" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "0F2" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "factor" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "uIDrPignhn4sXve" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "ial" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "dj" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "(" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "NyTc" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "0" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "WHEk" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ")" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "gn3l" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " =" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "7BE" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "W43v" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "1" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Pfml" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "`\n\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "So" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "LYt" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ":" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "rvQh" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " `" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "WhF" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "4" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "jQGo" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " *" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "QOW" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Zsuu" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "3" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "T3fQ" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " *" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "G4Z" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "DlRI" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "2" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "XX1P" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " *" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "tbO" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Wnjt" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "1" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "cTXn" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " =" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "a2n" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "QMiC" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "24" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "fqs" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "`\n\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "If" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "EOX" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " you" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "D" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " want" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "," - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "pI5N" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " I" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "HKu" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " can" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Z" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " also" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " show" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " a" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "hI6" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " recursion" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "W230en9wuYD" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " example" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "imvKXNCDc0iDL" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " like" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " summ" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "ing" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Ls" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " a" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "YK3" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " list" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " or" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "2a" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " travers" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "tR4YWRBKwDouP" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "ing" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Qk" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " a" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "qlN" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " tree" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "." - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "PbAQ" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": {}, - "finish_reason": "stop" - } - ], - "usage": null, - "obfuscation": "CH0ZMpFYHy0RzXe" - }, - { - "id": "chatcmpl-DVnT6eFAFifz1GeXTi6RbmQUsrFn2", - "object": "chat.completion.chunk", - "created": 1776470696, - "model": "gpt-5.4-nano-2026-03-17", - "service_tier": "default", - "system_fingerprint": null, - "choices": [], - "usage": { - "prompt_tokens": 16, - "completion_tokens": 282, - "total_tokens": 298, - "prompt_tokens_details": { - "cached_tokens": 0, - "audio_tokens": 0 - }, - "completion_tokens_details": { - "reasoning_tokens": 0, - "audio_tokens": 0, - "accepted_prediction_tokens": 0, - "rejected_prediction_tokens": 0 - } - }, - "obfuscation": "1Z" - } - ], - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'openai/gpt-5.4-nano',\n {\n messages: [\n {\n role: 'user',\n content: 'Explain the concept of recursion with a simple example.',\n },\n ],\n stream: true,\n stream_options: {\n include_usage: true,\n },\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - } - ], - "supports_async": false, - "external_info": "https://openai.com/", - "terms": "https://openai.com/policies/", - "cover_image_url": "https://pub-26f1392c1b674324be6786695bd72257.r2.dev/openai/gpt-5.4-nano.png", - "metadata": { - "Architecture": "Transformer" - }, - "created_at": "2026-04-13 16:45:18", - "default_example": null, - "code_snippets": [], - "zdr": false, - "zdr_comment": null, - "schema": { - "input": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "messages": { - "type": "array", - "items": { - "type": "object", - "properties": { - "role": { - "type": "string", - "enum": [ - "system", - "developer", - "user", - "assistant", - "tool" - ] - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - }, - { - "type": "array", - "items": {} - } - ] - } - }, - "required": [ - "role", - "content" - ], - "additionalProperties": {} - } - }, - "temperature": { - "type": "number", - "minimum": 0, - "maximum": 2 - }, - "max_tokens": { - "type": "number", - "exclusiveMinimum": 0 - }, - "max_completion_tokens": { - "type": "number", - "exclusiveMinimum": 0 - }, - "top_p": { - "type": "number", - "minimum": 0, - "maximum": 1 - }, - "frequency_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2 - }, - "presence_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2 - }, - "stream": { - "type": "boolean" - }, - "stream_options": { - "type": "object", - "properties": { - "include_usage": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "tools": { - "type": "array", - "items": {} - }, - "tool_choice": {}, - "response_format": {} - }, - "required": [ - "messages" - ], - "additionalProperties": {} - }, - "output": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "object": { - "type": "string" - }, - "created": { - "type": "number" - }, - "model": { - "type": "string" - }, - "choices": { - "type": "array", - "items": { - "type": "object", - "properties": { - "index": { - "type": "number" - }, - "message": { - "type": "object", - "properties": { - "role": { - "type": "string" - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "tool_calls": { - "type": "array", - "items": {} - } - }, - "required": [ - "role" - ], - "additionalProperties": {} - }, - "finish_reason": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "index", - "message", - "finish_reason" - ], - "additionalProperties": {} - } - }, - "usage": { - "type": "object", - "properties": { - "prompt_tokens": { - "type": "number" - }, - "completion_tokens": { - "type": "number" - }, - "total_tokens": { - "type": "number" - } - }, - "required": [ - "prompt_tokens", - "completion_tokens", - "total_tokens" - ], - "additionalProperties": {} - } - }, - "required": [ - "id", - "object", - "created", - "model", - "choices" - ], - "additionalProperties": {} - } - } -} diff --git a/src/content/catalog-models/openai-gpt-5.4-pro.json b/src/content/catalog-models/openai-gpt-5.4-pro.json deleted file mode 100644 index 24fd569319fc2ec..000000000000000 --- a/src/content/catalog-models/openai-gpt-5.4-pro.json +++ /dev/null @@ -1,651 +0,0 @@ -{ - "model_id": "openai/gpt-5.4-pro", - "provider_id": "openai", - "name": "GPT-5.4 Pro", - "description": "GPT-5.4 Pro uses OpenAI's Responses API with built-in tools, improved reasoning, and stateful context management.", - "task": "Text Generation", - "tags": [ - "LLM", - "Coding", - "Reasoning", - "Multimodal", - "Responses API" - ], - "context_length": 1000000, - "max_output_tokens": 16384, - "schema_version": "1.0.0", - "examples": [ - { - "name": "Simple Question", - "description": "Basic Responses API request with string input", - "input": { - "input": "What are the three laws of thermodynamics?" - }, - "output": {}, - "raw_response": { - "id": "resp_00272dd8da5b37c90169ebb1aaeb288194a6e5ddeb7bb03dc8", - "object": "response", - "created_at": 1777054122, - "model": "gpt-5.4-pro-2026-03-05", - "output": [ - { - "id": "rs_00272dd8da5b37c90169ebb1faf90c81948fd9a67a37b4c209", - "type": "reasoning", - "summary": [] - }, - { - "id": "msg_00272dd8da5b37c90169ebb1fafad0819488ef71fbebf8527a", - "type": "message", - "status": "completed", - "content": [ - { - "type": "output_text", - "annotations": [], - "logprobs": [], - "text": "The **three laws of thermodynamics** usually mean:\n\n1. **First Law \u2014 Conservation of Energy** \n Energy cannot be created or destroyed, only transferred or transformed. \n - In thermodynamics: the change in a system\u2019s internal energy equals heat added to the system minus work done by the system.\n\n2. **Second Law \u2014 Entropy Increases** \n In any natural process, the total entropy of an isolated system tends to increase. \n - This means energy spontaneously spreads out, and no heat engine can be 100% efficient.\n - Heat naturally flows from hot objects to cold ones, not the reverse without input of work.\n\n3. **Third Law \u2014 Entropy at Absolute Zero** \n As temperature approaches **absolute zero** (0 K), the entropy of a perfect crystal approaches zero. \n - A consequence is that absolute zero cannot be reached in a finite number of steps.\n\nSmall note: thermodynamics also has a **Zeroth Law**, which is often listed before these:\n- If system A is in thermal equilibrium with B, and B is in thermal equilibrium with C, then A is in thermal equilibrium with C. \n- This is the basis for the concept of **temperature**.\n\nIf you want, I can also give a **one-line intuitive version** of each law." - } - ], - "phase": "final_answer", - "role": "assistant" - } - ], - "status": "completed", - "usage": { - "input_tokens": 15, - "output_tokens": 342, - "total_tokens": 357, - "input_tokens_details": { - "cached_tokens": 0 - }, - "output_tokens_details": { - "reasoning_tokens": 67 - } - }, - "background": false, - "billing": { - "payer": "developer" - }, - "completed_at": 1777054203, - "error": null, - "frequency_penalty": 0, - "incomplete_details": null, - "instructions": null, - "max_output_tokens": null, - "max_tool_calls": null, - "moderation": null, - "parallel_tool_calls": true, - "presence_penalty": 0, - "previous_response_id": null, - "prompt_cache_key": null, - "prompt_cache_retention": "in_memory", - "reasoning": { - "effort": "medium", - "summary": null - }, - "safety_identifier": null, - "service_tier": "default", - "store": false, - "temperature": 1, - "text": { - "format": { - "type": "text" - }, - "verbosity": "medium" - }, - "tool_choice": "auto", - "tools": [], - "top_logprobs": 0, - "top_p": 0.98, - "truncation": "disabled", - "user": null, - "metadata": {}, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'openai/gpt-5.4-pro',\n {\n input: 'What are the three laws of thermodynamics?',\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "With Instructions", - "description": "Using instructions to set context", - "input": { - "input": "How do I read a JSON file in Python?", - "instructions": "You are a helpful coding assistant specializing in Python." - }, - "output": {}, - "raw_response": { - "id": "resp_00e5a81e42bf0bda0169ebb1ab449c8190a0d57802b4aebebd", - "object": "response", - "created_at": 1777054123, - "model": "gpt-5.4-pro-2026-03-05", - "output": [ - { - "id": "rs_00e5a81e42bf0bda0169ebb1c0e57881909eaf01efa0557a43", - "type": "reasoning", - "summary": [] - }, - { - "id": "msg_00e5a81e42bf0bda0169ebb1c0e7608190b3928d22f252a21a", - "type": "message", - "status": "completed", - "content": [ - { - "type": "output_text", - "annotations": [], - "logprobs": [], - "text": "Use Python\u2019s built-in `json` module.\n\n### Read a JSON file into a Python object\n```python\nimport json\n\nwith open(\"data.json\", \"r\", encoding=\"utf-8\") as f:\n data = json.load(f)\n\nprint(data)\n```\n\n### What you get back\n`json.load()` converts JSON into normal Python types:\n\n- JSON object \u2192 `dict`\n- JSON array \u2192 `list`\n- JSON string \u2192 `str`\n- JSON number \u2192 `int` / `float`\n- JSON true/false \u2192 `True` / `False`\n- JSON null \u2192 `None`\n\n### Example\nIf `data.json` contains:\n```json\n{\n \"name\": \"Alice\",\n \"age\": 30,\n \"skills\": [\"Python\", \"SQL\"]\n}\n```\n\nThen:\n```python\nimport json\n\nwith open(\"data.json\", \"r\", encoding=\"utf-8\") as f:\n data = json.load(f)\n\nprint(data[\"name\"]) # Alice\nprint(data[\"skills\"]) # ['Python', 'SQL']\n```\n\n### Handle errors safely\n```python\nimport json\n\ntry:\n with open(\"data.json\", \"r\", encoding=\"utf-8\") as f:\n data = json.load(f)\nexcept FileNotFoundError:\n print(\"File not found.\")\nexcept json.JSONDecodeError:\n print(\"Invalid JSON.\")\n```\n\n### If you already have JSON as a string\nUse `json.loads()` instead:\n```python\nimport json\n\ntext = '{\"name\": \"Alice\", \"age\": 30}'\ndata = json.loads(text)\nprint(data)\n```\n\nIf you want, I can also show how to **write JSON back to a file**." - } - ], - "phase": "final_answer", - "role": "assistant" - } - ], - "status": "completed", - "usage": { - "input_tokens": 30, - "output_tokens": 397, - "total_tokens": 427, - "input_tokens_details": { - "cached_tokens": 0 - }, - "output_tokens_details": { - "reasoning_tokens": 35 - } - }, - "background": false, - "billing": { - "payer": "developer" - }, - "completed_at": 1777054145, - "error": null, - "frequency_penalty": 0, - "incomplete_details": null, - "instructions": "You are a helpful coding assistant specializing in Python.", - "max_output_tokens": null, - "max_tool_calls": null, - "moderation": null, - "parallel_tool_calls": true, - "presence_penalty": 0, - "previous_response_id": null, - "prompt_cache_key": null, - "prompt_cache_retention": "in_memory", - "reasoning": { - "effort": "medium", - "summary": null - }, - "safety_identifier": null, - "service_tier": "default", - "store": false, - "temperature": 1, - "text": { - "format": { - "type": "text" - }, - "verbosity": "medium" - }, - "tool_choice": "auto", - "tools": [], - "top_logprobs": 0, - "top_p": 0.98, - "truncation": "disabled", - "user": null, - "metadata": {}, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'openai/gpt-5.4-pro',\n {\n input: 'How do I read a JSON file in Python?',\n instructions: 'You are a helpful coding assistant specializing in Python.',\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Multi-turn Conversation", - "description": "Continuing a conversation with message array", - "input": { - "input": [ - { - "role": "user", - "content": "I need help planning a road trip from San Francisco to Los Angeles." - }, - { - "role": "assistant", - "content": "I'd be happy to help! The drive is about 380 miles and takes roughly 5-6 hours. Would you like suggestions for scenic routes or interesting stops along the way?" - }, - { - "role": "user", - "content": "Yes, what are some good places to stop?" - } - ], - "max_output_tokens": 150 - }, - "output": {}, - "raw_response": { - "id": "resp_0397b95354e16b7b0169ebb1c23c208195ba8c75dd3c321a8b", - "object": "response", - "created_at": 1777054146, - "model": "gpt-5.4-pro-2026-03-05", - "output": [ - { - "id": "rs_0397b95354e16b7b0169ebb1cc0bb08195b0ef5e3a34b7d7aa", - "type": "reasoning", - "summary": [] - } - ], - "status": "incomplete", - "usage": { - "input_tokens": 76, - "output_tokens": 150, - "total_tokens": 226, - "input_tokens_details": { - "cached_tokens": 0 - }, - "output_tokens_details": { - "reasoning_tokens": 150 - } - }, - "background": false, - "billing": { - "payer": "developer" - }, - "completed_at": null, - "error": null, - "frequency_penalty": 0, - "incomplete_details": { - "reason": "max_output_tokens" - }, - "instructions": null, - "max_output_tokens": 150, - "max_tool_calls": null, - "moderation": null, - "parallel_tool_calls": true, - "presence_penalty": 0, - "previous_response_id": null, - "prompt_cache_key": null, - "prompt_cache_retention": "in_memory", - "reasoning": { - "effort": "medium", - "summary": null - }, - "safety_identifier": null, - "service_tier": "default", - "store": false, - "temperature": 1, - "text": { - "format": { - "type": "text" - }, - "verbosity": "medium" - }, - "tool_choice": "auto", - "tools": [], - "top_logprobs": 0, - "top_p": 0.98, - "truncation": "disabled", - "user": null, - "metadata": {}, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'openai/gpt-5.4-pro',\n {\n input: [\n {\n role: 'user',\n content:\n 'I need help planning a road trip from San Francisco to Los Angeles.',\n },\n {\n role: 'assistant',\n content:\n \"I'd be happy to help! The drive is about 380 miles and takes roughly 5-6 hours. Would you like suggestions for scenic routes or interesting stops along the way?\",\n },\n {\n role: 'user',\n content: 'Yes, what are some good places to stop?',\n },\n ],\n max_output_tokens: 150,\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Temperature Control", - "description": "Using temperature for creative responses", - "input": { - "input": "Write a haiku about artificial intelligence", - "temperature": 1 - }, - "output": {}, - "raw_response": { - "id": "resp_01b04056ffd5d9ac0169ebb1cc85348196a164e1d9e99ac1f5", - "object": "response", - "created_at": 1777054156, - "model": "gpt-5.4-pro-2026-03-05", - "output": [ - { - "id": "rs_01b04056ffd5d9ac0169ebb1ee42688196859b0cd089b7924c", - "type": "reasoning", - "summary": [] - }, - { - "id": "msg_01b04056ffd5d9ac0169ebb1ee44248196aa66c63d28c6a59b", - "type": "message", - "status": "completed", - "content": [ - { - "type": "output_text", - "annotations": [], - "logprobs": [], - "text": "Silent circuits dream \nLearning patterns in the dark \nDawn wakes metal minds" - } - ], - "phase": "final_answer", - "role": "assistant" - } - ], - "status": "completed", - "usage": { - "input_tokens": 13, - "output_tokens": 122, - "total_tokens": 135, - "input_tokens_details": { - "cached_tokens": 0 - }, - "output_tokens_details": { - "reasoning_tokens": 101 - } - }, - "background": false, - "billing": { - "payer": "developer" - }, - "completed_at": 1777054190, - "error": null, - "frequency_penalty": 0, - "incomplete_details": null, - "instructions": null, - "max_output_tokens": null, - "max_tool_calls": null, - "moderation": null, - "parallel_tool_calls": true, - "presence_penalty": 0, - "previous_response_id": null, - "prompt_cache_key": null, - "prompt_cache_retention": "in_memory", - "reasoning": { - "effort": "medium", - "summary": null - }, - "safety_identifier": null, - "service_tier": "default", - "store": false, - "temperature": 1, - "text": { - "format": { - "type": "text" - }, - "verbosity": "medium" - }, - "tool_choice": "auto", - "tools": [], - "top_logprobs": 0, - "top_p": 0.98, - "truncation": "disabled", - "user": null, - "metadata": {}, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'openai/gpt-5.4-pro',\n {\n input: 'Write a haiku about artificial intelligence',\n temperature: 1,\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "With Reasoning", - "description": "Using reasoning effort for complex problems", - "input": { - "input": "Solve this problem step by step: A train leaves Chicago at 60mph heading east. Another train leaves New York at 80mph heading west. They are 900 miles apart. When do they meet?", - "reasoning": { - "effort": "medium" - } - }, - "output": {}, - "raw_response": { - "id": "resp_01e1e7671514bf440169ebb1ef8af88190b68b1e60a0cb59ed", - "object": "response", - "created_at": 1777054191, - "model": "gpt-5.4-pro-2026-03-05", - "output": [ - { - "id": "rs_01e1e7671514bf440169ebb236f1e88190931dc758c55a4050", - "type": "reasoning", - "summary": [] - }, - { - "id": "msg_01e1e7671514bf440169ebb236f3a88190b6a99b6fc6389fde", - "type": "message", - "status": "completed", - "content": [ - { - "type": "output_text", - "annotations": [], - "logprobs": [], - "text": "Step 1: Find their combined speed since they are moving toward each other.\n\n- Train from Chicago: **60 mph**\n- Train from New York: **80 mph**\n\nCombined speed:\n\n**60 + 80 = 140 mph**\n\nStep 2: Use the distance formula:\n\n\\[\n\\text{time}=\\frac{\\text{distance}}{\\text{speed}}\n\\]\n\n\\[\n\\text{time}=\\frac{900}{140}\n\\]\n\n\\[\n\\text{time}=6.428571\\text{ hours}\n\\]\n\nStep 3: Convert the decimal part to minutes.\n\n\\[\n0.428571 \\times 60 \\approx 25.7 \\text{ minutes}\n\\]\n\nSo they meet after about:\n\n**6 hours 26 minutes**\n\nFinal answer: **The trains meet about 6 hours 26 minutes after they leave.**" - } - ], - "phase": "final_answer", - "role": "assistant" - } - ], - "status": "completed", - "usage": { - "input_tokens": 48, - "output_tokens": 272, - "total_tokens": 320, - "input_tokens_details": { - "cached_tokens": 0 - }, - "output_tokens_details": { - "reasoning_tokens": 88 - } - }, - "background": false, - "billing": { - "payer": "developer" - }, - "completed_at": 1777054263, - "error": null, - "frequency_penalty": 0, - "incomplete_details": null, - "instructions": null, - "max_output_tokens": null, - "max_tool_calls": null, - "moderation": null, - "parallel_tool_calls": true, - "presence_penalty": 0, - "previous_response_id": null, - "prompt_cache_key": null, - "prompt_cache_retention": "in_memory", - "reasoning": { - "effort": "medium", - "summary": null - }, - "safety_identifier": null, - "service_tier": "default", - "store": false, - "temperature": 1, - "text": { - "format": { - "type": "text" - }, - "verbosity": "medium" - }, - "tool_choice": "auto", - "tools": [], - "top_logprobs": 0, - "top_p": 0.98, - "truncation": "disabled", - "user": null, - "metadata": {}, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'openai/gpt-5.4-pro',\n {\n input:\n 'Solve this problem step by step: A train leaves Chicago at 60mph heading east. Another train leaves New York at 80mph heading west. They are 900 miles apart. When do they meet?',\n reasoning: {\n effort: 'medium',\n },\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - } - ], - "supports_async": false, - "external_info": "https://openai.com/", - "terms": "https://openai.com/policies/", - "cover_image_url": "https://pub-26f1392c1b674324be6786695bd72257.r2.dev/openai/gpt-5.4.png", - "metadata": { - "Architecture": "Transformer", - "API": "Responses" - }, - "created_at": "2026-04-24 18:12:33", - "default_example": null, - "code_snippets": [], - "zdr": false, - "zdr_comment": null, - "schema": { - "input": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "input": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "array", - "items": {} - } - ] - }, - "instructions": { - "type": "string" - }, - "temperature": { - "type": "number", - "minimum": 0, - "maximum": 2 - }, - "max_output_tokens": { - "type": "number", - "exclusiveMinimum": 0 - }, - "top_p": { - "type": "number", - "minimum": 0, - "maximum": 1 - }, - "stream": { - "type": "boolean" - }, - "tools": { - "type": "array", - "items": {} - }, - "tool_choice": {}, - "text": { - "type": "object", - "properties": { - "format": {} - }, - "additionalProperties": {} - }, - "reasoning": { - "type": "object", - "properties": { - "effort": { - "type": "string", - "enum": [ - "none", - "low", - "medium", - "high" - ] - } - }, - "additionalProperties": {} - } - }, - "required": [ - "input" - ], - "additionalProperties": false - }, - "output": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "object": { - "type": "string", - "const": "response" - }, - "created_at": { - "type": "number" - }, - "model": { - "type": "string" - }, - "output": { - "type": "array", - "items": {} - }, - "output_text": { - "type": "string" - }, - "status": { - "type": "string", - "enum": [ - "in_progress", - "completed", - "failed", - "incomplete" - ] - }, - "usage": { - "type": "object", - "properties": { - "input_tokens": { - "type": "number" - }, - "output_tokens": { - "type": "number" - }, - "total_tokens": { - "type": "number" - } - }, - "required": [ - "input_tokens", - "output_tokens", - "total_tokens" - ], - "additionalProperties": {} - } - }, - "required": [ - "id", - "object", - "created_at", - "model", - "output" - ], - "additionalProperties": {} - } - } -} diff --git a/src/content/catalog-models/openai-gpt-5.4.json b/src/content/catalog-models/openai-gpt-5.4.json deleted file mode 100644 index 822bbcdc33f37be..000000000000000 --- a/src/content/catalog-models/openai-gpt-5.4.json +++ /dev/null @@ -1,7990 +0,0 @@ -{ - "model_id": "openai/gpt-5.4", - "provider_id": "openai", - "name": "GPT-5.4", - "description": "GPT-5.4 is OpenAI's flagship model with strong coding, reasoning, and multimodal capabilities.", - "task": "Text Generation", - "tags": [ - "LLM", - "Coding", - "Reasoning", - "Multimodal" - ], - "context_length": 1000000, - "max_output_tokens": 16384, - "schema_version": "1.0.0", - "examples": [ - { - "name": "Simple Question", - "description": "Basic chat completion request", - "input": { - "messages": [ - { - "role": "user", - "content": "What are the three laws of thermodynamics?" - } - ] - }, - "output": { - "text": "The **three laws of thermodynamics** are:\n\n1. **First Law of Thermodynamics** \u2014 **Energy is conserved** \n Energy cannot be created or destroyed, only transferred or transformed. \n In thermodynamic systems, this is often written as: \n **\u0394U = Q - W** \n where:\n - **\u0394U** = change in internal energy \n - **Q** = heat added to the system \n - **W** = work done by the system \n\n2. **Second Law of Thermodynamics** \u2014 **Entropy tends to increase** \n In any natural process, the total entropy of an isolated system never decreases. \n This means energy tends to spread out, and no heat engine can be 100% efficient.\n\n3. **Third Law of Thermodynamics** \u2014 **Entropy approaches a minimum at absolute zero** \n As the temperature of a perfect crystal approaches **0 Kelvin**, its entropy approaches **zero**. \n This also implies that absolute zero cannot be reached in a finite number of steps.\n\nThere is also a **Zeroth Law of Thermodynamics**, which is often listed before the first three:\n\n- If two systems are each in thermal equilibrium with a third system, they are in thermal equilibrium with each other. \n- This is the basis for the concept of **temperature**.\n\nIf you want, I can also give a simple everyday explanation of each law." - }, - "raw_response": { - "id": "chatcmpl-DVnVIkT2U7hYs4iNW9G9MXRoaNGmZ", - "object": "chat.completion", - "created": 1776470832, - "model": "gpt-5.4-2026-03-05", - "choices": [ - { - "index": 0, - "message": { - "role": "assistant", - "content": "The **three laws of thermodynamics** are:\n\n1. **First Law of Thermodynamics** \u2014 **Energy is conserved** \n Energy cannot be created or destroyed, only transferred or transformed. \n In thermodynamic systems, this is often written as: \n **\u0394U = Q - W** \n where:\n - **\u0394U** = change in internal energy \n - **Q** = heat added to the system \n - **W** = work done by the system \n\n2. **Second Law of Thermodynamics** \u2014 **Entropy tends to increase** \n In any natural process, the total entropy of an isolated system never decreases. \n This means energy tends to spread out, and no heat engine can be 100% efficient.\n\n3. **Third Law of Thermodynamics** \u2014 **Entropy approaches a minimum at absolute zero** \n As the temperature of a perfect crystal approaches **0 Kelvin**, its entropy approaches **zero**. \n This also implies that absolute zero cannot be reached in a finite number of steps.\n\nThere is also a **Zeroth Law of Thermodynamics**, which is often listed before the first three:\n\n- If two systems are each in thermal equilibrium with a third system, they are in thermal equilibrium with each other. \n- This is the basis for the concept of **temperature**.\n\nIf you want, I can also give a simple everyday explanation of each law.", - "refusal": null, - "annotations": [] - }, - "finish_reason": "stop" - } - ], - "usage": { - "prompt_tokens": 15, - "completion_tokens": 292, - "total_tokens": 307, - "prompt_tokens_details": { - "cached_tokens": 0, - "audio_tokens": 0 - }, - "completion_tokens_details": { - "reasoning_tokens": 0, - "audio_tokens": 0, - "accepted_prediction_tokens": 0, - "rejected_prediction_tokens": 0 - } - }, - "service_tier": "default", - "system_fingerprint": null, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'openai/gpt-5.4',\n {\n messages: [\n {\n role: 'user',\n content: 'What are the three laws of thermodynamics?',\n },\n ],\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "With System Message", - "description": "Using a system message to set context", - "input": { - "messages": [ - { - "role": "system", - "content": "You are a helpful coding assistant specializing in Python." - }, - { - "role": "user", - "content": "How do I read a JSON file in Python?" - } - ] - }, - "output": { - "text": "Use Python\u2019s built-in `json` module.\n\n### Read a JSON file\n```python\nimport json\n\nwith open(\"data.json\", \"r\") as file:\n data = json.load(file)\n\nprint(data)\n```\n\n### If the file contains:\n```json\n{\n \"name\": \"Alice\",\n \"age\": 25\n}\n```\n\n### Then `data` becomes:\n```python\n{'name': 'Alice', 'age': 25}\n```\n\n### Notes\n- `json.load(file)` reads JSON from a file and converts it to Python objects.\n- JSON objects become Python dictionaries.\n- JSON arrays become Python lists.\n\n### Read with UTF-8 encoding\n```python\nimport json\n\nwith open(\"data.json\", \"r\", encoding=\"utf-8\") as file:\n data = json.load(file)\n```\n\n### Handle invalid JSON safely\n```python\nimport json\n\ntry:\n with open(\"data.json\", \"r\", encoding=\"utf-8\") as file:\n data = json.load(file)\n print(data)\nexcept FileNotFoundError:\n print(\"File not found.\")\nexcept json.JSONDecodeError:\n print(\"Invalid JSON.\")\n```\n\nIf you want, I can also show:\n- how to read a JSON string\n- how to write JSON to a file\n- how to pretty-print JSON" - }, - "raw_response": { - "id": "chatcmpl-DVnVKhkW5dNkb7BVCtXpsT0KQSQPA", - "object": "chat.completion", - "created": 1776470834, - "model": "gpt-5.4-2026-03-05", - "choices": [ - { - "index": 0, - "message": { - "role": "assistant", - "content": "Use Python\u2019s built-in `json` module.\n\n### Read a JSON file\n```python\nimport json\n\nwith open(\"data.json\", \"r\") as file:\n data = json.load(file)\n\nprint(data)\n```\n\n### If the file contains:\n```json\n{\n \"name\": \"Alice\",\n \"age\": 25\n}\n```\n\n### Then `data` becomes:\n```python\n{'name': 'Alice', 'age': 25}\n```\n\n### Notes\n- `json.load(file)` reads JSON from a file and converts it to Python objects.\n- JSON objects become Python dictionaries.\n- JSON arrays become Python lists.\n\n### Read with UTF-8 encoding\n```python\nimport json\n\nwith open(\"data.json\", \"r\", encoding=\"utf-8\") as file:\n data = json.load(file)\n```\n\n### Handle invalid JSON safely\n```python\nimport json\n\ntry:\n with open(\"data.json\", \"r\", encoding=\"utf-8\") as file:\n data = json.load(file)\n print(data)\nexcept FileNotFoundError:\n print(\"File not found.\")\nexcept json.JSONDecodeError:\n print(\"Invalid JSON.\")\n```\n\nIf you want, I can also show:\n- how to read a JSON string\n- how to write JSON to a file\n- how to pretty-print JSON", - "refusal": null, - "annotations": [] - }, - "finish_reason": "stop" - } - ], - "usage": { - "prompt_tokens": 30, - "completion_tokens": 279, - "total_tokens": 309, - "prompt_tokens_details": { - "cached_tokens": 0, - "audio_tokens": 0 - }, - "completion_tokens_details": { - "reasoning_tokens": 0, - "audio_tokens": 0, - "accepted_prediction_tokens": 0, - "rejected_prediction_tokens": 0 - } - }, - "service_tier": "default", - "system_fingerprint": null, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'openai/gpt-5.4',\n {\n messages: [\n {\n role: 'system',\n content: 'You are a helpful coding assistant specializing in Python.',\n },\n {\n role: 'user',\n content: 'How do I read a JSON file in Python?',\n },\n ],\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Multi-turn Conversation", - "description": "Continuing a conversation with context", - "input": { - "messages": [ - { - "role": "user", - "content": "I need help planning a road trip from San Francisco to Los Angeles." - }, - { - "role": "assistant", - "content": "I'd be happy to help! The drive is about 380 miles and takes roughly 5-6 hours. Would you like suggestions for scenic routes or interesting stops along the way?" - }, - { - "role": "user", - "content": "Yes, what are some good places to stop?" - } - ], - "max_completion_tokens": 2048 - }, - "output": { - "text": "Here are some popular stops if you take the scenic coastal route (Highway 1 / Pacific Coast Highway), which is much slower than I-5 but far more beautiful:\n\n### Great stops from San Francisco to Los Angeles\n- **Half Moon Bay** \u2013 Nice beaches, coastal views, and a good first stop.\n- **Santa Cruz** \u2013 Classic beach town with a boardwalk, pier, and cafes.\n- **Monterey** \u2013 Famous for Cannery Row and the Monterey Bay Aquarium.\n- **Carmel-by-the-Sea** \u2013 Charming small town with shops, galleries, and a beautiful beach.\n- **Big Sur** \u2013 One of the most scenic stretches of the drive, with cliffs, ocean views, and hiking spots.\n- **San Simeon** \u2013 Known for Hearst Castle and elephant seals nearby.\n- **Morro Bay** \u2013 Relaxed coastal town with the iconic Morro Rock.\n- **San Luis Obispo** \u2013 Cute downtown, restaurants, and a good overnight stop.\n- **Pismo Beach** \u2013 Good for a beach walk or seafood stop.\n- **Santa Barbara** \u2013 Beautiful Spanish-style architecture, beaches, and wine tasting.\n- **Malibu** \u2013 Scenic coastline before arriving in Los Angeles.\n\n### If you want the faster inland route (I-5)\nStops are less scenic, but you could consider:\n- **Gilroy** \u2013 Known for garlic-themed food.\n- **Harris Ranch** \u2013 Popular food/rest stop on I-5.\n- **Kettleman City** \u2013 Convenient midpoint break.\n- **Grapevine area** \u2013 Good place to pause before descending into LA.\n\nIf you want, I can also suggest:\n1. a **1-day fast itinerary**, \n2. a **2-3 day scenic itinerary**, or \n3. **food-focused stops**." - }, - "raw_response": { - "id": "chatcmpl-DVnVNwByCFYOwLiCFfkIf3ghWHlTf", - "object": "chat.completion", - "created": 1776470837, - "model": "gpt-5.4-2026-03-05", - "choices": [ - { - "index": 0, - "message": { - "role": "assistant", - "content": "Here are some popular stops if you take the scenic coastal route (Highway 1 / Pacific Coast Highway), which is much slower than I-5 but far more beautiful:\n\n### Great stops from San Francisco to Los Angeles\n- **Half Moon Bay** \u2013 Nice beaches, coastal views, and a good first stop.\n- **Santa Cruz** \u2013 Classic beach town with a boardwalk, pier, and cafes.\n- **Monterey** \u2013 Famous for Cannery Row and the Monterey Bay Aquarium.\n- **Carmel-by-the-Sea** \u2013 Charming small town with shops, galleries, and a beautiful beach.\n- **Big Sur** \u2013 One of the most scenic stretches of the drive, with cliffs, ocean views, and hiking spots.\n- **San Simeon** \u2013 Known for Hearst Castle and elephant seals nearby.\n- **Morro Bay** \u2013 Relaxed coastal town with the iconic Morro Rock.\n- **San Luis Obispo** \u2013 Cute downtown, restaurants, and a good overnight stop.\n- **Pismo Beach** \u2013 Good for a beach walk or seafood stop.\n- **Santa Barbara** \u2013 Beautiful Spanish-style architecture, beaches, and wine tasting.\n- **Malibu** \u2013 Scenic coastline before arriving in Los Angeles.\n\n### If you want the faster inland route (I-5)\nStops are less scenic, but you could consider:\n- **Gilroy** \u2013 Known for garlic-themed food.\n- **Harris Ranch** \u2013 Popular food/rest stop on I-5.\n- **Kettleman City** \u2013 Convenient midpoint break.\n- **Grapevine area** \u2013 Good place to pause before descending into LA.\n\nIf you want, I can also suggest:\n1. a **1-day fast itinerary**, \n2. a **2-3 day scenic itinerary**, or \n3. **food-focused stops**.", - "refusal": null, - "annotations": [] - }, - "finish_reason": "stop" - } - ], - "usage": { - "prompt_tokens": 76, - "completion_tokens": 376, - "total_tokens": 452, - "prompt_tokens_details": { - "cached_tokens": 0, - "audio_tokens": 0 - }, - "completion_tokens_details": { - "reasoning_tokens": 0, - "audio_tokens": 0, - "accepted_prediction_tokens": 0, - "rejected_prediction_tokens": 0 - } - }, - "service_tier": "default", - "system_fingerprint": null, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'openai/gpt-5.4',\n {\n messages: [\n {\n role: 'user',\n content:\n 'I need help planning a road trip from San Francisco to Los Angeles.',\n },\n {\n role: 'assistant',\n content:\n \"I'd be happy to help! The drive is about 380 miles and takes roughly 5-6 hours. Would you like suggestions for scenic routes or interesting stops along the way?\",\n },\n {\n role: 'user',\n content: 'Yes, what are some good places to stop?',\n },\n ],\n max_completion_tokens: 2048,\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Creative Writing", - "description": "Longer completion for creative output", - "input": { - "messages": [ - { - "role": "user", - "content": "Write a short story opening about a detective finding an unusual clue." - } - ], - "max_completion_tokens": 2048 - }, - "output": { - "text": "Detective Mara Voss found the first clue where no clue had any business being.\n\nIt was tucked inside the mouth of a stone lion that guarded the steps of Blackwell Hall, a place better known for charity galas than murder. The victim lay inside, under a chandelier bright enough to make everyone look innocent. Guests whispered behind silk gloves. Police boots clicked across marble. But Mara stood outside in the rain, staring at the lion\u2019s weather-dark teeth.\n\nSomeone had placed a single peach pit on its tongue.\n\nNot dropped. Placed.\n\nShe lifted it carefully with her handkerchief. The pit had been polished until it shone, and carved into its surface was the tiniest image of a key.\n\nMara looked up at the mansion windows. On the third floor, one curtain moved, though the glass behind it was black.\n\nA dead banker in the ballroom was ordinary, as far as her city was concerned. A carved peach pit hidden in a stone lion\u2019s mouth was not.\n\nThat was when she began to suspect the murder had started long before the body hit the floor." - }, - "raw_response": { - "id": "chatcmpl-DVnVORnUmWsqkuSUZDpx0HiNsT3n6", - "object": "chat.completion", - "created": 1776470838, - "model": "gpt-5.4-2026-03-05", - "choices": [ - { - "index": 0, - "message": { - "role": "assistant", - "content": "Detective Mara Voss found the first clue where no clue had any business being.\n\nIt was tucked inside the mouth of a stone lion that guarded the steps of Blackwell Hall, a place better known for charity galas than murder. The victim lay inside, under a chandelier bright enough to make everyone look innocent. Guests whispered behind silk gloves. Police boots clicked across marble. But Mara stood outside in the rain, staring at the lion\u2019s weather-dark teeth.\n\nSomeone had placed a single peach pit on its tongue.\n\nNot dropped. Placed.\n\nShe lifted it carefully with her handkerchief. The pit had been polished until it shone, and carved into its surface was the tiniest image of a key.\n\nMara looked up at the mansion windows. On the third floor, one curtain moved, though the glass behind it was black.\n\nA dead banker in the ballroom was ordinary, as far as her city was concerned. A carved peach pit hidden in a stone lion\u2019s mouth was not.\n\nThat was when she began to suspect the murder had started long before the body hit the floor.", - "refusal": null, - "annotations": [] - }, - "finish_reason": "stop" - } - ], - "usage": { - "prompt_tokens": 19, - "completion_tokens": 222, - "total_tokens": 241, - "prompt_tokens_details": { - "cached_tokens": 0, - "audio_tokens": 0 - }, - "completion_tokens_details": { - "reasoning_tokens": 0, - "audio_tokens": 0, - "accepted_prediction_tokens": 0, - "rejected_prediction_tokens": 0 - } - }, - "service_tier": "default", - "system_fingerprint": null, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'openai/gpt-5.4',\n {\n messages: [\n {\n role: 'user',\n content:\n 'Write a short story opening about a detective finding an unusual clue.',\n },\n ],\n max_completion_tokens: 2048,\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Streaming Response", - "description": "Enable streaming for real-time output", - "input": { - "messages": [ - { - "role": "user", - "content": "Explain the concept of recursion with a simple example." - } - ], - "stream": true, - "stream_options": { - "include_usage": true - } - }, - "output": { - "text": [ - "Rec", - "ursion", - " is", - " when", - " a", - " function", - " solves", - " a", - " problem", - " by", - " calling", - " itself", - " on", - " a", - " smaller", - " version", - " of", - " the", - " same", - " problem", - ".\n\n", - "It", - " usually", - " has", - " ", - "2", - " parts", - ":\n\n", - "1", - ".", - " **", - "Base", - " case", - "**", - " \u2014", - " the", - " condition", - " where", - " the", - " function", - " stops", - " calling", - " itself", - ".\n", - "2", - ".", - " **", - "Recursive", - " case", - "**", - " \u2014", - " the", - " part", - " where", - " the", - " function", - " calls", - " itself", - " with", - " a", - " smaller", - " input", - ".\n\n", - "###", - " Simple", - " example", - ":", - " factorial", - "\n\n", - "The", - " factorial", - " of", - " a", - " number", - " means", - ":\n\n", - "-", - " `", - "5", - "!", - " =", - " ", - "5", - " \u00d7", - " ", - "4", - " \u00d7", - " ", - "3", - " \u00d7", - " ", - "2", - " \u00d7", - " ", - "1", - "`\n", - "-", - " `", - "1", - "!", - " =", - " ", - "1", - "`\n\n", - "A", - " recursive", - " version", - " looks", - " like", - " this", - " in", - " Python", - ":\n\n", - "```", - "python", - "\n", - "def", - " factorial", - "(n", - "):\n", - " ", - " if", - " n", - " ==", - " ", - "1", - ":", - " ", - " #", - " base", - " case", - "\n", - " ", - " return", - " ", - "1", - "\n", - " ", - " return", - " n", - " *", - " factorial", - "(n", - " -", - " ", - "1", - ")", - " ", - " #", - " recursive", - " case", - "\n\n", - "print", - "(f", - "actor", - "ial", - "(", - "5", - "))\n", - "``", - "`\n\n", - "###", - " How", - " it", - " works", - " for", - " `", - "factor", - "ial", - "(", - "5", - ")", - "`\n\n", - "-", - " `", - "factor", - "ial", - "(", - "5", - ")`", - " \u2192", - " `", - "5", - " *", - " factorial", - "(", - "4", - ")`\n", - "-", - " `", - "factor", - "ial", - "(", - "4", - ")`", - " \u2192", - " `", - "4", - " *", - " factorial", - "(", - "3", - ")`\n", - "-", - " `", - "factor", - "ial", - "(", - "3", - ")`", - " \u2192", - " `", - "3", - " *", - " factorial", - "(", - "2", - ")`\n", - "-", - " `", - "factor", - "ial", - "(", - "2", - ")`", - " \u2192", - " `", - "2", - " *", - " factorial", - "(", - "1", - ")`\n", - "-", - " `", - "factor", - "ial", - "(", - "1", - ")`", - " \u2192", - " `", - "1", - "`", - " \u2190", - " base", - " case", - "\n\n", - "Then", - " it", - " returns", - " back", - " up", - ":\n\n", - "-", - " `", - "factor", - "ial", - "(", - "2", - ")`", - " =", - " `", - "2", - " *", - " ", - "1", - " =", - " ", - "2", - "`\n", - "-", - " `", - "factor", - "ial", - "(", - "3", - ")`", - " =", - " `", - "3", - " *", - " ", - "2", - " =", - " ", - "6", - "`\n", - "-", - " `", - "factor", - "ial", - "(", - "4", - ")`", - " =", - " `", - "4", - " *", - " ", - "6", - " =", - " ", - "24", - "`\n", - "-", - " `", - "factor", - "ial", - "(", - "5", - ")`", - " =", - " `", - "5", - " *", - " ", - "24", - " =", - " ", - "120", - "`\n\n", - "###", - " Key", - " idea", - "\n\n", - "Rec", - "ursion", - " works", - " by", - " breaking", - " a", - " big", - " problem", - " into", - " smaller", - ",", - " similar", - " problems", - " until", - " it", - " reaches", - " a", - " simple", - " stopping", - " point", - ".\n\n", - "If", - " you", - " want", - ",", - " I", - " can", - " also", - " show", - " a", - " **", - "real", - "-life", - " analogy", - "**", - " or", - " a", - " **", - "non", - "-m", - "ath", - " recursion", - " example", - "**", - "." - ] - }, - "raw_response": [ - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "role": "assistant", - "content": "", - "refusal": null - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Wo9naBca" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "Rec" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Eu4D5Wg" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "ursion" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "EU7O" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " is" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "IVO2eTy" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " when" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "4URWu" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " a" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "W686DBmT" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " function" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Q" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " solves" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "z2s" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " a" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "GA5dFD9p" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " problem" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "FO" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " by" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "5SeEHwz" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " calling" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "nR" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " itself" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Rmq" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " on" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "yI5t33T" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " a" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "cE0Yk5vy" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " smaller" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "si" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " version" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Vf" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " of" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "KVnUZQO" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " the" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "ZRuduq" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " same" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "M5WBI" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " problem" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Su" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ".\n\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "bhHpZ" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "It" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "t5YvSr6n" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " usually" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "pz" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " has" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Fm8SUt" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "tBv8Ij734" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "2" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "C1qfMBMSI" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " parts" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "6KfD" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ":\n\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "uDpqg" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "1" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "yFe7tHuti" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "." - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "HDxPrf0Fv" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " **" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "HBkoDGo" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "Base" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "mZ1ioZ" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " case" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "c2RGf" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "**" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "561212Lr" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " \u2014" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "nWQZj5Uz" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " the" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "QD78jo" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " condition" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " where" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "69Sj" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " the" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "3GOzE4" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " function" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "s" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " stops" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "2UMt" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " calling" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Lo" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " itself" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "sbE" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ".\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "4S7gipc" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "2" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "dKU8AotEY" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "." - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "uCxPuDdWf" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " **" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "SSrv8sj" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "Recursive" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "S" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " case" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "MdM41" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "**" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "AKIeBRJE" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " \u2014" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "QCfXVAOm" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " the" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "AXHDRH" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " part" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "lqFck" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " where" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "HwFA" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " the" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Ui2PLQ" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " function" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "7" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " calls" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "rhpC" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " itself" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "DtD" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " with" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "IiaW5" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " a" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "FDp8dVRC" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " smaller" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "AG" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " input" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "y2cf" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ".\n\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "oKyBp" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "###" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "TGWGV2G" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " Simple" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "0cA" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " example" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "V6" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ":" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "J1maAHl9w" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " factorial" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "\n\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "46tqYR" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "The" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "cqPP5I4" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " factorial" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " of" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "SQtjEJV" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " a" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "fXk0teIa" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " number" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "uSw" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " means" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "vdYy" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ":\n\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Almgk" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "-" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "5Ic7rUAUN" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " `" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "De9xaxiq" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "5" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Rd6GbGdOo" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "!" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "tyQlwp9Ie" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " =" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "p24vwGxy" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "PDvmrkifY" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "5" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "mpq7fn9j4" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " \u00d7" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "23p5L05b" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "xeBDpbqfQ" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "4" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "7hcEavz1j" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " \u00d7" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "ajPvmUKE" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "sl7VBKIJk" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "3" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "od8jkhb8H" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " \u00d7" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "RGFfFab3" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "aGa1WxHHm" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "2" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "DzP6H7bGl" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " \u00d7" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "lIohk74V" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "DLJDwLpuj" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "1" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "813FooZsP" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "`\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "OebVpyO" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "-" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "fOj4GklQA" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " `" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "gkrUCsfW" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "1" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "nU3FMZz3M" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "!" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "s2mpP98lQ" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " =" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "s81Xtemp" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "iit1sSncj" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "1" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "c1ZPTOMdC" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "`\n\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "pr17T" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "A" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "yzhxMHgZQ" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " recursive" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " version" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Zo" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " looks" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "g3yY" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " like" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "FRYbi" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " this" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "nNTpj" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " in" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "64Nvopg" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " Python" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "eoz" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ":\n\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "N6SES" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "```" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "AayOxvj" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "python" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "NWLg" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "ILIWSJtY" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "def" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "fk7H1II" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " factorial" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "(n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "x1FrDZVg" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "):\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "8c7YBG" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "CHc593e" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " if" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "d5WSyBU" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "yDdMC5B6" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " ==" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "lthgh1X" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "2nNtTCiDR" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "1" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "EjpJF8UXT" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ":" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "xVhBblgkb" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "C" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " #" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "c1bDraKj" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " base" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Hg3Bw" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " case" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "0ThtU" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "51VL3vOX" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "8ac" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " return" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "8XS" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "kvECaRulG" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "1" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "nmP1DzxJw" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "wilw2HKA" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "rETa6Ou" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " return" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "3zS" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "hJvbnNMc" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " *" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "tm35IMwL" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " factorial" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "(n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "6vTPLanB" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " -" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "eSECINsY" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "gKMcs8U3J" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "1" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "qrChRiDs6" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ")" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Kq3JOfai3" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "XZjHAx6B" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " #" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "vYdHTlgy" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " recursive" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " case" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "CGMUp" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "\n\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "WROwMO" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "print" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "49000" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "(f" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "x3IYOTMK" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "actor" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "TjSuz" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "ial" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "1WFsB0w" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "(" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "mftqIr2kY" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "5" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Y4ICw7iLF" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "))\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "A2IhzC" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "``" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "pn1SDmof" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "`\n\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "iqjcu" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "###" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "HLXyq0V" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " How" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "5fF5TO" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " it" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "mkhgG9v" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " works" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "frwu" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " for" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "tBAQQq" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " `" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "aiXItooA" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "factor" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "JNqY" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "ial" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "R2X9KMl" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "(" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Y6zdn3crq" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "5" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "EjLYVbood" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ")" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "dB3ZQk5xj" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "`\n\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "YCemc" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "-" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "kJCqIR2Tr" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " `" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "EcYHxNfJ" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "factor" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "iYG0" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "ial" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "mdvKkpM" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "(" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "JExgKqrHb" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "5" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "9zzg5D59v" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ")`" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Dyz5X3On" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " \u2192" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "IsArrPby" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " `" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "7yrsCKOZ" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "5" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "VQufeYbPN" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " *" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "yzNF5Dqm" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " factorial" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "(" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "f0dFJUXA0" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "4" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Ku5h9S17Z" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ")`\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "mEa0on" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "-" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "PrGIl76mI" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " `" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "6eZmlnye" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "factor" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "R5pf" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "ial" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "WAT7XRR" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "(" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "bXSKgmFPN" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "4" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "sr8gDd2ka" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ")`" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "9uhImep1" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " \u2192" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "UeeUKmVn" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " `" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "GjimnvZ6" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "4" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "9Csx0vzSZ" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " *" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "FbKsfY29" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " factorial" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "(" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "DMSg9Xuyj" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "3" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "jfVePNGkB" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ")`\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "IjetBi" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "-" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "elHDtnHuM" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " `" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "0nv6MJ9O" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "factor" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "f5KY" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "ial" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "efiWn8m" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "(" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "YSvpWDzNG" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "3" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "T8XGLz400" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ")`" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Mhrl4TXv" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " \u2192" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "164fR0gO" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " `" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "HQryJ2qI" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "3" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "OVdseqNF1" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " *" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "f94YoYbA" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " factorial" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "(" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "hsFKwmfyc" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "2" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "T57CA1hs0" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ")`\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "4MIwca" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "-" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "LVQYiWkQc" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " `" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "kJ787j0P" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "factor" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "LrJW" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "ial" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "BltnuXT" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "(" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "PsveZUDy5" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "2" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "nFwcZaeQY" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ")`" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "SQlmB6l3" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " \u2192" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "7WaCvQBe" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " `" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "rBTCQMYL" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "2" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "7XvdXVQRC" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " *" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "nFPIK8sj" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " factorial" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "(" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "KAwGBzVOp" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "1" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "C5CWqIpDo" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ")`\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "cs6tyd" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "-" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "PK00FDOm6" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " `" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "KXvBDyrt" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "factor" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "8f1v" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "ial" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "8tkgQ6y" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "(" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "VzkINJIAd" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "1" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "6GLmpjfC9" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ")`" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "dktdCtEp" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " \u2192" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "tKKBq2JV" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " `" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "IUI78FP0" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "1" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "ZnFahKbsB" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "`" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "sHD3AvqQZ" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " \u2190" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "iFqxxV60" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " base" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "yWEiw" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " case" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "biIlS" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "\n\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "rezD1H" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "Then" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "0WHsMn" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " it" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Nl51CLX" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " returns" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "KB" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " back" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "XStge" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " up" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "N9yGXX8" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ":\n\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Zy4y9" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "-" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "FlIK0Sz3F" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " `" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "2KNTbTWQ" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "factor" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "VIOI" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "ial" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "wfQavcL" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "(" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "oxgbcjdxf" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "2" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Jx0CPHJpQ" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ")`" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "W4AQLns3" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " =" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "nE0kVWtI" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " `" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "UtpOsppT" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "2" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "791rmKeeU" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " *" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "naqLVPI8" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "LMNDtIJeL" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "1" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "4ZNnQjrzC" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " =" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "SouQsi3P" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "E70E4pZQn" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "2" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "bD4qvouY4" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "`\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Onrelwa" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "-" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "wEE4oNrBf" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " `" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "2k7xtO6e" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "factor" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "ugrp" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "ial" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "B7KaR4g" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "(" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "149LjHasZ" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "3" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "k59tkyE0Q" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ")`" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "2vd8JOlm" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " =" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "LWAaZK73" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " `" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Ztv9jAhi" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "3" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "zwQ6MUatr" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " *" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "iTslbHJk" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Bm6AUtQfc" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "2" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "6LZ6RE0NT" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " =" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "mOXC5cRq" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "0ArqJuMXl" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "6" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "7Dm4mG8oS" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "`\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "DpI9IJN" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "-" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "buQMrnlE1" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " `" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "BGAjbavo" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "factor" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "6P9U" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "ial" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "CtIYjEg" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "(" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "22KW1zcCZ" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "4" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "IEs8P9QI0" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ")`" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "roEnPJrE" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " =" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "dbD9BvyN" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " `" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "8cVMuLJJ" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "4" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "sqaBkLPrw" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " *" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "50s8SH9i" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "yH09mSklo" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "6" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "pQwtnmBKD" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " =" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "8TNciNty" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "lVgXN6GoX" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "24" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "4D0Dd0bh" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "`\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "LOu2Sij" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "-" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "LNk8kSNvS" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " `" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "hDSHIpJM" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "factor" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "0aQj" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "ial" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "j6VqLSJ" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "(" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Ibue4uuHp" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "5" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "T9avmoSB4" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ")`" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "hTJSds14" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " =" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "UsDGw5TZ" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " `" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "V78JZD9t" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "5" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "TYIC5quQ7" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " *" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Y8bMb4z6" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "FSOMBIVqN" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "24" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "4J71Uzak" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " =" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "XunuZ1gc" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "WPRVeWubx" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "120" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "5xpGLMk" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "`\n\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "H6ICl" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "###" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "RNeosAQ" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " Key" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "MaffUY" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " idea" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "5aUkD" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "\n\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "DLg4OH" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "Rec" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "u12gpfk" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "ursion" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "J6I4" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " works" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "5q5F" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " by" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Nfs9Uf5" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " breaking" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "j" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " a" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "7CotPqGI" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " big" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "9D82b6" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " problem" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "9Y" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " into" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "fFTtJ" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " smaller" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "zG" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "," - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "OZOeES1bZ" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " similar" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "YO" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " problems" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "x" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " until" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "LJnN" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " it" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "DKKTwPy" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " reaches" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "lA" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " a" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "F08sPQNJ" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " simple" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "jYc" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " stopping" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "U" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " point" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Uxt0" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ".\n\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "zex8D" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "If" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "MpgQiT3m" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " you" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "VjFiIN" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " want" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "6G7yh" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "," - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "msAfKs5HR" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " I" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "t73cyBpa" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " can" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "IhyVZL" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " also" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "KseqZ" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " show" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "WsM8W" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " a" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "ROfMTUM2" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " **" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "3bkSJeM" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "real" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "8Wpcnt" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "-life" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "0RoKr" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " analogy" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "2z" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "**" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Gyw7Lot0" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " or" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "dRz6ar1" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " a" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Uay5FoJi" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " **" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "OptQVsQ" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "non" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "W6sjiC4" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "-m" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "SymMp4E5" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "ath" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "svYH2ay" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " recursion" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " example" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "hy" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "**" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "ByeKFCDs" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "." - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Q1dfg8948" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": {}, - "finish_reason": "stop" - } - ], - "usage": null, - "obfuscation": "tSN7" - }, - { - "id": "chatcmpl-DVnVUroKWQ9mKa7IP7mbN9LFrUecN", - "object": "chat.completion.chunk", - "created": 1776470844, - "model": "gpt-5.4-2026-03-05", - "service_tier": "default", - "system_fingerprint": null, - "choices": [], - "usage": { - "prompt_tokens": 16, - "completion_tokens": 374, - "total_tokens": 390, - "prompt_tokens_details": { - "cached_tokens": 0, - "audio_tokens": 0 - }, - "completion_tokens_details": { - "reasoning_tokens": 0, - "audio_tokens": 0, - "accepted_prediction_tokens": 0, - "rejected_prediction_tokens": 0 - } - }, - "obfuscation": "quuZy0B" - } - ], - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'openai/gpt-5.4',\n {\n messages: [\n {\n role: 'user',\n content: 'Explain the concept of recursion with a simple example.',\n },\n ],\n stream: true,\n stream_options: {\n include_usage: true,\n },\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - } - ], - "supports_async": false, - "external_info": "https://openai.com/", - "terms": "https://openai.com/policies/", - "cover_image_url": "https://pub-26f1392c1b674324be6786695bd72257.r2.dev/openai/gpt-5.4.png", - "metadata": { - "Architecture": "Transformer" - }, - "created_at": "2026-04-08 21:29:08", - "default_example": null, - "code_snippets": [], - "zdr": false, - "zdr_comment": null, - "schema": { - "input": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "messages": { - "type": "array", - "items": { - "type": "object", - "properties": { - "role": { - "type": "string", - "enum": [ - "system", - "developer", - "user", - "assistant", - "tool" - ] - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - }, - { - "type": "array", - "items": {} - } - ] - } - }, - "required": [ - "role", - "content" - ], - "additionalProperties": {} - } - }, - "temperature": { - "type": "number", - "minimum": 0, - "maximum": 2 - }, - "max_tokens": { - "type": "number", - "exclusiveMinimum": 0 - }, - "max_completion_tokens": { - "type": "number", - "exclusiveMinimum": 0 - }, - "top_p": { - "type": "number", - "minimum": 0, - "maximum": 1 - }, - "frequency_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2 - }, - "presence_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2 - }, - "stream": { - "type": "boolean" - }, - "stream_options": { - "type": "object", - "properties": { - "include_usage": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "tools": { - "type": "array", - "items": {} - }, - "tool_choice": {}, - "response_format": {} - }, - "required": [ - "messages" - ], - "additionalProperties": {} - }, - "output": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "object": { - "type": "string" - }, - "created": { - "type": "number" - }, - "model": { - "type": "string" - }, - "choices": { - "type": "array", - "items": { - "type": "object", - "properties": { - "index": { - "type": "number" - }, - "message": { - "type": "object", - "properties": { - "role": { - "type": "string" - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "tool_calls": { - "type": "array", - "items": {} - } - }, - "required": [ - "role" - ], - "additionalProperties": {} - }, - "finish_reason": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "index", - "message", - "finish_reason" - ], - "additionalProperties": {} - } - }, - "usage": { - "type": "object", - "properties": { - "prompt_tokens": { - "type": "number" - }, - "completion_tokens": { - "type": "number" - }, - "total_tokens": { - "type": "number" - } - }, - "required": [ - "prompt_tokens", - "completion_tokens", - "total_tokens" - ], - "additionalProperties": {} - } - }, - "required": [ - "id", - "object", - "created", - "model", - "choices" - ], - "additionalProperties": {} - } - } -} diff --git a/src/content/catalog-models/openai-gpt-5.5.json b/src/content/catalog-models/openai-gpt-5.5.json deleted file mode 100644 index 1b5251b9f7f10a7..000000000000000 --- a/src/content/catalog-models/openai-gpt-5.5.json +++ /dev/null @@ -1,5073 +0,0 @@ -{ - "model_id": "openai/gpt-5.5", - "provider_id": "openai", - "name": "GPT-5.5", - "description": "GPT-5.5 is OpenAI's flagship model with strong coding, reasoning, and multimodal capabilities.", - "task": "Text Generation", - "tags": [ - "LLM", - "Coding", - "Reasoning", - "Multimodal" - ], - "context_length": 1000000, - "max_output_tokens": 16384, - "schema_version": "1.0.0", - "examples": [ - { - "name": "Simple Question", - "description": "Basic chat completion request", - "input": { - "messages": [ - { - "role": "user", - "content": "What are the three laws of thermodynamics?" - } - ] - }, - "output": { - "text": "The **three laws of thermodynamics** are:\n\n1. **First Law \u2014 Conservation of Energy** \n Energy cannot be created or destroyed, only transferred or transformed. \n In thermodynamics, this is often written as: \n \\[\n \\Delta U = Q - W\n \\] \n where \\(\\Delta U\\) is the change in internal energy, \\(Q\\) is heat added, and \\(W\\) is work done by the system.\n\n2. **Second Law \u2014 Entropy Increases** \n In an isolated system, entropy tends to increase over time. \n This means natural processes tend to move toward greater disorder or energy dispersal, and heat flows spontaneously from hot objects to cold ones.\n\n3. **Third Law \u2014 Absolute Zero Is Unattainable** \n As the temperature of a perfect crystal approaches absolute zero, its entropy approaches zero. \n It also implies that absolute zero, \\(0\\,K\\), cannot be reached by any finite physical process.\n\nThere is also a **Zeroth Law**, which says that if two systems are each in thermal equilibrium with a third system, they are in thermal equilibrium with each other. This is the basis for temperature measurement." - }, - "raw_response": { - "id": "chatcmpl-DYFXL1K160il6W2QJPWy2h4LmF7Xr", - "object": "chat.completion", - "created": 1777055247, - "model": "gpt-5.5-2026-04-23", - "choices": [ - { - "index": 0, - "message": { - "role": "assistant", - "content": "The **three laws of thermodynamics** are:\n\n1. **First Law \u2014 Conservation of Energy** \n Energy cannot be created or destroyed, only transferred or transformed. \n In thermodynamics, this is often written as: \n \\[\n \\Delta U = Q - W\n \\] \n where \\(\\Delta U\\) is the change in internal energy, \\(Q\\) is heat added, and \\(W\\) is work done by the system.\n\n2. **Second Law \u2014 Entropy Increases** \n In an isolated system, entropy tends to increase over time. \n This means natural processes tend to move toward greater disorder or energy dispersal, and heat flows spontaneously from hot objects to cold ones.\n\n3. **Third Law \u2014 Absolute Zero Is Unattainable** \n As the temperature of a perfect crystal approaches absolute zero, its entropy approaches zero. \n It also implies that absolute zero, \\(0\\,K\\), cannot be reached by any finite physical process.\n\nThere is also a **Zeroth Law**, which says that if two systems are each in thermal equilibrium with a third system, they are in thermal equilibrium with each other. This is the basis for temperature measurement.", - "refusal": null, - "annotations": [] - }, - "finish_reason": "stop" - } - ], - "usage": { - "prompt_tokens": 15, - "completion_tokens": 291, - "total_tokens": 306, - "prompt_tokens_details": { - "cached_tokens": 0, - "audio_tokens": 0 - }, - "completion_tokens_details": { - "reasoning_tokens": 32, - "audio_tokens": 0, - "accepted_prediction_tokens": 0, - "rejected_prediction_tokens": 0 - } - }, - "service_tier": "default", - "system_fingerprint": null, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'openai/gpt-5.5',\n {\n messages: [\n {\n role: 'user',\n content: 'What are the three laws of thermodynamics?',\n },\n ],\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "With System Message", - "description": "Using a system message to set context", - "input": { - "messages": [ - { - "role": "system", - "content": "You are a helpful coding assistant specializing in Python." - }, - { - "role": "user", - "content": "How do I read a JSON file in Python?" - } - ] - }, - "output": { - "text": "You can read a JSON file in Python using the built-in `json` module.\n\n```python\nimport json\n\nwith open(\"data.json\", \"r\") as file:\n data = json.load(file)\n\nprint(data)\n```\n\nIf `data.json` contains:\n\n```json\n{\n \"name\": \"Alice\",\n \"age\": 30\n}\n```\n\nThen `data` will be a Python dictionary:\n\n```python\n{\n \"name\": \"Alice\",\n \"age\": 30\n}\n```\n\nYou can access values like this:\n\n```python\nprint(data[\"name\"]) # Alice\nprint(data[\"age\"]) # 30\n```\n\nA slightly more explicit version with encoding:\n\n```python\nimport json\n\nwith open(\"data.json\", \"r\", encoding=\"utf-8\") as file:\n data = json.load(file)\n```\n\nIf you have a JSON string instead of a file, use `json.loads()`:\n\n```python\nimport json\n\njson_string = '{\"name\": \"Alice\", \"age\": 30}'\ndata = json.loads(json_string)\n\nprint(data[\"name\"])\n```" - }, - "raw_response": { - "id": "chatcmpl-DYFXLJQFBS1K4LCprRF4eOgdbucx7", - "object": "chat.completion", - "created": 1777055247, - "model": "gpt-5.5-2026-04-23", - "choices": [ - { - "index": 0, - "message": { - "role": "assistant", - "content": "You can read a JSON file in Python using the built-in `json` module.\n\n```python\nimport json\n\nwith open(\"data.json\", \"r\") as file:\n data = json.load(file)\n\nprint(data)\n```\n\nIf `data.json` contains:\n\n```json\n{\n \"name\": \"Alice\",\n \"age\": 30\n}\n```\n\nThen `data` will be a Python dictionary:\n\n```python\n{\n \"name\": \"Alice\",\n \"age\": 30\n}\n```\n\nYou can access values like this:\n\n```python\nprint(data[\"name\"]) # Alice\nprint(data[\"age\"]) # 30\n```\n\nA slightly more explicit version with encoding:\n\n```python\nimport json\n\nwith open(\"data.json\", \"r\", encoding=\"utf-8\") as file:\n data = json.load(file)\n```\n\nIf you have a JSON string instead of a file, use `json.loads()`:\n\n```python\nimport json\n\njson_string = '{\"name\": \"Alice\", \"age\": 30}'\ndata = json.loads(json_string)\n\nprint(data[\"name\"])\n```", - "refusal": null, - "annotations": [] - }, - "finish_reason": "stop" - } - ], - "usage": { - "prompt_tokens": 30, - "completion_tokens": 232, - "total_tokens": 262, - "prompt_tokens_details": { - "cached_tokens": 0, - "audio_tokens": 0 - }, - "completion_tokens_details": { - "reasoning_tokens": 0, - "audio_tokens": 0, - "accepted_prediction_tokens": 0, - "rejected_prediction_tokens": 0 - } - }, - "service_tier": "default", - "system_fingerprint": null, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'openai/gpt-5.5',\n {\n messages: [\n {\n role: 'system',\n content: 'You are a helpful coding assistant specializing in Python.',\n },\n {\n role: 'user',\n content: 'How do I read a JSON file in Python?',\n },\n ],\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Multi-turn Conversation", - "description": "Continuing a conversation with context", - "input": { - "messages": [ - { - "role": "user", - "content": "I need help planning a road trip from San Francisco to Los Angeles." - }, - { - "role": "assistant", - "content": "I'd be happy to help! The drive is about 380 miles and takes roughly 5-6 hours. Would you like suggestions for scenic routes or interesting stops along the way?" - }, - { - "role": "user", - "content": "Yes, what are some good places to stop?" - } - ], - "max_completion_tokens": 2048 - }, - "output": { - "text": "Absolutely \u2014 the best stops depend on whether you take the **scenic coastal route** or the **faster inland route**.\n\n## Scenic Route: Highway 1 / 101\nThis is the classic California road trip route, best if you have **1\u20133 days**.\n\n### Great stops from north to south\n- **Half Moon Bay** \u2013 Coastal views, beaches, and a nice breakfast/lunch stop.\n- **Santa Cruz** \u2013 Beach Boardwalk, surfing, casual food, fun atmosphere.\n- **Monterey** \u2013 Monterey Bay Aquarium, Cannery Row, harbor views.\n- **Carmel-by-the-Sea** \u2013 Beautiful village, beach, shops, and restaurants.\n- **Big Sur** \u2013 One of the most scenic stretches in California. Stop at:\n - Bixby Bridge\n - Pfeiffer Beach\n - McWay Falls\n- **San Simeon / Hearst Castle** \u2013 Tour Hearst Castle or see the elephant seals nearby.\n- **Paso Robles** \u2013 Wine tasting and good restaurants, especially if you cut inland.\n- **San Luis Obispo** \u2013 Great overnight stop; downtown, Mission Plaza, good food.\n- **Pismo Beach** \u2013 Beach stop, pier, clam chowder.\n- **Solvang** \u2013 Danish-style town with bakeries, wine tasting, and cute streets.\n- **Santa Barbara** \u2013 One of the best stops: beaches, State Street, the courthouse, Funk Zone.\n- **Malibu** \u2013 Scenic coastal drive, beaches, and a final stop before LA.\n\n## Faster Route: I-5\nBest if you want to get to LA quickly, about **5.5\u20136.5 hours** depending on traffic.\n\nGood practical stops:\n- **Casa de Fruta** \u2013 Roadside stop with snacks, fruit, and restrooms.\n- **Harris Ranch** \u2013 Popular meal stop, especially for steak.\n- **Kettleman City** \u2013 Gas, food, and a good halfway break.\n- **Tejon Ranch / Grapevine area** \u2013 Final major stop before entering LA traffic.\n\n## My recommendation\nIf you have the time, do at least **one overnight** and take the coast:\n\n**Day 1:** San Francisco \u2192 Santa Cruz \u2192 Monterey/Carmel \u2192 Big Sur \u2192 San Luis Obispo \n**Day 2:** San Luis Obispo \u2192 Solvang \u2192 Santa Barbara \u2192 Malibu \u2192 Los Angeles\n\nAlso, check current road conditions for **Highway 1 near Big Sur**, since closures can happen due to landslides." - }, - "raw_response": { - "state": "Completed", - "result": { - "id": "chatcmpl-DYFZkYd5fz0fm7iFcu6jZFKFuSxKA", - "object": "chat.completion", - "created": 1777055396, - "model": "gpt-5.5-2026-04-23", - "choices": [ - { - "index": 0, - "message": { - "role": "assistant", - "content": "Absolutely \u2014 the best stops depend on whether you take the **scenic coastal route** or the **faster inland route**.\n\n## Scenic Route: Highway 1 / 101\nThis is the classic California road trip route, best if you have **1\u20133 days**.\n\n### Great stops from north to south\n- **Half Moon Bay** \u2013 Coastal views, beaches, and a nice breakfast/lunch stop.\n- **Santa Cruz** \u2013 Beach Boardwalk, surfing, casual food, fun atmosphere.\n- **Monterey** \u2013 Monterey Bay Aquarium, Cannery Row, harbor views.\n- **Carmel-by-the-Sea** \u2013 Beautiful village, beach, shops, and restaurants.\n- **Big Sur** \u2013 One of the most scenic stretches in California. Stop at:\n - Bixby Bridge\n - Pfeiffer Beach\n - McWay Falls\n- **San Simeon / Hearst Castle** \u2013 Tour Hearst Castle or see the elephant seals nearby.\n- **Paso Robles** \u2013 Wine tasting and good restaurants, especially if you cut inland.\n- **San Luis Obispo** \u2013 Great overnight stop; downtown, Mission Plaza, good food.\n- **Pismo Beach** \u2013 Beach stop, pier, clam chowder.\n- **Solvang** \u2013 Danish-style town with bakeries, wine tasting, and cute streets.\n- **Santa Barbara** \u2013 One of the best stops: beaches, State Street, the courthouse, Funk Zone.\n- **Malibu** \u2013 Scenic coastal drive, beaches, and a final stop before LA.\n\n## Faster Route: I-5\nBest if you want to get to LA quickly, about **5.5\u20136.5 hours** depending on traffic.\n\nGood practical stops:\n- **Casa de Fruta** \u2013 Roadside stop with snacks, fruit, and restrooms.\n- **Harris Ranch** \u2013 Popular meal stop, especially for steak.\n- **Kettleman City** \u2013 Gas, food, and a good halfway break.\n- **Tejon Ranch / Grapevine area** \u2013 Final major stop before entering LA traffic.\n\n## My recommendation\nIf you have the time, do at least **one overnight** and take the coast:\n\n**Day 1:** San Francisco \u2192 Santa Cruz \u2192 Monterey/Carmel \u2192 Big Sur \u2192 San Luis Obispo \n**Day 2:** San Luis Obispo \u2192 Solvang \u2192 Santa Barbara \u2192 Malibu \u2192 Los Angeles\n\nAlso, check current road conditions for **Highway 1 near Big Sur**, since closures can happen due to landslides.", - "refusal": null, - "annotations": [] - }, - "finish_reason": "stop" - } - ], - "usage": { - "prompt_tokens": 76, - "completion_tokens": 623, - "total_tokens": 699, - "prompt_tokens_details": { - "cached_tokens": 0, - "audio_tokens": 0 - }, - "completion_tokens_details": { - "reasoning_tokens": 93, - "audio_tokens": 0, - "accepted_prediction_tokens": 0, - "rejected_prediction_tokens": 0 - } - }, - "service_tier": "default", - "system_fingerprint": null - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'openai/gpt-5.5',\n {\n messages: [\n {\n role: 'user',\n content:\n 'I need help planning a road trip from San Francisco to Los Angeles.',\n },\n {\n role: 'assistant',\n content:\n \"I'd be happy to help! The drive is about 380 miles and takes roughly 5-6 hours. Would you like suggestions for scenic routes or interesting stops along the way?\",\n },\n {\n role: 'user',\n content: 'Yes, what are some good places to stop?',\n },\n ],\n max_completion_tokens: 2048,\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Creative Writing", - "description": "Longer completion for creative output", - "input": { - "messages": [ - { - "role": "user", - "content": "Write a short story opening about a detective finding an unusual clue." - } - ], - "max_completion_tokens": 2048 - }, - "output": { - "text": "Detective Mara Venn found the clue inside the grandfather clock, though the clock had not worked in twenty years.\n\nThe house was silent around her, all velvet shadows and rain-streaked windows, the kind of silence that made every breath feel borrowed. Lord Edevane\u2019s body lay in the study below, surrounded by overturned books, broken glass, and enough obvious evidence to make Mara immediately distrust all of it.\n\nShe had come upstairs only because of the ticking.\n\nIt was faint, irregular, and impossible.\n\nMara opened the clock\u2019s warped oak door and raised her lantern. No weights. No pendulum. No mechanism at all.\n\nJust a small glass vial hanging from a red thread.\n\nInside the vial was a single human tooth, etched with three tiny words in gold:\n\n**ASK THE DEAD.**" - }, - "raw_response": { - "id": "chatcmpl-DYFXQ7OpB748Ysf32CgoYeohlL1Qm", - "object": "chat.completion", - "created": 1777055252, - "model": "gpt-5.5-2026-04-23", - "choices": [ - { - "index": 0, - "message": { - "role": "assistant", - "content": "Detective Mara Venn found the clue inside the grandfather clock, though the clock had not worked in twenty years.\n\nThe house was silent around her, all velvet shadows and rain-streaked windows, the kind of silence that made every breath feel borrowed. Lord Edevane\u2019s body lay in the study below, surrounded by overturned books, broken glass, and enough obvious evidence to make Mara immediately distrust all of it.\n\nShe had come upstairs only because of the ticking.\n\nIt was faint, irregular, and impossible.\n\nMara opened the clock\u2019s warped oak door and raised her lantern. No weights. No pendulum. No mechanism at all.\n\nJust a small glass vial hanging from a red thread.\n\nInside the vial was a single human tooth, etched with three tiny words in gold:\n\n**ASK THE DEAD.**", - "refusal": null, - "annotations": [] - }, - "finish_reason": "stop" - } - ], - "usage": { - "prompt_tokens": 19, - "completion_tokens": 180, - "total_tokens": 199, - "prompt_tokens_details": { - "cached_tokens": 0, - "audio_tokens": 0 - }, - "completion_tokens_details": { - "reasoning_tokens": 8, - "audio_tokens": 0, - "accepted_prediction_tokens": 0, - "rejected_prediction_tokens": 0 - } - }, - "service_tier": "default", - "system_fingerprint": null, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'openai/gpt-5.5',\n {\n messages: [\n {\n role: 'user',\n content:\n 'Write a short story opening about a detective finding an unusual clue.',\n },\n ],\n max_completion_tokens: 2048,\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Streaming Response", - "description": "Enable streaming for real-time output", - "input": { - "messages": [ - { - "role": "user", - "content": "Explain the concept of recursion with a simple example." - } - ], - "stream": true, - "stream_options": { - "include_usage": true - } - }, - "output": { - "text": [ - "Rec", - "ursion", - " is", - " when", - " a", - " function", - " solves", - " a", - " problem", - " by", - " calling", - " itself", - " with", - " a", - " smaller", - " or", - " simpler", - " version", - " of", - " the", - " same", - " problem", - ".\n\n", - "A", - " recursion", - " usually", - " has", - " two", - " parts", - ":\n\n", - "1", - ".", - " **", - "Base", - " case", - "**", - ":", - " when", - " to", - " stop", - " calling", - " itself", - ".\n", - "2", - ".", - " **", - "Recursive", - " case", - "**", - ":", - " the", - " part", - " where", - " the", - " function", - " calls", - " itself", - ".\n\n", - "Example", - ":", - " counting", - " down", - " from", - " a", - " number", - ".\n\n", - "```", - "python", - "\n", - "def", - " countdown", - "(n", - "):\n", - " ", - " if", - " n", - " ==", - " ", - "0", - ":", - " ", - " #", - " base", - " case", - "\n", - " ", - " print", - "(\"", - "Done", - "!\")\n", - " ", - " else", - ":\n", - " ", - " print", - "(n", - ")\n", - " ", - " countdown", - "(n", - " -", - " ", - "1", - ")", - " #", - " recursive", - " case", - "\n\n", - "count", - "down", - "(", - "3", - ")\n", - "``", - "`\n\n", - "Output", - ":\n\n", - "```", - "text", - "\n", - "3", - "\n", - "2", - "\n", - "1", - "\n", - "Done", - "!\n", - "``", - "`\n\n", - "Here", - " is", - " what", - " happens", - ":\n\n", - "-", - " `", - "count", - "down", - "(", - "3", - ")`", - " prints", - " `", - "3", - "`,", - " then", - " calls", - " `", - "count", - "down", - "(", - "2", - ")`\n", - "-", - " `", - "count", - "down", - "(", - "2", - ")`", - " prints", - " `", - "2", - "`,", - " then", - " calls", - " `", - "count", - "down", - "(", - "1", - ")`\n", - "-", - " `", - "count", - "down", - "(", - "1", - ")`", - " prints", - " `", - "1", - "`,", - " then", - " calls", - " `", - "count", - "down", - "(", - "0", - ")`\n", - "-", - " `", - "count", - "down", - "(", - "0", - ")`", - " reaches", - " the", - " base", - " case", - " and", - " stops", - "\n\n", - "So", - ",", - " recursion", - " is", - " like", - " breaking", - " a", - " problem", - " into", - " smaller", - " versions", - " of", - " itself", - " until", - " reaching", - " a", - " stopping", - " point", - "." - ] - }, - "raw_response": [ - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "role": "assistant", - "content": "", - "refusal": null - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "5EGG4gGR" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "Rec" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "PC9MLZ9" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "ursion" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "VbG0" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " is" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "8mi93Nd" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " when" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "eGE27" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " a" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "rZkBfGOc" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " function" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "V" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " solves" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Rs8" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " a" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "kmUAKF1C" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " problem" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "DQ" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " by" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "S18dDfo" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " calling" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "G2" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " itself" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "bNE" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " with" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "djMLK" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " a" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "XyNGTKNo" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " smaller" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "3X" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " or" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "kwO1s6O" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " simpler" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "B1" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " version" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Ka" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " of" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "D9gzGmg" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " the" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "eyaDYN" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " same" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "qTvce" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " problem" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "ev" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ".\n\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "TyCFD" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "A" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "bT9SqCNg9" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " recursion" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " usually" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "NI" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " has" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "hDgXv1" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " two" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "ys7Caj" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " parts" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "mIIl" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ":\n\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "pfhft" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "1" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "zjiO0PgFQ" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "." - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "XQj11tI80" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " **" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "5MSIOYl" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "Base" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "n1SttB" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " case" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "eFRpn" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "**" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "FHmNxqWk" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ":" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "6lEr6D5e6" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " when" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "b0Gqx" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " to" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "l9zpsGr" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " stop" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "v2IVk" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " calling" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "LS" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " itself" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "l5d" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ".\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "fSrrHjQ" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "2" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "EbwKdcU9C" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "." - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "ZmDxJwt9z" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " **" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "h7MPbW9" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "Recursive" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "W" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " case" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "uCnrV" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "**" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "0eSlK0Mp" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ":" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "1kcOBGCKD" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " the" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "pnR7nw" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " part" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "soMOx" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " where" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "dyu2" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " the" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "1pIuYF" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " function" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "N" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " calls" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "zwhN" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " itself" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "YKL" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ".\n\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "dnqD3" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "Example" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "4Kc" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ":" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "fZWxhWq4C" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " counting" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "v" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " down" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "uKvpx" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " from" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "SFDwO" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " a" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "BPv79srW" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " number" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "8Uv" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ".\n\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "uYxTV" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "```" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "BJFTTvo" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "python" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "rAfM" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Z8CYnqBF" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "def" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "pD7EKZy" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " countdown" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "(n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "zEcpl7Uj" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "):\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "cU2hpq" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "340wsD3" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " if" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "MI5xT6S" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "wQtnb0t7" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " ==" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "k3JYQpd" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "GZrobqnTv" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "0" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "yDNgFClM0" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ":" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "ddvWbP2ox" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "T" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " #" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "ISah9B3n" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " base" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "5O0ER" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " case" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "PsfLL" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "0c0SEoRu" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Iqu" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " print" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "ktAa" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "(\"" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "q8rK1md" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "Done" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Pb7qja" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "!\")\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "hM9g" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "7dsqwxK" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " else" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "hsxJh" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ":\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "hf6uqTN" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "9yw" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " print" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "9jES" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "(n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "bUKArc88" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ")\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "mJZUouj" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Mua" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " countdown" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "(n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "er9iOSmy" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " -" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "UQw3iqsz" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "hUEoqTGnn" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "1" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "V79RiPWpp" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ")" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "jpiRQPl6B" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " #" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "SxPFlq3E" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " recursive" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " case" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "o7Wyd" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "\n\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "zilGBD" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "count" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "ziES1" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "down" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "3QqZOu" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "(" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Kxha7lo8v" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "3" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Oct10c5XA" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ")\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "23voDY5" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "``" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "mCgDQLxG" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "`\n\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "gRY8h" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "Output" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "7GNA" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ":\n\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "8x3vj" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "```" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "4vYxHC4" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "text" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "0sS6nN" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "meHuLw0X" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "3" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "gJQuhgzFd" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Jvo8FBc6" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "2" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "dnxIufcD8" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Km7a8UC7" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "1" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "cYO7Hxt15" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "W4ExVvIC" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "Done" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "0sbKSu" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "!\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "HKIwuqW" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "``" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "bE7NIioE" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "`\n\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Fyg0m" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "Here" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "DbV9Ca" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " is" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "1S76ZNh" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " what" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "8Lh3Y" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " happens" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "DP" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ":\n\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "bM3YN" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "-" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "zF8dlBeTS" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " `" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "OCRFD1hj" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "count" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "bQYFO" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "down" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "5ga1k2" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "(" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Wn9bV2HDq" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "3" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Ia66AmeQj" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ")`" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "cvuPanLZ" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " prints" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "A7r" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " `" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "R1D6358y" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "3" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "QB4hqywe9" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "`," - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "9uOadFNj" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " then" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "dQYrZ" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " calls" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "o69o" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " `" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "EEO2ns82" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "count" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "G47jn" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "down" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "vo4rPU" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "(" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "ggg2PlJel" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "2" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "8kr8iyNnj" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ")`\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "hsDppb" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "-" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "aUpOvuVEx" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " `" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "yJZdR09a" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "count" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "g1X41" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "down" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "xdezpZ" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "(" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Mm6maKbsQ" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "2" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "XLs3BhCni" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ")`" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "EL2BZ7I7" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " prints" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "VVT" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " `" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "fDVz4cAh" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "2" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "J0llIjLRB" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "`," - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "MBSp0S5Y" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " then" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "oX6BU" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " calls" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "T6n7" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " `" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "GjdJrmSC" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "count" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "WViGq" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "down" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Ul09xE" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "(" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "hFml3ZuxN" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "1" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "82s2kqnYC" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ")`\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "1V388U" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "-" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "6nzVtVPxg" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " `" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "0SKjbMEQ" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "count" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "WiUO0" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "down" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "kMsbJK" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "(" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "QAV2f73XY" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "1" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "aRJg0P21i" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ")`" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "7qbxr9gw" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " prints" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Rlo" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " `" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "wP5W58a1" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "1" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "E45ycnlvV" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "`," - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "HqEtskaW" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " then" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "dVynU" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " calls" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "2JMj" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " `" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "VijtM4hV" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "count" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Bu8uB" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "down" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "vDuCrr" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "(" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "VT5daebp9" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "0" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "aL3hgZrRx" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ")`\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "zWpKQx" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "-" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "CGySUTwSi" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " `" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "cJIm5UE6" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "count" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "BhrYW" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "down" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "TbSQw8" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "(" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "TDvUTQTfF" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "0" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "4IQqIcWmu" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ")`" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "UnGrAM5K" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " reaches" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "ir" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " the" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "VKcp34" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " base" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "NlIPy" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " case" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Do891" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " and" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Ml5po1" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " stops" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "QvuX" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "\n\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "PUvfwe" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "So" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "udBwKUNV" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "," - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "khMfhrK3j" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " recursion" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " is" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "jqHYqr1" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " like" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "tN1Td" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " breaking" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "c" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " a" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "sQ7bP50u" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " problem" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Mo" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " into" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "8tNcs" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " smaller" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "4s" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " versions" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "z" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " of" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "EnKEPrh" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " itself" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "jaZ" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " until" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "2tDV" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " reaching" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "N" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " a" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "AFM2inZS" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " stopping" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "q" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " point" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "YNdx" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "." - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "rDzVGxf5r" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": {}, - "finish_reason": "stop" - } - ], - "usage": null, - "obfuscation": "PRdn" - }, - { - "id": "chatcmpl-DYFY7TPENOUYNWL4XUE07mP4N37Jp", - "object": "chat.completion.chunk", - "created": 1777055295, - "model": "gpt-5.5-2026-04-23", - "service_tier": "default", - "system_fingerprint": null, - "choices": [], - "usage": { - "prompt_tokens": 16, - "completion_tokens": 228, - "total_tokens": 244, - "prompt_tokens_details": { - "cached_tokens": 0, - "audio_tokens": 0 - }, - "completion_tokens_details": { - "reasoning_tokens": 0, - "audio_tokens": 0, - "accepted_prediction_tokens": 0, - "rejected_prediction_tokens": 0 - } - }, - "obfuscation": "0lMavgk" - } - ], - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'openai/gpt-5.5',\n {\n messages: [\n {\n role: 'user',\n content: 'Explain the concept of recursion with a simple example.',\n },\n ],\n stream: true,\n stream_options: {\n include_usage: true,\n },\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - } - ], - "supports_async": false, - "external_info": "https://openai.com/", - "terms": "https://openai.com/policies/", - "cover_image_url": "https://pub-26f1392c1b674324be6786695bd72257.r2.dev/openai/gpt-5.5.png", - "metadata": { - "Architecture": "Transformer" - }, - "created_at": "2026-04-23 01:09:58", - "default_example": null, - "code_snippets": [], - "zdr": false, - "zdr_comment": null, - "schema": { - "input": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "messages": { - "type": "array", - "items": { - "type": "object", - "properties": { - "role": { - "type": "string", - "enum": [ - "system", - "developer", - "user", - "assistant", - "tool" - ] - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - }, - { - "type": "array", - "items": {} - } - ] - } - }, - "required": [ - "role", - "content" - ], - "additionalProperties": {} - } - }, - "temperature": { - "type": "number", - "minimum": 0, - "maximum": 2 - }, - "max_tokens": { - "type": "number", - "exclusiveMinimum": 0 - }, - "max_completion_tokens": { - "type": "number", - "exclusiveMinimum": 0 - }, - "top_p": { - "type": "number", - "minimum": 0, - "maximum": 1 - }, - "frequency_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2 - }, - "presence_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2 - }, - "stream": { - "type": "boolean" - }, - "stream_options": { - "type": "object", - "properties": { - "include_usage": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "tools": { - "type": "array", - "items": {} - }, - "tool_choice": {}, - "response_format": {} - }, - "required": [ - "messages" - ], - "additionalProperties": {} - }, - "output": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "object": { - "type": "string" - }, - "created": { - "type": "number" - }, - "model": { - "type": "string" - }, - "choices": { - "type": "array", - "items": { - "type": "object", - "properties": { - "index": { - "type": "number" - }, - "message": { - "type": "object", - "properties": { - "role": { - "type": "string" - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "tool_calls": { - "type": "array", - "items": {} - } - }, - "required": [ - "role" - ], - "additionalProperties": {} - }, - "finish_reason": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "index", - "message", - "finish_reason" - ], - "additionalProperties": {} - } - }, - "usage": { - "type": "object", - "properties": { - "prompt_tokens": { - "type": "number" - }, - "completion_tokens": { - "type": "number" - }, - "total_tokens": { - "type": "number" - } - }, - "required": [ - "prompt_tokens", - "completion_tokens", - "total_tokens" - ], - "additionalProperties": {} - } - }, - "required": [ - "id", - "object", - "created", - "model", - "choices" - ], - "additionalProperties": {} - } - } -} diff --git a/src/content/catalog-models/openai-gpt-5.json b/src/content/catalog-models/openai-gpt-5.json deleted file mode 100644 index 27c4cb2e745fd78..000000000000000 --- a/src/content/catalog-models/openai-gpt-5.json +++ /dev/null @@ -1,7150 +0,0 @@ -{ - "model_id": "openai/gpt-5", - "provider_id": "openai", - "name": "GPT-5", - "description": "OpenAI's model excelling at coding, writing, and reasoning.", - "task": "Text Generation", - "tags": [ - "LLM", - "Coding", - "Reasoning", - "Writing" - ], - "context_length": 128000, - "max_output_tokens": 16384, - "schema_version": "1.0.0", - "examples": [ - { - "name": "Simple Question", - "description": "Basic chat completion request", - "input": { - "messages": [ - { - "role": "user", - "content": "What are the three laws of thermodynamics?" - } - ] - }, - "output": { - "text": "- First law: Conservation of energy. The change in a system\u2019s internal energy equals heat added to the system minus work done by the system (\u0394U = Q \u2212 W).\n\n- Second law: Entropy of an isolated system never decreases; natural processes have a preferred direction (e.g., heat flows spontaneously from hot to cold; no heat engine is 100% efficient).\n\n- Third law: As temperature approaches absolute zero, a system\u2019s entropy approaches a constant minimum (often zero for a perfect crystal), and absolute zero cannot be reached in a finite number of steps.\n\nNote: Many summaries also include the \u201czeroth law,\u201d which defines temperature via thermal equilibrium." - }, - "raw_response": { - "id": "chatcmpl-DVnU8hjqQVEPE9vqkoBZ7fOCiDulB", - "object": "chat.completion", - "created": 1776470760, - "model": "gpt-5-2025-08-07", - "choices": [ - { - "index": 0, - "message": { - "role": "assistant", - "content": "- First law: Conservation of energy. The change in a system\u2019s internal energy equals heat added to the system minus work done by the system (\u0394U = Q \u2212 W).\n\n- Second law: Entropy of an isolated system never decreases; natural processes have a preferred direction (e.g., heat flows spontaneously from hot to cold; no heat engine is 100% efficient).\n\n- Third law: As temperature approaches absolute zero, a system\u2019s entropy approaches a constant minimum (often zero for a perfect crystal), and absolute zero cannot be reached in a finite number of steps.\n\nNote: Many summaries also include the \u201czeroth law,\u201d which defines temperature via thermal equilibrium.", - "refusal": null, - "annotations": [] - }, - "finish_reason": "stop" - } - ], - "usage": { - "prompt_tokens": 15, - "completion_tokens": 463, - "total_tokens": 478, - "prompt_tokens_details": { - "cached_tokens": 0, - "audio_tokens": 0 - }, - "completion_tokens_details": { - "reasoning_tokens": 320, - "audio_tokens": 0, - "accepted_prediction_tokens": 0, - "rejected_prediction_tokens": 0 - } - }, - "service_tier": "default", - "system_fingerprint": null, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'openai/gpt-5',\n {\n messages: [\n {\n role: 'user',\n content: 'What are the three laws of thermodynamics?',\n },\n ],\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "With System Message", - "description": "Using a system message to set context", - "input": { - "messages": [ - { - "role": "system", - "content": "You are a helpful coding assistant specializing in Python." - }, - { - "role": "user", - "content": "How do I read a JSON file in Python?" - } - ] - }, - "output": { - "text": "The built-in json module does this.\n\nBasic case (read a JSON file into a Python dict/list):\n import json\n\n with open('data.json', 'r', encoding='utf-8') as f:\n data = json.load(f) # data is now a Python dict/list\n print(data)\n\nFrom a JSON string (not a file):\n import json\n data = json.loads('{\"name\": \"Ada\", \"age\": 36}')\n\nCommon patterns:\n- Access values:\n name = data.get('name')\n- Iterate a list of objects:\n for item in data:\n print(item)\n\nError handling:\n import json, pathlib\n\n path = pathlib.Path('data.json')\n try:\n with path.open('r', encoding='utf-8') as f:\n data = json.load(f)\n except FileNotFoundError:\n print('File not found')\n except json.JSONDecodeError as e:\n print(f'Invalid JSON: {e}')\n\nNewline-delimited JSON (one JSON object per line):\n import json\n\n with open('data.ndjson', 'r', encoding='utf-8') as f:\n for line in f:\n if line.strip():\n obj = json.loads(line)\n # process obj\n\nNotes:\n- JSON doesn\u2019t allow comments or trailing commas.\n- For very large files you may want streaming parsers like ijson.\n- To write JSON back to a file: json.dump(data, f, ensure_ascii=False, indent=2)." - }, - "raw_response": { - "id": "chatcmpl-DVnUEWgas4oS7TJnrNVhNih79hcOJ", - "object": "chat.completion", - "created": 1776470766, - "model": "gpt-5-2025-08-07", - "choices": [ - { - "index": 0, - "message": { - "role": "assistant", - "content": "The built-in json module does this.\n\nBasic case (read a JSON file into a Python dict/list):\n import json\n\n with open('data.json', 'r', encoding='utf-8') as f:\n data = json.load(f) # data is now a Python dict/list\n print(data)\n\nFrom a JSON string (not a file):\n import json\n data = json.loads('{\"name\": \"Ada\", \"age\": 36}')\n\nCommon patterns:\n- Access values:\n name = data.get('name')\n- Iterate a list of objects:\n for item in data:\n print(item)\n\nError handling:\n import json, pathlib\n\n path = pathlib.Path('data.json')\n try:\n with path.open('r', encoding='utf-8') as f:\n data = json.load(f)\n except FileNotFoundError:\n print('File not found')\n except json.JSONDecodeError as e:\n print(f'Invalid JSON: {e}')\n\nNewline-delimited JSON (one JSON object per line):\n import json\n\n with open('data.ndjson', 'r', encoding='utf-8') as f:\n for line in f:\n if line.strip():\n obj = json.loads(line)\n # process obj\n\nNotes:\n- JSON doesn\u2019t allow comments or trailing commas.\n- For very large files you may want streaming parsers like ijson.\n- To write JSON back to a file: json.dump(data, f, ensure_ascii=False, indent=2).", - "refusal": null, - "annotations": [] - }, - "finish_reason": "stop" - } - ], - "usage": { - "prompt_tokens": 30, - "completion_tokens": 771, - "total_tokens": 801, - "prompt_tokens_details": { - "cached_tokens": 0, - "audio_tokens": 0 - }, - "completion_tokens_details": { - "reasoning_tokens": 448, - "audio_tokens": 0, - "accepted_prediction_tokens": 0, - "rejected_prediction_tokens": 0 - } - }, - "service_tier": "default", - "system_fingerprint": null, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'openai/gpt-5',\n {\n messages: [\n {\n role: 'system',\n content: 'You are a helpful coding assistant specializing in Python.',\n },\n {\n role: 'user',\n content: 'How do I read a JSON file in Python?',\n },\n ],\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Multi-turn Conversation", - "description": "Continuing a conversation with context", - "input": { - "messages": [ - { - "role": "user", - "content": "I need help planning a road trip from San Francisco to Los Angeles." - }, - { - "role": "assistant", - "content": "I'd be happy to help! The drive is about 380 miles and takes roughly 5-6 hours. Would you like suggestions for scenic routes or interesting stops along the way?" - }, - { - "role": "user", - "content": "Yes, what are some good places to stop?" - } - ], - "max_completion_tokens": 2048 - }, - "output": { - "text": "" - }, - "raw_response": { - "id": "chatcmpl-DVnUMlEDdAiZaWSb0PmVEIXwAQ3tp", - "object": "chat.completion", - "created": 1776470774, - "model": "gpt-5-2025-08-07", - "choices": [ - { - "index": 0, - "message": { - "role": "assistant", - "content": "", - "refusal": null, - "annotations": [] - }, - "finish_reason": "length" - } - ], - "usage": { - "prompt_tokens": 76, - "completion_tokens": 2048, - "total_tokens": 2124, - "prompt_tokens_details": { - "cached_tokens": 0, - "audio_tokens": 0 - }, - "completion_tokens_details": { - "reasoning_tokens": 2048, - "audio_tokens": 0, - "accepted_prediction_tokens": 0, - "rejected_prediction_tokens": 0 - } - }, - "service_tier": "default", - "system_fingerprint": null, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'openai/gpt-5',\n {\n messages: [\n {\n role: 'user',\n content:\n 'I need help planning a road trip from San Francisco to Los Angeles.',\n },\n {\n role: 'assistant',\n content:\n \"I'd be happy to help! The drive is about 380 miles and takes roughly 5-6 hours. Would you like suggestions for scenic routes or interesting stops along the way?\",\n },\n {\n role: 'user',\n content: 'Yes, what are some good places to stop?',\n },\n ],\n max_completion_tokens: 2048,\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Creative Writing", - "description": "Longer completion for creative output", - "input": { - "messages": [ - { - "role": "user", - "content": "Write a short story opening about a detective finding an unusual clue." - } - ], - "max_completion_tokens": 2048 - }, - "output": { - "text": "" - }, - "raw_response": { - "id": "chatcmpl-DVnUPm3B4vHJc9MslDHIxYC0gLgGm", - "object": "chat.completion", - "created": 1776470777, - "model": "gpt-5-2025-08-07", - "choices": [ - { - "index": 0, - "message": { - "role": "assistant", - "content": "", - "refusal": null, - "annotations": [] - }, - "finish_reason": "length" - } - ], - "usage": { - "prompt_tokens": 19, - "completion_tokens": 2048, - "total_tokens": 2067, - "prompt_tokens_details": { - "cached_tokens": 0, - "audio_tokens": 0 - }, - "completion_tokens_details": { - "reasoning_tokens": 2048, - "audio_tokens": 0, - "accepted_prediction_tokens": 0, - "rejected_prediction_tokens": 0 - } - }, - "service_tier": "default", - "system_fingerprint": null, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'openai/gpt-5',\n {\n messages: [\n {\n role: 'user',\n content:\n 'Write a short story opening about a detective finding an unusual clue.',\n },\n ],\n max_completion_tokens: 2048,\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Streaming Response", - "description": "Enable streaming for real-time output", - "input": { - "messages": [ - { - "role": "user", - "content": "Explain the concept of recursion with a simple example." - } - ], - "stream": true, - "stream_options": { - "include_usage": true - } - }, - "output": { - "text": [ - "Rec", - "ursion", - " is", - " a", - " technique", - " where", - " a", - " function", - " solves", - " a", - " problem", - " by", - " calling", - " itself", - " on", - " a", - " smaller", - " version", - " of", - " the", - " same", - " problem", - ",", - " stopping", - " when", - " it", - " reaches", - " a", - " simplest", - " case", - " (", - "the", - " base", - " case", - ").\n\n", - "Key", - " ideas", - ":\n", - "-", - " Base", - " case", - ":", - " a", - " simple", - ",", - " direct", - " answer", - " that", - " stops", - " the", - " recursion", - ".\n", - "-", - " Recursive", - " case", - ":", - " reduce", - " the", - " problem", - " and", - " call", - " the", - " function", - " again", - ",", - " moving", - " toward", - " the", - " base", - " case", - ".\n\n", - "Simple", - " example", - ":", - " factorial", - "\n", - "Factor", - "ial", - " of", - " n", - " (", - "written", - " n", - "!)", - " is", - " n", - " \u00d7", - " (", - "n", - "\u2212", - "1", - ")", - " \u00d7", - " (", - "n", - "\u2212", - "2", - ")", - " \u00d7", - " \u2026", - " \u00d7", - " ", - "1", - ",", - " with", - " ", - "0", - "!", - " =", - " ", - "1", - ".\n\n", - "P", - "seud", - "ocode", - ":\n", - "function", - " factorial", - "(n", - "):\n", - " ", - " if", - " n", - " <=", - " ", - "1", - ":\n", - " ", - " return", - " ", - "1", - " ", - " //", - " base", - " case", - "\n", - " ", - " else", - ":\n", - " ", - " return", - " n", - " *", - " factorial", - "(n", - " -", - " ", - "1", - ")", - " ", - " //", - " recursive", - " case", - "\n\n", - "How", - " factorial", - "(", - "4", - ")", - " runs", - ":\n", - "-", - " factorial", - "(", - "4", - ")", - " =", - " ", - "4", - " *", - " factorial", - "(", - "3", - ")\n", - "-", - " factorial", - "(", - "3", - ")", - " =", - " ", - "3", - " *", - " factorial", - "(", - "2", - ")\n", - "-", - " factorial", - "(", - "2", - ")", - " =", - " ", - "2", - " *", - " factorial", - "(", - "1", - ")\n", - "-", - " factorial", - "(", - "1", - ")", - " =", - " ", - "1", - " ", - " (", - "base", - " case", - ")\n", - "Then", - " it", - " unw", - "inds", - ":\n", - "-", - " factorial", - "(", - "2", - ")", - " =", - " ", - "2", - " *", - " ", - "1", - " =", - " ", - "2", - "\n", - "-", - " factorial", - "(", - "3", - ")", - " =", - " ", - "3", - " *", - " ", - "2", - " =", - " ", - "6", - "\n", - "-", - " factorial", - "(", - "4", - ")", - " =", - " ", - "4", - " *", - " ", - "6", - " =", - " ", - "24", - "\n\n", - "Every", - " recursive", - " solution", - " should", - ":\n", - "-", - " Have", - " a", - " clear", - " base", - " case", - ".\n", - "-", - " Make", - " progress", - " toward", - " that", - " base", - " case", - " each", - " call", - ".\n\n", - "Anal", - "ogy", - ":", - " Think", - " of", - " nested", - " Russian", - " dolls", - ".", - " To", - " find", - " the", - " smallest", - " doll", - ",", - " you", - " open", - " a", - " doll", - " to", - " get", - " a", - " smaller", - " one", - " (", - "recursive", - " step", - ")", - " until", - " you", - " reach", - " the", - " tini", - "est", - " doll", - " that", - " can", - "\u2019t", - " be", - " opened", - " (", - "base", - " case", - ")." - ] - }, - "raw_response": [ - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "role": "assistant", - "content": "", - "refusal": null - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "pl9M3qD6YT" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "Rec" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "EaNJrpLYF" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "ursion" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Z7mtpx" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " is" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "fGJVHINtJ" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " a" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "q5GiZLHQZt" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " technique" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "0i" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " where" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "OTrBZA" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " a" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "b1nvytrb0r" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " function" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "1C5" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " solves" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "PRrSB" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " a" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "ONdtfZgOzc" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " problem" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "4XRz" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " by" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "m3JvXAD7Z" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " calling" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "ijSw" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " itself" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "9Qu9A" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " on" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Zah59jYAL" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " a" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "wyDVNGL7vQ" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " smaller" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "WrqZ" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " version" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "qOws" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " of" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "NtzAR7L3a" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " the" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "vQpFgF2g" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " same" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Lj7CW5Y" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " problem" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "m9wd" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "," - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "5n6LUzl7WMD" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " stopping" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Hi1" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " when" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "GKKwm3K" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " it" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "iPa1KkPJk" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " reaches" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "bwjX" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " a" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "avJy5uBFMO" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " simplest" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "2YH" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " case" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "4WI432l" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " (" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "0RW41O48uw" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "the" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "31ic6Y2E3" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " base" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "wzIwP5s" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " case" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "fiFwCtI" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ").\n\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "JvxIZ8" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "Key" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "z8gjsFIDB" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " ideas" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "To99je" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ":\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "ktIOyx84Y" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "-" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "gzpQPj5151n" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " Base" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "obWnDOo" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " case" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "ZnKPhVU" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ":" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "WIIYEIXZ04i" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " a" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "YO5H3IyF7Z" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " simple" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "bHf8T" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "," - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "LPgfrCgPwxY" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " direct" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "g3Vjz" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " answer" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "fm6yn" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " that" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "YF9WIbp" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " stops" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "hijZiR" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " the" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "QsDuxkID" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " recursion" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "EA" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ".\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "GMhNvcQDu" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "-" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "9s4XYGqfSxz" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " Recursive" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "d4" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " case" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "3wTJozr" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ":" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "9vKKgRAO86f" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " reduce" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "juofX" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " the" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "gDmrJsZW" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " problem" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Xs0E" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " and" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "KIEEv9BC" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " call" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Tc14b2e" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " the" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "OXzfXwoV" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " function" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "tjp" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " again" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "zwZPLp" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "," - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "toOXu1gdGxa" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " moving" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "6SYrS" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " toward" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "LxNvm" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " the" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "bfkKYnWN" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " base" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "BplNiE5" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " case" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "3MvtJO1" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ".\n\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "jbpBcrp" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "Simple" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "TQVS3A" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " example" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "9ZY8" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ":" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "mJUDwnQz0Nt" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " factorial" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "lS" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "p54bvDIriN" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "Factor" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "9HAZea" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "ial" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "L7LwK977C" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " of" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "d4h4bQYh5" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "MP5fiHEDAt" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " (" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "MxcWYVnQoR" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "written" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "4LvdF" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "OkBUSuU6Yy" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "!)" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "3SgV2udQWQ" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " is" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "U8WvIZgRu" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "wJGDhNYAym" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " \u00d7" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "QNtBtSzuto" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " (" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Hbn9SLanbV" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "0Y92pjxkBYI" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "\u2212" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "GmZL1a1DyCD" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "1" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "N2bOVUwIQfY" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ")" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "85cIXgvdLo1" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " \u00d7" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "72jE8KkXBu" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " (" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "jJigvKtMI1" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "KCvxbbWIgf1" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "\u2212" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "ls8y7TJEhod" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "2" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "NczsoyVW5Em" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ")" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "B18BvZfK8OF" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " \u00d7" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "hbu8ovhtPy" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " \u2026" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "z88UiCyaQD" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " \u00d7" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "avBXGBAwur" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "NrVfYwnImca" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "1" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "rq1QbgbRycv" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "," - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "wxl12nJmND1" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " with" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "CSibMGS" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "m2Sg7T9CsGe" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "0" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "mxiJZ4LfgNA" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "!" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "PqEsn0z1ic2" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " =" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "nKX4RI6rGe" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "ghOJlSlCHij" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "1" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "o4gw3zUjKyd" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ".\n\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "FJatKWP" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "P" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "tkN3NLaCuCD" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "seud" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "al4U8yhn" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "ocode" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "D1yBfDn" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ":\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "8EvudRRvA" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "function" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "5g8S" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " factorial" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "5g" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "(n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "EWkfR8VA5D" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "):\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "kS2550bv" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "bNdDcTofllO" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " if" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "P8f3eL7ge" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "JmUei6xt0v" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " <=" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "hhwIDD5uX" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "cl2hEpeStrs" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "1" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "vn2XqQrD7cO" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ":\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "WI8jBHYd4" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "qGn5aqUUE" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " return" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "mYejM" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "bXTRtHvwBma" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "1" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "wh4cX1UUErK" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Lc72Z" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " //" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "b0VFJOSGK" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " base" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "vlGkt4l" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " case" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "FBD7B9b" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "aRp1B9jsK8" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "dlIgZFptpb7" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " else" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "ar7sDVZ" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ":\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Zzb4TUObt" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "cx6yaITOk" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " return" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "fpZGF" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "yqAAxZmdE3" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " *" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "0PHdlctFeo" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " factorial" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "BE" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "(n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "kUaHfPqtER" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " -" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "8wK8dvskFL" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "J4IJA0RIsdb" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "1" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "kuYQAkbh7IB" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ")" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Yh36mJIgQ95" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "BxIaPWOGRls" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " //" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "nepGFVCjH" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " recursive" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "od" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " case" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "jY5zKu7" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "\n\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "aZhNpgIj" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "How" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "5QmbWNg10" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " factorial" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Sm" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "(" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "tfmmPoE3j4d" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "4" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "rnNqFu3NJPS" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ")" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "qBm8iWDHwx6" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " runs" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "rye7KX2" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ":\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "t0k1JnOF8" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "-" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "2Jav6BBLajF" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " factorial" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "WO" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "(" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "TkSdCwEjsL6" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "4" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "t7GfSFOnPev" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ")" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Jkxu9d5kDVV" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " =" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "RnaE4dhhG6" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "eqEW9IxxIeU" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "4" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "GZQ1MY2bfqv" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " *" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "wUVdB0vGsm" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " factorial" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "nQ" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "(" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Xk2XtUqOPLk" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "3" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "aKb5mvREpZB" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ")\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "AmmrNnmvy" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "-" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Sopy6NkJHD2" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " factorial" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "1F" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "(" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "GoYqLWNLaWt" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "3" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "bW3C75bhHRE" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ")" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "iE6qvwf3Qwq" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " =" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "6XGMB2CoEm" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "IeJtO8Pofvj" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "3" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "JcrhGgwc4nr" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " *" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "ssHNWhqvJF" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " factorial" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "4u" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "(" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "QJY3xhNKPHM" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "2" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "VWvkaAv7upe" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ")\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "9McsRT8OK" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "-" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "NxEIXJKA4KS" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " factorial" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "aH" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "(" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "esCFAmm8yVx" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "2" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "7OqPn9w99Vy" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ")" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "gry4RVCPhA3" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " =" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "g1hociX2gy" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "dDti68d2FNi" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "2" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "fmphRplC1ZJ" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " *" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "i1XTmK50fF" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " factorial" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "zt" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "(" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Z6sTZq7pCHA" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "1" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "5IKKf5mwkRo" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ")\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "ZZeijly1W" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "-" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "R4XNLg3h7Py" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " factorial" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Jp" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "(" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "tlGgJpCINGj" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "1" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "nZV3PVmtE80" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ")" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "5Oz4cfyr7Dj" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " =" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "tFPNvJYo4t" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "bOQq1OgorP3" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "1" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "j6tT1lV0D32" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "mCSxBp1bteL" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " (" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "OeV2i1VMl3" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "base" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "mwDQn4Se" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " case" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "LoQ4WpP" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ")\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Ccdfn9lFH" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "Then" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "I7t5kz52" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " it" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "7kwpT0ypA" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " unw" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "GBZvIJCh" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "inds" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "VFYMmE0I" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ":\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "oLbJrAxyB" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "-" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "YXSv00Y4HAk" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " factorial" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "7I" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "(" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "U1J4fojxR1h" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "2" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "iissHzDRAkA" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ")" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Ue2ALkDsRgM" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " =" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "fwlKgJkpJu" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "vRwbWWyi1GF" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "2" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "98BwFPJaZlv" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " *" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "MKrdbywplP" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "1kwTjHgHFUJ" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "1" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "FTET9WM7xBp" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " =" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "pL5VOK2sMm" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "gv9zIcnSsp0" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "2" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "TnvonW8cDYD" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "wRH1kVN5se" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "-" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "tSZnfYPzwFC" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " factorial" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "NH" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "(" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "329gkD7CtXv" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "3" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "sj6NRpGfwje" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ")" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "8B3lBPz7sJ1" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " =" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "qjQ8Ig3E5y" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "vNuzc8xDdCO" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "3" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "BpTgHnoFw5A" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " *" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "A1jhOstX2J" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "oPj50RuPyvY" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "2" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "kkJvFlwIpFi" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " =" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "ttExOsKImi" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "CPz33ImUkNk" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "6" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "2rG0eIdghlO" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "cdgVc5c1tr" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "-" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "lJ4fejXbwmn" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " factorial" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "ad" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "(" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "O7r4xVJTwVh" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "4" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "IbCDuQux8tA" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ")" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "x3w5CDef9cd" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " =" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "kem3V62PJa" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "NhpNuJ0CXVf" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "4" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "JaWe7WBphBD" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " *" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "GIpKGW4MLQ" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "9WDIm39ilzR" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "6" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "i0AzoFgDPwz" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " =" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "H9EMsOoeQs" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "kRLWY7mWD3g" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "24" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "FY8NUzwjB6" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "\n\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "YfExSF24" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "Every" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "SEAa5BC" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " recursive" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "oQ" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " solution" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "0hB" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " should" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Ul00r" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ":\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "OEv2f8jfn" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "-" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "p281r0eO5Xx" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " Have" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "L6bdJxB" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " a" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "vhZliDfuog" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " clear" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "GTSzq4" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " base" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "w6NGTbZ" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " case" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "0nEp7Yh" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ".\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "uHhVdYpRK" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "-" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "VrbFCyUDLJG" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " Make" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "KwEzVgL" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " progress" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "5Ed" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " toward" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "e7uWe" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " that" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "q96npPN" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " base" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "4Fq34Uu" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " case" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "9XPLEoF" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " each" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "vm46iXc" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " call" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "lBdGxJ9" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ".\n\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "MvWTJRh" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "Anal" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "MFBMUKbx" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "ogy" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "u4HkBJWgt" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ":" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "4idCORblEwu" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " Think" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "2Pazk6" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " of" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "dw5dgiOyS" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " nested" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "c8OHa" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " Russian" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Lrng" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " dolls" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "K81xX3" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "." - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "bXfwM1J5MZt" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " To" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "EDdOB7UGb" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " find" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "p50JBjA" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " the" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "UAHS0C4A" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " smallest" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "9im" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " doll" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "x1Xg0ro" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "," - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Thp4LcFiVCJ" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " you" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "eG1AFXAw" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " open" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "WDpdWfm" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " a" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "i9FoZmc1Fo" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " doll" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "9KiOPjL" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " to" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "ZvnbIZh9h" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " get" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "yBsZjSV8" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " a" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "TVxFLdUQzo" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " smaller" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "evTV" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " one" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "UN9Eyl0y" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " (" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "MWFfRrpoym" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "recursive" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "77U" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " step" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "J8lmaBW" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ")" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "AgAAFlcF86C" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " until" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "onDXdX" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " you" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "dEelvpNb" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " reach" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "tl9AaG" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " the" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "JrwJu5z3" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " tini" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "sAczJvO" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "est" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "pFki4ewgb" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " doll" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "hjmLUOI" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " that" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "OGuABcJ" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " can" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "WjJrFBlL" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "\u2019t" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "IGeTYjts1p" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " be" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "ztT5R8FIQ" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " opened" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "VDmFN" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " (" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "xFOtagfLsU" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "base" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Vzqi6tPR" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " case" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "hSGpqU7" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ")." - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "HfGmUkXHwm" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": {}, - "finish_reason": "stop" - } - ], - "usage": null, - "obfuscation": "erzcp7" - }, - { - "id": "chatcmpl-DVnUiXIMZjXdHtm46QOPruaQ6rAGj", - "object": "chat.completion.chunk", - "created": 1776470796, - "model": "gpt-5-2025-08-07", - "service_tier": "default", - "system_fingerprint": null, - "choices": [], - "usage": { - "prompt_tokens": 16, - "completion_tokens": 914, - "total_tokens": 930, - "prompt_tokens_details": { - "cached_tokens": 0, - "audio_tokens": 0 - }, - "completion_tokens_details": { - "reasoning_tokens": 576, - "audio_tokens": 0, - "accepted_prediction_tokens": 0, - "rejected_prediction_tokens": 0 - } - }, - "obfuscation": "xP69sR8" - } - ], - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'openai/gpt-5',\n {\n messages: [\n {\n role: 'user',\n content: 'Explain the concept of recursion with a simple example.',\n },\n ],\n stream: true,\n stream_options: {\n include_usage: true,\n },\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - } - ], - "supports_async": false, - "external_info": "https://openai.com/", - "terms": "https://openai.com/policies/", - "cover_image_url": "https://pub-26f1392c1b674324be6786695bd72257.r2.dev/openai/gpt-5.png", - "metadata": { - "Architecture": "Transformer" - }, - "created_at": "2026-04-13 16:45:20", - "default_example": null, - "code_snippets": [], - "zdr": false, - "zdr_comment": null, - "schema": { - "input": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "messages": { - "type": "array", - "items": { - "type": "object", - "properties": { - "role": { - "type": "string", - "enum": [ - "system", - "developer", - "user", - "assistant", - "tool" - ] - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - }, - { - "type": "array", - "items": {} - } - ] - } - }, - "required": [ - "role", - "content" - ], - "additionalProperties": {} - } - }, - "temperature": { - "type": "number", - "minimum": 0, - "maximum": 2 - }, - "max_tokens": { - "type": "number", - "exclusiveMinimum": 0 - }, - "max_completion_tokens": { - "type": "number", - "exclusiveMinimum": 0 - }, - "top_p": { - "type": "number", - "minimum": 0, - "maximum": 1 - }, - "frequency_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2 - }, - "presence_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2 - }, - "stream": { - "type": "boolean" - }, - "stream_options": { - "type": "object", - "properties": { - "include_usage": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "tools": { - "type": "array", - "items": {} - }, - "tool_choice": {}, - "response_format": {} - }, - "required": [ - "messages" - ], - "additionalProperties": {} - }, - "output": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "object": { - "type": "string" - }, - "created": { - "type": "number" - }, - "model": { - "type": "string" - }, - "choices": { - "type": "array", - "items": { - "type": "object", - "properties": { - "index": { - "type": "number" - }, - "message": { - "type": "object", - "properties": { - "role": { - "type": "string" - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "tool_calls": { - "type": "array", - "items": {} - } - }, - "required": [ - "role" - ], - "additionalProperties": {} - }, - "finish_reason": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "index", - "message", - "finish_reason" - ], - "additionalProperties": {} - } - }, - "usage": { - "type": "object", - "properties": { - "prompt_tokens": { - "type": "number" - }, - "completion_tokens": { - "type": "number" - }, - "total_tokens": { - "type": "number" - } - }, - "required": [ - "prompt_tokens", - "completion_tokens", - "total_tokens" - ], - "additionalProperties": {} - } - }, - "required": [ - "id", - "object", - "created", - "model", - "choices" - ], - "additionalProperties": {} - } - } -} diff --git a/src/content/catalog-models/openai-gpt-image-1.5.json b/src/content/catalog-models/openai-gpt-image-1.5.json deleted file mode 100644 index 4a96e53dc6010c9..000000000000000 --- a/src/content/catalog-models/openai-gpt-image-1.5.json +++ /dev/null @@ -1,230 +0,0 @@ -{ - "model_id": "openai/gpt-image-1.5", - "provider_id": "openai", - "name": "gpt-image-1.5", - "description": "OpenAI's image generation model that creates and edits images from text prompts, supporting multiple quality levels and output sizes.", - "task": "Text-to-Image", - "tags": [ - "Image Generation", - "Image Editing", - "Multimodal" - ], - "context_length": null, - "max_output_tokens": null, - "schema_version": "1.0.0", - "examples": [ - { - "name": "Simple Generation", - "description": "Basic text-to-image with just a prompt", - "input": { - "prompt": "A golden retriever puppy playing in autumn leaves" - }, - "output": { - "image": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/openai__gpt-image-1.5/simple-generation.png" - }, - "raw_response": { - "state": "Completed", - "result": { - "image": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/openai__gpt-image-1.5/simple-generation.png" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'openai/gpt-image-1.5',\n {\n prompt: 'A golden retriever puppy playing in autumn leaves',\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "High Quality", - "description": "Generate a high-quality detailed image", - "input": { - "prompt": "A detailed botanical illustration of exotic tropical flowers with fine line work and watercolor textures", - "quality": "high" - }, - "output": { - "image": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/openai__gpt-image-1.5/high-quality.png" - }, - "raw_response": { - "state": "Completed", - "result": { - "image": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/openai__gpt-image-1.5/high-quality.png" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'openai/gpt-image-1.5',\n {\n prompt:\n 'A detailed botanical illustration of exotic tropical flowers with fine line work and watercolor textures',\n quality: 'high',\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Low Quality Draft", - "description": "Fast, rough draft for iteration", - "input": { - "prompt": "A quiet Japanese garden in morning mist with a stone lantern and koi pond", - "quality": "low" - }, - "output": { - "image": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/openai__gpt-image-1.5/low-quality-draft.png" - }, - "raw_response": { - "state": "Completed", - "result": { - "image": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/openai__gpt-image-1.5/low-quality-draft.png" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'openai/gpt-image-1.5',\n {\n prompt:\n 'A quiet Japanese garden in morning mist with a stone lantern and koi pond',\n quality: 'low',\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Medium Quality", - "description": "Balanced quality for most uses", - "input": { - "prompt": "A neon-lit cyberpunk figure standing in the rain beneath a holographic billboard, cinematic lighting", - "quality": "medium" - }, - "output": { - "image": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/openai__gpt-image-1.5/medium-quality.png" - }, - "raw_response": { - "state": "Completed", - "result": { - "image": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/openai__gpt-image-1.5/medium-quality.png" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'openai/gpt-image-1.5',\n {\n prompt:\n 'A neon-lit cyberpunk figure standing in the rain beneath a holographic billboard, cinematic lighting',\n quality: 'medium',\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Auto Quality", - "description": "Let the model pick an appropriate quality level", - "input": { - "prompt": "A panoramic view of the northern lights over a snowy mountain range, vivid greens and purples dancing across the sky", - "quality": "auto" - }, - "output": { - "image": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/openai__gpt-image-1.5/auto-quality.png" - }, - "raw_response": { - "state": "Completed", - "result": { - "image": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/openai__gpt-image-1.5/auto-quality.png" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'openai/gpt-image-1.5',\n {\n prompt:\n 'A panoramic view of the northern lights over a snowy mountain range, vivid greens and purples dancing across the sky',\n quality: 'auto',\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - } - ], - "supports_async": false, - "external_info": "https://openai.com/", - "terms": "https://openai.com/policies/", - "cover_image_url": "https://pub-26f1392c1b674324be6786695bd72257.r2.dev/openai/gpt-image-1.5.png", - "metadata": { - "Image Editing": "Yes", - "Sizes": "256x256 to 1792x1024", - "Quality": "low, medium, high, auto", - "Styles": "vivid, natural" - }, - "created_at": "2026-04-14 18:41:42", - "default_example": null, - "code_snippets": [], - "zdr": false, - "zdr_comment": null, - "schema": { - "input": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "prompt": { - "description": "Text prompt describing the image to generate or edit", - "type": "string" - }, - "image": { - "description": "Base64-encoded input image for image editing", - "type": "string" - }, - "quality": { - "description": "Quality of the generated image", - "type": "string", - "enum": [ - "low", - "medium", - "high", - "auto" - ] - }, - "size": { - "description": "Size of the generated image", - "type": "string", - "enum": [ - "256x256", - "512x512", - "1024x1024", - "1792x1024", - "1024x1792" - ] - }, - "style": { - "description": "Style of the generated image", - "type": "string", - "enum": [ - "vivid", - "natural" - ] - } - }, - "required": [ - "prompt" - ], - "additionalProperties": false - }, - "output": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "image": { - "description": "URL to the generated image", - "type": "string", - "format": "uri" - } - }, - "required": [ - "image" - ], - "additionalProperties": false - } - } -} diff --git a/src/content/catalog-models/openai-gpt-image-2.json b/src/content/catalog-models/openai-gpt-image-2.json deleted file mode 100644 index ad2eaee1a76c447..000000000000000 --- a/src/content/catalog-models/openai-gpt-image-2.json +++ /dev/null @@ -1,250 +0,0 @@ -{ - "model_id": "openai/gpt-image-2", - "provider_id": "openai", - "name": "OpenAI GPT Image 2", - "description": "OpenAI's next-generation image model that creates and edits images from text prompts, with support for multiple quality levels, sizes, and output formats. Note: transparent backgrounds are not supported \u2014 use openai/gpt-image-1.5 for transparent PNGs.", - "task": "Text-to-Image", - "tags": ["Image Generation", "Image Editing", "Multimodal"], - "context_length": null, - "max_output_tokens": null, - "schema_version": "1.0.0", - "examples": [ - { - "name": "Simple Generation", - "description": "Basic text-to-image with just a prompt", - "input": { - "prompt": "A golden retriever puppy playing in autumn leaves" - }, - "output": { - "image": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/openai__gpt-image-2/simple-generation.png" - }, - "raw_response": { - "state": "Completed", - "result": { - "image": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/openai__gpt-image-2/simple-generation.png" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'openai/gpt-image-2',\n {\n prompt: 'A golden retriever puppy playing in autumn leaves',\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "High Quality", - "description": "Generate a high-quality detailed image", - "input": { - "prompt": "A detailed botanical illustration of exotic tropical flowers with fine line work and watercolor textures", - "quality": "high" - }, - "output": { - "image": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/openai__gpt-image-2/high-quality.png" - }, - "raw_response": { - "state": "Completed", - "result": { - "image": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/openai__gpt-image-2/high-quality.png" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'openai/gpt-image-2',\n {\n prompt:\n 'A detailed botanical illustration of exotic tropical flowers with fine line work and watercolor textures',\n quality: 'high',\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Custom Size", - "description": "Generate a portrait-oriented image", - "input": { - "prompt": "A towering redwood forest with sunbeams filtering through the canopy, misty atmosphere", - "size": "1024x1536" - }, - "output": { - "image": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/openai__gpt-image-2/custom-size.png" - }, - "raw_response": { - "state": "Completed", - "result": { - "image": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/openai__gpt-image-2/custom-size.png" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'openai/gpt-image-2',\n {\n prompt:\n 'A towering redwood forest with sunbeams filtering through the canopy, misty atmosphere',\n size: '1024x1536',\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "WebP Output", - "description": "Generate an image in WebP format for smaller file size", - "input": { - "prompt": "A neon-lit cyberpunk cityscape at night with rain-slicked streets and holographic billboards", - "quality": "high", - "output_format": "webp" - }, - "output": { - "image": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/openai__gpt-image-2/webp-output.webp" - }, - "raw_response": { - "state": "Completed", - "result": { - "image": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/openai__gpt-image-2/webp-output.webp" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'openai/gpt-image-2',\n {\n prompt:\n 'A neon-lit cyberpunk cityscape at night with rain-slicked streets and holographic billboards',\n quality: 'high',\n output_format: 'webp',\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Image Edit", - "description": "Edit an existing image by providing it in the images array as base64 (a raw string or a data:image/{png|jpeg|webp};base64,... URI). This routes the call to OpenAI's /v1/images/edits endpoint. The example uses a tiny 32x32 smiley-face PNG - real inputs are the full base64 encoding of your source image.", - "input": { - "prompt": "Transform this cartoon smiley into a photorealistic 3D clay sculpture sitting on a marble pedestal, studio lighting", - "images": [ - "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAnklEQVR42u2XQRLAIAgD8/839i/26qFCACm0ozPe1KwcQsAoXvgcAABxpwFowl4QWITHxW0LCBhxVngF4gKIirMQyBRnIJAtrkE8AuwWnyFEgKzfS1UA+3sWTju3BGAu7gKYIfBW+Q/AAQgBeMCkt1wVsLZjcwUYG2Z9wGLHZitWk1DEisubUYt2XB5IWkSyFqG0RSxvMZi0Gc1+Ox3fm00ZJ5mGVtkAAAAASUVORK5CYII=" - ] - }, - "output": { - "image": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/openai__gpt-image-2/image-edit.png" - }, - "raw_response": { - "state": "Completed", - "result": { - "image": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/openai__gpt-image-2/image-edit.png" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'openai/gpt-image-2',\n {\n prompt:\n 'Transform this cartoon smiley into a photorealistic 3D clay sculpture sitting on a marble pedestal, studio lighting',\n images: [\n 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAnklEQVR42u2XQRLAIAgD8/839i/26qFCACm0ozPe1KwcQsAoXvgcAABxpwFowl4QWITHxW0LCBhxVngF4gKIirMQyBRnIJAtrkE8AuwWnyFEgKzfS1UA+3sWTju3BGAu7gKYIfBW+Q/AAQgBeMCkt1wVsLZjcwUYG2Z9wGLHZitWk1DEisubUYt2XB5IWkSyFqG0RSxvMZi0Gc1+Ox3fm00ZJ5mGVtkAAAAASUVORK5CYII=',\n ],\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Multi-Image Edit", - "description": "Compose multiple input images by passing up to 16 base64 strings in the images array. The model blends the references; useful for combining subjects, styles, or reference shots. The example pairs a smiley-face PNG with a red ball PNG.", - "input": { - "prompt": "Combine these into a single photorealistic scene: a ceramic smiley-face mug next to a red rubber ball on a sunlit wooden table", - "images": [ - "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAnklEQVR42u2XQRLAIAgD8/839i/26qFCACm0ozPe1KwcQsAoXvgcAABxpwFowl4QWITHxW0LCBhxVngF4gKIirMQyBRnIJAtrkE8AuwWnyFEgKzfS1UA+3sWTju3BGAu7gKYIfBW+Q/AAQgBeMCkt1wVsLZjcwUYG2Z9wGLHZitWk1DEisubUYt2XB5IWkSyFqG0RSxvMZi0Gc1+Ox3fm00ZJ5mGVtkAAAAASUVORK5CYII=", - "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAhklEQVR42u2XsRHAMAgDNY73nye7OG2KgGUnGCWH76j/oTACPfnhcwIA3AoTGIFXRTADPlqjakYEDJwFWyJLAk/hrAQi4YwEouEjiVuBt+FXCVcgqntvCtjVvTUF7OremkIJlEAJ6Aikf0QSX3H6MpJYx+mBRCKSSYRSiVgucZjInGa/vY5PvB72/7IdMuAAAAAASUVORK5CYII=" - ] - }, - "output": { - "image": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/openai__gpt-image-2/multi-image-edit.png" - }, - "raw_response": { - "state": "Completed", - "result": { - "image": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/openai__gpt-image-2/multi-image-edit.png" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'openai/gpt-image-2',\n {\n prompt:\n 'Combine these into a single photorealistic scene: a ceramic smiley-face mug next to a red rubber ball on a sunlit wooden table',\n images: [\n 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAnklEQVR42u2XQRLAIAgD8/839i/26qFCACm0ozPe1KwcQsAoXvgcAABxpwFowl4QWITHxW0LCBhxVngF4gKIirMQyBRnIJAtrkE8AuwWnyFEgKzfS1UA+3sWTju3BGAu7gKYIfBW+Q/AAQgBeMCkt1wVsLZjcwUYG2Z9wGLHZitWk1DEisubUYt2XB5IWkSyFqG0RSxvMZi0Gc1+Ox3fm00ZJ5mGVtkAAAAASUVORK5CYII=',\n 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAhklEQVR42u2XsRHAMAgDNY73nye7OG2KgGUnGCWH76j/oTACPfnhcwIA3AoTGIFXRTADPlqjakYEDJwFWyJLAk/hrAQi4YwEouEjiVuBt+FXCVcgqntvCtjVvTUF7OremkIJlEAJ6Aikf0QSX3H6MpJYx+mBRCKSSYRSiVgucZjInGa/vY5PvB72/7IdMuAAAAAASUVORK5CYII=',\n ],\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - } - ], - "supports_async": false, - "external_info": "https://openai.com/", - "terms": "https://openai.com/policies/", - "cover_image_url": "https://pub-26f1392c1b674324be6786695bd72257.r2.dev/openai/gpt-image-2.png", - "metadata": { - "Image Editing": "Yes", - "Sizes": "1024x1024, 1024x1536, 1536x1024, auto", - "Quality": "low, medium, high, auto", - "Output Formats": "png, webp, jpeg" - }, - "created_at": "2026-04-22 19:25:23", - "default_example": null, - "code_snippets": [], - "zdr": false, - "zdr_comment": null, - "schema": { - "input": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "prompt": { - "description": "Text prompt describing the image to generate or edit", - "type": "string" - }, - "images": { - "description": "Input images for image editing, 1-16 entries. Each entry is base64-encoded (raw string or data:image/{png|jpeg|webp};base64,... URI).", - "maxItems": 16, - "type": "array", - "items": { - "type": "string" - } - }, - "quality": { - "description": "Quality of the generated image", - "type": "string", - "enum": ["low", "medium", "high", "auto"] - }, - "size": { - "description": "Size of the generated image", - "type": "string", - "enum": ["1024x1024", "1024x1536", "1536x1024", "auto"] - }, - "background": { - "description": "Background transparency setting. Use transparent for images with no background, opaque for a solid background, or auto to let the model decide.", - "type": "string", - "enum": ["transparent", "opaque", "auto"] - }, - "output_format": { - "description": "Output format for the generated image", - "type": "string", - "enum": ["png", "webp", "jpeg"] - } - }, - "required": ["prompt"], - "additionalProperties": false - }, - "output": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "image": { - "description": "URL to the generated image", - "type": "string", - "format": "uri" - } - }, - "required": ["image"], - "additionalProperties": false - } - } -} diff --git a/src/content/catalog-models/openai-o4-mini.json b/src/content/catalog-models/openai-o4-mini.json deleted file mode 100644 index e3bd3fb0967a813..000000000000000 --- a/src/content/catalog-models/openai-o4-mini.json +++ /dev/null @@ -1,9971 +0,0 @@ -{ - "model_id": "openai/o4-mini", - "provider_id": "openai", - "name": "o4-mini", - "description": "OpenAI's fast, lightweight reasoning model optimized for multi-step problem solving at lower cost.", - "task": "Text Generation", - "tags": [ - "LLM", - "Reasoning", - "Fast", - "Cost-Efficient" - ], - "context_length": 200000, - "max_output_tokens": 100000, - "schema_version": "1.0.0", - "examples": [ - { - "name": "Simple Question", - "description": "Basic chat completion request", - "input": { - "messages": [ - { - "role": "user", - "content": "What are the three laws of thermodynamics?" - } - ] - }, - "output": { - "text": "Here are the three (classical) laws of thermodynamics:\n\n1. First Law (Conservation of Energy) \n \u2013 Statement: Energy can neither be created nor destroyed, only converted from one form to another. \n \u2013 Formulation: \u0394U = Q \u2013 W \n \u2022 \u0394U is the change in internal energy of the system \n \u2022 Q is heat added to the system \n \u2022 W is work done by the system \n\n2. Second Law (Entropy Increase) \n \u2013 Statement: In any spontaneous process, the total entropy of an isolated system never decreases; it increases for irreversible processes and remains constant for reversible ones. \n \u2013 Key consequences: \n \u2022 Heat cannot spontaneously flow from cold to hot (Clausius statement) \n \u2022 No heat engine can be 100% efficient (Kelvin\u2013Planck statement) \n\n3. Third Law (Unattainability of Absolute Zero) \n \u2013 Statement: As the temperature of a perfect crystalline substance approaches absolute zero (0 K), its entropy approaches a constant minimum (often taken as zero). \n \u2013 Consequence: It is impossible to reach absolute zero in a finite number of steps." - }, - "raw_response": { - "id": "chatcmpl-DVnXkjut2BEk7At18pcFMPV5TOSoc", - "object": "chat.completion", - "created": 1776470984, - "model": "o4-mini-2025-04-16", - "choices": [ - { - "index": 0, - "message": { - "role": "assistant", - "content": "Here are the three (classical) laws of thermodynamics:\n\n1. First Law (Conservation of Energy) \n \u2013 Statement: Energy can neither be created nor destroyed, only converted from one form to another. \n \u2013 Formulation: \u0394U = Q \u2013 W \n \u2022 \u0394U is the change in internal energy of the system \n \u2022 Q is heat added to the system \n \u2022 W is work done by the system \n\n2. Second Law (Entropy Increase) \n \u2013 Statement: In any spontaneous process, the total entropy of an isolated system never decreases; it increases for irreversible processes and remains constant for reversible ones. \n \u2013 Key consequences: \n \u2022 Heat cannot spontaneously flow from cold to hot (Clausius statement) \n \u2022 No heat engine can be 100% efficient (Kelvin\u2013Planck statement) \n\n3. Third Law (Unattainability of Absolute Zero) \n \u2013 Statement: As the temperature of a perfect crystalline substance approaches absolute zero (0 K), its entropy approaches a constant minimum (often taken as zero). \n \u2013 Consequence: It is impossible to reach absolute zero in a finite number of steps.", - "refusal": null, - "annotations": [] - }, - "finish_reason": "stop" - } - ], - "usage": { - "prompt_tokens": 15, - "completion_tokens": 505, - "total_tokens": 520, - "prompt_tokens_details": { - "cached_tokens": 0, - "audio_tokens": 0 - }, - "completion_tokens_details": { - "reasoning_tokens": 192, - "audio_tokens": 0, - "accepted_prediction_tokens": 0, - "rejected_prediction_tokens": 0 - } - }, - "service_tier": "default", - "system_fingerprint": null, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'openai/o4-mini',\n {\n messages: [\n {\n role: 'user',\n content: 'What are the three laws of thermodynamics?',\n },\n ],\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "With System Message", - "description": "Using a system message to set context", - "input": { - "messages": [ - { - "role": "system", - "content": "You are a helpful coding assistant specializing in Python." - }, - { - "role": "user", - "content": "How do I read a JSON file in Python?" - } - ] - }, - "output": { - "text": "Here\u2019s the most common way, using Python\u2019s built-in json module:\n\n```python\nimport json\n\n# 1. Open the file\nwith open(\"data.json\", \"r\", encoding=\"utf-8\") as f:\n # 2. Parse the JSON into a Python object (dict or list)\n data = json.load(f)\n\n# 3. Now `data` is a normal Python dict/list\nprint(data)\nprint(type(data)) # e.g. \nprint(data[\"someKey\"]) # access fields as usual\n```\n\nExplanation:\n\n 1. `open(..., \"r\", encoding=\"utf-8\")` opens in read-mode.\n 2. `json.load(f)` reads the entire file and deserializes it to a Python object.\n 3. You can now work with it like any dict or list.\n\nIf you already have a JSON string in memory, use `json.loads()`:\n\n```python\nimport json\n\njson_str = '{\"name\": \"Alice\", \"age\": 30}'\ndata = json.loads(json_str)\n```\n\nError handling example:\n\n```python\nimport json\n\ntry:\n with open(\"data.json\", encoding=\"utf-8\") as f:\n data = json.load(f)\nexcept FileNotFoundError:\n print(\"File not found\")\nexcept json.JSONDecodeError as e:\n print(\"Invalid JSON:\", e)\nelse:\n # success\n print(data)\n```\n\nAlternative with pathlib:\n\n```python\nfrom pathlib import Path\nimport json\n\ntext = Path(\"data.json\").read_text(encoding=\"utf-8\")\ndata = json.loads(text)\n```\n\nThat\u2019s all you need to read JSON files in Python!" - }, - "raw_response": { - "id": "chatcmpl-DVnXkrglfCO4sLEI5BodnMzerw1Ev", - "object": "chat.completion", - "created": 1776470984, - "model": "o4-mini-2025-04-16", - "choices": [ - { - "index": 0, - "message": { - "role": "assistant", - "content": "Here\u2019s the most common way, using Python\u2019s built-in json module:\n\n```python\nimport json\n\n# 1. Open the file\nwith open(\"data.json\", \"r\", encoding=\"utf-8\") as f:\n # 2. Parse the JSON into a Python object (dict or list)\n data = json.load(f)\n\n# 3. Now `data` is a normal Python dict/list\nprint(data)\nprint(type(data)) # e.g. \nprint(data[\"someKey\"]) # access fields as usual\n```\n\nExplanation:\n\n 1. `open(..., \"r\", encoding=\"utf-8\")` opens in read-mode.\n 2. `json.load(f)` reads the entire file and deserializes it to a Python object.\n 3. You can now work with it like any dict or list.\n\nIf you already have a JSON string in memory, use `json.loads()`:\n\n```python\nimport json\n\njson_str = '{\"name\": \"Alice\", \"age\": 30}'\ndata = json.loads(json_str)\n```\n\nError handling example:\n\n```python\nimport json\n\ntry:\n with open(\"data.json\", encoding=\"utf-8\") as f:\n data = json.load(f)\nexcept FileNotFoundError:\n print(\"File not found\")\nexcept json.JSONDecodeError as e:\n print(\"Invalid JSON:\", e)\nelse:\n # success\n print(data)\n```\n\nAlternative with pathlib:\n\n```python\nfrom pathlib import Path\nimport json\n\ntext = Path(\"data.json\").read_text(encoding=\"utf-8\")\ndata = json.loads(text)\n```\n\nThat\u2019s all you need to read JSON files in Python!", - "refusal": null, - "annotations": [] - }, - "finish_reason": "stop" - } - ], - "usage": { - "prompt_tokens": 30, - "completion_tokens": 499, - "total_tokens": 529, - "prompt_tokens_details": { - "cached_tokens": 0, - "audio_tokens": 0 - }, - "completion_tokens_details": { - "reasoning_tokens": 128, - "audio_tokens": 0, - "accepted_prediction_tokens": 0, - "rejected_prediction_tokens": 0 - } - }, - "service_tier": "default", - "system_fingerprint": null, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'openai/o4-mini',\n {\n messages: [\n {\n role: 'system',\n content: 'You are a helpful coding assistant specializing in Python.',\n },\n {\n role: 'user',\n content: 'How do I read a JSON file in Python?',\n },\n ],\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Multi-turn Conversation", - "description": "Continuing a conversation with context", - "input": { - "messages": [ - { - "role": "user", - "content": "I need help planning a road trip from San Francisco to Los Angeles." - }, - { - "role": "assistant", - "content": "I'd be happy to help! The drive is about 380 miles and takes roughly 5-6 hours. Would you like suggestions for scenic routes or interesting stops along the way?" - }, - { - "role": "user", - "content": "Yes, what are some good places to stop?" - } - ], - "max_completion_tokens": 2048 - }, - "output": { - "text": "Here are two popular ways to make the trip\u2014with suggested stops\u2014so you can pick the one that best fits your interests and schedule. \n\n1. Coastal Highway (CA-1 / Pacific Coast Highway) \n Total driving time: ~8\u201310 hours (no major traffic), 450 miles \n Recommended pace: 2\u20133 days \n\n \u2022 Half Moon Bay (30 mi / 45 min from SF) \n \u2013 Stroll the beaches, grab coffee or seafood at the harbor. \n \u2013 Quick dune hike at Poplar Beach or Fitzgerald Marine Reserve. \n\n \u2022 Santa Cruz (50 mi / 1 hr from Half Moon Bay) \n \u2013 Santa Cruz Beach Boardwalk for rides & arcade. \n \u2013 Downtown Pacific Avenue for shops and local brews. \n\n \u2022 Capitola (5 mi / 10 min from Santa Cruz) \n \u2013 Colorful seaside village with boutique shops and caf\u00e9s. \n \u2013 Great spot for sunset on Capitola Beach. \n\n \u2022 Monterey & Carmel (45 mi / 1 hr from Capitola) \n \u2013 Monterey Bay Aquarium, Cannery Row, coastal bike path. \n \u2013 Carmel-by-the-Sea: fairy-tale cottages, art galleries, Carmel Mission. \n \u2013 17-Mile Drive (pebbled beaches, peacocks, iconic Lone Cypress). \n\n \u2022 Big Sur (30 mi / 1 hr from Carmel) \n \u2013 Bixby Creek Bridge photo-op. \n \u2013 Pfeiffer Beach (purple sand) and McWay Falls at Julia Pfeiffer Burns State Park. \n \u2013 Ragged Point for coastal vistas and snacks. \n Overnight option: Big Sur Lodge or camping. \n\n \u2022 San Simeon & Cambria (45 mi / 1 hr from Big Sur) \n \u2013 Hearst Castle tour. \n \u2013 Elephant Seal Vista Point just north of San Simeon. \n \u2013 Cambria\u2019s Moonstone Beach Boardwalk and quaint Main Street. \n\n \u2022 Morro Bay (25 mi / 35 min from Cambria) \n \u2013 Morro Rock, waterfront restaurants, kayaking and bird-watching. \n\n \u2022 San Luis Obispo (30 mi / 35 min from Morro Bay) \n \u2013 Mission San Luis Obispo de Tolosa. \n \u2013 Bubblegum Alley and bustling Higuera Street for dinner or a brew. \n Overnight option: downtown SLO. \n\n \u2022 Pismo Beach & Solvang (option) \n \u2013 Pismo: pier, ATV dunes at nearby Oceano Dunes. \n \u2013 Solvang: Danish-style village and bakeries (20 mi inland from Pismo). \n\n \u2022 Santa Barbara (100 mi / 2 hrs from SLO) \n \u2013 State Street shopping, Stearns Wharf, Mission Santa Barbara. \n \u2013 Wine tasting in the nearby Funk Zone or Santa Ynez Valley. \n\n \u2022 Malibu & Santa Monica (90 mi / 1\u00bd\u20132 hrs from SB) \n \u2013 Malibu\u2019s Zuma Beach or Point Dume. \n \u2013 Santa Monica Pier, Third Street Promenade. \n\n \u2022 Los Angeles (20 mi / 30 min from Santa Monica) \n \u2013 Welcome to LA! \n\n2. Faster Inland Route (I-5) \n Total driving time: ~6 hrs, 380 miles \n Good if you\u2019re pressed for time; fewer scenic overlooks but easier mileage. \n\n Key stops along I-5: \n \u2022 Gilroy (40 mi / 45 min from SF) \u2013 Home of the Garlic Festival; farm stands. \n \u2022 Kettleman City (160 mi / 2\u00bd hrs from Gilroy) \u2013 Bravo Farms for ice cream and picnic. \n \u2022 Harris Ranch (80 mi / 1 hr from Kettleman) \u2013 Large steakhouse, deli and wine shop. \n \u2022 Grapevine / Tejon Pass (65 mi / 1 hr from Harris) \u2013 Decent rest-stop restaurants and views as you descend into Southern California. \n \u2022 Valencia / Santa Clarita (30 mi / 30 min from Grapevine) \u2013 Valencia Town Center for shops. \n \u2022 Los Angeles (35 mi / 40 min from Valencia) \n\n\u2014 \nTips: \n\u2022 Plan fuel and rest stops in Big Sur \u2014 services are sparse. \n\u2022 Book lodging early if traveling weekends or holidays (Big Sur, SLO, Santa Barbara are popular). \n\u2022 Allow extra time for traffic, especially near Malibu, Santa Barbara, and LA. \n\nEnjoy your trip! Let me know if you need more detail on any stop or lodging suggestions." - }, - "raw_response": { - "id": "chatcmpl-DVnXph5iAItZ049bKX3IMVRStv3NL", - "object": "chat.completion", - "created": 1776470989, - "model": "o4-mini-2025-04-16", - "choices": [ - { - "index": 0, - "message": { - "role": "assistant", - "content": "Here are two popular ways to make the trip\u2014with suggested stops\u2014so you can pick the one that best fits your interests and schedule. \n\n1. Coastal Highway (CA-1 / Pacific Coast Highway) \n Total driving time: ~8\u201310 hours (no major traffic), 450 miles \n Recommended pace: 2\u20133 days \n\n \u2022 Half Moon Bay (30 mi / 45 min from SF) \n \u2013 Stroll the beaches, grab coffee or seafood at the harbor. \n \u2013 Quick dune hike at Poplar Beach or Fitzgerald Marine Reserve. \n\n \u2022 Santa Cruz (50 mi / 1 hr from Half Moon Bay) \n \u2013 Santa Cruz Beach Boardwalk for rides & arcade. \n \u2013 Downtown Pacific Avenue for shops and local brews. \n\n \u2022 Capitola (5 mi / 10 min from Santa Cruz) \n \u2013 Colorful seaside village with boutique shops and caf\u00e9s. \n \u2013 Great spot for sunset on Capitola Beach. \n\n \u2022 Monterey & Carmel (45 mi / 1 hr from Capitola) \n \u2013 Monterey Bay Aquarium, Cannery Row, coastal bike path. \n \u2013 Carmel-by-the-Sea: fairy-tale cottages, art galleries, Carmel Mission. \n \u2013 17-Mile Drive (pebbled beaches, peacocks, iconic Lone Cypress). \n\n \u2022 Big Sur (30 mi / 1 hr from Carmel) \n \u2013 Bixby Creek Bridge photo-op. \n \u2013 Pfeiffer Beach (purple sand) and McWay Falls at Julia Pfeiffer Burns State Park. \n \u2013 Ragged Point for coastal vistas and snacks. \n Overnight option: Big Sur Lodge or camping. \n\n \u2022 San Simeon & Cambria (45 mi / 1 hr from Big Sur) \n \u2013 Hearst Castle tour. \n \u2013 Elephant Seal Vista Point just north of San Simeon. \n \u2013 Cambria\u2019s Moonstone Beach Boardwalk and quaint Main Street. \n\n \u2022 Morro Bay (25 mi / 35 min from Cambria) \n \u2013 Morro Rock, waterfront restaurants, kayaking and bird-watching. \n\n \u2022 San Luis Obispo (30 mi / 35 min from Morro Bay) \n \u2013 Mission San Luis Obispo de Tolosa. \n \u2013 Bubblegum Alley and bustling Higuera Street for dinner or a brew. \n Overnight option: downtown SLO. \n\n \u2022 Pismo Beach & Solvang (option) \n \u2013 Pismo: pier, ATV dunes at nearby Oceano Dunes. \n \u2013 Solvang: Danish-style village and bakeries (20 mi inland from Pismo). \n\n \u2022 Santa Barbara (100 mi / 2 hrs from SLO) \n \u2013 State Street shopping, Stearns Wharf, Mission Santa Barbara. \n \u2013 Wine tasting in the nearby Funk Zone or Santa Ynez Valley. \n\n \u2022 Malibu & Santa Monica (90 mi / 1\u00bd\u20132 hrs from SB) \n \u2013 Malibu\u2019s Zuma Beach or Point Dume. \n \u2013 Santa Monica Pier, Third Street Promenade. \n\n \u2022 Los Angeles (20 mi / 30 min from Santa Monica) \n \u2013 Welcome to LA! \n\n2. Faster Inland Route (I-5) \n Total driving time: ~6 hrs, 380 miles \n Good if you\u2019re pressed for time; fewer scenic overlooks but easier mileage. \n\n Key stops along I-5: \n \u2022 Gilroy (40 mi / 45 min from SF) \u2013 Home of the Garlic Festival; farm stands. \n \u2022 Kettleman City (160 mi / 2\u00bd hrs from Gilroy) \u2013 Bravo Farms for ice cream and picnic. \n \u2022 Harris Ranch (80 mi / 1 hr from Kettleman) \u2013 Large steakhouse, deli and wine shop. \n \u2022 Grapevine / Tejon Pass (65 mi / 1 hr from Harris) \u2013 Decent rest-stop restaurants and views as you descend into Southern California. \n \u2022 Valencia / Santa Clarita (30 mi / 30 min from Grapevine) \u2013 Valencia Town Center for shops. \n \u2022 Los Angeles (35 mi / 40 min from Valencia) \n\n\u2014 \nTips: \n\u2022 Plan fuel and rest stops in Big Sur \u2014 services are sparse. \n\u2022 Book lodging early if traveling weekends or holidays (Big Sur, SLO, Santa Barbara are popular). \n\u2022 Allow extra time for traffic, especially near Malibu, Santa Barbara, and LA. \n\nEnjoy your trip! Let me know if you need more detail on any stop or lodging suggestions.", - "refusal": null, - "annotations": [] - }, - "finish_reason": "stop" - } - ], - "usage": { - "prompt_tokens": 76, - "completion_tokens": 1331, - "total_tokens": 1407, - "prompt_tokens_details": { - "cached_tokens": 0, - "audio_tokens": 0 - }, - "completion_tokens_details": { - "reasoning_tokens": 320, - "audio_tokens": 0, - "accepted_prediction_tokens": 0, - "rejected_prediction_tokens": 0 - } - }, - "service_tier": "default", - "system_fingerprint": null, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'openai/o4-mini',\n {\n messages: [\n {\n role: 'user',\n content:\n 'I need help planning a road trip from San Francisco to Los Angeles.',\n },\n {\n role: 'assistant',\n content:\n \"I'd be happy to help! The drive is about 380 miles and takes roughly 5-6 hours. Would you like suggestions for scenic routes or interesting stops along the way?\",\n },\n {\n role: 'user',\n content: 'Yes, what are some good places to stop?',\n },\n ],\n max_completion_tokens: 2048,\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Creative Writing", - "description": "Longer completion for creative output", - "input": { - "messages": [ - { - "role": "user", - "content": "Write a short story opening about a detective finding an unusual clue." - } - ], - "max_completion_tokens": 2048 - }, - "output": { - "text": "Detective Mara Ellington crouched in the alley\u2019s muted glow, rain dripping from her brimmed hat. The city\u2019s midnight hush was deafening, broken only by distant sirens and the scurry of rats. She\u2019d come to inspect the scene of a daring daylight burglary at the old Currier estate, expecting shattered glass and empty safes. Instead, on the damp cobblestones, she found a single porcelain doll\u2019s head\u2014its cheek chipped, one glass eye staring blankly at the moon. \n\nHeat prickled her neck. No burglar would leave such a thing behind. She reached for it, careful of the spider-web crack snaking from its temple. The doll\u2019s painted lips were twisted into an unnatural grin, and tucked beneath its chin was a scrap of yellowed paper, edges singed. Mara unfolded it, breath catching as she read the single word scrawled in crimson ink: \u201cFound.\u201d" - }, - "raw_response": { - "id": "chatcmpl-DVnXpXvTKSGQ5iGgAj5ky00Ve4KC2", - "object": "chat.completion", - "created": 1776470989, - "model": "o4-mini-2025-04-16", - "choices": [ - { - "index": 0, - "message": { - "role": "assistant", - "content": "Detective Mara Ellington crouched in the alley\u2019s muted glow, rain dripping from her brimmed hat. The city\u2019s midnight hush was deafening, broken only by distant sirens and the scurry of rats. She\u2019d come to inspect the scene of a daring daylight burglary at the old Currier estate, expecting shattered glass and empty safes. Instead, on the damp cobblestones, she found a single porcelain doll\u2019s head\u2014its cheek chipped, one glass eye staring blankly at the moon. \n\nHeat prickled her neck. No burglar would leave such a thing behind. She reached for it, careful of the spider-web crack snaking from its temple. The doll\u2019s painted lips were twisted into an unnatural grin, and tucked beneath its chin was a scrap of yellowed paper, edges singed. Mara unfolded it, breath catching as she read the single word scrawled in crimson ink: \u201cFound.\u201d", - "refusal": null, - "annotations": [] - }, - "finish_reason": "stop" - } - ], - "usage": { - "prompt_tokens": 19, - "completion_tokens": 269, - "total_tokens": 288, - "prompt_tokens_details": { - "cached_tokens": 0, - "audio_tokens": 0 - }, - "completion_tokens_details": { - "reasoning_tokens": 64, - "audio_tokens": 0, - "accepted_prediction_tokens": 0, - "rejected_prediction_tokens": 0 - } - }, - "service_tier": "default", - "system_fingerprint": null, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'openai/o4-mini',\n {\n messages: [\n {\n role: 'user',\n content:\n 'Write a short story opening about a detective finding an unusual clue.',\n },\n ],\n max_completion_tokens: 2048,\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Streaming Response", - "description": "Enable streaming for real-time output", - "input": { - "messages": [ - { - "role": "user", - "content": "Explain the concept of recursion with a simple example." - } - ], - "stream": true, - "stream_options": { - "include_usage": true - } - }, - "output": { - "text": [ - "Rec", - "ursion", - " is", - " a", - " technique", - " where", - " a", - " function", - " (", - "or", - " routine", - ")", - " calls", - " itself", - " in", - " order", - " to", - " break", - " a", - " problem", - " down", - " into", - " smaller", - ",", - " more", - " manageable", - " pieces", - ".", - " Every", - " recursive", - " solution", - " has", - " two", - " essential", - " parts", - ":\n\n", - "1", - ".", - " Base", - " Case", - " \n", - " ", - " ", - " ", - "\u2013", - " A", - " condition", - " under", - " which", - " the", - " function", - " returns", - " a", - " result", - " directly", - ",", - " without", - " making", - " any", - " further", - " recursive", - " calls", - ".", - " \n", - "2", - ".", - " Recursive", - " Case", - " \n", - " ", - " ", - " ", - "\u2013", - " The", - " part", - " of", - " the", - " function", - " that", - " calls", - " itself", - " with", - " a", - " smaller", - " or", - " simpler", - " input", - ",", - " moving", - " the", - " overall", - " problem", - " toward", - " the", - " base", - " case", - ".\n\n", - "Simple", - " Example", - ":", - " Computing", - " Factor", - "ial", - "\n\n", - "The", - " factorial", - " of", - " a", - " non", - "-", - "negative", - " integer", - " n", - " (", - "written", - " n", - "!)", - " is", - " the", - " product", - " of", - " all", - " positive", - " integers", - " up", - " to", - " n", - ".", - " \n", - " ", - " \u2013", - " ", - "0", - "!", - " is", - " defined", - " as", - " ", - "1", - " (", - "this", - " will", - " be", - " our", - " base", - " case", - ").", - " \n", - " ", - " \u2013", - " For", - " n", - " >", - " ", - "0", - ",", - " n", - "!", - " =", - " n", - " \u00d7", - " (", - "n", - " ", - "\u2013", - " ", - "1", - ")!", - " \n\n", - "Here", - "\u2019s", - " how", - " you", - " could", - " write", - " it", - " in", - " Python", - ":\n\n", - "``", - "`\n", - "def", - " factorial", - "(n", - "):\n", - " ", - " #", - " Base", - " case", - "\n", - " ", - " if", - " n", - " ==", - " ", - "0", - ":\n", - " ", - " return", - " ", - "1", - "\n", - " ", - " #", - " Recursive", - " case", - "\n", - " ", - " else", - ":\n", - " ", - " return", - " n", - " *", - " factorial", - "(n", - " -", - " ", - "1", - ")\n", - "``", - "`\n\n", - "How", - " it", - " works", - " for", - " factorial", - "(", - "4", - "):\n", - " ", - "1", - ".", - " factorial", - "(", - "4", - ")", - " \n", - " ", - " \u2192", - " ", - "4", - " *", - " factorial", - "(", - "3", - ")", - " \n", - " ", - "2", - ".", - " factorial", - "(", - "3", - ")", - " \n", - " ", - " \u2192", - " ", - "3", - " *", - " factorial", - "(", - "2", - ")", - " \n", - " ", - "3", - ".", - " factorial", - "(", - "2", - ")", - " \n", - " ", - " \u2192", - " ", - "2", - " *", - " factorial", - "(", - "1", - ")", - " \n", - " ", - "4", - ".", - " factorial", - "(", - "1", - ")", - " \n", - " ", - " \u2192", - " ", - "1", - " *", - " factorial", - "(", - "0", - ")", - " \n", - " ", - "5", - ".", - " factorial", - "(", - "0", - ")", - " \n", - " ", - " \u2192", - " ", - "1", - " ", - " (", - "base", - " case", - " reached", - ")\n\n", - "Then", - " the", - " calls", - " \u201c", - "un", - "wind", - "\u201d", - ":\n", - " ", - " \u2013", - " factorial", - "(", - "1", - ")", - " returns", - " ", - "1", - " \u00d7", - " ", - "1", - " =", - " ", - "1", - " \n", - " ", - " \u2013", - " factorial", - "(", - "2", - ")", - " returns", - " ", - "2", - " \u00d7", - " ", - "1", - " =", - " ", - "2", - " \n", - " ", - " \u2013", - " factorial", - "(", - "3", - ")", - " returns", - " ", - "3", - " \u00d7", - " ", - "2", - " =", - " ", - "6", - " \n", - " ", - " \u2013", - " factorial", - "(", - "4", - ")", - " returns", - " ", - "4", - " \u00d7", - " ", - "6", - " =", - " ", - "24", - " \n\n", - "Key", - " points", - " to", - " remember", - ":\n", - "-", - " Always", - " define", - " a", - " clear", - " base", - " case", - ",", - " or", - " the", - " recursion", - " will", - " never", - " stop", - ".", - " \n", - "-", - " Each", - " recursive", - " call", - " should", - " make", - " progress", - " toward", - " that", - " base", - " case", - " (", - "e", - ".g", - ".", - " decreasing", - " n", - " by", - " ", - "1", - ").", - " \n", - "-", - " Rec", - "ursion", - " is", - " especially", - " handy", - " for", - " problems", - " that", - " naturally", - " split", - " into", - " similar", - " sub", - "pro", - "blems", - " (", - "tree", - " travers", - "als", - ",", - " divide", - "-", - "and", - "-", - "con", - "quer", - " algorithms", - ",", - " combin", - "atorial", - " searches", - ",", - " etc", - ".)." - ] - }, - "raw_response": [ - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "role": "assistant", - "content": "", - "refusal": null - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "3Y9X9fW8" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "Rec" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "bNp9XsA" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "ursion" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "NPDb" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " is" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Yi8ogIi" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " a" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "VjhEsKlk" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " technique" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " where" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "pNQB" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " a" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "dCYrhuMM" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " function" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "v" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " (" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "iWfiqUJ5" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "or" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "o10kvD5X" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " routine" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "qj" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ")" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "IUVTnFYGK" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " calls" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "8RNP" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " itself" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "EYs" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " in" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "6v2Uw2a" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " order" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "wlWF" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " to" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "PClvnXO" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " break" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "OUHK" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " a" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "6GvbeYeb" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " problem" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "vu" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " down" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "oEZPO" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " into" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "oJ1Sv" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " smaller" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "xW" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "," - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "1ZafvDo5R" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " more" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "42Tde" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " manageable" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "jRxrlUtGQdIQ7Ky" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " pieces" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "hiR" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "." - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "QyWIz24Pf" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " Every" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "OAA0" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " recursive" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " solution" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "u" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " has" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "vO0XHX" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " two" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "3C5TFA" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " essential" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " parts" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "9f16" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ":\n\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "BDXo3" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "1" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "3FAc8rQ39" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "." - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "rzz55tnZk" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " Base" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "VflYE" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " Case" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "0wkF8" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " \n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "pGDUom" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "9BjTbPHN" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "R9HwYldOe" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "XrAtZNCZG" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "\u2013" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "tyO9IDkjJ" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " A" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Ipj9umLF" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " condition" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " under" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "vYRX" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " which" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "t79o" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " the" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "qnhfMW" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " function" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "F" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " returns" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "RG" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " a" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "IYGE1fVo" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " result" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "HLk" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " directly" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "3" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "," - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "zSQ8AGOLe" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " without" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "yN" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " making" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "F32" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " any" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "hHUlF8" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " further" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "YZ" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " recursive" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " calls" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "oLEr" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "." - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "BPPJCsPxv" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " \n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "AVNHeH" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "2" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "40k83iWe6" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "." - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "SjtZ1su6I" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " Recursive" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " Case" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "SZ5ff" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " \n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Yh3pjd" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "AwWfPTFU" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "M7RNfEq4N" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "gkAGphofT" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "\u2013" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Hi3m6AeV3" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " The" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "vq3ZjO" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " part" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "eJCwx" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " of" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "ji3pgZl" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " the" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "bq7ES9" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " function" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "R" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " that" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Whc4r" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " calls" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "o2qV" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " itself" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "e6c" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " with" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "axSzu" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " a" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "4IGQj6ZV" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " smaller" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "og" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " or" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "gtOg9dc" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " simpler" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "dU" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " input" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "AxNk" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "," - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "B65iRpyDA" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " moving" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "f10" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " the" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "SgQS9X" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " overall" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "U0" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " problem" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "fn" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " toward" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "LjW" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " the" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "H51qGL" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " base" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "ZvwBt" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " case" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "xUvjw" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ".\n\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "e5qpU" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "Simple" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "fTf8" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " Example" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "2Q" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ":" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "p6mIRJXNu" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " Computing" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " Factor" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "1of" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "ial" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "qK7vt3r" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "\n\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "53ZksJ" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "The" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "1vZDkUw" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " factorial" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " of" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "cEv2DfT" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " a" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "zV5Bnstr" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " non" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "FSiYLk" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "-" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "kfSCNWNgI" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "negative" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "3M" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " integer" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "lW" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "CQVaIRHo" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " (" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "AYlcWjbv" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "written" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "tXT" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "AA396JNo" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "!)" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "ToeyDVoI" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " is" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "4sR6m8k" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " the" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "eZ4I6F" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " product" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "oz" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " of" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "6vcc7vd" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " all" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "GvCkJa" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " positive" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "J" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " integers" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "y" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " up" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "pLWtk4p" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " to" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "rmoDe4j" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "uY4rxis8" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "." - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "vyqtspwbk" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " \n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "iUgvGU" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "U6TsNkyDx" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " \u2013" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "BNWhl36F" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "AksGWh3Xm" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "0" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "e4jOhE3IG" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "!" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "x0GhXM2kq" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " is" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "6u5JX5B" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " defined" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "0s" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " as" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "6OjKCyx" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "ikxOt8eFl" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "1" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "1CKOpbMTy" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " (" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "vwrTV818" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "this" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "eazNmu" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " will" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "vOylg" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " be" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "6tRkGhz" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " our" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "RkbQIG" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " base" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "hb6b2" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " case" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "WO3Ej" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ")." - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "csfMPglN" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " \n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "zAIsm7" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "TwmIxQSjn" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " \u2013" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "kMpEgKSG" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " For" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Hzy6oX" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "UFxZBTWz" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " >" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "UYvXkp2J" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "y1PzjJTVH" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "0" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Ty3i3NK7l" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "," - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "MIokAhAoK" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "eUpl7G54" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "!" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "oiLCAVS2g" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " =" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "IgT4ikV7" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "m1F1mFck" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " \u00d7" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "O2wV0wo2" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " (" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "xG2w36Bc" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "MwmBdGg2H" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "BOq1PCPzc" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "\u2013" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "NZbx3JCW1" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "4cbcqRh95" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "1" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "emWYCATQ9" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ")!" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "WexvoOVQ" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " \n\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "iq3rg" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "Here" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "JXVHTP" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "\u2019s" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "DHnz2mMw" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " how" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "46nmgs" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " you" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "43jYTx" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " could" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "vFN6" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " write" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "nA7j" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " it" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "TPDWaY4" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " in" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "f4ze0Xx" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " Python" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "wIi" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ":\n\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "0KepB" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "``" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "NI6xOcYN" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "`\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Gn7WW9S" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "def" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "I9FDrU9" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " factorial" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "(n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "nvnMazfc" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "):\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "TX01lU" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "PTx1ucf" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " #" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "7zfslain" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " Base" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "na57x" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " case" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "z6btU" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "aIWlReSR" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "8QZlxSu" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " if" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "e3xeYYw" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "1TVGAOoc" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " ==" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "q88Hkdg" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "2J9W7DPef" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "0" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "ju6FueWO5" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ":\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "JUP1yCK" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "X8d" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " return" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Zbz" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "D2sEVVvRx" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "1" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "4aw4NpZdd" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "I7pbzlOv" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "YUEqQgm" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " #" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Xq5TGBWL" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " Recursive" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " case" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Li1YS" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "ooJa1rMS" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "ElA792y" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " else" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "fCctZ" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ":\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "GP1tEMM" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "PhC" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " return" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Ie8" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "5VSdZlb2" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " *" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "pyMYMOUN" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " factorial" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "(n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "D0erqHqx" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " -" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "yrNq0d73" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "76WkMIUAe" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "1" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "ZUfyehydy" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ")\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "UweVEyD" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "``" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "ZDiny8l9" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "`\n\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "iB5Jq" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "How" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "yOS3qKi" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " it" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "0wG9mdW" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " works" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "A03r" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " for" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "SwVEzi" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " factorial" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "(" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "FGGXnCxIs" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "4" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "1Xv6NNSrB" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "):\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "lJEaxL" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "wxOKxp6li" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "1" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "5QvZpdrVg" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "." - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "ZMArLCFDF" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " factorial" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "(" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "HXwZTbvOu" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "4" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "afTtPJJfg" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ")" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "5BqKMujfc" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " \n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "M9d8w2" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "iJrXZzY" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " \u2192" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "R3ooNhmu" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "rX4pdrLRD" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "4" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "yNWmN6Jzq" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " *" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "MldzF8e1" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " factorial" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "(" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "C18tgtkgc" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "3" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "oGxBED6kL" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ")" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "cwl8MRAyV" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " \n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "wWOw7P" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "usCXYVqjm" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "2" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "RJIBn1MU1" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "." - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "8A3hoSUSj" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " factorial" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "(" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "KzU8912Hs" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "3" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "xmpanT3ak" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ")" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "fHBt2xxKY" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " \n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "x4Kwqk" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "NdM24es" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " \u2192" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "1CoV26Aa" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "yED4Zn2KK" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "3" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Ff3jVH7cb" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " *" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "qloo8YlW" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " factorial" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "(" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "MpoAtotFY" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "2" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "u4uHJlNR3" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ")" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "9PutmqN75" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " \n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "ozvx1m" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "E1nuUsT1P" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "3" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "bXcsJqj7f" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "." - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "bnnXsjOKY" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " factorial" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "(" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "cpCmdlVjO" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "2" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "B4WuUYM3C" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ")" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "gWlCR47kg" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " \n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "8qUdkd" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "3gLevJW" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " \u2192" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "aPfNFvGZ" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "sogLjlgPl" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "2" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "CK6D812eM" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " *" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "MzgcOwCY" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " factorial" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "(" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "a70dPy62D" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "1" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "KKY9ZTHMT" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ")" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "4QeKBNxfm" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " \n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "UF6dcU" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "LsHz2nlse" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "4" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "luBmhTrUV" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "." - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "CtPd5tbPY" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " factorial" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "(" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "fxlqfWIPo" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "1" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "IVYVu09cA" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ")" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "tV4ewgKGD" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " \n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "8w6NP4" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "SjvMTEF" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " \u2192" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "r20yuHbO" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "xho8gSzPD" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "1" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Qu0Zj0qiG" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " *" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "OsvbABCz" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " factorial" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "(" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "BXkpX3ffg" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "0" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "ithDjjf6c" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ")" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "4q4wRuC5M" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " \n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "4hvg5u" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "NKYanDmbv" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "5" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "1nvY1vDnq" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "." - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "UwmMBgPXc" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " factorial" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "(" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "kmGM8MQDJ" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "0" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "BhvsNYWCm" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ")" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "SxoE7n7wa" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " \n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "qeQHbf" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "2vxl7Pu" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " \u2192" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "vcd9XVVS" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "aPzq55J0l" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "1" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Lh6BVN2kN" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Ui8kBYMA" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " (" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "1tbBSVnw" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "base" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Y2RQ5Q" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " case" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "cwOlX" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " reached" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "SN" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ")\n\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "NzuYS" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "Then" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "uxKNC2" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " the" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "tSpR4T" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " calls" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "hxvW" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " \u201c" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "ITIhftmO" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "un" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "JL0Yrs3t" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "wind" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "lKXLyP" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "\u201d" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Fgn5p1PYA" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ":\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "cvccMZx" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Jtad6VtOJ" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " \u2013" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "hDETbZEC" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " factorial" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "(" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "M0qWYm25O" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "1" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "ttgGQa0rv" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ")" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "4ge71K8Wc" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " returns" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "XB" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "D5s1WityB" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "1" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "uuYLdc1kE" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " \u00d7" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "chUTYLDZ" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "7gCm9IY4F" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "1" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "RubuzjwRV" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " =" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "izfW2twN" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "WYqM014Oi" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "1" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Hz8gFpLhG" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " \n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "fyhnuR" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Nn9Su1PLW" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " \u2013" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "ty3S3eiN" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " factorial" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "(" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "wGzKcOSWq" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "2" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "urlh43NKc" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ")" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "irhi5KqzD" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " returns" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "bP" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "kLiEueSBb" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "2" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "TobvotkgO" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " \u00d7" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "eZGDMtWv" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "keIBDhim3" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "1" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "sjGZrS6t4" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " =" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "5JD0rtIN" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "UEGvcS6OB" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "2" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "kd4dy4KIX" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " \n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "mWJWNt" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "085cIUWVA" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " \u2013" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "EPGxsRz5" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " factorial" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "(" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "FWoBykRet" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "3" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "fD1F5MRSU" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ")" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "5gJP06Vxu" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " returns" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Ps" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "ZaTg3LPRQ" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "3" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "N8eXnF6Yf" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " \u00d7" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "3Mxl2h0u" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "rxuI98BWb" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "2" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "AbJsPhooY" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " =" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "zoxMJhd3" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "93JzARETV" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "6" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "dMxdObz7m" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " \n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "KF9WAt" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "pzFPZrHNn" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " \u2013" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "DVCtWavj" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " factorial" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "(" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "FLzqTS15a" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "4" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "1zy6lojC3" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ")" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Aze3S4bdl" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " returns" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "MZ" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "jAEwBOIRA" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "4" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "sNuSwae3N" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " \u00d7" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "A8ePyE9L" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Bbnt7pkaQ" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "6" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "XZlETVEYw" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " =" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "LR4pmVDA" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "VbLglPGSS" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "24" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "YkIFfsyb" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " \n\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "vKXf" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "Key" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "8A5ZvEu" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " points" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "p9k" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " to" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "cO7SN1g" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " remember" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "n" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ":\n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "MhoukW8" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "-" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "1Yxv1LpN1" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " Always" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "ZGV" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " define" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "JHj" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " a" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "BS6fQH33" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " clear" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "fxjX" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " base" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "U2JGQ" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " case" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "1ny78" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "," - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "H4Lg4BSO4" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " or" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "z7ihohe" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " the" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "0gbxLh" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " recursion" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " will" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "eB7QI" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " never" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "4vLi" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " stop" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "f811P" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "." - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "o1qdGyadp" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " \n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "r9zwtF" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "-" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "vHvmZGA6U" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " Each" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "fv2XC" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " recursive" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " call" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "ZFfpf" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " should" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "0TC" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " make" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "7viM3" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " progress" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "g" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " toward" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "xQi" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " that" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "eazXB" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " base" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "mA11i" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " case" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "XM8YH" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " (" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "d5qnD9sr" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "e" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "bcWZSvNVo" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ".g" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "RF5fCW1K" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "." - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "AWDXMp8MA" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " decreasing" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "s00bbOgjCYipgut" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "o6qCX21k" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " by" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "USmVxhf" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " " - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "F04dyeHlH" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "1" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "LKoTnUV5H" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ")." - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "vywPtXPt" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " \n" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "MxgC07" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "-" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "NCdX2vRgU" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " Rec" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "7P6jZ9" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "ursion" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "MFrL" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " is" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "Iyq07eR" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " especially" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "U2iYIcjH7UoYNIM" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " handy" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "KAKv" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " for" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "dhqwAJ" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " problems" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "G" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " that" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "qCr7I" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " naturally" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " split" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "pcKd" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " into" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "grjOC" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " similar" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "8I" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " sub" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "cOmlFN" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "pro" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "rO3pAXd" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "blems" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "GNVwX" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " (" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "r64s3h42" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "tree" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "beew7J" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " travers" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "n4" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "als" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "WQf9TpA" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "," - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "jcLXWU7k8" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " divide" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "KP1" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "-" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "3q2NI2Fqn" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "and" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "nmJ9MIB" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "-" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "FEs76Mkpj" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "con" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "6GTZZSq" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "quer" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "qmnfb6" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " algorithms" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "9R9LzPBSzpkxkjI" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "," - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "PPHhrRdVU" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " combin" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "eVT" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "atorial" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "evM" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " searches" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "O" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": "," - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "v5UeHol29" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": " etc" - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "fxriOw" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": { - "content": ".)." - }, - "finish_reason": null - } - ], - "usage": null, - "obfuscation": "AcTgXdL" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [ - { - "index": 0, - "delta": {}, - "finish_reason": "stop" - } - ], - "usage": null, - "obfuscation": "fRQY" - }, - { - "id": "chatcmpl-DVnXsdpE8VJOrtvNaSXE4EEPhwEuq", - "object": "chat.completion.chunk", - "created": 1776470992, - "model": "o4-mini-2025-04-16", - "service_tier": "default", - "system_fingerprint": null, - "choices": [], - "usage": { - "prompt_tokens": 16, - "completion_tokens": 680, - "total_tokens": 696, - "prompt_tokens_details": { - "cached_tokens": 0, - "audio_tokens": 0 - }, - "completion_tokens_details": { - "reasoning_tokens": 192, - "audio_tokens": 0, - "accepted_prediction_tokens": 0, - "rejected_prediction_tokens": 0 - } - }, - "obfuscation": "EcvXn" - } - ], - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'openai/o4-mini',\n {\n messages: [\n {\n role: 'user',\n content: 'Explain the concept of recursion with a simple example.',\n },\n ],\n stream: true,\n stream_options: {\n include_usage: true,\n },\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - } - ], - "supports_async": false, - "external_info": "https://openai.com/", - "terms": "https://openai.com/policies/", - "cover_image_url": "https://pub-26f1392c1b674324be6786695bd72257.r2.dev/openai/o4-mini.png", - "metadata": { - "Architecture": "Transformer", - "Reasoning": "Chain-of-thought" - }, - "created_at": "2026-04-13 16:45:22", - "default_example": null, - "code_snippets": [], - "zdr": false, - "zdr_comment": null, - "schema": { - "input": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "messages": { - "type": "array", - "items": { - "type": "object", - "properties": { - "role": { - "type": "string", - "enum": [ - "system", - "developer", - "user", - "assistant", - "tool" - ] - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - }, - { - "type": "array", - "items": {} - } - ] - } - }, - "required": [ - "role", - "content" - ], - "additionalProperties": {} - } - }, - "temperature": { - "type": "number", - "minimum": 0, - "maximum": 2 - }, - "max_tokens": { - "type": "number", - "exclusiveMinimum": 0 - }, - "max_completion_tokens": { - "type": "number", - "exclusiveMinimum": 0 - }, - "top_p": { - "type": "number", - "minimum": 0, - "maximum": 1 - }, - "frequency_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2 - }, - "presence_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2 - }, - "stream": { - "type": "boolean" - }, - "stream_options": { - "type": "object", - "properties": { - "include_usage": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "tools": { - "type": "array", - "items": {} - }, - "tool_choice": {}, - "response_format": {} - }, - "required": [ - "messages" - ], - "additionalProperties": {} - }, - "output": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "object": { - "type": "string" - }, - "created": { - "type": "number" - }, - "model": { - "type": "string" - }, - "choices": { - "type": "array", - "items": { - "type": "object", - "properties": { - "index": { - "type": "number" - }, - "message": { - "type": "object", - "properties": { - "role": { - "type": "string" - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "tool_calls": { - "type": "array", - "items": {} - } - }, - "required": [ - "role" - ], - "additionalProperties": {} - }, - "finish_reason": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "index", - "message", - "finish_reason" - ], - "additionalProperties": {} - } - }, - "usage": { - "type": "object", - "properties": { - "prompt_tokens": { - "type": "number" - }, - "completion_tokens": { - "type": "number" - }, - "total_tokens": { - "type": "number" - } - }, - "required": [ - "prompt_tokens", - "completion_tokens", - "total_tokens" - ], - "additionalProperties": {} - } - }, - "required": [ - "id", - "object", - "created", - "model", - "choices" - ], - "additionalProperties": {} - } - } -} diff --git a/src/content/catalog-models/openai-tts-1-hd.json b/src/content/catalog-models/openai-tts-1-hd.json deleted file mode 100644 index 6eb1ed24104a659..000000000000000 --- a/src/content/catalog-models/openai-tts-1-hd.json +++ /dev/null @@ -1,211 +0,0 @@ -{ - "model_id": "openai/tts-1-hd", - "provider_id": "openai", - "name": "TTS-1-HD", - "description": "OpenAI's high-definition text-to-speech model producing higher quality audio output.", - "task": "Text-to-Speech", - "tags": [ - "TTS", - "Speech Synthesis", - "High Quality" - ], - "context_length": null, - "max_output_tokens": null, - "schema_version": "1.0.0", - "examples": [ - { - "name": "Simple Speech", - "description": "Generate high-definition speech with default settings", - "input": { - "text": "Hello! Welcome to Cloudflare AI Gateway. Let me show you what we can do.", - "voice": "alloy", - "response_format": "mp3", - "speed": 1 - }, - "output": { - "audio": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/openai__tts-1-hd/simple-speech.mp3" - }, - "raw_response": { - "state": "Completed", - "result": { - "audio": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/openai__tts-1-hd/simple-speech.mp3" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'openai/tts-1-hd',\n {\n text: 'Hello! Welcome to Cloudflare AI Gateway. Let me show you what we can do.',\n voice: 'alloy',\n response_format: 'mp3',\n speed: 1,\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Storytelling", - "description": "HD narration with the Fable voice", - "input": { - "text": "Once upon a time, in a kingdom beyond the clouds, there lived a young inventor who dreamed of building machines that could think.", - "voice": "fable", - "response_format": "mp3", - "speed": 0.9 - }, - "output": { - "audio": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/openai__tts-1-hd/storytelling.mp3" - }, - "raw_response": { - "state": "Completed", - "result": { - "audio": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/openai__tts-1-hd/storytelling.mp3" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'openai/tts-1-hd',\n {\n text: 'Once upon a time, in a kingdom beyond the clouds, there lived a young inventor who dreamed of building machines that could think.',\n voice: 'fable',\n response_format: 'mp3',\n speed: 0.9,\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Podcast Style", - "description": "Conversational podcast narration", - "input": { - "text": "So here's the thing about large language models \u2014 they're not actually thinking. They're predicting the next token based on patterns in their training data. But the results can be surprisingly coherent.", - "voice": "echo", - "response_format": "mp3", - "speed": 1 - }, - "output": { - "audio": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/openai__tts-1-hd/podcast-style.mp3" - }, - "raw_response": { - "state": "Completed", - "result": { - "audio": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/openai__tts-1-hd/podcast-style.mp3" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'openai/tts-1-hd',\n {\n text: \"So here's the thing about large language models \u2014 they're not actually thinking. They're predicting the next token based on patterns in their training data. But the results can be surprisingly coherent.\",\n voice: 'echo',\n response_format: 'mp3',\n speed: 1,\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Shimmer Voice", - "description": "Bright and expressive voice", - "input": { - "text": "Breaking news: scientists have discovered a new species of deep-sea fish that produces its own light using bioluminescence.", - "voice": "shimmer", - "response_format": "mp3", - "speed": 1 - }, - "output": { - "audio": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/openai__tts-1-hd/shimmer-voice.mp3" - }, - "raw_response": { - "state": "Completed", - "result": { - "audio": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/openai__tts-1-hd/shimmer-voice.mp3" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'openai/tts-1-hd',\n {\n text: 'Breaking news: scientists have discovered a new species of deep-sea fish that produces its own light using bioluminescence.',\n voice: 'shimmer',\n response_format: 'mp3',\n speed: 1,\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - } - ], - "supports_async": false, - "external_info": "https://platform.openai.com/docs/guides/text-to-speech", - "terms": "https://openai.com/policies/", - "cover_image_url": "https://pub-26f1392c1b674324be6786695bd72257.r2.dev/openai/tts-1-hd.png", - "metadata": { - "Voices": "alloy, echo, fable, onyx, nova, shimmer" - }, - "created_at": "2026-04-13 16:45:25", - "default_example": null, - "code_snippets": [], - "zdr": false, - "zdr_comment": null, - "schema": { - "input": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "text": { - "description": "The text to generate audio for. Maximum length is 4096 characters.", - "type": "string", - "maxLength": 4096 - }, - "voice": { - "description": "The voice to use when generating the audio. Defaults to alloy.", - "default": "alloy", - "type": "string", - "enum": [ - "alloy", - "echo", - "fable", - "onyx", - "nova", - "shimmer" - ] - }, - "response_format": { - "description": "The output format for the audio. Supported formats are mp3, opus, wav, aac and flac.", - "default": "mp3", - "type": "string", - "enum": [ - "mp3", - "opus", - "wav", - "aac", - "flac" - ] - }, - "speed": { - "description": "The speed of the generated audio. Select a value from 0.25 to 4.0. 1.0 is the default.", - "default": 1, - "type": "number", - "minimum": 0.25, - "maximum": 4 - } - }, - "required": [ - "text", - "voice", - "response_format", - "speed" - ], - "additionalProperties": false - }, - "output": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "audio": { - "description": "URL to the generated audio file", - "type": "string" - } - }, - "required": [ - "audio" - ], - "additionalProperties": false - } - } -} diff --git a/src/content/catalog-models/openai-tts-1.json b/src/content/catalog-models/openai-tts-1.json deleted file mode 100644 index 7bb9cb341d969c4..000000000000000 --- a/src/content/catalog-models/openai-tts-1.json +++ /dev/null @@ -1,239 +0,0 @@ -{ - "model_id": "openai/tts-1", - "provider_id": "openai", - "name": "TTS-1", - "description": "OpenAI's text-to-speech model optimized for real-time use with low latency.", - "task": "Text-to-Speech", - "tags": [ - "TTS", - "Speech Synthesis" - ], - "context_length": null, - "max_output_tokens": null, - "schema_version": "1.0.0", - "examples": [ - { - "name": "Simple Speech", - "description": "Generate speech with default voice and settings", - "input": { - "text": "Hello! Welcome to Cloudflare AI Gateway. Let me show you what we can do.", - "voice": "alloy", - "response_format": "mp3", - "speed": 1 - }, - "output": { - "audio": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/openai__tts-1/simple-speech.mp3" - }, - "raw_response": { - "state": "Completed", - "result": { - "audio": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/openai__tts-1/simple-speech.mp3" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'openai/tts-1',\n {\n text: 'Hello! Welcome to Cloudflare AI Gateway. Let me show you what we can do.',\n voice: 'alloy',\n response_format: 'mp3',\n speed: 1,\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Different Voice", - "description": "Use the Nova voice for a different tone", - "input": { - "text": "The weather today is sunny with a high of 72 degrees. Perfect for a walk in the park.", - "voice": "nova", - "response_format": "mp3", - "speed": 1 - }, - "output": { - "audio": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/openai__tts-1/different-voice.mp3" - }, - "raw_response": { - "state": "Completed", - "result": { - "audio": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/openai__tts-1/different-voice.mp3" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'openai/tts-1',\n {\n text: 'The weather today is sunny with a high of 72 degrees. Perfect for a walk in the park.',\n voice: 'nova',\n response_format: 'mp3',\n speed: 1,\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Narration", - "description": "Slower narration style with the Onyx voice", - "input": { - "text": "In the beginning, the universe was a singularity of infinite density. Then, in a fraction of a second, it expanded into everything we know today.", - "voice": "onyx", - "response_format": "mp3", - "speed": 0.85 - }, - "output": { - "audio": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/openai__tts-1/narration.mp3" - }, - "raw_response": { - "state": "Completed", - "result": { - "audio": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/openai__tts-1/narration.mp3" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'openai/tts-1',\n {\n text: 'In the beginning, the universe was a singularity of infinite density. Then, in a fraction of a second, it expanded into everything we know today.',\n voice: 'onyx',\n response_format: 'mp3',\n speed: 0.85,\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Echo Voice", - "description": "Use the Echo voice for a deeper tone", - "input": { - "text": "Welcome back to the podcast. Today we are going to talk about the future of artificial intelligence and its impact on creative work.", - "voice": "echo", - "response_format": "mp3", - "speed": 1 - }, - "output": { - "audio": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/openai__tts-1/echo-voice.mp3" - }, - "raw_response": { - "state": "Completed", - "result": { - "audio": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/openai__tts-1/echo-voice.mp3" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'openai/tts-1',\n {\n text: 'Welcome back to the podcast. Today we are going to talk about the future of artificial intelligence and its impact on creative work.',\n voice: 'echo',\n response_format: 'mp3',\n speed: 1,\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Fast Playback", - "description": "Speed up speech for quick listening", - "input": { - "text": "This is a fast-paced summary of the key findings from the quarterly report. Revenue is up fifteen percent, user growth exceeded expectations, and infrastructure costs remain stable.", - "voice": "shimmer", - "response_format": "mp3", - "speed": 1.5 - }, - "output": { - "audio": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/openai__tts-1/fast-playback.mp3" - }, - "raw_response": { - "state": "Completed", - "result": { - "audio": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/openai__tts-1/fast-playback.mp3" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'openai/tts-1',\n {\n text: 'This is a fast-paced summary of the key findings from the quarterly report. Revenue is up fifteen percent, user growth exceeded expectations, and infrastructure costs remain stable.',\n voice: 'shimmer',\n response_format: 'mp3',\n speed: 1.5,\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - } - ], - "supports_async": false, - "external_info": "https://platform.openai.com/docs/guides/text-to-speech", - "terms": "https://openai.com/policies/", - "cover_image_url": "https://pub-26f1392c1b674324be6786695bd72257.r2.dev/openai/tts-1.png", - "metadata": { - "Voices": "alloy, echo, fable, onyx, nova, shimmer" - }, - "created_at": "2026-04-13 16:45:25", - "default_example": null, - "code_snippets": [], - "zdr": false, - "zdr_comment": null, - "schema": { - "input": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "text": { - "description": "The text to generate audio for. Maximum length is 4096 characters.", - "type": "string", - "maxLength": 4096 - }, - "voice": { - "description": "The voice to use when generating the audio. Defaults to alloy.", - "default": "alloy", - "type": "string", - "enum": [ - "alloy", - "echo", - "fable", - "onyx", - "nova", - "shimmer" - ] - }, - "response_format": { - "description": "The output format for the audio. Supported formats are mp3, opus, wav, aac and flac.", - "default": "mp3", - "type": "string", - "enum": [ - "mp3", - "opus", - "wav", - "aac", - "flac" - ] - }, - "speed": { - "description": "The speed of the generated audio. Select a value from 0.25 to 4.0. 1.0 is the default.", - "default": 1, - "type": "number", - "minimum": 0.25, - "maximum": 4 - } - }, - "required": [ - "text", - "voice", - "response_format", - "speed" - ], - "additionalProperties": false - }, - "output": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "audio": { - "description": "URL to the generated audio file", - "type": "string" - } - }, - "required": [ - "audio" - ], - "additionalProperties": false - } - } -} diff --git a/src/content/catalog-models/pixverse-v5.6.json b/src/content/catalog-models/pixverse-v5.6.json deleted file mode 100644 index e8bca3f5ff9e556..000000000000000 --- a/src/content/catalog-models/pixverse-v5.6.json +++ /dev/null @@ -1,263 +0,0 @@ -{ - "model_id": "pixverse/v5.6", - "provider_id": "pixverse", - "name": "Pixverse v5.6", - "description": "Pixverse v5.6 is a video generation model supporting text-to-video and image-to-video with audio generation, customizable aspect ratios, and up to 1080p output.", - "task": "Text-to-Video", - "tags": [ - "Video Generation", - "Image-to-Video", - "Audio" - ], - "context_length": null, - "max_output_tokens": null, - "schema_version": "1.0.0", - "examples": [ - { - "name": "Simple Video", - "description": "Basic text-to-video with default settings", - "input": { - "prompt": "A golden retriever running through a field of sunflowers on a sunny day", - "duration": 5, - "aspect_ratio": "16:9", - "quality": "720p", - "generate_audio": true - }, - "output": { - "video": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/pixverse__v5.6/simple-video.mp4" - }, - "raw_response": { - "state": "Completed", - "result": { - "video": "https://media.pixverse.ai/pixverse%2Fmp4%2Fmedia%2Fweb%2Fori%2F83ca9c7f-6387-4a2c-8d92-bb90a3d519e7_seed1453814635.mp4" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'pixverse/v5.6',\n {\n prompt:\n 'A golden retriever running through a field of sunflowers on a sunny day',\n duration: 5,\n aspect_ratio: '16:9',\n quality: '720p',\n generate_audio: true,\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Cinematic Scene with Audio", - "description": "Dramatic cinematic video with audio generation", - "input": { - "prompt": "A dramatic aerial shot flying over misty mountain peaks at sunrise, cinematic lighting with volumetric fog", - "duration": 8, - "aspect_ratio": "16:9", - "quality": "720p", - "generate_audio": true - }, - "output": { - "video": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/pixverse__v5.6/cinematic-scene-with-audio.mp4" - }, - "raw_response": { - "state": "Completed", - "result": { - "video": "https://media.pixverse.ai/pixverse%2Fmp4%2Fmedia%2Fweb%2Fori%2F77e1e5bd-4be9-4b7b-961a-36328e90d7e0_seed735995758.mp4" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'pixverse/v5.6',\n {\n prompt:\n 'A dramatic aerial shot flying over misty mountain peaks at sunrise, cinematic lighting with volumetric fog',\n duration: 8,\n aspect_ratio: '16:9',\n quality: '720p',\n generate_audio: true,\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Portrait Video", - "description": "Vertical video for social media", - "input": { - "prompt": "A barista pouring latte art in a cozy coffee shop, close-up with shallow depth of field", - "duration": 5, - "aspect_ratio": "9:16", - "quality": "540p", - "generate_audio": true - }, - "output": { - "video": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/pixverse__v5.6/portrait-video.mp4" - }, - "raw_response": { - "state": "Completed", - "result": { - "video": "https://media.pixverse.ai/pixverse%2Fmp4%2Fmedia%2Fweb%2Fori%2Fa95971bd-798d-431e-8c78-8062b839742c_seed1048220235.mp4" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'pixverse/v5.6',\n {\n prompt:\n 'A barista pouring latte art in a cozy coffee shop, close-up with shallow depth of field',\n duration: 5,\n aspect_ratio: '9:16',\n quality: '540p',\n generate_audio: true,\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "High Quality Video", - "description": "High quality 1080p video with custom seed", - "input": { - "prompt": "Abstract ink drops spreading through water, vivid colors mixing in slow motion", - "negative_prompt": "blurry, low quality", - "duration": 5, - "aspect_ratio": "1:1", - "quality": "1080p", - "seed": 12345, - "generate_audio": true - }, - "output": { - "video": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/pixverse__v5.6/high-quality-video.mp4" - }, - "raw_response": { - "state": "Completed", - "result": { - "video": "https://media.pixverse.ai/pixverse%2Fmp4%2Fmedia%2Fweb%2Fori%2F557c18df-6c50-409c-a5e5-291bb2086d3f_seed12345.mp4" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'pixverse/v5.6',\n {\n prompt:\n 'Abstract ink drops spreading through water, vivid colors mixing in slow motion',\n negative_prompt: 'blurry, low quality',\n duration: 5,\n aspect_ratio: '1:1',\n quality: '1080p',\n seed: 12345,\n generate_audio: true,\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - } - ], - "supports_async": false, - "external_info": "https://pixverse.ai/", - "terms": "https://pixverse.ai/terms", - "cover_image_url": "https://pub-26f1392c1b674324be6786695bd72257.r2.dev/pixverse/v5.6.png", - "metadata": { - "Max Duration": "10 seconds", - "Resolutions": "360p, 540p, 720p, 1080p", - "Aspect Ratios": "16:9, 4:3, 1:1, 3:4, 9:16, 2:3, 3:2, 21:9", - "Audio Generation": "Yes", - "Image-to-Video": "Yes" - }, - "created_at": "2026-04-15 22:29:12", - "default_example": null, - "code_snippets": [], - "zdr": false, - "zdr_comment": null, - "schema": { - "input": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "prompt": { - "description": "Text prompt describing the video to generate", - "type": "string", - "maxLength": 2048 - }, - "negative_prompt": { - "description": "Negative text prompt", - "type": "string", - "maxLength": 2048 - }, - "image_input": { - "description": "Base64-encoded reference image for image-to-video generation (data:image/...;base64,...). The image will be uploaded to Pixverse automatically.", - "type": "string" - }, - "duration": { - "description": "Video duration in seconds", - "default": 5, - "anyOf": [ - { - "type": "number", - "const": 5 - }, - { - "type": "number", - "const": 8 - }, - { - "type": "number", - "const": 10 - } - ] - }, - "aspect_ratio": { - "description": "Video aspect ratio", - "default": "16:9", - "type": "string", - "enum": [ - "16:9", - "4:3", - "1:1", - "3:4", - "9:16", - "2:3", - "3:2", - "21:9" - ] - }, - "quality": { - "description": "Video quality", - "default": "720p", - "type": "string", - "enum": [ - "360p", - "540p", - "720p", - "1080p" - ] - }, - "seed": { - "description": "Random seed for reproducibility", - "type": "integer", - "minimum": 0, - "maximum": 2147483647 - }, - "motion_mode": { - "description": "Motion mode (fast only available when duration=5; 1080p does not support fast)", - "type": "string", - "enum": [ - "normal", - "fast" - ] - }, - "generate_audio": { - "description": "Whether to generate audio with the video", - "default": true, - "type": "boolean" - } - }, - "required": [ - "prompt", - "duration", - "aspect_ratio", - "quality", - "generate_audio" - ], - "additionalProperties": false - }, - "output": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "video": { - "description": "URL to the generated video", - "type": "string", - "format": "uri" - } - }, - "required": [ - "video" - ], - "additionalProperties": false - } - } -} diff --git a/src/content/catalog-models/pixverse-v6.json b/src/content/catalog-models/pixverse-v6.json deleted file mode 100644 index 9f1356a0ee61c1f..000000000000000 --- a/src/content/catalog-models/pixverse-v6.json +++ /dev/null @@ -1,244 +0,0 @@ -{ - "model_id": "pixverse/v6", - "provider_id": "pixverse", - "name": "Pixverse v6", - "description": "Pixverse v6 is the latest Pixverse video model with support for up to 15-second videos, customizable duration from 1 to 15 seconds, and audio generation.", - "task": "Text-to-Video", - "tags": [ - "Video Generation", - "Image-to-Video", - "Audio", - "Long Form" - ], - "context_length": null, - "max_output_tokens": null, - "schema_version": "1.0.0", - "examples": [ - { - "name": "Simple Video", - "description": "Basic text-to-video with default settings", - "input": { - "prompt": "A golden retriever running through a field of sunflowers on a sunny day", - "duration": 5, - "aspect_ratio": "16:9", - "quality": "720p", - "generate_audio": true - }, - "output": { - "video": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/pixverse__v6/simple-video.mp4" - }, - "raw_response": { - "state": "Completed", - "result": { - "video": "https://media.pixverse.ai/pixverse%2Fmp4%2Fmedia%2Fweb%2Fori%2Fda2a0d44-a700-4c6b-a36b-fff6951fd1d4_seed1150795460.mp4" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'pixverse/v6',\n {\n prompt:\n 'A golden retriever running through a field of sunflowers on a sunny day',\n duration: 5,\n aspect_ratio: '16:9',\n quality: '720p',\n generate_audio: true,\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Long Duration Video", - "description": "Extended 15-second video with audio (v6 supports 1-15 seconds)", - "input": { - "prompt": "A time-lapse of a bustling city street from dawn to dusk, showing the flow of people and vehicles", - "duration": 15, - "aspect_ratio": "16:9", - "quality": "720p", - "generate_audio": true - }, - "output": { - "video": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/pixverse__v6/long-duration-video.mp4" - }, - "raw_response": { - "state": "Completed", - "result": { - "video": "https://media.pixverse.ai/pixverse%2Fmp4%2Fmedia%2Fweb%2Fori%2F46e3adfb-a95f-4c03-bdad-a6d7131a98b8_seed61570270.mp4" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'pixverse/v6',\n {\n prompt:\n 'A time-lapse of a bustling city street from dawn to dusk, showing the flow of people and vehicles',\n duration: 15,\n aspect_ratio: '16:9',\n quality: '720p',\n generate_audio: true,\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Ultra-wide Cinematic", - "description": "Cinematic 21:9 aspect ratio video", - "input": { - "prompt": "A dramatic aerial shot flying over misty mountain peaks at sunrise, cinematic lighting with volumetric fog", - "duration": 10, - "aspect_ratio": "21:9", - "quality": "720p", - "generate_audio": true - }, - "output": { - "video": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/pixverse__v6/ultra-wide-cinematic.mp4" - }, - "raw_response": { - "state": "Completed", - "result": { - "video": "https://media.pixverse.ai/pixverse%2Fmp4%2Fmedia%2Fweb%2Fori%2F54327d38-e03a-44de-9a21-2052356779e5_seed286185598.mp4" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'pixverse/v6',\n {\n prompt:\n 'A dramatic aerial shot flying over misty mountain peaks at sunrise, cinematic lighting with volumetric fog',\n duration: 10,\n aspect_ratio: '21:9',\n quality: '720p',\n generate_audio: true,\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Silent Video", - "description": "Video without audio generation", - "input": { - "prompt": "Abstract ink drops spreading through water, vivid colors mixing in slow motion", - "negative_prompt": "blurry, low quality", - "duration": 3, - "aspect_ratio": "1:1", - "quality": "540p", - "generate_audio": false - }, - "output": { - "video": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/pixverse__v6/silent-video.mp4" - }, - "raw_response": { - "state": "Completed", - "result": { - "video": "https://media.pixverse.ai/pixverse%2Fmp4%2Fmedia%2Fweb%2Fori%2F06c27c41-cadd-44c5-b418-a78b96555479_seed1048443720.mp4" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'pixverse/v6',\n {\n prompt:\n 'Abstract ink drops spreading through water, vivid colors mixing in slow motion',\n negative_prompt: 'blurry, low quality',\n duration: 3,\n aspect_ratio: '1:1',\n quality: '540p',\n generate_audio: false,\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - } - ], - "supports_async": false, - "external_info": "https://pixverse.ai/", - "terms": "https://pixverse.ai/terms", - "cover_image_url": "https://pub-26f1392c1b674324be6786695bd72257.r2.dev/pixverse/v6.png", - "metadata": { - "Max Duration": "15 seconds", - "Resolutions": "360p, 540p, 720p, 1080p", - "Aspect Ratios": "16:9, 4:3, 1:1, 3:4, 9:16, 2:3, 3:2, 21:9", - "Audio Generation": "Yes", - "Image-to-Video": "Yes" - }, - "created_at": "2026-04-15 22:29:14", - "default_example": null, - "code_snippets": [], - "zdr": false, - "zdr_comment": null, - "schema": { - "input": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "prompt": { - "description": "Text prompt describing the video to generate", - "type": "string", - "maxLength": 2048 - }, - "negative_prompt": { - "description": "Negative text prompt", - "type": "string", - "maxLength": 2048 - }, - "image_input": { - "description": "Base64-encoded reference image for image-to-video generation (data:image/...;base64,...). The image will be uploaded to Pixverse automatically.", - "type": "string" - }, - "duration": { - "description": "Video duration in seconds (1 to 15)", - "default": 5, - "type": "integer", - "minimum": 1, - "maximum": 15 - }, - "aspect_ratio": { - "description": "Video aspect ratio", - "default": "16:9", - "type": "string", - "enum": [ - "16:9", - "4:3", - "1:1", - "3:4", - "9:16", - "2:3", - "3:2", - "21:9" - ] - }, - "quality": { - "description": "Video quality", - "default": "720p", - "type": "string", - "enum": [ - "360p", - "540p", - "720p", - "1080p" - ] - }, - "seed": { - "description": "Random seed for reproducibility", - "type": "integer", - "minimum": 0, - "maximum": 2147483647 - }, - "generate_audio": { - "description": "Whether to generate audio with the video", - "default": true, - "type": "boolean" - } - }, - "required": [ - "prompt", - "duration", - "aspect_ratio", - "quality", - "generate_audio" - ], - "additionalProperties": false - }, - "output": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "video": { - "description": "URL to the generated video", - "type": "string", - "format": "uri" - } - }, - "required": [ - "video" - ], - "additionalProperties": false - } - } -} diff --git a/src/content/catalog-models/recraft-recraftv4-pro-vector.json b/src/content/catalog-models/recraft-recraftv4-pro-vector.json deleted file mode 100644 index a09a63f5dd56099..000000000000000 --- a/src/content/catalog-models/recraft-recraftv4-pro-vector.json +++ /dev/null @@ -1,248 +0,0 @@ -{ - "model_id": "recraft/recraftv4-pro-vector", - "provider_id": "recraft", - "name": "Recraft V4 Pro SVG", - "description": "Generate detailed, production-ready SVG vector graphics from text prompts with fine geometry, scalable to any size for print and design work.", - "task": "Text-to-Image", - "tags": [ - "Image Generation", - "SVG", - "Vector", - "Design", - "High Resolution" - ], - "context_length": null, - "max_output_tokens": null, - "schema_version": "1.0.0", - "examples": [ - { - "name": "Logo Design", - "description": "Generate a scalable vector logo", - "input": { - "prompt": "A modern minimalist logo for a cloud computing company, clean geometric shapes" - }, - "output": { - "image": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/recraft__recraftv4-pro-vector/logo-design.jpg" - }, - "raw_response": { - "state": "Completed", - "result": { - "image": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/recraft__recraftv4-pro-vector/logo-design.jpg" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'recraft/recraftv4-pro-vector',\n {\n prompt:\n 'A modern minimalist logo for a cloud computing company, clean geometric shapes',\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Icon Set", - "description": "Generate a vector icon", - "input": { - "prompt": "A flat design icon of a rocket launching, suitable for a mobile app", - "size": "2048x2048" - }, - "output": { - "image": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/recraft__recraftv4-pro-vector/icon-set.jpg" - }, - "raw_response": { - "state": "Completed", - "result": { - "image": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/recraft__recraftv4-pro-vector/icon-set.jpg" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'recraft/recraftv4-pro-vector',\n {\n prompt:\n 'A flat design icon of a rocket launching, suitable for a mobile app',\n size: '2048x2048',\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Print-Ready Vector", - "description": "High-resolution vector for large-format print", - "input": { - "prompt": "An intricate mandala pattern with floral and geometric elements, highly detailed and symmetrical", - "size": "2048x2048" - }, - "output": { - "image": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/recraft__recraftv4-pro-vector/print-ready-vector.jpg" - }, - "raw_response": { - "state": "Completed", - "result": { - "image": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/recraft__recraftv4-pro-vector/print-ready-vector.jpg" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'recraft/recraftv4-pro-vector',\n {\n prompt:\n 'An intricate mandala pattern with floral and geometric elements, highly detailed and symmetrical',\n size: '2048x2048',\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Brand Illustration", - "description": "Vector illustration with brand colors", - "input": { - "prompt": "A vector illustration of a cityscape skyline at sunset with clean lines and flat colors", - "controls": { - "colors": [ - { - "rgb": [ - 255, - 87, - 51 - ] - }, - { - "rgb": [ - 41, - 50, - 65 - ] - }, - { - "rgb": [ - 239, - 239, - 239 - ] - } - ] - } - }, - "output": { - "image": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/recraft__recraftv4-pro-vector/brand-illustration.jpg" - }, - "raw_response": { - "state": "Completed", - "result": { - "image": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/recraft__recraftv4-pro-vector/brand-illustration.jpg" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'recraft/recraftv4-pro-vector',\n {\n prompt:\n 'A vector illustration of a cityscape skyline at sunset with clean lines and flat colors',\n controls: {\n colors: [\n {\n rgb: [255, 87, 51],\n },\n {\n rgb: [41, 50, 65],\n },\n {\n rgb: [239, 239, 239],\n },\n ],\n },\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - } - ], - "supports_async": false, - "external_info": "https://www.recraft.ai/", - "terms": "https://www.recraft.ai/terms", - "cover_image_url": "https://pub-26f1392c1b674324be6786695bd72257.r2.dev/recraft/recraftv4-pro-vector.png", - "metadata": { - "Output Format": "SVG", - "Resolution": "2048px+" - }, - "created_at": "2026-04-13 16:46:33", - "default_example": null, - "code_snippets": [], - "zdr": false, - "zdr_comment": null, - "schema": { - "input": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "prompt": { - "type": "string" - }, - "size": { - "type": "string" - }, - "style": { - "type": "string" - }, - "substyle": { - "type": "string" - }, - "controls": { - "type": "object", - "properties": { - "colors": { - "maxItems": 5, - "type": "array", - "items": { - "type": "object", - "properties": { - "rgb": { - "minItems": 3, - "maxItems": 3, - "type": "array", - "items": { - "type": "integer", - "minimum": 0, - "maximum": 255 - } - } - }, - "required": [ - "rgb" - ], - "additionalProperties": false - } - }, - "background_color": { - "type": "object", - "properties": { - "rgb": { - "minItems": 3, - "maxItems": 3, - "type": "array", - "items": { - "type": "integer", - "minimum": 0, - "maximum": 255 - } - } - }, - "required": [ - "rgb" - ], - "additionalProperties": false - } - }, - "additionalProperties": false - } - }, - "required": [ - "prompt" - ], - "additionalProperties": false - }, - "output": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "image": { - "type": "string" - } - }, - "required": [ - "image" - ], - "additionalProperties": false - } - } -} diff --git a/src/content/catalog-models/recraft-recraftv4-pro.json b/src/content/catalog-models/recraft-recraftv4-pro.json deleted file mode 100644 index 20b66902664fc8c..000000000000000 --- a/src/content/catalog-models/recraft-recraftv4-pro.json +++ /dev/null @@ -1,247 +0,0 @@ -{ - "model_id": "recraft/recraftv4-pro", - "provider_id": "recraft", - "name": "Recraft V4 Pro", - "description": "Recraft V4 Pro generates high-resolution, art-directed images at 2048px+ with strong composition, text rendering, and design taste. Built for print and production work.", - "task": "Text-to-Image", - "tags": [ - "Image Generation", - "Design", - "Text Rendering", - "High Resolution" - ], - "context_length": null, - "max_output_tokens": null, - "schema_version": "1.0.0", - "examples": [ - { - "name": "Print-Ready Illustration", - "description": "High-resolution illustration for print", - "input": { - "prompt": "A detailed vintage botanical illustration of a rose with leaves and thorns, scientific illustration style" - }, - "output": { - "image": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/recraft__recraftv4-pro/print-ready-illustration.png" - }, - "raw_response": { - "state": "Completed", - "result": { - "image": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/recraft__recraftv4-pro/print-ready-illustration.png" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'recraft/recraftv4-pro',\n {\n prompt:\n 'A detailed vintage botanical illustration of a rose with leaves and thorns, scientific illustration style',\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Large Format Art", - "description": "Large canvas digital art", - "input": { - "prompt": "A sweeping fantasy landscape with floating islands, waterfalls cascading into clouds, and ancient stone bridges connecting the islands", - "size": "2048x2048" - }, - "output": { - "image": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/recraft__recraftv4-pro/large-format-art.png" - }, - "raw_response": { - "state": "Completed", - "result": { - "image": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/recraft__recraftv4-pro/large-format-art.png" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'recraft/recraftv4-pro',\n {\n prompt:\n 'A sweeping fantasy landscape with floating islands, waterfalls cascading into clouds, and ancient stone bridges connecting the islands',\n size: '2048x2048',\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Brand Asset", - "description": "Professional brand asset with controlled colors", - "input": { - "prompt": "A modern, clean illustration of a shield with a checkmark inside, representing security and trust", - "size": "2048x2048", - "controls": { - "colors": [ - { - "rgb": [ - 46, - 117, - 182 - ] - }, - { - "rgb": [ - 255, - 255, - 255 - ] - } - ], - "background_color": { - "rgb": [ - 15, - 23, - 42 - ] - } - } - }, - "output": { - "image": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/recraft__recraftv4-pro/brand-asset.png" - }, - "raw_response": { - "state": "Completed", - "result": { - "image": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/recraft__recraftv4-pro/brand-asset.png" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'recraft/recraftv4-pro',\n {\n prompt:\n 'A modern, clean illustration of a shield with a checkmark inside, representing security and trust',\n size: '2048x2048',\n controls: {\n colors: [\n {\n rgb: [46, 117, 182],\n },\n {\n rgb: [255, 255, 255],\n },\n ],\n background_color: {\n rgb: [15, 23, 42],\n },\n },\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Editorial Illustration", - "description": "Magazine-quality editorial illustration", - "input": { - "prompt": "A conceptual illustration of artificial intelligence as a tree with circuit-board branches and glowing data leaves" - }, - "output": { - "image": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/recraft__recraftv4-pro/editorial-illustration.png" - }, - "raw_response": { - "state": "Completed", - "result": { - "image": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/recraft__recraftv4-pro/editorial-illustration.png" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'recraft/recraftv4-pro',\n {\n prompt:\n 'A conceptual illustration of artificial intelligence as a tree with circuit-board branches and glowing data leaves',\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - } - ], - "supports_async": false, - "external_info": "https://www.recraft.ai/", - "terms": "https://www.recraft.ai/terms", - "cover_image_url": "https://pub-26f1392c1b674324be6786695bd72257.r2.dev/recraft/recraftv4-pro.png", - "metadata": { - "Resolution": "2048px+", - "Text Rendering": "Yes" - }, - "created_at": "2026-04-13 16:46:31", - "default_example": null, - "code_snippets": [], - "zdr": false, - "zdr_comment": null, - "schema": { - "input": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "prompt": { - "type": "string" - }, - "size": { - "type": "string" - }, - "style": { - "type": "string" - }, - "substyle": { - "type": "string" - }, - "controls": { - "type": "object", - "properties": { - "colors": { - "maxItems": 5, - "type": "array", - "items": { - "type": "object", - "properties": { - "rgb": { - "minItems": 3, - "maxItems": 3, - "type": "array", - "items": { - "type": "integer", - "minimum": 0, - "maximum": 255 - } - } - }, - "required": [ - "rgb" - ], - "additionalProperties": false - } - }, - "background_color": { - "type": "object", - "properties": { - "rgb": { - "minItems": 3, - "maxItems": 3, - "type": "array", - "items": { - "type": "integer", - "minimum": 0, - "maximum": 255 - } - } - }, - "required": [ - "rgb" - ], - "additionalProperties": false - } - }, - "additionalProperties": false - } - }, - "required": [ - "prompt" - ], - "additionalProperties": false - }, - "output": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "image": { - "type": "string" - } - }, - "required": [ - "image" - ], - "additionalProperties": false - } - } -} diff --git a/src/content/catalog-models/recraft-recraftv4-vector.json b/src/content/catalog-models/recraft-recraftv4-vector.json deleted file mode 100644 index eb79e3d21cebff2..000000000000000 --- a/src/content/catalog-models/recraft-recraftv4-vector.json +++ /dev/null @@ -1,247 +0,0 @@ -{ - "model_id": "recraft/recraftv4-vector", - "provider_id": "recraft", - "name": "Recraft V4 SVG", - "description": "Generate production-ready SVG vector graphics from text prompts with clean geometry, structured layers, and editable paths.", - "task": "Text-to-Image", - "tags": [ - "Image Generation", - "SVG", - "Vector", - "Design" - ], - "context_length": null, - "max_output_tokens": null, - "schema_version": "1.0.0", - "examples": [ - { - "name": "Simple Icon", - "description": "Generate a basic vector icon", - "input": { - "prompt": "A simple flat icon of a coffee cup with steam rising" - }, - "output": { - "image": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/recraft__recraftv4-vector/simple-icon.jpg" - }, - "raw_response": { - "state": "Completed", - "result": { - "image": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/recraft__recraftv4-vector/simple-icon.jpg" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'recraft/recraftv4-vector',\n {\n prompt: 'A simple flat icon of a coffee cup with steam rising',\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "App Icon", - "description": "Mobile app icon in vector format", - "input": { - "prompt": "A colorful gradient app icon featuring a chat bubble with a sparkle effect", - "size": "1024x1024" - }, - "output": { - "image": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/recraft__recraftv4-vector/app-icon.jpg" - }, - "raw_response": { - "state": "Completed", - "result": { - "image": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/recraft__recraftv4-vector/app-icon.jpg" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'recraft/recraftv4-vector',\n {\n prompt:\n 'A colorful gradient app icon featuring a chat bubble with a sparkle effect',\n size: '1024x1024',\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Illustration", - "description": "Vector illustration for web use", - "input": { - "prompt": "A flat vector illustration of a person working at a desk with a computer, plants, and a window showing a city view", - "size": "1024x1024" - }, - "output": { - "image": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/recraft__recraftv4-vector/illustration.jpg" - }, - "raw_response": { - "state": "Completed", - "result": { - "image": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/recraft__recraftv4-vector/illustration.jpg" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'recraft/recraftv4-vector',\n {\n prompt:\n 'A flat vector illustration of a person working at a desk with a computer, plants, and a window showing a city view',\n size: '1024x1024',\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "With Brand Colors", - "description": "Vector with specific color palette", - "input": { - "prompt": "A badge or seal design with a star in the center, suitable for a certification mark", - "controls": { - "colors": [ - { - "rgb": [ - 0, - 119, - 182 - ] - }, - { - "rgb": [ - 255, - 209, - 102 - ] - } - ], - "background_color": { - "rgb": [ - 255, - 255, - 255 - ] - } - } - }, - "output": { - "image": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/recraft__recraftv4-vector/with-brand-colors.jpg" - }, - "raw_response": { - "state": "Completed", - "result": { - "image": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/recraft__recraftv4-vector/with-brand-colors.jpg" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'recraft/recraftv4-vector',\n {\n prompt:\n 'A badge or seal design with a star in the center, suitable for a certification mark',\n controls: {\n colors: [\n {\n rgb: [0, 119, 182],\n },\n {\n rgb: [255, 209, 102],\n },\n ],\n background_color: {\n rgb: [255, 255, 255],\n },\n },\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - } - ], - "supports_async": false, - "external_info": "https://www.recraft.ai/", - "terms": "https://www.recraft.ai/terms", - "cover_image_url": "https://pub-26f1392c1b674324be6786695bd72257.r2.dev/recraft/recraftv4-vector.png", - "metadata": { - "Output Format": "SVG", - "Resolution": "1024px" - }, - "created_at": "2026-04-13 16:46:32", - "default_example": null, - "code_snippets": [], - "zdr": false, - "zdr_comment": null, - "schema": { - "input": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "prompt": { - "type": "string" - }, - "size": { - "type": "string" - }, - "style": { - "type": "string" - }, - "substyle": { - "type": "string" - }, - "controls": { - "type": "object", - "properties": { - "colors": { - "maxItems": 5, - "type": "array", - "items": { - "type": "object", - "properties": { - "rgb": { - "minItems": 3, - "maxItems": 3, - "type": "array", - "items": { - "type": "integer", - "minimum": 0, - "maximum": 255 - } - } - }, - "required": [ - "rgb" - ], - "additionalProperties": false - } - }, - "background_color": { - "type": "object", - "properties": { - "rgb": { - "minItems": 3, - "maxItems": 3, - "type": "array", - "items": { - "type": "integer", - "minimum": 0, - "maximum": 255 - } - } - }, - "required": [ - "rgb" - ], - "additionalProperties": false - } - }, - "additionalProperties": false - } - }, - "required": [ - "prompt" - ], - "additionalProperties": false - }, - "output": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "image": { - "type": "string" - } - }, - "required": [ - "image" - ], - "additionalProperties": false - } - } -} diff --git a/src/content/catalog-models/recraft-recraftv4.json b/src/content/catalog-models/recraft-recraftv4.json deleted file mode 100644 index af257635aa68e25..000000000000000 --- a/src/content/catalog-models/recraft-recraftv4.json +++ /dev/null @@ -1,274 +0,0 @@ -{ - "model_id": "recraft/recraftv4", - "provider_id": "recraft", - "name": "Recraft V4", - "description": "Recraft V4 generates art-directed images with strong composition, accurate text rendering, and design taste built in. Fast and cost-efficient at standard resolution.", - "task": "Text-to-Image", - "tags": [ - "Image Generation", - "Design", - "Text Rendering" - ], - "context_length": null, - "max_output_tokens": null, - "schema_version": "1.0.0", - "examples": [ - { - "name": "Simple Generation", - "description": "Basic text-to-image with just a prompt", - "input": { - "prompt": "A minimalist logo of a mountain range with a sun rising behind it" - }, - "output": { - "image": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/recraft__recraftv4/simple-generation.png" - }, - "raw_response": { - "state": "Completed", - "result": { - "image": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/recraft__recraftv4/simple-generation.png" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'recraft/recraftv4',\n {\n prompt: 'A minimalist logo of a mountain range with a sun rising behind it',\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Scene Composition", - "description": "Generate a complex compositional scene", - "input": { - "prompt": "A cozy cabin in the woods surrounded by tall pine trees, smoke rising from the chimney" - }, - "output": { - "image": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/recraft__recraftv4/scene-composition.png" - }, - "raw_response": { - "state": "Completed", - "result": { - "image": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/recraft__recraftv4/scene-composition.png" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'recraft/recraftv4',\n {\n prompt:\n 'A cozy cabin in the woods surrounded by tall pine trees, smoke rising from the chimney',\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Custom Size", - "description": "Specify output dimensions", - "input": { - "prompt": "A flat illustration of a workspace with a laptop, coffee cup, and potted plant", - "size": "1024x1024" - }, - "output": { - "image": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/recraft__recraftv4/custom-size.png" - }, - "raw_response": { - "state": "Completed", - "result": { - "image": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/recraft__recraftv4/custom-size.png" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'recraft/recraftv4',\n {\n prompt:\n 'A flat illustration of a workspace with a laptop, coffee cup, and potted plant',\n size: '1024x1024',\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "With Color Controls", - "description": "Guide generation with specific brand colors", - "input": { - "prompt": "An abstract geometric pattern suitable for a tech company brand identity", - "controls": { - "colors": [ - { - "rgb": [ - 255, - 107, - 53 - ] - }, - { - "rgb": [ - 0, - 43, - 91 - ] - } - ] - } - }, - "output": { - "image": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/recraft__recraftv4/with-color-controls.png" - }, - "raw_response": { - "state": "Completed", - "result": { - "image": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/recraft__recraftv4/with-color-controls.png" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'recraft/recraftv4',\n {\n prompt:\n 'An abstract geometric pattern suitable for a tech company brand identity',\n controls: {\n colors: [\n {\n rgb: [255, 107, 53],\n },\n {\n rgb: [0, 43, 91],\n },\n ],\n },\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Background Color", - "description": "Set a specific background color", - "input": { - "prompt": "A clean icon of a lightning bolt", - "size": "1024x1024", - "controls": { - "background_color": { - "rgb": [ - 245, - 245, - 245 - ] - } - } - }, - "output": { - "image": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/recraft__recraftv4/background-color.png" - }, - "raw_response": { - "state": "Completed", - "result": { - "image": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/recraft__recraftv4/background-color.png" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'recraft/recraftv4',\n {\n prompt: 'A clean icon of a lightning bolt',\n size: '1024x1024',\n controls: {\n background_color: {\n rgb: [245, 245, 245],\n },\n },\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - } - ], - "supports_async": false, - "external_info": "https://www.recraft.ai/", - "terms": "https://www.recraft.ai/terms", - "cover_image_url": "https://pub-26f1392c1b674324be6786695bd72257.r2.dev/recraft/recraftv4.png", - "metadata": { - "Resolution": "1024px", - "Text Rendering": "Yes" - }, - "created_at": "2026-04-13 16:46:31", - "default_example": null, - "code_snippets": [], - "zdr": false, - "zdr_comment": null, - "schema": { - "input": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "prompt": { - "type": "string" - }, - "size": { - "type": "string" - }, - "style": { - "type": "string" - }, - "substyle": { - "type": "string" - }, - "controls": { - "type": "object", - "properties": { - "colors": { - "maxItems": 5, - "type": "array", - "items": { - "type": "object", - "properties": { - "rgb": { - "minItems": 3, - "maxItems": 3, - "type": "array", - "items": { - "type": "integer", - "minimum": 0, - "maximum": 255 - } - } - }, - "required": [ - "rgb" - ], - "additionalProperties": false - } - }, - "background_color": { - "type": "object", - "properties": { - "rgb": { - "minItems": 3, - "maxItems": 3, - "type": "array", - "items": { - "type": "integer", - "minimum": 0, - "maximum": 255 - } - } - }, - "required": [ - "rgb" - ], - "additionalProperties": false - } - }, - "additionalProperties": false - } - }, - "required": [ - "prompt" - ], - "additionalProperties": false - }, - "output": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "image": { - "type": "string" - } - }, - "required": [ - "image" - ], - "additionalProperties": false - } - } -} diff --git a/src/content/catalog-models/runwayml-gen-4.5.json b/src/content/catalog-models/runwayml-gen-4.5.json deleted file mode 100644 index 8022f3317fb602a..000000000000000 --- a/src/content/catalog-models/runwayml-gen-4.5.json +++ /dev/null @@ -1,312 +0,0 @@ -{ - "model_id": "runwayml/gen-4.5", - "provider_id": "runwayml", - "name": "RunwayML Gen-4.5", - "description": "RunwayML's video generation model supporting both text-to-video and image-to-video with customizable duration, aspect ratio, and content moderation controls.", - "task": "Text-to-Video", - "tags": [ - "Video Generation", - "Image-to-Video", - "Cinematic" - ], - "context_length": null, - "max_output_tokens": null, - "schema_version": "1.0.0", - "examples": [ - { - "name": "Simple Text-to-Video", - "description": "Basic text-to-video with default settings", - "input": { - "prompt": "A timelapse of the Eiffel Tower on a sunny day with clouds flying by", - "ratio": "1280:720", - "duration": 5 - }, - "output": { - "video": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/runwayml__gen-4.5/simple-text-to-video.mp4" - }, - "raw_response": { - "state": "Completed", - "result": { - "video": "https://dnznrvs05pmza.cloudfront.net/fd840364-360e-4903-8500-d5787fd8ab90.mp4" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'runwayml/gen-4.5',\n {\n prompt:\n 'A timelapse of the Eiffel Tower on a sunny day with clouds flying by',\n ratio: '1280:720',\n duration: 5,\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Portrait Video", - "description": "Vertical video for social media", - "input": { - "prompt": "A busy street in Tokyo at night with neon signs reflecting on wet pavement, rain falling", - "ratio": "720:1280", - "duration": 5 - }, - "output": { - "video": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/runwayml__gen-4.5/portrait-video.mp4" - }, - "raw_response": { - "state": "Completed", - "result": { - "video": "https://dnznrvs05pmza.cloudfront.net/44f43eac-8c12-4084-ace3-6395fa67c13e.mp4" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'runwayml/gen-4.5',\n {\n prompt:\n 'A busy street in Tokyo at night with neon signs reflecting on wet pavement, rain falling',\n ratio: '720:1280',\n duration: 5,\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Nature Close-up", - "description": "Close-up wildlife shot in 16:9", - "input": { - "prompt": "Close-up of a hummingbird feeding from a vibrant red flower, slow motion with soft bokeh background", - "ratio": "1280:720", - "duration": 5 - }, - "output": { - "video": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/runwayml__gen-4.5/nature-close-up.mp4" - }, - "raw_response": { - "state": "Completed", - "result": { - "video": "https://dnznrvs05pmza.cloudfront.net/e03781eb-2544-45ae-a9a8-6148d556bf2a.mp4" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'runwayml/gen-4.5',\n {\n prompt:\n 'Close-up of a hummingbird feeding from a vibrant red flower, slow motion with soft bokeh background',\n ratio: '1280:720',\n duration: 5,\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Cinematic Scene", - "description": "Longer duration cinematic video", - "input": { - "prompt": "Aerial drone shot flying through a misty forest at dawn, rays of sunlight breaking through the trees", - "ratio": "1280:720", - "duration": 10 - }, - "output": { - "video": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/runwayml__gen-4.5/cinematic-scene.mp4" - }, - "raw_response": { - "state": "Completed", - "result": { - "video": "https://dnznrvs05pmza.cloudfront.net/23ea177e-523d-45b4-9f8c-c4f8d7238ff0.mp4" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'runwayml/gen-4.5',\n {\n prompt:\n 'Aerial drone shot flying through a misty forest at dawn, rays of sunlight breaking through the trees',\n ratio: '1280:720',\n duration: 10,\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Image-to-Video", - "description": "Animate an existing image", - "input": { - "prompt": "Camera slowly pans across the scene, gentle wind blowing", - "image_input": "https://upload.wikimedia.org/wikipedia/commons/8/85/Tour_Eiffel_Wikimedia_Commons_(cropped).jpg", - "ratio": "1280:720", - "duration": 5 - }, - "output": { - "video": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/runwayml__gen-4.5/image-to-video.mp4" - }, - "raw_response": { - "state": "Completed", - "result": { - "video": "https://dnznrvs05pmza.cloudfront.net/ab424367-7431-4a0a-aa39-52604ff9150a.mp4" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'runwayml/gen-4.5',\n {\n prompt: 'Camera slowly pans across the scene, gentle wind blowing',\n image_input:\n 'https://upload.wikimedia.org/wikipedia/commons/8/85/Tour_Eiffel_Wikimedia_Commons_(cropped).jpg',\n ratio: '1280:720',\n duration: 5,\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Reproducible Generation", - "description": "Use seed for consistent results", - "input": { - "prompt": "A sailboat gliding across calm ocean waters at sunset", - "ratio": "1280:720", - "duration": 5, - "seed": 42 - }, - "output": { - "video": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/runwayml__gen-4.5/reproducible-generation.mp4" - }, - "raw_response": { - "state": "Completed", - "result": { - "video": "https://dnznrvs05pmza.cloudfront.net/0bdfbec7-0823-4529-bdb5-d37bb24adb0d.mp4" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'runwayml/gen-4.5',\n {\n prompt: 'A sailboat gliding across calm ocean waters at sunset',\n ratio: '1280:720',\n duration: 5,\n seed: 42,\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "With Content Moderation", - "description": "Adjust content moderation settings", - "input": { - "prompt": "A press conference with multiple speakers at podiums", - "ratio": "1280:720", - "duration": 5, - "content_moderation": { - "public_figure_threshold": "low" - } - }, - "output": { - "video": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/runwayml__gen-4.5/with-content-moderation.mp4" - }, - "raw_response": { - "state": "Completed", - "result": { - "video": "https://dnznrvs05pmza.cloudfront.net/75c4cb0d-20aa-4824-b1f3-32f33ab9269b.mp4" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'runwayml/gen-4.5',\n {\n prompt: 'A press conference with multiple speakers at podiums',\n ratio: '1280:720',\n duration: 5,\n content_moderation: {\n public_figure_threshold: 'low',\n },\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - } - ], - "supports_async": false, - "external_info": "https://runwayml.com/", - "terms": "https://runwayml.com/terms-of-use", - "cover_image_url": "https://pub-26f1392c1b674324be6786695bd72257.r2.dev/runwayml/gen-4.5.png", - "metadata": { - "Max Duration": "10 seconds", - "Resolutions": "1280:720, 720:1280, 1104:832, 832:1104, 960:960, 1584:672", - "Image-to-Video": "Yes" - }, - "created_at": "2026-04-14 18:41:45", - "default_example": null, - "code_snippets": [], - "zdr": false, - "zdr_comment": null, - "schema": { - "input": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "prompt": { - "description": "Text prompt describing what should appear in the video", - "type": "string", - "minLength": 1, - "maxLength": 1000 - }, - "image_input": { - "description": "HTTPS URL, Runway URI, or data URI containing an image for image-to-video", - "type": "string" - }, - "ratio": { - "description": "Resolution/aspect ratio of the output video", - "default": "1280:720", - "type": "string", - "enum": [ - "1280:720", - "720:1280", - "1104:832", - "960:960", - "832:1104", - "1584:672" - ] - }, - "duration": { - "description": "Video duration in seconds", - "default": 5, - "type": "integer", - "minimum": 2, - "maximum": 10 - }, - "seed": { - "description": "Random seed for reproducible results", - "type": "integer", - "minimum": 0, - "maximum": 4294967295 - }, - "content_moderation": { - "description": "Content moderation settings", - "type": "object", - "properties": { - "public_figure_threshold": { - "description": "Content moderation strictness for public figures", - "type": "string", - "enum": [ - "auto", - "low" - ] - } - }, - "additionalProperties": false - } - }, - "required": [ - "prompt", - "ratio", - "duration" - ], - "additionalProperties": false - }, - "output": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "video": { - "description": "URL to the generated video", - "type": "string", - "format": "uri" - } - }, - "required": [ - "video" - ], - "additionalProperties": false - } - } -} diff --git a/src/content/catalog-models/vidu-q3-pro.json b/src/content/catalog-models/vidu-q3-pro.json deleted file mode 100644 index 53454a90f185916..000000000000000 --- a/src/content/catalog-models/vidu-q3-pro.json +++ /dev/null @@ -1,221 +0,0 @@ -{ - "model_id": "vidu/q3-pro", - "provider_id": "vidu", - "name": "Vidu Q3 Pro", - "description": "Vidu Q3 Pro is a high-quality video generation model supporting text-to-video, image-to-video, and start/end-frame-to-video workflows with audio and up to 16-second clips.", - "task": "Text-to-Video", - "tags": [ - "Video Generation", - "Image-to-Video", - "Audio" - ], - "context_length": null, - "max_output_tokens": null, - "schema_version": "1.0.0", - "examples": [ - { - "name": "Simple Text-to-Video", - "description": "Basic text-to-video with just a prompt", - "input": { - "prompt": "A golden retriever running through a sunlit meadow in slow motion", - "duration": 5, - "resolution": "720p" - }, - "output": { - "video": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/vidu__q3-pro/simple-text-to-video.mp4" - }, - "raw_response": { - "state": "Completed", - "result": { - "video": "https://video.cf.vidu.com/infer_64/tasks/26/0417/05/942597991691198464/creation-01/video.mp4" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'vidu/q3-pro',\n {\n prompt: 'A golden retriever running through a sunlit meadow in slow motion',\n duration: 5,\n resolution: '720p',\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Portrait Aspect Ratio", - "description": "Vertical video for social media", - "input": { - "prompt": "A busy street in Tokyo at night with neon signs reflecting on wet pavement, rain falling", - "duration": 5, - "resolution": "720p", - "aspect_ratio": "9:16" - }, - "output": { - "video": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/vidu__q3-pro/portrait-aspect-ratio.mp4" - }, - "raw_response": { - "state": "Completed", - "result": { - "video": "https://video.cf.vidu.com/infer_88/tasks/26/0417/05/942598607041753088/creation-01/video.mp4" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'vidu/q3-pro',\n {\n prompt:\n 'A busy street in Tokyo at night with neon signs reflecting on wet pavement, rain falling',\n duration: 5,\n resolution: '720p',\n aspect_ratio: '9:16',\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Silent Video", - "description": "Generate video without audio", - "input": { - "prompt": "Abstract paint swirls slowly mixing in water, vivid blues and golds", - "duration": 8, - "resolution": "720p", - "audio": false - }, - "output": { - "video": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/vidu__q3-pro/silent-video.mp4" - }, - "raw_response": { - "state": "Completed", - "result": { - "video": "https://video.cf.vidu.com/infer_76/tasks/26/0417/05/942599305355595776/creation-01/final_video.mp4" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'vidu/q3-pro',\n {\n prompt:\n 'Abstract paint swirls slowly mixing in water, vivid blues and golds',\n duration: 8,\n resolution: '720p',\n audio: false,\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Square Format", - "description": "Square video for product demos or social posts", - "input": { - "prompt": "A sleek wireless headphone rotating on a pedestal with soft studio lighting and a white background", - "duration": 5, - "resolution": "720p", - "aspect_ratio": "1:1" - }, - "output": { - "video": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/vidu__q3-pro/square-format.mp4" - }, - "raw_response": { - "state": "Completed", - "result": { - "video": "https://video.cf.vidu.com/infer_40/tasks/26/0417/05/942599364482723840/creation-01/video.mp4" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'vidu/q3-pro',\n {\n prompt:\n 'A sleek wireless headphone rotating on a pedestal with soft studio lighting and a white background',\n duration: 5,\n resolution: '720p',\n aspect_ratio: '1:1',\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - } - ], - "supports_async": false, - "external_info": "https://www.vidu.com/", - "terms": "https://www.vidu.com/terms", - "cover_image_url": "https://pub-26f1392c1b674324be6786695bd72257.r2.dev/vidu/q3-pro.png", - "metadata": { - "Max Duration": "16 seconds", - "Resolutions": "540p, 720p, 1080p", - "Aspect Ratios": "16:9, 9:16, 3:4, 4:3, 1:1", - "Audio Generation": "Yes", - "Image-to-Video": "Yes" - }, - "created_at": "2026-04-15 01:37:32", - "default_example": null, - "code_snippets": [], - "zdr": false, - "zdr_comment": null, - "schema": { - "input": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "prompt": { - "description": "Text prompt describing what should appear in the video", - "type": "string", - "maxLength": 5000 - }, - "start_image": { - "description": "Start image for video generation. Use alone for image-to-video, or with end_image for start/end-to-video. Accepts public URL or Base64 data URI (data:image/png;base64,...)", - "type": "string" - }, - "end_image": { - "description": "End image for start/end-to-video generation. Must be used together with start_image. Accepts public URL or Base64 data URI (data:image/png;base64,...)", - "type": "string" - }, - "duration": { - "description": "Video duration in seconds (1-16)", - "default": 5, - "type": "integer", - "minimum": 1, - "maximum": 16 - }, - "resolution": { - "description": "Video resolution", - "default": "720p", - "type": "string", - "enum": [ - "540p", - "720p", - "1080p" - ] - }, - "audio": { - "description": "Enable audio-video synchronization. Default: true for Q3 models. When false, outputs silent video", - "type": "boolean" - }, - "aspect_ratio": { - "description": "Video aspect ratio (text-to-video only). Default: 16:9", - "type": "string", - "enum": [ - "16:9", - "9:16", - "3:4", - "4:3", - "1:1" - ] - } - }, - "required": [ - "duration", - "resolution" - ], - "additionalProperties": false - }, - "output": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "video": { - "description": "URL to the generated video", - "type": "string", - "format": "uri" - } - }, - "required": [ - "video" - ], - "additionalProperties": false - } - } -} diff --git a/src/content/catalog-models/vidu-q3-turbo.json b/src/content/catalog-models/vidu-q3-turbo.json deleted file mode 100644 index 15988e592ab6326..000000000000000 --- a/src/content/catalog-models/vidu-q3-turbo.json +++ /dev/null @@ -1,248 +0,0 @@ -{ - "model_id": "vidu/q3-turbo", - "provider_id": "vidu", - "name": "Vidu Q3 Turbo", - "description": "Vidu Q3 Turbo is a faster version of Vidu Q3 optimized for lower latency video generation while maintaining audio support and up to 16-second clips.", - "task": "Text-to-Video", - "tags": [ - "Video Generation", - "Image-to-Video", - "Audio", - "Fast" - ], - "context_length": null, - "max_output_tokens": null, - "schema_version": "1.0.0", - "examples": [ - { - "name": "Simple Text-to-Video", - "description": "Basic text-to-video with just a prompt", - "input": { - "prompt": "A cat lazily stretching on a sunlit windowsill", - "duration": 5, - "resolution": "720p" - }, - "output": { - "video": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/vidu__q3-turbo/simple-text-to-video.mp4" - }, - "raw_response": { - "state": "Completed", - "result": { - "video": "https://video.cf.vidu.com/infer_28/tasks/26/0417/05/942602832110972928/creation-01/video.mp4" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'vidu/q3-turbo',\n {\n prompt: 'A cat lazily stretching on a sunlit windowsill',\n duration: 5,\n resolution: '720p',\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "High Resolution", - "description": "Generate at 1080p", - "input": { - "prompt": "Close-up of a hummingbird feeding from a vibrant red flower, slow motion with soft bokeh background", - "duration": 5, - "resolution": "1080p" - }, - "output": { - "video": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/vidu__q3-turbo/high-resolution.mp4" - }, - "raw_response": { - "state": "Completed", - "result": { - "video": "https://video.cf.vidu.com/infer_44/tasks/26/0417/05/942602894400569344/creation-01/video.mp4" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'vidu/q3-turbo',\n {\n prompt:\n 'Close-up of a hummingbird feeding from a vibrant red flower, slow motion with soft bokeh background',\n duration: 5,\n resolution: '1080p',\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Portrait Video", - "description": "Vertical video for mobile viewing", - "input": { - "prompt": "A waterfall cascading down mossy rocks in a tropical jungle, mist rising", - "duration": 5, - "resolution": "720p", - "aspect_ratio": "9:16" - }, - "output": { - "video": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/vidu__q3-turbo/portrait-video.mp4" - }, - "raw_response": { - "state": "Completed", - "result": { - "video": "https://video.cf.vidu.com/infer_48/tasks/26/0417/05/942603057143758848/creation-01/video.mp4" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'vidu/q3-turbo',\n {\n prompt:\n 'A waterfall cascading down mossy rocks in a tropical jungle, mist rising',\n duration: 5,\n resolution: '720p',\n aspect_ratio: '9:16',\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Extended Duration", - "description": "Longer video clip", - "input": { - "prompt": "Timelapse of clouds rolling over a mountain peak from sunrise to sunset, dramatic lighting", - "duration": 16, - "resolution": "720p" - }, - "output": { - "video": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/vidu__q3-turbo/extended-duration.mp4" - }, - "raw_response": { - "state": "Completed", - "result": { - "video": "https://video.cf.vidu.com/infer_84/tasks/26/0417/06/942603162785705984/creation-01/video.mp4" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'vidu/q3-turbo',\n {\n prompt:\n 'Timelapse of clouds rolling over a mountain peak from sunrise to sunset, dramatic lighting',\n duration: 16,\n resolution: '720p',\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - }, - { - "name": "Low Resolution Fast Preview", - "description": "Quick preview at 540p", - "input": { - "prompt": "A sailboat gliding across calm ocean waters at sunset", - "duration": 3, - "resolution": "540p" - }, - "output": { - "video": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/vidu__q3-turbo/low-resolution-fast-preview.mp4" - }, - "raw_response": { - "state": "Completed", - "result": { - "video": "https://video.cf.vidu.com/infer_68/tasks/26/0417/06/942603796612128768/creation-01/video.mp4" - }, - "gatewayMetadata": { - "keySource": "Unified" - } - }, - "code_snippets": [ - { - "label": "typescript", - "language": "typescript", - "code": "const response = await env.AI.run(\n 'vidu/q3-turbo',\n {\n prompt: 'A sailboat gliding across calm ocean waters at sunset',\n duration: 3,\n resolution: '540p',\n },\n {\n gateway: { id: 'default' },\n }\n)\nconsole.log(response)" - } - ] - } - ], - "supports_async": false, - "external_info": "https://www.vidu.com/", - "terms": "https://www.vidu.com/terms", - "cover_image_url": "https://pub-26f1392c1b674324be6786695bd72257.r2.dev/vidu/q3-turbo.png", - "metadata": { - "Max Duration": "16 seconds", - "Resolutions": "540p, 720p, 1080p", - "Aspect Ratios": "16:9, 9:16, 3:4, 4:3, 1:1", - "Audio Generation": "Yes", - "Image-to-Video": "Yes" - }, - "created_at": "2026-04-15 01:37:34", - "default_example": null, - "code_snippets": [], - "zdr": false, - "zdr_comment": null, - "schema": { - "input": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "prompt": { - "description": "Text prompt describing what should appear in the video", - "type": "string", - "maxLength": 5000 - }, - "start_image": { - "description": "Start image for video generation. Use alone for image-to-video, or with end_image for start/end-to-video. Accepts public URL or Base64 data URI (data:image/png;base64,...)", - "type": "string" - }, - "end_image": { - "description": "End image for start/end-to-video generation. Must be used together with start_image. Accepts public URL or Base64 data URI (data:image/png;base64,...)", - "type": "string" - }, - "duration": { - "description": "Video duration in seconds (1-16)", - "default": 5, - "type": "integer", - "minimum": 1, - "maximum": 16 - }, - "resolution": { - "description": "Video resolution", - "default": "720p", - "type": "string", - "enum": [ - "540p", - "720p", - "1080p" - ] - }, - "audio": { - "description": "Enable audio-video synchronization. Default: true for Q3 models. When false, outputs silent video", - "type": "boolean" - }, - "aspect_ratio": { - "description": "Video aspect ratio (text-to-video only). Default: 16:9", - "type": "string", - "enum": [ - "16:9", - "9:16", - "3:4", - "4:3", - "1:1" - ] - } - }, - "required": [ - "duration", - "resolution" - ], - "additionalProperties": false - }, - "output": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "video": { - "description": "URL to the generated video", - "type": "string", - "format": "uri" - } - }, - "required": [ - "video" - ], - "additionalProperties": false - } - } -} diff --git a/src/content/workers-ai-models/aura-1.json b/src/content/workers-ai-models/aura-1.json deleted file mode 100644 index 72d81d9063c6d5b..000000000000000 --- a/src/content/workers-ai-models/aura-1.json +++ /dev/null @@ -1,110 +0,0 @@ -{ - "id": "1f55679f-009e-4456-aa4f-049a62b4b6a0", - "source": 1, - "name": "@cf/deepgram/aura-1", - "description": "Aura is a context-aware text-to-speech (TTS) model that applies natural pacing, expressiveness, and fillers based on the context of the provided text. The quality of your text input directly impacts the naturalness of the audio output.", - "task": { - "id": "b52660a1-9a95-4ab2-8b1d-f232be34604a", - "name": "Text-to-Speech", - "description": "Text-to-Speech (TTS) is the task of generating natural sounding speech given text input. TTS models can be extended to have a single model that generates speech for multiple speakers and multiple languages." - }, - "created_at": "2025-08-27 01:18:18.880", - "tags": [], - "properties": [ - { - "property_id": "async_queue", - "value": "true" - }, - { - "property_id": "price", - "value": [ - { - "unit": "per 1k characters", - "price": 0.015, - "currency": "USD" - } - ] - }, - { - "property_id": "partner", - "value": "true" - }, - { - "property_id": "terms", - "value": "https://deepgram.com/terms" - }, - { - "property_id": "realtime", - "value": "true" - } - ], - "schema": { - "input": { - "type": "object", - "properties": { - "speaker": { - "type": "string", - "enum": [ - "angus", - "asteria", - "arcas", - "orion", - "orpheus", - "athena", - "luna", - "zeus", - "perseus", - "helios", - "hera", - "stella" - ], - "default": "angus", - "description": "Speaker used to produce the audio." - }, - "encoding": { - "type": "string", - "enum": [ - "linear16", - "flac", - "mulaw", - "alaw", - "mp3", - "opus", - "aac" - ], - "description": "Encoding of the output audio." - }, - "container": { - "type": "string", - "enum": [ - "none", - "wav", - "ogg" - ], - "description": "Container specifies the file format wrapper for the output audio. The available options depend on the encoding type.." - }, - "text": { - "type": "string", - "description": "The text content to be converted to speech" - }, - "sample_rate": { - "type": "number", - "description": "Sample Rate specifies the sample rate for the output audio. Based on the encoding, different sample rates are supported. For some encodings, the sample rate is not configurable" - }, - "bit_rate": { - "type": "number", - "description": "The bitrate of the audio in bits per second. Choose from predefined ranges or specific values based on the encoding type." - } - }, - "required": [ - "text" - ] - }, - "output": { - "type": "string", - "contentType": "audio/mpeg", - "format": "binary", - "description": "The generated audio in MP3 format" - } - } -} \ No newline at end of file diff --git a/src/content/workers-ai-models/aura-2-en.json b/src/content/workers-ai-models/aura-2-en.json deleted file mode 100644 index e37f804abb3090b..000000000000000 --- a/src/content/workers-ai-models/aura-2-en.json +++ /dev/null @@ -1,138 +0,0 @@ -{ - "id": "01564c52-8717-47dc-8efd-907a2ca18301", - "source": 1, - "name": "@cf/deepgram/aura-2-en", - "description": "Aura-2 is a context-aware text-to-speech (TTS) model that applies natural pacing, expressiveness, and fillers based on the context of the provided text. The quality of your text input directly impacts the naturalness of the audio output.", - "task": { - "id": "b52660a1-9a95-4ab2-8b1d-f232be34604a", - "name": "Text-to-Speech", - "description": "Text-to-Speech (TTS) is the task of generating natural sounding speech given text input. TTS models can be extended to have a single model that generates speech for multiple speakers and multiple languages." - }, - "created_at": "2025-10-09 22:19:34.483", - "tags": [], - "properties": [ - { - "property_id": "async_queue", - "value": "true" - }, - { - "property_id": "price", - "value": [ - { - "unit": "per 1k characters", - "price": 0.03, - "currency": "USD" - } - ] - }, - { - "property_id": "partner", - "value": "true" - }, - { - "property_id": "terms", - "value": "https://deepgram.com/terms" - }, - { - "property_id": "realtime", - "value": "true" - } - ], - "schema": { - "input": { - "type": "object", - "properties": { - "speaker": { - "type": "string", - "enum": [ - "amalthea", - "andromeda", - "apollo", - "arcas", - "aries", - "asteria", - "athena", - "atlas", - "aurora", - "callista", - "cora", - "cordelia", - "delia", - "draco", - "electra", - "harmonia", - "helena", - "hera", - "hermes", - "hyperion", - "iris", - "janus", - "juno", - "jupiter", - "luna", - "mars", - "minerva", - "neptune", - "odysseus", - "ophelia", - "orion", - "orpheus", - "pandora", - "phoebe", - "pluto", - "saturn", - "thalia", - "theia", - "vesta", - "zeus" - ], - "default": "luna", - "description": "Speaker used to produce the audio." - }, - "encoding": { - "type": "string", - "enum": [ - "linear16", - "flac", - "mulaw", - "alaw", - "mp3", - "opus", - "aac" - ], - "description": "Encoding of the output audio." - }, - "container": { - "type": "string", - "enum": [ - "none", - "wav", - "ogg" - ], - "description": "Container specifies the file format wrapper for the output audio. The available options depend on the encoding type.." - }, - "text": { - "type": "string", - "description": "The text content to be converted to speech" - }, - "sample_rate": { - "type": "number", - "description": "Sample Rate specifies the sample rate for the output audio. Based on the encoding, different sample rates are supported. For some encodings, the sample rate is not configurable" - }, - "bit_rate": { - "type": "number", - "description": "The bitrate of the audio in bits per second. Choose from predefined ranges or specific values based on the encoding type." - } - }, - "required": [ - "text" - ] - }, - "output": { - "type": "string", - "contentType": "audio/mpeg", - "format": "binary", - "description": "The generated audio in MP3 format" - } - } -} \ No newline at end of file diff --git a/src/content/workers-ai-models/aura-2-es.json b/src/content/workers-ai-models/aura-2-es.json deleted file mode 100644 index c1f1581243cc7e3..000000000000000 --- a/src/content/workers-ai-models/aura-2-es.json +++ /dev/null @@ -1,108 +0,0 @@ -{ - "id": "c5255b94-2161-4779-bd25-54f061829a2a", - "source": 1, - "name": "@cf/deepgram/aura-2-es", - "description": "Aura-2 is a context-aware text-to-speech (TTS) model that applies natural pacing, expressiveness, and fillers based on the context of the provided text. The quality of your text input directly impacts the naturalness of the audio output.", - "task": { - "id": "b52660a1-9a95-4ab2-8b1d-f232be34604a", - "name": "Text-to-Speech", - "description": "Text-to-Speech (TTS) is the task of generating natural sounding speech given text input. TTS models can be extended to have a single model that generates speech for multiple speakers and multiple languages." - }, - "created_at": "2025-10-09 22:42:37.002", - "tags": [], - "properties": [ - { - "property_id": "async_queue", - "value": "true" - }, - { - "property_id": "price", - "value": [ - { - "unit": "per 1k characters", - "price": 0.03, - "currency": "USD" - } - ] - }, - { - "property_id": "partner", - "value": "true" - }, - { - "property_id": "terms", - "value": "https://deepgram.com/terms" - }, - { - "property_id": "realtime", - "value": "true" - } - ], - "schema": { - "input": { - "type": "object", - "properties": { - "speaker": { - "type": "string", - "enum": [ - "sirio", - "nestor", - "carina", - "celeste", - "alvaro", - "diana", - "aquila", - "selena", - "estrella", - "javier" - ], - "default": "aquila", - "description": "Speaker used to produce the audio." - }, - "encoding": { - "type": "string", - "enum": [ - "linear16", - "flac", - "mulaw", - "alaw", - "mp3", - "opus", - "aac" - ], - "description": "Encoding of the output audio." - }, - "container": { - "type": "string", - "enum": [ - "none", - "wav", - "ogg" - ], - "description": "Container specifies the file format wrapper for the output audio. The available options depend on the encoding type.." - }, - "text": { - "type": "string", - "description": "The text content to be converted to speech" - }, - "sample_rate": { - "type": "number", - "description": "Sample Rate specifies the sample rate for the output audio. Based on the encoding, different sample rates are supported. For some encodings, the sample rate is not configurable" - }, - "bit_rate": { - "type": "number", - "description": "The bitrate of the audio in bits per second. Choose from predefined ranges or specific values based on the encoding type." - } - }, - "required": [ - "text" - ] - }, - "output": { - "type": "string", - "contentType": "audio/mpeg", - "format": "binary", - "description": "The generated audio in MP3 format" - } - } -} \ No newline at end of file diff --git a/src/content/workers-ai-models/bart-large-cnn.json b/src/content/workers-ai-models/bart-large-cnn.json deleted file mode 100644 index 96685f5a515cf92..000000000000000 --- a/src/content/workers-ai-models/bart-large-cnn.json +++ /dev/null @@ -1,59 +0,0 @@ -{ - "id": "19bd38eb-bcda-4e53-bec2-704b4689b43a", - "source": 1, - "name": "@cf/facebook/bart-large-cnn", - "description": "BART is a transformer encoder-encoder (seq2seq) model with a bidirectional (BERT-like) encoder and an autoregressive (GPT-like) decoder. You can use this model for text summarization.", - "task": { - "id": "6f4e65d8-da0f-40d2-9aa4-db582a5a04fd", - "name": "Summarization", - "description": "Summarization is the task of producing a shorter version of a document while preserving its important information. Some models can extract text from the original input, while other models can generate entirely new text." - }, - "created_at": "2024-02-27 18:28:11.833", - "tags": [], - "properties": [ - { - "property_id": "beta", - "value": "true" - }, - { - "property_id": "price", - "value": [ - { - "unit": "per M input tokens", - "price": 0, - "currency": "USD" - } - ] - } - ], - "schema": { - "input": { - "type": "object", - "properties": { - "input_text": { - "type": "string", - "minLength": 1, - "description": "The text that you want the model to summarize" - }, - "max_length": { - "type": "integer", - "default": 1024, - "description": "The maximum length of the generated summary in tokens" - } - }, - "required": [ - "input_text" - ] - }, - "output": { - "type": "object", - "contentType": "application/json", - "properties": { - "summary": { - "type": "string", - "description": "The summarized version of the input text" - } - } - } - } -} \ No newline at end of file diff --git a/src/content/workers-ai-models/bge-base-en-v1.5.json b/src/content/workers-ai-models/bge-base-en-v1.5.json deleted file mode 100644 index 14df8b25192d72e..000000000000000 --- a/src/content/workers-ai-models/bge-base-en-v1.5.json +++ /dev/null @@ -1,179 +0,0 @@ -{ - "id": "429b9e8b-d99e-44de-91ad-706cf8183658", - "source": 1, - "name": "@cf/baai/bge-base-en-v1.5", - "description": "BAAI general embedding (Base) model that transforms any given text into a 768-dimensional vector", - "task": { - "id": "0137cdcf-162a-4108-94f2-1ca59e8c65ee", - "name": "Text Embeddings", - "description": "Feature extraction models transform raw data into numerical features that can be processed while preserving the information in the original dataset. These models are ideal as part of building vector search applications or Retrieval Augmented Generation workflows with Large Language Models (LLM)." - }, - "created_at": "2023-09-25 19:21:11.898", - "tags": [], - "properties": [ - { - "property_id": "async_queue", - "value": "true" - }, - { - "property_id": "context_window", - "value": "153600" - }, - { - "property_id": "price", - "value": [ - { - "unit": "per M input tokens", - "price": 0.067, - "currency": "USD" - } - ] - }, - { - "property_id": "info", - "value": "https://huggingface.co/BAAI/bge-base-en-v1.5" - }, - { - "property_id": "max_input_tokens", - "value": "512" - }, - { - "property_id": "output_dimensions", - "value": "768" - } - ], - "schema": { - "input": { - "type": "object", - "oneOf": [ - { - "properties": { - "text": { - "oneOf": [ - { - "type": "string", - "description": "The text to embed", - "minLength": 1 - }, - { - "type": "array", - "description": "Batch of text values to embed", - "items": { - "type": "string", - "description": "The text to embed", - "minLength": 1 - }, - "maxItems": 100 - } - ] - }, - "pooling": { - "type": "string", - "enum": [ - "mean", - "cls" - ], - "default": "mean", - "description": "The pooling method used in the embedding process. `cls` pooling will generate more accurate embeddings on larger inputs - however, embeddings created with cls pooling are not compatible with embeddings generated with mean pooling. The default pooling method is `mean` in order for this to not be a breaking change, but we highly suggest using the new `cls` pooling for better accuracy." - } - }, - "required": [ - "text" - ] - }, - { - "properties": { - "requests": { - "type": "array", - "description": "Batch of the embeddings requests to run using async-queue", - "items": { - "properties": { - "text": { - "oneOf": [ - { - "type": "string", - "description": "The text to embed", - "minLength": 1 - }, - { - "type": "array", - "description": "Batch of text values to embed", - "items": { - "type": "string", - "description": "The text to embed", - "minLength": 1 - }, - "maxItems": 100 - } - ] - }, - "pooling": { - "type": "string", - "enum": [ - "mean", - "cls" - ], - "default": "mean", - "description": "The pooling method used in the embedding process. `cls` pooling will generate more accurate embeddings on larger inputs - however, embeddings created with cls pooling are not compatible with embeddings generated with mean pooling. The default pooling method is `mean` in order for this to not be a breaking change, but we highly suggest using the new `cls` pooling for better accuracy." - } - }, - "required": [ - "text" - ] - } - } - }, - "required": [ - "requests" - ] - } - ] - }, - "output": { - "oneOf": [ - { - "type": "object", - "contentType": "application/json", - "properties": { - "shape": { - "type": "array", - "items": { - "type": "number" - } - }, - "data": { - "type": "array", - "description": "Embeddings of the requested text values", - "items": { - "type": "array", - "description": "Floating point embedding representation shaped by the embedding model", - "items": { - "type": "number" - } - } - }, - "pooling": { - "type": "string", - "enum": [ - "mean", - "cls" - ], - "description": "The pooling method used in the embedding process." - } - } - }, - { - "type": "object", - "contentType": "application/json", - "title": "Async response", - "properties": { - "request_id": { - "type": "string", - "description": "The async request id that can be used to obtain the results." - } - } - } - ] - } - } -} \ No newline at end of file diff --git a/src/content/workers-ai-models/bge-large-en-v1.5.json b/src/content/workers-ai-models/bge-large-en-v1.5.json deleted file mode 100644 index fb514b587d41dc0..000000000000000 --- a/src/content/workers-ai-models/bge-large-en-v1.5.json +++ /dev/null @@ -1,175 +0,0 @@ -{ - "id": "01bc2fb0-4bca-4598-b985-d2584a3f46c0", - "source": 1, - "name": "@cf/baai/bge-large-en-v1.5", - "description": "BAAI general embedding (Large) model that transforms any given text into a 1024-dimensional vector", - "task": { - "id": "0137cdcf-162a-4108-94f2-1ca59e8c65ee", - "name": "Text Embeddings", - "description": "Feature extraction models transform raw data into numerical features that can be processed while preserving the information in the original dataset. These models are ideal as part of building vector search applications or Retrieval Augmented Generation workflows with Large Language Models (LLM)." - }, - "created_at": "2023-11-07 15:43:58.042", - "tags": [], - "properties": [ - { - "property_id": "async_queue", - "value": "true" - }, - { - "property_id": "price", - "value": [ - { - "unit": "per M input tokens", - "price": 0.2, - "currency": "USD" - } - ] - }, - { - "property_id": "info", - "value": "https://huggingface.co/BAAI/bge-large-en-v1.5" - }, - { - "property_id": "max_input_tokens", - "value": "512" - }, - { - "property_id": "output_dimensions", - "value": "1024" - } - ], - "schema": { - "input": { - "type": "object", - "oneOf": [ - { - "properties": { - "text": { - "oneOf": [ - { - "type": "string", - "description": "The text to embed", - "minLength": 1 - }, - { - "type": "array", - "description": "Batch of text values to embed", - "items": { - "type": "string", - "description": "The text to embed", - "minLength": 1 - }, - "maxItems": 100 - } - ] - }, - "pooling": { - "type": "string", - "enum": [ - "mean", - "cls" - ], - "default": "mean", - "description": "The pooling method used in the embedding process. `cls` pooling will generate more accurate embeddings on larger inputs - however, embeddings created with cls pooling are not compatible with embeddings generated with mean pooling. The default pooling method is `mean` in order for this to not be a breaking change, but we highly suggest using the new `cls` pooling for better accuracy." - } - }, - "required": [ - "text" - ] - }, - { - "properties": { - "requests": { - "type": "array", - "description": "Batch of the embeddings requests to run using async-queue", - "items": { - "properties": { - "text": { - "oneOf": [ - { - "type": "string", - "description": "The text to embed", - "minLength": 1 - }, - { - "type": "array", - "description": "Batch of text values to embed", - "items": { - "type": "string", - "description": "The text to embed", - "minLength": 1 - }, - "maxItems": 100 - } - ] - }, - "pooling": { - "type": "string", - "enum": [ - "mean", - "cls" - ], - "default": "mean", - "description": "The pooling method used in the embedding process. `cls` pooling will generate more accurate embeddings on larger inputs - however, embeddings created with cls pooling are not compatible with embeddings generated with mean pooling. The default pooling method is `mean` in order for this to not be a breaking change, but we highly suggest using the new `cls` pooling for better accuracy." - } - }, - "required": [ - "text" - ] - } - } - }, - "required": [ - "requests" - ] - } - ] - }, - "output": { - "oneOf": [ - { - "type": "object", - "contentType": "application/json", - "properties": { - "shape": { - "type": "array", - "items": { - "type": "number" - } - }, - "data": { - "type": "array", - "description": "Embeddings of the requested text values", - "items": { - "type": "array", - "description": "Floating point embedding representation shaped by the embedding model", - "items": { - "type": "number" - } - } - }, - "pooling": { - "type": "string", - "enum": [ - "mean", - "cls" - ], - "description": "The pooling method used in the embedding process." - } - } - }, - { - "type": "object", - "contentType": "application/json", - "title": "Async response", - "properties": { - "request_id": { - "type": "string", - "description": "The async request id that can be used to obtain the results." - } - } - } - ] - } - } -} \ No newline at end of file diff --git a/src/content/workers-ai-models/bge-m3.json b/src/content/workers-ai-models/bge-m3.json deleted file mode 100644 index 8d715a2dbf26c1d..000000000000000 --- a/src/content/workers-ai-models/bge-m3.json +++ /dev/null @@ -1,276 +0,0 @@ -{ - "id": "eed32bc1-8775-4985-89ce-dd1405508ad8", - "source": 1, - "name": "@cf/baai/bge-m3", - "description": "Multi-Functionality, Multi-Linguality, and Multi-Granularity embeddings model.", - "task": { - "id": "0137cdcf-162a-4108-94f2-1ca59e8c65ee", - "name": "Text Embeddings", - "description": "Feature extraction models transform raw data into numerical features that can be processed while preserving the information in the original dataset. These models are ideal as part of building vector search applications or Retrieval Augmented Generation workflows with Large Language Models (LLM)." - }, - "created_at": "2024-05-22 19:27:09.781", - "tags": [], - "properties": [ - { - "property_id": "context_window", - "value": "60000" - }, - { - "property_id": "price", - "value": [ - { - "unit": "per M input tokens", - "price": 0.012, - "currency": "USD" - } - ] - } - ], - "schema": { - "input": { - "type": "object", - "oneOf": [ - { - "title": "Input Query and Contexts", - "properties": { - "query": { - "type": "string", - "minLength": 1, - "description": "A query you wish to perform against the provided contexts. If no query is provided the model with respond with embeddings for contexts" - }, - "contexts": { - "type": "array", - "items": { - "type": "object", - "properties": { - "text": { - "type": "string", - "minLength": 1, - "description": "One of the provided context content" - } - } - }, - "description": "List of provided contexts. Note that the index in this array is important, as the response will refer to it." - }, - "truncate_inputs": { - "type": "boolean", - "default": false, - "description": "When provided with too long context should the model error out or truncate the context to fit?" - } - }, - "required": [ - "contexts" - ] - }, - { - "title": "Input Embedding", - "properties": { - "text": { - "oneOf": [ - { - "type": "string", - "description": "The text to embed", - "minLength": 1 - }, - { - "type": "array", - "description": "Batch of text values to embed", - "items": { - "type": "string", - "description": "The text to embed", - "minLength": 1 - }, - "maxItems": 100 - } - ] - }, - "truncate_inputs": { - "type": "boolean", - "default": false, - "description": "When provided with too long context should the model error out or truncate the context to fit?" - } - }, - "required": [ - "text" - ] - }, - { - "properties": { - "requests": { - "type": "array", - "description": "Batch of the embeddings requests to run using async-queue", - "items": { - "type": "object", - "oneOf": [ - { - "title": "Input Query and Contexts", - "properties": { - "query": { - "type": "string", - "minLength": 1, - "description": "A query you wish to perform against the provided contexts. If no query is provided the model with respond with embeddings for contexts" - }, - "contexts": { - "type": "array", - "items": { - "type": "object", - "properties": { - "text": { - "type": "string", - "minLength": 1, - "description": "One of the provided context content" - } - } - }, - "description": "List of provided contexts. Note that the index in this array is important, as the response will refer to it." - }, - "truncate_inputs": { - "type": "boolean", - "default": false, - "description": "When provided with too long context should the model error out or truncate the context to fit?" - } - }, - "required": [ - "contexts" - ] - }, - { - "title": "Input Embedding", - "properties": { - "text": { - "oneOf": [ - { - "type": "string", - "description": "The text to embed", - "minLength": 1 - }, - { - "type": "array", - "description": "Batch of text values to embed", - "items": { - "type": "string", - "description": "The text to embed", - "minLength": 1 - }, - "maxItems": 100 - } - ] - }, - "truncate_inputs": { - "type": "boolean", - "default": false, - "description": "When provided with too long context should the model error out or truncate the context to fit?" - } - }, - "required": [ - "text" - ] - } - ] - } - } - }, - "required": [ - "requests" - ] - } - ] - }, - "output": { - "type": "object", - "contentType": "application/json", - "oneOf": [ - { - "title": "Output Query", - "properties": { - "response": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "description": "Index of the context in the request" - }, - "score": { - "type": "number", - "description": "Score of the context under the index." - } - } - } - } - } - }, - { - "title": "Output Embedding for Contexts", - "properties": { - "response": { - "type": "array", - "items": { - "type": "array", - "items": { - "type": "number" - } - } - }, - "shape": { - "type": "array", - "items": { - "type": "number" - } - }, - "pooling": { - "type": "string", - "enum": [ - "mean", - "cls" - ], - "description": "The pooling method used in the embedding process." - } - } - }, - { - "title": "Output Embedding", - "properties": { - "shape": { - "type": "array", - "items": { - "type": "number" - } - }, - "data": { - "type": "array", - "description": "Embeddings of the requested text values", - "items": { - "type": "array", - "description": "Floating point embedding representation shaped by the embedding model", - "items": { - "type": "number" - } - } - }, - "pooling": { - "type": "string", - "enum": [ - "mean", - "cls" - ], - "description": "The pooling method used in the embedding process." - } - } - }, - { - "type": "object", - "contentType": "application/json", - "title": "Async response", - "properties": { - "request_id": { - "type": "string", - "description": "The async request id that can be used to obtain the results." - } - } - } - ] - } - } -} \ No newline at end of file diff --git a/src/content/workers-ai-models/bge-reranker-base.json b/src/content/workers-ai-models/bge-reranker-base.json deleted file mode 100644 index 68f1cc2e25aa2b3..000000000000000 --- a/src/content/workers-ai-models/bge-reranker-base.json +++ /dev/null @@ -1,82 +0,0 @@ -{ - "id": "145337e7-cec3-4ebb-8e78-16ddfc75e580", - "source": 1, - "name": "@cf/baai/bge-reranker-base", - "description": "Different from embedding model, reranker uses question and document as input and directly output similarity instead of embedding. You can get a relevance score by inputting query and passage to the reranker. And the score can be mapped to a float value in [0,1] by sigmoid function.\n\n", - "task": { - "id": "19606750-23ed-4371-aab2-c20349b53a60", - "name": "Text Classification", - "description": "Sentiment analysis or text classification is a common NLP task that classifies a text input into labels or classes." - }, - "created_at": "2025-02-14 12:28:19.009", - "tags": [], - "properties": [ - { - "property_id": "price", - "value": [ - { - "unit": "per M input tokens", - "price": 0.0031, - "currency": "USD" - } - ] - } - ], - "schema": { - "input": { - "type": "object", - "properties": { - "query": { - "type": "string", - "minLength": 1, - "description": "A query you wish to perform against the provided contexts." - }, - "top_k": { - "type": "integer", - "minimum": 1, - "description": "Number of returned results starting with the best score." - }, - "contexts": { - "type": "array", - "items": { - "type": "object", - "properties": { - "text": { - "type": "string", - "minLength": 1, - "description": "One of the provided context content" - } - } - }, - "description": "List of provided contexts. Note that the index in this array is important, as the response will refer to it." - } - }, - "required": [ - "query", - "contexts" - ] - }, - "output": { - "type": "object", - "contentType": "application/json", - "properties": { - "response": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "description": "Index of the context in the request" - }, - "score": { - "type": "number", - "description": "Score of the context under the index." - } - } - } - } - } - } - } -} \ No newline at end of file diff --git a/src/content/workers-ai-models/bge-small-en-v1.5.json b/src/content/workers-ai-models/bge-small-en-v1.5.json deleted file mode 100644 index 1b549b0ddd7cc74..000000000000000 --- a/src/content/workers-ai-models/bge-small-en-v1.5.json +++ /dev/null @@ -1,175 +0,0 @@ -{ - "id": "57fbd08a-a4c4-411c-910d-b9459ff36c20", - "source": 1, - "name": "@cf/baai/bge-small-en-v1.5", - "description": "BAAI general embedding (Small) model that transforms any given text into a 384-dimensional vector", - "task": { - "id": "0137cdcf-162a-4108-94f2-1ca59e8c65ee", - "name": "Text Embeddings", - "description": "Feature extraction models transform raw data into numerical features that can be processed while preserving the information in the original dataset. These models are ideal as part of building vector search applications or Retrieval Augmented Generation workflows with Large Language Models (LLM)." - }, - "created_at": "2023-11-07 15:43:58.042", - "tags": [], - "properties": [ - { - "property_id": "async_queue", - "value": "true" - }, - { - "property_id": "price", - "value": [ - { - "unit": "per M input tokens", - "price": 0.02, - "currency": "USD" - } - ] - }, - { - "property_id": "info", - "value": "https://huggingface.co/BAAI/bge-small-en-v1.5" - }, - { - "property_id": "max_input_tokens", - "value": "512" - }, - { - "property_id": "output_dimensions", - "value": "384" - } - ], - "schema": { - "input": { - "type": "object", - "oneOf": [ - { - "properties": { - "text": { - "oneOf": [ - { - "type": "string", - "description": "The text to embed", - "minLength": 1 - }, - { - "type": "array", - "description": "Batch of text values to embed", - "items": { - "type": "string", - "description": "The text to embed", - "minLength": 1 - }, - "maxItems": 100 - } - ] - }, - "pooling": { - "type": "string", - "enum": [ - "mean", - "cls" - ], - "default": "mean", - "description": "The pooling method used in the embedding process. `cls` pooling will generate more accurate embeddings on larger inputs - however, embeddings created with cls pooling are not compatible with embeddings generated with mean pooling. The default pooling method is `mean` in order for this to not be a breaking change, but we highly suggest using the new `cls` pooling for better accuracy." - } - }, - "required": [ - "text" - ] - }, - { - "properties": { - "requests": { - "type": "array", - "description": "Batch of the embeddings requests to run using async-queue", - "items": { - "properties": { - "text": { - "oneOf": [ - { - "type": "string", - "description": "The text to embed", - "minLength": 1 - }, - { - "type": "array", - "description": "Batch of text values to embed", - "items": { - "type": "string", - "description": "The text to embed", - "minLength": 1 - }, - "maxItems": 100 - } - ] - }, - "pooling": { - "type": "string", - "enum": [ - "mean", - "cls" - ], - "default": "mean", - "description": "The pooling method used in the embedding process. `cls` pooling will generate more accurate embeddings on larger inputs - however, embeddings created with cls pooling are not compatible with embeddings generated with mean pooling. The default pooling method is `mean` in order for this to not be a breaking change, but we highly suggest using the new `cls` pooling for better accuracy." - } - }, - "required": [ - "text" - ] - } - } - }, - "required": [ - "requests" - ] - } - ] - }, - "output": { - "oneOf": [ - { - "type": "object", - "contentType": "application/json", - "properties": { - "shape": { - "type": "array", - "items": { - "type": "number" - } - }, - "data": { - "type": "array", - "description": "Embeddings of the requested text values", - "items": { - "type": "array", - "description": "Floating point embedding representation shaped by the embedding model", - "items": { - "type": "number" - } - } - }, - "pooling": { - "type": "string", - "enum": [ - "mean", - "cls" - ], - "description": "The pooling method used in the embedding process." - } - } - }, - { - "type": "object", - "contentType": "application/json", - "title": "Async response", - "properties": { - "request_id": { - "type": "string", - "description": "The async request id that can be used to obtain the results." - } - } - } - ] - } - } -} \ No newline at end of file diff --git a/src/content/workers-ai-models/deepseek-coder-6.7b-base-awq.json b/src/content/workers-ai-models/deepseek-coder-6.7b-base-awq.json deleted file mode 100644 index a204b0d54b54991..000000000000000 --- a/src/content/workers-ai-models/deepseek-coder-6.7b-base-awq.json +++ /dev/null @@ -1,466 +0,0 @@ -{ - "id": "7f180530-2e16-4116-9d26-f49fbed9d372", - "source": 2, - "name": "@hf/thebloke/deepseek-coder-6.7b-base-awq", - "description": "Deepseek Coder is composed of a series of code language models, each trained from scratch on 2T tokens, with a composition of 87% code and 13% natural language in both English and Chinese.", - "task": { - "id": "c329a1f9-323d-4e91-b2aa-582dd4188d34", - "name": "Text Generation", - "description": "Family of generative text models, such as large language models (LLM), that can be adapted for a variety of natural language tasks." - }, - "created_at": "2024-02-06 18:16:27.183", - "tags": [], - "properties": [ - { - "property_id": "beta", - "value": "true" - }, - { - "property_id": "context_window", - "value": "4096" - }, - { - "property_id": "planned_deprecation_date", - "value": "2025-10-01" - }, - { - "property_id": "terms", - "value": "https://huggingface.co/TheBloke/deepseek-coder-6.7B-base-AWQ" - } - ], - "schema": { - "input": { - "type": "object", - "oneOf": [ - { - "title": "Prompt", - "properties": { - "prompt": { - "type": "string", - "minLength": 1, - "description": "The input text prompt for the model to generate a response." - }, - "lora": { - "type": "string", - "description": "Name of the LoRA (Low-Rank Adaptation) model to fine-tune the base model." - }, - "response_format": { - "title": "JSON Mode", - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_object", - "json_schema" - ] - }, - "json_schema": {} - } - }, - "raw": { - "type": "boolean", - "default": false, - "description": "If true, a chat template is not applied and you must adhere to the specific model's expected formatting." - }, - "stream": { - "type": "boolean", - "default": false, - "description": "If true, the response will be streamed back incrementally using SSE, Server Sent Events." - }, - "max_tokens": { - "type": "integer", - "default": 256, - "description": "The maximum number of tokens to generate in the response." - }, - "temperature": { - "type": "number", - "default": 0.6, - "minimum": 0, - "maximum": 5, - "description": "Controls the randomness of the output; higher values produce more random results." - }, - "top_p": { - "type": "number", - "minimum": 0.001, - "maximum": 1, - "description": "Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses." - }, - "top_k": { - "type": "integer", - "minimum": 1, - "maximum": 50, - "description": "Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises." - }, - "seed": { - "type": "integer", - "minimum": 1, - "maximum": 9999999999, - "description": "Random seed for reproducibility of the generation." - }, - "repetition_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Penalty for repeated tokens; higher values discourage repetition." - }, - "frequency_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Decreases the likelihood of the model repeating the same lines verbatim." - }, - "presence_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Increases the likelihood of the model introducing new topics." - } - }, - "required": [ - "prompt" - ] - }, - { - "title": "Messages", - "properties": { - "messages": { - "type": "array", - "description": "An array of message objects representing the conversation history.", - "items": { - "type": "object", - "properties": { - "role": { - "type": "string", - "description": "The role of the message sender (e.g., 'user', 'assistant', 'system', 'tool')." - }, - "content": { - "oneOf": [ - { - "type": "string", - "description": "The content of the message as a string." - }, - { - "type": "array", - "description": "Array of text content parts.", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "Type of the content (text)" - }, - "text": { - "type": "string", - "description": "Text content" - } - } - } - } - ] - } - }, - "required": [ - "role", - "content" - ] - } - }, - "functions": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "code": { - "type": "string" - } - }, - "required": [ - "name", - "code" - ] - } - }, - "tools": { - "type": "array", - "description": "A list of tools available for the assistant to use.", - "items": { - "type": "object", - "oneOf": [ - { - "properties": { - "name": { - "type": "string", - "description": "The name of the tool. More descriptive the better." - }, - "description": { - "type": "string", - "description": "A brief description of what the tool does." - }, - "parameters": { - "type": "object", - "description": "Schema defining the parameters accepted by the tool.", - "properties": { - "type": { - "type": "string", - "description": "The type of the parameters object (usually 'object')." - }, - "required": { - "type": "array", - "description": "List of required parameter names.", - "items": { - "type": "string" - } - }, - "properties": { - "type": "object", - "description": "Definitions of each parameter.", - "additionalProperties": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The data type of the parameter." - }, - "description": { - "type": "string", - "description": "A description of the expected parameter." - } - }, - "required": [ - "type", - "description" - ] - } - } - }, - "required": [ - "type", - "properties" - ] - } - }, - "required": [ - "name", - "description", - "parameters" - ] - }, - { - "properties": { - "type": { - "type": "string", - "description": "Specifies the type of tool (e.g., 'function')." - }, - "function": { - "type": "object", - "description": "Details of the function tool.", - "properties": { - "name": { - "type": "string", - "description": "The name of the function." - }, - "description": { - "type": "string", - "description": "A brief description of what the function does." - }, - "parameters": { - "type": "object", - "description": "Schema defining the parameters accepted by the function.", - "properties": { - "type": { - "type": "string", - "description": "The type of the parameters object (usually 'object')." - }, - "required": { - "type": "array", - "description": "List of required parameter names.", - "items": { - "type": "string" - } - }, - "properties": { - "type": "object", - "description": "Definitions of each parameter.", - "additionalProperties": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The data type of the parameter." - }, - "description": { - "type": "string", - "description": "A description of the expected parameter." - } - }, - "required": [ - "type", - "description" - ] - } - } - }, - "required": [ - "type", - "properties" - ] - } - }, - "required": [ - "name", - "description", - "parameters" - ] - } - }, - "required": [ - "type", - "function" - ] - } - ] - } - }, - "response_format": { - "title": "JSON Mode", - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_object", - "json_schema" - ] - }, - "json_schema": {} - } - }, - "raw": { - "type": "boolean", - "default": false, - "description": "If true, a chat template is not applied and you must adhere to the specific model's expected formatting." - }, - "stream": { - "type": "boolean", - "default": false, - "description": "If true, the response will be streamed back incrementally using SSE, Server Sent Events." - }, - "max_tokens": { - "type": "integer", - "default": 256, - "description": "The maximum number of tokens to generate in the response." - }, - "temperature": { - "type": "number", - "default": 0.6, - "minimum": 0, - "maximum": 5, - "description": "Controls the randomness of the output; higher values produce more random results." - }, - "top_p": { - "type": "number", - "minimum": 0.001, - "maximum": 1, - "description": "Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses." - }, - "top_k": { - "type": "integer", - "minimum": 1, - "maximum": 50, - "description": "Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises." - }, - "seed": { - "type": "integer", - "minimum": 1, - "maximum": 9999999999, - "description": "Random seed for reproducibility of the generation." - }, - "repetition_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Penalty for repeated tokens; higher values discourage repetition." - }, - "frequency_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Decreases the likelihood of the model repeating the same lines verbatim." - }, - "presence_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Increases the likelihood of the model introducing new topics." - } - }, - "required": [ - "messages" - ] - } - ] - }, - "output": { - "oneOf": [ - { - "type": "object", - "properties": { - "response": { - "type": "string", - "description": "The generated text response from the model" - }, - "usage": { - "type": "object", - "description": "Usage statistics for the inference request", - "properties": { - "prompt_tokens": { - "type": "number", - "description": "Total number of tokens in input", - "default": 0 - }, - "completion_tokens": { - "type": "number", - "description": "Total number of tokens in output", - "default": 0 - }, - "total_tokens": { - "type": "number", - "description": "Total number of input and output tokens", - "default": 0 - } - } - }, - "tool_calls": { - "type": "array", - "description": "An array of tool calls requests made during the response generation", - "items": { - "type": "object", - "properties": { - "arguments": { - "type": "object", - "description": "The arguments passed to be passed to the tool call request" - }, - "name": { - "type": "string", - "description": "The name of the tool to be called" - } - } - } - } - }, - "required": [ - "response" - ] - }, - { - "type": "string", - "format": "binary" - } - ] - } - } -} \ No newline at end of file diff --git a/src/content/workers-ai-models/deepseek-coder-6.7b-instruct-awq.json b/src/content/workers-ai-models/deepseek-coder-6.7b-instruct-awq.json deleted file mode 100644 index 9faa3b5a0a1c065..000000000000000 --- a/src/content/workers-ai-models/deepseek-coder-6.7b-instruct-awq.json +++ /dev/null @@ -1,466 +0,0 @@ -{ - "id": "60474554-f03b-4ff4-8ecc-c1b7c71d7b29", - "source": 2, - "name": "@hf/thebloke/deepseek-coder-6.7b-instruct-awq", - "description": "Deepseek Coder is composed of a series of code language models, each trained from scratch on 2T tokens, with a composition of 87% code and 13% natural language in both English and Chinese.", - "task": { - "id": "c329a1f9-323d-4e91-b2aa-582dd4188d34", - "name": "Text Generation", - "description": "Family of generative text models, such as large language models (LLM), that can be adapted for a variety of natural language tasks." - }, - "created_at": "2024-02-06 18:18:27.462", - "tags": [], - "properties": [ - { - "property_id": "beta", - "value": "true" - }, - { - "property_id": "context_window", - "value": "4096" - }, - { - "property_id": "planned_deprecation_date", - "value": "2025-10-01" - }, - { - "property_id": "terms", - "value": "https://huggingface.co/TheBloke/deepseek-coder-6.7B-instruct-AWQ" - } - ], - "schema": { - "input": { - "type": "object", - "oneOf": [ - { - "title": "Prompt", - "properties": { - "prompt": { - "type": "string", - "minLength": 1, - "description": "The input text prompt for the model to generate a response." - }, - "lora": { - "type": "string", - "description": "Name of the LoRA (Low-Rank Adaptation) model to fine-tune the base model." - }, - "response_format": { - "title": "JSON Mode", - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_object", - "json_schema" - ] - }, - "json_schema": {} - } - }, - "raw": { - "type": "boolean", - "default": false, - "description": "If true, a chat template is not applied and you must adhere to the specific model's expected formatting." - }, - "stream": { - "type": "boolean", - "default": false, - "description": "If true, the response will be streamed back incrementally using SSE, Server Sent Events." - }, - "max_tokens": { - "type": "integer", - "default": 256, - "description": "The maximum number of tokens to generate in the response." - }, - "temperature": { - "type": "number", - "default": 0.6, - "minimum": 0, - "maximum": 5, - "description": "Controls the randomness of the output; higher values produce more random results." - }, - "top_p": { - "type": "number", - "minimum": 0.001, - "maximum": 1, - "description": "Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses." - }, - "top_k": { - "type": "integer", - "minimum": 1, - "maximum": 50, - "description": "Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises." - }, - "seed": { - "type": "integer", - "minimum": 1, - "maximum": 9999999999, - "description": "Random seed for reproducibility of the generation." - }, - "repetition_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Penalty for repeated tokens; higher values discourage repetition." - }, - "frequency_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Decreases the likelihood of the model repeating the same lines verbatim." - }, - "presence_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Increases the likelihood of the model introducing new topics." - } - }, - "required": [ - "prompt" - ] - }, - { - "title": "Messages", - "properties": { - "messages": { - "type": "array", - "description": "An array of message objects representing the conversation history.", - "items": { - "type": "object", - "properties": { - "role": { - "type": "string", - "description": "The role of the message sender (e.g., 'user', 'assistant', 'system', 'tool')." - }, - "content": { - "oneOf": [ - { - "type": "string", - "description": "The content of the message as a string." - }, - { - "type": "array", - "description": "Array of text content parts.", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "Type of the content (text)" - }, - "text": { - "type": "string", - "description": "Text content" - } - } - } - } - ] - } - }, - "required": [ - "role", - "content" - ] - } - }, - "functions": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "code": { - "type": "string" - } - }, - "required": [ - "name", - "code" - ] - } - }, - "tools": { - "type": "array", - "description": "A list of tools available for the assistant to use.", - "items": { - "type": "object", - "oneOf": [ - { - "properties": { - "name": { - "type": "string", - "description": "The name of the tool. More descriptive the better." - }, - "description": { - "type": "string", - "description": "A brief description of what the tool does." - }, - "parameters": { - "type": "object", - "description": "Schema defining the parameters accepted by the tool.", - "properties": { - "type": { - "type": "string", - "description": "The type of the parameters object (usually 'object')." - }, - "required": { - "type": "array", - "description": "List of required parameter names.", - "items": { - "type": "string" - } - }, - "properties": { - "type": "object", - "description": "Definitions of each parameter.", - "additionalProperties": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The data type of the parameter." - }, - "description": { - "type": "string", - "description": "A description of the expected parameter." - } - }, - "required": [ - "type", - "description" - ] - } - } - }, - "required": [ - "type", - "properties" - ] - } - }, - "required": [ - "name", - "description", - "parameters" - ] - }, - { - "properties": { - "type": { - "type": "string", - "description": "Specifies the type of tool (e.g., 'function')." - }, - "function": { - "type": "object", - "description": "Details of the function tool.", - "properties": { - "name": { - "type": "string", - "description": "The name of the function." - }, - "description": { - "type": "string", - "description": "A brief description of what the function does." - }, - "parameters": { - "type": "object", - "description": "Schema defining the parameters accepted by the function.", - "properties": { - "type": { - "type": "string", - "description": "The type of the parameters object (usually 'object')." - }, - "required": { - "type": "array", - "description": "List of required parameter names.", - "items": { - "type": "string" - } - }, - "properties": { - "type": "object", - "description": "Definitions of each parameter.", - "additionalProperties": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The data type of the parameter." - }, - "description": { - "type": "string", - "description": "A description of the expected parameter." - } - }, - "required": [ - "type", - "description" - ] - } - } - }, - "required": [ - "type", - "properties" - ] - } - }, - "required": [ - "name", - "description", - "parameters" - ] - } - }, - "required": [ - "type", - "function" - ] - } - ] - } - }, - "response_format": { - "title": "JSON Mode", - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_object", - "json_schema" - ] - }, - "json_schema": {} - } - }, - "raw": { - "type": "boolean", - "default": false, - "description": "If true, a chat template is not applied and you must adhere to the specific model's expected formatting." - }, - "stream": { - "type": "boolean", - "default": false, - "description": "If true, the response will be streamed back incrementally using SSE, Server Sent Events." - }, - "max_tokens": { - "type": "integer", - "default": 256, - "description": "The maximum number of tokens to generate in the response." - }, - "temperature": { - "type": "number", - "default": 0.6, - "minimum": 0, - "maximum": 5, - "description": "Controls the randomness of the output; higher values produce more random results." - }, - "top_p": { - "type": "number", - "minimum": 0.001, - "maximum": 1, - "description": "Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses." - }, - "top_k": { - "type": "integer", - "minimum": 1, - "maximum": 50, - "description": "Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises." - }, - "seed": { - "type": "integer", - "minimum": 1, - "maximum": 9999999999, - "description": "Random seed for reproducibility of the generation." - }, - "repetition_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Penalty for repeated tokens; higher values discourage repetition." - }, - "frequency_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Decreases the likelihood of the model repeating the same lines verbatim." - }, - "presence_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Increases the likelihood of the model introducing new topics." - } - }, - "required": [ - "messages" - ] - } - ] - }, - "output": { - "oneOf": [ - { - "type": "object", - "properties": { - "response": { - "type": "string", - "description": "The generated text response from the model" - }, - "usage": { - "type": "object", - "description": "Usage statistics for the inference request", - "properties": { - "prompt_tokens": { - "type": "number", - "description": "Total number of tokens in input", - "default": 0 - }, - "completion_tokens": { - "type": "number", - "description": "Total number of tokens in output", - "default": 0 - }, - "total_tokens": { - "type": "number", - "description": "Total number of input and output tokens", - "default": 0 - } - } - }, - "tool_calls": { - "type": "array", - "description": "An array of tool calls requests made during the response generation", - "items": { - "type": "object", - "properties": { - "arguments": { - "type": "object", - "description": "The arguments passed to be passed to the tool call request" - }, - "name": { - "type": "string", - "description": "The name of the tool to be called" - } - } - } - } - }, - "required": [ - "response" - ] - }, - { - "type": "string", - "format": "binary" - } - ] - } - } -} \ No newline at end of file diff --git a/src/content/workers-ai-models/deepseek-math-7b-instruct.json b/src/content/workers-ai-models/deepseek-math-7b-instruct.json deleted file mode 100644 index a157b824a6933d9..000000000000000 --- a/src/content/workers-ai-models/deepseek-math-7b-instruct.json +++ /dev/null @@ -1,470 +0,0 @@ -{ - "id": "4c3a544e-da47-4336-9cea-c7cbfab33f16", - "source": 1, - "name": "@cf/deepseek-ai/deepseek-math-7b-instruct", - "description": "DeepSeekMath-Instruct 7B is a mathematically instructed tuning model derived from DeepSeekMath-Base 7B. DeepSeekMath is initialized with DeepSeek-Coder-v1.5 7B and continues pre-training on math-related tokens sourced from Common Crawl, together with natural language and code data for 500B tokens.", - "task": { - "id": "c329a1f9-323d-4e91-b2aa-582dd4188d34", - "name": "Text Generation", - "description": "Family of generative text models, such as large language models (LLM), that can be adapted for a variety of natural language tasks." - }, - "created_at": "2024-02-27 17:54:17.459", - "tags": [], - "properties": [ - { - "property_id": "beta", - "value": "true" - }, - { - "property_id": "context_window", - "value": "4096" - }, - { - "property_id": "info", - "value": "https://huggingface.co/deepseek-ai/deepseek-math-7b-instruct" - }, - { - "property_id": "planned_deprecation_date", - "value": "2025-10-01" - }, - { - "property_id": "terms", - "value": "https://github.com/deepseek-ai/DeepSeek-Math/blob/main/LICENSE-MODEL" - } - ], - "schema": { - "input": { - "type": "object", - "oneOf": [ - { - "title": "Prompt", - "properties": { - "prompt": { - "type": "string", - "minLength": 1, - "description": "The input text prompt for the model to generate a response." - }, - "lora": { - "type": "string", - "description": "Name of the LoRA (Low-Rank Adaptation) model to fine-tune the base model." - }, - "response_format": { - "title": "JSON Mode", - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_object", - "json_schema" - ] - }, - "json_schema": {} - } - }, - "raw": { - "type": "boolean", - "default": false, - "description": "If true, a chat template is not applied and you must adhere to the specific model's expected formatting." - }, - "stream": { - "type": "boolean", - "default": false, - "description": "If true, the response will be streamed back incrementally using SSE, Server Sent Events." - }, - "max_tokens": { - "type": "integer", - "default": 256, - "description": "The maximum number of tokens to generate in the response." - }, - "temperature": { - "type": "number", - "default": 0.6, - "minimum": 0, - "maximum": 5, - "description": "Controls the randomness of the output; higher values produce more random results." - }, - "top_p": { - "type": "number", - "minimum": 0.001, - "maximum": 1, - "description": "Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses." - }, - "top_k": { - "type": "integer", - "minimum": 1, - "maximum": 50, - "description": "Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises." - }, - "seed": { - "type": "integer", - "minimum": 1, - "maximum": 9999999999, - "description": "Random seed for reproducibility of the generation." - }, - "repetition_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Penalty for repeated tokens; higher values discourage repetition." - }, - "frequency_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Decreases the likelihood of the model repeating the same lines verbatim." - }, - "presence_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Increases the likelihood of the model introducing new topics." - } - }, - "required": [ - "prompt" - ] - }, - { - "title": "Messages", - "properties": { - "messages": { - "type": "array", - "description": "An array of message objects representing the conversation history.", - "items": { - "type": "object", - "properties": { - "role": { - "type": "string", - "description": "The role of the message sender (e.g., 'user', 'assistant', 'system', 'tool')." - }, - "content": { - "oneOf": [ - { - "type": "string", - "description": "The content of the message as a string." - }, - { - "type": "array", - "description": "Array of text content parts.", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "Type of the content (text)" - }, - "text": { - "type": "string", - "description": "Text content" - } - } - } - } - ] - } - }, - "required": [ - "role", - "content" - ] - } - }, - "functions": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "code": { - "type": "string" - } - }, - "required": [ - "name", - "code" - ] - } - }, - "tools": { - "type": "array", - "description": "A list of tools available for the assistant to use.", - "items": { - "type": "object", - "oneOf": [ - { - "properties": { - "name": { - "type": "string", - "description": "The name of the tool. More descriptive the better." - }, - "description": { - "type": "string", - "description": "A brief description of what the tool does." - }, - "parameters": { - "type": "object", - "description": "Schema defining the parameters accepted by the tool.", - "properties": { - "type": { - "type": "string", - "description": "The type of the parameters object (usually 'object')." - }, - "required": { - "type": "array", - "description": "List of required parameter names.", - "items": { - "type": "string" - } - }, - "properties": { - "type": "object", - "description": "Definitions of each parameter.", - "additionalProperties": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The data type of the parameter." - }, - "description": { - "type": "string", - "description": "A description of the expected parameter." - } - }, - "required": [ - "type", - "description" - ] - } - } - }, - "required": [ - "type", - "properties" - ] - } - }, - "required": [ - "name", - "description", - "parameters" - ] - }, - { - "properties": { - "type": { - "type": "string", - "description": "Specifies the type of tool (e.g., 'function')." - }, - "function": { - "type": "object", - "description": "Details of the function tool.", - "properties": { - "name": { - "type": "string", - "description": "The name of the function." - }, - "description": { - "type": "string", - "description": "A brief description of what the function does." - }, - "parameters": { - "type": "object", - "description": "Schema defining the parameters accepted by the function.", - "properties": { - "type": { - "type": "string", - "description": "The type of the parameters object (usually 'object')." - }, - "required": { - "type": "array", - "description": "List of required parameter names.", - "items": { - "type": "string" - } - }, - "properties": { - "type": "object", - "description": "Definitions of each parameter.", - "additionalProperties": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The data type of the parameter." - }, - "description": { - "type": "string", - "description": "A description of the expected parameter." - } - }, - "required": [ - "type", - "description" - ] - } - } - }, - "required": [ - "type", - "properties" - ] - } - }, - "required": [ - "name", - "description", - "parameters" - ] - } - }, - "required": [ - "type", - "function" - ] - } - ] - } - }, - "response_format": { - "title": "JSON Mode", - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_object", - "json_schema" - ] - }, - "json_schema": {} - } - }, - "raw": { - "type": "boolean", - "default": false, - "description": "If true, a chat template is not applied and you must adhere to the specific model's expected formatting." - }, - "stream": { - "type": "boolean", - "default": false, - "description": "If true, the response will be streamed back incrementally using SSE, Server Sent Events." - }, - "max_tokens": { - "type": "integer", - "default": 256, - "description": "The maximum number of tokens to generate in the response." - }, - "temperature": { - "type": "number", - "default": 0.6, - "minimum": 0, - "maximum": 5, - "description": "Controls the randomness of the output; higher values produce more random results." - }, - "top_p": { - "type": "number", - "minimum": 0.001, - "maximum": 1, - "description": "Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses." - }, - "top_k": { - "type": "integer", - "minimum": 1, - "maximum": 50, - "description": "Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises." - }, - "seed": { - "type": "integer", - "minimum": 1, - "maximum": 9999999999, - "description": "Random seed for reproducibility of the generation." - }, - "repetition_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Penalty for repeated tokens; higher values discourage repetition." - }, - "frequency_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Decreases the likelihood of the model repeating the same lines verbatim." - }, - "presence_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Increases the likelihood of the model introducing new topics." - } - }, - "required": [ - "messages" - ] - } - ] - }, - "output": { - "oneOf": [ - { - "type": "object", - "properties": { - "response": { - "type": "string", - "description": "The generated text response from the model" - }, - "usage": { - "type": "object", - "description": "Usage statistics for the inference request", - "properties": { - "prompt_tokens": { - "type": "number", - "description": "Total number of tokens in input", - "default": 0 - }, - "completion_tokens": { - "type": "number", - "description": "Total number of tokens in output", - "default": 0 - }, - "total_tokens": { - "type": "number", - "description": "Total number of input and output tokens", - "default": 0 - } - } - }, - "tool_calls": { - "type": "array", - "description": "An array of tool calls requests made during the response generation", - "items": { - "type": "object", - "properties": { - "arguments": { - "type": "object", - "description": "The arguments passed to be passed to the tool call request" - }, - "name": { - "type": "string", - "description": "The name of the tool to be called" - } - } - } - } - }, - "required": [ - "response" - ] - }, - { - "type": "string", - "format": "binary" - } - ] - } - } -} \ No newline at end of file diff --git a/src/content/workers-ai-models/deepseek-r1-distill-qwen-32b.json b/src/content/workers-ai-models/deepseek-r1-distill-qwen-32b.json deleted file mode 100644 index ad705f7ccb59243..000000000000000 --- a/src/content/workers-ai-models/deepseek-r1-distill-qwen-32b.json +++ /dev/null @@ -1,477 +0,0 @@ -{ - "id": "ad01ab83-baf8-4e7b-8fed-a0a219d4eb45", - "source": 1, - "name": "@cf/deepseek-ai/deepseek-r1-distill-qwen-32b", - "description": "DeepSeek-R1-Distill-Qwen-32B is a model distilled from DeepSeek-R1 based on Qwen2.5. It outperforms OpenAI-o1-mini across various benchmarks, achieving new state-of-the-art results for dense models.", - "task": { - "id": "c329a1f9-323d-4e91-b2aa-582dd4188d34", - "name": "Text Generation", - "description": "Family of generative text models, such as large language models (LLM), that can be adapted for a variety of natural language tasks." - }, - "created_at": "2025-01-22 19:48:55.776", - "tags": [], - "properties": [ - { - "property_id": "context_window", - "value": "80000" - }, - { - "property_id": "price", - "value": [ - { - "unit": "per M input tokens", - "price": 0.5, - "currency": "USD" - }, - { - "unit": "per M output tokens", - "price": 4.88, - "currency": "USD" - } - ] - }, - { - "property_id": "reasoning", - "value": "true" - }, - { - "property_id": "terms", - "value": "https://github.com/deepseek-ai/DeepSeek-R1/blob/main/LICENSE" - } - ], - "schema": { - "input": { - "type": "object", - "oneOf": [ - { - "title": "Prompt", - "properties": { - "prompt": { - "type": "string", - "minLength": 1, - "description": "The input text prompt for the model to generate a response." - }, - "lora": { - "type": "string", - "description": "Name of the LoRA (Low-Rank Adaptation) model to fine-tune the base model." - }, - "response_format": { - "title": "JSON Mode", - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_object", - "json_schema" - ] - }, - "json_schema": {} - } - }, - "raw": { - "type": "boolean", - "default": false, - "description": "If true, a chat template is not applied and you must adhere to the specific model's expected formatting." - }, - "stream": { - "type": "boolean", - "default": false, - "description": "If true, the response will be streamed back incrementally using SSE, Server Sent Events." - }, - "max_tokens": { - "type": "integer", - "default": 256, - "description": "The maximum number of tokens to generate in the response." - }, - "temperature": { - "type": "number", - "default": 0.6, - "minimum": 0, - "maximum": 5, - "description": "Controls the randomness of the output; higher values produce more random results." - }, - "top_p": { - "type": "number", - "minimum": 0.001, - "maximum": 1, - "description": "Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses." - }, - "top_k": { - "type": "integer", - "minimum": 1, - "maximum": 50, - "description": "Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises." - }, - "seed": { - "type": "integer", - "minimum": 1, - "maximum": 9999999999, - "description": "Random seed for reproducibility of the generation." - }, - "repetition_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Penalty for repeated tokens; higher values discourage repetition." - }, - "frequency_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Decreases the likelihood of the model repeating the same lines verbatim." - }, - "presence_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Increases the likelihood of the model introducing new topics." - } - }, - "required": [ - "prompt" - ] - }, - { - "title": "Messages", - "properties": { - "messages": { - "type": "array", - "description": "An array of message objects representing the conversation history.", - "items": { - "type": "object", - "properties": { - "role": { - "type": "string", - "description": "The role of the message sender (e.g., 'user', 'assistant', 'system', 'tool')." - }, - "content": { - "oneOf": [ - { - "type": "string", - "description": "The content of the message as a string." - }, - { - "type": "array", - "description": "Array of text content parts.", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "Type of the content (text)" - }, - "text": { - "type": "string", - "description": "Text content" - } - } - } - } - ] - } - }, - "required": [ - "role", - "content" - ] - } - }, - "functions": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "code": { - "type": "string" - } - }, - "required": [ - "name", - "code" - ] - } - }, - "tools": { - "type": "array", - "description": "A list of tools available for the assistant to use.", - "items": { - "type": "object", - "oneOf": [ - { - "properties": { - "name": { - "type": "string", - "description": "The name of the tool. More descriptive the better." - }, - "description": { - "type": "string", - "description": "A brief description of what the tool does." - }, - "parameters": { - "type": "object", - "description": "Schema defining the parameters accepted by the tool.", - "properties": { - "type": { - "type": "string", - "description": "The type of the parameters object (usually 'object')." - }, - "required": { - "type": "array", - "description": "List of required parameter names.", - "items": { - "type": "string" - } - }, - "properties": { - "type": "object", - "description": "Definitions of each parameter.", - "additionalProperties": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The data type of the parameter." - }, - "description": { - "type": "string", - "description": "A description of the expected parameter." - } - }, - "required": [ - "type", - "description" - ] - } - } - }, - "required": [ - "type", - "properties" - ] - } - }, - "required": [ - "name", - "description", - "parameters" - ] - }, - { - "properties": { - "type": { - "type": "string", - "description": "Specifies the type of tool (e.g., 'function')." - }, - "function": { - "type": "object", - "description": "Details of the function tool.", - "properties": { - "name": { - "type": "string", - "description": "The name of the function." - }, - "description": { - "type": "string", - "description": "A brief description of what the function does." - }, - "parameters": { - "type": "object", - "description": "Schema defining the parameters accepted by the function.", - "properties": { - "type": { - "type": "string", - "description": "The type of the parameters object (usually 'object')." - }, - "required": { - "type": "array", - "description": "List of required parameter names.", - "items": { - "type": "string" - } - }, - "properties": { - "type": "object", - "description": "Definitions of each parameter.", - "additionalProperties": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The data type of the parameter." - }, - "description": { - "type": "string", - "description": "A description of the expected parameter." - } - }, - "required": [ - "type", - "description" - ] - } - } - }, - "required": [ - "type", - "properties" - ] - } - }, - "required": [ - "name", - "description", - "parameters" - ] - } - }, - "required": [ - "type", - "function" - ] - } - ] - } - }, - "response_format": { - "title": "JSON Mode", - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_object", - "json_schema" - ] - }, - "json_schema": {} - } - }, - "raw": { - "type": "boolean", - "default": false, - "description": "If true, a chat template is not applied and you must adhere to the specific model's expected formatting." - }, - "stream": { - "type": "boolean", - "default": false, - "description": "If true, the response will be streamed back incrementally using SSE, Server Sent Events." - }, - "max_tokens": { - "type": "integer", - "default": 256, - "description": "The maximum number of tokens to generate in the response." - }, - "temperature": { - "type": "number", - "default": 0.6, - "minimum": 0, - "maximum": 5, - "description": "Controls the randomness of the output; higher values produce more random results." - }, - "top_p": { - "type": "number", - "minimum": 0.001, - "maximum": 1, - "description": "Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses." - }, - "top_k": { - "type": "integer", - "minimum": 1, - "maximum": 50, - "description": "Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises." - }, - "seed": { - "type": "integer", - "minimum": 1, - "maximum": 9999999999, - "description": "Random seed for reproducibility of the generation." - }, - "repetition_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Penalty for repeated tokens; higher values discourage repetition." - }, - "frequency_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Decreases the likelihood of the model repeating the same lines verbatim." - }, - "presence_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Increases the likelihood of the model introducing new topics." - } - }, - "required": [ - "messages" - ] - } - ] - }, - "output": { - "oneOf": [ - { - "type": "object", - "properties": { - "response": { - "type": "string", - "description": "The generated text response from the model" - }, - "usage": { - "type": "object", - "description": "Usage statistics for the inference request", - "properties": { - "prompt_tokens": { - "type": "number", - "description": "Total number of tokens in input", - "default": 0 - }, - "completion_tokens": { - "type": "number", - "description": "Total number of tokens in output", - "default": 0 - }, - "total_tokens": { - "type": "number", - "description": "Total number of input and output tokens", - "default": 0 - } - } - }, - "tool_calls": { - "type": "array", - "description": "An array of tool calls requests made during the response generation", - "items": { - "type": "object", - "properties": { - "arguments": { - "type": "object", - "description": "The arguments passed to be passed to the tool call request" - }, - "name": { - "type": "string", - "description": "The name of the tool to be called" - } - } - } - } - }, - "required": [ - "response" - ] - }, - { - "type": "string", - "format": "binary" - } - ] - } - } -} \ No newline at end of file diff --git a/src/content/workers-ai-models/detr-resnet-50.json b/src/content/workers-ai-models/detr-resnet-50.json deleted file mode 100644 index ae6dbfa8fa7742e..000000000000000 --- a/src/content/workers-ai-models/detr-resnet-50.json +++ /dev/null @@ -1,93 +0,0 @@ -{ - "id": "cc34ce52-3059-415f-9a48-12aa919d37ee", - "source": 1, - "name": "@cf/facebook/detr-resnet-50", - "description": "DEtection TRansformer (DETR) model trained end-to-end on COCO 2017 object detection (118k annotated images).", - "task": { - "id": "9c178979-90d9-49d8-9e2c-0f1cf01815d4", - "name": "Object Detection", - "description": "Object detection models can detect instances of objects like persons, faces, license plates, or others in an image. This task takes an image as input and returns a list of detected objects, each one containing a label, a probability score, and its surrounding box coordinates." - }, - "created_at": "2024-02-27 17:43:51.922", - "tags": [], - "properties": [ - { - "property_id": "beta", - "value": "true" - }, - { - "property_id": "price", - "value": [ - { - "unit": "per inference request", - "price": 0.0000075, - "currency": "USD" - } - ] - } - ], - "schema": { - "input": { - "oneOf": [ - { - "type": "string", - "format": "binary", - "description": "The image to use for detection" - }, - { - "type": "object", - "properties": { - "image": { - "type": "array", - "description": "An array of integers that represent the image data constrained to 8-bit unsigned integer values", - "items": { - "type": "number", - "description": "A value between 0 and 255 (unsigned 8bit)" - } - } - } - } - ] - }, - "output": { - "type": "array", - "contentType": "application/json", - "description": "An array of detected objects within the input image", - "items": { - "type": "object", - "properties": { - "score": { - "type": "number", - "description": "Confidence score indicating the likelihood that the detection is correct" - }, - "label": { - "type": "string", - "description": "The class label or name of the detected object" - }, - "box": { - "type": "object", - "description": "Coordinates defining the bounding box around the detected object", - "properties": { - "xmin": { - "type": "number", - "description": "The x-coordinate of the top-left corner of the bounding box" - }, - "ymin": { - "type": "number", - "description": "The y-coordinate of the top-left corner of the bounding box" - }, - "xmax": { - "type": "number", - "description": "The x-coordinate of the bottom-right corner of the bounding box" - }, - "ymax": { - "type": "number", - "description": "The y-coordinate of the bottom-right corner of the bounding box" - } - } - } - } - } - } - } -} \ No newline at end of file diff --git a/src/content/workers-ai-models/discolm-german-7b-v1-awq.json b/src/content/workers-ai-models/discolm-german-7b-v1-awq.json deleted file mode 100644 index f3dccd2f1a14d0d..000000000000000 --- a/src/content/workers-ai-models/discolm-german-7b-v1-awq.json +++ /dev/null @@ -1,466 +0,0 @@ -{ - "id": "9d2ab560-065e-4d0d-a789-d4bc7468d33e", - "source": 1, - "name": "@cf/thebloke/discolm-german-7b-v1-awq", - "description": "DiscoLM German 7b is a Mistral-based large language model with a focus on German-language applications. AWQ is an efficient, accurate and blazing-fast low-bit weight quantization method, currently supporting 4-bit quantization.", - "task": { - "id": "c329a1f9-323d-4e91-b2aa-582dd4188d34", - "name": "Text Generation", - "description": "Family of generative text models, such as large language models (LLM), that can be adapted for a variety of natural language tasks." - }, - "created_at": "2024-02-27 18:23:05.178", - "tags": [], - "properties": [ - { - "property_id": "beta", - "value": "true" - }, - { - "property_id": "context_window", - "value": "4096" - }, - { - "property_id": "info", - "value": "https://huggingface.co/TheBloke/DiscoLM_German_7b_v1-AWQ" - }, - { - "property_id": "planned_deprecation_date", - "value": "2025-10-01" - } - ], - "schema": { - "input": { - "type": "object", - "oneOf": [ - { - "title": "Prompt", - "properties": { - "prompt": { - "type": "string", - "minLength": 1, - "description": "The input text prompt for the model to generate a response." - }, - "lora": { - "type": "string", - "description": "Name of the LoRA (Low-Rank Adaptation) model to fine-tune the base model." - }, - "response_format": { - "title": "JSON Mode", - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_object", - "json_schema" - ] - }, - "json_schema": {} - } - }, - "raw": { - "type": "boolean", - "default": false, - "description": "If true, a chat template is not applied and you must adhere to the specific model's expected formatting." - }, - "stream": { - "type": "boolean", - "default": false, - "description": "If true, the response will be streamed back incrementally using SSE, Server Sent Events." - }, - "max_tokens": { - "type": "integer", - "default": 256, - "description": "The maximum number of tokens to generate in the response." - }, - "temperature": { - "type": "number", - "default": 0.6, - "minimum": 0, - "maximum": 5, - "description": "Controls the randomness of the output; higher values produce more random results." - }, - "top_p": { - "type": "number", - "minimum": 0.001, - "maximum": 1, - "description": "Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses." - }, - "top_k": { - "type": "integer", - "minimum": 1, - "maximum": 50, - "description": "Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises." - }, - "seed": { - "type": "integer", - "minimum": 1, - "maximum": 9999999999, - "description": "Random seed for reproducibility of the generation." - }, - "repetition_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Penalty for repeated tokens; higher values discourage repetition." - }, - "frequency_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Decreases the likelihood of the model repeating the same lines verbatim." - }, - "presence_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Increases the likelihood of the model introducing new topics." - } - }, - "required": [ - "prompt" - ] - }, - { - "title": "Messages", - "properties": { - "messages": { - "type": "array", - "description": "An array of message objects representing the conversation history.", - "items": { - "type": "object", - "properties": { - "role": { - "type": "string", - "description": "The role of the message sender (e.g., 'user', 'assistant', 'system', 'tool')." - }, - "content": { - "oneOf": [ - { - "type": "string", - "description": "The content of the message as a string." - }, - { - "type": "array", - "description": "Array of text content parts.", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "Type of the content (text)" - }, - "text": { - "type": "string", - "description": "Text content" - } - } - } - } - ] - } - }, - "required": [ - "role", - "content" - ] - } - }, - "functions": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "code": { - "type": "string" - } - }, - "required": [ - "name", - "code" - ] - } - }, - "tools": { - "type": "array", - "description": "A list of tools available for the assistant to use.", - "items": { - "type": "object", - "oneOf": [ - { - "properties": { - "name": { - "type": "string", - "description": "The name of the tool. More descriptive the better." - }, - "description": { - "type": "string", - "description": "A brief description of what the tool does." - }, - "parameters": { - "type": "object", - "description": "Schema defining the parameters accepted by the tool.", - "properties": { - "type": { - "type": "string", - "description": "The type of the parameters object (usually 'object')." - }, - "required": { - "type": "array", - "description": "List of required parameter names.", - "items": { - "type": "string" - } - }, - "properties": { - "type": "object", - "description": "Definitions of each parameter.", - "additionalProperties": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The data type of the parameter." - }, - "description": { - "type": "string", - "description": "A description of the expected parameter." - } - }, - "required": [ - "type", - "description" - ] - } - } - }, - "required": [ - "type", - "properties" - ] - } - }, - "required": [ - "name", - "description", - "parameters" - ] - }, - { - "properties": { - "type": { - "type": "string", - "description": "Specifies the type of tool (e.g., 'function')." - }, - "function": { - "type": "object", - "description": "Details of the function tool.", - "properties": { - "name": { - "type": "string", - "description": "The name of the function." - }, - "description": { - "type": "string", - "description": "A brief description of what the function does." - }, - "parameters": { - "type": "object", - "description": "Schema defining the parameters accepted by the function.", - "properties": { - "type": { - "type": "string", - "description": "The type of the parameters object (usually 'object')." - }, - "required": { - "type": "array", - "description": "List of required parameter names.", - "items": { - "type": "string" - } - }, - "properties": { - "type": "object", - "description": "Definitions of each parameter.", - "additionalProperties": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The data type of the parameter." - }, - "description": { - "type": "string", - "description": "A description of the expected parameter." - } - }, - "required": [ - "type", - "description" - ] - } - } - }, - "required": [ - "type", - "properties" - ] - } - }, - "required": [ - "name", - "description", - "parameters" - ] - } - }, - "required": [ - "type", - "function" - ] - } - ] - } - }, - "response_format": { - "title": "JSON Mode", - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_object", - "json_schema" - ] - }, - "json_schema": {} - } - }, - "raw": { - "type": "boolean", - "default": false, - "description": "If true, a chat template is not applied and you must adhere to the specific model's expected formatting." - }, - "stream": { - "type": "boolean", - "default": false, - "description": "If true, the response will be streamed back incrementally using SSE, Server Sent Events." - }, - "max_tokens": { - "type": "integer", - "default": 256, - "description": "The maximum number of tokens to generate in the response." - }, - "temperature": { - "type": "number", - "default": 0.6, - "minimum": 0, - "maximum": 5, - "description": "Controls the randomness of the output; higher values produce more random results." - }, - "top_p": { - "type": "number", - "minimum": 0.001, - "maximum": 1, - "description": "Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses." - }, - "top_k": { - "type": "integer", - "minimum": 1, - "maximum": 50, - "description": "Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises." - }, - "seed": { - "type": "integer", - "minimum": 1, - "maximum": 9999999999, - "description": "Random seed for reproducibility of the generation." - }, - "repetition_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Penalty for repeated tokens; higher values discourage repetition." - }, - "frequency_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Decreases the likelihood of the model repeating the same lines verbatim." - }, - "presence_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Increases the likelihood of the model introducing new topics." - } - }, - "required": [ - "messages" - ] - } - ] - }, - "output": { - "oneOf": [ - { - "type": "object", - "properties": { - "response": { - "type": "string", - "description": "The generated text response from the model" - }, - "usage": { - "type": "object", - "description": "Usage statistics for the inference request", - "properties": { - "prompt_tokens": { - "type": "number", - "description": "Total number of tokens in input", - "default": 0 - }, - "completion_tokens": { - "type": "number", - "description": "Total number of tokens in output", - "default": 0 - }, - "total_tokens": { - "type": "number", - "description": "Total number of input and output tokens", - "default": 0 - } - } - }, - "tool_calls": { - "type": "array", - "description": "An array of tool calls requests made during the response generation", - "items": { - "type": "object", - "properties": { - "arguments": { - "type": "object", - "description": "The arguments passed to be passed to the tool call request" - }, - "name": { - "type": "string", - "description": "The name of the tool to be called" - } - } - } - } - }, - "required": [ - "response" - ] - }, - { - "type": "string", - "format": "binary" - } - ] - } - } -} \ No newline at end of file diff --git a/src/content/workers-ai-models/distilbert-sst-2-int8.json b/src/content/workers-ai-models/distilbert-sst-2-int8.json deleted file mode 100644 index b19055f802a499e..000000000000000 --- a/src/content/workers-ai-models/distilbert-sst-2-int8.json +++ /dev/null @@ -1,62 +0,0 @@ -{ - "id": "eaf31752-a074-441f-8b70-d593255d2811", - "source": 1, - "name": "@cf/huggingface/distilbert-sst-2-int8", - "description": "Distilled BERT model that was finetuned on SST-2 for sentiment classification", - "task": { - "id": "19606750-23ed-4371-aab2-c20349b53a60", - "name": "Text Classification", - "description": "Sentiment analysis or text classification is a common NLP task that classifies a text input into labels or classes." - }, - "created_at": "2023-09-25 19:21:11.898", - "tags": [], - "properties": [ - { - "property_id": "price", - "value": [ - { - "unit": "per M input tokens", - "price": 0.026, - "currency": "USD" - } - ] - }, - { - "property_id": "info", - "value": "https://huggingface.co/Intel/distilbert-base-uncased-finetuned-sst-2-english-int8-static" - } - ], - "schema": { - "input": { - "type": "object", - "properties": { - "text": { - "type": "string", - "minLength": 1, - "description": "The text that you want to classify" - } - }, - "required": [ - "text" - ] - }, - "output": { - "type": "array", - "contentType": "application/json", - "description": "An array of classification results for the input text", - "items": { - "type": "object", - "properties": { - "score": { - "type": "number", - "description": "Confidence score indicating the likelihood that the text belongs to the specified label" - }, - "label": { - "type": "string", - "description": "The classification label assigned to the text (e.g., 'POSITIVE' or 'NEGATIVE')" - } - } - } - } - } -} \ No newline at end of file diff --git a/src/content/workers-ai-models/dreamshaper-8-lcm.json b/src/content/workers-ai-models/dreamshaper-8-lcm.json deleted file mode 100644 index 4082c3a9e0ac70d..000000000000000 --- a/src/content/workers-ai-models/dreamshaper-8-lcm.json +++ /dev/null @@ -1,96 +0,0 @@ -{ - "id": "7912c0ab-542e-44b9-b9ee-3113d226a8b5", - "source": 1, - "name": "@cf/lykon/dreamshaper-8-lcm", - "description": "Stable Diffusion model that has been fine-tuned to be better at photorealism without sacrificing range.", - "task": { - "id": "3d6e1f35-341b-4915-a6c8-9a7142a9033a", - "name": "Text-to-Image", - "description": "Generates images from input text. These models can be used to generate and modify images based on text prompts." - }, - "created_at": "2024-02-27 17:40:38.881", - "tags": [], - "properties": [ - { - "property_id": "info", - "value": "https://huggingface.co/Lykon/DreamShaper" - } - ], - "schema": { - "input": { - "type": "object", - "properties": { - "prompt": { - "type": "string", - "minLength": 1, - "description": "A text description of the image you want to generate" - }, - "negative_prompt": { - "type": "string", - "description": "Text describing elements to avoid in the generated image" - }, - "height": { - "type": "integer", - "minimum": 256, - "maximum": 2048, - "description": "The height of the generated image in pixels" - }, - "width": { - "type": "integer", - "minimum": 256, - "maximum": 2048, - "description": "The width of the generated image in pixels" - }, - "image": { - "type": "array", - "description": "For use with img2img tasks. An array of integers that represent the image data constrained to 8-bit unsigned integer values", - "items": { - "type": "number", - "description": "A value between 0 and 255" - } - }, - "image_b64": { - "type": "string", - "description": "For use with img2img tasks. A base64-encoded string of the input image" - }, - "mask": { - "type": "array", - "description": "An array representing An array of integers that represent mask image data for inpainting constrained to 8-bit unsigned integer values", - "items": { - "type": "number", - "description": "A value between 0 and 255" - } - }, - "num_steps": { - "type": "integer", - "default": 20, - "maximum": 20, - "description": "The number of diffusion steps; higher values can improve quality but take longer" - }, - "strength": { - "type": "number", - "default": 1, - "description": "A value between 0 and 1 indicating how strongly to apply the transformation during img2img tasks; lower values make the output closer to the input image" - }, - "guidance": { - "type": "number", - "default": 7.5, - "description": "Controls how closely the generated image should adhere to the prompt; higher values make the image more aligned with the prompt" - }, - "seed": { - "type": "integer", - "description": "Random seed for reproducibility of the image generation" - } - }, - "required": [ - "prompt" - ] - }, - "output": { - "type": "string", - "contentType": "image/png", - "format": "binary", - "description": "The generated image in PNG format" - } - } -} \ No newline at end of file diff --git a/src/content/workers-ai-models/embeddinggemma-300m.json b/src/content/workers-ai-models/embeddinggemma-300m.json deleted file mode 100644 index 49cccd925b327cb..000000000000000 --- a/src/content/workers-ai-models/embeddinggemma-300m.json +++ /dev/null @@ -1,66 +0,0 @@ -{ - "id": "15631501-2742-4346-a469-22fe202188a2", - "source": 1, - "name": "@cf/google/embeddinggemma-300m", - "description": "EmbeddingGemma is a 300M parameter, state-of-the-art for its size, open embedding model from Google, built from Gemma 3 (with T5Gemma initialization) and the same research and technology used to create Gemini models. EmbeddingGemma produces vector representations of text, making it well-suited for search and retrieval tasks, including classification, clustering, and semantic similarity search. This model was trained with data in 100+ spoken languages.", - "task": { - "id": "0137cdcf-162a-4108-94f2-1ca59e8c65ee", - "name": "Text Embeddings", - "description": "Feature extraction models transform raw data into numerical features that can be processed while preserving the information in the original dataset. These models are ideal as part of building vector search applications or Retrieval Augmented Generation workflows with Large Language Models (LLM)." - }, - "created_at": "2025-09-04 16:38:44.980", - "tags": [], - "properties": [], - "schema": { - "input": { - "type": "object", - "properties": { - "text": { - "oneOf": [ - { - "type": "string", - "description": "The text to embed", - "minLength": 1 - }, - { - "type": "array", - "description": "Batch of text values to embed", - "items": { - "type": "string", - "description": "The text to embed", - "minLength": 1 - }, - "maxItems": 100 - } - ] - } - }, - "required": [ - "text" - ] - }, - "output": { - "type": "object", - "contentType": "application/json", - "properties": { - "shape": { - "type": "array", - "items": { - "type": "number" - } - }, - "data": { - "type": "array", - "description": "Embeddings of the requested text values", - "items": { - "type": "array", - "description": "Floating point embedding representation shaped by the embedding model", - "items": { - "type": "number" - } - } - } - } - } - } -} \ No newline at end of file diff --git a/src/content/workers-ai-models/falcon-7b-instruct.json b/src/content/workers-ai-models/falcon-7b-instruct.json deleted file mode 100644 index d8f8f7b73c9f43e..000000000000000 --- a/src/content/workers-ai-models/falcon-7b-instruct.json +++ /dev/null @@ -1,466 +0,0 @@ -{ - "id": "48dd2443-0c61-43b2-8894-22abddf1b081", - "source": 1, - "name": "@cf/tiiuae/falcon-7b-instruct", - "description": "Falcon-7B-Instruct is a 7B parameters causal decoder-only model built by TII based on Falcon-7B and finetuned on a mixture of chat/instruct datasets.", - "task": { - "id": "c329a1f9-323d-4e91-b2aa-582dd4188d34", - "name": "Text Generation", - "description": "Family of generative text models, such as large language models (LLM), that can be adapted for a variety of natural language tasks." - }, - "created_at": "2024-02-27 18:21:15.796", - "tags": [], - "properties": [ - { - "property_id": "beta", - "value": "true" - }, - { - "property_id": "context_window", - "value": "4096" - }, - { - "property_id": "info", - "value": "https://huggingface.co/tiiuae/falcon-7b-instruct" - }, - { - "property_id": "planned_deprecation_date", - "value": "2025-10-01" - } - ], - "schema": { - "input": { - "type": "object", - "oneOf": [ - { - "title": "Prompt", - "properties": { - "prompt": { - "type": "string", - "minLength": 1, - "description": "The input text prompt for the model to generate a response." - }, - "lora": { - "type": "string", - "description": "Name of the LoRA (Low-Rank Adaptation) model to fine-tune the base model." - }, - "response_format": { - "title": "JSON Mode", - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_object", - "json_schema" - ] - }, - "json_schema": {} - } - }, - "raw": { - "type": "boolean", - "default": false, - "description": "If true, a chat template is not applied and you must adhere to the specific model's expected formatting." - }, - "stream": { - "type": "boolean", - "default": false, - "description": "If true, the response will be streamed back incrementally using SSE, Server Sent Events." - }, - "max_tokens": { - "type": "integer", - "default": 256, - "description": "The maximum number of tokens to generate in the response." - }, - "temperature": { - "type": "number", - "default": 0.6, - "minimum": 0, - "maximum": 5, - "description": "Controls the randomness of the output; higher values produce more random results." - }, - "top_p": { - "type": "number", - "minimum": 0.001, - "maximum": 1, - "description": "Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses." - }, - "top_k": { - "type": "integer", - "minimum": 1, - "maximum": 50, - "description": "Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises." - }, - "seed": { - "type": "integer", - "minimum": 1, - "maximum": 9999999999, - "description": "Random seed for reproducibility of the generation." - }, - "repetition_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Penalty for repeated tokens; higher values discourage repetition." - }, - "frequency_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Decreases the likelihood of the model repeating the same lines verbatim." - }, - "presence_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Increases the likelihood of the model introducing new topics." - } - }, - "required": [ - "prompt" - ] - }, - { - "title": "Messages", - "properties": { - "messages": { - "type": "array", - "description": "An array of message objects representing the conversation history.", - "items": { - "type": "object", - "properties": { - "role": { - "type": "string", - "description": "The role of the message sender (e.g., 'user', 'assistant', 'system', 'tool')." - }, - "content": { - "oneOf": [ - { - "type": "string", - "description": "The content of the message as a string." - }, - { - "type": "array", - "description": "Array of text content parts.", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "Type of the content (text)" - }, - "text": { - "type": "string", - "description": "Text content" - } - } - } - } - ] - } - }, - "required": [ - "role", - "content" - ] - } - }, - "functions": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "code": { - "type": "string" - } - }, - "required": [ - "name", - "code" - ] - } - }, - "tools": { - "type": "array", - "description": "A list of tools available for the assistant to use.", - "items": { - "type": "object", - "oneOf": [ - { - "properties": { - "name": { - "type": "string", - "description": "The name of the tool. More descriptive the better." - }, - "description": { - "type": "string", - "description": "A brief description of what the tool does." - }, - "parameters": { - "type": "object", - "description": "Schema defining the parameters accepted by the tool.", - "properties": { - "type": { - "type": "string", - "description": "The type of the parameters object (usually 'object')." - }, - "required": { - "type": "array", - "description": "List of required parameter names.", - "items": { - "type": "string" - } - }, - "properties": { - "type": "object", - "description": "Definitions of each parameter.", - "additionalProperties": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The data type of the parameter." - }, - "description": { - "type": "string", - "description": "A description of the expected parameter." - } - }, - "required": [ - "type", - "description" - ] - } - } - }, - "required": [ - "type", - "properties" - ] - } - }, - "required": [ - "name", - "description", - "parameters" - ] - }, - { - "properties": { - "type": { - "type": "string", - "description": "Specifies the type of tool (e.g., 'function')." - }, - "function": { - "type": "object", - "description": "Details of the function tool.", - "properties": { - "name": { - "type": "string", - "description": "The name of the function." - }, - "description": { - "type": "string", - "description": "A brief description of what the function does." - }, - "parameters": { - "type": "object", - "description": "Schema defining the parameters accepted by the function.", - "properties": { - "type": { - "type": "string", - "description": "The type of the parameters object (usually 'object')." - }, - "required": { - "type": "array", - "description": "List of required parameter names.", - "items": { - "type": "string" - } - }, - "properties": { - "type": "object", - "description": "Definitions of each parameter.", - "additionalProperties": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The data type of the parameter." - }, - "description": { - "type": "string", - "description": "A description of the expected parameter." - } - }, - "required": [ - "type", - "description" - ] - } - } - }, - "required": [ - "type", - "properties" - ] - } - }, - "required": [ - "name", - "description", - "parameters" - ] - } - }, - "required": [ - "type", - "function" - ] - } - ] - } - }, - "response_format": { - "title": "JSON Mode", - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_object", - "json_schema" - ] - }, - "json_schema": {} - } - }, - "raw": { - "type": "boolean", - "default": false, - "description": "If true, a chat template is not applied and you must adhere to the specific model's expected formatting." - }, - "stream": { - "type": "boolean", - "default": false, - "description": "If true, the response will be streamed back incrementally using SSE, Server Sent Events." - }, - "max_tokens": { - "type": "integer", - "default": 256, - "description": "The maximum number of tokens to generate in the response." - }, - "temperature": { - "type": "number", - "default": 0.6, - "minimum": 0, - "maximum": 5, - "description": "Controls the randomness of the output; higher values produce more random results." - }, - "top_p": { - "type": "number", - "minimum": 0.001, - "maximum": 1, - "description": "Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses." - }, - "top_k": { - "type": "integer", - "minimum": 1, - "maximum": 50, - "description": "Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises." - }, - "seed": { - "type": "integer", - "minimum": 1, - "maximum": 9999999999, - "description": "Random seed for reproducibility of the generation." - }, - "repetition_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Penalty for repeated tokens; higher values discourage repetition." - }, - "frequency_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Decreases the likelihood of the model repeating the same lines verbatim." - }, - "presence_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Increases the likelihood of the model introducing new topics." - } - }, - "required": [ - "messages" - ] - } - ] - }, - "output": { - "oneOf": [ - { - "type": "object", - "properties": { - "response": { - "type": "string", - "description": "The generated text response from the model" - }, - "usage": { - "type": "object", - "description": "Usage statistics for the inference request", - "properties": { - "prompt_tokens": { - "type": "number", - "description": "Total number of tokens in input", - "default": 0 - }, - "completion_tokens": { - "type": "number", - "description": "Total number of tokens in output", - "default": 0 - }, - "total_tokens": { - "type": "number", - "description": "Total number of input and output tokens", - "default": 0 - } - } - }, - "tool_calls": { - "type": "array", - "description": "An array of tool calls requests made during the response generation", - "items": { - "type": "object", - "properties": { - "arguments": { - "type": "object", - "description": "The arguments passed to be passed to the tool call request" - }, - "name": { - "type": "string", - "description": "The name of the tool to be called" - } - } - } - } - }, - "required": [ - "response" - ] - }, - { - "type": "string", - "format": "binary" - } - ] - } - } -} \ No newline at end of file diff --git a/src/content/workers-ai-models/flux-1-schnell.json b/src/content/workers-ai-models/flux-1-schnell.json deleted file mode 100644 index 543e06134794016..000000000000000 --- a/src/content/workers-ai-models/flux-1-schnell.json +++ /dev/null @@ -1,66 +0,0 @@ -{ - "id": "9e087485-23dc-47fa-997d-f5bfafc0c7cc", - "source": 1, - "name": "@cf/black-forest-labs/flux-1-schnell", - "description": "FLUX.1 [schnell] is a 12 billion parameter rectified flow transformer capable of generating images from text descriptions. ", - "task": { - "id": "3d6e1f35-341b-4915-a6c8-9a7142a9033a", - "name": "Text-to-Image", - "description": "Generates images from input text. These models can be used to generate and modify images based on text prompts." - }, - "created_at": "2024-08-29 16:37:39.541", - "tags": [], - "properties": [ - { - "property_id": "price", - "value": [ - { - "unit": "per 512 by 512 tile", - "price": 0.000053, - "currency": "USD" - }, - { - "unit": "per step", - "price": 0.00011, - "currency": "USD" - } - ] - }, - { - "property_id": "terms", - "value": "https://bfl.ai/legal/terms-of-service" - } - ], - "schema": { - "input": { - "type": "object", - "properties": { - "prompt": { - "type": "string", - "minLength": 1, - "maxLength": 2048, - "description": "A text description of the image you want to generate." - }, - "steps": { - "type": "integer", - "default": 4, - "maximum": 8, - "description": "The number of diffusion steps; higher values can improve quality but take longer." - } - }, - "required": [ - "prompt" - ] - }, - "output": { - "type": "object", - "contentType": "application/json", - "properties": { - "image": { - "type": "string", - "description": "The generated image in Base64 format." - } - } - } - } -} \ No newline at end of file diff --git a/src/content/workers-ai-models/flux-2-dev.json b/src/content/workers-ai-models/flux-2-dev.json deleted file mode 100644 index 03f3988c2e0ac88..000000000000000 --- a/src/content/workers-ai-models/flux-2-dev.json +++ /dev/null @@ -1,73 +0,0 @@ -{ - "id": "3ae8936e-593e-4fb2-85ee-95dd8a057588", - "source": 1, - "name": "@cf/black-forest-labs/flux-2-dev", - "description": "FLUX.2 [dev] is an image model from Black Forest Labs where you can generate highly realistic and detailed images, with multi-reference support.", - "task": { - "id": "3d6e1f35-341b-4915-a6c8-9a7142a9033a", - "name": "Text-to-Image", - "description": "Generates images from input text. These models can be used to generate and modify images based on text prompts." - }, - "created_at": "2025-11-24 15:44:06.050", - "tags": [], - "properties": [ - { - "property_id": "terms", - "value": "https://bfl.ai/legal/terms-of-service" - }, - { - "property_id": "partner", - "value": "true" - }, - { - "property_id": "price", - "value": [ - { - "unit": "per input 512x512 tile, per step", - "price": 0.00021, - "currency": "USD" - }, - { - "unit": "per output 512x512 tile, per step", - "price": 0.00041, - "currency": "USD" - } - ] - } - ], - "schema": - { - "input": { - "type": "object", - "properties": { - "multipart": { - "type": "object", - "properties": { - "body": { - "type": "object" - }, - "contentType": { - "type": "string" - } - }, - "required": [ - "body", - "contentType" - ] - }, - "required": [ - "multipart" - ] - } - }, - "output": { - "type": "object", - "properties": { - "image": { - "type": "string", - "description": "Generated image as Base64 string." - } - } - } - } -} \ No newline at end of file diff --git a/src/content/workers-ai-models/flux-2-klein-4b.json b/src/content/workers-ai-models/flux-2-klein-4b.json deleted file mode 100644 index b5efabc64fed4b5..000000000000000 --- a/src/content/workers-ai-models/flux-2-klein-4b.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "id": "5cdffa8e-1b1e-48e8-85f1-ab9b943cdd32", - "source": 1, - "name": "@cf/black-forest-labs/flux-2-klein-4b", - "description": "FLUX.2 [klein] is an ultra-fast, distilled image model. It unifies image generation and editing in a single model, delivering state-of-the-art quality enabling interactive workflows, real-time previews, and latency-critical applications.", - "task": { - "id": "3d6e1f35-341b-4915-a6c8-9a7142a9033a", - "name": "Text-to-Image", - "description": "Generates images from input text. These models can be used to generate and modify images based on text prompts." - }, - "created_at": "2026-01-14 12:54:55.024", - "tags": [], - "properties": [ - { - "property_id": "partner", - "value": "true" - }, - { - "property_id": "terms", - "value": "https://bfl.ai/legal/terms-of-service" - }, - { - "property_id": "price", - "value": [ - { - "unit": "per input 512x512 tile", - "price": 0.000059, - "currency": "USD" - }, - { - "unit": "per output 512x512 tile", - "price": 0.000287, - "currency": "USD" - } - ] - } - ], - "schema": { - "input": { - "type": "object", - "properties": { - "multipart": { - "type": "object", - "properties": { - "body": { - "type": "object" - }, - "contentType": { - "type": "string" - } - } - } - }, - "required": [ - "multipart" - ] - }, - "output": { - "type": "object", - "properties": { - "image": { - "type": "string", - "description": "Generated image as Base64 string." - } - } - } - } -} \ No newline at end of file diff --git a/src/content/workers-ai-models/flux-2-klein-9b.json b/src/content/workers-ai-models/flux-2-klein-9b.json deleted file mode 100644 index b9d84dbb718b02b..000000000000000 --- a/src/content/workers-ai-models/flux-2-klein-9b.json +++ /dev/null @@ -1,73 +0,0 @@ -{ - "id": "flux-2-klein-9b-uuid", - "source": 1, - "name": "@cf/black-forest-labs/flux-2-klein-9b", - "description": "FLUX.2 [klein] 9B is an ultra-fast, distilled image model with enhanced quality. It unifies image generation and editing in a single model, delivering state-of-the-art quality enabling interactive workflows, real-time previews, and latency-critical applications.", - "task": { - "id": "3d6e1f35-341b-4915-a6c8-9a7142a9033a", - "name": "Text-to-Image", - "description": "Generates images from input text. These models can be used to generate and modify images based on text prompts." - }, - "created_at": "2026-01-23 12:00:00.000", - "tags": [], - "properties": [ - { - "property_id": "partner", - "value": "true" - }, - { - "property_id": "terms", - "value": "https://bfl.ai/legal/terms-of-service" - }, - { - "property_id": "price", - "value": [ - { - "unit": "per first MP (1024x1024)", - "price": 0.015, - "currency": "USD" - }, - { - "unit": "per subsequent MP", - "price": 0.002, - "currency": "USD" - }, - { - "unit": "per input image MP", - "price": 0.002, - "currency": "USD" - } - ] - } - ], - "schema": { - "input": { - "type": "object", - "properties": { - "multipart": { - "type": "object", - "properties": { - "body": { - "type": "object" - }, - "contentType": { - "type": "string" - } - } - } - }, - "required": [ - "multipart" - ] - }, - "output": { - "type": "object", - "properties": { - "image": { - "type": "string", - "description": "Generated image as Base64 string." - } - } - } - } -} diff --git a/src/content/workers-ai-models/flux.json b/src/content/workers-ai-models/flux.json deleted file mode 100644 index 83186b5cf8d88c0..000000000000000 --- a/src/content/workers-ai-models/flux.json +++ /dev/null @@ -1,160 +0,0 @@ -{ - "id": "a2a2afba-b609-4325-8c41-5791ce962239", - "source": 1, - "name": "@cf/deepgram/flux", - "description": "Flux is the first conversational speech recognition model built specifically for voice agents.", - "task": { - "id": "dfce1c48-2a81-462e-a7fd-de97ce985207", - "name": "Automatic Speech Recognition", - "description": "Automatic speech recognition (ASR) models convert a speech signal, typically an audio input, to text." - }, - "created_at": "2025-09-29 21:07:55.114", - "tags": [], - "properties": [ - { - "property_id": "price", - "value": [ - { - "unit": "per audio minute (websocket)", - "price": 0.0077, - "currency": "USD" - } - ] - }, - { - "property_id": "partner", - "value": "true" - }, - { - "property_id": "terms", - "value": "https://deepgram.com/terms" - }, - { - "property_id": "realtime", - "value": "true" - } - ], - "schema": { - "input": { - "type": "object", - "properties": { - "encoding": { - "type": "string", - "description": "Encoding of the audio stream. Currently only supports raw signed little-endian 16-bit PCM.", - "enum": [ - "linear16" - ] - }, - "sample_rate": { - "type": "string", - "description": "Sample rate of the audio stream in Hz.", - "pattern": "^[0-9]+$" - }, - "eager_eot_threshold": { - "type": "string", - "description": "End-of-turn confidence required to fire an eager end-of-turn event. When set, enables EagerEndOfTurn and TurnResumed events. Valid Values 0.3 - 0.9." - }, - "eot_threshold": { - "type": "string", - "description": "End-of-turn confidence required to finish a turn. Valid Values 0.5 - 0.9.", - "default": "0.7" - }, - "eot_timeout_ms": { - "type": "string", - "description": "A turn will be finished when this much time has passed after speech, regardless of EOT confidence.", - "default": "5000", - "pattern": "^[0-9]+$" - }, - "keyterm": { - "type": "string", - "description": "Keyterm prompting can improve recognition of specialized terminology. Pass multiple keyterm query parameters to boost multiple keyterms." - }, - "mip_opt_out": { - "type": "string", - "description": "Opts out requests from the Deepgram Model Improvement Program. Refer to Deepgram Docs for pricing impacts before setting this to true. https://dpgr.am/deepgram-mip", - "enum": [ - "true", - "false" - ], - "default": "false" - }, - "tag": { - "type": "string", - "description": "Label your requests for the purpose of identification during usage reporting" - } - }, - "required": [ - "sample_rate", - "encoding" - ] - }, - "output": { - "type": "object", - "description": "Output will be returned as websocket messages.", - "properties": { - "request_id": { - "type": "string", - "description": "The unique identifier of the request (uuid)" - }, - "sequence_id": { - "type": "integer", - "description": "Starts at 0 and increments for each message the server sends to the client.", - "minimum": 0 - }, - "event": { - "type": "string", - "description": "The type of event being reported.", - "enum": [ - "Update", - "StartOfTurn", - "EagerEndOfTurn", - "TurnResumed", - "EndOfTurn" - ] - }, - "turn_index": { - "type": "integer", - "description": "The index of the current turn", - "minimum": 0 - }, - "audio_window_start": { - "type": "number", - "description": "Start time in seconds of the audio range that was transcribed" - }, - "audio_window_end": { - "type": "number", - "description": "End time in seconds of the audio range that was transcribed" - }, - "transcript": { - "type": "string", - "description": "Text that was said over the course of the current turn" - }, - "words": { - "type": "array", - "description": "The words in the transcript", - "items": { - "type": "object", - "required": [ - "word", - "confidence" - ], - "properties": { - "word": { - "type": "string", - "description": "The individual punctuated, properly-cased word from the transcript" - }, - "confidence": { - "type": "number", - "description": "Confidence that this word was transcribed correctly" - } - } - } - }, - "end_of_turn_confidence": { - "type": "number", - "description": "Confidence that no more speech is coming in this turn" - } - } - } - } -} \ No newline at end of file diff --git a/src/content/workers-ai-models/gemma-2b-it-lora.json b/src/content/workers-ai-models/gemma-2b-it-lora.json deleted file mode 100644 index 44477ee252b0c12..000000000000000 --- a/src/content/workers-ai-models/gemma-2b-it-lora.json +++ /dev/null @@ -1,462 +0,0 @@ -{ - "id": "e8e8abe4-a372-4c13-815f-4688ba655c8e", - "source": 1, - "name": "@cf/google/gemma-2b-it-lora", - "description": "This is a Gemma-2B base model that Cloudflare dedicates for inference with LoRA adapters. Gemma is a family of lightweight, state-of-the-art open models from Google, built from the same research and technology used to create the Gemini models.", - "task": { - "id": "c329a1f9-323d-4e91-b2aa-582dd4188d34", - "name": "Text Generation", - "description": "Family of generative text models, such as large language models (LLM), that can be adapted for a variety of natural language tasks." - }, - "created_at": "2024-04-02 00:19:34.669", - "tags": [], - "properties": [ - { - "property_id": "beta", - "value": "true" - }, - { - "property_id": "context_window", - "value": "8192" - }, - { - "property_id": "lora", - "value": "true" - } - ], - "schema": { - "input": { - "type": "object", - "oneOf": [ - { - "title": "Prompt", - "properties": { - "prompt": { - "type": "string", - "minLength": 1, - "description": "The input text prompt for the model to generate a response." - }, - "lora": { - "type": "string", - "description": "Name of the LoRA (Low-Rank Adaptation) model to fine-tune the base model." - }, - "response_format": { - "title": "JSON Mode", - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_object", - "json_schema" - ] - }, - "json_schema": {} - } - }, - "raw": { - "type": "boolean", - "default": false, - "description": "If true, a chat template is not applied and you must adhere to the specific model's expected formatting." - }, - "stream": { - "type": "boolean", - "default": false, - "description": "If true, the response will be streamed back incrementally using SSE, Server Sent Events." - }, - "max_tokens": { - "type": "integer", - "default": 256, - "description": "The maximum number of tokens to generate in the response." - }, - "temperature": { - "type": "number", - "default": 0.6, - "minimum": 0, - "maximum": 5, - "description": "Controls the randomness of the output; higher values produce more random results." - }, - "top_p": { - "type": "number", - "minimum": 0.001, - "maximum": 1, - "description": "Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses." - }, - "top_k": { - "type": "integer", - "minimum": 1, - "maximum": 50, - "description": "Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises." - }, - "seed": { - "type": "integer", - "minimum": 1, - "maximum": 9999999999, - "description": "Random seed for reproducibility of the generation." - }, - "repetition_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Penalty for repeated tokens; higher values discourage repetition." - }, - "frequency_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Decreases the likelihood of the model repeating the same lines verbatim." - }, - "presence_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Increases the likelihood of the model introducing new topics." - } - }, - "required": [ - "prompt" - ] - }, - { - "title": "Messages", - "properties": { - "messages": { - "type": "array", - "description": "An array of message objects representing the conversation history.", - "items": { - "type": "object", - "properties": { - "role": { - "type": "string", - "description": "The role of the message sender (e.g., 'user', 'assistant', 'system', 'tool')." - }, - "content": { - "oneOf": [ - { - "type": "string", - "description": "The content of the message as a string." - }, - { - "type": "array", - "description": "Array of text content parts.", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "Type of the content (text)" - }, - "text": { - "type": "string", - "description": "Text content" - } - } - } - } - ] - } - }, - "required": [ - "role", - "content" - ] - } - }, - "functions": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "code": { - "type": "string" - } - }, - "required": [ - "name", - "code" - ] - } - }, - "tools": { - "type": "array", - "description": "A list of tools available for the assistant to use.", - "items": { - "type": "object", - "oneOf": [ - { - "properties": { - "name": { - "type": "string", - "description": "The name of the tool. More descriptive the better." - }, - "description": { - "type": "string", - "description": "A brief description of what the tool does." - }, - "parameters": { - "type": "object", - "description": "Schema defining the parameters accepted by the tool.", - "properties": { - "type": { - "type": "string", - "description": "The type of the parameters object (usually 'object')." - }, - "required": { - "type": "array", - "description": "List of required parameter names.", - "items": { - "type": "string" - } - }, - "properties": { - "type": "object", - "description": "Definitions of each parameter.", - "additionalProperties": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The data type of the parameter." - }, - "description": { - "type": "string", - "description": "A description of the expected parameter." - } - }, - "required": [ - "type", - "description" - ] - } - } - }, - "required": [ - "type", - "properties" - ] - } - }, - "required": [ - "name", - "description", - "parameters" - ] - }, - { - "properties": { - "type": { - "type": "string", - "description": "Specifies the type of tool (e.g., 'function')." - }, - "function": { - "type": "object", - "description": "Details of the function tool.", - "properties": { - "name": { - "type": "string", - "description": "The name of the function." - }, - "description": { - "type": "string", - "description": "A brief description of what the function does." - }, - "parameters": { - "type": "object", - "description": "Schema defining the parameters accepted by the function.", - "properties": { - "type": { - "type": "string", - "description": "The type of the parameters object (usually 'object')." - }, - "required": { - "type": "array", - "description": "List of required parameter names.", - "items": { - "type": "string" - } - }, - "properties": { - "type": "object", - "description": "Definitions of each parameter.", - "additionalProperties": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The data type of the parameter." - }, - "description": { - "type": "string", - "description": "A description of the expected parameter." - } - }, - "required": [ - "type", - "description" - ] - } - } - }, - "required": [ - "type", - "properties" - ] - } - }, - "required": [ - "name", - "description", - "parameters" - ] - } - }, - "required": [ - "type", - "function" - ] - } - ] - } - }, - "response_format": { - "title": "JSON Mode", - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_object", - "json_schema" - ] - }, - "json_schema": {} - } - }, - "raw": { - "type": "boolean", - "default": false, - "description": "If true, a chat template is not applied and you must adhere to the specific model's expected formatting." - }, - "stream": { - "type": "boolean", - "default": false, - "description": "If true, the response will be streamed back incrementally using SSE, Server Sent Events." - }, - "max_tokens": { - "type": "integer", - "default": 256, - "description": "The maximum number of tokens to generate in the response." - }, - "temperature": { - "type": "number", - "default": 0.6, - "minimum": 0, - "maximum": 5, - "description": "Controls the randomness of the output; higher values produce more random results." - }, - "top_p": { - "type": "number", - "minimum": 0.001, - "maximum": 1, - "description": "Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses." - }, - "top_k": { - "type": "integer", - "minimum": 1, - "maximum": 50, - "description": "Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises." - }, - "seed": { - "type": "integer", - "minimum": 1, - "maximum": 9999999999, - "description": "Random seed for reproducibility of the generation." - }, - "repetition_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Penalty for repeated tokens; higher values discourage repetition." - }, - "frequency_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Decreases the likelihood of the model repeating the same lines verbatim." - }, - "presence_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Increases the likelihood of the model introducing new topics." - } - }, - "required": [ - "messages" - ] - } - ] - }, - "output": { - "oneOf": [ - { - "type": "object", - "properties": { - "response": { - "type": "string", - "description": "The generated text response from the model" - }, - "usage": { - "type": "object", - "description": "Usage statistics for the inference request", - "properties": { - "prompt_tokens": { - "type": "number", - "description": "Total number of tokens in input", - "default": 0 - }, - "completion_tokens": { - "type": "number", - "description": "Total number of tokens in output", - "default": 0 - }, - "total_tokens": { - "type": "number", - "description": "Total number of input and output tokens", - "default": 0 - } - } - }, - "tool_calls": { - "type": "array", - "description": "An array of tool calls requests made during the response generation", - "items": { - "type": "object", - "properties": { - "arguments": { - "type": "object", - "description": "The arguments passed to be passed to the tool call request" - }, - "name": { - "type": "string", - "description": "The name of the tool to be called" - } - } - } - } - }, - "required": [ - "response" - ] - }, - { - "type": "string", - "format": "binary" - } - ] - } - } -} \ No newline at end of file diff --git a/src/content/workers-ai-models/gemma-3-12b-it.json b/src/content/workers-ai-models/gemma-3-12b-it.json deleted file mode 100644 index a2fd4f166db6a7e..000000000000000 --- a/src/content/workers-ai-models/gemma-3-12b-it.json +++ /dev/null @@ -1,455 +0,0 @@ -{ - "id": "053d5ac0-861b-4d3b-8501-e58d00417ef8", - "source": 1, - "name": "@cf/google/gemma-3-12b-it", - "description": "Gemma 3 models are well-suited for a variety of text generation and image understanding tasks, including question answering, summarization, and reasoning. Gemma 3 models are multimodal, handling text and image input and generating text output, with a large, 128K context window, multilingual support in over 140 languages, and is available in more sizes than previous versions.", - "task": { - "id": "c329a1f9-323d-4e91-b2aa-582dd4188d34", - "name": "Text Generation", - "description": "Family of generative text models, such as large language models (LLM), that can be adapted for a variety of natural language tasks." - }, - "created_at": "2025-03-18 03:58:02.423", - "tags": [], - "properties": [ - { - "property_id": "context_window", - "value": "80000" - }, - { - "property_id": "price", - "value": [ - { - "unit": "per M input tokens", - "price": 0.35, - "currency": "USD" - }, - { - "unit": "per M output tokens", - "price": 0.56, - "currency": "USD" - } - ] - }, - { - "property_id": "lora", - "value": "true" - } - ], - "schema": { - "input": { - "type": "object", - "oneOf": [ - { - "title": "Prompt", - "properties": { - "prompt": { - "type": "string", - "minLength": 1, - "description": "The input text prompt for the model to generate a response." - }, - "guided_json": { - "type": "object", - "description": "JSON schema that should be fufilled for the response." - }, - "raw": { - "type": "boolean", - "default": false, - "description": "If true, a chat template is not applied and you must adhere to the specific model's expected formatting." - }, - "stream": { - "type": "boolean", - "default": false, - "description": "If true, the response will be streamed back incrementally using SSE, Server Sent Events." - }, - "max_tokens": { - "type": "integer", - "default": 256, - "description": "The maximum number of tokens to generate in the response." - }, - "temperature": { - "type": "number", - "default": 0.6, - "minimum": 0, - "maximum": 5, - "description": "Controls the randomness of the output; higher values produce more random results." - }, - "top_p": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses." - }, - "top_k": { - "type": "integer", - "minimum": 1, - "maximum": 50, - "description": "Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises." - }, - "seed": { - "type": "integer", - "minimum": 1, - "maximum": 9999999999, - "description": "Random seed for reproducibility of the generation." - }, - "repetition_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Penalty for repeated tokens; higher values discourage repetition." - }, - "frequency_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Decreases the likelihood of the model repeating the same lines verbatim." - }, - "presence_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Increases the likelihood of the model introducing new topics." - } - }, - "required": [ - "prompt" - ] - }, - { - "title": "Messages", - "properties": { - "messages": { - "type": "array", - "description": "An array of message objects representing the conversation history.", - "items": { - "type": "object", - "properties": { - "role": { - "type": "string", - "description": "The role of the message sender (e.g., 'user', 'assistant', 'system', 'tool')." - }, - "content": { - "oneOf": [ - { - "type": "string", - "description": "The content of the message as a string." - }, - { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "Type of the content provided" - }, - "text": { - "type": "string" - }, - "image_url": { - "type": "object", - "properties": { - "url": { - "type": "string", - "pattern": "^data:*", - "description": "image uri with data (e.g. data:image/jpeg;base64,/9j/...). HTTP URL will not be accepted" - } - } - } - } - } - } - ] - } - } - } - }, - "functions": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "code": { - "type": "string" - } - }, - "required": [ - "name", - "code" - ] - } - }, - "tools": { - "type": "array", - "description": "A list of tools available for the assistant to use.", - "items": { - "type": "object", - "oneOf": [ - { - "properties": { - "name": { - "type": "string", - "description": "The name of the tool. More descriptive the better." - }, - "description": { - "type": "string", - "description": "A brief description of what the tool does." - }, - "parameters": { - "type": "object", - "description": "Schema defining the parameters accepted by the tool.", - "properties": { - "type": { - "type": "string", - "description": "The type of the parameters object (usually 'object')." - }, - "required": { - "type": "array", - "description": "List of required parameter names.", - "items": { - "type": "string" - } - }, - "properties": { - "type": "object", - "description": "Definitions of each parameter.", - "additionalProperties": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The data type of the parameter." - }, - "description": { - "type": "string", - "description": "A description of the expected parameter." - } - }, - "required": [ - "type", - "description" - ] - } - } - }, - "required": [ - "type", - "properties" - ] - } - }, - "required": [ - "name", - "description", - "parameters" - ] - }, - { - "properties": { - "type": { - "type": "string", - "description": "Specifies the type of tool (e.g., 'function')." - }, - "function": { - "type": "object", - "description": "Details of the function tool.", - "properties": { - "name": { - "type": "string", - "description": "The name of the function." - }, - "description": { - "type": "string", - "description": "A brief description of what the function does." - }, - "parameters": { - "type": "object", - "description": "Schema defining the parameters accepted by the function.", - "properties": { - "type": { - "type": "string", - "description": "The type of the parameters object (usually 'object')." - }, - "required": { - "type": "array", - "description": "List of required parameter names.", - "items": { - "type": "string" - } - }, - "properties": { - "type": "object", - "description": "Definitions of each parameter.", - "additionalProperties": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The data type of the parameter." - }, - "description": { - "type": "string", - "description": "A description of the expected parameter." - } - }, - "required": [ - "type", - "description" - ] - } - } - }, - "required": [ - "type", - "properties" - ] - } - }, - "required": [ - "name", - "description", - "parameters" - ] - } - }, - "required": [ - "type", - "function" - ] - } - ] - } - }, - "guided_json": { - "type": "object", - "description": "JSON schema that should be fufilled for the response." - }, - "raw": { - "type": "boolean", - "default": false, - "description": "If true, a chat template is not applied and you must adhere to the specific model's expected formatting." - }, - "stream": { - "type": "boolean", - "default": false, - "description": "If true, the response will be streamed back incrementally using SSE, Server Sent Events." - }, - "max_tokens": { - "type": "integer", - "default": 256, - "description": "The maximum number of tokens to generate in the response." - }, - "temperature": { - "type": "number", - "default": 0.6, - "minimum": 0, - "maximum": 5, - "description": "Controls the randomness of the output; higher values produce more random results." - }, - "top_p": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses." - }, - "top_k": { - "type": "integer", - "minimum": 1, - "maximum": 50, - "description": "Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises." - }, - "seed": { - "type": "integer", - "minimum": 1, - "maximum": 9999999999, - "description": "Random seed for reproducibility of the generation." - }, - "repetition_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Penalty for repeated tokens; higher values discourage repetition." - }, - "frequency_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Decreases the likelihood of the model repeating the same lines verbatim." - }, - "presence_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Increases the likelihood of the model introducing new topics." - } - }, - "required": [ - "messages" - ] - } - ] - }, - "output": { - "oneOf": [ - { - "type": "object", - "contentType": "application/json", - "properties": { - "response": { - "type": "string", - "description": "The generated text response from the model" - }, - "usage": { - "type": "object", - "description": "Usage statistics for the inference request", - "properties": { - "prompt_tokens": { - "type": "number", - "description": "Total number of tokens in input", - "default": 0 - }, - "completion_tokens": { - "type": "number", - "description": "Total number of tokens in output", - "default": 0 - }, - "total_tokens": { - "type": "number", - "description": "Total number of input and output tokens", - "default": 0 - } - } - }, - "tool_calls": { - "type": "array", - "description": "An array of tool calls requests made during the response generation", - "items": { - "type": "object", - "properties": { - "arguments": { - "type": "object", - "description": "The arguments passed to be passed to the tool call request" - }, - "name": { - "type": "string", - "description": "The name of the tool to be called" - } - } - } - } - }, - "required": [ - "response" - ] - }, - { - "type": "string", - "contentType": "text/event-stream", - "format": "binary" - } - ] - } - } -} \ No newline at end of file diff --git a/src/content/workers-ai-models/gemma-4-26b-a4b-it.json b/src/content/workers-ai-models/gemma-4-26b-a4b-it.json deleted file mode 100644 index 4f09a88c0cc347c..000000000000000 --- a/src/content/workers-ai-models/gemma-4-26b-a4b-it.json +++ /dev/null @@ -1,4772 +0,0 @@ -{ - "id": "328adb49-4a7d-43e3-a2d5-802ae8100fe7", - "source": 1, - "name": "@cf/google/gemma-4-26b-a4b-it", - "description": "Gemma 4 is Google's most intelligent family of open models, built from Gemini 3 research to maximize intelligence-per-parameter.", - "task": { - "id": "c329a1f9-323d-4e91-b2aa-582dd4188d34", - "name": "Text Generation", - "description": "Family of generative text models, such as large language models (LLM), that can be adapted for a variety of natural language tasks." - }, - "created_at": "2026-04-02 15:05:22.642", - "tags": [], - "properties": [ - { - "property_id": "context_window", - "value": "256000" - }, - { - "property_id": "price", - "value": [ - { - "unit": "per M input tokens", - "price": 0.1, - "currency": "USD" - }, - { - "unit": "per M output tokens", - "price": 0.3, - "currency": "USD" - } - ] - }, - { - "property_id": "function_calling", - "value": "true" - }, - { - "property_id": "reasoning", - "value": "true" - }, - { - "property_id": "terms", - "value": "https://ai.google.dev/gemma/docs/gemma_4_license" - }, - { - "property_id": "vision", - "value": "true" - } - ], - "schema": { - "input": { - "anyOf": [ - { - "type": "object", - "oneOf": [ - { - "title": "Prompt", - "properties": { - "prompt": { - "type": "string", - "minLength": 1, - "description": "The input text prompt for the model to generate a response." - }, - "skip_special_tokens": { - "type": "boolean", - "default": false - }, - "model": { - "type": "string", - "description": "ID of the model to use (e.g. '@cf/zai-org/glm-4.7-flash, etc')." - }, - "audio": { - "anyOf": [ - { - "type": "object", - "description": "Parameters for audio output. Required when modalities includes 'audio'.", - "properties": { - "voice": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "object", - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ] - } - ] - }, - "format": { - "type": "string", - "enum": [ - "wav", - "aac", - "mp3", - "flac", - "opus", - "pcm16" - ] - } - }, - "required": [ - "voice", - "format" - ] - } - ] - }, - "frequency_penalty": { - "anyOf": [ - { - "type": "number", - "minimum": -2, - "maximum": 2 - }, - { - "type": "null" - } - ], - "default": 0, - "description": "Penalizes new tokens based on their existing frequency in the text so far." - }, - "logit_bias": { - "anyOf": [ - { - "type": "object" - }, - { - "type": "null" - } - ], - "description": "Modify the likelihood of specified tokens appearing in the completion. Maps token IDs to bias values from -100 to 100." - }, - "logprobs": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "default": false, - "description": "Whether to return log probabilities of the output tokens." - }, - "top_logprobs": { - "anyOf": [ - { - "type": "integer", - "minimum": 0, - "maximum": 20 - }, - { - "type": "null" - } - ], - "description": "How many top log probabilities to return at each token position (0-20). Requires logprobs=true." - }, - "max_tokens": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "description": "Deprecated in favor of max_completion_tokens. The maximum number of tokens to generate." - }, - "max_completion_tokens": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "description": "An upper bound for the number of tokens that can be generated for a completion." - }, - "metadata": { - "anyOf": [ - { - "type": "object" - }, - { - "type": "null" - } - ], - "description": "Set of 16 key-value pairs that can be attached to the object." - }, - "modalities": { - "anyOf": [ - { - "type": "array", - "items": { - "type": "string", - "enum": [ - "text", - "audio" - ] - } - }, - { - "type": "null" - } - ], - "description": "Output types requested from the model (e.g. ['text'] or ['text', 'audio'])." - }, - "n": { - "anyOf": [ - { - "type": "integer", - "minimum": 1, - "maximum": 128 - }, - { - "type": "null" - } - ], - "default": 1, - "description": "How many chat completion choices to generate for each input message." - }, - "parallel_tool_calls": { - "type": "boolean", - "default": true, - "description": "Whether to enable parallel function calling during tool use." - }, - "prediction": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "content" - ] - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "text" - ] - }, - "text": { - "type": "string" - } - }, - "required": [ - "type", - "text" - ] - } - } - ] - } - }, - "required": [ - "type", - "content" - ] - } - ] - }, - "presence_penalty": { - "anyOf": [ - { - "type": "number", - "minimum": -2, - "maximum": 2 - }, - { - "type": "null" - } - ], - "default": 0, - "description": "Penalizes new tokens based on whether they appear in the text so far." - }, - "reasoning_effort": { - "anyOf": [ - { - "type": "string", - "enum": [ - "low", - "medium", - "high" - ] - }, - { - "type": "null" - } - ], - "description": "Constrains effort on reasoning for reasoning models (o1, o3-mini, etc.)." - }, - "chat_template_kwargs": { - "type": "object", - "properties": { - "enable_thinking": { - "type": "boolean", - "default": true, - "description": "Whether to enable reasoning, enabled by default." - }, - "clear_thinking": { - "type": "boolean", - "default": false, - "description": "If false, preserves reasoning context between turns." - } - } - }, - "response_format": { - "anyOf": [ - { - "description": "Specifies the format the model must output.", - "oneOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "text" - ] - } - }, - "required": [ - "type" - ] - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_object" - ] - } - }, - "required": [ - "type" - ] - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_schema" - ] - }, - "json_schema": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "schema": { - "type": "object" - }, - "strict": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "name" - ] - } - }, - "required": [ - "type", - "json_schema" - ] - } - ] - } - ] - }, - "seed": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "description": "If specified, the system will make a best effort to sample deterministically." - }, - "service_tier": { - "anyOf": [ - { - "type": "string", - "enum": [ - "auto", - "default", - "flex", - "scale", - "priority" - ] - }, - { - "type": "null" - } - ], - "default": "auto", - "description": "Specifies the processing type used for serving the request." - }, - "stop": { - "description": "Up to 4 sequences where the API will stop generating further tokens.", - "anyOf": [ - { - "type": "null" - }, - { - "type": "string" - }, - { - "type": "array", - "items": { - "type": "string" - }, - "minItems": 1, - "maxItems": 4 - } - ] - }, - "store": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "default": false, - "description": "Whether to store the output for model distillation / evals." - }, - "stream": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "default": false, - "description": "If true, partial message deltas will be sent as server-sent events." - }, - "stream_options": { - "anyOf": [ - { - "type": "object", - "properties": { - "include_usage": { - "type": "boolean" - }, - "include_obfuscation": { - "type": "boolean" - } - } - } - ] - }, - "temperature": { - "anyOf": [ - { - "type": "number", - "minimum": 0, - "maximum": 2 - }, - { - "type": "null" - } - ], - "default": 1, - "description": "Sampling temperature between 0 and 2." - }, - "tool_choice": { - "anyOf": [ - { - "description": "Controls which (if any) tool is called by the model. 'none' = no tools, 'auto' = model decides, 'required' = must call a tool.", - "oneOf": [ - { - "type": "string", - "enum": [ - "none", - "auto", - "required" - ] - }, - { - "type": "object", - "description": "Force a specific function tool.", - "properties": { - "type": { - "type": "string", - "enum": [ - "function" - ] - }, - "function": { - "type": "object", - "properties": { - "name": { - "type": "string" - } - }, - "required": [ - "name" - ] - } - }, - "required": [ - "type", - "function" - ] - }, - { - "type": "object", - "description": "Force a specific custom tool.", - "properties": { - "type": { - "type": "string", - "enum": [ - "custom" - ] - }, - "custom": { - "type": "object", - "properties": { - "name": { - "type": "string" - } - }, - "required": [ - "name" - ] - } - }, - "required": [ - "type", - "custom" - ] - }, - { - "type": "object", - "description": "Constrain to an allowed subset of tools.", - "properties": { - "type": { - "type": "string", - "enum": [ - "allowed_tools" - ] - }, - "allowed_tools": { - "type": "object", - "properties": { - "mode": { - "type": "string", - "enum": [ - "auto", - "required" - ] - }, - "tools": { - "type": "array", - "items": { - "type": "object" - } - } - }, - "required": [ - "mode", - "tools" - ] - } - }, - "required": [ - "type", - "allowed_tools" - ] - } - ] - } - ] - }, - "tools": { - "type": "array", - "description": "A list of tools the model may call.", - "items": { - "oneOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "function" - ] - }, - "function": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The name of the function to be called." - }, - "description": { - "type": "string", - "description": "A description of what the function does." - }, - "parameters": { - "type": "object", - "description": "The parameters the function accepts, described as a JSON Schema object." - }, - "strict": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "default": false, - "description": "Whether to enable strict schema adherence." - } - }, - "required": [ - "name" - ] - } - }, - "required": [ - "type", - "function" - ] - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "custom" - ] - }, - "custom": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "format": { - "oneOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "text" - ] - } - }, - "required": [ - "type" - ] - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "grammar" - ] - }, - "grammar": { - "type": "object", - "properties": { - "definition": { - "type": "string" - }, - "syntax": { - "type": "string", - "enum": [ - "lark", - "regex" - ] - } - }, - "required": [ - "definition", - "syntax" - ] - } - }, - "required": [ - "type", - "grammar" - ] - } - ] - } - }, - "required": [ - "name" - ] - } - }, - "required": [ - "type", - "custom" - ] - } - ] - } - }, - "top_p": { - "anyOf": [ - { - "type": "number", - "minimum": 0, - "maximum": 1 - }, - { - "type": "null" - } - ], - "default": 1, - "description": "Nucleus sampling: considers the results of the tokens with top_p probability mass." - }, - "user": { - "type": "string", - "description": "A unique identifier representing your end-user, for abuse monitoring." - }, - "web_search_options": { - "anyOf": [ - { - "type": "object", - "description": "Options for the web search tool (when using built-in web search).", - "properties": { - "search_context_size": { - "type": "string", - "enum": [ - "low", - "medium", - "high" - ], - "default": "medium" - }, - "user_location": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "approximate" - ] - }, - "approximate": { - "type": "object", - "properties": { - "city": { - "type": "string" - }, - "country": { - "type": "string" - }, - "region": { - "type": "string" - }, - "timezone": { - "type": "string" - } - } - } - }, - "required": [ - "type", - "approximate" - ] - } - } - } - ] - }, - "function_call": { - "anyOf": [ - { - "type": "string", - "enum": [ - "none", - "auto" - ] - }, - { - "type": "object", - "properties": { - "name": { - "type": "string" - } - }, - "required": [ - "name" - ] - } - ] - }, - "functions": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The name of the function to be called." - }, - "description": { - "type": "string", - "description": "A description of what the function does." - }, - "parameters": { - "type": "object", - "description": "The parameters the function accepts, described as a JSON Schema object." - }, - "strict": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "default": false, - "description": "Whether to enable strict schema adherence." - } - }, - "required": [ - "name" - ] - }, - "minItems": 1, - "maxItems": 128 - } - }, - "required": [ - "prompt" - ] - }, - { - "title": "Messages", - "properties": { - "messages": { - "type": "array", - "description": "A list of messages comprising the conversation so far.", - "items": { - "oneOf": [ - { - "type": "object", - "properties": { - "role": { - "type": "string", - "enum": [ - "developer" - ] - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "text" - ] - }, - "text": { - "type": "string" - } - }, - "required": [ - "type", - "text" - ] - } - } - ] - }, - "name": { - "type": "string" - } - }, - "required": [ - "role", - "content" - ] - }, - { - "type": "object", - "properties": { - "role": { - "type": "string", - "enum": [ - "system" - ] - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "text" - ] - }, - "text": { - "type": "string" - } - }, - "required": [ - "type", - "text" - ] - } - } - ] - }, - "name": { - "type": "string" - } - }, - "required": [ - "role", - "content" - ] - }, - { - "type": "object", - "properties": { - "role": { - "type": "string", - "enum": [ - "user" - ] - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "text", - "image_url", - "input_audio", - "file" - ] - }, - "text": { - "type": "string" - }, - "image_url": { - "type": "object", - "properties": { - "url": { - "type": "string" - }, - "detail": { - "type": "string", - "enum": [ - "auto", - "low", - "high" - ], - "default": "auto" - } - } - }, - "input_audio": { - "type": "object", - "properties": { - "data": { - "type": "string" - }, - "format": { - "type": "string", - "enum": [ - "wav", - "mp3" - ] - } - } - }, - "file": { - "type": "object", - "properties": { - "file_data": { - "type": "string" - }, - "file_id": { - "type": "string" - }, - "filename": { - "type": "string" - } - } - } - }, - "required": [ - "type" - ] - }, - "minItems": 1 - } - ] - }, - "name": { - "type": "string" - } - }, - "required": [ - "role", - "content" - ] - }, - { - "type": "object", - "properties": { - "role": { - "type": "string", - "enum": [ - "assistant" - ] - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - }, - { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "text", - "refusal" - ] - }, - "text": { - "type": "string" - }, - "refusal": { - "type": "string" - } - }, - "required": [ - "type" - ] - } - } - ] - }, - "refusal": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "name": { - "type": "string" - }, - "audio": { - "anyOf": [ - { - "type": "object", - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ] - } - ] - }, - "tool_calls": { - "type": "array", - "items": { - "oneOf": [ - { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "function" - ] - }, - "function": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "arguments": { - "type": "string", - "description": "JSON-encoded arguments string." - } - }, - "required": [ - "name", - "arguments" - ] - } - }, - "required": [ - "id", - "type", - "function" - ] - }, - { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "custom" - ] - }, - "custom": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "input": { - "type": "string" - } - }, - "required": [ - "name", - "input" - ] - } - }, - "required": [ - "id", - "type", - "custom" - ] - } - ] - } - }, - "function_call": { - "anyOf": [ - { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "arguments": { - "type": "string" - } - }, - "required": [ - "name", - "arguments" - ] - } - ] - } - }, - "required": [ - "role" - ] - }, - { - "type": "object", - "properties": { - "role": { - "type": "string", - "enum": [ - "tool" - ] - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "text" - ] - }, - "text": { - "type": "string" - } - }, - "required": [ - "type", - "text" - ] - } - } - ] - }, - "tool_call_id": { - "type": "string" - } - }, - "required": [ - "role", - "content", - "tool_call_id" - ] - }, - { - "type": "object", - "properties": { - "role": { - "type": "string", - "enum": [ - "function" - ] - }, - "content": { - "type": "string" - }, - "name": { - "type": "string" - } - }, - "required": [ - "role", - "content", - "name" - ] - } - ] - }, - "minItems": 1 - }, - "skip_special_tokens": { - "type": "boolean", - "default": false - }, - "model": { - "type": "string", - "description": "ID of the model to use (e.g. '@cf/zai-org/glm-4.7-flash, etc')." - }, - "audio": { - "anyOf": [ - { - "type": "object", - "description": "Parameters for audio output. Required when modalities includes 'audio'.", - "properties": { - "voice": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "object", - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ] - } - ] - }, - "format": { - "type": "string", - "enum": [ - "wav", - "aac", - "mp3", - "flac", - "opus", - "pcm16" - ] - } - }, - "required": [ - "voice", - "format" - ] - } - ] - }, - "frequency_penalty": { - "anyOf": [ - { - "type": "number", - "minimum": -2, - "maximum": 2 - }, - { - "type": "null" - } - ], - "default": 0, - "description": "Penalizes new tokens based on their existing frequency in the text so far." - }, - "logit_bias": { - "anyOf": [ - { - "type": "object" - }, - { - "type": "null" - } - ], - "description": "Modify the likelihood of specified tokens appearing in the completion. Maps token IDs to bias values from -100 to 100." - }, - "logprobs": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "default": false, - "description": "Whether to return log probabilities of the output tokens." - }, - "top_logprobs": { - "anyOf": [ - { - "type": "integer", - "minimum": 0, - "maximum": 20 - }, - { - "type": "null" - } - ], - "description": "How many top log probabilities to return at each token position (0-20). Requires logprobs=true." - }, - "max_tokens": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "description": "Deprecated in favor of max_completion_tokens. The maximum number of tokens to generate." - }, - "max_completion_tokens": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "description": "An upper bound for the number of tokens that can be generated for a completion." - }, - "metadata": { - "anyOf": [ - { - "type": "object" - }, - { - "type": "null" - } - ], - "description": "Set of 16 key-value pairs that can be attached to the object." - }, - "modalities": { - "anyOf": [ - { - "type": "array", - "items": { - "type": "string", - "enum": [ - "text", - "audio" - ] - } - }, - { - "type": "null" - } - ], - "description": "Output types requested from the model (e.g. ['text'] or ['text', 'audio'])." - }, - "n": { - "anyOf": [ - { - "type": "integer", - "minimum": 1, - "maximum": 128 - }, - { - "type": "null" - } - ], - "default": 1, - "description": "How many chat completion choices to generate for each input message." - }, - "parallel_tool_calls": { - "type": "boolean", - "default": true, - "description": "Whether to enable parallel function calling during tool use." - }, - "prediction": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "content" - ] - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "text" - ] - }, - "text": { - "type": "string" - } - }, - "required": [ - "type", - "text" - ] - } - } - ] - } - }, - "required": [ - "type", - "content" - ] - } - ] - }, - "presence_penalty": { - "anyOf": [ - { - "type": "number", - "minimum": -2, - "maximum": 2 - }, - { - "type": "null" - } - ], - "default": 0, - "description": "Penalizes new tokens based on whether they appear in the text so far." - }, - "reasoning_effort": { - "anyOf": [ - { - "type": "string", - "enum": [ - "low", - "medium", - "high" - ] - }, - { - "type": "null" - } - ], - "description": "Constrains effort on reasoning for reasoning models (o1, o3-mini, etc.)." - }, - "chat_template_kwargs": { - "type": "object", - "properties": { - "enable_thinking": { - "type": "boolean", - "default": true, - "description": "Whether to enable reasoning, enabled by default." - }, - "clear_thinking": { - "type": "boolean", - "default": false, - "description": "If false, preserves reasoning context between turns." - } - } - }, - "response_format": { - "anyOf": [ - { - "description": "Specifies the format the model must output.", - "oneOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "text" - ] - } - }, - "required": [ - "type" - ] - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_object" - ] - } - }, - "required": [ - "type" - ] - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_schema" - ] - }, - "json_schema": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "schema": { - "type": "object" - }, - "strict": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "name" - ] - } - }, - "required": [ - "type", - "json_schema" - ] - } - ] - } - ] - }, - "seed": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "description": "If specified, the system will make a best effort to sample deterministically." - }, - "service_tier": { - "anyOf": [ - { - "type": "string", - "enum": [ - "auto", - "default", - "flex", - "scale", - "priority" - ] - }, - { - "type": "null" - } - ], - "default": "auto", - "description": "Specifies the processing type used for serving the request." - }, - "stop": { - "description": "Up to 4 sequences where the API will stop generating further tokens.", - "anyOf": [ - { - "type": "null" - }, - { - "type": "string" - }, - { - "type": "array", - "items": { - "type": "string" - }, - "minItems": 1, - "maxItems": 4 - } - ] - }, - "store": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "default": false, - "description": "Whether to store the output for model distillation / evals." - }, - "stream": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "default": false, - "description": "If true, partial message deltas will be sent as server-sent events." - }, - "stream_options": { - "anyOf": [ - { - "type": "object", - "properties": { - "include_usage": { - "type": "boolean" - }, - "include_obfuscation": { - "type": "boolean" - } - } - } - ] - }, - "temperature": { - "anyOf": [ - { - "type": "number", - "minimum": 0, - "maximum": 2 - }, - { - "type": "null" - } - ], - "default": 1, - "description": "Sampling temperature between 0 and 2." - }, - "tool_choice": { - "anyOf": [ - { - "description": "Controls which (if any) tool is called by the model. 'none' = no tools, 'auto' = model decides, 'required' = must call a tool.", - "oneOf": [ - { - "type": "string", - "enum": [ - "none", - "auto", - "required" - ] - }, - { - "type": "object", - "description": "Force a specific function tool.", - "properties": { - "type": { - "type": "string", - "enum": [ - "function" - ] - }, - "function": { - "type": "object", - "properties": { - "name": { - "type": "string" - } - }, - "required": [ - "name" - ] - } - }, - "required": [ - "type", - "function" - ] - }, - { - "type": "object", - "description": "Force a specific custom tool.", - "properties": { - "type": { - "type": "string", - "enum": [ - "custom" - ] - }, - "custom": { - "type": "object", - "properties": { - "name": { - "type": "string" - } - }, - "required": [ - "name" - ] - } - }, - "required": [ - "type", - "custom" - ] - }, - { - "type": "object", - "description": "Constrain to an allowed subset of tools.", - "properties": { - "type": { - "type": "string", - "enum": [ - "allowed_tools" - ] - }, - "allowed_tools": { - "type": "object", - "properties": { - "mode": { - "type": "string", - "enum": [ - "auto", - "required" - ] - }, - "tools": { - "type": "array", - "items": { - "type": "object" - } - } - }, - "required": [ - "mode", - "tools" - ] - } - }, - "required": [ - "type", - "allowed_tools" - ] - } - ] - } - ] - }, - "tools": { - "type": "array", - "description": "A list of tools the model may call.", - "items": { - "oneOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "function" - ] - }, - "function": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The name of the function to be called." - }, - "description": { - "type": "string", - "description": "A description of what the function does." - }, - "parameters": { - "type": "object", - "description": "The parameters the function accepts, described as a JSON Schema object." - }, - "strict": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "default": false, - "description": "Whether to enable strict schema adherence." - } - }, - "required": [ - "name" - ] - } - }, - "required": [ - "type", - "function" - ] - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "custom" - ] - }, - "custom": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "format": { - "oneOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "text" - ] - } - }, - "required": [ - "type" - ] - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "grammar" - ] - }, - "grammar": { - "type": "object", - "properties": { - "definition": { - "type": "string" - }, - "syntax": { - "type": "string", - "enum": [ - "lark", - "regex" - ] - } - }, - "required": [ - "definition", - "syntax" - ] - } - }, - "required": [ - "type", - "grammar" - ] - } - ] - } - }, - "required": [ - "name" - ] - } - }, - "required": [ - "type", - "custom" - ] - } - ] - } - }, - "top_p": { - "anyOf": [ - { - "type": "number", - "minimum": 0, - "maximum": 1 - }, - { - "type": "null" - } - ], - "default": 1, - "description": "Nucleus sampling: considers the results of the tokens with top_p probability mass." - }, - "user": { - "type": "string", - "description": "A unique identifier representing your end-user, for abuse monitoring." - }, - "web_search_options": { - "anyOf": [ - { - "type": "object", - "description": "Options for the web search tool (when using built-in web search).", - "properties": { - "search_context_size": { - "type": "string", - "enum": [ - "low", - "medium", - "high" - ], - "default": "medium" - }, - "user_location": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "approximate" - ] - }, - "approximate": { - "type": "object", - "properties": { - "city": { - "type": "string" - }, - "country": { - "type": "string" - }, - "region": { - "type": "string" - }, - "timezone": { - "type": "string" - } - } - } - }, - "required": [ - "type", - "approximate" - ] - } - } - } - ] - }, - "function_call": { - "anyOf": [ - { - "type": "string", - "enum": [ - "none", - "auto" - ] - }, - { - "type": "object", - "properties": { - "name": { - "type": "string" - } - }, - "required": [ - "name" - ] - } - ] - }, - "functions": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The name of the function to be called." - }, - "description": { - "type": "string", - "description": "A description of what the function does." - }, - "parameters": { - "type": "object", - "description": "The parameters the function accepts, described as a JSON Schema object." - }, - "strict": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "default": false, - "description": "Whether to enable strict schema adherence." - } - }, - "required": [ - "name" - ] - }, - "minItems": 1, - "maxItems": 128 - } - }, - "required": [ - "messages" - ] - } - ] - }, - { - "type": "object", - "properties": { - "requests": { - "type": "array", - "items": { - "type": "object", - "oneOf": [ - { - "title": "Prompt", - "properties": { - "merge": { - "source": { - "prompt": { - "type": "string", - "minLength": 1, - "description": "The input text prompt for the model to generate a response." - }, - "skip_special_tokens": { - "type": "boolean", - "default": false - } - }, - "with": { - "model": { - "type": "string", - "description": "ID of the model to use (e.g. '@cf/zai-org/glm-4.7-flash, etc')." - }, - "audio": { - "anyOf": [ - { - "type": "object", - "description": "Parameters for audio output. Required when modalities includes 'audio'.", - "properties": { - "voice": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "object", - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ] - } - ] - }, - "format": { - "type": "string", - "enum": [ - "wav", - "aac", - "mp3", - "flac", - "opus", - "pcm16" - ] - } - }, - "required": [ - "voice", - "format" - ] - } - ] - }, - "frequency_penalty": { - "anyOf": [ - { - "type": "number", - "minimum": -2, - "maximum": 2 - }, - { - "type": "null" - } - ], - "default": 0, - "description": "Penalizes new tokens based on their existing frequency in the text so far." - }, - "logit_bias": { - "anyOf": [ - { - "type": "object" - }, - { - "type": "null" - } - ], - "description": "Modify the likelihood of specified tokens appearing in the completion. Maps token IDs to bias values from -100 to 100." - }, - "logprobs": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "default": false, - "description": "Whether to return log probabilities of the output tokens." - }, - "top_logprobs": { - "anyOf": [ - { - "type": "integer", - "minimum": 0, - "maximum": 20 - }, - { - "type": "null" - } - ], - "description": "How many top log probabilities to return at each token position (0-20). Requires logprobs=true." - }, - "max_tokens": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "description": "Deprecated in favor of max_completion_tokens. The maximum number of tokens to generate." - }, - "max_completion_tokens": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "description": "An upper bound for the number of tokens that can be generated for a completion." - }, - "metadata": { - "anyOf": [ - { - "type": "object" - }, - { - "type": "null" - } - ], - "description": "Set of 16 key-value pairs that can be attached to the object." - }, - "modalities": { - "anyOf": [ - { - "type": "array", - "items": { - "type": "string", - "enum": [ - "text", - "audio" - ] - } - }, - { - "type": "null" - } - ], - "description": "Output types requested from the model (e.g. ['text'] or ['text', 'audio'])." - }, - "n": { - "anyOf": [ - { - "type": "integer", - "minimum": 1, - "maximum": 128 - }, - { - "type": "null" - } - ], - "default": 1, - "description": "How many chat completion choices to generate for each input message." - }, - "parallel_tool_calls": { - "type": "boolean", - "default": true, - "description": "Whether to enable parallel function calling during tool use." - }, - "prediction": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "content" - ] - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "text" - ] - }, - "text": { - "type": "string" - } - }, - "required": [ - "type", - "text" - ] - } - } - ] - } - }, - "required": [ - "type", - "content" - ] - } - ] - }, - "presence_penalty": { - "anyOf": [ - { - "type": "number", - "minimum": -2, - "maximum": 2 - }, - { - "type": "null" - } - ], - "default": 0, - "description": "Penalizes new tokens based on whether they appear in the text so far." - }, - "reasoning_effort": { - "anyOf": [ - { - "type": "string", - "enum": [ - "low", - "medium", - "high" - ] - }, - { - "type": "null" - } - ], - "description": "Constrains effort on reasoning for reasoning models (o1, o3-mini, etc.)." - }, - "chat_template_kwargs": { - "type": "object", - "properties": { - "enable_thinking": { - "type": "boolean", - "default": true, - "description": "Whether to enable reasoning, enabled by default." - }, - "clear_thinking": { - "type": "boolean", - "default": false, - "description": "If false, preserves reasoning context between turns." - } - } - }, - "response_format": { - "anyOf": [ - { - "description": "Specifies the format the model must output.", - "oneOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "text" - ] - } - }, - "required": [ - "type" - ] - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_object" - ] - } - }, - "required": [ - "type" - ] - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_schema" - ] - }, - "json_schema": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "schema": { - "type": "object" - }, - "strict": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "name" - ] - } - }, - "required": [ - "type", - "json_schema" - ] - } - ] - } - ] - }, - "seed": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "description": "If specified, the system will make a best effort to sample deterministically." - }, - "service_tier": { - "anyOf": [ - { - "type": "string", - "enum": [ - "auto", - "default", - "flex", - "scale", - "priority" - ] - }, - { - "type": "null" - } - ], - "default": "auto", - "description": "Specifies the processing type used for serving the request." - }, - "stop": { - "description": "Up to 4 sequences where the API will stop generating further tokens.", - "anyOf": [ - { - "type": "null" - }, - { - "type": "string" - }, - { - "type": "array", - "items": { - "type": "string" - }, - "minItems": 1, - "maxItems": 4 - } - ] - }, - "store": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "default": false, - "description": "Whether to store the output for model distillation / evals." - }, - "stream": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "default": false, - "description": "If true, partial message deltas will be sent as server-sent events." - }, - "stream_options": { - "anyOf": [ - { - "type": "object", - "properties": { - "include_usage": { - "type": "boolean" - }, - "include_obfuscation": { - "type": "boolean" - } - } - } - ] - }, - "temperature": { - "anyOf": [ - { - "type": "number", - "minimum": 0, - "maximum": 2 - }, - { - "type": "null" - } - ], - "default": 1, - "description": "Sampling temperature between 0 and 2." - }, - "tool_choice": { - "anyOf": [ - { - "description": "Controls which (if any) tool is called by the model. 'none' = no tools, 'auto' = model decides, 'required' = must call a tool.", - "oneOf": [ - { - "type": "string", - "enum": [ - "none", - "auto", - "required" - ] - }, - { - "type": "object", - "description": "Force a specific function tool.", - "properties": { - "type": { - "type": "string", - "enum": [ - "function" - ] - }, - "function": { - "type": "object", - "properties": { - "name": { - "type": "string" - } - }, - "required": [ - "name" - ] - } - }, - "required": [ - "type", - "function" - ] - }, - { - "type": "object", - "description": "Force a specific custom tool.", - "properties": { - "type": { - "type": "string", - "enum": [ - "custom" - ] - }, - "custom": { - "type": "object", - "properties": { - "name": { - "type": "string" - } - }, - "required": [ - "name" - ] - } - }, - "required": [ - "type", - "custom" - ] - }, - { - "type": "object", - "description": "Constrain to an allowed subset of tools.", - "properties": { - "type": { - "type": "string", - "enum": [ - "allowed_tools" - ] - }, - "allowed_tools": { - "type": "object", - "properties": { - "mode": { - "type": "string", - "enum": [ - "auto", - "required" - ] - }, - "tools": { - "type": "array", - "items": { - "type": "object" - } - } - }, - "required": [ - "mode", - "tools" - ] - } - }, - "required": [ - "type", - "allowed_tools" - ] - } - ] - } - ] - }, - "tools": { - "type": "array", - "description": "A list of tools the model may call.", - "items": { - "oneOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "function" - ] - }, - "function": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The name of the function to be called." - }, - "description": { - "type": "string", - "description": "A description of what the function does." - }, - "parameters": { - "type": "object", - "description": "The parameters the function accepts, described as a JSON Schema object." - }, - "strict": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "default": false, - "description": "Whether to enable strict schema adherence." - } - }, - "required": [ - "name" - ] - } - }, - "required": [ - "type", - "function" - ] - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "custom" - ] - }, - "custom": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "format": { - "oneOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "text" - ] - } - }, - "required": [ - "type" - ] - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "grammar" - ] - }, - "grammar": { - "type": "object", - "properties": { - "definition": { - "type": "string" - }, - "syntax": { - "type": "string", - "enum": [ - "lark", - "regex" - ] - } - }, - "required": [ - "definition", - "syntax" - ] - } - }, - "required": [ - "type", - "grammar" - ] - } - ] - } - }, - "required": [ - "name" - ] - } - }, - "required": [ - "type", - "custom" - ] - } - ] - } - }, - "top_p": { - "anyOf": [ - { - "type": "number", - "minimum": 0, - "maximum": 1 - }, - { - "type": "null" - } - ], - "default": 1, - "description": "Nucleus sampling: considers the results of the tokens with top_p probability mass." - }, - "user": { - "type": "string", - "description": "A unique identifier representing your end-user, for abuse monitoring." - }, - "web_search_options": { - "anyOf": [ - { - "type": "object", - "description": "Options for the web search tool (when using built-in web search).", - "properties": { - "search_context_size": { - "type": "string", - "enum": [ - "low", - "medium", - "high" - ], - "default": "medium" - }, - "user_location": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "approximate" - ] - }, - "approximate": { - "type": "object", - "properties": { - "city": { - "type": "string" - }, - "country": { - "type": "string" - }, - "region": { - "type": "string" - }, - "timezone": { - "type": "string" - } - } - } - }, - "required": [ - "type", - "approximate" - ] - } - } - } - ] - }, - "function_call": { - "anyOf": [ - { - "type": "string", - "enum": [ - "none", - "auto" - ] - }, - { - "type": "object", - "properties": { - "name": { - "type": "string" - } - }, - "required": [ - "name" - ] - } - ] - }, - "functions": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The name of the function to be called." - }, - "description": { - "type": "string", - "description": "A description of what the function does." - }, - "parameters": { - "type": "object", - "description": "The parameters the function accepts, described as a JSON Schema object." - }, - "strict": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "default": false, - "description": "Whether to enable strict schema adherence." - } - }, - "required": [ - "name" - ] - }, - "minItems": 1, - "maxItems": 128 - } - } - } - }, - "required": [ - "prompt" - ] - }, - { - "title": "Messages", - "properties": { - "messages": { - "type": "array", - "description": "A list of messages comprising the conversation so far.", - "items": { - "oneOf": [ - { - "type": "object", - "properties": { - "role": { - "type": "string", - "enum": [ - "developer" - ] - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "text" - ] - }, - "text": { - "type": "string" - } - }, - "required": [ - "type", - "text" - ] - } - } - ] - }, - "name": { - "type": "string" - } - }, - "required": [ - "role", - "content" - ] - }, - { - "type": "object", - "properties": { - "role": { - "type": "string", - "enum": [ - "system" - ] - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "text" - ] - }, - "text": { - "type": "string" - } - }, - "required": [ - "type", - "text" - ] - } - } - ] - }, - "name": { - "type": "string" - } - }, - "required": [ - "role", - "content" - ] - }, - { - "type": "object", - "properties": { - "role": { - "type": "string", - "enum": [ - "user" - ] - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "text", - "image_url", - "input_audio", - "file" - ] - }, - "text": { - "type": "string" - }, - "image_url": { - "type": "object", - "properties": { - "url": { - "type": "string" - }, - "detail": { - "type": "string", - "enum": [ - "auto", - "low", - "high" - ], - "default": "auto" - } - } - }, - "input_audio": { - "type": "object", - "properties": { - "data": { - "type": "string" - }, - "format": { - "type": "string", - "enum": [ - "wav", - "mp3" - ] - } - } - }, - "file": { - "type": "object", - "properties": { - "file_data": { - "type": "string" - }, - "file_id": { - "type": "string" - }, - "filename": { - "type": "string" - } - } - } - }, - "required": [ - "type" - ] - }, - "minItems": 1 - } - ] - }, - "name": { - "type": "string" - } - }, - "required": [ - "role", - "content" - ] - }, - { - "type": "object", - "properties": { - "role": { - "type": "string", - "enum": [ - "assistant" - ] - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - }, - { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "text", - "refusal" - ] - }, - "text": { - "type": "string" - }, - "refusal": { - "type": "string" - } - }, - "required": [ - "type" - ] - } - } - ] - }, - "refusal": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "name": { - "type": "string" - }, - "audio": { - "anyOf": [ - { - "type": "object", - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ] - } - ] - }, - "tool_calls": { - "type": "array", - "items": { - "oneOf": [ - { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "function" - ] - }, - "function": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "arguments": { - "type": "string", - "description": "JSON-encoded arguments string." - } - }, - "required": [ - "name", - "arguments" - ] - } - }, - "required": [ - "id", - "type", - "function" - ] - }, - { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "custom" - ] - }, - "custom": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "input": { - "type": "string" - } - }, - "required": [ - "name", - "input" - ] - } - }, - "required": [ - "id", - "type", - "custom" - ] - } - ] - } - }, - "function_call": { - "anyOf": [ - { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "arguments": { - "type": "string" - } - }, - "required": [ - "name", - "arguments" - ] - } - ] - } - }, - "required": [ - "role" - ] - }, - { - "type": "object", - "properties": { - "role": { - "type": "string", - "enum": [ - "tool" - ] - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "text" - ] - }, - "text": { - "type": "string" - } - }, - "required": [ - "type", - "text" - ] - } - } - ] - }, - "tool_call_id": { - "type": "string" - } - }, - "required": [ - "role", - "content", - "tool_call_id" - ] - }, - { - "type": "object", - "properties": { - "role": { - "type": "string", - "enum": [ - "function" - ] - }, - "content": { - "type": "string" - }, - "name": { - "type": "string" - } - }, - "required": [ - "role", - "content", - "name" - ] - } - ] - }, - "minItems": 1 - }, - "skip_special_tokens": { - "type": "boolean", - "default": false - }, - "model": { - "type": "string", - "description": "ID of the model to use (e.g. '@cf/zai-org/glm-4.7-flash, etc')." - }, - "audio": { - "anyOf": [ - { - "type": "object", - "description": "Parameters for audio output. Required when modalities includes 'audio'.", - "properties": { - "voice": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "object", - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ] - } - ] - }, - "format": { - "type": "string", - "enum": [ - "wav", - "aac", - "mp3", - "flac", - "opus", - "pcm16" - ] - } - }, - "required": [ - "voice", - "format" - ] - } - ] - }, - "frequency_penalty": { - "anyOf": [ - { - "type": "number", - "minimum": -2, - "maximum": 2 - }, - { - "type": "null" - } - ], - "default": 0, - "description": "Penalizes new tokens based on their existing frequency in the text so far." - }, - "logit_bias": { - "anyOf": [ - { - "type": "object" - }, - { - "type": "null" - } - ], - "description": "Modify the likelihood of specified tokens appearing in the completion. Maps token IDs to bias values from -100 to 100." - }, - "logprobs": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "default": false, - "description": "Whether to return log probabilities of the output tokens." - }, - "top_logprobs": { - "anyOf": [ - { - "type": "integer", - "minimum": 0, - "maximum": 20 - }, - { - "type": "null" - } - ], - "description": "How many top log probabilities to return at each token position (0-20). Requires logprobs=true." - }, - "max_tokens": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "description": "Deprecated in favor of max_completion_tokens. The maximum number of tokens to generate." - }, - "max_completion_tokens": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "description": "An upper bound for the number of tokens that can be generated for a completion." - }, - "metadata": { - "anyOf": [ - { - "type": "object" - }, - { - "type": "null" - } - ], - "description": "Set of 16 key-value pairs that can be attached to the object." - }, - "modalities": { - "anyOf": [ - { - "type": "array", - "items": { - "type": "string", - "enum": [ - "text", - "audio" - ] - } - }, - { - "type": "null" - } - ], - "description": "Output types requested from the model (e.g. ['text'] or ['text', 'audio'])." - }, - "n": { - "anyOf": [ - { - "type": "integer", - "minimum": 1, - "maximum": 128 - }, - { - "type": "null" - } - ], - "default": 1, - "description": "How many chat completion choices to generate for each input message." - }, - "parallel_tool_calls": { - "type": "boolean", - "default": true, - "description": "Whether to enable parallel function calling during tool use." - }, - "prediction": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "content" - ] - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "text" - ] - }, - "text": { - "type": "string" - } - }, - "required": [ - "type", - "text" - ] - } - } - ] - } - }, - "required": [ - "type", - "content" - ] - } - ] - }, - "presence_penalty": { - "anyOf": [ - { - "type": "number", - "minimum": -2, - "maximum": 2 - }, - { - "type": "null" - } - ], - "default": 0, - "description": "Penalizes new tokens based on whether they appear in the text so far." - }, - "reasoning_effort": { - "anyOf": [ - { - "type": "string", - "enum": [ - "low", - "medium", - "high" - ] - }, - { - "type": "null" - } - ], - "description": "Constrains effort on reasoning for reasoning models (o1, o3-mini, etc.)." - }, - "chat_template_kwargs": { - "type": "object", - "properties": { - "enable_thinking": { - "type": "boolean", - "default": true, - "description": "Whether to enable reasoning, enabled by default." - }, - "clear_thinking": { - "type": "boolean", - "default": false, - "description": "If false, preserves reasoning context between turns." - } - } - }, - "response_format": { - "anyOf": [ - { - "description": "Specifies the format the model must output.", - "oneOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "text" - ] - } - }, - "required": [ - "type" - ] - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_object" - ] - } - }, - "required": [ - "type" - ] - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_schema" - ] - }, - "json_schema": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "schema": { - "type": "object" - }, - "strict": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "name" - ] - } - }, - "required": [ - "type", - "json_schema" - ] - } - ] - } - ] - }, - "seed": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "description": "If specified, the system will make a best effort to sample deterministically." - }, - "service_tier": { - "anyOf": [ - { - "type": "string", - "enum": [ - "auto", - "default", - "flex", - "scale", - "priority" - ] - }, - { - "type": "null" - } - ], - "default": "auto", - "description": "Specifies the processing type used for serving the request." - }, - "stop": { - "description": "Up to 4 sequences where the API will stop generating further tokens.", - "anyOf": [ - { - "type": "null" - }, - { - "type": "string" - }, - { - "type": "array", - "items": { - "type": "string" - }, - "minItems": 1, - "maxItems": 4 - } - ] - }, - "store": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "default": false, - "description": "Whether to store the output for model distillation / evals." - }, - "stream": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "default": false, - "description": "If true, partial message deltas will be sent as server-sent events." - }, - "stream_options": { - "anyOf": [ - { - "type": "object", - "properties": { - "include_usage": { - "type": "boolean" - }, - "include_obfuscation": { - "type": "boolean" - } - } - } - ] - }, - "temperature": { - "anyOf": [ - { - "type": "number", - "minimum": 0, - "maximum": 2 - }, - { - "type": "null" - } - ], - "default": 1, - "description": "Sampling temperature between 0 and 2." - }, - "tool_choice": { - "anyOf": [ - { - "description": "Controls which (if any) tool is called by the model. 'none' = no tools, 'auto' = model decides, 'required' = must call a tool.", - "oneOf": [ - { - "type": "string", - "enum": [ - "none", - "auto", - "required" - ] - }, - { - "type": "object", - "description": "Force a specific function tool.", - "properties": { - "type": { - "type": "string", - "enum": [ - "function" - ] - }, - "function": { - "type": "object", - "properties": { - "name": { - "type": "string" - } - }, - "required": [ - "name" - ] - } - }, - "required": [ - "type", - "function" - ] - }, - { - "type": "object", - "description": "Force a specific custom tool.", - "properties": { - "type": { - "type": "string", - "enum": [ - "custom" - ] - }, - "custom": { - "type": "object", - "properties": { - "name": { - "type": "string" - } - }, - "required": [ - "name" - ] - } - }, - "required": [ - "type", - "custom" - ] - }, - { - "type": "object", - "description": "Constrain to an allowed subset of tools.", - "properties": { - "type": { - "type": "string", - "enum": [ - "allowed_tools" - ] - }, - "allowed_tools": { - "type": "object", - "properties": { - "mode": { - "type": "string", - "enum": [ - "auto", - "required" - ] - }, - "tools": { - "type": "array", - "items": { - "type": "object" - } - } - }, - "required": [ - "mode", - "tools" - ] - } - }, - "required": [ - "type", - "allowed_tools" - ] - } - ] - } - ] - }, - "tools": { - "type": "array", - "description": "A list of tools the model may call.", - "items": { - "oneOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "function" - ] - }, - "function": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The name of the function to be called." - }, - "description": { - "type": "string", - "description": "A description of what the function does." - }, - "parameters": { - "type": "object", - "description": "The parameters the function accepts, described as a JSON Schema object." - }, - "strict": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "default": false, - "description": "Whether to enable strict schema adherence." - } - }, - "required": [ - "name" - ] - } - }, - "required": [ - "type", - "function" - ] - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "custom" - ] - }, - "custom": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "format": { - "oneOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "text" - ] - } - }, - "required": [ - "type" - ] - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "grammar" - ] - }, - "grammar": { - "type": "object", - "properties": { - "definition": { - "type": "string" - }, - "syntax": { - "type": "string", - "enum": [ - "lark", - "regex" - ] - } - }, - "required": [ - "definition", - "syntax" - ] - } - }, - "required": [ - "type", - "grammar" - ] - } - ] - } - }, - "required": [ - "name" - ] - } - }, - "required": [ - "type", - "custom" - ] - } - ] - } - }, - "top_p": { - "anyOf": [ - { - "type": "number", - "minimum": 0, - "maximum": 1 - }, - { - "type": "null" - } - ], - "default": 1, - "description": "Nucleus sampling: considers the results of the tokens with top_p probability mass." - }, - "user": { - "type": "string", - "description": "A unique identifier representing your end-user, for abuse monitoring." - }, - "web_search_options": { - "anyOf": [ - { - "type": "object", - "description": "Options for the web search tool (when using built-in web search).", - "properties": { - "search_context_size": { - "type": "string", - "enum": [ - "low", - "medium", - "high" - ], - "default": "medium" - }, - "user_location": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "approximate" - ] - }, - "approximate": { - "type": "object", - "properties": { - "city": { - "type": "string" - }, - "country": { - "type": "string" - }, - "region": { - "type": "string" - }, - "timezone": { - "type": "string" - } - } - } - }, - "required": [ - "type", - "approximate" - ] - } - } - } - ] - }, - "function_call": { - "anyOf": [ - { - "type": "string", - "enum": [ - "none", - "auto" - ] - }, - { - "type": "object", - "properties": { - "name": { - "type": "string" - } - }, - "required": [ - "name" - ] - } - ] - }, - "functions": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The name of the function to be called." - }, - "description": { - "type": "string", - "description": "A description of what the function does." - }, - "parameters": { - "type": "object", - "description": "The parameters the function accepts, described as a JSON Schema object." - }, - "strict": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "default": false, - "description": "Whether to enable strict schema adherence." - } - }, - "required": [ - "name" - ] - }, - "minItems": 1, - "maxItems": 128 - } - }, - "required": [ - "messages" - ] - } - ] - } - } - } - } - ] - }, - "output": { - "oneOf": [ - { - "type": "object", - "contentType": "application/json", - "properties": { - "id": { - "type": "string", - "description": "A unique identifier for the chat completion." - }, - "object": { - "type": "string" - }, - "created": { - "type": "integer", - "description": "Unix timestamp (seconds) of when the completion was created." - }, - "model": { - "type": "string", - "description": "The model used for the chat completion." - }, - "choices": { - "type": "array", - "items": { - "anyOf": [ - { - "type": "object", - "properties": { - "index": { - "type": "integer" - }, - "message": { - "anyOf": [ - { - "type": "object", - "properties": { - "role": { - "type": "string", - "enum": [ - "assistant" - ] - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "refusal": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "annotations": { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "url_citation" - ] - }, - "url_citation": { - "type": "object", - "properties": { - "url": { - "type": "string" - }, - "title": { - "type": "string" - }, - "start_index": { - "type": "integer" - }, - "end_index": { - "type": "integer" - } - }, - "required": [ - "url", - "title", - "start_index", - "end_index" - ] - } - }, - "required": [ - "type", - "url_citation" - ] - } - }, - "audio": { - "anyOf": [ - { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "data": { - "type": "string", - "description": "Base64 encoded audio bytes." - }, - "expires_at": { - "type": "integer" - }, - "transcript": { - "type": "string" - } - }, - "required": [ - "id", - "data", - "expires_at", - "transcript" - ] - } - ] - }, - "tool_calls": { - "type": "array", - "items": { - "oneOf": [ - { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "function" - ] - }, - "function": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "arguments": { - "type": "string", - "description": "JSON-encoded arguments string." - } - }, - "required": [ - "name", - "arguments" - ] - } - }, - "required": [ - "id", - "type", - "function" - ] - }, - { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "custom" - ] - }, - "custom": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "input": { - "type": "string" - } - }, - "required": [ - "name", - "input" - ] - } - }, - "required": [ - "id", - "type", - "custom" - ] - } - ] - } - }, - "function_call": { - "anyOf": [ - { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "arguments": { - "type": "string" - } - }, - "required": [ - "name", - "arguments" - ] - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "role", - "content", - "refusal" - ] - } - ] - }, - "finish_reason": { - "type": "string", - "enum": [ - "stop", - "length", - "tool_calls", - "content_filter", - "function_call" - ] - }, - "logprobs": { - "anyOf": [ - { - "type": "object", - "properties": { - "content": { - "anyOf": [ - { - "type": "array", - "items": { - "type": "object", - "properties": { - "token": { - "type": "string" - }, - "logprob": { - "type": "number" - }, - "bytes": { - "anyOf": [ - { - "type": "array", - "items": { - "type": "integer" - } - }, - { - "type": "null" - } - ] - }, - "top_logprobs": { - "type": "array", - "items": { - "type": "object", - "properties": { - "token": { - "type": "string" - }, - "logprob": { - "type": "number" - }, - "bytes": { - "anyOf": [ - { - "type": "array", - "items": { - "type": "integer" - } - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "token", - "logprob", - "bytes" - ] - } - } - }, - "required": [ - "token", - "logprob", - "bytes", - "top_logprobs" - ] - } - }, - { - "type": "null" - } - ] - }, - "refusal": { - "anyOf": [ - { - "type": "array", - "items": { - "type": "object", - "properties": { - "token": { - "type": "string" - }, - "logprob": { - "type": "number" - }, - "bytes": { - "anyOf": [ - { - "type": "array", - "items": { - "type": "integer" - } - }, - { - "type": "null" - } - ] - }, - "top_logprobs": { - "type": "array", - "items": { - "type": "object", - "properties": { - "token": { - "type": "string" - }, - "logprob": { - "type": "number" - }, - "bytes": { - "anyOf": [ - { - "type": "array", - "items": { - "type": "integer" - } - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "token", - "logprob", - "bytes" - ] - } - } - }, - "required": [ - "token", - "logprob", - "bytes", - "top_logprobs" - ] - } - }, - { - "type": "null" - } - ] - } - } - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "index", - "message", - "finish_reason", - "logprobs" - ] - } - ] - }, - "minItems": 1 - }, - "usage": { - "anyOf": [ - { - "type": "object", - "properties": { - "prompt_tokens": { - "type": "integer" - }, - "completion_tokens": { - "type": "integer" - }, - "total_tokens": { - "type": "integer" - }, - "prompt_tokens_details": { - "type": "object", - "properties": { - "cached_tokens": { - "type": "integer" - }, - "audio_tokens": { - "type": "integer" - } - } - }, - "completion_tokens_details": { - "type": "object", - "properties": { - "reasoning_tokens": { - "type": "integer" - }, - "audio_tokens": { - "type": "integer" - }, - "accepted_prediction_tokens": { - "type": "integer" - }, - "rejected_prediction_tokens": { - "type": "integer" - } - } - } - }, - "required": [ - "prompt_tokens", - "completion_tokens", - "total_tokens" - ] - } - ] - }, - "system_fingerprint": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "service_tier": { - "anyOf": [ - { - "type": "string", - "enum": [ - "auto", - "default", - "flex", - "scale", - "priority" - ] - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "object", - "created", - "model", - "choices" - ] - }, - { - "type": "string", - "contentType": "text/event-stream", - "format": "binary" - } - ] - } - } -} \ No newline at end of file diff --git a/src/content/workers-ai-models/gemma-7b-it-lora.json b/src/content/workers-ai-models/gemma-7b-it-lora.json deleted file mode 100644 index df5a534c1c70a16..000000000000000 --- a/src/content/workers-ai-models/gemma-7b-it-lora.json +++ /dev/null @@ -1,462 +0,0 @@ -{ - "id": "337170b7-bd2f-4631-9a57-688b579cf6d3", - "source": 1, - "name": "@cf/google/gemma-7b-it-lora", - "description": " This is a Gemma-7B base model that Cloudflare dedicates for inference with LoRA adapters. Gemma is a family of lightweight, state-of-the-art open models from Google, built from the same research and technology used to create the Gemini models.", - "task": { - "id": "c329a1f9-323d-4e91-b2aa-582dd4188d34", - "name": "Text Generation", - "description": "Family of generative text models, such as large language models (LLM), that can be adapted for a variety of natural language tasks." - }, - "created_at": "2024-04-02 00:20:19.633", - "tags": [], - "properties": [ - { - "property_id": "beta", - "value": "true" - }, - { - "property_id": "context_window", - "value": "3500" - }, - { - "property_id": "lora", - "value": "true" - } - ], - "schema": { - "input": { - "type": "object", - "oneOf": [ - { - "title": "Prompt", - "properties": { - "prompt": { - "type": "string", - "minLength": 1, - "description": "The input text prompt for the model to generate a response." - }, - "lora": { - "type": "string", - "description": "Name of the LoRA (Low-Rank Adaptation) model to fine-tune the base model." - }, - "response_format": { - "title": "JSON Mode", - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_object", - "json_schema" - ] - }, - "json_schema": {} - } - }, - "raw": { - "type": "boolean", - "default": false, - "description": "If true, a chat template is not applied and you must adhere to the specific model's expected formatting." - }, - "stream": { - "type": "boolean", - "default": false, - "description": "If true, the response will be streamed back incrementally using SSE, Server Sent Events." - }, - "max_tokens": { - "type": "integer", - "default": 256, - "description": "The maximum number of tokens to generate in the response." - }, - "temperature": { - "type": "number", - "default": 0.6, - "minimum": 0, - "maximum": 5, - "description": "Controls the randomness of the output; higher values produce more random results." - }, - "top_p": { - "type": "number", - "minimum": 0.001, - "maximum": 1, - "description": "Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses." - }, - "top_k": { - "type": "integer", - "minimum": 1, - "maximum": 50, - "description": "Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises." - }, - "seed": { - "type": "integer", - "minimum": 1, - "maximum": 9999999999, - "description": "Random seed for reproducibility of the generation." - }, - "repetition_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Penalty for repeated tokens; higher values discourage repetition." - }, - "frequency_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Decreases the likelihood of the model repeating the same lines verbatim." - }, - "presence_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Increases the likelihood of the model introducing new topics." - } - }, - "required": [ - "prompt" - ] - }, - { - "title": "Messages", - "properties": { - "messages": { - "type": "array", - "description": "An array of message objects representing the conversation history.", - "items": { - "type": "object", - "properties": { - "role": { - "type": "string", - "description": "The role of the message sender (e.g., 'user', 'assistant', 'system', 'tool')." - }, - "content": { - "oneOf": [ - { - "type": "string", - "description": "The content of the message as a string." - }, - { - "type": "array", - "description": "Array of text content parts.", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "Type of the content (text)" - }, - "text": { - "type": "string", - "description": "Text content" - } - } - } - } - ] - } - }, - "required": [ - "role", - "content" - ] - } - }, - "functions": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "code": { - "type": "string" - } - }, - "required": [ - "name", - "code" - ] - } - }, - "tools": { - "type": "array", - "description": "A list of tools available for the assistant to use.", - "items": { - "type": "object", - "oneOf": [ - { - "properties": { - "name": { - "type": "string", - "description": "The name of the tool. More descriptive the better." - }, - "description": { - "type": "string", - "description": "A brief description of what the tool does." - }, - "parameters": { - "type": "object", - "description": "Schema defining the parameters accepted by the tool.", - "properties": { - "type": { - "type": "string", - "description": "The type of the parameters object (usually 'object')." - }, - "required": { - "type": "array", - "description": "List of required parameter names.", - "items": { - "type": "string" - } - }, - "properties": { - "type": "object", - "description": "Definitions of each parameter.", - "additionalProperties": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The data type of the parameter." - }, - "description": { - "type": "string", - "description": "A description of the expected parameter." - } - }, - "required": [ - "type", - "description" - ] - } - } - }, - "required": [ - "type", - "properties" - ] - } - }, - "required": [ - "name", - "description", - "parameters" - ] - }, - { - "properties": { - "type": { - "type": "string", - "description": "Specifies the type of tool (e.g., 'function')." - }, - "function": { - "type": "object", - "description": "Details of the function tool.", - "properties": { - "name": { - "type": "string", - "description": "The name of the function." - }, - "description": { - "type": "string", - "description": "A brief description of what the function does." - }, - "parameters": { - "type": "object", - "description": "Schema defining the parameters accepted by the function.", - "properties": { - "type": { - "type": "string", - "description": "The type of the parameters object (usually 'object')." - }, - "required": { - "type": "array", - "description": "List of required parameter names.", - "items": { - "type": "string" - } - }, - "properties": { - "type": "object", - "description": "Definitions of each parameter.", - "additionalProperties": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The data type of the parameter." - }, - "description": { - "type": "string", - "description": "A description of the expected parameter." - } - }, - "required": [ - "type", - "description" - ] - } - } - }, - "required": [ - "type", - "properties" - ] - } - }, - "required": [ - "name", - "description", - "parameters" - ] - } - }, - "required": [ - "type", - "function" - ] - } - ] - } - }, - "response_format": { - "title": "JSON Mode", - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_object", - "json_schema" - ] - }, - "json_schema": {} - } - }, - "raw": { - "type": "boolean", - "default": false, - "description": "If true, a chat template is not applied and you must adhere to the specific model's expected formatting." - }, - "stream": { - "type": "boolean", - "default": false, - "description": "If true, the response will be streamed back incrementally using SSE, Server Sent Events." - }, - "max_tokens": { - "type": "integer", - "default": 256, - "description": "The maximum number of tokens to generate in the response." - }, - "temperature": { - "type": "number", - "default": 0.6, - "minimum": 0, - "maximum": 5, - "description": "Controls the randomness of the output; higher values produce more random results." - }, - "top_p": { - "type": "number", - "minimum": 0.001, - "maximum": 1, - "description": "Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses." - }, - "top_k": { - "type": "integer", - "minimum": 1, - "maximum": 50, - "description": "Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises." - }, - "seed": { - "type": "integer", - "minimum": 1, - "maximum": 9999999999, - "description": "Random seed for reproducibility of the generation." - }, - "repetition_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Penalty for repeated tokens; higher values discourage repetition." - }, - "frequency_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Decreases the likelihood of the model repeating the same lines verbatim." - }, - "presence_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Increases the likelihood of the model introducing new topics." - } - }, - "required": [ - "messages" - ] - } - ] - }, - "output": { - "oneOf": [ - { - "type": "object", - "properties": { - "response": { - "type": "string", - "description": "The generated text response from the model" - }, - "usage": { - "type": "object", - "description": "Usage statistics for the inference request", - "properties": { - "prompt_tokens": { - "type": "number", - "description": "Total number of tokens in input", - "default": 0 - }, - "completion_tokens": { - "type": "number", - "description": "Total number of tokens in output", - "default": 0 - }, - "total_tokens": { - "type": "number", - "description": "Total number of input and output tokens", - "default": 0 - } - } - }, - "tool_calls": { - "type": "array", - "description": "An array of tool calls requests made during the response generation", - "items": { - "type": "object", - "properties": { - "arguments": { - "type": "object", - "description": "The arguments passed to be passed to the tool call request" - }, - "name": { - "type": "string", - "description": "The name of the tool to be called" - } - } - } - } - }, - "required": [ - "response" - ] - }, - { - "type": "string", - "format": "binary" - } - ] - } - } -} \ No newline at end of file diff --git a/src/content/workers-ai-models/gemma-7b-it.json b/src/content/workers-ai-models/gemma-7b-it.json deleted file mode 100644 index 33b4a75a6e86321..000000000000000 --- a/src/content/workers-ai-models/gemma-7b-it.json +++ /dev/null @@ -1,470 +0,0 @@ -{ - "id": "0f002249-7d86-4698-aabf-8529ed86cefb", - "source": 2, - "name": "@hf/google/gemma-7b-it", - "description": "Gemma is a family of lightweight, state-of-the-art open models from Google, built from the same research and technology used to create the Gemini models. They are text-to-text, decoder-only large language models, available in English, with open weights, pre-trained variants, and instruction-tuned variants.", - "task": { - "id": "c329a1f9-323d-4e91-b2aa-582dd4188d34", - "name": "Text Generation", - "description": "Family of generative text models, such as large language models (LLM), that can be adapted for a variety of natural language tasks." - }, - "created_at": "2024-04-01 23:51:35.866", - "tags": [], - "properties": [ - { - "property_id": "beta", - "value": "true" - }, - { - "property_id": "context_window", - "value": "8192" - }, - { - "property_id": "info", - "value": "https://ai.google.dev/gemma/docs" - }, - { - "property_id": "lora", - "value": "true" - }, - { - "property_id": "terms", - "value": "https://ai.google.dev/gemma/terms" - } - ], - "schema": { - "input": { - "type": "object", - "oneOf": [ - { - "title": "Prompt", - "properties": { - "prompt": { - "type": "string", - "minLength": 1, - "description": "The input text prompt for the model to generate a response." - }, - "lora": { - "type": "string", - "description": "Name of the LoRA (Low-Rank Adaptation) model to fine-tune the base model." - }, - "response_format": { - "title": "JSON Mode", - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_object", - "json_schema" - ] - }, - "json_schema": {} - } - }, - "raw": { - "type": "boolean", - "default": false, - "description": "If true, a chat template is not applied and you must adhere to the specific model's expected formatting." - }, - "stream": { - "type": "boolean", - "default": false, - "description": "If true, the response will be streamed back incrementally using SSE, Server Sent Events." - }, - "max_tokens": { - "type": "integer", - "default": 256, - "description": "The maximum number of tokens to generate in the response." - }, - "temperature": { - "type": "number", - "default": 0.6, - "minimum": 0, - "maximum": 5, - "description": "Controls the randomness of the output; higher values produce more random results." - }, - "top_p": { - "type": "number", - "minimum": 0.001, - "maximum": 1, - "description": "Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses." - }, - "top_k": { - "type": "integer", - "minimum": 1, - "maximum": 50, - "description": "Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises." - }, - "seed": { - "type": "integer", - "minimum": 1, - "maximum": 9999999999, - "description": "Random seed for reproducibility of the generation." - }, - "repetition_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Penalty for repeated tokens; higher values discourage repetition." - }, - "frequency_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Decreases the likelihood of the model repeating the same lines verbatim." - }, - "presence_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Increases the likelihood of the model introducing new topics." - } - }, - "required": [ - "prompt" - ] - }, - { - "title": "Messages", - "properties": { - "messages": { - "type": "array", - "description": "An array of message objects representing the conversation history.", - "items": { - "type": "object", - "properties": { - "role": { - "type": "string", - "description": "The role of the message sender (e.g., 'user', 'assistant', 'system', 'tool')." - }, - "content": { - "oneOf": [ - { - "type": "string", - "description": "The content of the message as a string." - }, - { - "type": "array", - "description": "Array of text content parts.", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "Type of the content (text)" - }, - "text": { - "type": "string", - "description": "Text content" - } - } - } - } - ] - } - }, - "required": [ - "role", - "content" - ] - } - }, - "functions": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "code": { - "type": "string" - } - }, - "required": [ - "name", - "code" - ] - } - }, - "tools": { - "type": "array", - "description": "A list of tools available for the assistant to use.", - "items": { - "type": "object", - "oneOf": [ - { - "properties": { - "name": { - "type": "string", - "description": "The name of the tool. More descriptive the better." - }, - "description": { - "type": "string", - "description": "A brief description of what the tool does." - }, - "parameters": { - "type": "object", - "description": "Schema defining the parameters accepted by the tool.", - "properties": { - "type": { - "type": "string", - "description": "The type of the parameters object (usually 'object')." - }, - "required": { - "type": "array", - "description": "List of required parameter names.", - "items": { - "type": "string" - } - }, - "properties": { - "type": "object", - "description": "Definitions of each parameter.", - "additionalProperties": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The data type of the parameter." - }, - "description": { - "type": "string", - "description": "A description of the expected parameter." - } - }, - "required": [ - "type", - "description" - ] - } - } - }, - "required": [ - "type", - "properties" - ] - } - }, - "required": [ - "name", - "description", - "parameters" - ] - }, - { - "properties": { - "type": { - "type": "string", - "description": "Specifies the type of tool (e.g., 'function')." - }, - "function": { - "type": "object", - "description": "Details of the function tool.", - "properties": { - "name": { - "type": "string", - "description": "The name of the function." - }, - "description": { - "type": "string", - "description": "A brief description of what the function does." - }, - "parameters": { - "type": "object", - "description": "Schema defining the parameters accepted by the function.", - "properties": { - "type": { - "type": "string", - "description": "The type of the parameters object (usually 'object')." - }, - "required": { - "type": "array", - "description": "List of required parameter names.", - "items": { - "type": "string" - } - }, - "properties": { - "type": "object", - "description": "Definitions of each parameter.", - "additionalProperties": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The data type of the parameter." - }, - "description": { - "type": "string", - "description": "A description of the expected parameter." - } - }, - "required": [ - "type", - "description" - ] - } - } - }, - "required": [ - "type", - "properties" - ] - } - }, - "required": [ - "name", - "description", - "parameters" - ] - } - }, - "required": [ - "type", - "function" - ] - } - ] - } - }, - "response_format": { - "title": "JSON Mode", - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_object", - "json_schema" - ] - }, - "json_schema": {} - } - }, - "raw": { - "type": "boolean", - "default": false, - "description": "If true, a chat template is not applied and you must adhere to the specific model's expected formatting." - }, - "stream": { - "type": "boolean", - "default": false, - "description": "If true, the response will be streamed back incrementally using SSE, Server Sent Events." - }, - "max_tokens": { - "type": "integer", - "default": 256, - "description": "The maximum number of tokens to generate in the response." - }, - "temperature": { - "type": "number", - "default": 0.6, - "minimum": 0, - "maximum": 5, - "description": "Controls the randomness of the output; higher values produce more random results." - }, - "top_p": { - "type": "number", - "minimum": 0.001, - "maximum": 1, - "description": "Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses." - }, - "top_k": { - "type": "integer", - "minimum": 1, - "maximum": 50, - "description": "Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises." - }, - "seed": { - "type": "integer", - "minimum": 1, - "maximum": 9999999999, - "description": "Random seed for reproducibility of the generation." - }, - "repetition_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Penalty for repeated tokens; higher values discourage repetition." - }, - "frequency_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Decreases the likelihood of the model repeating the same lines verbatim." - }, - "presence_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Increases the likelihood of the model introducing new topics." - } - }, - "required": [ - "messages" - ] - } - ] - }, - "output": { - "oneOf": [ - { - "type": "object", - "properties": { - "response": { - "type": "string", - "description": "The generated text response from the model" - }, - "usage": { - "type": "object", - "description": "Usage statistics for the inference request", - "properties": { - "prompt_tokens": { - "type": "number", - "description": "Total number of tokens in input", - "default": 0 - }, - "completion_tokens": { - "type": "number", - "description": "Total number of tokens in output", - "default": 0 - }, - "total_tokens": { - "type": "number", - "description": "Total number of input and output tokens", - "default": 0 - } - } - }, - "tool_calls": { - "type": "array", - "description": "An array of tool calls requests made during the response generation", - "items": { - "type": "object", - "properties": { - "arguments": { - "type": "object", - "description": "The arguments passed to be passed to the tool call request" - }, - "name": { - "type": "string", - "description": "The name of the tool to be called" - } - } - } - } - }, - "required": [ - "response" - ] - }, - { - "type": "string", - "format": "binary" - } - ] - } - } -} \ No newline at end of file diff --git a/src/content/workers-ai-models/gemma-sea-lion-v4-27b-it.json b/src/content/workers-ai-models/gemma-sea-lion-v4-27b-it.json deleted file mode 100644 index 041cfa91a9bae4f..000000000000000 --- a/src/content/workers-ai-models/gemma-sea-lion-v4-27b-it.json +++ /dev/null @@ -1,1061 +0,0 @@ -{ - "id": "41ca173f-72d5-4420-8915-49e835d2676e", - "source": 1, - "name": "@cf/aisingapore/gemma-sea-lion-v4-27b-it", - "description": "SEA-LION stands for Southeast Asian Languages In One Network, which is a collection of Large Language Models (LLMs) which have been pretrained and instruct-tuned for the Southeast Asia (SEA) region.", - "task": { - "id": "c329a1f9-323d-4e91-b2aa-582dd4188d34", - "name": "Text Generation", - "description": "Family of generative text models, such as large language models (LLM), that can be adapted for a variety of natural language tasks." - }, - "created_at": "2025-09-23 19:27:30.468", - "tags": [], - "properties": [ - { - "property_id": "context_window", - "value": "128000" - }, - { - "property_id": "price", - "value": [ - { - "unit": "per M input tokens", - "price": 0.35, - "currency": "USD" - }, - { - "unit": "per M output tokens", - "price": 0.56, - "currency": "USD" - } - ] - } - ], - "schema": { - "input": { - "type": "object", - "oneOf": [ - { - "title": "Prompt", - "properties": { - "prompt": { - "type": "string", - "minLength": 1, - "description": "The input text prompt for the model to generate a response." - }, - "lora": { - "type": "string", - "description": "Name of the LoRA (Low-Rank Adaptation) model to fine-tune the base model." - }, - "response_format": { - "title": "JSON Mode", - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_object", - "json_schema" - ] - }, - "json_schema": {} - } - }, - "raw": { - "type": "boolean", - "default": false, - "description": "If true, a chat template is not applied and you must adhere to the specific model's expected formatting." - }, - "stream": { - "type": "boolean", - "default": false, - "description": "If true, the response will be streamed back incrementally using SSE, Server Sent Events." - }, - "max_tokens": { - "type": "integer", - "default": 2000, - "description": "The maximum number of tokens to generate in the response." - }, - "temperature": { - "type": "number", - "default": 0.6, - "minimum": 0, - "maximum": 5, - "description": "Controls the randomness of the output; higher values produce more random results." - }, - "top_p": { - "type": "number", - "minimum": 0.001, - "maximum": 1, - "description": "Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses." - }, - "top_k": { - "type": "integer", - "minimum": 1, - "maximum": 50, - "description": "Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises." - }, - "seed": { - "type": "integer", - "minimum": 1, - "maximum": 9999999999, - "description": "Random seed for reproducibility of the generation." - }, - "repetition_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Penalty for repeated tokens; higher values discourage repetition." - }, - "frequency_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Decreases the likelihood of the model repeating the same lines verbatim." - }, - "presence_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Increases the likelihood of the model introducing new topics." - } - }, - "required": [ - "prompt" - ] - }, - { - "title": "Messages", - "properties": { - "messages": { - "type": "array", - "description": "An array of message objects representing the conversation history.", - "items": { - "type": "object", - "properties": { - "role": { - "type": "string", - "description": "The role of the message sender (e.g., 'user', 'assistant', 'system', 'tool')." - }, - "content": { - "oneOf": [ - { - "type": "string", - "description": "The content of the message as a string." - }, - { - "type": "array", - "description": "Array of text content parts.", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "Type of the content (text)" - }, - "text": { - "type": "string", - "description": "Text content" - } - } - } - } - ] - } - }, - "required": [ - "role", - "content" - ] - } - }, - "functions": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "code": { - "type": "string" - } - }, - "required": [ - "name", - "code" - ] - } - }, - "tools": { - "type": "array", - "description": "A list of tools available for the assistant to use.", - "items": { - "type": "object", - "oneOf": [ - { - "properties": { - "name": { - "type": "string", - "description": "The name of the tool. More descriptive the better." - }, - "description": { - "type": "string", - "description": "A brief description of what the tool does." - }, - "parameters": { - "type": "object", - "description": "Schema defining the parameters accepted by the tool.", - "properties": { - "type": { - "type": "string", - "description": "The type of the parameters object (usually 'object')." - }, - "required": { - "type": "array", - "description": "List of required parameter names.", - "items": { - "type": "string" - } - }, - "properties": { - "type": "object", - "description": "Definitions of each parameter.", - "additionalProperties": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The data type of the parameter." - }, - "description": { - "type": "string", - "description": "A description of the expected parameter." - } - }, - "required": [ - "type", - "description" - ] - } - } - }, - "required": [ - "type", - "properties" - ] - } - }, - "required": [ - "name", - "description", - "parameters" - ] - }, - { - "properties": { - "type": { - "type": "string", - "description": "Specifies the type of tool (e.g., 'function')." - }, - "function": { - "type": "object", - "description": "Details of the function tool.", - "properties": { - "name": { - "type": "string", - "description": "The name of the function." - }, - "description": { - "type": "string", - "description": "A brief description of what the function does." - }, - "parameters": { - "type": "object", - "description": "Schema defining the parameters accepted by the function.", - "properties": { - "type": { - "type": "string", - "description": "The type of the parameters object (usually 'object')." - }, - "required": { - "type": "array", - "description": "List of required parameter names.", - "items": { - "type": "string" - } - }, - "properties": { - "type": "object", - "description": "Definitions of each parameter.", - "additionalProperties": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The data type of the parameter." - }, - "description": { - "type": "string", - "description": "A description of the expected parameter." - } - }, - "required": [ - "type", - "description" - ] - } - } - }, - "required": [ - "type", - "properties" - ] - } - }, - "required": [ - "name", - "description", - "parameters" - ] - } - }, - "required": [ - "type", - "function" - ] - } - ] - } - }, - "response_format": { - "title": "JSON Mode", - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_object", - "json_schema" - ] - }, - "json_schema": {} - } - }, - "raw": { - "type": "boolean", - "default": false, - "description": "If true, a chat template is not applied and you must adhere to the specific model's expected formatting." - }, - "stream": { - "type": "boolean", - "default": false, - "description": "If true, the response will be streamed back incrementally using SSE, Server Sent Events." - }, - "max_tokens": { - "type": "integer", - "default": 2000, - "description": "The maximum number of tokens to generate in the response." - }, - "temperature": { - "type": "number", - "default": 0.6, - "minimum": 0, - "maximum": 5, - "description": "Controls the randomness of the output; higher values produce more random results." - }, - "top_p": { - "type": "number", - "minimum": 0.001, - "maximum": 1, - "description": "Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses." - }, - "top_k": { - "type": "integer", - "minimum": 1, - "maximum": 50, - "description": "Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises." - }, - "seed": { - "type": "integer", - "minimum": 1, - "maximum": 9999999999, - "description": "Random seed for reproducibility of the generation." - }, - "repetition_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Penalty for repeated tokens; higher values discourage repetition." - }, - "frequency_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Decreases the likelihood of the model repeating the same lines verbatim." - }, - "presence_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Increases the likelihood of the model introducing new topics." - } - }, - "required": [ - "messages" - ] - }, - { - "title": "Async Batch", - "type": "object", - "properties": { - "requests": { - "type": "array", - "items": { - "type": "object", - "oneOf": [ - { - "title": "Prompt", - "properties": { - "prompt": { - "type": "string", - "minLength": 1, - "description": "The input text prompt for the model to generate a response." - }, - "lora": { - "type": "string", - "description": "Name of the LoRA (Low-Rank Adaptation) model to fine-tune the base model." - }, - "response_format": { - "title": "JSON Mode", - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_object", - "json_schema" - ] - }, - "json_schema": {} - } - }, - "raw": { - "type": "boolean", - "default": false, - "description": "If true, a chat template is not applied and you must adhere to the specific model's expected formatting." - }, - "stream": { - "type": "boolean", - "default": false, - "description": "If true, the response will be streamed back incrementally using SSE, Server Sent Events." - }, - "max_tokens": { - "type": "integer", - "default": 256, - "description": "The maximum number of tokens to generate in the response." - }, - "temperature": { - "type": "number", - "default": 0.6, - "minimum": 0, - "maximum": 5, - "description": "Controls the randomness of the output; higher values produce more random results." - }, - "top_p": { - "type": "number", - "minimum": 0.001, - "maximum": 1, - "description": "Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses." - }, - "top_k": { - "type": "integer", - "minimum": 1, - "maximum": 50, - "description": "Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises." - }, - "seed": { - "type": "integer", - "minimum": 1, - "maximum": 9999999999, - "description": "Random seed for reproducibility of the generation." - }, - "repetition_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Penalty for repeated tokens; higher values discourage repetition." - }, - "frequency_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Decreases the likelihood of the model repeating the same lines verbatim." - }, - "presence_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Increases the likelihood of the model introducing new topics." - } - }, - "required": [ - "prompt" - ] - }, - { - "title": "Messages", - "properties": { - "messages": { - "type": "array", - "description": "An array of message objects representing the conversation history.", - "items": { - "type": "object", - "properties": { - "role": { - "type": "string", - "description": "The role of the message sender (e.g., 'user', 'assistant', 'system', 'tool')." - }, - "content": { - "oneOf": [ - { - "type": "string", - "description": "The content of the message as a string." - }, - { - "type": "array", - "description": "Array of text content parts.", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "Type of the content (text)" - }, - "text": { - "type": "string", - "description": "Text content" - } - } - } - } - ] - } - }, - "required": [ - "role", - "content" - ] - } - }, - "functions": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "code": { - "type": "string" - } - }, - "required": [ - "name", - "code" - ] - } - }, - "tools": { - "type": "array", - "description": "A list of tools available for the assistant to use.", - "items": { - "type": "object", - "oneOf": [ - { - "properties": { - "name": { - "type": "string", - "description": "The name of the tool. More descriptive the better." - }, - "description": { - "type": "string", - "description": "A brief description of what the tool does." - }, - "parameters": { - "type": "object", - "description": "Schema defining the parameters accepted by the tool.", - "properties": { - "type": { - "type": "string", - "description": "The type of the parameters object (usually 'object')." - }, - "required": { - "type": "array", - "description": "List of required parameter names.", - "items": { - "type": "string" - } - }, - "properties": { - "type": "object", - "description": "Definitions of each parameter.", - "additionalProperties": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The data type of the parameter." - }, - "description": { - "type": "string", - "description": "A description of the expected parameter." - } - }, - "required": [ - "type", - "description" - ] - } - } - }, - "required": [ - "type", - "properties" - ] - } - }, - "required": [ - "name", - "description", - "parameters" - ] - }, - { - "properties": { - "type": { - "type": "string", - "description": "Specifies the type of tool (e.g., 'function')." - }, - "function": { - "type": "object", - "description": "Details of the function tool.", - "properties": { - "name": { - "type": "string", - "description": "The name of the function." - }, - "description": { - "type": "string", - "description": "A brief description of what the function does." - }, - "parameters": { - "type": "object", - "description": "Schema defining the parameters accepted by the function.", - "properties": { - "type": { - "type": "string", - "description": "The type of the parameters object (usually 'object')." - }, - "required": { - "type": "array", - "description": "List of required parameter names.", - "items": { - "type": "string" - } - }, - "properties": { - "type": "object", - "description": "Definitions of each parameter.", - "additionalProperties": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The data type of the parameter." - }, - "description": { - "type": "string", - "description": "A description of the expected parameter." - } - }, - "required": [ - "type", - "description" - ] - } - } - }, - "required": [ - "type", - "properties" - ] - } - }, - "required": [ - "name", - "description", - "parameters" - ] - } - }, - "required": [ - "type", - "function" - ] - } - ] - } - }, - "response_format": { - "title": "JSON Mode", - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_object", - "json_schema" - ] - }, - "json_schema": {} - } - }, - "raw": { - "type": "boolean", - "default": false, - "description": "If true, a chat template is not applied and you must adhere to the specific model's expected formatting." - }, - "stream": { - "type": "boolean", - "default": false, - "description": "If true, the response will be streamed back incrementally using SSE, Server Sent Events." - }, - "max_tokens": { - "type": "integer", - "default": 256, - "description": "The maximum number of tokens to generate in the response." - }, - "temperature": { - "type": "number", - "default": 0.6, - "minimum": 0, - "maximum": 5, - "description": "Controls the randomness of the output; higher values produce more random results." - }, - "top_p": { - "type": "number", - "minimum": 0.001, - "maximum": 1, - "description": "Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses." - }, - "top_k": { - "type": "integer", - "minimum": 1, - "maximum": 50, - "description": "Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises." - }, - "seed": { - "type": "integer", - "minimum": 1, - "maximum": 9999999999, - "description": "Random seed for reproducibility of the generation." - }, - "repetition_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Penalty for repeated tokens; higher values discourage repetition." - }, - "frequency_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Decreases the likelihood of the model repeating the same lines verbatim." - }, - "presence_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Increases the likelihood of the model introducing new topics." - } - }, - "required": [ - "messages" - ] - } - ] - } - } - }, - "required": [ - "requests" - ] - } - ] - }, - "output": { - "oneOf": [ - { - "type": "object", - "contentType": "application/json", - "title": "Chat Completion Response", - "properties": { - "id": { - "type": "string", - "description": "Unique identifier for the completion" - }, - "object": { - "type": "string", - "enum": [ - "chat.completion" - ], - "description": "Object type identifier" - }, - "created": { - "type": "number", - "description": "Unix timestamp of when the completion was created" - }, - "model": { - "type": "string", - "description": "Model used for the completion" - }, - "choices": { - "type": "array", - "description": "List of completion choices", - "items": { - "type": "object", - "properties": { - "index": { - "type": "number", - "description": "Index of the choice in the list" - }, - "message": { - "type": "object", - "description": "The message generated by the model", - "properties": { - "role": { - "type": "string", - "description": "Role of the message author" - }, - "content": { - "type": "string", - "description": "The content of the message" - }, - "reasoning_content": { - "type": "string", - "description": "Internal reasoning content (if available)" - }, - "tool_calls": { - "type": "array", - "description": "Tool calls made by the assistant", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Unique identifier for the tool call" - }, - "type": { - "type": "string", - "enum": [ - "function" - ], - "description": "Type of tool call" - }, - "function": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Name of the function to call" - }, - "arguments": { - "type": "string", - "description": "JSON string of arguments for the function" - } - }, - "required": [ - "name", - "arguments" - ] - } - }, - "required": [ - "id", - "type", - "function" - ] - } - } - }, - "required": [ - "role", - "content" - ] - }, - "finish_reason": { - "type": "string", - "description": "Reason why the model stopped generating" - }, - "stop_reason": { - "type": [ - "string", - "null" - ], - "description": "Stop reason (may be null)" - }, - "logprobs": { - "type": [ - "object", - "null" - ], - "description": "Log probabilities (if requested)" - } - } - } - }, - "usage": { - "type": "object", - "description": "Usage statistics for the inference request", - "properties": { - "prompt_tokens": { - "type": "number", - "description": "Total number of tokens in input", - "default": 0 - }, - "completion_tokens": { - "type": "number", - "description": "Total number of tokens in output", - "default": 0 - }, - "total_tokens": { - "type": "number", - "description": "Total number of input and output tokens", - "default": 0 - } - } - }, - "prompt_logprobs": { - "type": [ - "object", - "null" - ], - "description": "Log probabilities for the prompt (if requested)" - } - } - }, - { - "type": "object", - "contentType": "application/json", - "title": "Text Completion Response", - "properties": { - "id": { - "type": "string", - "description": "Unique identifier for the completion" - }, - "object": { - "type": "string", - "enum": [ - "text_completion" - ], - "description": "Object type identifier" - }, - "created": { - "type": "number", - "description": "Unix timestamp of when the completion was created" - }, - "model": { - "type": "string", - "description": "Model used for the completion" - }, - "choices": { - "type": "array", - "description": "List of completion choices", - "items": { - "type": "object", - "properties": { - "index": { - "type": "number", - "description": "Index of the choice in the list" - }, - "text": { - "type": "string", - "description": "The generated text completion" - }, - "finish_reason": { - "type": "string", - "description": "Reason why the model stopped generating" - }, - "stop_reason": { - "type": [ - "string", - "null" - ], - "description": "Stop reason (may be null)" - }, - "logprobs": { - "type": [ - "object", - "null" - ], - "description": "Log probabilities (if requested)" - }, - "prompt_logprobs": { - "type": [ - "object", - "null" - ], - "description": "Log probabilities for the prompt (if requested)" - } - }, - "required": [ - "index", - "text", - "finish_reason" - ] - } - }, - "usage": { - "type": "object", - "description": "Usage statistics for the inference request", - "properties": { - "prompt_tokens": { - "type": "number", - "description": "Total number of tokens in input", - "default": 0 - }, - "completion_tokens": { - "type": "number", - "description": "Total number of tokens in output", - "default": 0 - }, - "total_tokens": { - "type": "number", - "description": "Total number of input and output tokens", - "default": 0 - } - } - } - } - }, - { - "type": "string", - "contentType": "text/event-stream", - "format": "binary" - }, - { - "type": "object", - "contentType": "application/json", - "title": "Async response", - "properties": { - "request_id": { - "type": "string", - "description": "The async request id that can be used to obtain the results." - } - } - } - ] - } - } -} \ No newline at end of file diff --git a/src/content/workers-ai-models/glm-4.7-flash.json b/src/content/workers-ai-models/glm-4.7-flash.json deleted file mode 100644 index f5e3ec5fb71d244..000000000000000 --- a/src/content/workers-ai-models/glm-4.7-flash.json +++ /dev/null @@ -1,2642 +0,0 @@ -{ - "id": "86b3e51a-4b05-43fa-a403-0f27821919d2", - "source": 1, - "name": "@cf/zai-org/glm-4.7-flash", - "description": "GLM-4.7-Flash is a fast and efficient multilingual text generation model with a 131,072 token context window. Optimized for dialogue, instruction-following, and multi-turn tool calling across 100+ languages.", - "task": { - "id": "c329a1f9-323d-4e91-b2aa-582dd4188d34", - "name": "Text Generation", - "description": "Family of generative text models, such as large language models (LLM), that can be adapted for a variety of natural language tasks." - }, - "created_at": "2026-01-28 16:04:39.346", - "tags": [], - "properties": [ - { - "property_id": "context_window", - "value": "131072" - }, - { - "property_id": "price", - "value": [ - { - "unit": "per M input tokens", - "price": 0.06, - "currency": "USD" - }, - { - "unit": "per M output tokens", - "price": 0.4, - "currency": "USD" - } - ] - }, - { - "property_id": "function_calling", - "value": "true" - }, - { - "property_id": "reasoning", - "value": "true" - } - ], - "schema": { - "input": { - "type": "object", - "oneOf": [ - { - "title": "Prompt", - "properties": { - "prompt": { - "type": "string", - "minLength": 1, - "description": "The input text prompt for the model to generate a response." - }, - "model": { - "type": "string", - "description": "ID of the model to use (e.g. '@cf/zai-org/glm-4.7-flash, etc')." - }, - "audio": { - "anyOf": [ - { - "type": "object", - "description": "Parameters for audio output. Required when modalities includes 'audio'.", - "properties": { - "voice": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "object", - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ] - } - ] - }, - "format": { - "type": "string", - "enum": [ - "wav", - "aac", - "mp3", - "flac", - "opus", - "pcm16" - ] - } - }, - "required": [ - "voice", - "format" - ] - } - ] - }, - "frequency_penalty": { - "anyOf": [ - { - "type": "number", - "minimum": -2, - "maximum": 2 - }, - { - "type": "null" - } - ], - "default": 0, - "description": "Penalizes new tokens based on their existing frequency in the text so far." - }, - "logit_bias": { - "anyOf": [ - { - "type": "object" - }, - { - "type": "null" - } - ], - "description": "Modify the likelihood of specified tokens appearing in the completion. Maps token IDs to bias values from -100 to 100." - }, - "logprobs": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "default": false, - "description": "Whether to return log probabilities of the output tokens." - }, - "top_logprobs": { - "anyOf": [ - { - "type": "integer", - "minimum": 0, - "maximum": 20 - }, - { - "type": "null" - } - ], - "description": "How many top log probabilities to return at each token position (0-20). Requires logprobs=true." - }, - "max_tokens": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "description": "Deprecated in favor of max_completion_tokens. The maximum number of tokens to generate." - }, - "max_completion_tokens": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "description": "An upper bound for the number of tokens that can be generated for a completion." - }, - "metadata": { - "anyOf": [ - { - "type": "object" - }, - { - "type": "null" - } - ], - "description": "Set of 16 key-value pairs that can be attached to the object." - }, - "modalities": { - "anyOf": [ - { - "type": "array", - "items": { - "type": "string", - "enum": [ - "text", - "audio" - ] - } - }, - { - "type": "null" - } - ], - "description": "Output types requested from the model (e.g. ['text'] or ['text', 'audio'])." - }, - "n": { - "anyOf": [ - { - "type": "integer", - "minimum": 1, - "maximum": 128 - }, - { - "type": "null" - } - ], - "default": 1, - "description": "How many chat completion choices to generate for each input message." - }, - "parallel_tool_calls": { - "type": "boolean", - "default": true, - "description": "Whether to enable parallel function calling during tool use." - }, - "prediction": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "content" - ] - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "text" - ] - }, - "text": { - "type": "string" - } - }, - "required": [ - "type", - "text" - ] - } - } - ] - } - }, - "required": [ - "type", - "content" - ] - } - ] - }, - "presence_penalty": { - "anyOf": [ - { - "type": "number", - "minimum": -2, - "maximum": 2 - }, - { - "type": "null" - } - ], - "default": 0, - "description": "Penalizes new tokens based on whether they appear in the text so far." - }, - "reasoning_effort": { - "anyOf": [ - { - "type": "string", - "enum": [ - "low", - "medium", - "high" - ] - }, - { - "type": "null" - } - ], - "description": "Constrains effort on reasoning for reasoning models (o1, o3-mini, etc.)." - }, - "chat_template_kwargs": { - "type": "object", - "properties": { - "enable_thinking": { - "type": "boolean", - "default": true, - "description": "Whether to enable reasoning, enabled by default." - }, - "clear_thinking": { - "type": "boolean", - "default": false, - "description": "If false, preserves reasoning context between turns." - } - } - }, - "response_format": { - "anyOf": [ - { - "description": "Specifies the format the model must output.", - "oneOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "text" - ] - } - }, - "required": [ - "type" - ] - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_object" - ] - } - }, - "required": [ - "type" - ] - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_schema" - ] - }, - "json_schema": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "schema": { - "type": "object" - }, - "strict": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "name" - ] - } - }, - "required": [ - "type", - "json_schema" - ] - } - ] - } - ] - }, - "seed": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "description": "If specified, the system will make a best effort to sample deterministically." - }, - "service_tier": { - "anyOf": [ - { - "type": "string", - "enum": [ - "auto", - "default", - "flex", - "scale", - "priority" - ] - }, - { - "type": "null" - } - ], - "default": "auto", - "description": "Specifies the processing type used for serving the request." - }, - "stop": { - "description": "Up to 4 sequences where the API will stop generating further tokens.", - "anyOf": [ - { - "type": "null" - }, - { - "type": "string" - }, - { - "type": "array", - "items": { - "type": "string" - }, - "minItems": 1, - "maxItems": 4 - } - ] - }, - "store": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "default": false, - "description": "Whether to store the output for model distillation / evals." - }, - "stream": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "default": false, - "description": "If true, partial message deltas will be sent as server-sent events." - }, - "stream_options": { - "anyOf": [ - { - "type": "object", - "properties": { - "include_usage": { - "type": "boolean" - }, - "include_obfuscation": { - "type": "boolean" - } - } - } - ] - }, - "temperature": { - "anyOf": [ - { - "type": "number", - "minimum": 0, - "maximum": 2 - }, - { - "type": "null" - } - ], - "default": 1, - "description": "Sampling temperature between 0 and 2." - }, - "tool_choice": { - "anyOf": [ - { - "description": "Controls which (if any) tool is called by the model. 'none' = no tools, 'auto' = model decides, 'required' = must call a tool.", - "oneOf": [ - { - "type": "string", - "enum": [ - "none", - "auto", - "required" - ] - }, - { - "type": "object", - "description": "Force a specific function tool.", - "properties": { - "type": { - "type": "string", - "enum": [ - "function" - ] - }, - "function": { - "type": "object", - "properties": { - "name": { - "type": "string" - } - }, - "required": [ - "name" - ] - } - }, - "required": [ - "type", - "function" - ] - }, - { - "type": "object", - "description": "Force a specific custom tool.", - "properties": { - "type": { - "type": "string", - "enum": [ - "custom" - ] - }, - "custom": { - "type": "object", - "properties": { - "name": { - "type": "string" - } - }, - "required": [ - "name" - ] - } - }, - "required": [ - "type", - "custom" - ] - }, - { - "type": "object", - "description": "Constrain to an allowed subset of tools.", - "properties": { - "type": { - "type": "string", - "enum": [ - "allowed_tools" - ] - }, - "allowed_tools": { - "type": "object", - "properties": { - "mode": { - "type": "string", - "enum": [ - "auto", - "required" - ] - }, - "tools": { - "type": "array", - "items": { - "type": "object" - } - } - }, - "required": [ - "mode", - "tools" - ] - } - }, - "required": [ - "type", - "allowed_tools" - ] - } - ] - } - ] - }, - "tools": { - "type": "array", - "description": "A list of tools the model may call.", - "items": { - "oneOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "function" - ] - }, - "function": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The name of the function to be called." - }, - "description": { - "type": "string", - "description": "A description of what the function does." - }, - "parameters": { - "type": "object", - "description": "The parameters the function accepts, described as a JSON Schema object." - }, - "strict": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "default": false, - "description": "Whether to enable strict schema adherence." - } - }, - "required": [ - "name" - ] - } - }, - "required": [ - "type", - "function" - ] - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "custom" - ] - }, - "custom": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "format": { - "oneOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "text" - ] - } - }, - "required": [ - "type" - ] - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "grammar" - ] - }, - "grammar": { - "type": "object", - "properties": { - "definition": { - "type": "string" - }, - "syntax": { - "type": "string", - "enum": [ - "lark", - "regex" - ] - } - }, - "required": [ - "definition", - "syntax" - ] - } - }, - "required": [ - "type", - "grammar" - ] - } - ] - } - }, - "required": [ - "name" - ] - } - }, - "required": [ - "type", - "custom" - ] - } - ] - } - }, - "top_p": { - "anyOf": [ - { - "type": "number", - "minimum": 0, - "maximum": 1 - }, - { - "type": "null" - } - ], - "default": 1, - "description": "Nucleus sampling: considers the results of the tokens with top_p probability mass." - }, - "user": { - "type": "string", - "description": "A unique identifier representing your end-user, for abuse monitoring." - }, - "web_search_options": { - "anyOf": [ - { - "type": "object", - "description": "Options for the web search tool (when using built-in web search).", - "properties": { - "search_context_size": { - "type": "string", - "enum": [ - "low", - "medium", - "high" - ], - "default": "medium" - }, - "user_location": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "approximate" - ] - }, - "approximate": { - "type": "object", - "properties": { - "city": { - "type": "string" - }, - "country": { - "type": "string" - }, - "region": { - "type": "string" - }, - "timezone": { - "type": "string" - } - } - } - }, - "required": [ - "type", - "approximate" - ] - } - } - } - ] - }, - "function_call": { - "anyOf": [ - { - "type": "string", - "enum": [ - "none", - "auto" - ] - }, - { - "type": "object", - "properties": { - "name": { - "type": "string" - } - }, - "required": [ - "name" - ] - } - ] - }, - "functions": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The name of the function to be called." - }, - "description": { - "type": "string", - "description": "A description of what the function does." - }, - "parameters": { - "type": "object", - "description": "The parameters the function accepts, described as a JSON Schema object." - }, - "strict": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "default": false, - "description": "Whether to enable strict schema adherence." - } - }, - "required": [ - "name" - ] - }, - "minItems": 1, - "maxItems": 128 - } - }, - "required": [ - "prompt" - ] - }, - { - "title": "Messages", - "properties": { - "messages": { - "type": "array", - "description": "A list of messages comprising the conversation so far.", - "items": { - "oneOf": [ - { - "type": "object", - "properties": { - "role": { - "type": "string", - "enum": [ - "developer" - ] - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "text" - ] - }, - "text": { - "type": "string" - } - }, - "required": [ - "type", - "text" - ] - } - } - ] - }, - "name": { - "type": "string" - } - }, - "required": [ - "role", - "content" - ] - }, - { - "type": "object", - "properties": { - "role": { - "type": "string", - "enum": [ - "system" - ] - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "text" - ] - }, - "text": { - "type": "string" - } - }, - "required": [ - "type", - "text" - ] - } - } - ] - }, - "name": { - "type": "string" - } - }, - "required": [ - "role", - "content" - ] - }, - { - "type": "object", - "properties": { - "role": { - "type": "string", - "enum": [ - "user" - ] - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "text", - "image_url", - "input_audio", - "file" - ] - }, - "text": { - "type": "string" - }, - "image_url": { - "type": "object", - "properties": { - "url": { - "type": "string" - }, - "detail": { - "type": "string", - "enum": [ - "auto", - "low", - "high" - ], - "default": "auto" - } - } - }, - "input_audio": { - "type": "object", - "properties": { - "data": { - "type": "string" - }, - "format": { - "type": "string", - "enum": [ - "wav", - "mp3" - ] - } - } - }, - "file": { - "type": "object", - "properties": { - "file_data": { - "type": "string" - }, - "file_id": { - "type": "string" - }, - "filename": { - "type": "string" - } - } - } - }, - "required": [ - "type" - ] - }, - "minItems": 1 - } - ] - }, - "name": { - "type": "string" - } - }, - "required": [ - "role", - "content" - ] - }, - { - "type": "object", - "properties": { - "role": { - "type": "string", - "enum": [ - "assistant" - ] - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - }, - { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "text", - "refusal" - ] - }, - "text": { - "type": "string" - }, - "refusal": { - "type": "string" - } - }, - "required": [ - "type" - ] - } - } - ] - }, - "refusal": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "name": { - "type": "string" - }, - "audio": { - "anyOf": [ - { - "type": "object", - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ] - } - ] - }, - "tool_calls": { - "type": "array", - "items": { - "oneOf": [ - { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "function" - ] - }, - "function": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "arguments": { - "type": "string", - "description": "JSON-encoded arguments string." - } - }, - "required": [ - "name", - "arguments" - ] - } - }, - "required": [ - "id", - "type", - "function" - ] - }, - { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "custom" - ] - }, - "custom": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "input": { - "type": "string" - } - }, - "required": [ - "name", - "input" - ] - } - }, - "required": [ - "id", - "type", - "custom" - ] - } - ] - } - }, - "function_call": { - "anyOf": [ - { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "arguments": { - "type": "string" - } - }, - "required": [ - "name", - "arguments" - ] - } - ] - } - }, - "required": [ - "role" - ] - }, - { - "type": "object", - "properties": { - "role": { - "type": "string", - "enum": [ - "tool" - ] - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "text" - ] - }, - "text": { - "type": "string" - } - }, - "required": [ - "type", - "text" - ] - } - } - ] - }, - "tool_call_id": { - "type": "string" - } - }, - "required": [ - "role", - "content", - "tool_call_id" - ] - }, - { - "type": "object", - "properties": { - "role": { - "type": "string", - "enum": [ - "function" - ] - }, - "content": { - "type": "string" - }, - "name": { - "type": "string" - } - }, - "required": [ - "role", - "content", - "name" - ] - } - ] - }, - "minItems": 1 - }, - "model": { - "type": "string", - "description": "ID of the model to use (e.g. '@cf/zai-org/glm-4.7-flash, etc')." - }, - "audio": { - "anyOf": [ - { - "type": "object", - "description": "Parameters for audio output. Required when modalities includes 'audio'.", - "properties": { - "voice": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "object", - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ] - } - ] - }, - "format": { - "type": "string", - "enum": [ - "wav", - "aac", - "mp3", - "flac", - "opus", - "pcm16" - ] - } - }, - "required": [ - "voice", - "format" - ] - } - ] - }, - "frequency_penalty": { - "anyOf": [ - { - "type": "number", - "minimum": -2, - "maximum": 2 - }, - { - "type": "null" - } - ], - "default": 0, - "description": "Penalizes new tokens based on their existing frequency in the text so far." - }, - "logit_bias": { - "anyOf": [ - { - "type": "object" - }, - { - "type": "null" - } - ], - "description": "Modify the likelihood of specified tokens appearing in the completion. Maps token IDs to bias values from -100 to 100." - }, - "logprobs": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "default": false, - "description": "Whether to return log probabilities of the output tokens." - }, - "top_logprobs": { - "anyOf": [ - { - "type": "integer", - "minimum": 0, - "maximum": 20 - }, - { - "type": "null" - } - ], - "description": "How many top log probabilities to return at each token position (0-20). Requires logprobs=true." - }, - "max_tokens": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "description": "Deprecated in favor of max_completion_tokens. The maximum number of tokens to generate." - }, - "max_completion_tokens": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "description": "An upper bound for the number of tokens that can be generated for a completion." - }, - "metadata": { - "anyOf": [ - { - "type": "object" - }, - { - "type": "null" - } - ], - "description": "Set of 16 key-value pairs that can be attached to the object." - }, - "modalities": { - "anyOf": [ - { - "type": "array", - "items": { - "type": "string", - "enum": [ - "text", - "audio" - ] - } - }, - { - "type": "null" - } - ], - "description": "Output types requested from the model (e.g. ['text'] or ['text', 'audio'])." - }, - "n": { - "anyOf": [ - { - "type": "integer", - "minimum": 1, - "maximum": 128 - }, - { - "type": "null" - } - ], - "default": 1, - "description": "How many chat completion choices to generate for each input message." - }, - "parallel_tool_calls": { - "type": "boolean", - "default": true, - "description": "Whether to enable parallel function calling during tool use." - }, - "prediction": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "content" - ] - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "text" - ] - }, - "text": { - "type": "string" - } - }, - "required": [ - "type", - "text" - ] - } - } - ] - } - }, - "required": [ - "type", - "content" - ] - } - ] - }, - "presence_penalty": { - "anyOf": [ - { - "type": "number", - "minimum": -2, - "maximum": 2 - }, - { - "type": "null" - } - ], - "default": 0, - "description": "Penalizes new tokens based on whether they appear in the text so far." - }, - "reasoning_effort": { - "anyOf": [ - { - "type": "string", - "enum": [ - "low", - "medium", - "high" - ] - }, - { - "type": "null" - } - ], - "description": "Constrains effort on reasoning for reasoning models (o1, o3-mini, etc.)." - }, - "chat_template_kwargs": { - "type": "object", - "properties": { - "enable_thinking": { - "type": "boolean", - "default": true, - "description": "Whether to enable reasoning, enabled by default." - }, - "clear_thinking": { - "type": "boolean", - "default": false, - "description": "If false, preserves reasoning context between turns." - } - } - }, - "response_format": { - "anyOf": [ - { - "description": "Specifies the format the model must output.", - "oneOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "text" - ] - } - }, - "required": [ - "type" - ] - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_object" - ] - } - }, - "required": [ - "type" - ] - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_schema" - ] - }, - "json_schema": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "schema": { - "type": "object" - }, - "strict": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "name" - ] - } - }, - "required": [ - "type", - "json_schema" - ] - } - ] - } - ] - }, - "seed": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "description": "If specified, the system will make a best effort to sample deterministically." - }, - "service_tier": { - "anyOf": [ - { - "type": "string", - "enum": [ - "auto", - "default", - "flex", - "scale", - "priority" - ] - }, - { - "type": "null" - } - ], - "default": "auto", - "description": "Specifies the processing type used for serving the request." - }, - "stop": { - "description": "Up to 4 sequences where the API will stop generating further tokens.", - "anyOf": [ - { - "type": "null" - }, - { - "type": "string" - }, - { - "type": "array", - "items": { - "type": "string" - }, - "minItems": 1, - "maxItems": 4 - } - ] - }, - "store": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "default": false, - "description": "Whether to store the output for model distillation / evals." - }, - "stream": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "default": false, - "description": "If true, partial message deltas will be sent as server-sent events." - }, - "stream_options": { - "anyOf": [ - { - "type": "object", - "properties": { - "include_usage": { - "type": "boolean" - }, - "include_obfuscation": { - "type": "boolean" - } - } - } - ] - }, - "temperature": { - "anyOf": [ - { - "type": "number", - "minimum": 0, - "maximum": 2 - }, - { - "type": "null" - } - ], - "default": 1, - "description": "Sampling temperature between 0 and 2." - }, - "tool_choice": { - "anyOf": [ - { - "description": "Controls which (if any) tool is called by the model. 'none' = no tools, 'auto' = model decides, 'required' = must call a tool.", - "oneOf": [ - { - "type": "string", - "enum": [ - "none", - "auto", - "required" - ] - }, - { - "type": "object", - "description": "Force a specific function tool.", - "properties": { - "type": { - "type": "string", - "enum": [ - "function" - ] - }, - "function": { - "type": "object", - "properties": { - "name": { - "type": "string" - } - }, - "required": [ - "name" - ] - } - }, - "required": [ - "type", - "function" - ] - }, - { - "type": "object", - "description": "Force a specific custom tool.", - "properties": { - "type": { - "type": "string", - "enum": [ - "custom" - ] - }, - "custom": { - "type": "object", - "properties": { - "name": { - "type": "string" - } - }, - "required": [ - "name" - ] - } - }, - "required": [ - "type", - "custom" - ] - }, - { - "type": "object", - "description": "Constrain to an allowed subset of tools.", - "properties": { - "type": { - "type": "string", - "enum": [ - "allowed_tools" - ] - }, - "allowed_tools": { - "type": "object", - "properties": { - "mode": { - "type": "string", - "enum": [ - "auto", - "required" - ] - }, - "tools": { - "type": "array", - "items": { - "type": "object" - } - } - }, - "required": [ - "mode", - "tools" - ] - } - }, - "required": [ - "type", - "allowed_tools" - ] - } - ] - } - ] - }, - "tools": { - "type": "array", - "description": "A list of tools the model may call.", - "items": { - "oneOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "function" - ] - }, - "function": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The name of the function to be called." - }, - "description": { - "type": "string", - "description": "A description of what the function does." - }, - "parameters": { - "type": "object", - "description": "The parameters the function accepts, described as a JSON Schema object." - }, - "strict": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "default": false, - "description": "Whether to enable strict schema adherence." - } - }, - "required": [ - "name" - ] - } - }, - "required": [ - "type", - "function" - ] - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "custom" - ] - }, - "custom": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "format": { - "oneOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "text" - ] - } - }, - "required": [ - "type" - ] - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "grammar" - ] - }, - "grammar": { - "type": "object", - "properties": { - "definition": { - "type": "string" - }, - "syntax": { - "type": "string", - "enum": [ - "lark", - "regex" - ] - } - }, - "required": [ - "definition", - "syntax" - ] - } - }, - "required": [ - "type", - "grammar" - ] - } - ] - } - }, - "required": [ - "name" - ] - } - }, - "required": [ - "type", - "custom" - ] - } - ] - } - }, - "top_p": { - "anyOf": [ - { - "type": "number", - "minimum": 0, - "maximum": 1 - }, - { - "type": "null" - } - ], - "default": 1, - "description": "Nucleus sampling: considers the results of the tokens with top_p probability mass." - }, - "user": { - "type": "string", - "description": "A unique identifier representing your end-user, for abuse monitoring." - }, - "web_search_options": { - "anyOf": [ - { - "type": "object", - "description": "Options for the web search tool (when using built-in web search).", - "properties": { - "search_context_size": { - "type": "string", - "enum": [ - "low", - "medium", - "high" - ], - "default": "medium" - }, - "user_location": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "approximate" - ] - }, - "approximate": { - "type": "object", - "properties": { - "city": { - "type": "string" - }, - "country": { - "type": "string" - }, - "region": { - "type": "string" - }, - "timezone": { - "type": "string" - } - } - } - }, - "required": [ - "type", - "approximate" - ] - } - } - } - ] - }, - "function_call": { - "anyOf": [ - { - "type": "string", - "enum": [ - "none", - "auto" - ] - }, - { - "type": "object", - "properties": { - "name": { - "type": "string" - } - }, - "required": [ - "name" - ] - } - ] - }, - "functions": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The name of the function to be called." - }, - "description": { - "type": "string", - "description": "A description of what the function does." - }, - "parameters": { - "type": "object", - "description": "The parameters the function accepts, described as a JSON Schema object." - }, - "strict": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "default": false, - "description": "Whether to enable strict schema adherence." - } - }, - "required": [ - "name" - ] - }, - "minItems": 1, - "maxItems": 128 - } - }, - "required": [ - "messages" - ] - } - ] - }, - "output": { - "oneOf": [ - { - "type": "object", - "contentType": "application/json", - "properties": { - "id": { - "type": "string", - "description": "A unique identifier for the chat completion." - }, - "object": { - "type": "string" - }, - "created": { - "type": "integer", - "description": "Unix timestamp (seconds) of when the completion was created." - }, - "model": { - "type": "string", - "description": "The model used for the chat completion." - }, - "choices": { - "type": "array", - "items": { - "anyOf": [ - { - "type": "object", - "properties": { - "index": { - "type": "integer" - }, - "message": { - "anyOf": [ - { - "type": "object", - "properties": { - "role": { - "type": "string", - "enum": [ - "assistant" - ] - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "refusal": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "annotations": { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "url_citation" - ] - }, - "url_citation": { - "type": "object", - "properties": { - "url": { - "type": "string" - }, - "title": { - "type": "string" - }, - "start_index": { - "type": "integer" - }, - "end_index": { - "type": "integer" - } - }, - "required": [ - "url", - "title", - "start_index", - "end_index" - ] - } - }, - "required": [ - "type", - "url_citation" - ] - } - }, - "audio": { - "anyOf": [ - { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "data": { - "type": "string", - "description": "Base64 encoded audio bytes." - }, - "expires_at": { - "type": "integer" - }, - "transcript": { - "type": "string" - } - }, - "required": [ - "id", - "data", - "expires_at", - "transcript" - ] - } - ] - }, - "tool_calls": { - "type": "array", - "items": { - "oneOf": [ - { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "function" - ] - }, - "function": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "arguments": { - "type": "string", - "description": "JSON-encoded arguments string." - } - }, - "required": [ - "name", - "arguments" - ] - } - }, - "required": [ - "id", - "type", - "function" - ] - }, - { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "custom" - ] - }, - "custom": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "input": { - "type": "string" - } - }, - "required": [ - "name", - "input" - ] - } - }, - "required": [ - "id", - "type", - "custom" - ] - } - ] - } - }, - "function_call": { - "anyOf": [ - { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "arguments": { - "type": "string" - } - }, - "required": [ - "name", - "arguments" - ] - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "role", - "content", - "refusal" - ] - } - ] - }, - "finish_reason": { - "type": "string", - "enum": [ - "stop", - "length", - "tool_calls", - "content_filter", - "function_call" - ] - }, - "logprobs": { - "anyOf": [ - { - "type": "object", - "properties": { - "content": { - "anyOf": [ - { - "type": "array", - "items": { - "type": "object", - "properties": { - "token": { - "type": "string" - }, - "logprob": { - "type": "number" - }, - "bytes": { - "anyOf": [ - { - "type": "array", - "items": { - "type": "integer" - } - }, - { - "type": "null" - } - ] - }, - "top_logprobs": { - "type": "array", - "items": { - "type": "object", - "properties": { - "token": { - "type": "string" - }, - "logprob": { - "type": "number" - }, - "bytes": { - "anyOf": [ - { - "type": "array", - "items": { - "type": "integer" - } - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "token", - "logprob", - "bytes" - ] - } - } - }, - "required": [ - "token", - "logprob", - "bytes", - "top_logprobs" - ] - } - }, - { - "type": "null" - } - ] - }, - "refusal": { - "anyOf": [ - { - "type": "array", - "items": { - "type": "object", - "properties": { - "token": { - "type": "string" - }, - "logprob": { - "type": "number" - }, - "bytes": { - "anyOf": [ - { - "type": "array", - "items": { - "type": "integer" - } - }, - { - "type": "null" - } - ] - }, - "top_logprobs": { - "type": "array", - "items": { - "type": "object", - "properties": { - "token": { - "type": "string" - }, - "logprob": { - "type": "number" - }, - "bytes": { - "anyOf": [ - { - "type": "array", - "items": { - "type": "integer" - } - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "token", - "logprob", - "bytes" - ] - } - } - }, - "required": [ - "token", - "logprob", - "bytes", - "top_logprobs" - ] - } - }, - { - "type": "null" - } - ] - } - } - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "index", - "message", - "finish_reason", - "logprobs" - ] - } - ] - }, - "minItems": 1 - }, - "usage": { - "anyOf": [ - { - "type": "object", - "properties": { - "prompt_tokens": { - "type": "integer" - }, - "completion_tokens": { - "type": "integer" - }, - "total_tokens": { - "type": "integer" - }, - "prompt_tokens_details": { - "type": "object", - "properties": { - "cached_tokens": { - "type": "integer" - }, - "audio_tokens": { - "type": "integer" - } - } - }, - "completion_tokens_details": { - "type": "object", - "properties": { - "reasoning_tokens": { - "type": "integer" - }, - "audio_tokens": { - "type": "integer" - }, - "accepted_prediction_tokens": { - "type": "integer" - }, - "rejected_prediction_tokens": { - "type": "integer" - } - } - } - }, - "required": [ - "prompt_tokens", - "completion_tokens", - "total_tokens" - ] - } - ] - }, - "system_fingerprint": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "service_tier": { - "anyOf": [ - { - "type": "string", - "enum": [ - "auto", - "default", - "flex", - "scale", - "priority" - ] - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "object", - "created", - "model", - "choices" - ] - }, - { - "type": "string", - "contentType": "text/event-stream", - "format": "binary" - } - ] - } - } -} \ No newline at end of file diff --git a/src/content/workers-ai-models/gpt-oss-120b.json b/src/content/workers-ai-models/gpt-oss-120b.json deleted file mode 100644 index eff3fa02ba992c2..000000000000000 --- a/src/content/workers-ai-models/gpt-oss-120b.json +++ /dev/null @@ -1,921 +0,0 @@ -{ - "id": "f9f2250b-1048-4a52-9910-d0bf976616a1", - "source": 1, - "name": "@cf/openai/gpt-oss-120b", - "description": "OpenAI's open-weight models designed for powerful reasoning, agentic tasks, and versatile developer use cases – gpt-oss-120b is for production, general purpose, high reasoning use-cases.", - "task": { - "id": "c329a1f9-323d-4e91-b2aa-582dd4188d34", - "name": "Text Generation", - "description": "Family of generative text models, such as large language models (LLM), that can be adapted for a variety of natural language tasks." - }, - "created_at": "2025-08-05 10:27:29.131", - "tags": [], - "properties": [ - { - "property_id": "context_window", - "value": "128000" - }, - { - "property_id": "price", - "value": [ - { - "unit": "per M input tokens", - "price": 0.35, - "currency": "USD" - }, - { - "unit": "per M output tokens", - "price": 0.75, - "currency": "USD" - } - ] - }, - { - "property_id": "function_calling", - "value": "true" - }, - { - "property_id": "reasoning", - "value": "true" - } - ], - "schema": { - "input": { - "oneOf": [ - { - "type": "object", - "oneOf": [ - { - "title": "Prompt", - "properties": { - "prompt": { - "type": "string", - "minLength": 1, - "description": "The input text prompt for the model to generate a response." - }, - "lora": { - "type": "string", - "description": "Name of the LoRA (Low-Rank Adaptation) model to fine-tune the base model." - }, - "response_format": { - "title": "JSON Mode", - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_object", - "json_schema" - ] - }, - "json_schema": {} - } - }, - "raw": { - "type": "boolean", - "default": false, - "description": "If true, a chat template is not applied and you must adhere to the specific model's expected formatting." - }, - "stream": { - "type": "boolean", - "default": false, - "description": "If true, the response will be streamed back incrementally using SSE, Server Sent Events." - }, - "max_tokens": { - "type": "integer", - "default": 256, - "description": "The maximum number of tokens to generate in the response." - }, - "temperature": { - "type": "number", - "default": 0.6, - "minimum": 0, - "maximum": 5, - "description": "Controls the randomness of the output; higher values produce more random results." - }, - "top_p": { - "type": "number", - "minimum": 0.001, - "maximum": 1, - "description": "Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses." - }, - "top_k": { - "type": "integer", - "minimum": 1, - "maximum": 50, - "description": "Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises." - }, - "seed": { - "type": "integer", - "minimum": 1, - "maximum": 9999999999, - "description": "Random seed for reproducibility of the generation." - }, - "repetition_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Penalty for repeated tokens; higher values discourage repetition." - }, - "frequency_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Decreases the likelihood of the model repeating the same lines verbatim." - }, - "presence_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Increases the likelihood of the model introducing new topics." - } - }, - "required": [ - "prompt" - ] - }, - { - "title": "Messages", - "properties": { - "messages": { - "type": "array", - "description": "An array of message objects representing the conversation history.", - "items": { - "type": "object", - "properties": { - "role": { - "type": "string", - "description": "The role of the message sender (e.g., 'user', 'assistant', 'system', 'tool')." - }, - "content": { - "oneOf": [ - { - "type": "string", - "description": "The content of the message as a string." - }, - { - "type": "array", - "description": "Array of text content parts.", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "Type of the content (text)" - }, - "text": { - "type": "string", - "description": "Text content" - } - } - } - } - ] - } - }, - "required": [ - "role", - "content" - ] - } - }, - "functions": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "code": { - "type": "string" - } - }, - "required": [ - "name", - "code" - ] - } - }, - "tools": { - "type": "array", - "description": "A list of tools available for the assistant to use.", - "items": { - "type": "object", - "oneOf": [ - { - "properties": { - "name": { - "type": "string", - "description": "The name of the tool. More descriptive the better." - }, - "description": { - "type": "string", - "description": "A brief description of what the tool does." - }, - "parameters": { - "type": "object", - "description": "Schema defining the parameters accepted by the tool.", - "properties": { - "type": { - "type": "string", - "description": "The type of the parameters object (usually 'object')." - }, - "required": { - "type": "array", - "description": "List of required parameter names.", - "items": { - "type": "string" - } - }, - "properties": { - "type": "object", - "description": "Definitions of each parameter.", - "additionalProperties": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The data type of the parameter." - }, - "description": { - "type": "string", - "description": "A description of the expected parameter." - } - }, - "required": [ - "type", - "description" - ] - } - } - }, - "required": [ - "type", - "properties" - ] - } - }, - "required": [ - "name", - "description", - "parameters" - ] - }, - { - "properties": { - "type": { - "type": "string", - "description": "Specifies the type of tool (e.g., 'function')." - }, - "function": { - "type": "object", - "description": "Details of the function tool.", - "properties": { - "name": { - "type": "string", - "description": "The name of the function." - }, - "description": { - "type": "string", - "description": "A brief description of what the function does." - }, - "parameters": { - "type": "object", - "description": "Schema defining the parameters accepted by the function.", - "properties": { - "type": { - "type": "string", - "description": "The type of the parameters object (usually 'object')." - }, - "required": { - "type": "array", - "description": "List of required parameter names.", - "items": { - "type": "string" - } - }, - "properties": { - "type": "object", - "description": "Definitions of each parameter.", - "additionalProperties": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The data type of the parameter." - }, - "description": { - "type": "string", - "description": "A description of the expected parameter." - } - }, - "required": [ - "type", - "description" - ] - } - } - }, - "required": [ - "type", - "properties" - ] - } - }, - "required": [ - "name", - "description", - "parameters" - ] - } - }, - "required": [ - "type", - "function" - ] - } - ] - } - }, - "response_format": { - "title": "JSON Mode", - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_object", - "json_schema" - ] - }, - "json_schema": {} - } - }, - "raw": { - "type": "boolean", - "default": false, - "description": "If true, a chat template is not applied and you must adhere to the specific model's expected formatting." - }, - "stream": { - "type": "boolean", - "default": false, - "description": "If true, the response will be streamed back incrementally using SSE, Server Sent Events." - }, - "max_tokens": { - "type": "integer", - "default": 256, - "description": "The maximum number of tokens to generate in the response." - }, - "temperature": { - "type": "number", - "default": 0.6, - "minimum": 0, - "maximum": 5, - "description": "Controls the randomness of the output; higher values produce more random results." - }, - "top_p": { - "type": "number", - "minimum": 0.001, - "maximum": 1, - "description": "Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses." - }, - "top_k": { - "type": "integer", - "minimum": 1, - "maximum": 50, - "description": "Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises." - }, - "seed": { - "type": "integer", - "minimum": 1, - "maximum": 9999999999, - "description": "Random seed for reproducibility of the generation." - }, - "repetition_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Penalty for repeated tokens; higher values discourage repetition." - }, - "frequency_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Decreases the likelihood of the model repeating the same lines verbatim." - }, - "presence_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Increases the likelihood of the model introducing new topics." - } - }, - "required": [ - "messages" - ] - } - ] - }, - { - "type": "object", - "title": "Responses", - "properties": { - "input": { - "anyOf": [ - { - "type": "string" - }, - { - "items": {}, - "type": "array" - } - ], - "description": "Responses API Input messages. Refer to OpenAI Responses API docs to learn more about supported content types" - }, - "reasoning": { - "type": "object", - "properties": { - "effort": { - "type": "string", - "description": "Constrains effort on reasoning for reasoning models. Currently supported values are low, medium, and high. Reducing reasoning effort can result in faster responses and fewer tokens used on reasoning in a response.", - "enum": [ - "low", - "medium", - "high" - ] - }, - "summary": { - "type": "string", - "description": "A summary of the reasoning performed by the model. This can be useful for debugging and understanding the model's reasoning process. One of auto, concise, or detailed.", - "enum": [ - "auto", - "concise", - "detailed" - ] - } - } - } - }, - "required": [ - "input" - ] - }, - { - "type": "object", - "title": "Responses_Async", - "properties": { - "requests": { - "type": "array", - "items": { - "type": "object", - "properties": { - "input": { - "anyOf": [ - { - "type": "string" - }, - { - "items": {}, - "type": "array" - } - ], - "description": "Responses API Input messages. Refer to OpenAI Responses API docs to learn more about supported content types" - }, - "reasoning": { - "type": "object", - "properties": { - "effort": { - "type": "string", - "description": "Constrains effort on reasoning for reasoning models. Currently supported values are low, medium, and high. Reducing reasoning effort can result in faster responses and fewer tokens used on reasoning in a response.", - "enum": [ - "low", - "medium", - "high" - ] - }, - "summary": { - "type": "string", - "description": "A summary of the reasoning performed by the model. This can be useful for debugging and understanding the model's reasoning process. One of auto, concise, or detailed.", - "enum": [ - "auto", - "concise", - "detailed" - ] - } - } - } - }, - "required": [ - "input" - ] - } - } - }, - "required": [ - "requests" - ] - } - ] - }, - "output": { - "oneOf": [ - { - "type": "object", - "title": "Prompt_Output", - "description": "Output when using the Prompt input format", - "properties": { - "response": { - "type": "string", - "description": "The generated text response from the model" - }, - "usage": { - "type": "object", - "description": "Usage statistics for the inference request", - "properties": { - "prompt_tokens": { - "type": "number", - "description": "Total number of tokens in input", - "default": 0 - }, - "completion_tokens": { - "type": "number", - "description": "Total number of tokens in output", - "default": 0 - }, - "total_tokens": { - "type": "number", - "description": "Total number of input and output tokens", - "default": 0 - } - } - }, - "tool_calls": { - "type": "array", - "description": "An array of tool calls requests made during the response generation", - "items": { - "type": "object", - "properties": { - "arguments": { - "type": "object", - "description": "The arguments to be passed to the tool call request" - }, - "name": { - "type": "string", - "description": "The name of the tool to be called" - } - } - } - } - }, - "required": [ - "response" - ] - }, - { - "type": "object", - "title": "Messages_Output", - "description": "Output when using the Messages input format (Chat Completions API)", - "properties": { - "id": { - "type": "string", - "description": "A unique identifier for the chat completion" - }, - "object": { - "type": "string", - "description": "The object type, which is always 'chat.completion'" - }, - "created": { - "type": "integer", - "description": "The Unix timestamp (in seconds) of when the chat completion was created" - }, - "model": { - "type": "string", - "description": "The model used for the chat completion" - }, - "choices": { - "type": "array", - "description": "A list of chat completion choices", - "items": { - "type": "object", - "properties": { - "index": { - "type": "integer", - "description": "The index of the choice in the list of choices" - }, - "message": { - "type": "object", - "description": "A chat completion message generated by the model", - "properties": { - "role": { - "type": "string", - "description": "The role of the message author (e.g., 'assistant')" - }, - "content": { - "type": "string", - "description": "The contents of the assistant message" - }, - "tool_calls": { - "type": "array", - "description": "The tool calls generated by the model", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "The ID of the tool call" - }, - "type": { - "type": "string", - "description": "The type of the tool (e.g., 'function')" - }, - "function": { - "type": "object", - "description": "The function that the model called", - "properties": { - "name": { - "type": "string", - "description": "The name of the function to call" - }, - "arguments": { - "type": "string", - "description": "The arguments to call the function with, as a JSON string" - } - } - } - } - } - } - } - }, - "finish_reason": { - "type": "string", - "description": "The reason the model stopped generating tokens (e.g., 'stop', 'length', 'tool_calls')" - } - } - } - }, - "usage": { - "type": "object", - "description": "Usage statistics for the inference request", - "properties": { - "prompt_tokens": { - "type": "number", - "description": "Total number of tokens in the prompt", - "default": 0 - }, - "completion_tokens": { - "type": "number", - "description": "Total number of tokens in the generated completion", - "default": 0 - }, - "total_tokens": { - "type": "number", - "description": "Total number of tokens used in the request (prompt + completion)", - "default": 0 - } - } - } - }, - "required": [ - "id", - "object", - "created", - "model", - "choices" - ] - }, - { - "type": "object", - "title": "Responses_Output", - "description": "Output when using the Responses input format (Responses API)", - "properties": { - "id": { - "type": "string", - "description": "Unique identifier for this Response" - }, - "object": { - "type": "string", - "description": "The object type, which is always 'response'" - }, - "created_at": { - "type": "integer", - "description": "Unix timestamp (in seconds) of when this Response was created" - }, - "model": { - "type": "string", - "description": "The model used to generate this Response" - }, - "output": { - "type": "array", - "description": "An array of output items generated by the model", - "items": { - "type": "object", - "oneOf": [ - { - "title": "Message", - "properties": { - "type": { - "type": "string", - "description": "The type of output item (e.g., 'message')" - }, - "id": { - "type": "string", - "description": "The unique ID of the output item" - }, - "role": { - "type": "string", - "description": "The role of the output message (e.g., 'assistant')" - }, - "content": { - "type": "array", - "description": "The content of the message", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The content type (e.g., 'output_text')" - }, - "text": { - "type": "string", - "description": "The text content generated by the model" - } - } - } - } - } - }, - { - "title": "FunctionCall", - "properties": { - "type": { - "type": "string", - "description": "The type of output item (e.g., 'function_call')" - }, - "id": { - "type": "string", - "description": "The unique ID of the function call" - }, - "call_id": { - "type": "string", - "description": "The call ID for this function call" - }, - "name": { - "type": "string", - "description": "The name of the function being called" - }, - "arguments": { - "type": "string", - "description": "The arguments passed to the function, as a JSON string" - } - } - } - ] - } - }, - "usage": { - "type": "object", - "description": "Usage statistics for the inference request", - "properties": { - "input_tokens": { - "type": "number", - "description": "Total number of input tokens used", - "default": 0 - }, - "output_tokens": { - "type": "number", - "description": "Total number of output tokens generated", - "default": 0 - }, - "total_tokens": { - "type": "number", - "description": "Total number of tokens used (input + output)", - "default": 0 - } - } - }, - "error": { - "type": "object", - "description": "Error information if the request failed", - "properties": { - "message": { - "type": "string", - "description": "A human-readable error message" - }, - "type": { - "type": "string", - "description": "The type of error" - }, - "code": { - "type": "string", - "description": "Error code" - } - } - } - }, - "required": [ - "id", - "object", - "created_at", - "model" - ] - }, - { - "type": "object", - "title": "Responses_Async_Output", - "description": "Output when using the Responses_Async input format (Async Batch API)", - "properties": { - "results": { - "type": "array", - "description": "An array of response results", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Unique identifier for this Response" - }, - "object": { - "type": "string", - "description": "The object type, which is always 'response'" - }, - "created_at": { - "type": "integer", - "description": "Unix timestamp (in seconds) of when this Response was created" - }, - "model": { - "type": "string", - "description": "The model used to generate this Response" - }, - "output": { - "type": "array", - "description": "An array of output items generated by the model", - "items": { - "type": "object" - } - }, - "usage": { - "type": "object", - "description": "Usage statistics for this inference request", - "properties": { - "input_tokens": { - "type": "number", - "description": "Total number of input tokens used", - "default": 0 - }, - "output_tokens": { - "type": "number", - "description": "Total number of output tokens generated", - "default": 0 - }, - "total_tokens": { - "type": "number", - "description": "Total number of tokens used (input + output)", - "default": 0 - } - } - }, - "error": { - "type": "object", - "description": "Error information if this specific request failed", - "properties": { - "message": { - "type": "string", - "description": "A human-readable error message" - }, - "type": { - "type": "string", - "description": "The type of error" - }, - "code": { - "type": "string", - "description": "Error code" - } - } - } - }, - "required": [ - "id", - "object", - "created_at", - "model" - ] - } - } - }, - "required": [ - "results" - ] - }, - { - "type": "string", - "title": "Stream_Output", - "description": "Server-Sent Events stream when streaming is enabled", - "contentType": "text/event-stream", - "format": "binary" - } - ] - } - } -} diff --git a/src/content/workers-ai-models/gpt-oss-20b.json b/src/content/workers-ai-models/gpt-oss-20b.json deleted file mode 100644 index 8b2fb173ed4f799..000000000000000 --- a/src/content/workers-ai-models/gpt-oss-20b.json +++ /dev/null @@ -1,921 +0,0 @@ -{ - "id": "188a4e1e-253e-46d0-9616-0bf8c149763f", - "source": 1, - "name": "@cf/openai/gpt-oss-20b", - "description": "OpenAI's open-weight models designed for powerful reasoning, agentic tasks, and versatile developer use cases – gpt-oss-20b is for lower latency, and local or specialized use-cases.", - "task": { - "id": "c329a1f9-323d-4e91-b2aa-582dd4188d34", - "name": "Text Generation", - "description": "Family of generative text models, such as large language models (LLM), that can be adapted for a variety of natural language tasks." - }, - "created_at": "2025-08-05 10:49:53.265", - "tags": [], - "properties": [ - { - "property_id": "context_window", - "value": "128000" - }, - { - "property_id": "price", - "value": [ - { - "unit": "per M input tokens", - "price": 0.2, - "currency": "USD" - }, - { - "unit": "per M output tokens", - "price": 0.3, - "currency": "USD" - } - ] - }, - { - "property_id": "function_calling", - "value": "true" - }, - { - "property_id": "reasoning", - "value": "true" - } - ], - "schema": { - "input": { - "oneOf": [ - { - "type": "object", - "oneOf": [ - { - "title": "Prompt", - "properties": { - "prompt": { - "type": "string", - "minLength": 1, - "description": "The input text prompt for the model to generate a response." - }, - "lora": { - "type": "string", - "description": "Name of the LoRA (Low-Rank Adaptation) model to fine-tune the base model." - }, - "response_format": { - "title": "JSON Mode", - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_object", - "json_schema" - ] - }, - "json_schema": {} - } - }, - "raw": { - "type": "boolean", - "default": false, - "description": "If true, a chat template is not applied and you must adhere to the specific model's expected formatting." - }, - "stream": { - "type": "boolean", - "default": false, - "description": "If true, the response will be streamed back incrementally using SSE, Server Sent Events." - }, - "max_tokens": { - "type": "integer", - "default": 256, - "description": "The maximum number of tokens to generate in the response." - }, - "temperature": { - "type": "number", - "default": 0.6, - "minimum": 0, - "maximum": 5, - "description": "Controls the randomness of the output; higher values produce more random results." - }, - "top_p": { - "type": "number", - "minimum": 0.001, - "maximum": 1, - "description": "Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses." - }, - "top_k": { - "type": "integer", - "minimum": 1, - "maximum": 50, - "description": "Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises." - }, - "seed": { - "type": "integer", - "minimum": 1, - "maximum": 9999999999, - "description": "Random seed for reproducibility of the generation." - }, - "repetition_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Penalty for repeated tokens; higher values discourage repetition." - }, - "frequency_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Decreases the likelihood of the model repeating the same lines verbatim." - }, - "presence_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Increases the likelihood of the model introducing new topics." - } - }, - "required": [ - "prompt" - ] - }, - { - "title": "Messages", - "properties": { - "messages": { - "type": "array", - "description": "An array of message objects representing the conversation history.", - "items": { - "type": "object", - "properties": { - "role": { - "type": "string", - "description": "The role of the message sender (e.g., 'user', 'assistant', 'system', 'tool')." - }, - "content": { - "oneOf": [ - { - "type": "string", - "description": "The content of the message as a string." - }, - { - "type": "array", - "description": "Array of text content parts.", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "Type of the content (text)" - }, - "text": { - "type": "string", - "description": "Text content" - } - } - } - } - ] - } - }, - "required": [ - "role", - "content" - ] - } - }, - "functions": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "code": { - "type": "string" - } - }, - "required": [ - "name", - "code" - ] - } - }, - "tools": { - "type": "array", - "description": "A list of tools available for the assistant to use.", - "items": { - "type": "object", - "oneOf": [ - { - "properties": { - "name": { - "type": "string", - "description": "The name of the tool. More descriptive the better." - }, - "description": { - "type": "string", - "description": "A brief description of what the tool does." - }, - "parameters": { - "type": "object", - "description": "Schema defining the parameters accepted by the tool.", - "properties": { - "type": { - "type": "string", - "description": "The type of the parameters object (usually 'object')." - }, - "required": { - "type": "array", - "description": "List of required parameter names.", - "items": { - "type": "string" - } - }, - "properties": { - "type": "object", - "description": "Definitions of each parameter.", - "additionalProperties": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The data type of the parameter." - }, - "description": { - "type": "string", - "description": "A description of the expected parameter." - } - }, - "required": [ - "type", - "description" - ] - } - } - }, - "required": [ - "type", - "properties" - ] - } - }, - "required": [ - "name", - "description", - "parameters" - ] - }, - { - "properties": { - "type": { - "type": "string", - "description": "Specifies the type of tool (e.g., 'function')." - }, - "function": { - "type": "object", - "description": "Details of the function tool.", - "properties": { - "name": { - "type": "string", - "description": "The name of the function." - }, - "description": { - "type": "string", - "description": "A brief description of what the function does." - }, - "parameters": { - "type": "object", - "description": "Schema defining the parameters accepted by the function.", - "properties": { - "type": { - "type": "string", - "description": "The type of the parameters object (usually 'object')." - }, - "required": { - "type": "array", - "description": "List of required parameter names.", - "items": { - "type": "string" - } - }, - "properties": { - "type": "object", - "description": "Definitions of each parameter.", - "additionalProperties": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The data type of the parameter." - }, - "description": { - "type": "string", - "description": "A description of the expected parameter." - } - }, - "required": [ - "type", - "description" - ] - } - } - }, - "required": [ - "type", - "properties" - ] - } - }, - "required": [ - "name", - "description", - "parameters" - ] - } - }, - "required": [ - "type", - "function" - ] - } - ] - } - }, - "response_format": { - "title": "JSON Mode", - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_object", - "json_schema" - ] - }, - "json_schema": {} - } - }, - "raw": { - "type": "boolean", - "default": false, - "description": "If true, a chat template is not applied and you must adhere to the specific model's expected formatting." - }, - "stream": { - "type": "boolean", - "default": false, - "description": "If true, the response will be streamed back incrementally using SSE, Server Sent Events." - }, - "max_tokens": { - "type": "integer", - "default": 256, - "description": "The maximum number of tokens to generate in the response." - }, - "temperature": { - "type": "number", - "default": 0.6, - "minimum": 0, - "maximum": 5, - "description": "Controls the randomness of the output; higher values produce more random results." - }, - "top_p": { - "type": "number", - "minimum": 0.001, - "maximum": 1, - "description": "Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses." - }, - "top_k": { - "type": "integer", - "minimum": 1, - "maximum": 50, - "description": "Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises." - }, - "seed": { - "type": "integer", - "minimum": 1, - "maximum": 9999999999, - "description": "Random seed for reproducibility of the generation." - }, - "repetition_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Penalty for repeated tokens; higher values discourage repetition." - }, - "frequency_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Decreases the likelihood of the model repeating the same lines verbatim." - }, - "presence_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Increases the likelihood of the model introducing new topics." - } - }, - "required": [ - "messages" - ] - } - ] - }, - { - "type": "object", - "title": "Responses", - "properties": { - "input": { - "anyOf": [ - { - "type": "string" - }, - { - "items": {}, - "type": "array" - } - ], - "description": "Responses API Input messages. Refer to OpenAI Responses API docs to learn more about supported content types" - }, - "reasoning": { - "type": "object", - "properties": { - "effort": { - "type": "string", - "description": "Constrains effort on reasoning for reasoning models. Currently supported values are low, medium, and high. Reducing reasoning effort can result in faster responses and fewer tokens used on reasoning in a response.", - "enum": [ - "low", - "medium", - "high" - ] - }, - "summary": { - "type": "string", - "description": "A summary of the reasoning performed by the model. This can be useful for debugging and understanding the model's reasoning process. One of auto, concise, or detailed.", - "enum": [ - "auto", - "concise", - "detailed" - ] - } - } - } - }, - "required": [ - "input" - ] - }, - { - "type": "object", - "title": "Responses_Async", - "properties": { - "requests": { - "type": "array", - "items": { - "type": "object", - "properties": { - "input": { - "anyOf": [ - { - "type": "string" - }, - { - "items": {}, - "type": "array" - } - ], - "description": "Responses API Input messages. Refer to OpenAI Responses API docs to learn more about supported content types" - }, - "reasoning": { - "type": "object", - "properties": { - "effort": { - "type": "string", - "description": "Constrains effort on reasoning for reasoning models. Currently supported values are low, medium, and high. Reducing reasoning effort can result in faster responses and fewer tokens used on reasoning in a response.", - "enum": [ - "low", - "medium", - "high" - ] - }, - "summary": { - "type": "string", - "description": "A summary of the reasoning performed by the model. This can be useful for debugging and understanding the model's reasoning process. One of auto, concise, or detailed.", - "enum": [ - "auto", - "concise", - "detailed" - ] - } - } - } - }, - "required": [ - "input" - ] - } - } - }, - "required": [ - "requests" - ] - } - ] - }, - "output": { - "oneOf": [ - { - "type": "object", - "title": "Prompt_Output", - "description": "Output when using the Prompt input format", - "properties": { - "response": { - "type": "string", - "description": "The generated text response from the model" - }, - "usage": { - "type": "object", - "description": "Usage statistics for the inference request", - "properties": { - "prompt_tokens": { - "type": "number", - "description": "Total number of tokens in input", - "default": 0 - }, - "completion_tokens": { - "type": "number", - "description": "Total number of tokens in output", - "default": 0 - }, - "total_tokens": { - "type": "number", - "description": "Total number of input and output tokens", - "default": 0 - } - } - }, - "tool_calls": { - "type": "array", - "description": "An array of tool calls requests made during the response generation", - "items": { - "type": "object", - "properties": { - "arguments": { - "type": "object", - "description": "The arguments to be passed to the tool call request" - }, - "name": { - "type": "string", - "description": "The name of the tool to be called" - } - } - } - } - }, - "required": [ - "response" - ] - }, - { - "type": "object", - "title": "Messages_Output", - "description": "Output when using the Messages input format (Chat Completions API)", - "properties": { - "id": { - "type": "string", - "description": "A unique identifier for the chat completion" - }, - "object": { - "type": "string", - "description": "The object type, which is always 'chat.completion'" - }, - "created": { - "type": "integer", - "description": "The Unix timestamp (in seconds) of when the chat completion was created" - }, - "model": { - "type": "string", - "description": "The model used for the chat completion" - }, - "choices": { - "type": "array", - "description": "A list of chat completion choices", - "items": { - "type": "object", - "properties": { - "index": { - "type": "integer", - "description": "The index of the choice in the list of choices" - }, - "message": { - "type": "object", - "description": "A chat completion message generated by the model", - "properties": { - "role": { - "type": "string", - "description": "The role of the message author (e.g., 'assistant')" - }, - "content": { - "type": "string", - "description": "The contents of the assistant message" - }, - "tool_calls": { - "type": "array", - "description": "The tool calls generated by the model", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "The ID of the tool call" - }, - "type": { - "type": "string", - "description": "The type of the tool (e.g., 'function')" - }, - "function": { - "type": "object", - "description": "The function that the model called", - "properties": { - "name": { - "type": "string", - "description": "The name of the function to call" - }, - "arguments": { - "type": "string", - "description": "The arguments to call the function with, as a JSON string" - } - } - } - } - } - } - } - }, - "finish_reason": { - "type": "string", - "description": "The reason the model stopped generating tokens (e.g., 'stop', 'length', 'tool_calls')" - } - } - } - }, - "usage": { - "type": "object", - "description": "Usage statistics for the inference request", - "properties": { - "prompt_tokens": { - "type": "number", - "description": "Total number of tokens in the prompt", - "default": 0 - }, - "completion_tokens": { - "type": "number", - "description": "Total number of tokens in the generated completion", - "default": 0 - }, - "total_tokens": { - "type": "number", - "description": "Total number of tokens used in the request (prompt + completion)", - "default": 0 - } - } - } - }, - "required": [ - "id", - "object", - "created", - "model", - "choices" - ] - }, - { - "type": "object", - "title": "Responses_Output", - "description": "Output when using the Responses input format (Responses API)", - "properties": { - "id": { - "type": "string", - "description": "Unique identifier for this Response" - }, - "object": { - "type": "string", - "description": "The object type, which is always 'response'" - }, - "created_at": { - "type": "integer", - "description": "Unix timestamp (in seconds) of when this Response was created" - }, - "model": { - "type": "string", - "description": "The model used to generate this Response" - }, - "output": { - "type": "array", - "description": "An array of output items generated by the model", - "items": { - "type": "object", - "oneOf": [ - { - "title": "Message", - "properties": { - "type": { - "type": "string", - "description": "The type of output item (e.g., 'message')" - }, - "id": { - "type": "string", - "description": "The unique ID of the output item" - }, - "role": { - "type": "string", - "description": "The role of the output message (e.g., 'assistant')" - }, - "content": { - "type": "array", - "description": "The content of the message", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The content type (e.g., 'output_text')" - }, - "text": { - "type": "string", - "description": "The text content generated by the model" - } - } - } - } - } - }, - { - "title": "FunctionCall", - "properties": { - "type": { - "type": "string", - "description": "The type of output item (e.g., 'function_call')" - }, - "id": { - "type": "string", - "description": "The unique ID of the function call" - }, - "call_id": { - "type": "string", - "description": "The call ID for this function call" - }, - "name": { - "type": "string", - "description": "The name of the function being called" - }, - "arguments": { - "type": "string", - "description": "The arguments passed to the function, as a JSON string" - } - } - } - ] - } - }, - "usage": { - "type": "object", - "description": "Usage statistics for the inference request", - "properties": { - "input_tokens": { - "type": "number", - "description": "Total number of input tokens used", - "default": 0 - }, - "output_tokens": { - "type": "number", - "description": "Total number of output tokens generated", - "default": 0 - }, - "total_tokens": { - "type": "number", - "description": "Total number of tokens used (input + output)", - "default": 0 - } - } - }, - "error": { - "type": "object", - "description": "Error information if the request failed", - "properties": { - "message": { - "type": "string", - "description": "A human-readable error message" - }, - "type": { - "type": "string", - "description": "The type of error" - }, - "code": { - "type": "string", - "description": "Error code" - } - } - } - }, - "required": [ - "id", - "object", - "created_at", - "model" - ] - }, - { - "type": "object", - "title": "Responses_Async_Output", - "description": "Output when using the Responses_Async input format (Async Batch API)", - "properties": { - "results": { - "type": "array", - "description": "An array of response results", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Unique identifier for this Response" - }, - "object": { - "type": "string", - "description": "The object type, which is always 'response'" - }, - "created_at": { - "type": "integer", - "description": "Unix timestamp (in seconds) of when this Response was created" - }, - "model": { - "type": "string", - "description": "The model used to generate this Response" - }, - "output": { - "type": "array", - "description": "An array of output items generated by the model", - "items": { - "type": "object" - } - }, - "usage": { - "type": "object", - "description": "Usage statistics for this inference request", - "properties": { - "input_tokens": { - "type": "number", - "description": "Total number of input tokens used", - "default": 0 - }, - "output_tokens": { - "type": "number", - "description": "Total number of output tokens generated", - "default": 0 - }, - "total_tokens": { - "type": "number", - "description": "Total number of tokens used (input + output)", - "default": 0 - } - } - }, - "error": { - "type": "object", - "description": "Error information if this specific request failed", - "properties": { - "message": { - "type": "string", - "description": "A human-readable error message" - }, - "type": { - "type": "string", - "description": "The type of error" - }, - "code": { - "type": "string", - "description": "Error code" - } - } - } - }, - "required": [ - "id", - "object", - "created_at", - "model" - ] - } - } - }, - "required": [ - "results" - ] - }, - { - "type": "string", - "title": "Stream_Output", - "description": "Server-Sent Events stream when streaming is enabled", - "contentType": "text/event-stream", - "format": "binary" - } - ] - } - } -} diff --git a/src/content/workers-ai-models/granite-4.0-h-micro.json b/src/content/workers-ai-models/granite-4.0-h-micro.json deleted file mode 100644 index 8f0b75f39619177..000000000000000 --- a/src/content/workers-ai-models/granite-4.0-h-micro.json +++ /dev/null @@ -1,473 +0,0 @@ -{ - "id": "7952d0cc-cb00-4e10-be02-667565c2ee0f", - "source": 1, - "name": "@cf/ibm-granite/granite-4.0-h-micro", - "description": "Granite 4.0 instruct models deliver strong performance across benchmarks, achieving industry-leading results in key agentic tasks like instruction following and function calling. These efficiencies make the models well-suited for a wide range of use cases like retrieval-augmented generation (RAG), multi-agent workflows, and edge deployments.", - "task": { - "id": "c329a1f9-323d-4e91-b2aa-582dd4188d34", - "name": "Text Generation", - "description": "Family of generative text models, such as large language models (LLM), that can be adapted for a variety of natural language tasks." - }, - "created_at": "2025-10-07 18:46:29.436", - "tags": [], - "properties": [ - { - "property_id": "context_window", - "value": "131000" - }, - { - "property_id": "price", - "value": [ - { - "unit": "per M input tokens", - "price": 0.017, - "currency": "USD" - }, - { - "unit": "per M output tokens", - "price": 0.11, - "currency": "USD" - } - ] - }, - { - "property_id": "function_calling", - "value": "true" - } - ], - "schema": { - "input": { - "type": "object", - "oneOf": [ - { - "title": "Prompt", - "properties": { - "prompt": { - "type": "string", - "minLength": 1, - "description": "The input text prompt for the model to generate a response." - }, - "lora": { - "type": "string", - "description": "Name of the LoRA (Low-Rank Adaptation) model to fine-tune the base model." - }, - "response_format": { - "title": "JSON Mode", - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_object", - "json_schema" - ] - }, - "json_schema": {} - } - }, - "raw": { - "type": "boolean", - "default": false, - "description": "If true, a chat template is not applied and you must adhere to the specific model's expected formatting." - }, - "stream": { - "type": "boolean", - "default": false, - "description": "If true, the response will be streamed back incrementally using SSE, Server Sent Events." - }, - "max_tokens": { - "type": "integer", - "default": 256, - "description": "The maximum number of tokens to generate in the response." - }, - "temperature": { - "type": "number", - "default": 0.6, - "minimum": 0, - "maximum": 5, - "description": "Controls the randomness of the output; higher values produce more random results." - }, - "top_p": { - "type": "number", - "minimum": 0.001, - "maximum": 1, - "description": "Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses." - }, - "top_k": { - "type": "integer", - "minimum": 1, - "maximum": 50, - "description": "Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises." - }, - "seed": { - "type": "integer", - "minimum": 1, - "maximum": 9999999999, - "description": "Random seed for reproducibility of the generation." - }, - "repetition_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Penalty for repeated tokens; higher values discourage repetition." - }, - "frequency_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Decreases the likelihood of the model repeating the same lines verbatim." - }, - "presence_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Increases the likelihood of the model introducing new topics." - } - }, - "required": [ - "prompt" - ] - }, - { - "title": "Messages", - "properties": { - "messages": { - "type": "array", - "description": "An array of message objects representing the conversation history.", - "items": { - "type": "object", - "properties": { - "role": { - "type": "string", - "description": "The role of the message sender (e.g., 'user', 'assistant', 'system', 'tool')." - }, - "content": { - "oneOf": [ - { - "type": "string", - "description": "The content of the message as a string." - }, - { - "type": "array", - "description": "Array of text content parts.", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "Type of the content (text)" - }, - "text": { - "type": "string", - "description": "Text content" - } - } - } - } - ] - } - }, - "required": [ - "role", - "content" - ] - } - }, - "functions": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "code": { - "type": "string" - } - }, - "required": [ - "name", - "code" - ] - } - }, - "tools": { - "type": "array", - "description": "A list of tools available for the assistant to use.", - "items": { - "type": "object", - "oneOf": [ - { - "properties": { - "name": { - "type": "string", - "description": "The name of the tool. More descriptive the better." - }, - "description": { - "type": "string", - "description": "A brief description of what the tool does." - }, - "parameters": { - "type": "object", - "description": "Schema defining the parameters accepted by the tool.", - "properties": { - "type": { - "type": "string", - "description": "The type of the parameters object (usually 'object')." - }, - "required": { - "type": "array", - "description": "List of required parameter names.", - "items": { - "type": "string" - } - }, - "properties": { - "type": "object", - "description": "Definitions of each parameter.", - "additionalProperties": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The data type of the parameter." - }, - "description": { - "type": "string", - "description": "A description of the expected parameter." - } - }, - "required": [ - "type", - "description" - ] - } - } - }, - "required": [ - "type", - "properties" - ] - } - }, - "required": [ - "name", - "description", - "parameters" - ] - }, - { - "properties": { - "type": { - "type": "string", - "description": "Specifies the type of tool (e.g., 'function')." - }, - "function": { - "type": "object", - "description": "Details of the function tool.", - "properties": { - "name": { - "type": "string", - "description": "The name of the function." - }, - "description": { - "type": "string", - "description": "A brief description of what the function does." - }, - "parameters": { - "type": "object", - "description": "Schema defining the parameters accepted by the function.", - "properties": { - "type": { - "type": "string", - "description": "The type of the parameters object (usually 'object')." - }, - "required": { - "type": "array", - "description": "List of required parameter names.", - "items": { - "type": "string" - } - }, - "properties": { - "type": "object", - "description": "Definitions of each parameter.", - "additionalProperties": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The data type of the parameter." - }, - "description": { - "type": "string", - "description": "A description of the expected parameter." - } - }, - "required": [ - "type", - "description" - ] - } - } - }, - "required": [ - "type", - "properties" - ] - } - }, - "required": [ - "name", - "description", - "parameters" - ] - } - }, - "required": [ - "type", - "function" - ] - } - ] - } - }, - "response_format": { - "title": "JSON Mode", - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_object", - "json_schema" - ] - }, - "json_schema": {} - } - }, - "raw": { - "type": "boolean", - "default": false, - "description": "If true, a chat template is not applied and you must adhere to the specific model's expected formatting." - }, - "stream": { - "type": "boolean", - "default": false, - "description": "If true, the response will be streamed back incrementally using SSE, Server Sent Events." - }, - "max_tokens": { - "type": "integer", - "default": 256, - "description": "The maximum number of tokens to generate in the response." - }, - "temperature": { - "type": "number", - "default": 0.6, - "minimum": 0, - "maximum": 5, - "description": "Controls the randomness of the output; higher values produce more random results." - }, - "top_p": { - "type": "number", - "minimum": 0.001, - "maximum": 1, - "description": "Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses." - }, - "top_k": { - "type": "integer", - "minimum": 1, - "maximum": 50, - "description": "Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises." - }, - "seed": { - "type": "integer", - "minimum": 1, - "maximum": 9999999999, - "description": "Random seed for reproducibility of the generation." - }, - "repetition_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Penalty for repeated tokens; higher values discourage repetition." - }, - "frequency_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Decreases the likelihood of the model repeating the same lines verbatim." - }, - "presence_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Increases the likelihood of the model introducing new topics." - } - }, - "required": [ - "messages" - ] - } - ] - }, - "output": { - "oneOf": [ - { - "type": "object", - "properties": { - "response": { - "type": "string", - "description": "The generated text response from the model" - }, - "usage": { - "type": "object", - "description": "Usage statistics for the inference request", - "properties": { - "prompt_tokens": { - "type": "number", - "description": "Total number of tokens in input", - "default": 0 - }, - "completion_tokens": { - "type": "number", - "description": "Total number of tokens in output", - "default": 0 - }, - "total_tokens": { - "type": "number", - "description": "Total number of input and output tokens", - "default": 0 - } - } - }, - "tool_calls": { - "type": "array", - "description": "An array of tool calls requests made during the response generation", - "items": { - "type": "object", - "properties": { - "arguments": { - "type": "object", - "description": "The arguments passed to be passed to the tool call request" - }, - "name": { - "type": "string", - "description": "The name of the tool to be called" - } - } - } - } - }, - "required": [ - "response" - ] - }, - { - "type": "string", - "format": "binary" - } - ] - } - } -} \ No newline at end of file diff --git a/src/content/workers-ai-models/hermes-2-pro-mistral-7b.json b/src/content/workers-ai-models/hermes-2-pro-mistral-7b.json deleted file mode 100644 index c8730822ad525df..000000000000000 --- a/src/content/workers-ai-models/hermes-2-pro-mistral-7b.json +++ /dev/null @@ -1,466 +0,0 @@ -{ - "id": "44774b85-08c8-4bb8-8d2a-b06ebc538a79", - "source": 2, - "name": "@hf/nousresearch/hermes-2-pro-mistral-7b", - "description": "Hermes 2 Pro on Mistral 7B is the new flagship 7B Hermes! Hermes 2 Pro is an upgraded, retrained version of Nous Hermes 2, consisting of an updated and cleaned version of the OpenHermes 2.5 Dataset, as well as a newly introduced Function Calling and JSON Mode dataset developed in-house.", - "task": { - "id": "c329a1f9-323d-4e91-b2aa-582dd4188d34", - "name": "Text Generation", - "description": "Family of generative text models, such as large language models (LLM), that can be adapted for a variety of natural language tasks." - }, - "created_at": "2024-04-01 23:45:53.800", - "tags": [], - "properties": [ - { - "property_id": "beta", - "value": "true" - }, - { - "property_id": "context_window", - "value": "24000" - }, - { - "property_id": "function_calling", - "value": "true" - }, - { - "property_id": "info", - "value": "https://huggingface.co/NousResearch/Hermes-2-Pro-Mistral-7B" - } - ], - "schema": { - "input": { - "type": "object", - "oneOf": [ - { - "title": "Prompt", - "properties": { - "prompt": { - "type": "string", - "minLength": 1, - "description": "The input text prompt for the model to generate a response." - }, - "lora": { - "type": "string", - "description": "Name of the LoRA (Low-Rank Adaptation) model to fine-tune the base model." - }, - "response_format": { - "title": "JSON Mode", - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_object", - "json_schema" - ] - }, - "json_schema": {} - } - }, - "raw": { - "type": "boolean", - "default": false, - "description": "If true, a chat template is not applied and you must adhere to the specific model's expected formatting." - }, - "stream": { - "type": "boolean", - "default": false, - "description": "If true, the response will be streamed back incrementally using SSE, Server Sent Events." - }, - "max_tokens": { - "type": "integer", - "default": 256, - "description": "The maximum number of tokens to generate in the response." - }, - "temperature": { - "type": "number", - "default": 0.6, - "minimum": 0, - "maximum": 5, - "description": "Controls the randomness of the output; higher values produce more random results." - }, - "top_p": { - "type": "number", - "minimum": 0.001, - "maximum": 1, - "description": "Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses." - }, - "top_k": { - "type": "integer", - "minimum": 1, - "maximum": 50, - "description": "Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises." - }, - "seed": { - "type": "integer", - "minimum": 1, - "maximum": 9999999999, - "description": "Random seed for reproducibility of the generation." - }, - "repetition_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Penalty for repeated tokens; higher values discourage repetition." - }, - "frequency_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Decreases the likelihood of the model repeating the same lines verbatim." - }, - "presence_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Increases the likelihood of the model introducing new topics." - } - }, - "required": [ - "prompt" - ] - }, - { - "title": "Messages", - "properties": { - "messages": { - "type": "array", - "description": "An array of message objects representing the conversation history.", - "items": { - "type": "object", - "properties": { - "role": { - "type": "string", - "description": "The role of the message sender (e.g., 'user', 'assistant', 'system', 'tool')." - }, - "content": { - "oneOf": [ - { - "type": "string", - "description": "The content of the message as a string." - }, - { - "type": "array", - "description": "Array of text content parts.", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "Type of the content (text)" - }, - "text": { - "type": "string", - "description": "Text content" - } - } - } - } - ] - } - }, - "required": [ - "role", - "content" - ] - } - }, - "functions": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "code": { - "type": "string" - } - }, - "required": [ - "name", - "code" - ] - } - }, - "tools": { - "type": "array", - "description": "A list of tools available for the assistant to use.", - "items": { - "type": "object", - "oneOf": [ - { - "properties": { - "name": { - "type": "string", - "description": "The name of the tool. More descriptive the better." - }, - "description": { - "type": "string", - "description": "A brief description of what the tool does." - }, - "parameters": { - "type": "object", - "description": "Schema defining the parameters accepted by the tool.", - "properties": { - "type": { - "type": "string", - "description": "The type of the parameters object (usually 'object')." - }, - "required": { - "type": "array", - "description": "List of required parameter names.", - "items": { - "type": "string" - } - }, - "properties": { - "type": "object", - "description": "Definitions of each parameter.", - "additionalProperties": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The data type of the parameter." - }, - "description": { - "type": "string", - "description": "A description of the expected parameter." - } - }, - "required": [ - "type", - "description" - ] - } - } - }, - "required": [ - "type", - "properties" - ] - } - }, - "required": [ - "name", - "description", - "parameters" - ] - }, - { - "properties": { - "type": { - "type": "string", - "description": "Specifies the type of tool (e.g., 'function')." - }, - "function": { - "type": "object", - "description": "Details of the function tool.", - "properties": { - "name": { - "type": "string", - "description": "The name of the function." - }, - "description": { - "type": "string", - "description": "A brief description of what the function does." - }, - "parameters": { - "type": "object", - "description": "Schema defining the parameters accepted by the function.", - "properties": { - "type": { - "type": "string", - "description": "The type of the parameters object (usually 'object')." - }, - "required": { - "type": "array", - "description": "List of required parameter names.", - "items": { - "type": "string" - } - }, - "properties": { - "type": "object", - "description": "Definitions of each parameter.", - "additionalProperties": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The data type of the parameter." - }, - "description": { - "type": "string", - "description": "A description of the expected parameter." - } - }, - "required": [ - "type", - "description" - ] - } - } - }, - "required": [ - "type", - "properties" - ] - } - }, - "required": [ - "name", - "description", - "parameters" - ] - } - }, - "required": [ - "type", - "function" - ] - } - ] - } - }, - "response_format": { - "title": "JSON Mode", - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_object", - "json_schema" - ] - }, - "json_schema": {} - } - }, - "raw": { - "type": "boolean", - "default": false, - "description": "If true, a chat template is not applied and you must adhere to the specific model's expected formatting." - }, - "stream": { - "type": "boolean", - "default": false, - "description": "If true, the response will be streamed back incrementally using SSE, Server Sent Events." - }, - "max_tokens": { - "type": "integer", - "default": 256, - "description": "The maximum number of tokens to generate in the response." - }, - "temperature": { - "type": "number", - "default": 0.6, - "minimum": 0, - "maximum": 5, - "description": "Controls the randomness of the output; higher values produce more random results." - }, - "top_p": { - "type": "number", - "minimum": 0.001, - "maximum": 1, - "description": "Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses." - }, - "top_k": { - "type": "integer", - "minimum": 1, - "maximum": 50, - "description": "Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises." - }, - "seed": { - "type": "integer", - "minimum": 1, - "maximum": 9999999999, - "description": "Random seed for reproducibility of the generation." - }, - "repetition_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Penalty for repeated tokens; higher values discourage repetition." - }, - "frequency_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Decreases the likelihood of the model repeating the same lines verbatim." - }, - "presence_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Increases the likelihood of the model introducing new topics." - } - }, - "required": [ - "messages" - ] - } - ] - }, - "output": { - "oneOf": [ - { - "type": "object", - "properties": { - "response": { - "type": "string", - "description": "The generated text response from the model" - }, - "usage": { - "type": "object", - "description": "Usage statistics for the inference request", - "properties": { - "prompt_tokens": { - "type": "number", - "description": "Total number of tokens in input", - "default": 0 - }, - "completion_tokens": { - "type": "number", - "description": "Total number of tokens in output", - "default": 0 - }, - "total_tokens": { - "type": "number", - "description": "Total number of input and output tokens", - "default": 0 - } - } - }, - "tool_calls": { - "type": "array", - "description": "An array of tool calls requests made during the response generation", - "items": { - "type": "object", - "properties": { - "arguments": { - "type": "object", - "description": "The arguments passed to be passed to the tool call request" - }, - "name": { - "type": "string", - "description": "The name of the tool to be called" - } - } - } - } - }, - "required": [ - "response" - ] - }, - { - "type": "string", - "format": "binary" - } - ] - } - } -} \ No newline at end of file diff --git a/src/content/workers-ai-models/indictrans2-en-indic-1B.json b/src/content/workers-ai-models/indictrans2-en-indic-1B.json deleted file mode 100644 index 5483cd9ffeec620..000000000000000 --- a/src/content/workers-ai-models/indictrans2-en-indic-1B.json +++ /dev/null @@ -1,111 +0,0 @@ -{ - "id": "60920ed4-cf72-449a-a0f3-a38456b78262", - "source": 1, - "name": "@cf/ai4bharat/indictrans2-en-indic-1B", - "description": "IndicTrans2 is the first open-source transformer-based multilingual NMT model that supports high-quality translations across all the 22 scheduled Indic languages", - "task": { - "id": "f57d07cb-9087-487a-bbbf-bc3e17fecc4b", - "name": "Translation", - "description": "Translation models convert a sequence of text from one language to another." - }, - "created_at": "2025-09-23 18:19:17.382", - "tags": [], - "properties": [ - { - "property_id": "price", - "value": [ - { - "unit": "per M input tokens", - "price": 0.34, - "currency": "USD" - }, - { - "unit": "per M output tokens", - "price": 0.34, - "currency": "USD" - } - ] - } - ], - "schema": { - "input": { - "type": "object", - "properties": { - "text": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "array", - "items": { - "type": "string" - } - } - ], - "description": "Input text to translate. Can be a single string or a list of strings." - }, - "target_language": { - "type": "string", - "enum": [ - "asm_Beng", - "awa_Deva", - "ben_Beng", - "bho_Deva", - "brx_Deva", - "doi_Deva", - "eng_Latn", - "gom_Deva", - "gon_Deva", - "guj_Gujr", - "hin_Deva", - "hne_Deva", - "kan_Knda", - "kas_Arab", - "kas_Deva", - "kha_Latn", - "lus_Latn", - "mag_Deva", - "mai_Deva", - "mal_Mlym", - "mar_Deva", - "mni_Beng", - "mni_Mtei", - "npi_Deva", - "ory_Orya", - "pan_Guru", - "san_Deva", - "sat_Olck", - "snd_Arab", - "snd_Deva", - "tam_Taml", - "tel_Telu", - "urd_Arab", - "unr_Deva" - ], - "default": "hin_Deva", - "description": "Target langauge to translate to" - } - }, - "required": [ - "text", - "target_language" - ] - }, - "output": { - "type": "object", - "properties": { - "translations": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Translated texts" - } - }, - "required": [ - "translations" - ] - } - } -} \ No newline at end of file diff --git a/src/content/workers-ai-models/kimi-k2.5.json b/src/content/workers-ai-models/kimi-k2.5.json deleted file mode 100644 index 66432c5561b18c3..000000000000000 --- a/src/content/workers-ai-models/kimi-k2.5.json +++ /dev/null @@ -1,4759 +0,0 @@ -{ - "id": "d7948af7-749a-4fa3-8480-2a9f4215f427", - "source": 1, - "name": "@cf/moonshotai/kimi-k2.5", - "description": "Kimi K2.5 is a frontier-scale open-source model with a 256k context window, multi-turn tool calling, vision inputs, and structured outputs for agentic workloads.", - "task": { - "id": "c329a1f9-323d-4e91-b2aa-582dd4188d34", - "name": "Text Generation", - "description": "Family of generative text models, such as large language models (LLM), that can be adapted for a variety of natural language tasks." - }, - "created_at": "2026-02-02 21:11:49.874", - "tags": [], - "properties": [ - { - "property_id": "async_queue", - "value": "false" - }, - { - "property_id": "context_window", - "value": "256000" - }, - { - "property_id": "price", - "value": [ - { - "unit": "per M input tokens", - "price": 0.6, - "currency": "USD" - }, - { - "unit": "per M output tokens", - "price": 3, - "currency": "USD" - }, - { - "unit": "per M cached input tokens", - "price": 0.1, - "currency": "USD" - } - ] - }, - { - "property_id": "function_calling", - "value": "true" - }, - { - "property_id": "reasoning", - "value": "true" - }, - { - "property_id": "terms", - "value": "https://github.com/MoonshotAI/Kimi-K2.5/blob/master/LICENSE" - }, - { - "property_id": "vision", - "value": "true" - } - ], - "schema": { - "input": { - "anyOf": [ - { - "type": "object", - "oneOf": [ - { - "title": "Prompt", - "properties": { - "prompt": { - "type": "string", - "minLength": 1, - "description": "The input text prompt for the model to generate a response." - }, - "model": { - "type": "string", - "description": "ID of the model to use (e.g. '@cf/zai-org/glm-4.7-flash, etc')." - }, - "audio": { - "anyOf": [ - { - "type": "object", - "description": "Parameters for audio output. Required when modalities includes 'audio'.", - "properties": { - "voice": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "object", - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ] - } - ] - }, - "format": { - "type": "string", - "enum": [ - "wav", - "aac", - "mp3", - "flac", - "opus", - "pcm16" - ] - } - }, - "required": [ - "voice", - "format" - ] - } - ] - }, - "frequency_penalty": { - "anyOf": [ - { - "type": "number", - "minimum": -2, - "maximum": 2 - }, - { - "type": "null" - } - ], - "default": 0, - "description": "Penalizes new tokens based on their existing frequency in the text so far." - }, - "logit_bias": { - "anyOf": [ - { - "type": "object" - }, - { - "type": "null" - } - ], - "description": "Modify the likelihood of specified tokens appearing in the completion. Maps token IDs to bias values from -100 to 100." - }, - "logprobs": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "default": false, - "description": "Whether to return log probabilities of the output tokens." - }, - "top_logprobs": { - "anyOf": [ - { - "type": "integer", - "minimum": 0, - "maximum": 20 - }, - { - "type": "null" - } - ], - "description": "How many top log probabilities to return at each token position (0-20). Requires logprobs=true." - }, - "max_tokens": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "description": "Deprecated in favor of max_completion_tokens. The maximum number of tokens to generate." - }, - "max_completion_tokens": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "description": "An upper bound for the number of tokens that can be generated for a completion." - }, - "metadata": { - "anyOf": [ - { - "type": "object" - }, - { - "type": "null" - } - ], - "description": "Set of 16 key-value pairs that can be attached to the object." - }, - "modalities": { - "anyOf": [ - { - "type": "array", - "items": { - "type": "string", - "enum": [ - "text", - "audio" - ] - } - }, - { - "type": "null" - } - ], - "description": "Output types requested from the model (e.g. ['text'] or ['text', 'audio'])." - }, - "n": { - "anyOf": [ - { - "type": "integer", - "minimum": 1, - "maximum": 128 - }, - { - "type": "null" - } - ], - "default": 1, - "description": "How many chat completion choices to generate for each input message." - }, - "parallel_tool_calls": { - "type": "boolean", - "default": true, - "description": "Whether to enable parallel function calling during tool use." - }, - "prediction": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "content" - ] - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "text" - ] - }, - "text": { - "type": "string" - } - }, - "required": [ - "type", - "text" - ] - } - } - ] - } - }, - "required": [ - "type", - "content" - ] - } - ] - }, - "presence_penalty": { - "anyOf": [ - { - "type": "number", - "minimum": -2, - "maximum": 2 - }, - { - "type": "null" - } - ], - "default": 0, - "description": "Penalizes new tokens based on whether they appear in the text so far." - }, - "reasoning_effort": { - "anyOf": [ - { - "type": "string", - "enum": [ - "low", - "medium", - "high" - ] - }, - { - "type": "null" - } - ], - "description": "Constrains effort on reasoning for reasoning models (o1, o3-mini, etc.)." - }, - "chat_template_kwargs": { - "type": "object", - "properties": { - "enable_thinking": { - "type": "boolean", - "default": true, - "description": "Whether to enable reasoning, enabled by default." - }, - "clear_thinking": { - "type": "boolean", - "default": false, - "description": "If false, preserves reasoning context between turns." - } - } - }, - "response_format": { - "anyOf": [ - { - "description": "Specifies the format the model must output.", - "oneOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "text" - ] - } - }, - "required": [ - "type" - ] - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_object" - ] - } - }, - "required": [ - "type" - ] - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_schema" - ] - }, - "json_schema": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "schema": { - "type": "object" - }, - "strict": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "name" - ] - } - }, - "required": [ - "type", - "json_schema" - ] - } - ] - } - ] - }, - "seed": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "description": "If specified, the system will make a best effort to sample deterministically." - }, - "service_tier": { - "anyOf": [ - { - "type": "string", - "enum": [ - "auto", - "default", - "flex", - "scale", - "priority" - ] - }, - { - "type": "null" - } - ], - "default": "auto", - "description": "Specifies the processing type used for serving the request." - }, - "stop": { - "description": "Up to 4 sequences where the API will stop generating further tokens.", - "anyOf": [ - { - "type": "null" - }, - { - "type": "string" - }, - { - "type": "array", - "items": { - "type": "string" - }, - "minItems": 1, - "maxItems": 4 - } - ] - }, - "store": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "default": false, - "description": "Whether to store the output for model distillation / evals." - }, - "stream": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "default": false, - "description": "If true, partial message deltas will be sent as server-sent events." - }, - "stream_options": { - "anyOf": [ - { - "type": "object", - "properties": { - "include_usage": { - "type": "boolean" - }, - "include_obfuscation": { - "type": "boolean" - } - } - } - ] - }, - "temperature": { - "anyOf": [ - { - "type": "number", - "minimum": 0, - "maximum": 2 - }, - { - "type": "null" - } - ], - "default": 1, - "description": "Sampling temperature between 0 and 2." - }, - "tool_choice": { - "anyOf": [ - { - "description": "Controls which (if any) tool is called by the model. 'none' = no tools, 'auto' = model decides, 'required' = must call a tool.", - "oneOf": [ - { - "type": "string", - "enum": [ - "none", - "auto", - "required" - ] - }, - { - "type": "object", - "description": "Force a specific function tool.", - "properties": { - "type": { - "type": "string", - "enum": [ - "function" - ] - }, - "function": { - "type": "object", - "properties": { - "name": { - "type": "string" - } - }, - "required": [ - "name" - ] - } - }, - "required": [ - "type", - "function" - ] - }, - { - "type": "object", - "description": "Force a specific custom tool.", - "properties": { - "type": { - "type": "string", - "enum": [ - "custom" - ] - }, - "custom": { - "type": "object", - "properties": { - "name": { - "type": "string" - } - }, - "required": [ - "name" - ] - } - }, - "required": [ - "type", - "custom" - ] - }, - { - "type": "object", - "description": "Constrain to an allowed subset of tools.", - "properties": { - "type": { - "type": "string", - "enum": [ - "allowed_tools" - ] - }, - "allowed_tools": { - "type": "object", - "properties": { - "mode": { - "type": "string", - "enum": [ - "auto", - "required" - ] - }, - "tools": { - "type": "array", - "items": { - "type": "object" - } - } - }, - "required": [ - "mode", - "tools" - ] - } - }, - "required": [ - "type", - "allowed_tools" - ] - } - ] - } - ] - }, - "tools": { - "type": "array", - "description": "A list of tools the model may call.", - "items": { - "oneOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "function" - ] - }, - "function": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The name of the function to be called." - }, - "description": { - "type": "string", - "description": "A description of what the function does." - }, - "parameters": { - "type": "object", - "description": "The parameters the function accepts, described as a JSON Schema object." - }, - "strict": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "default": false, - "description": "Whether to enable strict schema adherence." - } - }, - "required": [ - "name" - ] - } - }, - "required": [ - "type", - "function" - ] - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "custom" - ] - }, - "custom": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "format": { - "oneOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "text" - ] - } - }, - "required": [ - "type" - ] - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "grammar" - ] - }, - "grammar": { - "type": "object", - "properties": { - "definition": { - "type": "string" - }, - "syntax": { - "type": "string", - "enum": [ - "lark", - "regex" - ] - } - }, - "required": [ - "definition", - "syntax" - ] - } - }, - "required": [ - "type", - "grammar" - ] - } - ] - } - }, - "required": [ - "name" - ] - } - }, - "required": [ - "type", - "custom" - ] - } - ] - } - }, - "top_p": { - "anyOf": [ - { - "type": "number", - "minimum": 0, - "maximum": 1 - }, - { - "type": "null" - } - ], - "default": 1, - "description": "Nucleus sampling: considers the results of the tokens with top_p probability mass." - }, - "user": { - "type": "string", - "description": "A unique identifier representing your end-user, for abuse monitoring." - }, - "web_search_options": { - "anyOf": [ - { - "type": "object", - "description": "Options for the web search tool (when using built-in web search).", - "properties": { - "search_context_size": { - "type": "string", - "enum": [ - "low", - "medium", - "high" - ], - "default": "medium" - }, - "user_location": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "approximate" - ] - }, - "approximate": { - "type": "object", - "properties": { - "city": { - "type": "string" - }, - "country": { - "type": "string" - }, - "region": { - "type": "string" - }, - "timezone": { - "type": "string" - } - } - } - }, - "required": [ - "type", - "approximate" - ] - } - } - } - ] - }, - "function_call": { - "anyOf": [ - { - "type": "string", - "enum": [ - "none", - "auto" - ] - }, - { - "type": "object", - "properties": { - "name": { - "type": "string" - } - }, - "required": [ - "name" - ] - } - ] - }, - "functions": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The name of the function to be called." - }, - "description": { - "type": "string", - "description": "A description of what the function does." - }, - "parameters": { - "type": "object", - "description": "The parameters the function accepts, described as a JSON Schema object." - }, - "strict": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "default": false, - "description": "Whether to enable strict schema adherence." - } - }, - "required": [ - "name" - ] - }, - "minItems": 1, - "maxItems": 128 - } - }, - "required": [ - "prompt" - ] - }, - { - "title": "Messages", - "properties": { - "messages": { - "type": "array", - "description": "A list of messages comprising the conversation so far.", - "items": { - "oneOf": [ - { - "type": "object", - "properties": { - "role": { - "type": "string", - "enum": [ - "developer" - ] - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "text" - ] - }, - "text": { - "type": "string" - } - }, - "required": [ - "type", - "text" - ] - } - } - ] - }, - "name": { - "type": "string" - } - }, - "required": [ - "role", - "content" - ] - }, - { - "type": "object", - "properties": { - "role": { - "type": "string", - "enum": [ - "system" - ] - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "text" - ] - }, - "text": { - "type": "string" - } - }, - "required": [ - "type", - "text" - ] - } - } - ] - }, - "name": { - "type": "string" - } - }, - "required": [ - "role", - "content" - ] - }, - { - "type": "object", - "properties": { - "role": { - "type": "string", - "enum": [ - "user" - ] - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "text", - "image_url", - "input_audio", - "file" - ] - }, - "text": { - "type": "string" - }, - "image_url": { - "type": "object", - "properties": { - "url": { - "type": "string" - }, - "detail": { - "type": "string", - "enum": [ - "auto", - "low", - "high" - ], - "default": "auto" - } - } - }, - "input_audio": { - "type": "object", - "properties": { - "data": { - "type": "string" - }, - "format": { - "type": "string", - "enum": [ - "wav", - "mp3" - ] - } - } - }, - "file": { - "type": "object", - "properties": { - "file_data": { - "type": "string" - }, - "file_id": { - "type": "string" - }, - "filename": { - "type": "string" - } - } - } - }, - "required": [ - "type" - ] - }, - "minItems": 1 - } - ] - }, - "name": { - "type": "string" - } - }, - "required": [ - "role", - "content" - ] - }, - { - "type": "object", - "properties": { - "role": { - "type": "string", - "enum": [ - "assistant" - ] - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - }, - { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "text", - "refusal" - ] - }, - "text": { - "type": "string" - }, - "refusal": { - "type": "string" - } - }, - "required": [ - "type" - ] - } - } - ] - }, - "refusal": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "name": { - "type": "string" - }, - "audio": { - "anyOf": [ - { - "type": "object", - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ] - } - ] - }, - "tool_calls": { - "type": "array", - "items": { - "oneOf": [ - { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "function" - ] - }, - "function": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "arguments": { - "type": "string", - "description": "JSON-encoded arguments string." - } - }, - "required": [ - "name", - "arguments" - ] - } - }, - "required": [ - "id", - "type", - "function" - ] - }, - { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "custom" - ] - }, - "custom": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "input": { - "type": "string" - } - }, - "required": [ - "name", - "input" - ] - } - }, - "required": [ - "id", - "type", - "custom" - ] - } - ] - } - }, - "function_call": { - "anyOf": [ - { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "arguments": { - "type": "string" - } - }, - "required": [ - "name", - "arguments" - ] - } - ] - } - }, - "required": [ - "role" - ] - }, - { - "type": "object", - "properties": { - "role": { - "type": "string", - "enum": [ - "tool" - ] - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "text" - ] - }, - "text": { - "type": "string" - } - }, - "required": [ - "type", - "text" - ] - } - } - ] - }, - "tool_call_id": { - "type": "string" - } - }, - "required": [ - "role", - "content", - "tool_call_id" - ] - }, - { - "type": "object", - "properties": { - "role": { - "type": "string", - "enum": [ - "function" - ] - }, - "content": { - "type": "string" - }, - "name": { - "type": "string" - } - }, - "required": [ - "role", - "content", - "name" - ] - } - ] - }, - "minItems": 1 - }, - "model": { - "type": "string", - "description": "ID of the model to use (e.g. '@cf/zai-org/glm-4.7-flash, etc')." - }, - "audio": { - "anyOf": [ - { - "type": "object", - "description": "Parameters for audio output. Required when modalities includes 'audio'.", - "properties": { - "voice": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "object", - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ] - } - ] - }, - "format": { - "type": "string", - "enum": [ - "wav", - "aac", - "mp3", - "flac", - "opus", - "pcm16" - ] - } - }, - "required": [ - "voice", - "format" - ] - } - ] - }, - "frequency_penalty": { - "anyOf": [ - { - "type": "number", - "minimum": -2, - "maximum": 2 - }, - { - "type": "null" - } - ], - "default": 0, - "description": "Penalizes new tokens based on their existing frequency in the text so far." - }, - "logit_bias": { - "anyOf": [ - { - "type": "object" - }, - { - "type": "null" - } - ], - "description": "Modify the likelihood of specified tokens appearing in the completion. Maps token IDs to bias values from -100 to 100." - }, - "logprobs": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "default": false, - "description": "Whether to return log probabilities of the output tokens." - }, - "top_logprobs": { - "anyOf": [ - { - "type": "integer", - "minimum": 0, - "maximum": 20 - }, - { - "type": "null" - } - ], - "description": "How many top log probabilities to return at each token position (0-20). Requires logprobs=true." - }, - "max_tokens": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "description": "Deprecated in favor of max_completion_tokens. The maximum number of tokens to generate." - }, - "max_completion_tokens": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "description": "An upper bound for the number of tokens that can be generated for a completion." - }, - "metadata": { - "anyOf": [ - { - "type": "object" - }, - { - "type": "null" - } - ], - "description": "Set of 16 key-value pairs that can be attached to the object." - }, - "modalities": { - "anyOf": [ - { - "type": "array", - "items": { - "type": "string", - "enum": [ - "text", - "audio" - ] - } - }, - { - "type": "null" - } - ], - "description": "Output types requested from the model (e.g. ['text'] or ['text', 'audio'])." - }, - "n": { - "anyOf": [ - { - "type": "integer", - "minimum": 1, - "maximum": 128 - }, - { - "type": "null" - } - ], - "default": 1, - "description": "How many chat completion choices to generate for each input message." - }, - "parallel_tool_calls": { - "type": "boolean", - "default": true, - "description": "Whether to enable parallel function calling during tool use." - }, - "prediction": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "content" - ] - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "text" - ] - }, - "text": { - "type": "string" - } - }, - "required": [ - "type", - "text" - ] - } - } - ] - } - }, - "required": [ - "type", - "content" - ] - } - ] - }, - "presence_penalty": { - "anyOf": [ - { - "type": "number", - "minimum": -2, - "maximum": 2 - }, - { - "type": "null" - } - ], - "default": 0, - "description": "Penalizes new tokens based on whether they appear in the text so far." - }, - "reasoning_effort": { - "anyOf": [ - { - "type": "string", - "enum": [ - "low", - "medium", - "high" - ] - }, - { - "type": "null" - } - ], - "description": "Constrains effort on reasoning for reasoning models (o1, o3-mini, etc.)." - }, - "chat_template_kwargs": { - "type": "object", - "properties": { - "enable_thinking": { - "type": "boolean", - "default": true, - "description": "Whether to enable reasoning, enabled by default." - }, - "clear_thinking": { - "type": "boolean", - "default": false, - "description": "If false, preserves reasoning context between turns." - } - } - }, - "response_format": { - "anyOf": [ - { - "description": "Specifies the format the model must output.", - "oneOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "text" - ] - } - }, - "required": [ - "type" - ] - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_object" - ] - } - }, - "required": [ - "type" - ] - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_schema" - ] - }, - "json_schema": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "schema": { - "type": "object" - }, - "strict": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "name" - ] - } - }, - "required": [ - "type", - "json_schema" - ] - } - ] - } - ] - }, - "seed": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "description": "If specified, the system will make a best effort to sample deterministically." - }, - "service_tier": { - "anyOf": [ - { - "type": "string", - "enum": [ - "auto", - "default", - "flex", - "scale", - "priority" - ] - }, - { - "type": "null" - } - ], - "default": "auto", - "description": "Specifies the processing type used for serving the request." - }, - "stop": { - "description": "Up to 4 sequences where the API will stop generating further tokens.", - "anyOf": [ - { - "type": "null" - }, - { - "type": "string" - }, - { - "type": "array", - "items": { - "type": "string" - }, - "minItems": 1, - "maxItems": 4 - } - ] - }, - "store": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "default": false, - "description": "Whether to store the output for model distillation / evals." - }, - "stream": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "default": false, - "description": "If true, partial message deltas will be sent as server-sent events." - }, - "stream_options": { - "anyOf": [ - { - "type": "object", - "properties": { - "include_usage": { - "type": "boolean" - }, - "include_obfuscation": { - "type": "boolean" - } - } - } - ] - }, - "temperature": { - "anyOf": [ - { - "type": "number", - "minimum": 0, - "maximum": 2 - }, - { - "type": "null" - } - ], - "default": 1, - "description": "Sampling temperature between 0 and 2." - }, - "tool_choice": { - "anyOf": [ - { - "description": "Controls which (if any) tool is called by the model. 'none' = no tools, 'auto' = model decides, 'required' = must call a tool.", - "oneOf": [ - { - "type": "string", - "enum": [ - "none", - "auto", - "required" - ] - }, - { - "type": "object", - "description": "Force a specific function tool.", - "properties": { - "type": { - "type": "string", - "enum": [ - "function" - ] - }, - "function": { - "type": "object", - "properties": { - "name": { - "type": "string" - } - }, - "required": [ - "name" - ] - } - }, - "required": [ - "type", - "function" - ] - }, - { - "type": "object", - "description": "Force a specific custom tool.", - "properties": { - "type": { - "type": "string", - "enum": [ - "custom" - ] - }, - "custom": { - "type": "object", - "properties": { - "name": { - "type": "string" - } - }, - "required": [ - "name" - ] - } - }, - "required": [ - "type", - "custom" - ] - }, - { - "type": "object", - "description": "Constrain to an allowed subset of tools.", - "properties": { - "type": { - "type": "string", - "enum": [ - "allowed_tools" - ] - }, - "allowed_tools": { - "type": "object", - "properties": { - "mode": { - "type": "string", - "enum": [ - "auto", - "required" - ] - }, - "tools": { - "type": "array", - "items": { - "type": "object" - } - } - }, - "required": [ - "mode", - "tools" - ] - } - }, - "required": [ - "type", - "allowed_tools" - ] - } - ] - } - ] - }, - "tools": { - "type": "array", - "description": "A list of tools the model may call.", - "items": { - "oneOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "function" - ] - }, - "function": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The name of the function to be called." - }, - "description": { - "type": "string", - "description": "A description of what the function does." - }, - "parameters": { - "type": "object", - "description": "The parameters the function accepts, described as a JSON Schema object." - }, - "strict": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "default": false, - "description": "Whether to enable strict schema adherence." - } - }, - "required": [ - "name" - ] - } - }, - "required": [ - "type", - "function" - ] - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "custom" - ] - }, - "custom": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "format": { - "oneOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "text" - ] - } - }, - "required": [ - "type" - ] - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "grammar" - ] - }, - "grammar": { - "type": "object", - "properties": { - "definition": { - "type": "string" - }, - "syntax": { - "type": "string", - "enum": [ - "lark", - "regex" - ] - } - }, - "required": [ - "definition", - "syntax" - ] - } - }, - "required": [ - "type", - "grammar" - ] - } - ] - } - }, - "required": [ - "name" - ] - } - }, - "required": [ - "type", - "custom" - ] - } - ] - } - }, - "top_p": { - "anyOf": [ - { - "type": "number", - "minimum": 0, - "maximum": 1 - }, - { - "type": "null" - } - ], - "default": 1, - "description": "Nucleus sampling: considers the results of the tokens with top_p probability mass." - }, - "user": { - "type": "string", - "description": "A unique identifier representing your end-user, for abuse monitoring." - }, - "web_search_options": { - "anyOf": [ - { - "type": "object", - "description": "Options for the web search tool (when using built-in web search).", - "properties": { - "search_context_size": { - "type": "string", - "enum": [ - "low", - "medium", - "high" - ], - "default": "medium" - }, - "user_location": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "approximate" - ] - }, - "approximate": { - "type": "object", - "properties": { - "city": { - "type": "string" - }, - "country": { - "type": "string" - }, - "region": { - "type": "string" - }, - "timezone": { - "type": "string" - } - } - } - }, - "required": [ - "type", - "approximate" - ] - } - } - } - ] - }, - "function_call": { - "anyOf": [ - { - "type": "string", - "enum": [ - "none", - "auto" - ] - }, - { - "type": "object", - "properties": { - "name": { - "type": "string" - } - }, - "required": [ - "name" - ] - } - ] - }, - "functions": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The name of the function to be called." - }, - "description": { - "type": "string", - "description": "A description of what the function does." - }, - "parameters": { - "type": "object", - "description": "The parameters the function accepts, described as a JSON Schema object." - }, - "strict": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "default": false, - "description": "Whether to enable strict schema adherence." - } - }, - "required": [ - "name" - ] - }, - "minItems": 1, - "maxItems": 128 - } - }, - "required": [ - "messages" - ] - } - ] - }, - { - "type": "object", - "properties": { - "requests": { - "type": "array", - "items": { - "type": "object", - "oneOf": [ - { - "title": "Prompt", - "properties": { - "prompt": { - "type": "string", - "minLength": 1, - "description": "The input text prompt for the model to generate a response." - }, - "model": { - "type": "string", - "description": "ID of the model to use (e.g. '@cf/zai-org/glm-4.7-flash, etc')." - }, - "audio": { - "anyOf": [ - { - "type": "object", - "description": "Parameters for audio output. Required when modalities includes 'audio'.", - "properties": { - "voice": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "object", - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ] - } - ] - }, - "format": { - "type": "string", - "enum": [ - "wav", - "aac", - "mp3", - "flac", - "opus", - "pcm16" - ] - } - }, - "required": [ - "voice", - "format" - ] - } - ] - }, - "frequency_penalty": { - "anyOf": [ - { - "type": "number", - "minimum": -2, - "maximum": 2 - }, - { - "type": "null" - } - ], - "default": 0, - "description": "Penalizes new tokens based on their existing frequency in the text so far." - }, - "logit_bias": { - "anyOf": [ - { - "type": "object" - }, - { - "type": "null" - } - ], - "description": "Modify the likelihood of specified tokens appearing in the completion. Maps token IDs to bias values from -100 to 100." - }, - "logprobs": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "default": false, - "description": "Whether to return log probabilities of the output tokens." - }, - "top_logprobs": { - "anyOf": [ - { - "type": "integer", - "minimum": 0, - "maximum": 20 - }, - { - "type": "null" - } - ], - "description": "How many top log probabilities to return at each token position (0-20). Requires logprobs=true." - }, - "max_tokens": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "description": "Deprecated in favor of max_completion_tokens. The maximum number of tokens to generate." - }, - "max_completion_tokens": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "description": "An upper bound for the number of tokens that can be generated for a completion." - }, - "metadata": { - "anyOf": [ - { - "type": "object" - }, - { - "type": "null" - } - ], - "description": "Set of 16 key-value pairs that can be attached to the object." - }, - "modalities": { - "anyOf": [ - { - "type": "array", - "items": { - "type": "string", - "enum": [ - "text", - "audio" - ] - } - }, - { - "type": "null" - } - ], - "description": "Output types requested from the model (e.g. ['text'] or ['text', 'audio'])." - }, - "n": { - "anyOf": [ - { - "type": "integer", - "minimum": 1, - "maximum": 128 - }, - { - "type": "null" - } - ], - "default": 1, - "description": "How many chat completion choices to generate for each input message." - }, - "parallel_tool_calls": { - "type": "boolean", - "default": true, - "description": "Whether to enable parallel function calling during tool use." - }, - "prediction": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "content" - ] - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "text" - ] - }, - "text": { - "type": "string" - } - }, - "required": [ - "type", - "text" - ] - } - } - ] - } - }, - "required": [ - "type", - "content" - ] - } - ] - }, - "presence_penalty": { - "anyOf": [ - { - "type": "number", - "minimum": -2, - "maximum": 2 - }, - { - "type": "null" - } - ], - "default": 0, - "description": "Penalizes new tokens based on whether they appear in the text so far." - }, - "reasoning_effort": { - "anyOf": [ - { - "type": "string", - "enum": [ - "low", - "medium", - "high" - ] - }, - { - "type": "null" - } - ], - "description": "Constrains effort on reasoning for reasoning models (o1, o3-mini, etc.)." - }, - "chat_template_kwargs": { - "type": "object", - "properties": { - "enable_thinking": { - "type": "boolean", - "default": true, - "description": "Whether to enable reasoning, enabled by default." - }, - "clear_thinking": { - "type": "boolean", - "default": false, - "description": "If false, preserves reasoning context between turns." - } - } - }, - "response_format": { - "anyOf": [ - { - "description": "Specifies the format the model must output.", - "oneOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "text" - ] - } - }, - "required": [ - "type" - ] - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_object" - ] - } - }, - "required": [ - "type" - ] - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_schema" - ] - }, - "json_schema": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "schema": { - "type": "object" - }, - "strict": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "name" - ] - } - }, - "required": [ - "type", - "json_schema" - ] - } - ] - } - ] - }, - "seed": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "description": "If specified, the system will make a best effort to sample deterministically." - }, - "service_tier": { - "anyOf": [ - { - "type": "string", - "enum": [ - "auto", - "default", - "flex", - "scale", - "priority" - ] - }, - { - "type": "null" - } - ], - "default": "auto", - "description": "Specifies the processing type used for serving the request." - }, - "stop": { - "description": "Up to 4 sequences where the API will stop generating further tokens.", - "anyOf": [ - { - "type": "null" - }, - { - "type": "string" - }, - { - "type": "array", - "items": { - "type": "string" - }, - "minItems": 1, - "maxItems": 4 - } - ] - }, - "store": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "default": false, - "description": "Whether to store the output for model distillation / evals." - }, - "stream": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "default": false, - "description": "If true, partial message deltas will be sent as server-sent events." - }, - "stream_options": { - "anyOf": [ - { - "type": "object", - "properties": { - "include_usage": { - "type": "boolean" - }, - "include_obfuscation": { - "type": "boolean" - } - } - } - ] - }, - "temperature": { - "anyOf": [ - { - "type": "number", - "minimum": 0, - "maximum": 2 - }, - { - "type": "null" - } - ], - "default": 1, - "description": "Sampling temperature between 0 and 2." - }, - "tool_choice": { - "anyOf": [ - { - "description": "Controls which (if any) tool is called by the model. 'none' = no tools, 'auto' = model decides, 'required' = must call a tool.", - "oneOf": [ - { - "type": "string", - "enum": [ - "none", - "auto", - "required" - ] - }, - { - "type": "object", - "description": "Force a specific function tool.", - "properties": { - "type": { - "type": "string", - "enum": [ - "function" - ] - }, - "function": { - "type": "object", - "properties": { - "name": { - "type": "string" - } - }, - "required": [ - "name" - ] - } - }, - "required": [ - "type", - "function" - ] - }, - { - "type": "object", - "description": "Force a specific custom tool.", - "properties": { - "type": { - "type": "string", - "enum": [ - "custom" - ] - }, - "custom": { - "type": "object", - "properties": { - "name": { - "type": "string" - } - }, - "required": [ - "name" - ] - } - }, - "required": [ - "type", - "custom" - ] - }, - { - "type": "object", - "description": "Constrain to an allowed subset of tools.", - "properties": { - "type": { - "type": "string", - "enum": [ - "allowed_tools" - ] - }, - "allowed_tools": { - "type": "object", - "properties": { - "mode": { - "type": "string", - "enum": [ - "auto", - "required" - ] - }, - "tools": { - "type": "array", - "items": { - "type": "object" - } - } - }, - "required": [ - "mode", - "tools" - ] - } - }, - "required": [ - "type", - "allowed_tools" - ] - } - ] - } - ] - }, - "tools": { - "type": "array", - "description": "A list of tools the model may call.", - "items": { - "oneOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "function" - ] - }, - "function": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The name of the function to be called." - }, - "description": { - "type": "string", - "description": "A description of what the function does." - }, - "parameters": { - "type": "object", - "description": "The parameters the function accepts, described as a JSON Schema object." - }, - "strict": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "default": false, - "description": "Whether to enable strict schema adherence." - } - }, - "required": [ - "name" - ] - } - }, - "required": [ - "type", - "function" - ] - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "custom" - ] - }, - "custom": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "format": { - "oneOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "text" - ] - } - }, - "required": [ - "type" - ] - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "grammar" - ] - }, - "grammar": { - "type": "object", - "properties": { - "definition": { - "type": "string" - }, - "syntax": { - "type": "string", - "enum": [ - "lark", - "regex" - ] - } - }, - "required": [ - "definition", - "syntax" - ] - } - }, - "required": [ - "type", - "grammar" - ] - } - ] - } - }, - "required": [ - "name" - ] - } - }, - "required": [ - "type", - "custom" - ] - } - ] - } - }, - "top_p": { - "anyOf": [ - { - "type": "number", - "minimum": 0, - "maximum": 1 - }, - { - "type": "null" - } - ], - "default": 1, - "description": "Nucleus sampling: considers the results of the tokens with top_p probability mass." - }, - "user": { - "type": "string", - "description": "A unique identifier representing your end-user, for abuse monitoring." - }, - "web_search_options": { - "anyOf": [ - { - "type": "object", - "description": "Options for the web search tool (when using built-in web search).", - "properties": { - "search_context_size": { - "type": "string", - "enum": [ - "low", - "medium", - "high" - ], - "default": "medium" - }, - "user_location": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "approximate" - ] - }, - "approximate": { - "type": "object", - "properties": { - "city": { - "type": "string" - }, - "country": { - "type": "string" - }, - "region": { - "type": "string" - }, - "timezone": { - "type": "string" - } - } - } - }, - "required": [ - "type", - "approximate" - ] - } - } - } - ] - }, - "function_call": { - "anyOf": [ - { - "type": "string", - "enum": [ - "none", - "auto" - ] - }, - { - "type": "object", - "properties": { - "name": { - "type": "string" - } - }, - "required": [ - "name" - ] - } - ] - }, - "functions": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The name of the function to be called." - }, - "description": { - "type": "string", - "description": "A description of what the function does." - }, - "parameters": { - "type": "object", - "description": "The parameters the function accepts, described as a JSON Schema object." - }, - "strict": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "default": false, - "description": "Whether to enable strict schema adherence." - } - }, - "required": [ - "name" - ] - }, - "minItems": 1, - "maxItems": 128 - } - }, - "required": [ - "prompt" - ] - }, - { - "title": "Messages", - "properties": { - "messages": { - "type": "array", - "description": "A list of messages comprising the conversation so far.", - "items": { - "oneOf": [ - { - "type": "object", - "properties": { - "role": { - "type": "string", - "enum": [ - "developer" - ] - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "text" - ] - }, - "text": { - "type": "string" - } - }, - "required": [ - "type", - "text" - ] - } - } - ] - }, - "name": { - "type": "string" - } - }, - "required": [ - "role", - "content" - ] - }, - { - "type": "object", - "properties": { - "role": { - "type": "string", - "enum": [ - "system" - ] - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "text" - ] - }, - "text": { - "type": "string" - } - }, - "required": [ - "type", - "text" - ] - } - } - ] - }, - "name": { - "type": "string" - } - }, - "required": [ - "role", - "content" - ] - }, - { - "type": "object", - "properties": { - "role": { - "type": "string", - "enum": [ - "user" - ] - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "text", - "image_url", - "input_audio", - "file" - ] - }, - "text": { - "type": "string" - }, - "image_url": { - "type": "object", - "properties": { - "url": { - "type": "string" - }, - "detail": { - "type": "string", - "enum": [ - "auto", - "low", - "high" - ], - "default": "auto" - } - } - }, - "input_audio": { - "type": "object", - "properties": { - "data": { - "type": "string" - }, - "format": { - "type": "string", - "enum": [ - "wav", - "mp3" - ] - } - } - }, - "file": { - "type": "object", - "properties": { - "file_data": { - "type": "string" - }, - "file_id": { - "type": "string" - }, - "filename": { - "type": "string" - } - } - } - }, - "required": [ - "type" - ] - }, - "minItems": 1 - } - ] - }, - "name": { - "type": "string" - } - }, - "required": [ - "role", - "content" - ] - }, - { - "type": "object", - "properties": { - "role": { - "type": "string", - "enum": [ - "assistant" - ] - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - }, - { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "text", - "refusal" - ] - }, - "text": { - "type": "string" - }, - "refusal": { - "type": "string" - } - }, - "required": [ - "type" - ] - } - } - ] - }, - "refusal": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "name": { - "type": "string" - }, - "audio": { - "anyOf": [ - { - "type": "object", - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ] - } - ] - }, - "tool_calls": { - "type": "array", - "items": { - "oneOf": [ - { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "function" - ] - }, - "function": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "arguments": { - "type": "string", - "description": "JSON-encoded arguments string." - } - }, - "required": [ - "name", - "arguments" - ] - } - }, - "required": [ - "id", - "type", - "function" - ] - }, - { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "custom" - ] - }, - "custom": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "input": { - "type": "string" - } - }, - "required": [ - "name", - "input" - ] - } - }, - "required": [ - "id", - "type", - "custom" - ] - } - ] - } - }, - "function_call": { - "anyOf": [ - { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "arguments": { - "type": "string" - } - }, - "required": [ - "name", - "arguments" - ] - } - ] - } - }, - "required": [ - "role" - ] - }, - { - "type": "object", - "properties": { - "role": { - "type": "string", - "enum": [ - "tool" - ] - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "text" - ] - }, - "text": { - "type": "string" - } - }, - "required": [ - "type", - "text" - ] - } - } - ] - }, - "tool_call_id": { - "type": "string" - } - }, - "required": [ - "role", - "content", - "tool_call_id" - ] - }, - { - "type": "object", - "properties": { - "role": { - "type": "string", - "enum": [ - "function" - ] - }, - "content": { - "type": "string" - }, - "name": { - "type": "string" - } - }, - "required": [ - "role", - "content", - "name" - ] - } - ] - }, - "minItems": 1 - }, - "model": { - "type": "string", - "description": "ID of the model to use (e.g. '@cf/zai-org/glm-4.7-flash, etc')." - }, - "audio": { - "anyOf": [ - { - "type": "object", - "description": "Parameters for audio output. Required when modalities includes 'audio'.", - "properties": { - "voice": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "object", - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ] - } - ] - }, - "format": { - "type": "string", - "enum": [ - "wav", - "aac", - "mp3", - "flac", - "opus", - "pcm16" - ] - } - }, - "required": [ - "voice", - "format" - ] - } - ] - }, - "frequency_penalty": { - "anyOf": [ - { - "type": "number", - "minimum": -2, - "maximum": 2 - }, - { - "type": "null" - } - ], - "default": 0, - "description": "Penalizes new tokens based on their existing frequency in the text so far." - }, - "logit_bias": { - "anyOf": [ - { - "type": "object" - }, - { - "type": "null" - } - ], - "description": "Modify the likelihood of specified tokens appearing in the completion. Maps token IDs to bias values from -100 to 100." - }, - "logprobs": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "default": false, - "description": "Whether to return log probabilities of the output tokens." - }, - "top_logprobs": { - "anyOf": [ - { - "type": "integer", - "minimum": 0, - "maximum": 20 - }, - { - "type": "null" - } - ], - "description": "How many top log probabilities to return at each token position (0-20). Requires logprobs=true." - }, - "max_tokens": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "description": "Deprecated in favor of max_completion_tokens. The maximum number of tokens to generate." - }, - "max_completion_tokens": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "description": "An upper bound for the number of tokens that can be generated for a completion." - }, - "metadata": { - "anyOf": [ - { - "type": "object" - }, - { - "type": "null" - } - ], - "description": "Set of 16 key-value pairs that can be attached to the object." - }, - "modalities": { - "anyOf": [ - { - "type": "array", - "items": { - "type": "string", - "enum": [ - "text", - "audio" - ] - } - }, - { - "type": "null" - } - ], - "description": "Output types requested from the model (e.g. ['text'] or ['text', 'audio'])." - }, - "n": { - "anyOf": [ - { - "type": "integer", - "minimum": 1, - "maximum": 128 - }, - { - "type": "null" - } - ], - "default": 1, - "description": "How many chat completion choices to generate for each input message." - }, - "parallel_tool_calls": { - "type": "boolean", - "default": true, - "description": "Whether to enable parallel function calling during tool use." - }, - "prediction": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "content" - ] - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "text" - ] - }, - "text": { - "type": "string" - } - }, - "required": [ - "type", - "text" - ] - } - } - ] - } - }, - "required": [ - "type", - "content" - ] - } - ] - }, - "presence_penalty": { - "anyOf": [ - { - "type": "number", - "minimum": -2, - "maximum": 2 - }, - { - "type": "null" - } - ], - "default": 0, - "description": "Penalizes new tokens based on whether they appear in the text so far." - }, - "reasoning_effort": { - "anyOf": [ - { - "type": "string", - "enum": [ - "low", - "medium", - "high" - ] - }, - { - "type": "null" - } - ], - "description": "Constrains effort on reasoning for reasoning models (o1, o3-mini, etc.)." - }, - "chat_template_kwargs": { - "type": "object", - "properties": { - "enable_thinking": { - "type": "boolean", - "default": true, - "description": "Whether to enable reasoning, enabled by default." - }, - "clear_thinking": { - "type": "boolean", - "default": false, - "description": "If false, preserves reasoning context between turns." - } - } - }, - "response_format": { - "anyOf": [ - { - "description": "Specifies the format the model must output.", - "oneOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "text" - ] - } - }, - "required": [ - "type" - ] - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_object" - ] - } - }, - "required": [ - "type" - ] - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_schema" - ] - }, - "json_schema": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "schema": { - "type": "object" - }, - "strict": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "name" - ] - } - }, - "required": [ - "type", - "json_schema" - ] - } - ] - } - ] - }, - "seed": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "description": "If specified, the system will make a best effort to sample deterministically." - }, - "service_tier": { - "anyOf": [ - { - "type": "string", - "enum": [ - "auto", - "default", - "flex", - "scale", - "priority" - ] - }, - { - "type": "null" - } - ], - "default": "auto", - "description": "Specifies the processing type used for serving the request." - }, - "stop": { - "description": "Up to 4 sequences where the API will stop generating further tokens.", - "anyOf": [ - { - "type": "null" - }, - { - "type": "string" - }, - { - "type": "array", - "items": { - "type": "string" - }, - "minItems": 1, - "maxItems": 4 - } - ] - }, - "store": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "default": false, - "description": "Whether to store the output for model distillation / evals." - }, - "stream": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "default": false, - "description": "If true, partial message deltas will be sent as server-sent events." - }, - "stream_options": { - "anyOf": [ - { - "type": "object", - "properties": { - "include_usage": { - "type": "boolean" - }, - "include_obfuscation": { - "type": "boolean" - } - } - } - ] - }, - "temperature": { - "anyOf": [ - { - "type": "number", - "minimum": 0, - "maximum": 2 - }, - { - "type": "null" - } - ], - "default": 1, - "description": "Sampling temperature between 0 and 2." - }, - "tool_choice": { - "anyOf": [ - { - "description": "Controls which (if any) tool is called by the model. 'none' = no tools, 'auto' = model decides, 'required' = must call a tool.", - "oneOf": [ - { - "type": "string", - "enum": [ - "none", - "auto", - "required" - ] - }, - { - "type": "object", - "description": "Force a specific function tool.", - "properties": { - "type": { - "type": "string", - "enum": [ - "function" - ] - }, - "function": { - "type": "object", - "properties": { - "name": { - "type": "string" - } - }, - "required": [ - "name" - ] - } - }, - "required": [ - "type", - "function" - ] - }, - { - "type": "object", - "description": "Force a specific custom tool.", - "properties": { - "type": { - "type": "string", - "enum": [ - "custom" - ] - }, - "custom": { - "type": "object", - "properties": { - "name": { - "type": "string" - } - }, - "required": [ - "name" - ] - } - }, - "required": [ - "type", - "custom" - ] - }, - { - "type": "object", - "description": "Constrain to an allowed subset of tools.", - "properties": { - "type": { - "type": "string", - "enum": [ - "allowed_tools" - ] - }, - "allowed_tools": { - "type": "object", - "properties": { - "mode": { - "type": "string", - "enum": [ - "auto", - "required" - ] - }, - "tools": { - "type": "array", - "items": { - "type": "object" - } - } - }, - "required": [ - "mode", - "tools" - ] - } - }, - "required": [ - "type", - "allowed_tools" - ] - } - ] - } - ] - }, - "tools": { - "type": "array", - "description": "A list of tools the model may call.", - "items": { - "oneOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "function" - ] - }, - "function": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The name of the function to be called." - }, - "description": { - "type": "string", - "description": "A description of what the function does." - }, - "parameters": { - "type": "object", - "description": "The parameters the function accepts, described as a JSON Schema object." - }, - "strict": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "default": false, - "description": "Whether to enable strict schema adherence." - } - }, - "required": [ - "name" - ] - } - }, - "required": [ - "type", - "function" - ] - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "custom" - ] - }, - "custom": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "format": { - "oneOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "text" - ] - } - }, - "required": [ - "type" - ] - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "grammar" - ] - }, - "grammar": { - "type": "object", - "properties": { - "definition": { - "type": "string" - }, - "syntax": { - "type": "string", - "enum": [ - "lark", - "regex" - ] - } - }, - "required": [ - "definition", - "syntax" - ] - } - }, - "required": [ - "type", - "grammar" - ] - } - ] - } - }, - "required": [ - "name" - ] - } - }, - "required": [ - "type", - "custom" - ] - } - ] - } - }, - "top_p": { - "anyOf": [ - { - "type": "number", - "minimum": 0, - "maximum": 1 - }, - { - "type": "null" - } - ], - "default": 1, - "description": "Nucleus sampling: considers the results of the tokens with top_p probability mass." - }, - "user": { - "type": "string", - "description": "A unique identifier representing your end-user, for abuse monitoring." - }, - "web_search_options": { - "anyOf": [ - { - "type": "object", - "description": "Options for the web search tool (when using built-in web search).", - "properties": { - "search_context_size": { - "type": "string", - "enum": [ - "low", - "medium", - "high" - ], - "default": "medium" - }, - "user_location": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "approximate" - ] - }, - "approximate": { - "type": "object", - "properties": { - "city": { - "type": "string" - }, - "country": { - "type": "string" - }, - "region": { - "type": "string" - }, - "timezone": { - "type": "string" - } - } - } - }, - "required": [ - "type", - "approximate" - ] - } - } - } - ] - }, - "function_call": { - "anyOf": [ - { - "type": "string", - "enum": [ - "none", - "auto" - ] - }, - { - "type": "object", - "properties": { - "name": { - "type": "string" - } - }, - "required": [ - "name" - ] - } - ] - }, - "functions": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The name of the function to be called." - }, - "description": { - "type": "string", - "description": "A description of what the function does." - }, - "parameters": { - "type": "object", - "description": "The parameters the function accepts, described as a JSON Schema object." - }, - "strict": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "default": false, - "description": "Whether to enable strict schema adherence." - } - }, - "required": [ - "name" - ] - }, - "minItems": 1, - "maxItems": 128 - } - }, - "required": [ - "messages" - ] - } - ] - } - } - } - } - ] - }, - "output": { - "oneOf": [ - { - "type": "object", - "contentType": "application/json", - "properties": { - "id": { - "type": "string", - "description": "A unique identifier for the chat completion." - }, - "object": { - "type": "string" - }, - "created": { - "type": "integer", - "description": "Unix timestamp (seconds) of when the completion was created." - }, - "model": { - "type": "string", - "description": "The model used for the chat completion." - }, - "choices": { - "type": "array", - "items": { - "anyOf": [ - { - "type": "object", - "properties": { - "index": { - "type": "integer" - }, - "message": { - "anyOf": [ - { - "type": "object", - "properties": { - "role": { - "type": "string", - "enum": [ - "assistant" - ] - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "refusal": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "annotations": { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "url_citation" - ] - }, - "url_citation": { - "type": "object", - "properties": { - "url": { - "type": "string" - }, - "title": { - "type": "string" - }, - "start_index": { - "type": "integer" - }, - "end_index": { - "type": "integer" - } - }, - "required": [ - "url", - "title", - "start_index", - "end_index" - ] - } - }, - "required": [ - "type", - "url_citation" - ] - } - }, - "audio": { - "anyOf": [ - { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "data": { - "type": "string", - "description": "Base64 encoded audio bytes." - }, - "expires_at": { - "type": "integer" - }, - "transcript": { - "type": "string" - } - }, - "required": [ - "id", - "data", - "expires_at", - "transcript" - ] - } - ] - }, - "tool_calls": { - "type": "array", - "items": { - "oneOf": [ - { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "function" - ] - }, - "function": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "arguments": { - "type": "string", - "description": "JSON-encoded arguments string." - } - }, - "required": [ - "name", - "arguments" - ] - } - }, - "required": [ - "id", - "type", - "function" - ] - }, - { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "custom" - ] - }, - "custom": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "input": { - "type": "string" - } - }, - "required": [ - "name", - "input" - ] - } - }, - "required": [ - "id", - "type", - "custom" - ] - } - ] - } - }, - "function_call": { - "anyOf": [ - { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "arguments": { - "type": "string" - } - }, - "required": [ - "name", - "arguments" - ] - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "role", - "content", - "refusal" - ] - } - ] - }, - "finish_reason": { - "type": "string", - "enum": [ - "stop", - "length", - "tool_calls", - "content_filter", - "function_call" - ] - }, - "logprobs": { - "anyOf": [ - { - "type": "object", - "properties": { - "content": { - "anyOf": [ - { - "type": "array", - "items": { - "type": "object", - "properties": { - "token": { - "type": "string" - }, - "logprob": { - "type": "number" - }, - "bytes": { - "anyOf": [ - { - "type": "array", - "items": { - "type": "integer" - } - }, - { - "type": "null" - } - ] - }, - "top_logprobs": { - "type": "array", - "items": { - "type": "object", - "properties": { - "token": { - "type": "string" - }, - "logprob": { - "type": "number" - }, - "bytes": { - "anyOf": [ - { - "type": "array", - "items": { - "type": "integer" - } - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "token", - "logprob", - "bytes" - ] - } - } - }, - "required": [ - "token", - "logprob", - "bytes", - "top_logprobs" - ] - } - }, - { - "type": "null" - } - ] - }, - "refusal": { - "anyOf": [ - { - "type": "array", - "items": { - "type": "object", - "properties": { - "token": { - "type": "string" - }, - "logprob": { - "type": "number" - }, - "bytes": { - "anyOf": [ - { - "type": "array", - "items": { - "type": "integer" - } - }, - { - "type": "null" - } - ] - }, - "top_logprobs": { - "type": "array", - "items": { - "type": "object", - "properties": { - "token": { - "type": "string" - }, - "logprob": { - "type": "number" - }, - "bytes": { - "anyOf": [ - { - "type": "array", - "items": { - "type": "integer" - } - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "token", - "logprob", - "bytes" - ] - } - } - }, - "required": [ - "token", - "logprob", - "bytes", - "top_logprobs" - ] - } - }, - { - "type": "null" - } - ] - } - } - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "index", - "message", - "finish_reason", - "logprobs" - ] - } - ] - }, - "minItems": 1 - }, - "usage": { - "anyOf": [ - { - "type": "object", - "properties": { - "prompt_tokens": { - "type": "integer" - }, - "completion_tokens": { - "type": "integer" - }, - "total_tokens": { - "type": "integer" - }, - "prompt_tokens_details": { - "type": "object", - "properties": { - "cached_tokens": { - "type": "integer" - }, - "audio_tokens": { - "type": "integer" - } - } - }, - "completion_tokens_details": { - "type": "object", - "properties": { - "reasoning_tokens": { - "type": "integer" - }, - "audio_tokens": { - "type": "integer" - }, - "accepted_prediction_tokens": { - "type": "integer" - }, - "rejected_prediction_tokens": { - "type": "integer" - } - } - } - }, - "required": [ - "prompt_tokens", - "completion_tokens", - "total_tokens" - ] - } - ] - }, - "system_fingerprint": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "service_tier": { - "anyOf": [ - { - "type": "string", - "enum": [ - "auto", - "default", - "flex", - "scale", - "priority" - ] - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "object", - "created", - "model", - "choices" - ] - }, - { - "type": "string", - "contentType": "text/event-stream", - "format": "binary" - } - ] - } - } -} \ No newline at end of file diff --git a/src/content/workers-ai-models/kimi-k2.6.json b/src/content/workers-ai-models/kimi-k2.6.json deleted file mode 100644 index 84049d883ac8371..000000000000000 --- a/src/content/workers-ai-models/kimi-k2.6.json +++ /dev/null @@ -1,4755 +0,0 @@ -{ - "id": "8a5d00bd-de28-4a28-b37a-ce46d01ebaeb", - "source": 1, - "name": "@cf/moonshotai/kimi-k2.6", - "description": "Kimi K2.6 is a frontier-scale open-source 1T parameter model with a 262.1k context window, multi-turn tool calling, vision inputs, and structured outputs for agentic workloads.", - "task": { - "id": "c329a1f9-323d-4e91-b2aa-582dd4188d34", - "name": "Text Generation", - "description": "Family of generative text models, such as large language models (LLM), that can be adapted for a variety of natural language tasks." - }, - "created_at": "2026-04-20 01:40:35.001", - "tags": [], - "properties": [ - { - "property_id": "context_window", - "value": "262144" - }, - { - "property_id": "price", - "value": [ - { - "unit": "per M input tokens", - "price": 0.95, - "currency": "USD" - }, - { - "unit": "per M cached input tokens", - "price": 0.16, - "currency": "USD" - }, - { - "unit": "per M output tokens", - "price": 4, - "currency": "USD" - } - ] - }, - { - "property_id": "function_calling", - "value": "true" - }, - { - "property_id": "reasoning", - "value": "true" - }, - { - "property_id": "terms", - "value": "https://huggingface.co/moonshotai/Kimi-K2.6/blob/main/LICENSE" - }, - { - "property_id": "vision", - "value": "true" - } - ], - "schema": { - "input": { - "anyOf": [ - { - "type": "object", - "oneOf": [ - { - "title": "Prompt", - "properties": { - "prompt": { - "type": "string", - "minLength": 1, - "description": "The input text prompt for the model to generate a response." - }, - "model": { - "type": "string", - "description": "ID of the model to use (e.g. '@cf/zai-org/glm-4.7-flash, etc')." - }, - "audio": { - "anyOf": [ - { - "type": "object", - "description": "Parameters for audio output. Required when modalities includes 'audio'.", - "properties": { - "voice": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "object", - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ] - } - ] - }, - "format": { - "type": "string", - "enum": [ - "wav", - "aac", - "mp3", - "flac", - "opus", - "pcm16" - ] - } - }, - "required": [ - "voice", - "format" - ] - } - ] - }, - "frequency_penalty": { - "anyOf": [ - { - "type": "number", - "minimum": -2, - "maximum": 2 - }, - { - "type": "null" - } - ], - "default": 0, - "description": "Penalizes new tokens based on their existing frequency in the text so far." - }, - "logit_bias": { - "anyOf": [ - { - "type": "object" - }, - { - "type": "null" - } - ], - "description": "Modify the likelihood of specified tokens appearing in the completion. Maps token IDs to bias values from -100 to 100." - }, - "logprobs": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "default": false, - "description": "Whether to return log probabilities of the output tokens." - }, - "top_logprobs": { - "anyOf": [ - { - "type": "integer", - "minimum": 0, - "maximum": 20 - }, - { - "type": "null" - } - ], - "description": "How many top log probabilities to return at each token position (0-20). Requires logprobs=true." - }, - "max_tokens": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "description": "Deprecated in favor of max_completion_tokens. The maximum number of tokens to generate." - }, - "max_completion_tokens": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "description": "An upper bound for the number of tokens that can be generated for a completion." - }, - "metadata": { - "anyOf": [ - { - "type": "object" - }, - { - "type": "null" - } - ], - "description": "Set of 16 key-value pairs that can be attached to the object." - }, - "modalities": { - "anyOf": [ - { - "type": "array", - "items": { - "type": "string", - "enum": [ - "text", - "audio" - ] - } - }, - { - "type": "null" - } - ], - "description": "Output types requested from the model (e.g. ['text'] or ['text', 'audio'])." - }, - "n": { - "anyOf": [ - { - "type": "integer", - "minimum": 1, - "maximum": 128 - }, - { - "type": "null" - } - ], - "default": 1, - "description": "How many chat completion choices to generate for each input message." - }, - "parallel_tool_calls": { - "type": "boolean", - "default": true, - "description": "Whether to enable parallel function calling during tool use." - }, - "prediction": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "content" - ] - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "text" - ] - }, - "text": { - "type": "string" - } - }, - "required": [ - "type", - "text" - ] - } - } - ] - } - }, - "required": [ - "type", - "content" - ] - } - ] - }, - "presence_penalty": { - "anyOf": [ - { - "type": "number", - "minimum": -2, - "maximum": 2 - }, - { - "type": "null" - } - ], - "default": 0, - "description": "Penalizes new tokens based on whether they appear in the text so far." - }, - "reasoning_effort": { - "anyOf": [ - { - "type": "string", - "enum": [ - "low", - "medium", - "high" - ] - }, - { - "type": "null" - } - ], - "description": "Constrains effort on reasoning for reasoning models (o1, o3-mini, etc.)." - }, - "chat_template_kwargs": { - "type": "object", - "properties": { - "thinking": { - "type": "boolean", - "default": true, - "description": "Whether to enable reasoning, enabled by default." - }, - "clear_thinking": { - "type": "boolean", - "default": false, - "description": "If false, preserves reasoning context between turns." - } - } - }, - "response_format": { - "anyOf": [ - { - "description": "Specifies the format the model must output.", - "oneOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "text" - ] - } - }, - "required": [ - "type" - ] - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_object" - ] - } - }, - "required": [ - "type" - ] - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_schema" - ] - }, - "json_schema": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "schema": { - "type": "object" - }, - "strict": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "name" - ] - } - }, - "required": [ - "type", - "json_schema" - ] - } - ] - } - ] - }, - "seed": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "description": "If specified, the system will make a best effort to sample deterministically." - }, - "service_tier": { - "anyOf": [ - { - "type": "string", - "enum": [ - "auto", - "default", - "flex", - "scale", - "priority" - ] - }, - { - "type": "null" - } - ], - "default": "auto", - "description": "Specifies the processing type used for serving the request." - }, - "stop": { - "description": "Up to 4 sequences where the API will stop generating further tokens.", - "anyOf": [ - { - "type": "null" - }, - { - "type": "string" - }, - { - "type": "array", - "items": { - "type": "string" - }, - "minItems": 1, - "maxItems": 4 - } - ] - }, - "store": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "default": false, - "description": "Whether to store the output for model distillation / evals." - }, - "stream": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "default": false, - "description": "If true, partial message deltas will be sent as server-sent events." - }, - "stream_options": { - "anyOf": [ - { - "type": "object", - "properties": { - "include_usage": { - "type": "boolean" - }, - "include_obfuscation": { - "type": "boolean" - } - } - } - ] - }, - "temperature": { - "anyOf": [ - { - "type": "number", - "minimum": 0, - "maximum": 2 - }, - { - "type": "null" - } - ], - "default": 1, - "description": "Sampling temperature between 0 and 2." - }, - "tool_choice": { - "anyOf": [ - { - "description": "Controls which (if any) tool is called by the model. 'none' = no tools, 'auto' = model decides, 'required' = must call a tool.", - "oneOf": [ - { - "type": "string", - "enum": [ - "none", - "auto", - "required" - ] - }, - { - "type": "object", - "description": "Force a specific function tool.", - "properties": { - "type": { - "type": "string", - "enum": [ - "function" - ] - }, - "function": { - "type": "object", - "properties": { - "name": { - "type": "string" - } - }, - "required": [ - "name" - ] - } - }, - "required": [ - "type", - "function" - ] - }, - { - "type": "object", - "description": "Force a specific custom tool.", - "properties": { - "type": { - "type": "string", - "enum": [ - "custom" - ] - }, - "custom": { - "type": "object", - "properties": { - "name": { - "type": "string" - } - }, - "required": [ - "name" - ] - } - }, - "required": [ - "type", - "custom" - ] - }, - { - "type": "object", - "description": "Constrain to an allowed subset of tools.", - "properties": { - "type": { - "type": "string", - "enum": [ - "allowed_tools" - ] - }, - "allowed_tools": { - "type": "object", - "properties": { - "mode": { - "type": "string", - "enum": [ - "auto", - "required" - ] - }, - "tools": { - "type": "array", - "items": { - "type": "object" - } - } - }, - "required": [ - "mode", - "tools" - ] - } - }, - "required": [ - "type", - "allowed_tools" - ] - } - ] - } - ] - }, - "tools": { - "type": "array", - "description": "A list of tools the model may call.", - "items": { - "oneOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "function" - ] - }, - "function": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The name of the function to be called." - }, - "description": { - "type": "string", - "description": "A description of what the function does." - }, - "parameters": { - "type": "object", - "description": "The parameters the function accepts, described as a JSON Schema object." - }, - "strict": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "default": false, - "description": "Whether to enable strict schema adherence." - } - }, - "required": [ - "name" - ] - } - }, - "required": [ - "type", - "function" - ] - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "custom" - ] - }, - "custom": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "format": { - "oneOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "text" - ] - } - }, - "required": [ - "type" - ] - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "grammar" - ] - }, - "grammar": { - "type": "object", - "properties": { - "definition": { - "type": "string" - }, - "syntax": { - "type": "string", - "enum": [ - "lark", - "regex" - ] - } - }, - "required": [ - "definition", - "syntax" - ] - } - }, - "required": [ - "type", - "grammar" - ] - } - ] - } - }, - "required": [ - "name" - ] - } - }, - "required": [ - "type", - "custom" - ] - } - ] - } - }, - "top_p": { - "anyOf": [ - { - "type": "number", - "minimum": 0, - "maximum": 1 - }, - { - "type": "null" - } - ], - "default": 1, - "description": "Nucleus sampling: considers the results of the tokens with top_p probability mass." - }, - "user": { - "type": "string", - "description": "A unique identifier representing your end-user, for abuse monitoring." - }, - "web_search_options": { - "anyOf": [ - { - "type": "object", - "description": "Options for the web search tool (when using built-in web search).", - "properties": { - "search_context_size": { - "type": "string", - "enum": [ - "low", - "medium", - "high" - ], - "default": "medium" - }, - "user_location": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "approximate" - ] - }, - "approximate": { - "type": "object", - "properties": { - "city": { - "type": "string" - }, - "country": { - "type": "string" - }, - "region": { - "type": "string" - }, - "timezone": { - "type": "string" - } - } - } - }, - "required": [ - "type", - "approximate" - ] - } - } - } - ] - }, - "function_call": { - "anyOf": [ - { - "type": "string", - "enum": [ - "none", - "auto" - ] - }, - { - "type": "object", - "properties": { - "name": { - "type": "string" - } - }, - "required": [ - "name" - ] - } - ] - }, - "functions": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The name of the function to be called." - }, - "description": { - "type": "string", - "description": "A description of what the function does." - }, - "parameters": { - "type": "object", - "description": "The parameters the function accepts, described as a JSON Schema object." - }, - "strict": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "default": false, - "description": "Whether to enable strict schema adherence." - } - }, - "required": [ - "name" - ] - }, - "minItems": 1, - "maxItems": 128 - } - }, - "required": [ - "prompt" - ] - }, - { - "title": "Messages", - "properties": { - "messages": { - "type": "array", - "description": "A list of messages comprising the conversation so far.", - "items": { - "oneOf": [ - { - "type": "object", - "properties": { - "role": { - "type": "string", - "enum": [ - "developer" - ] - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "text" - ] - }, - "text": { - "type": "string" - } - }, - "required": [ - "type", - "text" - ] - } - } - ] - }, - "name": { - "type": "string" - } - }, - "required": [ - "role", - "content" - ] - }, - { - "type": "object", - "properties": { - "role": { - "type": "string", - "enum": [ - "system" - ] - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "text" - ] - }, - "text": { - "type": "string" - } - }, - "required": [ - "type", - "text" - ] - } - } - ] - }, - "name": { - "type": "string" - } - }, - "required": [ - "role", - "content" - ] - }, - { - "type": "object", - "properties": { - "role": { - "type": "string", - "enum": [ - "user" - ] - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "text", - "image_url", - "input_audio", - "file" - ] - }, - "text": { - "type": "string" - }, - "image_url": { - "type": "object", - "properties": { - "url": { - "type": "string" - }, - "detail": { - "type": "string", - "enum": [ - "auto", - "low", - "high" - ], - "default": "auto" - } - } - }, - "input_audio": { - "type": "object", - "properties": { - "data": { - "type": "string" - }, - "format": { - "type": "string", - "enum": [ - "wav", - "mp3" - ] - } - } - }, - "file": { - "type": "object", - "properties": { - "file_data": { - "type": "string" - }, - "file_id": { - "type": "string" - }, - "filename": { - "type": "string" - } - } - } - }, - "required": [ - "type" - ] - }, - "minItems": 1 - } - ] - }, - "name": { - "type": "string" - } - }, - "required": [ - "role", - "content" - ] - }, - { - "type": "object", - "properties": { - "role": { - "type": "string", - "enum": [ - "assistant" - ] - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - }, - { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "text", - "refusal" - ] - }, - "text": { - "type": "string" - }, - "refusal": { - "type": "string" - } - }, - "required": [ - "type" - ] - } - } - ] - }, - "refusal": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "name": { - "type": "string" - }, - "audio": { - "anyOf": [ - { - "type": "object", - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ] - } - ] - }, - "tool_calls": { - "type": "array", - "items": { - "oneOf": [ - { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "function" - ] - }, - "function": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "arguments": { - "type": "string", - "description": "JSON-encoded arguments string." - } - }, - "required": [ - "name", - "arguments" - ] - } - }, - "required": [ - "id", - "type", - "function" - ] - }, - { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "custom" - ] - }, - "custom": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "input": { - "type": "string" - } - }, - "required": [ - "name", - "input" - ] - } - }, - "required": [ - "id", - "type", - "custom" - ] - } - ] - } - }, - "function_call": { - "anyOf": [ - { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "arguments": { - "type": "string" - } - }, - "required": [ - "name", - "arguments" - ] - } - ] - } - }, - "required": [ - "role" - ] - }, - { - "type": "object", - "properties": { - "role": { - "type": "string", - "enum": [ - "tool" - ] - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "text" - ] - }, - "text": { - "type": "string" - } - }, - "required": [ - "type", - "text" - ] - } - } - ] - }, - "tool_call_id": { - "type": "string" - } - }, - "required": [ - "role", - "content", - "tool_call_id" - ] - }, - { - "type": "object", - "properties": { - "role": { - "type": "string", - "enum": [ - "function" - ] - }, - "content": { - "type": "string" - }, - "name": { - "type": "string" - } - }, - "required": [ - "role", - "content", - "name" - ] - } - ] - }, - "minItems": 1 - }, - "model": { - "type": "string", - "description": "ID of the model to use (e.g. '@cf/zai-org/glm-4.7-flash, etc')." - }, - "audio": { - "anyOf": [ - { - "type": "object", - "description": "Parameters for audio output. Required when modalities includes 'audio'.", - "properties": { - "voice": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "object", - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ] - } - ] - }, - "format": { - "type": "string", - "enum": [ - "wav", - "aac", - "mp3", - "flac", - "opus", - "pcm16" - ] - } - }, - "required": [ - "voice", - "format" - ] - } - ] - }, - "frequency_penalty": { - "anyOf": [ - { - "type": "number", - "minimum": -2, - "maximum": 2 - }, - { - "type": "null" - } - ], - "default": 0, - "description": "Penalizes new tokens based on their existing frequency in the text so far." - }, - "logit_bias": { - "anyOf": [ - { - "type": "object" - }, - { - "type": "null" - } - ], - "description": "Modify the likelihood of specified tokens appearing in the completion. Maps token IDs to bias values from -100 to 100." - }, - "logprobs": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "default": false, - "description": "Whether to return log probabilities of the output tokens." - }, - "top_logprobs": { - "anyOf": [ - { - "type": "integer", - "minimum": 0, - "maximum": 20 - }, - { - "type": "null" - } - ], - "description": "How many top log probabilities to return at each token position (0-20). Requires logprobs=true." - }, - "max_tokens": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "description": "Deprecated in favor of max_completion_tokens. The maximum number of tokens to generate." - }, - "max_completion_tokens": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "description": "An upper bound for the number of tokens that can be generated for a completion." - }, - "metadata": { - "anyOf": [ - { - "type": "object" - }, - { - "type": "null" - } - ], - "description": "Set of 16 key-value pairs that can be attached to the object." - }, - "modalities": { - "anyOf": [ - { - "type": "array", - "items": { - "type": "string", - "enum": [ - "text", - "audio" - ] - } - }, - { - "type": "null" - } - ], - "description": "Output types requested from the model (e.g. ['text'] or ['text', 'audio'])." - }, - "n": { - "anyOf": [ - { - "type": "integer", - "minimum": 1, - "maximum": 128 - }, - { - "type": "null" - } - ], - "default": 1, - "description": "How many chat completion choices to generate for each input message." - }, - "parallel_tool_calls": { - "type": "boolean", - "default": true, - "description": "Whether to enable parallel function calling during tool use." - }, - "prediction": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "content" - ] - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "text" - ] - }, - "text": { - "type": "string" - } - }, - "required": [ - "type", - "text" - ] - } - } - ] - } - }, - "required": [ - "type", - "content" - ] - } - ] - }, - "presence_penalty": { - "anyOf": [ - { - "type": "number", - "minimum": -2, - "maximum": 2 - }, - { - "type": "null" - } - ], - "default": 0, - "description": "Penalizes new tokens based on whether they appear in the text so far." - }, - "reasoning_effort": { - "anyOf": [ - { - "type": "string", - "enum": [ - "low", - "medium", - "high" - ] - }, - { - "type": "null" - } - ], - "description": "Constrains effort on reasoning for reasoning models (o1, o3-mini, etc.)." - }, - "chat_template_kwargs": { - "type": "object", - "properties": { - "thinking": { - "type": "boolean", - "default": true, - "description": "Whether to enable reasoning, enabled by default." - }, - "clear_thinking": { - "type": "boolean", - "default": false, - "description": "If false, preserves reasoning context between turns." - } - } - }, - "response_format": { - "anyOf": [ - { - "description": "Specifies the format the model must output.", - "oneOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "text" - ] - } - }, - "required": [ - "type" - ] - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_object" - ] - } - }, - "required": [ - "type" - ] - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_schema" - ] - }, - "json_schema": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "schema": { - "type": "object" - }, - "strict": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "name" - ] - } - }, - "required": [ - "type", - "json_schema" - ] - } - ] - } - ] - }, - "seed": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "description": "If specified, the system will make a best effort to sample deterministically." - }, - "service_tier": { - "anyOf": [ - { - "type": "string", - "enum": [ - "auto", - "default", - "flex", - "scale", - "priority" - ] - }, - { - "type": "null" - } - ], - "default": "auto", - "description": "Specifies the processing type used for serving the request." - }, - "stop": { - "description": "Up to 4 sequences where the API will stop generating further tokens.", - "anyOf": [ - { - "type": "null" - }, - { - "type": "string" - }, - { - "type": "array", - "items": { - "type": "string" - }, - "minItems": 1, - "maxItems": 4 - } - ] - }, - "store": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "default": false, - "description": "Whether to store the output for model distillation / evals." - }, - "stream": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "default": false, - "description": "If true, partial message deltas will be sent as server-sent events." - }, - "stream_options": { - "anyOf": [ - { - "type": "object", - "properties": { - "include_usage": { - "type": "boolean" - }, - "include_obfuscation": { - "type": "boolean" - } - } - } - ] - }, - "temperature": { - "anyOf": [ - { - "type": "number", - "minimum": 0, - "maximum": 2 - }, - { - "type": "null" - } - ], - "default": 1, - "description": "Sampling temperature between 0 and 2." - }, - "tool_choice": { - "anyOf": [ - { - "description": "Controls which (if any) tool is called by the model. 'none' = no tools, 'auto' = model decides, 'required' = must call a tool.", - "oneOf": [ - { - "type": "string", - "enum": [ - "none", - "auto", - "required" - ] - }, - { - "type": "object", - "description": "Force a specific function tool.", - "properties": { - "type": { - "type": "string", - "enum": [ - "function" - ] - }, - "function": { - "type": "object", - "properties": { - "name": { - "type": "string" - } - }, - "required": [ - "name" - ] - } - }, - "required": [ - "type", - "function" - ] - }, - { - "type": "object", - "description": "Force a specific custom tool.", - "properties": { - "type": { - "type": "string", - "enum": [ - "custom" - ] - }, - "custom": { - "type": "object", - "properties": { - "name": { - "type": "string" - } - }, - "required": [ - "name" - ] - } - }, - "required": [ - "type", - "custom" - ] - }, - { - "type": "object", - "description": "Constrain to an allowed subset of tools.", - "properties": { - "type": { - "type": "string", - "enum": [ - "allowed_tools" - ] - }, - "allowed_tools": { - "type": "object", - "properties": { - "mode": { - "type": "string", - "enum": [ - "auto", - "required" - ] - }, - "tools": { - "type": "array", - "items": { - "type": "object" - } - } - }, - "required": [ - "mode", - "tools" - ] - } - }, - "required": [ - "type", - "allowed_tools" - ] - } - ] - } - ] - }, - "tools": { - "type": "array", - "description": "A list of tools the model may call.", - "items": { - "oneOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "function" - ] - }, - "function": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The name of the function to be called." - }, - "description": { - "type": "string", - "description": "A description of what the function does." - }, - "parameters": { - "type": "object", - "description": "The parameters the function accepts, described as a JSON Schema object." - }, - "strict": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "default": false, - "description": "Whether to enable strict schema adherence." - } - }, - "required": [ - "name" - ] - } - }, - "required": [ - "type", - "function" - ] - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "custom" - ] - }, - "custom": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "format": { - "oneOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "text" - ] - } - }, - "required": [ - "type" - ] - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "grammar" - ] - }, - "grammar": { - "type": "object", - "properties": { - "definition": { - "type": "string" - }, - "syntax": { - "type": "string", - "enum": [ - "lark", - "regex" - ] - } - }, - "required": [ - "definition", - "syntax" - ] - } - }, - "required": [ - "type", - "grammar" - ] - } - ] - } - }, - "required": [ - "name" - ] - } - }, - "required": [ - "type", - "custom" - ] - } - ] - } - }, - "top_p": { - "anyOf": [ - { - "type": "number", - "minimum": 0, - "maximum": 1 - }, - { - "type": "null" - } - ], - "default": 1, - "description": "Nucleus sampling: considers the results of the tokens with top_p probability mass." - }, - "user": { - "type": "string", - "description": "A unique identifier representing your end-user, for abuse monitoring." - }, - "web_search_options": { - "anyOf": [ - { - "type": "object", - "description": "Options for the web search tool (when using built-in web search).", - "properties": { - "search_context_size": { - "type": "string", - "enum": [ - "low", - "medium", - "high" - ], - "default": "medium" - }, - "user_location": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "approximate" - ] - }, - "approximate": { - "type": "object", - "properties": { - "city": { - "type": "string" - }, - "country": { - "type": "string" - }, - "region": { - "type": "string" - }, - "timezone": { - "type": "string" - } - } - } - }, - "required": [ - "type", - "approximate" - ] - } - } - } - ] - }, - "function_call": { - "anyOf": [ - { - "type": "string", - "enum": [ - "none", - "auto" - ] - }, - { - "type": "object", - "properties": { - "name": { - "type": "string" - } - }, - "required": [ - "name" - ] - } - ] - }, - "functions": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The name of the function to be called." - }, - "description": { - "type": "string", - "description": "A description of what the function does." - }, - "parameters": { - "type": "object", - "description": "The parameters the function accepts, described as a JSON Schema object." - }, - "strict": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "default": false, - "description": "Whether to enable strict schema adherence." - } - }, - "required": [ - "name" - ] - }, - "minItems": 1, - "maxItems": 128 - } - }, - "required": [ - "messages" - ] - } - ] - }, - { - "type": "object", - "properties": { - "requests": { - "type": "array", - "items": { - "type": "object", - "oneOf": [ - { - "title": "Prompt", - "properties": { - "prompt": { - "type": "string", - "minLength": 1, - "description": "The input text prompt for the model to generate a response." - }, - "model": { - "type": "string", - "description": "ID of the model to use (e.g. '@cf/zai-org/glm-4.7-flash, etc')." - }, - "audio": { - "anyOf": [ - { - "type": "object", - "description": "Parameters for audio output. Required when modalities includes 'audio'.", - "properties": { - "voice": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "object", - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ] - } - ] - }, - "format": { - "type": "string", - "enum": [ - "wav", - "aac", - "mp3", - "flac", - "opus", - "pcm16" - ] - } - }, - "required": [ - "voice", - "format" - ] - } - ] - }, - "frequency_penalty": { - "anyOf": [ - { - "type": "number", - "minimum": -2, - "maximum": 2 - }, - { - "type": "null" - } - ], - "default": 0, - "description": "Penalizes new tokens based on their existing frequency in the text so far." - }, - "logit_bias": { - "anyOf": [ - { - "type": "object" - }, - { - "type": "null" - } - ], - "description": "Modify the likelihood of specified tokens appearing in the completion. Maps token IDs to bias values from -100 to 100." - }, - "logprobs": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "default": false, - "description": "Whether to return log probabilities of the output tokens." - }, - "top_logprobs": { - "anyOf": [ - { - "type": "integer", - "minimum": 0, - "maximum": 20 - }, - { - "type": "null" - } - ], - "description": "How many top log probabilities to return at each token position (0-20). Requires logprobs=true." - }, - "max_tokens": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "description": "Deprecated in favor of max_completion_tokens. The maximum number of tokens to generate." - }, - "max_completion_tokens": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "description": "An upper bound for the number of tokens that can be generated for a completion." - }, - "metadata": { - "anyOf": [ - { - "type": "object" - }, - { - "type": "null" - } - ], - "description": "Set of 16 key-value pairs that can be attached to the object." - }, - "modalities": { - "anyOf": [ - { - "type": "array", - "items": { - "type": "string", - "enum": [ - "text", - "audio" - ] - } - }, - { - "type": "null" - } - ], - "description": "Output types requested from the model (e.g. ['text'] or ['text', 'audio'])." - }, - "n": { - "anyOf": [ - { - "type": "integer", - "minimum": 1, - "maximum": 128 - }, - { - "type": "null" - } - ], - "default": 1, - "description": "How many chat completion choices to generate for each input message." - }, - "parallel_tool_calls": { - "type": "boolean", - "default": true, - "description": "Whether to enable parallel function calling during tool use." - }, - "prediction": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "content" - ] - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "text" - ] - }, - "text": { - "type": "string" - } - }, - "required": [ - "type", - "text" - ] - } - } - ] - } - }, - "required": [ - "type", - "content" - ] - } - ] - }, - "presence_penalty": { - "anyOf": [ - { - "type": "number", - "minimum": -2, - "maximum": 2 - }, - { - "type": "null" - } - ], - "default": 0, - "description": "Penalizes new tokens based on whether they appear in the text so far." - }, - "reasoning_effort": { - "anyOf": [ - { - "type": "string", - "enum": [ - "low", - "medium", - "high" - ] - }, - { - "type": "null" - } - ], - "description": "Constrains effort on reasoning for reasoning models (o1, o3-mini, etc.)." - }, - "chat_template_kwargs": { - "type": "object", - "properties": { - "thinking": { - "type": "boolean", - "default": true, - "description": "Whether to enable reasoning, enabled by default." - }, - "clear_thinking": { - "type": "boolean", - "default": false, - "description": "If false, preserves reasoning context between turns." - } - } - }, - "response_format": { - "anyOf": [ - { - "description": "Specifies the format the model must output.", - "oneOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "text" - ] - } - }, - "required": [ - "type" - ] - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_object" - ] - } - }, - "required": [ - "type" - ] - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_schema" - ] - }, - "json_schema": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "schema": { - "type": "object" - }, - "strict": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "name" - ] - } - }, - "required": [ - "type", - "json_schema" - ] - } - ] - } - ] - }, - "seed": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "description": "If specified, the system will make a best effort to sample deterministically." - }, - "service_tier": { - "anyOf": [ - { - "type": "string", - "enum": [ - "auto", - "default", - "flex", - "scale", - "priority" - ] - }, - { - "type": "null" - } - ], - "default": "auto", - "description": "Specifies the processing type used for serving the request." - }, - "stop": { - "description": "Up to 4 sequences where the API will stop generating further tokens.", - "anyOf": [ - { - "type": "null" - }, - { - "type": "string" - }, - { - "type": "array", - "items": { - "type": "string" - }, - "minItems": 1, - "maxItems": 4 - } - ] - }, - "store": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "default": false, - "description": "Whether to store the output for model distillation / evals." - }, - "stream": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "default": false, - "description": "If true, partial message deltas will be sent as server-sent events." - }, - "stream_options": { - "anyOf": [ - { - "type": "object", - "properties": { - "include_usage": { - "type": "boolean" - }, - "include_obfuscation": { - "type": "boolean" - } - } - } - ] - }, - "temperature": { - "anyOf": [ - { - "type": "number", - "minimum": 0, - "maximum": 2 - }, - { - "type": "null" - } - ], - "default": 1, - "description": "Sampling temperature between 0 and 2." - }, - "tool_choice": { - "anyOf": [ - { - "description": "Controls which (if any) tool is called by the model. 'none' = no tools, 'auto' = model decides, 'required' = must call a tool.", - "oneOf": [ - { - "type": "string", - "enum": [ - "none", - "auto", - "required" - ] - }, - { - "type": "object", - "description": "Force a specific function tool.", - "properties": { - "type": { - "type": "string", - "enum": [ - "function" - ] - }, - "function": { - "type": "object", - "properties": { - "name": { - "type": "string" - } - }, - "required": [ - "name" - ] - } - }, - "required": [ - "type", - "function" - ] - }, - { - "type": "object", - "description": "Force a specific custom tool.", - "properties": { - "type": { - "type": "string", - "enum": [ - "custom" - ] - }, - "custom": { - "type": "object", - "properties": { - "name": { - "type": "string" - } - }, - "required": [ - "name" - ] - } - }, - "required": [ - "type", - "custom" - ] - }, - { - "type": "object", - "description": "Constrain to an allowed subset of tools.", - "properties": { - "type": { - "type": "string", - "enum": [ - "allowed_tools" - ] - }, - "allowed_tools": { - "type": "object", - "properties": { - "mode": { - "type": "string", - "enum": [ - "auto", - "required" - ] - }, - "tools": { - "type": "array", - "items": { - "type": "object" - } - } - }, - "required": [ - "mode", - "tools" - ] - } - }, - "required": [ - "type", - "allowed_tools" - ] - } - ] - } - ] - }, - "tools": { - "type": "array", - "description": "A list of tools the model may call.", - "items": { - "oneOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "function" - ] - }, - "function": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The name of the function to be called." - }, - "description": { - "type": "string", - "description": "A description of what the function does." - }, - "parameters": { - "type": "object", - "description": "The parameters the function accepts, described as a JSON Schema object." - }, - "strict": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "default": false, - "description": "Whether to enable strict schema adherence." - } - }, - "required": [ - "name" - ] - } - }, - "required": [ - "type", - "function" - ] - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "custom" - ] - }, - "custom": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "format": { - "oneOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "text" - ] - } - }, - "required": [ - "type" - ] - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "grammar" - ] - }, - "grammar": { - "type": "object", - "properties": { - "definition": { - "type": "string" - }, - "syntax": { - "type": "string", - "enum": [ - "lark", - "regex" - ] - } - }, - "required": [ - "definition", - "syntax" - ] - } - }, - "required": [ - "type", - "grammar" - ] - } - ] - } - }, - "required": [ - "name" - ] - } - }, - "required": [ - "type", - "custom" - ] - } - ] - } - }, - "top_p": { - "anyOf": [ - { - "type": "number", - "minimum": 0, - "maximum": 1 - }, - { - "type": "null" - } - ], - "default": 1, - "description": "Nucleus sampling: considers the results of the tokens with top_p probability mass." - }, - "user": { - "type": "string", - "description": "A unique identifier representing your end-user, for abuse monitoring." - }, - "web_search_options": { - "anyOf": [ - { - "type": "object", - "description": "Options for the web search tool (when using built-in web search).", - "properties": { - "search_context_size": { - "type": "string", - "enum": [ - "low", - "medium", - "high" - ], - "default": "medium" - }, - "user_location": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "approximate" - ] - }, - "approximate": { - "type": "object", - "properties": { - "city": { - "type": "string" - }, - "country": { - "type": "string" - }, - "region": { - "type": "string" - }, - "timezone": { - "type": "string" - } - } - } - }, - "required": [ - "type", - "approximate" - ] - } - } - } - ] - }, - "function_call": { - "anyOf": [ - { - "type": "string", - "enum": [ - "none", - "auto" - ] - }, - { - "type": "object", - "properties": { - "name": { - "type": "string" - } - }, - "required": [ - "name" - ] - } - ] - }, - "functions": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The name of the function to be called." - }, - "description": { - "type": "string", - "description": "A description of what the function does." - }, - "parameters": { - "type": "object", - "description": "The parameters the function accepts, described as a JSON Schema object." - }, - "strict": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "default": false, - "description": "Whether to enable strict schema adherence." - } - }, - "required": [ - "name" - ] - }, - "minItems": 1, - "maxItems": 128 - } - }, - "required": [ - "prompt" - ] - }, - { - "title": "Messages", - "properties": { - "messages": { - "type": "array", - "description": "A list of messages comprising the conversation so far.", - "items": { - "oneOf": [ - { - "type": "object", - "properties": { - "role": { - "type": "string", - "enum": [ - "developer" - ] - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "text" - ] - }, - "text": { - "type": "string" - } - }, - "required": [ - "type", - "text" - ] - } - } - ] - }, - "name": { - "type": "string" - } - }, - "required": [ - "role", - "content" - ] - }, - { - "type": "object", - "properties": { - "role": { - "type": "string", - "enum": [ - "system" - ] - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "text" - ] - }, - "text": { - "type": "string" - } - }, - "required": [ - "type", - "text" - ] - } - } - ] - }, - "name": { - "type": "string" - } - }, - "required": [ - "role", - "content" - ] - }, - { - "type": "object", - "properties": { - "role": { - "type": "string", - "enum": [ - "user" - ] - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "text", - "image_url", - "input_audio", - "file" - ] - }, - "text": { - "type": "string" - }, - "image_url": { - "type": "object", - "properties": { - "url": { - "type": "string" - }, - "detail": { - "type": "string", - "enum": [ - "auto", - "low", - "high" - ], - "default": "auto" - } - } - }, - "input_audio": { - "type": "object", - "properties": { - "data": { - "type": "string" - }, - "format": { - "type": "string", - "enum": [ - "wav", - "mp3" - ] - } - } - }, - "file": { - "type": "object", - "properties": { - "file_data": { - "type": "string" - }, - "file_id": { - "type": "string" - }, - "filename": { - "type": "string" - } - } - } - }, - "required": [ - "type" - ] - }, - "minItems": 1 - } - ] - }, - "name": { - "type": "string" - } - }, - "required": [ - "role", - "content" - ] - }, - { - "type": "object", - "properties": { - "role": { - "type": "string", - "enum": [ - "assistant" - ] - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - }, - { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "text", - "refusal" - ] - }, - "text": { - "type": "string" - }, - "refusal": { - "type": "string" - } - }, - "required": [ - "type" - ] - } - } - ] - }, - "refusal": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "name": { - "type": "string" - }, - "audio": { - "anyOf": [ - { - "type": "object", - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ] - } - ] - }, - "tool_calls": { - "type": "array", - "items": { - "oneOf": [ - { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "function" - ] - }, - "function": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "arguments": { - "type": "string", - "description": "JSON-encoded arguments string." - } - }, - "required": [ - "name", - "arguments" - ] - } - }, - "required": [ - "id", - "type", - "function" - ] - }, - { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "custom" - ] - }, - "custom": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "input": { - "type": "string" - } - }, - "required": [ - "name", - "input" - ] - } - }, - "required": [ - "id", - "type", - "custom" - ] - } - ] - } - }, - "function_call": { - "anyOf": [ - { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "arguments": { - "type": "string" - } - }, - "required": [ - "name", - "arguments" - ] - } - ] - } - }, - "required": [ - "role" - ] - }, - { - "type": "object", - "properties": { - "role": { - "type": "string", - "enum": [ - "tool" - ] - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "text" - ] - }, - "text": { - "type": "string" - } - }, - "required": [ - "type", - "text" - ] - } - } - ] - }, - "tool_call_id": { - "type": "string" - } - }, - "required": [ - "role", - "content", - "tool_call_id" - ] - }, - { - "type": "object", - "properties": { - "role": { - "type": "string", - "enum": [ - "function" - ] - }, - "content": { - "type": "string" - }, - "name": { - "type": "string" - } - }, - "required": [ - "role", - "content", - "name" - ] - } - ] - }, - "minItems": 1 - }, - "model": { - "type": "string", - "description": "ID of the model to use (e.g. '@cf/zai-org/glm-4.7-flash, etc')." - }, - "audio": { - "anyOf": [ - { - "type": "object", - "description": "Parameters for audio output. Required when modalities includes 'audio'.", - "properties": { - "voice": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "object", - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ] - } - ] - }, - "format": { - "type": "string", - "enum": [ - "wav", - "aac", - "mp3", - "flac", - "opus", - "pcm16" - ] - } - }, - "required": [ - "voice", - "format" - ] - } - ] - }, - "frequency_penalty": { - "anyOf": [ - { - "type": "number", - "minimum": -2, - "maximum": 2 - }, - { - "type": "null" - } - ], - "default": 0, - "description": "Penalizes new tokens based on their existing frequency in the text so far." - }, - "logit_bias": { - "anyOf": [ - { - "type": "object" - }, - { - "type": "null" - } - ], - "description": "Modify the likelihood of specified tokens appearing in the completion. Maps token IDs to bias values from -100 to 100." - }, - "logprobs": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "default": false, - "description": "Whether to return log probabilities of the output tokens." - }, - "top_logprobs": { - "anyOf": [ - { - "type": "integer", - "minimum": 0, - "maximum": 20 - }, - { - "type": "null" - } - ], - "description": "How many top log probabilities to return at each token position (0-20). Requires logprobs=true." - }, - "max_tokens": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "description": "Deprecated in favor of max_completion_tokens. The maximum number of tokens to generate." - }, - "max_completion_tokens": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "description": "An upper bound for the number of tokens that can be generated for a completion." - }, - "metadata": { - "anyOf": [ - { - "type": "object" - }, - { - "type": "null" - } - ], - "description": "Set of 16 key-value pairs that can be attached to the object." - }, - "modalities": { - "anyOf": [ - { - "type": "array", - "items": { - "type": "string", - "enum": [ - "text", - "audio" - ] - } - }, - { - "type": "null" - } - ], - "description": "Output types requested from the model (e.g. ['text'] or ['text', 'audio'])." - }, - "n": { - "anyOf": [ - { - "type": "integer", - "minimum": 1, - "maximum": 128 - }, - { - "type": "null" - } - ], - "default": 1, - "description": "How many chat completion choices to generate for each input message." - }, - "parallel_tool_calls": { - "type": "boolean", - "default": true, - "description": "Whether to enable parallel function calling during tool use." - }, - "prediction": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "content" - ] - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "text" - ] - }, - "text": { - "type": "string" - } - }, - "required": [ - "type", - "text" - ] - } - } - ] - } - }, - "required": [ - "type", - "content" - ] - } - ] - }, - "presence_penalty": { - "anyOf": [ - { - "type": "number", - "minimum": -2, - "maximum": 2 - }, - { - "type": "null" - } - ], - "default": 0, - "description": "Penalizes new tokens based on whether they appear in the text so far." - }, - "reasoning_effort": { - "anyOf": [ - { - "type": "string", - "enum": [ - "low", - "medium", - "high" - ] - }, - { - "type": "null" - } - ], - "description": "Constrains effort on reasoning for reasoning models (o1, o3-mini, etc.)." - }, - "chat_template_kwargs": { - "type": "object", - "properties": { - "thinking": { - "type": "boolean", - "default": true, - "description": "Whether to enable reasoning, enabled by default." - }, - "clear_thinking": { - "type": "boolean", - "default": false, - "description": "If false, preserves reasoning context between turns." - } - } - }, - "response_format": { - "anyOf": [ - { - "description": "Specifies the format the model must output.", - "oneOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "text" - ] - } - }, - "required": [ - "type" - ] - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_object" - ] - } - }, - "required": [ - "type" - ] - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_schema" - ] - }, - "json_schema": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "schema": { - "type": "object" - }, - "strict": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "name" - ] - } - }, - "required": [ - "type", - "json_schema" - ] - } - ] - } - ] - }, - "seed": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "description": "If specified, the system will make a best effort to sample deterministically." - }, - "service_tier": { - "anyOf": [ - { - "type": "string", - "enum": [ - "auto", - "default", - "flex", - "scale", - "priority" - ] - }, - { - "type": "null" - } - ], - "default": "auto", - "description": "Specifies the processing type used for serving the request." - }, - "stop": { - "description": "Up to 4 sequences where the API will stop generating further tokens.", - "anyOf": [ - { - "type": "null" - }, - { - "type": "string" - }, - { - "type": "array", - "items": { - "type": "string" - }, - "minItems": 1, - "maxItems": 4 - } - ] - }, - "store": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "default": false, - "description": "Whether to store the output for model distillation / evals." - }, - "stream": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "default": false, - "description": "If true, partial message deltas will be sent as server-sent events." - }, - "stream_options": { - "anyOf": [ - { - "type": "object", - "properties": { - "include_usage": { - "type": "boolean" - }, - "include_obfuscation": { - "type": "boolean" - } - } - } - ] - }, - "temperature": { - "anyOf": [ - { - "type": "number", - "minimum": 0, - "maximum": 2 - }, - { - "type": "null" - } - ], - "default": 1, - "description": "Sampling temperature between 0 and 2." - }, - "tool_choice": { - "anyOf": [ - { - "description": "Controls which (if any) tool is called by the model. 'none' = no tools, 'auto' = model decides, 'required' = must call a tool.", - "oneOf": [ - { - "type": "string", - "enum": [ - "none", - "auto", - "required" - ] - }, - { - "type": "object", - "description": "Force a specific function tool.", - "properties": { - "type": { - "type": "string", - "enum": [ - "function" - ] - }, - "function": { - "type": "object", - "properties": { - "name": { - "type": "string" - } - }, - "required": [ - "name" - ] - } - }, - "required": [ - "type", - "function" - ] - }, - { - "type": "object", - "description": "Force a specific custom tool.", - "properties": { - "type": { - "type": "string", - "enum": [ - "custom" - ] - }, - "custom": { - "type": "object", - "properties": { - "name": { - "type": "string" - } - }, - "required": [ - "name" - ] - } - }, - "required": [ - "type", - "custom" - ] - }, - { - "type": "object", - "description": "Constrain to an allowed subset of tools.", - "properties": { - "type": { - "type": "string", - "enum": [ - "allowed_tools" - ] - }, - "allowed_tools": { - "type": "object", - "properties": { - "mode": { - "type": "string", - "enum": [ - "auto", - "required" - ] - }, - "tools": { - "type": "array", - "items": { - "type": "object" - } - } - }, - "required": [ - "mode", - "tools" - ] - } - }, - "required": [ - "type", - "allowed_tools" - ] - } - ] - } - ] - }, - "tools": { - "type": "array", - "description": "A list of tools the model may call.", - "items": { - "oneOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "function" - ] - }, - "function": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The name of the function to be called." - }, - "description": { - "type": "string", - "description": "A description of what the function does." - }, - "parameters": { - "type": "object", - "description": "The parameters the function accepts, described as a JSON Schema object." - }, - "strict": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "default": false, - "description": "Whether to enable strict schema adherence." - } - }, - "required": [ - "name" - ] - } - }, - "required": [ - "type", - "function" - ] - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "custom" - ] - }, - "custom": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "format": { - "oneOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "text" - ] - } - }, - "required": [ - "type" - ] - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "grammar" - ] - }, - "grammar": { - "type": "object", - "properties": { - "definition": { - "type": "string" - }, - "syntax": { - "type": "string", - "enum": [ - "lark", - "regex" - ] - } - }, - "required": [ - "definition", - "syntax" - ] - } - }, - "required": [ - "type", - "grammar" - ] - } - ] - } - }, - "required": [ - "name" - ] - } - }, - "required": [ - "type", - "custom" - ] - } - ] - } - }, - "top_p": { - "anyOf": [ - { - "type": "number", - "minimum": 0, - "maximum": 1 - }, - { - "type": "null" - } - ], - "default": 1, - "description": "Nucleus sampling: considers the results of the tokens with top_p probability mass." - }, - "user": { - "type": "string", - "description": "A unique identifier representing your end-user, for abuse monitoring." - }, - "web_search_options": { - "anyOf": [ - { - "type": "object", - "description": "Options for the web search tool (when using built-in web search).", - "properties": { - "search_context_size": { - "type": "string", - "enum": [ - "low", - "medium", - "high" - ], - "default": "medium" - }, - "user_location": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "approximate" - ] - }, - "approximate": { - "type": "object", - "properties": { - "city": { - "type": "string" - }, - "country": { - "type": "string" - }, - "region": { - "type": "string" - }, - "timezone": { - "type": "string" - } - } - } - }, - "required": [ - "type", - "approximate" - ] - } - } - } - ] - }, - "function_call": { - "anyOf": [ - { - "type": "string", - "enum": [ - "none", - "auto" - ] - }, - { - "type": "object", - "properties": { - "name": { - "type": "string" - } - }, - "required": [ - "name" - ] - } - ] - }, - "functions": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The name of the function to be called." - }, - "description": { - "type": "string", - "description": "A description of what the function does." - }, - "parameters": { - "type": "object", - "description": "The parameters the function accepts, described as a JSON Schema object." - }, - "strict": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "default": false, - "description": "Whether to enable strict schema adherence." - } - }, - "required": [ - "name" - ] - }, - "minItems": 1, - "maxItems": 128 - } - }, - "required": [ - "messages" - ] - } - ] - } - } - } - } - ] - }, - "output": { - "oneOf": [ - { - "type": "object", - "contentType": "application/json", - "properties": { - "id": { - "type": "string", - "description": "A unique identifier for the chat completion." - }, - "object": { - "type": "string" - }, - "created": { - "type": "integer", - "description": "Unix timestamp (seconds) of when the completion was created." - }, - "model": { - "type": "string", - "description": "The model used for the chat completion." - }, - "choices": { - "type": "array", - "items": { - "anyOf": [ - { - "type": "object", - "properties": { - "index": { - "type": "integer" - }, - "message": { - "anyOf": [ - { - "type": "object", - "properties": { - "role": { - "type": "string", - "enum": [ - "assistant" - ] - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "refusal": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "annotations": { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "url_citation" - ] - }, - "url_citation": { - "type": "object", - "properties": { - "url": { - "type": "string" - }, - "title": { - "type": "string" - }, - "start_index": { - "type": "integer" - }, - "end_index": { - "type": "integer" - } - }, - "required": [ - "url", - "title", - "start_index", - "end_index" - ] - } - }, - "required": [ - "type", - "url_citation" - ] - } - }, - "audio": { - "anyOf": [ - { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "data": { - "type": "string", - "description": "Base64 encoded audio bytes." - }, - "expires_at": { - "type": "integer" - }, - "transcript": { - "type": "string" - } - }, - "required": [ - "id", - "data", - "expires_at", - "transcript" - ] - } - ] - }, - "tool_calls": { - "type": "array", - "items": { - "oneOf": [ - { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "function" - ] - }, - "function": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "arguments": { - "type": "string", - "description": "JSON-encoded arguments string." - } - }, - "required": [ - "name", - "arguments" - ] - } - }, - "required": [ - "id", - "type", - "function" - ] - }, - { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "custom" - ] - }, - "custom": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "input": { - "type": "string" - } - }, - "required": [ - "name", - "input" - ] - } - }, - "required": [ - "id", - "type", - "custom" - ] - } - ] - } - }, - "function_call": { - "anyOf": [ - { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "arguments": { - "type": "string" - } - }, - "required": [ - "name", - "arguments" - ] - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "role", - "content", - "refusal" - ] - } - ] - }, - "finish_reason": { - "type": "string", - "enum": [ - "stop", - "length", - "tool_calls", - "content_filter", - "function_call" - ] - }, - "logprobs": { - "anyOf": [ - { - "type": "object", - "properties": { - "content": { - "anyOf": [ - { - "type": "array", - "items": { - "type": "object", - "properties": { - "token": { - "type": "string" - }, - "logprob": { - "type": "number" - }, - "bytes": { - "anyOf": [ - { - "type": "array", - "items": { - "type": "integer" - } - }, - { - "type": "null" - } - ] - }, - "top_logprobs": { - "type": "array", - "items": { - "type": "object", - "properties": { - "token": { - "type": "string" - }, - "logprob": { - "type": "number" - }, - "bytes": { - "anyOf": [ - { - "type": "array", - "items": { - "type": "integer" - } - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "token", - "logprob", - "bytes" - ] - } - } - }, - "required": [ - "token", - "logprob", - "bytes", - "top_logprobs" - ] - } - }, - { - "type": "null" - } - ] - }, - "refusal": { - "anyOf": [ - { - "type": "array", - "items": { - "type": "object", - "properties": { - "token": { - "type": "string" - }, - "logprob": { - "type": "number" - }, - "bytes": { - "anyOf": [ - { - "type": "array", - "items": { - "type": "integer" - } - }, - { - "type": "null" - } - ] - }, - "top_logprobs": { - "type": "array", - "items": { - "type": "object", - "properties": { - "token": { - "type": "string" - }, - "logprob": { - "type": "number" - }, - "bytes": { - "anyOf": [ - { - "type": "array", - "items": { - "type": "integer" - } - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "token", - "logprob", - "bytes" - ] - } - } - }, - "required": [ - "token", - "logprob", - "bytes", - "top_logprobs" - ] - } - }, - { - "type": "null" - } - ] - } - } - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "index", - "message", - "finish_reason", - "logprobs" - ] - } - ] - }, - "minItems": 1 - }, - "usage": { - "anyOf": [ - { - "type": "object", - "properties": { - "prompt_tokens": { - "type": "integer" - }, - "completion_tokens": { - "type": "integer" - }, - "total_tokens": { - "type": "integer" - }, - "prompt_tokens_details": { - "type": "object", - "properties": { - "cached_tokens": { - "type": "integer" - }, - "audio_tokens": { - "type": "integer" - } - } - }, - "completion_tokens_details": { - "type": "object", - "properties": { - "reasoning_tokens": { - "type": "integer" - }, - "audio_tokens": { - "type": "integer" - }, - "accepted_prediction_tokens": { - "type": "integer" - }, - "rejected_prediction_tokens": { - "type": "integer" - } - } - } - }, - "required": [ - "prompt_tokens", - "completion_tokens", - "total_tokens" - ] - } - ] - }, - "system_fingerprint": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "service_tier": { - "anyOf": [ - { - "type": "string", - "enum": [ - "auto", - "default", - "flex", - "scale", - "priority" - ] - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "object", - "created", - "model", - "choices" - ] - }, - { - "type": "string", - "contentType": "text/event-stream", - "format": "binary" - } - ] - } - } -} \ No newline at end of file diff --git a/src/content/workers-ai-models/llama-2-13b-chat-awq.json b/src/content/workers-ai-models/llama-2-13b-chat-awq.json deleted file mode 100644 index 231fa04b905c684..000000000000000 --- a/src/content/workers-ai-models/llama-2-13b-chat-awq.json +++ /dev/null @@ -1,466 +0,0 @@ -{ - "id": "85c5a3c6-24b0-45e7-b23a-023182578822", - "source": 2, - "name": "@hf/thebloke/llama-2-13b-chat-awq", - "description": "Llama 2 13B Chat AWQ is an efficient, accurate and blazing-fast low-bit weight quantized Llama 2 variant.", - "task": { - "id": "c329a1f9-323d-4e91-b2aa-582dd4188d34", - "name": "Text Generation", - "description": "Family of generative text models, such as large language models (LLM), that can be adapted for a variety of natural language tasks." - }, - "created_at": "2023-11-24 00:27:15.869", - "tags": [], - "properties": [ - { - "property_id": "beta", - "value": "true" - }, - { - "property_id": "context_window", - "value": "4096" - }, - { - "property_id": "info", - "value": "https://huggingface.co/TheBloke/Llama-2-13B-chat-AWQ" - }, - { - "property_id": "planned_deprecation_date", - "value": "2025-10-01" - } - ], - "schema": { - "input": { - "type": "object", - "oneOf": [ - { - "title": "Prompt", - "properties": { - "prompt": { - "type": "string", - "minLength": 1, - "description": "The input text prompt for the model to generate a response." - }, - "lora": { - "type": "string", - "description": "Name of the LoRA (Low-Rank Adaptation) model to fine-tune the base model." - }, - "response_format": { - "title": "JSON Mode", - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_object", - "json_schema" - ] - }, - "json_schema": {} - } - }, - "raw": { - "type": "boolean", - "default": false, - "description": "If true, a chat template is not applied and you must adhere to the specific model's expected formatting." - }, - "stream": { - "type": "boolean", - "default": false, - "description": "If true, the response will be streamed back incrementally using SSE, Server Sent Events." - }, - "max_tokens": { - "type": "integer", - "default": 256, - "description": "The maximum number of tokens to generate in the response." - }, - "temperature": { - "type": "number", - "default": 0.6, - "minimum": 0, - "maximum": 5, - "description": "Controls the randomness of the output; higher values produce more random results." - }, - "top_p": { - "type": "number", - "minimum": 0.001, - "maximum": 1, - "description": "Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses." - }, - "top_k": { - "type": "integer", - "minimum": 1, - "maximum": 50, - "description": "Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises." - }, - "seed": { - "type": "integer", - "minimum": 1, - "maximum": 9999999999, - "description": "Random seed for reproducibility of the generation." - }, - "repetition_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Penalty for repeated tokens; higher values discourage repetition." - }, - "frequency_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Decreases the likelihood of the model repeating the same lines verbatim." - }, - "presence_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Increases the likelihood of the model introducing new topics." - } - }, - "required": [ - "prompt" - ] - }, - { - "title": "Messages", - "properties": { - "messages": { - "type": "array", - "description": "An array of message objects representing the conversation history.", - "items": { - "type": "object", - "properties": { - "role": { - "type": "string", - "description": "The role of the message sender (e.g., 'user', 'assistant', 'system', 'tool')." - }, - "content": { - "oneOf": [ - { - "type": "string", - "description": "The content of the message as a string." - }, - { - "type": "array", - "description": "Array of text content parts.", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "Type of the content (text)" - }, - "text": { - "type": "string", - "description": "Text content" - } - } - } - } - ] - } - }, - "required": [ - "role", - "content" - ] - } - }, - "functions": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "code": { - "type": "string" - } - }, - "required": [ - "name", - "code" - ] - } - }, - "tools": { - "type": "array", - "description": "A list of tools available for the assistant to use.", - "items": { - "type": "object", - "oneOf": [ - { - "properties": { - "name": { - "type": "string", - "description": "The name of the tool. More descriptive the better." - }, - "description": { - "type": "string", - "description": "A brief description of what the tool does." - }, - "parameters": { - "type": "object", - "description": "Schema defining the parameters accepted by the tool.", - "properties": { - "type": { - "type": "string", - "description": "The type of the parameters object (usually 'object')." - }, - "required": { - "type": "array", - "description": "List of required parameter names.", - "items": { - "type": "string" - } - }, - "properties": { - "type": "object", - "description": "Definitions of each parameter.", - "additionalProperties": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The data type of the parameter." - }, - "description": { - "type": "string", - "description": "A description of the expected parameter." - } - }, - "required": [ - "type", - "description" - ] - } - } - }, - "required": [ - "type", - "properties" - ] - } - }, - "required": [ - "name", - "description", - "parameters" - ] - }, - { - "properties": { - "type": { - "type": "string", - "description": "Specifies the type of tool (e.g., 'function')." - }, - "function": { - "type": "object", - "description": "Details of the function tool.", - "properties": { - "name": { - "type": "string", - "description": "The name of the function." - }, - "description": { - "type": "string", - "description": "A brief description of what the function does." - }, - "parameters": { - "type": "object", - "description": "Schema defining the parameters accepted by the function.", - "properties": { - "type": { - "type": "string", - "description": "The type of the parameters object (usually 'object')." - }, - "required": { - "type": "array", - "description": "List of required parameter names.", - "items": { - "type": "string" - } - }, - "properties": { - "type": "object", - "description": "Definitions of each parameter.", - "additionalProperties": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The data type of the parameter." - }, - "description": { - "type": "string", - "description": "A description of the expected parameter." - } - }, - "required": [ - "type", - "description" - ] - } - } - }, - "required": [ - "type", - "properties" - ] - } - }, - "required": [ - "name", - "description", - "parameters" - ] - } - }, - "required": [ - "type", - "function" - ] - } - ] - } - }, - "response_format": { - "title": "JSON Mode", - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_object", - "json_schema" - ] - }, - "json_schema": {} - } - }, - "raw": { - "type": "boolean", - "default": false, - "description": "If true, a chat template is not applied and you must adhere to the specific model's expected formatting." - }, - "stream": { - "type": "boolean", - "default": false, - "description": "If true, the response will be streamed back incrementally using SSE, Server Sent Events." - }, - "max_tokens": { - "type": "integer", - "default": 256, - "description": "The maximum number of tokens to generate in the response." - }, - "temperature": { - "type": "number", - "default": 0.6, - "minimum": 0, - "maximum": 5, - "description": "Controls the randomness of the output; higher values produce more random results." - }, - "top_p": { - "type": "number", - "minimum": 0.001, - "maximum": 1, - "description": "Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses." - }, - "top_k": { - "type": "integer", - "minimum": 1, - "maximum": 50, - "description": "Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises." - }, - "seed": { - "type": "integer", - "minimum": 1, - "maximum": 9999999999, - "description": "Random seed for reproducibility of the generation." - }, - "repetition_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Penalty for repeated tokens; higher values discourage repetition." - }, - "frequency_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Decreases the likelihood of the model repeating the same lines verbatim." - }, - "presence_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Increases the likelihood of the model introducing new topics." - } - }, - "required": [ - "messages" - ] - } - ] - }, - "output": { - "oneOf": [ - { - "type": "object", - "properties": { - "response": { - "type": "string", - "description": "The generated text response from the model" - }, - "usage": { - "type": "object", - "description": "Usage statistics for the inference request", - "properties": { - "prompt_tokens": { - "type": "number", - "description": "Total number of tokens in input", - "default": 0 - }, - "completion_tokens": { - "type": "number", - "description": "Total number of tokens in output", - "default": 0 - }, - "total_tokens": { - "type": "number", - "description": "Total number of input and output tokens", - "default": 0 - } - } - }, - "tool_calls": { - "type": "array", - "description": "An array of tool calls requests made during the response generation", - "items": { - "type": "object", - "properties": { - "arguments": { - "type": "object", - "description": "The arguments passed to be passed to the tool call request" - }, - "name": { - "type": "string", - "description": "The name of the tool to be called" - } - } - } - } - }, - "required": [ - "response" - ] - }, - { - "type": "string", - "format": "binary" - } - ] - } - } -} \ No newline at end of file diff --git a/src/content/workers-ai-models/llama-2-7b-chat-fp16.json b/src/content/workers-ai-models/llama-2-7b-chat-fp16.json deleted file mode 100644 index 455960c93e9aded..000000000000000 --- a/src/content/workers-ai-models/llama-2-7b-chat-fp16.json +++ /dev/null @@ -1,477 +0,0 @@ -{ - "id": "ca54bcd6-0d98-4739-9b3b-5c8b4402193d", - "source": 1, - "name": "@cf/meta/llama-2-7b-chat-fp16", - "description": "Full precision (fp16) generative text model with 7 billion parameters from Meta", - "task": { - "id": "c329a1f9-323d-4e91-b2aa-582dd4188d34", - "name": "Text Generation", - "description": "Family of generative text models, such as large language models (LLM), that can be adapted for a variety of natural language tasks." - }, - "created_at": "2023-11-07 11:54:20.229", - "tags": [], - "properties": [ - { - "property_id": "price", - "value": [ - { - "unit": "per M input tokens", - "price": 0.56, - "currency": "USD" - }, - { - "unit": "per M output tokens", - "price": 6.67, - "currency": "USD" - } - ] - }, - { - "property_id": "context_window", - "value": "4096" - }, - { - "property_id": "info", - "value": "https://ai.meta.com/llama/" - }, - { - "property_id": "terms", - "value": "https://ai.meta.com/resources/models-and-libraries/llama-downloads/" - } - ], - "schema": { - "input": { - "type": "object", - "oneOf": [ - { - "title": "Prompt", - "properties": { - "prompt": { - "type": "string", - "minLength": 1, - "description": "The input text prompt for the model to generate a response." - }, - "lora": { - "type": "string", - "description": "Name of the LoRA (Low-Rank Adaptation) model to fine-tune the base model." - }, - "response_format": { - "title": "JSON Mode", - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_object", - "json_schema" - ] - }, - "json_schema": {} - } - }, - "raw": { - "type": "boolean", - "default": false, - "description": "If true, a chat template is not applied and you must adhere to the specific model's expected formatting." - }, - "stream": { - "type": "boolean", - "default": false, - "description": "If true, the response will be streamed back incrementally using SSE, Server Sent Events." - }, - "max_tokens": { - "type": "integer", - "default": 256, - "description": "The maximum number of tokens to generate in the response." - }, - "temperature": { - "type": "number", - "default": 0.6, - "minimum": 0, - "maximum": 5, - "description": "Controls the randomness of the output; higher values produce more random results." - }, - "top_p": { - "type": "number", - "minimum": 0.001, - "maximum": 1, - "description": "Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses." - }, - "top_k": { - "type": "integer", - "minimum": 1, - "maximum": 50, - "description": "Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises." - }, - "seed": { - "type": "integer", - "minimum": 1, - "maximum": 9999999999, - "description": "Random seed for reproducibility of the generation." - }, - "repetition_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Penalty for repeated tokens; higher values discourage repetition." - }, - "frequency_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Decreases the likelihood of the model repeating the same lines verbatim." - }, - "presence_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Increases the likelihood of the model introducing new topics." - } - }, - "required": [ - "prompt" - ] - }, - { - "title": "Messages", - "properties": { - "messages": { - "type": "array", - "description": "An array of message objects representing the conversation history.", - "items": { - "type": "object", - "properties": { - "role": { - "type": "string", - "description": "The role of the message sender (e.g., 'user', 'assistant', 'system', 'tool')." - }, - "content": { - "oneOf": [ - { - "type": "string", - "description": "The content of the message as a string." - }, - { - "type": "array", - "description": "Array of text content parts.", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "Type of the content (text)" - }, - "text": { - "type": "string", - "description": "Text content" - } - } - } - } - ] - } - }, - "required": [ - "role", - "content" - ] - } - }, - "functions": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "code": { - "type": "string" - } - }, - "required": [ - "name", - "code" - ] - } - }, - "tools": { - "type": "array", - "description": "A list of tools available for the assistant to use.", - "items": { - "type": "object", - "oneOf": [ - { - "properties": { - "name": { - "type": "string", - "description": "The name of the tool. More descriptive the better." - }, - "description": { - "type": "string", - "description": "A brief description of what the tool does." - }, - "parameters": { - "type": "object", - "description": "Schema defining the parameters accepted by the tool.", - "properties": { - "type": { - "type": "string", - "description": "The type of the parameters object (usually 'object')." - }, - "required": { - "type": "array", - "description": "List of required parameter names.", - "items": { - "type": "string" - } - }, - "properties": { - "type": "object", - "description": "Definitions of each parameter.", - "additionalProperties": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The data type of the parameter." - }, - "description": { - "type": "string", - "description": "A description of the expected parameter." - } - }, - "required": [ - "type", - "description" - ] - } - } - }, - "required": [ - "type", - "properties" - ] - } - }, - "required": [ - "name", - "description", - "parameters" - ] - }, - { - "properties": { - "type": { - "type": "string", - "description": "Specifies the type of tool (e.g., 'function')." - }, - "function": { - "type": "object", - "description": "Details of the function tool.", - "properties": { - "name": { - "type": "string", - "description": "The name of the function." - }, - "description": { - "type": "string", - "description": "A brief description of what the function does." - }, - "parameters": { - "type": "object", - "description": "Schema defining the parameters accepted by the function.", - "properties": { - "type": { - "type": "string", - "description": "The type of the parameters object (usually 'object')." - }, - "required": { - "type": "array", - "description": "List of required parameter names.", - "items": { - "type": "string" - } - }, - "properties": { - "type": "object", - "description": "Definitions of each parameter.", - "additionalProperties": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The data type of the parameter." - }, - "description": { - "type": "string", - "description": "A description of the expected parameter." - } - }, - "required": [ - "type", - "description" - ] - } - } - }, - "required": [ - "type", - "properties" - ] - } - }, - "required": [ - "name", - "description", - "parameters" - ] - } - }, - "required": [ - "type", - "function" - ] - } - ] - } - }, - "response_format": { - "title": "JSON Mode", - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_object", - "json_schema" - ] - }, - "json_schema": {} - } - }, - "raw": { - "type": "boolean", - "default": false, - "description": "If true, a chat template is not applied and you must adhere to the specific model's expected formatting." - }, - "stream": { - "type": "boolean", - "default": false, - "description": "If true, the response will be streamed back incrementally using SSE, Server Sent Events." - }, - "max_tokens": { - "type": "integer", - "default": 256, - "description": "The maximum number of tokens to generate in the response." - }, - "temperature": { - "type": "number", - "default": 0.6, - "minimum": 0, - "maximum": 5, - "description": "Controls the randomness of the output; higher values produce more random results." - }, - "top_p": { - "type": "number", - "minimum": 0.001, - "maximum": 1, - "description": "Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses." - }, - "top_k": { - "type": "integer", - "minimum": 1, - "maximum": 50, - "description": "Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises." - }, - "seed": { - "type": "integer", - "minimum": 1, - "maximum": 9999999999, - "description": "Random seed for reproducibility of the generation." - }, - "repetition_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Penalty for repeated tokens; higher values discourage repetition." - }, - "frequency_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Decreases the likelihood of the model repeating the same lines verbatim." - }, - "presence_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Increases the likelihood of the model introducing new topics." - } - }, - "required": [ - "messages" - ] - } - ] - }, - "output": { - "oneOf": [ - { - "type": "object", - "properties": { - "response": { - "type": "string", - "description": "The generated text response from the model" - }, - "usage": { - "type": "object", - "description": "Usage statistics for the inference request", - "properties": { - "prompt_tokens": { - "type": "number", - "description": "Total number of tokens in input", - "default": 0 - }, - "completion_tokens": { - "type": "number", - "description": "Total number of tokens in output", - "default": 0 - }, - "total_tokens": { - "type": "number", - "description": "Total number of input and output tokens", - "default": 0 - } - } - }, - "tool_calls": { - "type": "array", - "description": "An array of tool calls requests made during the response generation", - "items": { - "type": "object", - "properties": { - "arguments": { - "type": "object", - "description": "The arguments passed to be passed to the tool call request" - }, - "name": { - "type": "string", - "description": "The name of the tool to be called" - } - } - } - } - }, - "required": [ - "response" - ] - }, - { - "type": "string", - "format": "binary" - } - ] - } - } -} \ No newline at end of file diff --git a/src/content/workers-ai-models/llama-2-7b-chat-hf-lora.json b/src/content/workers-ai-models/llama-2-7b-chat-hf-lora.json deleted file mode 100644 index 94568c0cecee312..000000000000000 --- a/src/content/workers-ai-models/llama-2-7b-chat-hf-lora.json +++ /dev/null @@ -1,462 +0,0 @@ -{ - "id": "7ed8d8e8-6040-4680-843a-aef402d6b013", - "source": 1, - "name": "@cf/meta-llama/llama-2-7b-chat-hf-lora", - "description": "This is a Llama2 base model that Cloudflare dedicated for inference with LoRA adapters. Llama 2 is a collection of pretrained and fine-tuned generative text models ranging in scale from 7 billion to 70 billion parameters. This is the repository for the 7B fine-tuned model, optimized for dialogue use cases and converted for the Hugging Face Transformers format. ", - "task": { - "id": "c329a1f9-323d-4e91-b2aa-582dd4188d34", - "name": "Text Generation", - "description": "Family of generative text models, such as large language models (LLM), that can be adapted for a variety of natural language tasks." - }, - "created_at": "2024-04-02 00:17:18.579", - "tags": [], - "properties": [ - { - "property_id": "beta", - "value": "true" - }, - { - "property_id": "context_window", - "value": "8192" - }, - { - "property_id": "lora", - "value": "true" - } - ], - "schema": { - "input": { - "type": "object", - "oneOf": [ - { - "title": "Prompt", - "properties": { - "prompt": { - "type": "string", - "minLength": 1, - "description": "The input text prompt for the model to generate a response." - }, - "lora": { - "type": "string", - "description": "Name of the LoRA (Low-Rank Adaptation) model to fine-tune the base model." - }, - "response_format": { - "title": "JSON Mode", - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_object", - "json_schema" - ] - }, - "json_schema": {} - } - }, - "raw": { - "type": "boolean", - "default": false, - "description": "If true, a chat template is not applied and you must adhere to the specific model's expected formatting." - }, - "stream": { - "type": "boolean", - "default": false, - "description": "If true, the response will be streamed back incrementally using SSE, Server Sent Events." - }, - "max_tokens": { - "type": "integer", - "default": 256, - "description": "The maximum number of tokens to generate in the response." - }, - "temperature": { - "type": "number", - "default": 0.6, - "minimum": 0, - "maximum": 5, - "description": "Controls the randomness of the output; higher values produce more random results." - }, - "top_p": { - "type": "number", - "minimum": 0.001, - "maximum": 1, - "description": "Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses." - }, - "top_k": { - "type": "integer", - "minimum": 1, - "maximum": 50, - "description": "Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises." - }, - "seed": { - "type": "integer", - "minimum": 1, - "maximum": 9999999999, - "description": "Random seed for reproducibility of the generation." - }, - "repetition_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Penalty for repeated tokens; higher values discourage repetition." - }, - "frequency_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Decreases the likelihood of the model repeating the same lines verbatim." - }, - "presence_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Increases the likelihood of the model introducing new topics." - } - }, - "required": [ - "prompt" - ] - }, - { - "title": "Messages", - "properties": { - "messages": { - "type": "array", - "description": "An array of message objects representing the conversation history.", - "items": { - "type": "object", - "properties": { - "role": { - "type": "string", - "description": "The role of the message sender (e.g., 'user', 'assistant', 'system', 'tool')." - }, - "content": { - "oneOf": [ - { - "type": "string", - "description": "The content of the message as a string." - }, - { - "type": "array", - "description": "Array of text content parts.", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "Type of the content (text)" - }, - "text": { - "type": "string", - "description": "Text content" - } - } - } - } - ] - } - }, - "required": [ - "role", - "content" - ] - } - }, - "functions": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "code": { - "type": "string" - } - }, - "required": [ - "name", - "code" - ] - } - }, - "tools": { - "type": "array", - "description": "A list of tools available for the assistant to use.", - "items": { - "type": "object", - "oneOf": [ - { - "properties": { - "name": { - "type": "string", - "description": "The name of the tool. More descriptive the better." - }, - "description": { - "type": "string", - "description": "A brief description of what the tool does." - }, - "parameters": { - "type": "object", - "description": "Schema defining the parameters accepted by the tool.", - "properties": { - "type": { - "type": "string", - "description": "The type of the parameters object (usually 'object')." - }, - "required": { - "type": "array", - "description": "List of required parameter names.", - "items": { - "type": "string" - } - }, - "properties": { - "type": "object", - "description": "Definitions of each parameter.", - "additionalProperties": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The data type of the parameter." - }, - "description": { - "type": "string", - "description": "A description of the expected parameter." - } - }, - "required": [ - "type", - "description" - ] - } - } - }, - "required": [ - "type", - "properties" - ] - } - }, - "required": [ - "name", - "description", - "parameters" - ] - }, - { - "properties": { - "type": { - "type": "string", - "description": "Specifies the type of tool (e.g., 'function')." - }, - "function": { - "type": "object", - "description": "Details of the function tool.", - "properties": { - "name": { - "type": "string", - "description": "The name of the function." - }, - "description": { - "type": "string", - "description": "A brief description of what the function does." - }, - "parameters": { - "type": "object", - "description": "Schema defining the parameters accepted by the function.", - "properties": { - "type": { - "type": "string", - "description": "The type of the parameters object (usually 'object')." - }, - "required": { - "type": "array", - "description": "List of required parameter names.", - "items": { - "type": "string" - } - }, - "properties": { - "type": "object", - "description": "Definitions of each parameter.", - "additionalProperties": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The data type of the parameter." - }, - "description": { - "type": "string", - "description": "A description of the expected parameter." - } - }, - "required": [ - "type", - "description" - ] - } - } - }, - "required": [ - "type", - "properties" - ] - } - }, - "required": [ - "name", - "description", - "parameters" - ] - } - }, - "required": [ - "type", - "function" - ] - } - ] - } - }, - "response_format": { - "title": "JSON Mode", - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_object", - "json_schema" - ] - }, - "json_schema": {} - } - }, - "raw": { - "type": "boolean", - "default": false, - "description": "If true, a chat template is not applied and you must adhere to the specific model's expected formatting." - }, - "stream": { - "type": "boolean", - "default": false, - "description": "If true, the response will be streamed back incrementally using SSE, Server Sent Events." - }, - "max_tokens": { - "type": "integer", - "default": 256, - "description": "The maximum number of tokens to generate in the response." - }, - "temperature": { - "type": "number", - "default": 0.6, - "minimum": 0, - "maximum": 5, - "description": "Controls the randomness of the output; higher values produce more random results." - }, - "top_p": { - "type": "number", - "minimum": 0.001, - "maximum": 1, - "description": "Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses." - }, - "top_k": { - "type": "integer", - "minimum": 1, - "maximum": 50, - "description": "Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises." - }, - "seed": { - "type": "integer", - "minimum": 1, - "maximum": 9999999999, - "description": "Random seed for reproducibility of the generation." - }, - "repetition_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Penalty for repeated tokens; higher values discourage repetition." - }, - "frequency_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Decreases the likelihood of the model repeating the same lines verbatim." - }, - "presence_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Increases the likelihood of the model introducing new topics." - } - }, - "required": [ - "messages" - ] - } - ] - }, - "output": { - "oneOf": [ - { - "type": "object", - "properties": { - "response": { - "type": "string", - "description": "The generated text response from the model" - }, - "usage": { - "type": "object", - "description": "Usage statistics for the inference request", - "properties": { - "prompt_tokens": { - "type": "number", - "description": "Total number of tokens in input", - "default": 0 - }, - "completion_tokens": { - "type": "number", - "description": "Total number of tokens in output", - "default": 0 - }, - "total_tokens": { - "type": "number", - "description": "Total number of input and output tokens", - "default": 0 - } - } - }, - "tool_calls": { - "type": "array", - "description": "An array of tool calls requests made during the response generation", - "items": { - "type": "object", - "properties": { - "arguments": { - "type": "object", - "description": "The arguments passed to be passed to the tool call request" - }, - "name": { - "type": "string", - "description": "The name of the tool to be called" - } - } - } - } - }, - "required": [ - "response" - ] - }, - { - "type": "string", - "format": "binary" - } - ] - } - } -} \ No newline at end of file diff --git a/src/content/workers-ai-models/llama-2-7b-chat-int8.json b/src/content/workers-ai-models/llama-2-7b-chat-int8.json deleted file mode 100644 index b3f5afd4f0a69ae..000000000000000 --- a/src/content/workers-ai-models/llama-2-7b-chat-int8.json +++ /dev/null @@ -1,454 +0,0 @@ -{ - "id": "9c95c39d-45b3-4163-9631-22f0c0dc3b14", - "source": 1, - "name": "@cf/meta/llama-2-7b-chat-int8", - "description": "Quantized (int8) generative text model with 7 billion parameters from Meta", - "task": { - "id": "c329a1f9-323d-4e91-b2aa-582dd4188d34", - "name": "Text Generation", - "description": "Family of generative text models, such as large language models (LLM), that can be adapted for a variety of natural language tasks." - }, - "created_at": "2023-09-25 19:21:11.898", - "tags": [], - "properties": [ - { - "property_id": "context_window", - "value": "8192" - } - ], - "schema": { - "input": { - "type": "object", - "oneOf": [ - { - "title": "Prompt", - "properties": { - "prompt": { - "type": "string", - "minLength": 1, - "description": "The input text prompt for the model to generate a response." - }, - "lora": { - "type": "string", - "description": "Name of the LoRA (Low-Rank Adaptation) model to fine-tune the base model." - }, - "response_format": { - "title": "JSON Mode", - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_object", - "json_schema" - ] - }, - "json_schema": {} - } - }, - "raw": { - "type": "boolean", - "default": false, - "description": "If true, a chat template is not applied and you must adhere to the specific model's expected formatting." - }, - "stream": { - "type": "boolean", - "default": false, - "description": "If true, the response will be streamed back incrementally using SSE, Server Sent Events." - }, - "max_tokens": { - "type": "integer", - "default": 256, - "description": "The maximum number of tokens to generate in the response." - }, - "temperature": { - "type": "number", - "default": 0.6, - "minimum": 0, - "maximum": 5, - "description": "Controls the randomness of the output; higher values produce more random results." - }, - "top_p": { - "type": "number", - "minimum": 0.001, - "maximum": 1, - "description": "Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses." - }, - "top_k": { - "type": "integer", - "minimum": 1, - "maximum": 50, - "description": "Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises." - }, - "seed": { - "type": "integer", - "minimum": 1, - "maximum": 9999999999, - "description": "Random seed for reproducibility of the generation." - }, - "repetition_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Penalty for repeated tokens; higher values discourage repetition." - }, - "frequency_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Decreases the likelihood of the model repeating the same lines verbatim." - }, - "presence_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Increases the likelihood of the model introducing new topics." - } - }, - "required": [ - "prompt" - ] - }, - { - "title": "Messages", - "properties": { - "messages": { - "type": "array", - "description": "An array of message objects representing the conversation history.", - "items": { - "type": "object", - "properties": { - "role": { - "type": "string", - "description": "The role of the message sender (e.g., 'user', 'assistant', 'system', 'tool')." - }, - "content": { - "oneOf": [ - { - "type": "string", - "description": "The content of the message as a string." - }, - { - "type": "array", - "description": "Array of text content parts.", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "Type of the content (text)" - }, - "text": { - "type": "string", - "description": "Text content" - } - } - } - } - ] - } - }, - "required": [ - "role", - "content" - ] - } - }, - "functions": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "code": { - "type": "string" - } - }, - "required": [ - "name", - "code" - ] - } - }, - "tools": { - "type": "array", - "description": "A list of tools available for the assistant to use.", - "items": { - "type": "object", - "oneOf": [ - { - "properties": { - "name": { - "type": "string", - "description": "The name of the tool. More descriptive the better." - }, - "description": { - "type": "string", - "description": "A brief description of what the tool does." - }, - "parameters": { - "type": "object", - "description": "Schema defining the parameters accepted by the tool.", - "properties": { - "type": { - "type": "string", - "description": "The type of the parameters object (usually 'object')." - }, - "required": { - "type": "array", - "description": "List of required parameter names.", - "items": { - "type": "string" - } - }, - "properties": { - "type": "object", - "description": "Definitions of each parameter.", - "additionalProperties": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The data type of the parameter." - }, - "description": { - "type": "string", - "description": "A description of the expected parameter." - } - }, - "required": [ - "type", - "description" - ] - } - } - }, - "required": [ - "type", - "properties" - ] - } - }, - "required": [ - "name", - "description", - "parameters" - ] - }, - { - "properties": { - "type": { - "type": "string", - "description": "Specifies the type of tool (e.g., 'function')." - }, - "function": { - "type": "object", - "description": "Details of the function tool.", - "properties": { - "name": { - "type": "string", - "description": "The name of the function." - }, - "description": { - "type": "string", - "description": "A brief description of what the function does." - }, - "parameters": { - "type": "object", - "description": "Schema defining the parameters accepted by the function.", - "properties": { - "type": { - "type": "string", - "description": "The type of the parameters object (usually 'object')." - }, - "required": { - "type": "array", - "description": "List of required parameter names.", - "items": { - "type": "string" - } - }, - "properties": { - "type": "object", - "description": "Definitions of each parameter.", - "additionalProperties": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The data type of the parameter." - }, - "description": { - "type": "string", - "description": "A description of the expected parameter." - } - }, - "required": [ - "type", - "description" - ] - } - } - }, - "required": [ - "type", - "properties" - ] - } - }, - "required": [ - "name", - "description", - "parameters" - ] - } - }, - "required": [ - "type", - "function" - ] - } - ] - } - }, - "response_format": { - "title": "JSON Mode", - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_object", - "json_schema" - ] - }, - "json_schema": {} - } - }, - "raw": { - "type": "boolean", - "default": false, - "description": "If true, a chat template is not applied and you must adhere to the specific model's expected formatting." - }, - "stream": { - "type": "boolean", - "default": false, - "description": "If true, the response will be streamed back incrementally using SSE, Server Sent Events." - }, - "max_tokens": { - "type": "integer", - "default": 256, - "description": "The maximum number of tokens to generate in the response." - }, - "temperature": { - "type": "number", - "default": 0.6, - "minimum": 0, - "maximum": 5, - "description": "Controls the randomness of the output; higher values produce more random results." - }, - "top_p": { - "type": "number", - "minimum": 0.001, - "maximum": 1, - "description": "Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses." - }, - "top_k": { - "type": "integer", - "minimum": 1, - "maximum": 50, - "description": "Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises." - }, - "seed": { - "type": "integer", - "minimum": 1, - "maximum": 9999999999, - "description": "Random seed for reproducibility of the generation." - }, - "repetition_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Penalty for repeated tokens; higher values discourage repetition." - }, - "frequency_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Decreases the likelihood of the model repeating the same lines verbatim." - }, - "presence_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Increases the likelihood of the model introducing new topics." - } - }, - "required": [ - "messages" - ] - } - ] - }, - "output": { - "oneOf": [ - { - "type": "object", - "properties": { - "response": { - "type": "string", - "description": "The generated text response from the model" - }, - "usage": { - "type": "object", - "description": "Usage statistics for the inference request", - "properties": { - "prompt_tokens": { - "type": "number", - "description": "Total number of tokens in input", - "default": 0 - }, - "completion_tokens": { - "type": "number", - "description": "Total number of tokens in output", - "default": 0 - }, - "total_tokens": { - "type": "number", - "description": "Total number of input and output tokens", - "default": 0 - } - } - }, - "tool_calls": { - "type": "array", - "description": "An array of tool calls requests made during the response generation", - "items": { - "type": "object", - "properties": { - "arguments": { - "type": "object", - "description": "The arguments passed to be passed to the tool call request" - }, - "name": { - "type": "string", - "description": "The name of the tool to be called" - } - } - } - } - }, - "required": [ - "response" - ] - }, - { - "type": "string", - "format": "binary" - } - ] - } - } -} \ No newline at end of file diff --git a/src/content/workers-ai-models/llama-3-8b-instruct-awq.json b/src/content/workers-ai-models/llama-3-8b-instruct-awq.json deleted file mode 100644 index 0ae060ac61c9ced..000000000000000 --- a/src/content/workers-ai-models/llama-3-8b-instruct-awq.json +++ /dev/null @@ -1,477 +0,0 @@ -{ - "id": "31097538-a3ff-4e6e-bb56-ad0e1f428b61", - "source": 1, - "name": "@cf/meta/llama-3-8b-instruct-awq", - "description": "Quantized (int4) generative text model with 8 billion parameters from Meta.", - "task": { - "id": "c329a1f9-323d-4e91-b2aa-582dd4188d34", - "name": "Text Generation", - "description": "Family of generative text models, such as large language models (LLM), that can be adapted for a variety of natural language tasks." - }, - "created_at": "2024-05-09 23:32:47.584", - "tags": [], - "properties": [ - { - "property_id": "price", - "value": [ - { - "unit": "per M input tokens", - "price": 0.12, - "currency": "USD" - }, - { - "unit": "per M output tokens", - "price": 0.27, - "currency": "USD" - } - ] - }, - { - "property_id": "context_window", - "value": "8192" - }, - { - "property_id": "info", - "value": "https://llama.meta.com" - }, - { - "property_id": "terms", - "value": "https://llama.meta.com/llama3/license/#" - } - ], - "schema": { - "input": { - "type": "object", - "oneOf": [ - { - "title": "Prompt", - "properties": { - "prompt": { - "type": "string", - "minLength": 1, - "description": "The input text prompt for the model to generate a response." - }, - "lora": { - "type": "string", - "description": "Name of the LoRA (Low-Rank Adaptation) model to fine-tune the base model." - }, - "response_format": { - "title": "JSON Mode", - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_object", - "json_schema" - ] - }, - "json_schema": {} - } - }, - "raw": { - "type": "boolean", - "default": false, - "description": "If true, a chat template is not applied and you must adhere to the specific model's expected formatting." - }, - "stream": { - "type": "boolean", - "default": false, - "description": "If true, the response will be streamed back incrementally using SSE, Server Sent Events." - }, - "max_tokens": { - "type": "integer", - "default": 256, - "description": "The maximum number of tokens to generate in the response." - }, - "temperature": { - "type": "number", - "default": 0.6, - "minimum": 0, - "maximum": 5, - "description": "Controls the randomness of the output; higher values produce more random results." - }, - "top_p": { - "type": "number", - "minimum": 0.001, - "maximum": 1, - "description": "Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses." - }, - "top_k": { - "type": "integer", - "minimum": 1, - "maximum": 50, - "description": "Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises." - }, - "seed": { - "type": "integer", - "minimum": 1, - "maximum": 9999999999, - "description": "Random seed for reproducibility of the generation." - }, - "repetition_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Penalty for repeated tokens; higher values discourage repetition." - }, - "frequency_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Decreases the likelihood of the model repeating the same lines verbatim." - }, - "presence_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Increases the likelihood of the model introducing new topics." - } - }, - "required": [ - "prompt" - ] - }, - { - "title": "Messages", - "properties": { - "messages": { - "type": "array", - "description": "An array of message objects representing the conversation history.", - "items": { - "type": "object", - "properties": { - "role": { - "type": "string", - "description": "The role of the message sender (e.g., 'user', 'assistant', 'system', 'tool')." - }, - "content": { - "oneOf": [ - { - "type": "string", - "description": "The content of the message as a string." - }, - { - "type": "array", - "description": "Array of text content parts.", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "Type of the content (text)" - }, - "text": { - "type": "string", - "description": "Text content" - } - } - } - } - ] - } - }, - "required": [ - "role", - "content" - ] - } - }, - "functions": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "code": { - "type": "string" - } - }, - "required": [ - "name", - "code" - ] - } - }, - "tools": { - "type": "array", - "description": "A list of tools available for the assistant to use.", - "items": { - "type": "object", - "oneOf": [ - { - "properties": { - "name": { - "type": "string", - "description": "The name of the tool. More descriptive the better." - }, - "description": { - "type": "string", - "description": "A brief description of what the tool does." - }, - "parameters": { - "type": "object", - "description": "Schema defining the parameters accepted by the tool.", - "properties": { - "type": { - "type": "string", - "description": "The type of the parameters object (usually 'object')." - }, - "required": { - "type": "array", - "description": "List of required parameter names.", - "items": { - "type": "string" - } - }, - "properties": { - "type": "object", - "description": "Definitions of each parameter.", - "additionalProperties": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The data type of the parameter." - }, - "description": { - "type": "string", - "description": "A description of the expected parameter." - } - }, - "required": [ - "type", - "description" - ] - } - } - }, - "required": [ - "type", - "properties" - ] - } - }, - "required": [ - "name", - "description", - "parameters" - ] - }, - { - "properties": { - "type": { - "type": "string", - "description": "Specifies the type of tool (e.g., 'function')." - }, - "function": { - "type": "object", - "description": "Details of the function tool.", - "properties": { - "name": { - "type": "string", - "description": "The name of the function." - }, - "description": { - "type": "string", - "description": "A brief description of what the function does." - }, - "parameters": { - "type": "object", - "description": "Schema defining the parameters accepted by the function.", - "properties": { - "type": { - "type": "string", - "description": "The type of the parameters object (usually 'object')." - }, - "required": { - "type": "array", - "description": "List of required parameter names.", - "items": { - "type": "string" - } - }, - "properties": { - "type": "object", - "description": "Definitions of each parameter.", - "additionalProperties": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The data type of the parameter." - }, - "description": { - "type": "string", - "description": "A description of the expected parameter." - } - }, - "required": [ - "type", - "description" - ] - } - } - }, - "required": [ - "type", - "properties" - ] - } - }, - "required": [ - "name", - "description", - "parameters" - ] - } - }, - "required": [ - "type", - "function" - ] - } - ] - } - }, - "response_format": { - "title": "JSON Mode", - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_object", - "json_schema" - ] - }, - "json_schema": {} - } - }, - "raw": { - "type": "boolean", - "default": false, - "description": "If true, a chat template is not applied and you must adhere to the specific model's expected formatting." - }, - "stream": { - "type": "boolean", - "default": false, - "description": "If true, the response will be streamed back incrementally using SSE, Server Sent Events." - }, - "max_tokens": { - "type": "integer", - "default": 256, - "description": "The maximum number of tokens to generate in the response." - }, - "temperature": { - "type": "number", - "default": 0.6, - "minimum": 0, - "maximum": 5, - "description": "Controls the randomness of the output; higher values produce more random results." - }, - "top_p": { - "type": "number", - "minimum": 0.001, - "maximum": 1, - "description": "Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses." - }, - "top_k": { - "type": "integer", - "minimum": 1, - "maximum": 50, - "description": "Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises." - }, - "seed": { - "type": "integer", - "minimum": 1, - "maximum": 9999999999, - "description": "Random seed for reproducibility of the generation." - }, - "repetition_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Penalty for repeated tokens; higher values discourage repetition." - }, - "frequency_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Decreases the likelihood of the model repeating the same lines verbatim." - }, - "presence_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Increases the likelihood of the model introducing new topics." - } - }, - "required": [ - "messages" - ] - } - ] - }, - "output": { - "oneOf": [ - { - "type": "object", - "properties": { - "response": { - "type": "string", - "description": "The generated text response from the model" - }, - "usage": { - "type": "object", - "description": "Usage statistics for the inference request", - "properties": { - "prompt_tokens": { - "type": "number", - "description": "Total number of tokens in input", - "default": 0 - }, - "completion_tokens": { - "type": "number", - "description": "Total number of tokens in output", - "default": 0 - }, - "total_tokens": { - "type": "number", - "description": "Total number of input and output tokens", - "default": 0 - } - } - }, - "tool_calls": { - "type": "array", - "description": "An array of tool calls requests made during the response generation", - "items": { - "type": "object", - "properties": { - "arguments": { - "type": "object", - "description": "The arguments passed to be passed to the tool call request" - }, - "name": { - "type": "string", - "description": "The name of the tool to be called" - } - } - } - } - }, - "required": [ - "response" - ] - }, - { - "type": "string", - "format": "binary" - } - ] - } - } -} \ No newline at end of file diff --git a/src/content/workers-ai-models/llama-3-8b-instruct.json b/src/content/workers-ai-models/llama-3-8b-instruct.json deleted file mode 100644 index fa5e815156570a8..000000000000000 --- a/src/content/workers-ai-models/llama-3-8b-instruct.json +++ /dev/null @@ -1,477 +0,0 @@ -{ - "id": "e11d8f45-7b08-499a-9eeb-71d4d3c8cbf9", - "source": 1, - "name": "@cf/meta/llama-3-8b-instruct", - "description": "Generation over generation, Meta Llama 3 demonstrates state-of-the-art performance on a wide range of industry benchmarks and offers new capabilities, including improved reasoning.", - "task": { - "id": "c329a1f9-323d-4e91-b2aa-582dd4188d34", - "name": "Text Generation", - "description": "Family of generative text models, such as large language models (LLM), that can be adapted for a variety of natural language tasks." - }, - "created_at": "2024-04-18 20:31:47.273", - "tags": [], - "properties": [ - { - "property_id": "price", - "value": [ - { - "unit": "per M input tokens", - "price": 0.28, - "currency": "USD" - }, - { - "unit": "per M output tokens", - "price": 0.83, - "currency": "USD" - } - ] - }, - { - "property_id": "context_window", - "value": "7968" - }, - { - "property_id": "info", - "value": "https://llama.meta.com" - }, - { - "property_id": "terms", - "value": "https://llama.meta.com/llama3/license/#" - } - ], - "schema": { - "input": { - "type": "object", - "oneOf": [ - { - "title": "Prompt", - "properties": { - "prompt": { - "type": "string", - "minLength": 1, - "description": "The input text prompt for the model to generate a response." - }, - "lora": { - "type": "string", - "description": "Name of the LoRA (Low-Rank Adaptation) model to fine-tune the base model." - }, - "response_format": { - "title": "JSON Mode", - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_object", - "json_schema" - ] - }, - "json_schema": {} - } - }, - "raw": { - "type": "boolean", - "default": false, - "description": "If true, a chat template is not applied and you must adhere to the specific model's expected formatting." - }, - "stream": { - "type": "boolean", - "default": false, - "description": "If true, the response will be streamed back incrementally using SSE, Server Sent Events." - }, - "max_tokens": { - "type": "integer", - "default": 256, - "description": "The maximum number of tokens to generate in the response." - }, - "temperature": { - "type": "number", - "default": 0.6, - "minimum": 0, - "maximum": 5, - "description": "Controls the randomness of the output; higher values produce more random results." - }, - "top_p": { - "type": "number", - "minimum": 0.001, - "maximum": 1, - "description": "Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses." - }, - "top_k": { - "type": "integer", - "minimum": 1, - "maximum": 50, - "description": "Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises." - }, - "seed": { - "type": "integer", - "minimum": 1, - "maximum": 9999999999, - "description": "Random seed for reproducibility of the generation." - }, - "repetition_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Penalty for repeated tokens; higher values discourage repetition." - }, - "frequency_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Decreases the likelihood of the model repeating the same lines verbatim." - }, - "presence_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Increases the likelihood of the model introducing new topics." - } - }, - "required": [ - "prompt" - ] - }, - { - "title": "Messages", - "properties": { - "messages": { - "type": "array", - "description": "An array of message objects representing the conversation history.", - "items": { - "type": "object", - "properties": { - "role": { - "type": "string", - "description": "The role of the message sender (e.g., 'user', 'assistant', 'system', 'tool')." - }, - "content": { - "oneOf": [ - { - "type": "string", - "description": "The content of the message as a string." - }, - { - "type": "array", - "description": "Array of text content parts.", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "Type of the content (text)" - }, - "text": { - "type": "string", - "description": "Text content" - } - } - } - } - ] - } - }, - "required": [ - "role", - "content" - ] - } - }, - "functions": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "code": { - "type": "string" - } - }, - "required": [ - "name", - "code" - ] - } - }, - "tools": { - "type": "array", - "description": "A list of tools available for the assistant to use.", - "items": { - "type": "object", - "oneOf": [ - { - "properties": { - "name": { - "type": "string", - "description": "The name of the tool. More descriptive the better." - }, - "description": { - "type": "string", - "description": "A brief description of what the tool does." - }, - "parameters": { - "type": "object", - "description": "Schema defining the parameters accepted by the tool.", - "properties": { - "type": { - "type": "string", - "description": "The type of the parameters object (usually 'object')." - }, - "required": { - "type": "array", - "description": "List of required parameter names.", - "items": { - "type": "string" - } - }, - "properties": { - "type": "object", - "description": "Definitions of each parameter.", - "additionalProperties": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The data type of the parameter." - }, - "description": { - "type": "string", - "description": "A description of the expected parameter." - } - }, - "required": [ - "type", - "description" - ] - } - } - }, - "required": [ - "type", - "properties" - ] - } - }, - "required": [ - "name", - "description", - "parameters" - ] - }, - { - "properties": { - "type": { - "type": "string", - "description": "Specifies the type of tool (e.g., 'function')." - }, - "function": { - "type": "object", - "description": "Details of the function tool.", - "properties": { - "name": { - "type": "string", - "description": "The name of the function." - }, - "description": { - "type": "string", - "description": "A brief description of what the function does." - }, - "parameters": { - "type": "object", - "description": "Schema defining the parameters accepted by the function.", - "properties": { - "type": { - "type": "string", - "description": "The type of the parameters object (usually 'object')." - }, - "required": { - "type": "array", - "description": "List of required parameter names.", - "items": { - "type": "string" - } - }, - "properties": { - "type": "object", - "description": "Definitions of each parameter.", - "additionalProperties": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The data type of the parameter." - }, - "description": { - "type": "string", - "description": "A description of the expected parameter." - } - }, - "required": [ - "type", - "description" - ] - } - } - }, - "required": [ - "type", - "properties" - ] - } - }, - "required": [ - "name", - "description", - "parameters" - ] - } - }, - "required": [ - "type", - "function" - ] - } - ] - } - }, - "response_format": { - "title": "JSON Mode", - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_object", - "json_schema" - ] - }, - "json_schema": {} - } - }, - "raw": { - "type": "boolean", - "default": false, - "description": "If true, a chat template is not applied and you must adhere to the specific model's expected formatting." - }, - "stream": { - "type": "boolean", - "default": false, - "description": "If true, the response will be streamed back incrementally using SSE, Server Sent Events." - }, - "max_tokens": { - "type": "integer", - "default": 256, - "description": "The maximum number of tokens to generate in the response." - }, - "temperature": { - "type": "number", - "default": 0.6, - "minimum": 0, - "maximum": 5, - "description": "Controls the randomness of the output; higher values produce more random results." - }, - "top_p": { - "type": "number", - "minimum": 0.001, - "maximum": 1, - "description": "Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses." - }, - "top_k": { - "type": "integer", - "minimum": 1, - "maximum": 50, - "description": "Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises." - }, - "seed": { - "type": "integer", - "minimum": 1, - "maximum": 9999999999, - "description": "Random seed for reproducibility of the generation." - }, - "repetition_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Penalty for repeated tokens; higher values discourage repetition." - }, - "frequency_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Decreases the likelihood of the model repeating the same lines verbatim." - }, - "presence_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Increases the likelihood of the model introducing new topics." - } - }, - "required": [ - "messages" - ] - } - ] - }, - "output": { - "oneOf": [ - { - "type": "object", - "properties": { - "response": { - "type": "string", - "description": "The generated text response from the model" - }, - "usage": { - "type": "object", - "description": "Usage statistics for the inference request", - "properties": { - "prompt_tokens": { - "type": "number", - "description": "Total number of tokens in input", - "default": 0 - }, - "completion_tokens": { - "type": "number", - "description": "Total number of tokens in output", - "default": 0 - }, - "total_tokens": { - "type": "number", - "description": "Total number of input and output tokens", - "default": 0 - } - } - }, - "tool_calls": { - "type": "array", - "description": "An array of tool calls requests made during the response generation", - "items": { - "type": "object", - "properties": { - "arguments": { - "type": "object", - "description": "The arguments passed to be passed to the tool call request" - }, - "name": { - "type": "string", - "description": "The name of the tool to be called" - } - } - } - } - }, - "required": [ - "response" - ] - }, - { - "type": "string", - "format": "binary" - } - ] - } - } -} \ No newline at end of file diff --git a/src/content/workers-ai-models/llama-3.1-70b-instruct.json b/src/content/workers-ai-models/llama-3.1-70b-instruct.json deleted file mode 100644 index 1b8b4ce01567757..000000000000000 --- a/src/content/workers-ai-models/llama-3.1-70b-instruct.json +++ /dev/null @@ -1,417 +0,0 @@ -{ - "description" : "The Meta Llama 3.1 collection of multilingual large language models (LLMs) is a collection of pretrained and instruction tuned generative models. The Llama 3.1 instruction tuned text only models are optimized for multilingual dialogue use cases and outperform many of the available open source and closed chat models on common industry benchmarks.", - "id" : "03e26c2a-a18e-4daf-8616-da9e121eff3e", - "name" : "@cf/meta/llama-3.1-70b-instruct", - "properties" : [ - { - "property_id" : "terms", - "value" : "https://github.com/meta-llama/llama-models/blob/main/models/llama3_1/LICENSE" - }, - { - "property_id" : "context_window", - "value" : "24000" - } - ], - "schema" : { - "input" : { - "oneOf" : [ - { - "properties" : { - "frequency_penalty" : { - "description" : "Decreases the likelihood of the model repeating the same lines verbatim.", - "maximum" : 2, - "minimum" : 0, - "type" : "number" - }, - "image" : { - "oneOf" : [ - { - "description" : "An array of integers that represent the image data constrained to 8-bit unsigned integer values", - "items" : { - "description" : "A value between 0 and 255", - "type" : "number" - }, - "type" : "array" - }, - { - "description" : "Binary string representing the image contents.", - "format" : "binary", - "type" : "string" - } - ] - }, - "lora" : { - "description" : "Name of the LoRA (Low-Rank Adaptation) model to fine-tune the base model.", - "type" : "string" - }, - "max_tokens" : { - "default" : 256, - "description" : "The maximum number of tokens to generate in the response.", - "type" : "integer" - }, - "presence_penalty" : { - "description" : "Increases the likelihood of the model introducing new topics.", - "maximum" : 2, - "minimum" : 0, - "type" : "number" - }, - "prompt" : { - "description" : "The input text prompt for the model to generate a response.", - "maxLength" : 131072, - "minLength" : 1, - "type" : "string" - }, - "raw" : { - "default" : false, - "description" : "If true, a chat template is not applied and you must adhere to the specific model's expected formatting.", - "type" : "boolean" - }, - "repetition_penalty" : { - "description" : "Penalty for repeated tokens; higher values discourage repetition.", - "maximum" : 2, - "minimum" : 0, - "type" : "number" - }, - "seed" : { - "description" : "Random seed for reproducibility of the generation.", - "maximum" : 9999999999, - "minimum" : 1, - "type" : "integer" - }, - "stream" : { - "default" : false, - "description" : "If true, the response will be streamed back incrementally using SSE, Server Sent Events.", - "type" : "boolean" - }, - "temperature" : { - "default" : 0.6, - "description" : "Controls the randomness of the output; higher values produce more random results.", - "maximum" : 5, - "minimum" : 0, - "type" : "number" - }, - "top_k" : { - "description" : "Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises.", - "maximum" : 50, - "minimum" : 1, - "type" : "integer" - }, - "top_p" : { - "description" : "Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses.", - "maximum" : 2, - "minimum" : 0, - "type" : "number" - } - }, - "required" : [ - "prompt" - ], - "title" : "Prompt" - }, - { - "properties" : { - "frequency_penalty" : { - "description" : "Decreases the likelihood of the model repeating the same lines verbatim.", - "maximum" : 2, - "minimum" : 0, - "type" : "number" - }, - "functions" : { - "items" : { - "properties" : { - "code" : { - "type" : "string" - }, - "name" : { - "type" : "string" - } - }, - "required" : [ - "name", - "code" - ], - "type" : "object" - }, - "type" : "array" - }, - "image" : { - "oneOf" : [ - { - "description" : "An array of integers that represent the image data constrained to 8-bit unsigned integer values", - "items" : { - "description" : "A value between 0 and 255", - "type" : "number" - }, - "type" : "array" - }, - { - "description" : "Binary string representing the image contents.", - "format" : "binary", - "type" : "string" - } - ] - }, - "max_tokens" : { - "default" : 256, - "description" : "The maximum number of tokens to generate in the response.", - "type" : "integer" - }, - "messages" : { - "description" : "An array of message objects representing the conversation history.", - "items" : { - "properties" : { - "content" : { - "description" : "The content of the message as a string.", - "maxLength" : 131072, - "type" : "string" - }, - "role" : { - "description" : "The role of the message sender (e.g., 'user', 'assistant', 'system', 'tool').", - "type" : "string" - } - }, - "required" : [ - "role", - "content" - ], - "type" : "object" - }, - "type" : "array" - }, - "presence_penalty" : { - "description" : "Increases the likelihood of the model introducing new topics.", - "maximum" : 2, - "minimum" : 0, - "type" : "number" - }, - "repetition_penalty" : { - "description" : "Penalty for repeated tokens; higher values discourage repetition.", - "maximum" : 2, - "minimum" : 0, - "type" : "number" - }, - "seed" : { - "description" : "Random seed for reproducibility of the generation.", - "maximum" : 9999999999, - "minimum" : 1, - "type" : "integer" - }, - "stream" : { - "default" : false, - "description" : "If true, the response will be streamed back incrementally.", - "type" : "boolean" - }, - "temperature" : { - "default" : 0.6, - "description" : "Controls the randomness of the output; higher values produce more random results.", - "maximum" : 5, - "minimum" : 0, - "type" : "number" - }, - "tools" : { - "description" : "A list of tools available for the assistant to use.", - "items" : { - "oneOf" : [ - { - "properties" : { - "description" : { - "description" : "A brief description of what the tool does.", - "type" : "string" - }, - "name" : { - "description" : "The name of the tool. More descriptive the better.", - "type" : "string" - }, - "parameters" : { - "description" : "Schema defining the parameters accepted by the tool.", - "properties" : { - "properties" : { - "additionalProperties" : { - "properties" : { - "description" : { - "description" : "A description of the expected parameter.", - "type" : "string" - }, - "type" : { - "description" : "The data type of the parameter.", - "type" : "string" - } - }, - "required" : [ - "type", - "description" - ], - "type" : "object" - }, - "description" : "Definitions of each parameter.", - "type" : "object" - }, - "required" : { - "description" : "List of required parameter names.", - "items" : { - "type" : "string" - }, - "type" : "array" - }, - "type" : { - "description" : "The type of the parameters object (usually 'object').", - "type" : "string" - } - }, - "required" : [ - "type", - "properties" - ], - "type" : "object" - } - }, - "required" : [ - "name", - "description", - "parameters" - ] - }, - { - "properties" : { - "function" : { - "description" : "Details of the function tool.", - "properties" : { - "description" : { - "description" : "A brief description of what the function does.", - "type" : "string" - }, - "name" : { - "description" : "The name of the function.", - "type" : "string" - }, - "parameters" : { - "description" : "Schema defining the parameters accepted by the function.", - "properties" : { - "properties" : { - "additionalProperties" : { - "properties" : { - "description" : { - "description" : "A description of the expected parameter.", - "type" : "string" - }, - "type" : { - "description" : "The data type of the parameter.", - "type" : "string" - } - }, - "required" : [ - "type", - "description" - ], - "type" : "object" - }, - "description" : "Definitions of each parameter.", - "type" : "object" - }, - "required" : { - "description" : "List of required parameter names.", - "items" : { - "type" : "string" - }, - "type" : "array" - }, - "type" : { - "description" : "The type of the parameters object (usually 'object').", - "type" : "string" - } - }, - "required" : [ - "type", - "properties" - ], - "type" : "object" - } - }, - "required" : [ - "name", - "description", - "parameters" - ], - "type" : "object" - }, - "type" : { - "description" : "Specifies the type of tool (e.g., 'function').", - "type" : "string" - } - }, - "required" : [ - "type", - "function" - ] - } - ], - "type" : "object" - }, - "type" : "array" - }, - "top_k" : { - "description" : "Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises.", - "maximum" : 50, - "minimum" : 1, - "type" : "integer" - }, - "top_p" : { - "description" : "Controls the creativity of the AI's responses by adjusting how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses.", - "maximum" : 2, - "minimum" : 0, - "type" : "number" - } - }, - "required" : [ - "messages" - ], - "title" : "Messages" - } - ], - "type" : "object" - }, - "output" : { - "oneOf" : [ - { - "contentType" : "application/json", - "properties" : { - "response" : { - "description" : "The generated text response from the model", - "type" : "string" - }, - "tool_calls" : { - "description" : "An array of tool calls requests made during the response generation", - "items" : { - "properties" : { - "arguments" : { - "description" : "The arguments passed to be passed to the tool call request", - "type" : "object" - }, - "name" : { - "description" : "The name of the tool to be called", - "type" : "string" - } - }, - "type" : "object" - }, - "type" : "array" - } - }, - "type" : "object" - }, - { - "contentType" : "text/event-stream", - "format" : "binary", - "type" : "string" - } - ] - } - }, - "source" : 1, - "tags" : [], - "task" : { - "description" : "Family of generative text models, such as large language models (LLM), that can be adapted for a variety of natural language tasks.", - "id" : "c329a1f9-323d-4e91-b2aa-582dd4188d34", - "name" : "Text Generation" - } -} \ No newline at end of file diff --git a/src/content/workers-ai-models/llama-3.1-8b-instruct-awq.json b/src/content/workers-ai-models/llama-3.1-8b-instruct-awq.json deleted file mode 100644 index 9bc8b5e4586de61..000000000000000 --- a/src/content/workers-ai-models/llama-3.1-8b-instruct-awq.json +++ /dev/null @@ -1,473 +0,0 @@ -{ - "id": "3dcb4f2d-26a8-412b-b6e3-2a368beff66b", - "source": 1, - "name": "@cf/meta/llama-3.1-8b-instruct-awq", - "description": "Quantized (int4) generative text model with 8 billion parameters from Meta.\n", - "task": { - "id": "c329a1f9-323d-4e91-b2aa-582dd4188d34", - "name": "Text Generation", - "description": "Family of generative text models, such as large language models (LLM), that can be adapted for a variety of natural language tasks." - }, - "created_at": "2024-07-25 17:46:04.304", - "tags": [], - "properties": [ - { - "property_id": "price", - "value": [ - { - "unit": "per M input tokens", - "price": 0.12, - "currency": "USD" - }, - { - "unit": "per M output tokens", - "price": 0.27, - "currency": "USD" - } - ] - }, - { - "property_id": "context_window", - "value": "8192" - }, - { - "property_id": "terms", - "value": "https://github.com/meta-llama/llama-models/blob/main/models/llama3_1/LICENSE" - } - ], - "schema": { - "input": { - "type": "object", - "oneOf": [ - { - "title": "Prompt", - "properties": { - "prompt": { - "type": "string", - "minLength": 1, - "description": "The input text prompt for the model to generate a response." - }, - "lora": { - "type": "string", - "description": "Name of the LoRA (Low-Rank Adaptation) model to fine-tune the base model." - }, - "response_format": { - "title": "JSON Mode", - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_object", - "json_schema" - ] - }, - "json_schema": {} - } - }, - "raw": { - "type": "boolean", - "default": false, - "description": "If true, a chat template is not applied and you must adhere to the specific model's expected formatting." - }, - "stream": { - "type": "boolean", - "default": false, - "description": "If true, the response will be streamed back incrementally using SSE, Server Sent Events." - }, - "max_tokens": { - "type": "integer", - "default": 256, - "description": "The maximum number of tokens to generate in the response." - }, - "temperature": { - "type": "number", - "default": 0.6, - "minimum": 0, - "maximum": 5, - "description": "Controls the randomness of the output; higher values produce more random results." - }, - "top_p": { - "type": "number", - "minimum": 0.001, - "maximum": 1, - "description": "Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses." - }, - "top_k": { - "type": "integer", - "minimum": 1, - "maximum": 50, - "description": "Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises." - }, - "seed": { - "type": "integer", - "minimum": 1, - "maximum": 9999999999, - "description": "Random seed for reproducibility of the generation." - }, - "repetition_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Penalty for repeated tokens; higher values discourage repetition." - }, - "frequency_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Decreases the likelihood of the model repeating the same lines verbatim." - }, - "presence_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Increases the likelihood of the model introducing new topics." - } - }, - "required": [ - "prompt" - ] - }, - { - "title": "Messages", - "properties": { - "messages": { - "type": "array", - "description": "An array of message objects representing the conversation history.", - "items": { - "type": "object", - "properties": { - "role": { - "type": "string", - "description": "The role of the message sender (e.g., 'user', 'assistant', 'system', 'tool')." - }, - "content": { - "oneOf": [ - { - "type": "string", - "description": "The content of the message as a string." - }, - { - "type": "array", - "description": "Array of text content parts.", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "Type of the content (text)" - }, - "text": { - "type": "string", - "description": "Text content" - } - } - } - } - ] - } - }, - "required": [ - "role", - "content" - ] - } - }, - "functions": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "code": { - "type": "string" - } - }, - "required": [ - "name", - "code" - ] - } - }, - "tools": { - "type": "array", - "description": "A list of tools available for the assistant to use.", - "items": { - "type": "object", - "oneOf": [ - { - "properties": { - "name": { - "type": "string", - "description": "The name of the tool. More descriptive the better." - }, - "description": { - "type": "string", - "description": "A brief description of what the tool does." - }, - "parameters": { - "type": "object", - "description": "Schema defining the parameters accepted by the tool.", - "properties": { - "type": { - "type": "string", - "description": "The type of the parameters object (usually 'object')." - }, - "required": { - "type": "array", - "description": "List of required parameter names.", - "items": { - "type": "string" - } - }, - "properties": { - "type": "object", - "description": "Definitions of each parameter.", - "additionalProperties": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The data type of the parameter." - }, - "description": { - "type": "string", - "description": "A description of the expected parameter." - } - }, - "required": [ - "type", - "description" - ] - } - } - }, - "required": [ - "type", - "properties" - ] - } - }, - "required": [ - "name", - "description", - "parameters" - ] - }, - { - "properties": { - "type": { - "type": "string", - "description": "Specifies the type of tool (e.g., 'function')." - }, - "function": { - "type": "object", - "description": "Details of the function tool.", - "properties": { - "name": { - "type": "string", - "description": "The name of the function." - }, - "description": { - "type": "string", - "description": "A brief description of what the function does." - }, - "parameters": { - "type": "object", - "description": "Schema defining the parameters accepted by the function.", - "properties": { - "type": { - "type": "string", - "description": "The type of the parameters object (usually 'object')." - }, - "required": { - "type": "array", - "description": "List of required parameter names.", - "items": { - "type": "string" - } - }, - "properties": { - "type": "object", - "description": "Definitions of each parameter.", - "additionalProperties": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The data type of the parameter." - }, - "description": { - "type": "string", - "description": "A description of the expected parameter." - } - }, - "required": [ - "type", - "description" - ] - } - } - }, - "required": [ - "type", - "properties" - ] - } - }, - "required": [ - "name", - "description", - "parameters" - ] - } - }, - "required": [ - "type", - "function" - ] - } - ] - } - }, - "response_format": { - "title": "JSON Mode", - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_object", - "json_schema" - ] - }, - "json_schema": {} - } - }, - "raw": { - "type": "boolean", - "default": false, - "description": "If true, a chat template is not applied and you must adhere to the specific model's expected formatting." - }, - "stream": { - "type": "boolean", - "default": false, - "description": "If true, the response will be streamed back incrementally using SSE, Server Sent Events." - }, - "max_tokens": { - "type": "integer", - "default": 256, - "description": "The maximum number of tokens to generate in the response." - }, - "temperature": { - "type": "number", - "default": 0.6, - "minimum": 0, - "maximum": 5, - "description": "Controls the randomness of the output; higher values produce more random results." - }, - "top_p": { - "type": "number", - "minimum": 0.001, - "maximum": 1, - "description": "Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses." - }, - "top_k": { - "type": "integer", - "minimum": 1, - "maximum": 50, - "description": "Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises." - }, - "seed": { - "type": "integer", - "minimum": 1, - "maximum": 9999999999, - "description": "Random seed for reproducibility of the generation." - }, - "repetition_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Penalty for repeated tokens; higher values discourage repetition." - }, - "frequency_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Decreases the likelihood of the model repeating the same lines verbatim." - }, - "presence_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Increases the likelihood of the model introducing new topics." - } - }, - "required": [ - "messages" - ] - } - ] - }, - "output": { - "oneOf": [ - { - "type": "object", - "properties": { - "response": { - "type": "string", - "description": "The generated text response from the model" - }, - "usage": { - "type": "object", - "description": "Usage statistics for the inference request", - "properties": { - "prompt_tokens": { - "type": "number", - "description": "Total number of tokens in input", - "default": 0 - }, - "completion_tokens": { - "type": "number", - "description": "Total number of tokens in output", - "default": 0 - }, - "total_tokens": { - "type": "number", - "description": "Total number of input and output tokens", - "default": 0 - } - } - }, - "tool_calls": { - "type": "array", - "description": "An array of tool calls requests made during the response generation", - "items": { - "type": "object", - "properties": { - "arguments": { - "type": "object", - "description": "The arguments passed to be passed to the tool call request" - }, - "name": { - "type": "string", - "description": "The name of the tool to be called" - } - } - } - } - }, - "required": [ - "response" - ] - }, - { - "type": "string", - "format": "binary" - } - ] - } - } -} \ No newline at end of file diff --git a/src/content/workers-ai-models/llama-3.1-8b-instruct-fast.json b/src/content/workers-ai-models/llama-3.1-8b-instruct-fast.json deleted file mode 100644 index 2d8508ba51e1a47..000000000000000 --- a/src/content/workers-ai-models/llama-3.1-8b-instruct-fast.json +++ /dev/null @@ -1,417 +0,0 @@ -{ - "description" : "[Fast version] The Meta Llama 3.1 collection of multilingual large language models (LLMs) is a collection of pretrained and instruction tuned generative models. The Llama 3.1 instruction tuned text only models are optimized for multilingual dialogue use cases and outperform many of the available open source and closed chat models on common industry benchmarks.", - "id" : "872d9af1-5ff8-4e84-aed1-ab3caf909436", - "name" : "@cf/meta/llama-3.1-8b-instruct-fast", - "properties" : [ - { - "property_id" : "context_window", - "value" : "128000" - }, - { - "property_id" : "terms", - "value" : "https://github.com/meta-llama/llama-models/blob/main/models/llama3_1/LICENSE" - } - ], - "schema" : { - "input" : { - "oneOf" : [ - { - "properties" : { - "frequency_penalty" : { - "description" : "Decreases the likelihood of the model repeating the same lines verbatim.", - "maximum" : 2, - "minimum" : 0, - "type" : "number" - }, - "image" : { - "oneOf" : [ - { - "description" : "An array of integers that represent the image data constrained to 8-bit unsigned integer values", - "items" : { - "description" : "A value between 0 and 255", - "type" : "number" - }, - "type" : "array" - }, - { - "description" : "Binary string representing the image contents.", - "format" : "binary", - "type" : "string" - } - ] - }, - "lora" : { - "description" : "Name of the LoRA (Low-Rank Adaptation) model to fine-tune the base model.", - "type" : "string" - }, - "max_tokens" : { - "default" : 256, - "description" : "The maximum number of tokens to generate in the response.", - "type" : "integer" - }, - "presence_penalty" : { - "description" : "Increases the likelihood of the model introducing new topics.", - "maximum" : 2, - "minimum" : 0, - "type" : "number" - }, - "prompt" : { - "description" : "The input text prompt for the model to generate a response.", - "maxLength" : 131072, - "minLength" : 1, - "type" : "string" - }, - "raw" : { - "default" : false, - "description" : "If true, a chat template is not applied and you must adhere to the specific model's expected formatting.", - "type" : "boolean" - }, - "repetition_penalty" : { - "description" : "Penalty for repeated tokens; higher values discourage repetition.", - "maximum" : 2, - "minimum" : 0, - "type" : "number" - }, - "seed" : { - "description" : "Random seed for reproducibility of the generation.", - "maximum" : 9999999999, - "minimum" : 1, - "type" : "integer" - }, - "stream" : { - "default" : false, - "description" : "If true, the response will be streamed back incrementally using SSE, Server Sent Events.", - "type" : "boolean" - }, - "temperature" : { - "default" : 0.6, - "description" : "Controls the randomness of the output; higher values produce more random results.", - "maximum" : 5, - "minimum" : 0, - "type" : "number" - }, - "top_k" : { - "description" : "Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises.", - "maximum" : 50, - "minimum" : 1, - "type" : "integer" - }, - "top_p" : { - "description" : "Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses.", - "maximum" : 2, - "minimum" : 0, - "type" : "number" - } - }, - "required" : [ - "prompt" - ], - "title" : "Prompt" - }, - { - "properties" : { - "frequency_penalty" : { - "description" : "Decreases the likelihood of the model repeating the same lines verbatim.", - "maximum" : 2, - "minimum" : 0, - "type" : "number" - }, - "functions" : { - "items" : { - "properties" : { - "code" : { - "type" : "string" - }, - "name" : { - "type" : "string" - } - }, - "required" : [ - "name", - "code" - ], - "type" : "object" - }, - "type" : "array" - }, - "image" : { - "oneOf" : [ - { - "description" : "An array of integers that represent the image data constrained to 8-bit unsigned integer values", - "items" : { - "description" : "A value between 0 and 255", - "type" : "number" - }, - "type" : "array" - }, - { - "description" : "Binary string representing the image contents.", - "format" : "binary", - "type" : "string" - } - ] - }, - "max_tokens" : { - "default" : 256, - "description" : "The maximum number of tokens to generate in the response.", - "type" : "integer" - }, - "messages" : { - "description" : "An array of message objects representing the conversation history.", - "items" : { - "properties" : { - "content" : { - "description" : "The content of the message as a string.", - "maxLength" : 131072, - "type" : "string" - }, - "role" : { - "description" : "The role of the message sender (e.g., 'user', 'assistant', 'system', 'tool').", - "type" : "string" - } - }, - "required" : [ - "role", - "content" - ], - "type" : "object" - }, - "type" : "array" - }, - "presence_penalty" : { - "description" : "Increases the likelihood of the model introducing new topics.", - "maximum" : 2, - "minimum" : 0, - "type" : "number" - }, - "repetition_penalty" : { - "description" : "Penalty for repeated tokens; higher values discourage repetition.", - "maximum" : 2, - "minimum" : 0, - "type" : "number" - }, - "seed" : { - "description" : "Random seed for reproducibility of the generation.", - "maximum" : 9999999999, - "minimum" : 1, - "type" : "integer" - }, - "stream" : { - "default" : false, - "description" : "If true, the response will be streamed back incrementally.", - "type" : "boolean" - }, - "temperature" : { - "default" : 0.6, - "description" : "Controls the randomness of the output; higher values produce more random results.", - "maximum" : 5, - "minimum" : 0, - "type" : "number" - }, - "tools" : { - "description" : "A list of tools available for the assistant to use.", - "items" : { - "oneOf" : [ - { - "properties" : { - "description" : { - "description" : "A brief description of what the tool does.", - "type" : "string" - }, - "name" : { - "description" : "The name of the tool. More descriptive the better.", - "type" : "string" - }, - "parameters" : { - "description" : "Schema defining the parameters accepted by the tool.", - "properties" : { - "properties" : { - "additionalProperties" : { - "properties" : { - "description" : { - "description" : "A description of the expected parameter.", - "type" : "string" - }, - "type" : { - "description" : "The data type of the parameter.", - "type" : "string" - } - }, - "required" : [ - "type", - "description" - ], - "type" : "object" - }, - "description" : "Definitions of each parameter.", - "type" : "object" - }, - "required" : { - "description" : "List of required parameter names.", - "items" : { - "type" : "string" - }, - "type" : "array" - }, - "type" : { - "description" : "The type of the parameters object (usually 'object').", - "type" : "string" - } - }, - "required" : [ - "type", - "properties" - ], - "type" : "object" - } - }, - "required" : [ - "name", - "description", - "parameters" - ] - }, - { - "properties" : { - "function" : { - "description" : "Details of the function tool.", - "properties" : { - "description" : { - "description" : "A brief description of what the function does.", - "type" : "string" - }, - "name" : { - "description" : "The name of the function.", - "type" : "string" - }, - "parameters" : { - "description" : "Schema defining the parameters accepted by the function.", - "properties" : { - "properties" : { - "additionalProperties" : { - "properties" : { - "description" : { - "description" : "A description of the expected parameter.", - "type" : "string" - }, - "type" : { - "description" : "The data type of the parameter.", - "type" : "string" - } - }, - "required" : [ - "type", - "description" - ], - "type" : "object" - }, - "description" : "Definitions of each parameter.", - "type" : "object" - }, - "required" : { - "description" : "List of required parameter names.", - "items" : { - "type" : "string" - }, - "type" : "array" - }, - "type" : { - "description" : "The type of the parameters object (usually 'object').", - "type" : "string" - } - }, - "required" : [ - "type", - "properties" - ], - "type" : "object" - } - }, - "required" : [ - "name", - "description", - "parameters" - ], - "type" : "object" - }, - "type" : { - "description" : "Specifies the type of tool (e.g., 'function').", - "type" : "string" - } - }, - "required" : [ - "type", - "function" - ] - } - ], - "type" : "object" - }, - "type" : "array" - }, - "top_k" : { - "description" : "Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises.", - "maximum" : 50, - "minimum" : 1, - "type" : "integer" - }, - "top_p" : { - "description" : "Controls the creativity of the AI's responses by adjusting how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses.", - "maximum" : 2, - "minimum" : 0, - "type" : "number" - } - }, - "required" : [ - "messages" - ], - "title" : "Messages" - } - ], - "type" : "object" - }, - "output" : { - "oneOf" : [ - { - "contentType" : "application/json", - "properties" : { - "response" : { - "description" : "The generated text response from the model", - "type" : "string" - }, - "tool_calls" : { - "description" : "An array of tool calls requests made during the response generation", - "items" : { - "properties" : { - "arguments" : { - "description" : "The arguments passed to be passed to the tool call request", - "type" : "object" - }, - "name" : { - "description" : "The name of the tool to be called", - "type" : "string" - } - }, - "type" : "object" - }, - "type" : "array" - } - }, - "type" : "object" - }, - { - "contentType" : "text/event-stream", - "format" : "binary", - "type" : "string" - } - ] - } - }, - "source" : 1, - "tags" : [], - "task" : { - "description" : "Family of generative text models, such as large language models (LLM), that can be adapted for a variety of natural language tasks.", - "id" : "c329a1f9-323d-4e91-b2aa-582dd4188d34", - "name" : "Text Generation" - } -} \ No newline at end of file diff --git a/src/content/workers-ai-models/llama-3.1-8b-instruct-fp8.json b/src/content/workers-ai-models/llama-3.1-8b-instruct-fp8.json deleted file mode 100644 index a4b6fc65ebbf19d..000000000000000 --- a/src/content/workers-ai-models/llama-3.1-8b-instruct-fp8.json +++ /dev/null @@ -1,473 +0,0 @@ -{ - "id": "9b9c87c6-d4b7-494c-b177-87feab5904db", - "source": 1, - "name": "@cf/meta/llama-3.1-8b-instruct-fp8", - "description": "Llama 3.1 8B quantized to FP8 precision", - "task": { - "id": "c329a1f9-323d-4e91-b2aa-582dd4188d34", - "name": "Text Generation", - "description": "Family of generative text models, such as large language models (LLM), that can be adapted for a variety of natural language tasks." - }, - "created_at": "2024-07-25 17:28:43.328", - "tags": [], - "properties": [ - { - "property_id": "price", - "value": [ - { - "unit": "per M input tokens", - "price": 0.15, - "currency": "USD" - }, - { - "unit": "per M output tokens", - "price": 0.29, - "currency": "USD" - } - ] - }, - { - "property_id": "context_window", - "value": "32000" - }, - { - "property_id": "terms", - "value": "https://github.com/meta-llama/llama-models/blob/main/models/llama3_1/LICENSE" - } - ], - "schema": { - "input": { - "type": "object", - "oneOf": [ - { - "title": "Prompt", - "properties": { - "prompt": { - "type": "string", - "minLength": 1, - "description": "The input text prompt for the model to generate a response." - }, - "lora": { - "type": "string", - "description": "Name of the LoRA (Low-Rank Adaptation) model to fine-tune the base model." - }, - "response_format": { - "title": "JSON Mode", - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_object", - "json_schema" - ] - }, - "json_schema": {} - } - }, - "raw": { - "type": "boolean", - "default": false, - "description": "If true, a chat template is not applied and you must adhere to the specific model's expected formatting." - }, - "stream": { - "type": "boolean", - "default": false, - "description": "If true, the response will be streamed back incrementally using SSE, Server Sent Events." - }, - "max_tokens": { - "type": "integer", - "default": 256, - "description": "The maximum number of tokens to generate in the response." - }, - "temperature": { - "type": "number", - "default": 0.6, - "minimum": 0, - "maximum": 5, - "description": "Controls the randomness of the output; higher values produce more random results." - }, - "top_p": { - "type": "number", - "minimum": 0.001, - "maximum": 1, - "description": "Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses." - }, - "top_k": { - "type": "integer", - "minimum": 1, - "maximum": 50, - "description": "Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises." - }, - "seed": { - "type": "integer", - "minimum": 1, - "maximum": 9999999999, - "description": "Random seed for reproducibility of the generation." - }, - "repetition_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Penalty for repeated tokens; higher values discourage repetition." - }, - "frequency_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Decreases the likelihood of the model repeating the same lines verbatim." - }, - "presence_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Increases the likelihood of the model introducing new topics." - } - }, - "required": [ - "prompt" - ] - }, - { - "title": "Messages", - "properties": { - "messages": { - "type": "array", - "description": "An array of message objects representing the conversation history.", - "items": { - "type": "object", - "properties": { - "role": { - "type": "string", - "description": "The role of the message sender (e.g., 'user', 'assistant', 'system', 'tool')." - }, - "content": { - "oneOf": [ - { - "type": "string", - "description": "The content of the message as a string." - }, - { - "type": "array", - "description": "Array of text content parts.", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "Type of the content (text)" - }, - "text": { - "type": "string", - "description": "Text content" - } - } - } - } - ] - } - }, - "required": [ - "role", - "content" - ] - } - }, - "functions": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "code": { - "type": "string" - } - }, - "required": [ - "name", - "code" - ] - } - }, - "tools": { - "type": "array", - "description": "A list of tools available for the assistant to use.", - "items": { - "type": "object", - "oneOf": [ - { - "properties": { - "name": { - "type": "string", - "description": "The name of the tool. More descriptive the better." - }, - "description": { - "type": "string", - "description": "A brief description of what the tool does." - }, - "parameters": { - "type": "object", - "description": "Schema defining the parameters accepted by the tool.", - "properties": { - "type": { - "type": "string", - "description": "The type of the parameters object (usually 'object')." - }, - "required": { - "type": "array", - "description": "List of required parameter names.", - "items": { - "type": "string" - } - }, - "properties": { - "type": "object", - "description": "Definitions of each parameter.", - "additionalProperties": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The data type of the parameter." - }, - "description": { - "type": "string", - "description": "A description of the expected parameter." - } - }, - "required": [ - "type", - "description" - ] - } - } - }, - "required": [ - "type", - "properties" - ] - } - }, - "required": [ - "name", - "description", - "parameters" - ] - }, - { - "properties": { - "type": { - "type": "string", - "description": "Specifies the type of tool (e.g., 'function')." - }, - "function": { - "type": "object", - "description": "Details of the function tool.", - "properties": { - "name": { - "type": "string", - "description": "The name of the function." - }, - "description": { - "type": "string", - "description": "A brief description of what the function does." - }, - "parameters": { - "type": "object", - "description": "Schema defining the parameters accepted by the function.", - "properties": { - "type": { - "type": "string", - "description": "The type of the parameters object (usually 'object')." - }, - "required": { - "type": "array", - "description": "List of required parameter names.", - "items": { - "type": "string" - } - }, - "properties": { - "type": "object", - "description": "Definitions of each parameter.", - "additionalProperties": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The data type of the parameter." - }, - "description": { - "type": "string", - "description": "A description of the expected parameter." - } - }, - "required": [ - "type", - "description" - ] - } - } - }, - "required": [ - "type", - "properties" - ] - } - }, - "required": [ - "name", - "description", - "parameters" - ] - } - }, - "required": [ - "type", - "function" - ] - } - ] - } - }, - "response_format": { - "title": "JSON Mode", - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_object", - "json_schema" - ] - }, - "json_schema": {} - } - }, - "raw": { - "type": "boolean", - "default": false, - "description": "If true, a chat template is not applied and you must adhere to the specific model's expected formatting." - }, - "stream": { - "type": "boolean", - "default": false, - "description": "If true, the response will be streamed back incrementally using SSE, Server Sent Events." - }, - "max_tokens": { - "type": "integer", - "default": 256, - "description": "The maximum number of tokens to generate in the response." - }, - "temperature": { - "type": "number", - "default": 0.6, - "minimum": 0, - "maximum": 5, - "description": "Controls the randomness of the output; higher values produce more random results." - }, - "top_p": { - "type": "number", - "minimum": 0.001, - "maximum": 1, - "description": "Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses." - }, - "top_k": { - "type": "integer", - "minimum": 1, - "maximum": 50, - "description": "Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises." - }, - "seed": { - "type": "integer", - "minimum": 1, - "maximum": 9999999999, - "description": "Random seed for reproducibility of the generation." - }, - "repetition_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Penalty for repeated tokens; higher values discourage repetition." - }, - "frequency_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Decreases the likelihood of the model repeating the same lines verbatim." - }, - "presence_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Increases the likelihood of the model introducing new topics." - } - }, - "required": [ - "messages" - ] - } - ] - }, - "output": { - "oneOf": [ - { - "type": "object", - "properties": { - "response": { - "type": "string", - "description": "The generated text response from the model" - }, - "usage": { - "type": "object", - "description": "Usage statistics for the inference request", - "properties": { - "prompt_tokens": { - "type": "number", - "description": "Total number of tokens in input", - "default": 0 - }, - "completion_tokens": { - "type": "number", - "description": "Total number of tokens in output", - "default": 0 - }, - "total_tokens": { - "type": "number", - "description": "Total number of input and output tokens", - "default": 0 - } - } - }, - "tool_calls": { - "type": "array", - "description": "An array of tool calls requests made during the response generation", - "items": { - "type": "object", - "properties": { - "arguments": { - "type": "object", - "description": "The arguments passed to be passed to the tool call request" - }, - "name": { - "type": "string", - "description": "The name of the tool to be called" - } - } - } - } - }, - "required": [ - "response" - ] - }, - { - "type": "string", - "format": "binary" - } - ] - } - } -} \ No newline at end of file diff --git a/src/content/workers-ai-models/llama-3.1-8b-instruct.json b/src/content/workers-ai-models/llama-3.1-8b-instruct.json deleted file mode 100644 index 7caa888d9c1507c..000000000000000 --- a/src/content/workers-ai-models/llama-3.1-8b-instruct.json +++ /dev/null @@ -1,452 +0,0 @@ -{ - "id": "41975cc2-c82e-4e98-b7b8-88ffb186a545", - "source": 1, - "name": "@cf/meta/llama-3.1-8b-instruct", - "description": "The Meta Llama 3.1 collection of multilingual large language models (LLMs) is a collection of pretrained and instruction tuned generative models. The Llama 3.1 instruction tuned text only models are optimized for multilingual dialogue use cases and outperform many of the available open source and closed chat models on common industry benchmarks.", - "task": { - "id": "c329a1f9-323d-4e91-b2aa-582dd4188d34", - "name": "Text Generation", - "description": "Family of generative text models, such as large language models (LLM), that can be adapted for a variety of natural language tasks." - }, - "created_at": "2024-07-18 22:53:33.746", - "tags": [], - "properties": [ - { - "property_id": "price", - "value": [ - { - "unit": "per M input tokens", - "price": 0.28, - "currency": "USD" - }, - { - "unit": "per M output tokens", - "price": 0.83, - "currency": "USD" - } - ] - }, - { - "property_id": "context_window", - "value": "7968" - }, - { - "property_id": "terms", - "value": "https://github.com/meta-llama/llama-models/blob/main/models/llama3_1/LICENSE" - } - ], - "schema": { - "input": { - "type": "object", - "oneOf": [ - { - "title": "Prompt", - "properties": { - "prompt": { - "type": "string", - "minLength": 1, - "description": "The input text prompt for the model to generate a response." - }, - "lora": { - "type": "string", - "description": "Name of the LoRA (Low-Rank Adaptation) model to fine-tune the base model." - }, - "response_format": { - "title": "JSON Mode", - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_object", - "json_schema" - ] - }, - "json_schema": {} - } - }, - "raw": { - "type": "boolean", - "default": false, - "description": "If true, a chat template is not applied and you must adhere to the specific model's expected formatting." - }, - "stream": { - "type": "boolean", - "default": false, - "description": "If true, the response will be streamed back incrementally using SSE, Server Sent Events." - }, - "max_tokens": { - "type": "integer", - "default": 256, - "description": "The maximum number of tokens to generate in the response." - }, - "temperature": { - "type": "number", - "default": 0.6, - "minimum": 0, - "maximum": 5, - "description": "Controls the randomness of the output; higher values produce more random results." - }, - "top_p": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses." - }, - "top_k": { - "type": "integer", - "minimum": 1, - "maximum": 50, - "description": "Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises." - }, - "seed": { - "type": "integer", - "minimum": 1, - "maximum": 9999999999, - "description": "Random seed for reproducibility of the generation." - }, - "repetition_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Penalty for repeated tokens; higher values discourage repetition." - }, - "frequency_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Decreases the likelihood of the model repeating the same lines verbatim." - }, - "presence_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Increases the likelihood of the model introducing new topics." - } - }, - "required": [ - "prompt" - ] - }, - { - "title": "Messages", - "properties": { - "messages": { - "type": "array", - "description": "An array of message objects representing the conversation history.", - "items": { - "type": "object", - "properties": { - "role": { - "type": "string", - "description": "The role of the message sender (e.g., 'user', 'assistant', 'system', 'tool')." - }, - "content": { - "type": "string", - "description": "The content of the message as a string." - } - }, - "required": [ - "role", - "content" - ] - } - }, - "functions": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "code": { - "type": "string" - } - }, - "required": [ - "name", - "code" - ] - } - }, - "tools": { - "type": "array", - "description": "A list of tools available for the assistant to use.", - "items": { - "type": "object", - "oneOf": [ - { - "properties": { - "name": { - "type": "string", - "description": "The name of the tool. More descriptive the better." - }, - "description": { - "type": "string", - "description": "A brief description of what the tool does." - }, - "parameters": { - "type": "object", - "description": "Schema defining the parameters accepted by the tool.", - "properties": { - "type": { - "type": "string", - "description": "The type of the parameters object (usually 'object')." - }, - "required": { - "type": "array", - "description": "List of required parameter names.", - "items": { - "type": "string" - } - }, - "properties": { - "type": "object", - "description": "Definitions of each parameter.", - "additionalProperties": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The data type of the parameter." - }, - "description": { - "type": "string", - "description": "A description of the expected parameter." - } - }, - "required": [ - "type", - "description" - ] - } - } - }, - "required": [ - "type", - "properties" - ] - } - }, - "required": [ - "name", - "description", - "parameters" - ] - }, - { - "properties": { - "type": { - "type": "string", - "description": "Specifies the type of tool (e.g., 'function')." - }, - "function": { - "type": "object", - "description": "Details of the function tool.", - "properties": { - "name": { - "type": "string", - "description": "The name of the function." - }, - "description": { - "type": "string", - "description": "A brief description of what the function does." - }, - "parameters": { - "type": "object", - "description": "Schema defining the parameters accepted by the function.", - "properties": { - "type": { - "type": "string", - "description": "The type of the parameters object (usually 'object')." - }, - "required": { - "type": "array", - "description": "List of required parameter names.", - "items": { - "type": "string" - } - }, - "properties": { - "type": "object", - "description": "Definitions of each parameter.", - "additionalProperties": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The data type of the parameter." - }, - "description": { - "type": "string", - "description": "A description of the expected parameter." - } - }, - "required": [ - "type", - "description" - ] - } - } - }, - "required": [ - "type", - "properties" - ] - } - }, - "required": [ - "name", - "description", - "parameters" - ] - } - }, - "required": [ - "type", - "function" - ] - } - ] - } - }, - "response_format": { - "title": "JSON Mode", - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_object", - "json_schema" - ] - }, - "json_schema": {} - } - }, - "raw": { - "type": "boolean", - "default": false, - "description": "If true, a chat template is not applied and you must adhere to the specific model's expected formatting." - }, - "stream": { - "type": "boolean", - "default": false, - "description": "If true, the response will be streamed back incrementally using SSE, Server Sent Events." - }, - "max_tokens": { - "type": "integer", - "default": 256, - "description": "The maximum number of tokens to generate in the response." - }, - "temperature": { - "type": "number", - "default": 0.6, - "minimum": 0, - "maximum": 5, - "description": "Controls the randomness of the output; higher values produce more random results." - }, - "top_p": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses." - }, - "top_k": { - "type": "integer", - "minimum": 1, - "maximum": 50, - "description": "Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises." - }, - "seed": { - "type": "integer", - "minimum": 1, - "maximum": 9999999999, - "description": "Random seed for reproducibility of the generation." - }, - "repetition_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Penalty for repeated tokens; higher values discourage repetition." - }, - "frequency_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Decreases the likelihood of the model repeating the same lines verbatim." - }, - "presence_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Increases the likelihood of the model introducing new topics." - } - }, - "required": [ - "messages" - ] - } - ] - }, - "output": { - "oneOf": [ - { - "type": "object", - "properties": { - "response": { - "type": "string", - "description": "The generated text response from the model" - }, - "usage": { - "type": "object", - "description": "Usage statistics for the inference request", - "properties": { - "prompt_tokens": { - "type": "number", - "description": "Total number of tokens in input", - "default": 0 - }, - "completion_tokens": { - "type": "number", - "description": "Total number of tokens in output", - "default": 0 - }, - "total_tokens": { - "type": "number", - "description": "Total number of input and output tokens", - "default": 0 - } - } - }, - "tool_calls": { - "type": "array", - "description": "An array of tool calls requests made during the response generation", - "items": { - "type": "object", - "properties": { - "arguments": { - "type": "object", - "description": "The arguments passed to be passed to the tool call request" - }, - "name": { - "type": "string", - "description": "The name of the tool to be called" - } - } - } - } - }, - "required": [ - "response" - ] - }, - { - "type": "string", - "format": "binary" - } - ] - } - } -} \ No newline at end of file diff --git a/src/content/workers-ai-models/llama-3.2-11b-vision-instruct.json b/src/content/workers-ai-models/llama-3.2-11b-vision-instruct.json deleted file mode 100644 index 58e82f666a81b8e..000000000000000 --- a/src/content/workers-ai-models/llama-3.2-11b-vision-instruct.json +++ /dev/null @@ -1,491 +0,0 @@ -{ - "id": "2cbc033b-ded8-4e02-bbb2-47cf05d5cfe5", - "source": 1, - "name": "@cf/meta/llama-3.2-11b-vision-instruct", - "description": " The Llama 3.2-Vision instruction-tuned models are optimized for visual recognition, image reasoning, captioning, and answering general questions about an image.", - "task": { - "id": "c329a1f9-323d-4e91-b2aa-582dd4188d34", - "name": "Text Generation", - "description": "Family of generative text models, such as large language models (LLM), that can be adapted for a variety of natural language tasks." - }, - "created_at": "2024-09-25 05:36:04.547", - "tags": [], - "properties": [ - { - "property_id": "context_window", - "value": "128000" - }, - { - "property_id": "price", - "value": [ - { - "unit": "per M input tokens", - "price": 0.049, - "currency": "USD" - }, - { - "unit": "per M output tokens", - "price": 0.68, - "currency": "USD" - } - ] - }, - { - "property_id": "lora", - "value": "true" - }, - { - "property_id": "terms", - "value": "https://github.com/meta-llama/llama-models/blob/main/models/llama3_2/LICENSE" - }, - { - "property_id": "vision", - "value": "true" - } - ], - "schema": { - "input": { - "type": "object", - "oneOf": [ - { - "title": "Prompt", - "properties": { - "prompt": { - "type": "string", - "minLength": 1, - "maxLength": 131072, - "description": "The input text prompt for the model to generate a response." - }, - "image": { - "oneOf": [ - { - "type": "array", - "description": "An array of integers that represent the image data constrained to 8-bit unsigned integer values. Deprecated, use image as a part of messages now.", - "items": { - "type": "number", - "description": "A value between 0 and 255" - } - }, - { - "type": "string", - "format": "binary", - "description": "Binary string representing the image contents. Deprecated, use image as a part of messages now." - } - ] - }, - "raw": { - "type": "boolean", - "default": false, - "description": "If true, a chat template is not applied and you must adhere to the specific model's expected formatting." - }, - "stream": { - "type": "boolean", - "default": false, - "description": "If true, the response will be streamed back incrementally using SSE, Server Sent Events." - }, - "max_tokens": { - "type": "integer", - "default": 256, - "description": "The maximum number of tokens to generate in the response." - }, - "temperature": { - "type": "number", - "default": 0.6, - "minimum": 0, - "maximum": 5, - "description": "Controls the randomness of the output; higher values produce more random results." - }, - "top_p": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses." - }, - "top_k": { - "type": "integer", - "minimum": 1, - "maximum": 50, - "description": "Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises." - }, - "seed": { - "type": "integer", - "minimum": 1, - "maximum": 9999999999, - "description": "Random seed for reproducibility of the generation." - }, - "repetition_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Penalty for repeated tokens; higher values discourage repetition." - }, - "frequency_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Decreases the likelihood of the model repeating the same lines verbatim." - }, - "presence_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Increases the likelihood of the model introducing new topics." - }, - "lora": { - "type": "string", - "description": "Name of the LoRA (Low-Rank Adaptation) model to fine-tune the base model." - } - }, - "required": [ - "prompt" - ] - }, - { - "title": "Messages", - "properties": { - "messages": { - "type": "array", - "description": "An array of message objects representing the conversation history.", - "items": { - "type": "object", - "properties": { - "role": { - "type": "string", - "description": "The role of the message sender (e.g., 'user', 'assistant', 'system', 'tool')." - }, - "tool_call_id": { - "type": "string", - "description": "The tool call id. If you don't know what to put here you can fall back to 000000001" - }, - "content": { - "oneOf": [ - { - "type": "string", - "description": "The content of the message as a string." - }, - { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "Type of the content provided" - }, - "text": { - "type": "string" - }, - "image_url": { - "type": "object", - "properties": { - "url": { - "type": "string", - "pattern": "^data:*", - "description": "image uri with data (e.g. data:image/jpeg;base64,/9j/...). HTTP URL will not be accepted" - } - } - } - } - } - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "Type of the content provided" - }, - "text": { - "type": "string" - }, - "image_url": { - "type": "object", - "properties": { - "url": { - "type": "string", - "pattern": "^data:*", - "description": "image uri with data (e.g. data:image/jpeg;base64,/9j/...). HTTP URL will not be accepted" - } - } - } - } - } - ] - } - } - } - }, - "image": { - "oneOf": [ - { - "type": "array", - "description": "An array of integers that represent the image data constrained to 8-bit unsigned integer values. Deprecated, use image as a part of messages now.", - "items": { - "type": "number", - "description": "A value between 0 and 255" - } - }, - { - "type": "string", - "format": "binary", - "description": "Binary string representing the image contents. Deprecated, use image as a part of messages now." - } - ] - }, - "functions": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "code": { - "type": "string" - } - }, - "required": [ - "name", - "code" - ] - } - }, - "tools": { - "type": "array", - "description": "A list of tools available for the assistant to use.", - "items": { - "type": "object", - "oneOf": [ - { - "properties": { - "name": { - "type": "string", - "description": "The name of the tool. More descriptive the better." - }, - "description": { - "type": "string", - "description": "A brief description of what the tool does." - }, - "parameters": { - "type": "object", - "description": "Schema defining the parameters accepted by the tool.", - "properties": { - "type": { - "type": "string", - "description": "The type of the parameters object (usually 'object')." - }, - "required": { - "type": "array", - "description": "List of required parameter names.", - "items": { - "type": "string" - } - }, - "properties": { - "type": "object", - "description": "Definitions of each parameter.", - "additionalProperties": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The data type of the parameter." - }, - "description": { - "type": "string", - "description": "A description of the expected parameter." - } - }, - "required": [ - "type", - "description" - ] - } - } - }, - "required": [ - "type", - "properties" - ] - } - }, - "required": [ - "name", - "description", - "parameters" - ] - }, - { - "properties": { - "type": { - "type": "string", - "description": "Specifies the type of tool (e.g., 'function')." - }, - "function": { - "type": "object", - "description": "Details of the function tool.", - "properties": { - "name": { - "type": "string", - "description": "The name of the function." - }, - "description": { - "type": "string", - "description": "A brief description of what the function does." - }, - "parameters": { - "type": "object", - "description": "Schema defining the parameters accepted by the function.", - "properties": { - "type": { - "type": "string", - "description": "The type of the parameters object (usually 'object')." - }, - "required": { - "type": "array", - "description": "List of required parameter names.", - "items": { - "type": "string" - } - }, - "properties": { - "type": "object", - "description": "Definitions of each parameter.", - "additionalProperties": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The data type of the parameter." - }, - "description": { - "type": "string", - "description": "A description of the expected parameter." - } - }, - "required": [ - "type", - "description" - ] - } - } - }, - "required": [ - "type", - "properties" - ] - } - }, - "required": [ - "name", - "description", - "parameters" - ] - } - }, - "required": [ - "type", - "function" - ] - } - ] - } - }, - "stream": { - "type": "boolean", - "default": false, - "description": "If true, the response will be streamed back incrementally." - }, - "max_tokens": { - "type": "integer", - "default": 256, - "description": "The maximum number of tokens to generate in the response." - }, - "temperature": { - "type": "number", - "default": 0.6, - "minimum": 0, - "maximum": 5, - "description": "Controls the randomness of the output; higher values produce more random results." - }, - "top_p": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Controls the creativity of the AI's responses by adjusting how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses." - }, - "top_k": { - "type": "integer", - "minimum": 1, - "maximum": 50, - "description": "Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises." - }, - "seed": { - "type": "integer", - "minimum": 1, - "maximum": 9999999999, - "description": "Random seed for reproducibility of the generation." - }, - "repetition_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Penalty for repeated tokens; higher values discourage repetition." - }, - "frequency_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Decreases the likelihood of the model repeating the same lines verbatim." - }, - "presence_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Increases the likelihood of the model introducing new topics." - } - }, - "required": [ - "messages" - ] - } - ] - }, - "output": { - "oneOf": [ - { - "type": "object", - "contentType": "application/json", - "properties": { - "response": { - "type": "string", - "description": "The generated text response from the model" - }, - "tool_calls": { - "type": "array", - "description": "An array of tool calls requests made during the response generation", - "items": { - "type": "object", - "properties": { - "arguments": { - "type": "object", - "description": "The arguments passed to be passed to the tool call request" - }, - "name": { - "type": "string", - "description": "The name of the tool to be called" - } - } - } - } - } - }, - { - "type": "string", - "contentType": "text/event-stream", - "format": "binary" - } - ] - } - } -} \ No newline at end of file diff --git a/src/content/workers-ai-models/llama-3.2-1b-instruct.json b/src/content/workers-ai-models/llama-3.2-1b-instruct.json deleted file mode 100644 index ee1da50014b83a1..000000000000000 --- a/src/content/workers-ai-models/llama-3.2-1b-instruct.json +++ /dev/null @@ -1,473 +0,0 @@ -{ - "id": "906a57fd-b018-4d6c-a43e-a296d4cc5839", - "source": 1, - "name": "@cf/meta/llama-3.2-1b-instruct", - "description": "The Llama 3.2 instruction-tuned text only models are optimized for multilingual dialogue use cases, including agentic retrieval and summarization tasks.", - "task": { - "id": "c329a1f9-323d-4e91-b2aa-582dd4188d34", - "name": "Text Generation", - "description": "Family of generative text models, such as large language models (LLM), that can be adapted for a variety of natural language tasks." - }, - "created_at": "2024-09-25 21:36:32.050", - "tags": [], - "properties": [ - { - "property_id": "price", - "value": [ - { - "unit": "per M input tokens", - "price": 0.027, - "currency": "USD" - }, - { - "unit": "per M output tokens", - "price": 0.2, - "currency": "USD" - } - ] - }, - { - "property_id": "context_window", - "value": "60000" - }, - { - "property_id": "terms", - "value": "https://github.com/meta-llama/llama-models/blob/main/models/llama3_2/LICENSE" - } - ], - "schema": { - "input": { - "type": "object", - "oneOf": [ - { - "title": "Prompt", - "properties": { - "prompt": { - "type": "string", - "minLength": 1, - "description": "The input text prompt for the model to generate a response." - }, - "lora": { - "type": "string", - "description": "Name of the LoRA (Low-Rank Adaptation) model to fine-tune the base model." - }, - "response_format": { - "title": "JSON Mode", - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_object", - "json_schema" - ] - }, - "json_schema": {} - } - }, - "raw": { - "type": "boolean", - "default": false, - "description": "If true, a chat template is not applied and you must adhere to the specific model's expected formatting." - }, - "stream": { - "type": "boolean", - "default": false, - "description": "If true, the response will be streamed back incrementally using SSE, Server Sent Events." - }, - "max_tokens": { - "type": "integer", - "default": 256, - "description": "The maximum number of tokens to generate in the response." - }, - "temperature": { - "type": "number", - "default": 0.6, - "minimum": 0, - "maximum": 5, - "description": "Controls the randomness of the output; higher values produce more random results." - }, - "top_p": { - "type": "number", - "minimum": 0.001, - "maximum": 1, - "description": "Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses." - }, - "top_k": { - "type": "integer", - "minimum": 1, - "maximum": 50, - "description": "Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises." - }, - "seed": { - "type": "integer", - "minimum": 1, - "maximum": 9999999999, - "description": "Random seed for reproducibility of the generation." - }, - "repetition_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Penalty for repeated tokens; higher values discourage repetition." - }, - "frequency_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Decreases the likelihood of the model repeating the same lines verbatim." - }, - "presence_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Increases the likelihood of the model introducing new topics." - } - }, - "required": [ - "prompt" - ] - }, - { - "title": "Messages", - "properties": { - "messages": { - "type": "array", - "description": "An array of message objects representing the conversation history.", - "items": { - "type": "object", - "properties": { - "role": { - "type": "string", - "description": "The role of the message sender (e.g., 'user', 'assistant', 'system', 'tool')." - }, - "content": { - "oneOf": [ - { - "type": "string", - "description": "The content of the message as a string." - }, - { - "type": "array", - "description": "Array of text content parts.", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "Type of the content (text)" - }, - "text": { - "type": "string", - "description": "Text content" - } - } - } - } - ] - } - }, - "required": [ - "role", - "content" - ] - } - }, - "functions": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "code": { - "type": "string" - } - }, - "required": [ - "name", - "code" - ] - } - }, - "tools": { - "type": "array", - "description": "A list of tools available for the assistant to use.", - "items": { - "type": "object", - "oneOf": [ - { - "properties": { - "name": { - "type": "string", - "description": "The name of the tool. More descriptive the better." - }, - "description": { - "type": "string", - "description": "A brief description of what the tool does." - }, - "parameters": { - "type": "object", - "description": "Schema defining the parameters accepted by the tool.", - "properties": { - "type": { - "type": "string", - "description": "The type of the parameters object (usually 'object')." - }, - "required": { - "type": "array", - "description": "List of required parameter names.", - "items": { - "type": "string" - } - }, - "properties": { - "type": "object", - "description": "Definitions of each parameter.", - "additionalProperties": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The data type of the parameter." - }, - "description": { - "type": "string", - "description": "A description of the expected parameter." - } - }, - "required": [ - "type", - "description" - ] - } - } - }, - "required": [ - "type", - "properties" - ] - } - }, - "required": [ - "name", - "description", - "parameters" - ] - }, - { - "properties": { - "type": { - "type": "string", - "description": "Specifies the type of tool (e.g., 'function')." - }, - "function": { - "type": "object", - "description": "Details of the function tool.", - "properties": { - "name": { - "type": "string", - "description": "The name of the function." - }, - "description": { - "type": "string", - "description": "A brief description of what the function does." - }, - "parameters": { - "type": "object", - "description": "Schema defining the parameters accepted by the function.", - "properties": { - "type": { - "type": "string", - "description": "The type of the parameters object (usually 'object')." - }, - "required": { - "type": "array", - "description": "List of required parameter names.", - "items": { - "type": "string" - } - }, - "properties": { - "type": "object", - "description": "Definitions of each parameter.", - "additionalProperties": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The data type of the parameter." - }, - "description": { - "type": "string", - "description": "A description of the expected parameter." - } - }, - "required": [ - "type", - "description" - ] - } - } - }, - "required": [ - "type", - "properties" - ] - } - }, - "required": [ - "name", - "description", - "parameters" - ] - } - }, - "required": [ - "type", - "function" - ] - } - ] - } - }, - "response_format": { - "title": "JSON Mode", - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_object", - "json_schema" - ] - }, - "json_schema": {} - } - }, - "raw": { - "type": "boolean", - "default": false, - "description": "If true, a chat template is not applied and you must adhere to the specific model's expected formatting." - }, - "stream": { - "type": "boolean", - "default": false, - "description": "If true, the response will be streamed back incrementally using SSE, Server Sent Events." - }, - "max_tokens": { - "type": "integer", - "default": 256, - "description": "The maximum number of tokens to generate in the response." - }, - "temperature": { - "type": "number", - "default": 0.6, - "minimum": 0, - "maximum": 5, - "description": "Controls the randomness of the output; higher values produce more random results." - }, - "top_p": { - "type": "number", - "minimum": 0.001, - "maximum": 1, - "description": "Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses." - }, - "top_k": { - "type": "integer", - "minimum": 1, - "maximum": 50, - "description": "Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises." - }, - "seed": { - "type": "integer", - "minimum": 1, - "maximum": 9999999999, - "description": "Random seed for reproducibility of the generation." - }, - "repetition_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Penalty for repeated tokens; higher values discourage repetition." - }, - "frequency_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Decreases the likelihood of the model repeating the same lines verbatim." - }, - "presence_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Increases the likelihood of the model introducing new topics." - } - }, - "required": [ - "messages" - ] - } - ] - }, - "output": { - "oneOf": [ - { - "type": "object", - "properties": { - "response": { - "type": "string", - "description": "The generated text response from the model" - }, - "usage": { - "type": "object", - "description": "Usage statistics for the inference request", - "properties": { - "prompt_tokens": { - "type": "number", - "description": "Total number of tokens in input", - "default": 0 - }, - "completion_tokens": { - "type": "number", - "description": "Total number of tokens in output", - "default": 0 - }, - "total_tokens": { - "type": "number", - "description": "Total number of input and output tokens", - "default": 0 - } - } - }, - "tool_calls": { - "type": "array", - "description": "An array of tool calls requests made during the response generation", - "items": { - "type": "object", - "properties": { - "arguments": { - "type": "object", - "description": "The arguments passed to be passed to the tool call request" - }, - "name": { - "type": "string", - "description": "The name of the tool to be called" - } - } - } - } - }, - "required": [ - "response" - ] - }, - { - "type": "string", - "format": "binary" - } - ] - } - } -} \ No newline at end of file diff --git a/src/content/workers-ai-models/llama-3.2-3b-instruct.json b/src/content/workers-ai-models/llama-3.2-3b-instruct.json deleted file mode 100644 index 83384695c8b4d76..000000000000000 --- a/src/content/workers-ai-models/llama-3.2-3b-instruct.json +++ /dev/null @@ -1,473 +0,0 @@ -{ - "id": "d9dc8363-66f4-4bb0-8641-464ee7bfc131", - "source": 1, - "name": "@cf/meta/llama-3.2-3b-instruct", - "description": "The Llama 3.2 instruction-tuned text only models are optimized for multilingual dialogue use cases, including agentic retrieval and summarization tasks.", - "task": { - "id": "c329a1f9-323d-4e91-b2aa-582dd4188d34", - "name": "Text Generation", - "description": "Family of generative text models, such as large language models (LLM), that can be adapted for a variety of natural language tasks." - }, - "created_at": "2024-09-25 20:05:43.986", - "tags": [], - "properties": [ - { - "property_id": "price", - "value": [ - { - "unit": "per M input tokens", - "price": 0.051, - "currency": "USD" - }, - { - "unit": "per M output tokens", - "price": 0.34, - "currency": "USD" - } - ] - }, - { - "property_id": "context_window", - "value": "80000" - }, - { - "property_id": "terms", - "value": "https://github.com/meta-llama/llama-models/blob/main/models/llama3_2/LICENSE" - } - ], - "schema": { - "input": { - "type": "object", - "oneOf": [ - { - "title": "Prompt", - "properties": { - "prompt": { - "type": "string", - "minLength": 1, - "description": "The input text prompt for the model to generate a response." - }, - "lora": { - "type": "string", - "description": "Name of the LoRA (Low-Rank Adaptation) model to fine-tune the base model." - }, - "response_format": { - "title": "JSON Mode", - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_object", - "json_schema" - ] - }, - "json_schema": {} - } - }, - "raw": { - "type": "boolean", - "default": false, - "description": "If true, a chat template is not applied and you must adhere to the specific model's expected formatting." - }, - "stream": { - "type": "boolean", - "default": false, - "description": "If true, the response will be streamed back incrementally using SSE, Server Sent Events." - }, - "max_tokens": { - "type": "integer", - "default": 256, - "description": "The maximum number of tokens to generate in the response." - }, - "temperature": { - "type": "number", - "default": 0.6, - "minimum": 0, - "maximum": 5, - "description": "Controls the randomness of the output; higher values produce more random results." - }, - "top_p": { - "type": "number", - "minimum": 0.001, - "maximum": 1, - "description": "Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses." - }, - "top_k": { - "type": "integer", - "minimum": 1, - "maximum": 50, - "description": "Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises." - }, - "seed": { - "type": "integer", - "minimum": 1, - "maximum": 9999999999, - "description": "Random seed for reproducibility of the generation." - }, - "repetition_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Penalty for repeated tokens; higher values discourage repetition." - }, - "frequency_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Decreases the likelihood of the model repeating the same lines verbatim." - }, - "presence_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Increases the likelihood of the model introducing new topics." - } - }, - "required": [ - "prompt" - ] - }, - { - "title": "Messages", - "properties": { - "messages": { - "type": "array", - "description": "An array of message objects representing the conversation history.", - "items": { - "type": "object", - "properties": { - "role": { - "type": "string", - "description": "The role of the message sender (e.g., 'user', 'assistant', 'system', 'tool')." - }, - "content": { - "oneOf": [ - { - "type": "string", - "description": "The content of the message as a string." - }, - { - "type": "array", - "description": "Array of text content parts.", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "Type of the content (text)" - }, - "text": { - "type": "string", - "description": "Text content" - } - } - } - } - ] - } - }, - "required": [ - "role", - "content" - ] - } - }, - "functions": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "code": { - "type": "string" - } - }, - "required": [ - "name", - "code" - ] - } - }, - "tools": { - "type": "array", - "description": "A list of tools available for the assistant to use.", - "items": { - "type": "object", - "oneOf": [ - { - "properties": { - "name": { - "type": "string", - "description": "The name of the tool. More descriptive the better." - }, - "description": { - "type": "string", - "description": "A brief description of what the tool does." - }, - "parameters": { - "type": "object", - "description": "Schema defining the parameters accepted by the tool.", - "properties": { - "type": { - "type": "string", - "description": "The type of the parameters object (usually 'object')." - }, - "required": { - "type": "array", - "description": "List of required parameter names.", - "items": { - "type": "string" - } - }, - "properties": { - "type": "object", - "description": "Definitions of each parameter.", - "additionalProperties": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The data type of the parameter." - }, - "description": { - "type": "string", - "description": "A description of the expected parameter." - } - }, - "required": [ - "type", - "description" - ] - } - } - }, - "required": [ - "type", - "properties" - ] - } - }, - "required": [ - "name", - "description", - "parameters" - ] - }, - { - "properties": { - "type": { - "type": "string", - "description": "Specifies the type of tool (e.g., 'function')." - }, - "function": { - "type": "object", - "description": "Details of the function tool.", - "properties": { - "name": { - "type": "string", - "description": "The name of the function." - }, - "description": { - "type": "string", - "description": "A brief description of what the function does." - }, - "parameters": { - "type": "object", - "description": "Schema defining the parameters accepted by the function.", - "properties": { - "type": { - "type": "string", - "description": "The type of the parameters object (usually 'object')." - }, - "required": { - "type": "array", - "description": "List of required parameter names.", - "items": { - "type": "string" - } - }, - "properties": { - "type": "object", - "description": "Definitions of each parameter.", - "additionalProperties": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The data type of the parameter." - }, - "description": { - "type": "string", - "description": "A description of the expected parameter." - } - }, - "required": [ - "type", - "description" - ] - } - } - }, - "required": [ - "type", - "properties" - ] - } - }, - "required": [ - "name", - "description", - "parameters" - ] - } - }, - "required": [ - "type", - "function" - ] - } - ] - } - }, - "response_format": { - "title": "JSON Mode", - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_object", - "json_schema" - ] - }, - "json_schema": {} - } - }, - "raw": { - "type": "boolean", - "default": false, - "description": "If true, a chat template is not applied and you must adhere to the specific model's expected formatting." - }, - "stream": { - "type": "boolean", - "default": false, - "description": "If true, the response will be streamed back incrementally using SSE, Server Sent Events." - }, - "max_tokens": { - "type": "integer", - "default": 256, - "description": "The maximum number of tokens to generate in the response." - }, - "temperature": { - "type": "number", - "default": 0.6, - "minimum": 0, - "maximum": 5, - "description": "Controls the randomness of the output; higher values produce more random results." - }, - "top_p": { - "type": "number", - "minimum": 0.001, - "maximum": 1, - "description": "Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses." - }, - "top_k": { - "type": "integer", - "minimum": 1, - "maximum": 50, - "description": "Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises." - }, - "seed": { - "type": "integer", - "minimum": 1, - "maximum": 9999999999, - "description": "Random seed for reproducibility of the generation." - }, - "repetition_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Penalty for repeated tokens; higher values discourage repetition." - }, - "frequency_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Decreases the likelihood of the model repeating the same lines verbatim." - }, - "presence_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Increases the likelihood of the model introducing new topics." - } - }, - "required": [ - "messages" - ] - } - ] - }, - "output": { - "oneOf": [ - { - "type": "object", - "properties": { - "response": { - "type": "string", - "description": "The generated text response from the model" - }, - "usage": { - "type": "object", - "description": "Usage statistics for the inference request", - "properties": { - "prompt_tokens": { - "type": "number", - "description": "Total number of tokens in input", - "default": 0 - }, - "completion_tokens": { - "type": "number", - "description": "Total number of tokens in output", - "default": 0 - }, - "total_tokens": { - "type": "number", - "description": "Total number of input and output tokens", - "default": 0 - } - } - }, - "tool_calls": { - "type": "array", - "description": "An array of tool calls requests made during the response generation", - "items": { - "type": "object", - "properties": { - "arguments": { - "type": "object", - "description": "The arguments passed to be passed to the tool call request" - }, - "name": { - "type": "string", - "description": "The name of the tool to be called" - } - } - } - } - }, - "required": [ - "response" - ] - }, - { - "type": "string", - "format": "binary" - } - ] - } - } -} \ No newline at end of file diff --git a/src/content/workers-ai-models/llama-3.3-70b-instruct-fp8-fast.json b/src/content/workers-ai-models/llama-3.3-70b-instruct-fp8-fast.json deleted file mode 100644 index 39ba381e956178a..000000000000000 --- a/src/content/workers-ai-models/llama-3.3-70b-instruct-fp8-fast.json +++ /dev/null @@ -1,578 +0,0 @@ -{ - "id": "7a143886-c9bb-4a1c-be95-377b1973bc3b", - "source": 1, - "name": "@cf/meta/llama-3.3-70b-instruct-fp8-fast", - "description": "Llama 3.3 70B quantized to fp8 precision, optimized to be faster.", - "task": { - "id": "c329a1f9-323d-4e91-b2aa-582dd4188d34", - "name": "Text Generation", - "description": "Family of generative text models, such as large language models (LLM), that can be adapted for a variety of natural language tasks." - }, - "created_at": "2024-12-06 17:09:18.338", - "tags": [], - "properties": [ - { - "property_id": "async_queue", - "value": "true" - }, - { - "property_id": "context_window", - "value": "24000" - }, - { - "property_id": "price", - "value": [ - { - "unit": "per M input tokens", - "price": 0.29, - "currency": "USD" - }, - { - "unit": "per M output tokens", - "price": 2.25, - "currency": "USD" - } - ] - }, - { - "property_id": "function_calling", - "value": "true" - }, - { - "property_id": "terms", - "value": "https://github.com/meta-llama/llama-models/blob/main/models/llama3_3/LICENSE" - } - ], - "schema": { - "input": { - "type": "object", - "oneOf": [ - { - "title": "Prompt", - "properties": { - "prompt": { - "type": "string", - "minLength": 1, - "description": "The input text prompt for the model to generate a response." - }, - "lora": { - "type": "string", - "description": "Name of the LoRA (Low-Rank Adaptation) model to fine-tune the base model." - }, - "response_format": { - "title": "JSON Mode", - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_object", - "json_schema" - ] - }, - "json_schema": {} - } - }, - "raw": { - "type": "boolean", - "default": false, - "description": "If true, a chat template is not applied and you must adhere to the specific model's expected formatting." - }, - "stream": { - "type": "boolean", - "default": false, - "description": "If true, the response will be streamed back incrementally using SSE, Server Sent Events." - }, - "max_tokens": { - "type": "integer", - "default": 256, - "description": "The maximum number of tokens to generate in the response." - }, - "temperature": { - "type": "number", - "default": 0.6, - "minimum": 0, - "maximum": 5, - "description": "Controls the randomness of the output; higher values produce more random results." - }, - "top_p": { - "type": "number", - "minimum": 0.001, - "maximum": 1, - "description": "Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses." - }, - "top_k": { - "type": "integer", - "minimum": 1, - "maximum": 50, - "description": "Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises." - }, - "seed": { - "type": "integer", - "minimum": 1, - "maximum": 9999999999, - "description": "Random seed for reproducibility of the generation." - }, - "repetition_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Penalty for repeated tokens; higher values discourage repetition." - }, - "frequency_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Decreases the likelihood of the model repeating the same lines verbatim." - }, - "presence_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Increases the likelihood of the model introducing new topics." - } - }, - "required": [ - "prompt" - ] - }, - { - "title": "Messages", - "properties": { - "messages": { - "type": "array", - "description": "An array of message objects representing the conversation history.", - "items": { - "type": "object", - "properties": { - "role": { - "type": "string", - "description": "The role of the message sender (e.g., 'user', 'assistant', 'system', 'tool')." - }, - "content": { - "oneOf": [ - { - "type": "string", - "description": "The content of the message as a string." - }, - { - "type": "array", - "description": "Array of text content parts.", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "Type of the content (text)" - }, - "text": { - "type": "string", - "description": "Text content" - } - } - } - } - ] - } - }, - "required": [ - "role", - "content" - ] - } - }, - "functions": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "code": { - "type": "string" - } - }, - "required": [ - "name", - "code" - ] - } - }, - "tools": { - "type": "array", - "description": "A list of tools available for the assistant to use.", - "items": { - "type": "object", - "oneOf": [ - { - "properties": { - "name": { - "type": "string", - "description": "The name of the tool. More descriptive the better." - }, - "description": { - "type": "string", - "description": "A brief description of what the tool does." - }, - "parameters": { - "type": "object", - "description": "Schema defining the parameters accepted by the tool.", - "properties": { - "type": { - "type": "string", - "description": "The type of the parameters object (usually 'object')." - }, - "required": { - "type": "array", - "description": "List of required parameter names.", - "items": { - "type": "string" - } - }, - "properties": { - "type": "object", - "description": "Definitions of each parameter.", - "additionalProperties": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The data type of the parameter." - }, - "description": { - "type": "string", - "description": "A description of the expected parameter." - } - }, - "required": [ - "type", - "description" - ] - } - } - }, - "required": [ - "type", - "properties" - ] - } - }, - "required": [ - "name", - "description", - "parameters" - ] - }, - { - "properties": { - "type": { - "type": "string", - "description": "Specifies the type of tool (e.g., 'function')." - }, - "function": { - "type": "object", - "description": "Details of the function tool.", - "properties": { - "name": { - "type": "string", - "description": "The name of the function." - }, - "description": { - "type": "string", - "description": "A brief description of what the function does." - }, - "parameters": { - "type": "object", - "description": "Schema defining the parameters accepted by the function.", - "properties": { - "type": { - "type": "string", - "description": "The type of the parameters object (usually 'object')." - }, - "required": { - "type": "array", - "description": "List of required parameter names.", - "items": { - "type": "string" - } - }, - "properties": { - "type": "object", - "description": "Definitions of each parameter.", - "additionalProperties": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The data type of the parameter." - }, - "description": { - "type": "string", - "description": "A description of the expected parameter." - } - }, - "required": [ - "type", - "description" - ] - } - } - }, - "required": [ - "type", - "properties" - ] - } - }, - "required": [ - "name", - "description", - "parameters" - ] - } - }, - "required": [ - "type", - "function" - ] - } - ] - } - }, - "response_format": { - "title": "JSON Mode", - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_object", - "json_schema" - ] - }, - "json_schema": {} - } - }, - "raw": { - "type": "boolean", - "default": false, - "description": "If true, a chat template is not applied and you must adhere to the specific model's expected formatting." - }, - "stream": { - "type": "boolean", - "default": false, - "description": "If true, the response will be streamed back incrementally using SSE, Server Sent Events." - }, - "max_tokens": { - "type": "integer", - "default": 256, - "description": "The maximum number of tokens to generate in the response." - }, - "temperature": { - "type": "number", - "default": 0.6, - "minimum": 0, - "maximum": 5, - "description": "Controls the randomness of the output; higher values produce more random results." - }, - "top_p": { - "type": "number", - "minimum": 0.001, - "maximum": 1, - "description": "Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses." - }, - "top_k": { - "type": "integer", - "minimum": 1, - "maximum": 50, - "description": "Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises." - }, - "seed": { - "type": "integer", - "minimum": 1, - "maximum": 9999999999, - "description": "Random seed for reproducibility of the generation." - }, - "repetition_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Penalty for repeated tokens; higher values discourage repetition." - }, - "frequency_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Decreases the likelihood of the model repeating the same lines verbatim." - }, - "presence_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Increases the likelihood of the model introducing new topics." - } - }, - "required": [ - "messages" - ] - }, - { - "title": "Async Batch", - "type": "object", - "properties": { - "requests": { - "type": "array", - "items": { - "type": "object", - "properties": { - "external_reference": { - "type": "string", - "description": "User-supplied reference. This field will be present in the response as well it can be used to reference the request and response. It's NOT validated to be unique." - }, - "prompt": { - "type": "string", - "minLength": 1, - "description": "Prompt for the text generation model" - }, - "stream": { - "type": "boolean", - "default": false, - "description": "If true, the response will be streamed back incrementally using SSE, Server Sent Events." - }, - "max_tokens": { - "type": "integer", - "default": 256, - "description": "The maximum number of tokens to generate in the response." - }, - "temperature": { - "type": "number", - "default": 0.6, - "minimum": 0, - "maximum": 5, - "description": "Controls the randomness of the output; higher values produce more random results." - }, - "top_p": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses." - }, - "seed": { - "type": "integer", - "minimum": 1, - "maximum": 9999999999, - "description": "Random seed for reproducibility of the generation." - }, - "repetition_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Penalty for repeated tokens; higher values discourage repetition." - }, - "frequency_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Decreases the likelihood of the model repeating the same lines verbatim." - }, - "presence_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Increases the likelihood of the model introducing new topics." - }, - "response_format": { - "title": "JSON Mode", - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_object", - "json_schema" - ] - }, - "json_schema": {} - } - } - } - } - } - } - } - ] - }, - "output": { - "oneOf": [ - { - "type": "object", - "contentType": "application/json", - "properties": { - "response": { - "type": "string", - "description": "The generated text response from the model" - }, - "usage": { - "type": "object", - "description": "Usage statistics for the inference request", - "properties": { - "prompt_tokens": { - "type": "number", - "description": "Total number of tokens in input", - "default": 0 - }, - "completion_tokens": { - "type": "number", - "description": "Total number of tokens in output", - "default": 0 - }, - "total_tokens": { - "type": "number", - "description": "Total number of input and output tokens", - "default": 0 - } - } - }, - "tool_calls": { - "type": "array", - "description": "An array of tool calls requests made during the response generation", - "items": { - "type": "object", - "properties": { - "arguments": { - "type": "object", - "description": "The arguments passed to be passed to the tool call request" - }, - "name": { - "type": "string", - "description": "The name of the tool to be called" - } - } - } - } - }, - "required": [ - "response" - ] - }, - { - "type": "string", - "contentType": "text/event-stream", - "format": "binary" - }, - { - "type": "object", - "contentType": "application/json", - "title": "Async response", - "properties": { - "request_id": { - "type": "string", - "description": "The async request id that can be used to obtain the results." - } - } - } - ] - } - } -} \ No newline at end of file diff --git a/src/content/workers-ai-models/llama-4-scout-17b-16e-instruct.json b/src/content/workers-ai-models/llama-4-scout-17b-16e-instruct.json deleted file mode 100644 index a19e2229e49c75d..000000000000000 --- a/src/content/workers-ai-models/llama-4-scout-17b-16e-instruct.json +++ /dev/null @@ -1,957 +0,0 @@ -{ - "id": "06455e78-19f7-487b-93cd-c05a3dd07813", - "source": 1, - "name": "@cf/meta/llama-4-scout-17b-16e-instruct", - "description": "Meta's Llama 4 Scout is a 17 billion parameter model with 16 experts that is natively multimodal. These models leverage a mixture-of-experts architecture to offer industry-leading performance in text and image understanding.", - "task": { - "id": "c329a1f9-323d-4e91-b2aa-582dd4188d34", - "name": "Text Generation", - "description": "Family of generative text models, such as large language models (LLM), that can be adapted for a variety of natural language tasks." - }, - "created_at": "2025-04-05 20:25:56.137", - "tags": [], - "properties": [ - { - "property_id": "async_queue", - "value": "true" - }, - { - "property_id": "context_window", - "value": "131000" - }, - { - "property_id": "price", - "value": [ - { - "unit": "per M input tokens", - "price": 0.27, - "currency": "USD" - }, - { - "unit": "per M output tokens", - "price": 0.85, - "currency": "USD" - } - ] - }, - { - "property_id": "function_calling", - "value": "true" - }, - { - "property_id": "terms", - "value": "https://github.com/meta-llama/llama-models/blob/main/models/llama4/LICENSE" - }, - { - "property_id": "vision", - "value": "true" - } - ], - "schema": { - "input": { - "type": "object", - "oneOf": [ - { - "title": "Prompt", - "properties": { - "prompt": { - "type": "string", - "minLength": 1, - "description": "The input text prompt for the model to generate a response." - }, - "guided_json": { - "type": "object", - "description": "JSON schema that should be fulfilled for the response." - }, - "response_format": { - "title": "JSON Mode", - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_object", - "json_schema" - ] - }, - "json_schema": {} - } - }, - "raw": { - "type": "boolean", - "default": false, - "description": "If true, a chat template is not applied and you must adhere to the specific model's expected formatting." - }, - "stream": { - "type": "boolean", - "default": false, - "description": "If true, the response will be streamed back incrementally using SSE, Server Sent Events." - }, - "max_tokens": { - "type": "integer", - "default": 256, - "description": "The maximum number of tokens to generate in the response." - }, - "temperature": { - "type": "number", - "default": 0.15, - "minimum": 0, - "maximum": 5, - "description": "Controls the randomness of the output; higher values produce more random results." - }, - "top_p": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses." - }, - "top_k": { - "type": "integer", - "minimum": 1, - "maximum": 50, - "description": "Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises." - }, - "seed": { - "type": "integer", - "minimum": 1, - "maximum": 9999999999, - "description": "Random seed for reproducibility of the generation." - }, - "repetition_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Penalty for repeated tokens; higher values discourage repetition." - }, - "frequency_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Decreases the likelihood of the model repeating the same lines verbatim." - }, - "presence_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Increases the likelihood of the model introducing new topics." - } - }, - "required": [ - "prompt" - ] - }, - { - "title": "Messages", - "properties": { - "messages": { - "type": "array", - "description": "An array of message objects representing the conversation history.", - "items": { - "type": "object", - "properties": { - "role": { - "type": "string", - "description": "The role of the message sender (e.g., 'user', 'assistant', 'system', 'tool')." - }, - "tool_call_id": { - "type": "string", - "description": "The tool call id. If you don't know what to put here you can fall back to 000000001" - }, - "content": { - "oneOf": [ - { - "type": "string", - "description": "The content of the message as a string." - }, - { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "Type of the content provided" - }, - "text": { - "type": "string" - }, - "image_url": { - "type": "object", - "properties": { - "url": { - "type": "string", - "pattern": "^data:*", - "description": "image uri with data (e.g. data:image/jpeg;base64,/9j/...). HTTP URL will not be accepted" - } - } - } - } - } - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "Type of the content provided" - }, - "text": { - "type": "string" - }, - "image_url": { - "type": "object", - "properties": { - "url": { - "type": "string", - "pattern": "^data:*", - "description": "image uri with data (e.g. data:image/jpeg;base64,/9j/...). HTTP URL will not be accepted" - } - } - } - } - } - ] - } - } - } - }, - "functions": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "code": { - "type": "string" - } - }, - "required": [ - "name", - "code" - ] - } - }, - "tools": { - "type": "array", - "description": "A list of tools available for the assistant to use.", - "items": { - "type": "object", - "oneOf": [ - { - "properties": { - "name": { - "type": "string", - "description": "The name of the tool. More descriptive the better." - }, - "description": { - "type": "string", - "description": "A brief description of what the tool does." - }, - "parameters": { - "type": "object", - "description": "Schema defining the parameters accepted by the tool.", - "properties": { - "type": { - "type": "string", - "description": "The type of the parameters object (usually 'object')." - }, - "required": { - "type": "array", - "description": "List of required parameter names.", - "items": { - "type": "string" - } - }, - "properties": { - "type": "object", - "description": "Definitions of each parameter.", - "additionalProperties": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The data type of the parameter." - }, - "description": { - "type": "string", - "description": "A description of the expected parameter." - } - }, - "required": [ - "type", - "description" - ] - } - } - }, - "required": [ - "type", - "properties" - ] - } - }, - "required": [ - "name", - "description", - "parameters" - ] - }, - { - "properties": { - "type": { - "type": "string", - "description": "Specifies the type of tool (e.g., 'function')." - }, - "function": { - "type": "object", - "description": "Details of the function tool.", - "properties": { - "name": { - "type": "string", - "description": "The name of the function." - }, - "description": { - "type": "string", - "description": "A brief description of what the function does." - }, - "parameters": { - "type": "object", - "description": "Schema defining the parameters accepted by the function.", - "properties": { - "type": { - "type": "string", - "description": "The type of the parameters object (usually 'object')." - }, - "required": { - "type": "array", - "description": "List of required parameter names.", - "items": { - "type": "string" - } - }, - "properties": { - "type": "object", - "description": "Definitions of each parameter.", - "additionalProperties": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The data type of the parameter." - }, - "description": { - "type": "string", - "description": "A description of the expected parameter." - } - }, - "required": [ - "type", - "description" - ] - } - } - }, - "required": [ - "type", - "properties" - ] - } - }, - "required": [ - "name", - "description", - "parameters" - ] - } - }, - "required": [ - "type", - "function" - ] - } - ] - } - }, - "response_format": { - "title": "JSON Mode", - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_object", - "json_schema" - ] - }, - "json_schema": {} - } - }, - "guided_json": { - "type": "object", - "description": "JSON schema that should be fufilled for the response." - }, - "raw": { - "type": "boolean", - "default": false, - "description": "If true, a chat template is not applied and you must adhere to the specific model's expected formatting." - }, - "stream": { - "type": "boolean", - "default": false, - "description": "If true, the response will be streamed back incrementally using SSE, Server Sent Events." - }, - "max_tokens": { - "type": "integer", - "default": 256, - "description": "The maximum number of tokens to generate in the response." - }, - "temperature": { - "type": "number", - "default": 0.15, - "minimum": 0, - "maximum": 5, - "description": "Controls the randomness of the output; higher values produce more random results." - }, - "top_p": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses." - }, - "top_k": { - "type": "integer", - "minimum": 1, - "maximum": 50, - "description": "Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises." - }, - "seed": { - "type": "integer", - "minimum": 1, - "maximum": 9999999999, - "description": "Random seed for reproducibility of the generation." - }, - "repetition_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Penalty for repeated tokens; higher values discourage repetition." - }, - "frequency_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Decreases the likelihood of the model repeating the same lines verbatim." - }, - "presence_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Increases the likelihood of the model introducing new topics." - } - }, - "required": [ - "messages" - ] - }, - { - "title": "Async_Batch", - "type": "object", - "properties": { - "requests": { - "type": "array", - "items": { - "type": "object", - "oneOf": [ - { - "title": "Prompt_Inner", - "properties": { - "prompt": { - "type": "string", - "minLength": 1, - "description": "The input text prompt for the model to generate a response." - }, - "guided_json": { - "type": "object", - "description": "JSON schema that should be fulfilled for the response." - }, - "response_format": { - "title": "JSON Mode", - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_object", - "json_schema" - ] - }, - "json_schema": {} - } - }, - "raw": { - "type": "boolean", - "default": false, - "description": "If true, a chat template is not applied and you must adhere to the specific model's expected formatting." - }, - "stream": { - "type": "boolean", - "default": false, - "description": "If true, the response will be streamed back incrementally using SSE, Server Sent Events." - }, - "max_tokens": { - "type": "integer", - "default": 256, - "description": "The maximum number of tokens to generate in the response." - }, - "temperature": { - "type": "number", - "default": 0.15, - "minimum": 0, - "maximum": 5, - "description": "Controls the randomness of the output; higher values produce more random results." - }, - "top_p": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses." - }, - "top_k": { - "type": "integer", - "minimum": 1, - "maximum": 50, - "description": "Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises." - }, - "seed": { - "type": "integer", - "minimum": 1, - "maximum": 9999999999, - "description": "Random seed for reproducibility of the generation." - }, - "repetition_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Penalty for repeated tokens; higher values discourage repetition." - }, - "frequency_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Decreases the likelihood of the model repeating the same lines verbatim." - }, - "presence_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Increases the likelihood of the model introducing new topics." - } - }, - "required": [ - "prompt" - ] - }, - { - "title": "Messages_Inner", - "properties": { - "messages": { - "type": "array", - "description": "An array of message objects representing the conversation history.", - "items": { - "type": "object", - "properties": { - "role": { - "type": "string", - "description": "The role of the message sender (e.g., 'user', 'assistant', 'system', 'tool')." - }, - "tool_call_id": { - "type": "string", - "description": "The tool call id. If you don't know what to put here you can fall back to 000000001", - "pattern": "[a-zA-Z0-9]{9}" - }, - "content": { - "oneOf": [ - { - "type": "string", - "description": "The content of the message as a string." - }, - { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "Type of the content provided" - }, - "text": { - "type": "string" - }, - "image_url": { - "type": "object", - "properties": { - "url": { - "type": "string", - "pattern": "^data:*", - "description": "image uri with data (e.g. data:image/jpeg;base64,/9j/...). HTTP URL will not be accepted" - } - } - } - } - } - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "Type of the content provided" - }, - "text": { - "type": "string" - }, - "image_url": { - "type": "object", - "properties": { - "url": { - "type": "string", - "pattern": "^data:*", - "description": "image uri with data (e.g. data:image/jpeg;base64,/9j/...). HTTP URL will not be accepted" - } - } - } - } - } - ] - } - } - } - }, - "functions": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "code": { - "type": "string" - } - }, - "required": [ - "name", - "code" - ] - } - }, - "tools": { - "type": "array", - "description": "A list of tools available for the assistant to use.", - "items": { - "type": "object", - "oneOf": [ - { - "properties": { - "name": { - "type": "string", - "description": "The name of the tool. More descriptive the better." - }, - "description": { - "type": "string", - "description": "A brief description of what the tool does." - }, - "parameters": { - "type": "object", - "description": "Schema defining the parameters accepted by the tool.", - "properties": { - "type": { - "type": "string", - "description": "The type of the parameters object (usually 'object')." - }, - "required": { - "type": "array", - "description": "List of required parameter names.", - "items": { - "type": "string" - } - }, - "properties": { - "type": "object", - "description": "Definitions of each parameter.", - "additionalProperties": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The data type of the parameter." - }, - "description": { - "type": "string", - "description": "A description of the expected parameter." - } - }, - "required": [ - "type", - "description" - ] - } - } - }, - "required": [ - "type", - "properties" - ] - } - }, - "required": [ - "name", - "description", - "parameters" - ] - }, - { - "properties": { - "type": { - "type": "string", - "description": "Specifies the type of tool (e.g., 'function')." - }, - "function": { - "type": "object", - "description": "Details of the function tool.", - "properties": { - "name": { - "type": "string", - "description": "The name of the function." - }, - "description": { - "type": "string", - "description": "A brief description of what the function does." - }, - "parameters": { - "type": "object", - "description": "Schema defining the parameters accepted by the function.", - "properties": { - "type": { - "type": "string", - "description": "The type of the parameters object (usually 'object')." - }, - "required": { - "type": "array", - "description": "List of required parameter names.", - "items": { - "type": "string" - } - }, - "properties": { - "type": "object", - "description": "Definitions of each parameter.", - "additionalProperties": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The data type of the parameter." - }, - "description": { - "type": "string", - "description": "A description of the expected parameter." - } - }, - "required": [ - "type", - "description" - ] - } - } - }, - "required": [ - "type", - "properties" - ] - } - }, - "required": [ - "name", - "description", - "parameters" - ] - } - }, - "required": [ - "type", - "function" - ] - } - ] - } - }, - "response_format": { - "title": "JSON Mode", - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_object", - "json_schema" - ] - }, - "json_schema": {} - } - }, - "guided_json": { - "type": "object", - "description": "JSON schema that should be fufilled for the response." - }, - "raw": { - "type": "boolean", - "default": false, - "description": "If true, a chat template is not applied and you must adhere to the specific model's expected formatting." - }, - "stream": { - "type": "boolean", - "default": false, - "description": "If true, the response will be streamed back incrementally using SSE, Server Sent Events." - }, - "max_tokens": { - "type": "integer", - "default": 256, - "description": "The maximum number of tokens to generate in the response." - }, - "temperature": { - "type": "number", - "default": 0.15, - "minimum": 0, - "maximum": 5, - "description": "Controls the randomness of the output; higher values produce more random results." - }, - "top_p": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses." - }, - "top_k": { - "type": "integer", - "minimum": 1, - "maximum": 50, - "description": "Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises." - }, - "seed": { - "type": "integer", - "minimum": 1, - "maximum": 9999999999, - "description": "Random seed for reproducibility of the generation." - }, - "repetition_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Penalty for repeated tokens; higher values discourage repetition." - }, - "frequency_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Decreases the likelihood of the model repeating the same lines verbatim." - }, - "presence_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Increases the likelihood of the model introducing new topics." - } - }, - "required": [ - "messages" - ] - } - ] - } - } - }, - "required": [ - "requests" - ] - } - ] - }, - "output": { - "oneOf": [ - { - "type": "object", - "contentType": "application/json", - "properties": { - "response": { - "type": "string", - "description": "The generated text response from the model" - }, - "usage": { - "type": "object", - "description": "Usage statistics for the inference request", - "properties": { - "prompt_tokens": { - "type": "number", - "description": "Total number of tokens in input", - "default": 0 - }, - "completion_tokens": { - "type": "number", - "description": "Total number of tokens in output", - "default": 0 - }, - "total_tokens": { - "type": "number", - "description": "Total number of input and output tokens", - "default": 0 - } - } - }, - "tool_calls": { - "type": "array", - "description": "An array of tool calls requests made during the response generation", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "The tool call id." - }, - "type": { - "type": "string", - "description": "Specifies the type of tool (e.g., 'function')." - }, - "function": { - "type": "object", - "description": "Details of the function tool.", - "properties": { - "name": { - "type": "string", - "description": "The name of the tool to be called" - }, - "arguments": { - "type": "object", - "description": "The arguments passed to be passed to the tool call request" - } - } - } - } - } - } - }, - "required": [ - "response" - ] - }, - { - "type": "string", - "contentType": "text/event-stream", - "format": "binary" - } - ] - } - } -} \ No newline at end of file diff --git a/src/content/workers-ai-models/llama-guard-3-8b.json b/src/content/workers-ai-models/llama-guard-3-8b.json deleted file mode 100644 index 0a07d7c5ffb1afc..000000000000000 --- a/src/content/workers-ai-models/llama-guard-3-8b.json +++ /dev/null @@ -1,152 +0,0 @@ -{ - "id": "cc80437b-9a8d-4f1a-9c77-9aaf0d226922", - "source": 1, - "name": "@cf/meta/llama-guard-3-8b", - "description": "Llama Guard 3 is a Llama-3.1-8B pretrained model, fine-tuned for content safety classification. Similar to previous versions, it can be used to classify content in both LLM inputs (prompt classification) and in LLM responses (response classification). It acts as an LLM – it generates text in its output that indicates whether a given prompt or response is safe or unsafe, and if unsafe, it also lists the content categories violated.", - "task": { - "id": "c329a1f9-323d-4e91-b2aa-582dd4188d34", - "name": "Text Generation", - "description": "Family of generative text models, such as large language models (LLM), that can be adapted for a variety of natural language tasks." - }, - "created_at": "2025-01-22 23:26:23.495", - "tags": [ - "moderation", - "safety", - "content-filtering", - "guardrails" - ], - "properties": [ - { - "property_id": "context_window", - "value": "131072" - }, - { - "property_id": "price", - "value": [ - { - "unit": "per M input tokens", - "price": 0.48, - "currency": "USD" - }, - { - "unit": "per M output tokens", - "price": 0.03, - "currency": "USD" - } - ] - }, - { - "property_id": "lora", - "value": "true" - } - ], - "schema": { - "input": { - "type": "object", - "properties": { - "messages": { - "type": "array", - "description": "An array of message objects representing the conversation history.", - "items": { - "type": "object", - "properties": { - "role": { - "enum": [ - "user", - "assistant" - ], - "description": "The role of the message sender must alternate between 'user' and 'assistant'." - }, - "content": { - "type": "string", - "description": "The content of the message as a string." - } - }, - "required": [ - "role", - "content" - ] - } - }, - "max_tokens": { - "type": "integer", - "default": 256, - "description": "The maximum number of tokens to generate in the response." - }, - "temperature": { - "type": "number", - "default": 0.6, - "minimum": 0, - "maximum": 5, - "description": "Controls the randomness of the output; higher values produce more random results." - }, - "response_format": { - "type": "object", - "description": "Dictate the output format of the generated response.", - "properties": { - "type": { - "type": "string", - "description": "Set to json_object to process and output generated text as JSON." - } - } - } - }, - "required": [ - "messages" - ] - }, - "output": { - "type": "object", - "contentType": "application/json", - "properties": { - "response": { - "oneOf": [ - { - "type": "string", - "description": "The generated text response from the model." - }, - { - "type": "object", - "description": "The json response parsed from the generated text response from the model.", - "properties": { - "safe": { - "type": "boolean", - "description": "Whether the conversation is safe or not." - }, - "categories": { - "type": "array", - "description": "A list of what hazard categories predicted for the conversation, if the conversation is deemed unsafe.", - "items": { - "type": "string", - "description": "Hazard category classname, from S1 to S14." - } - } - } - } - ] - }, - "usage": { - "type": "object", - "description": "Usage statistics for the inference request", - "properties": { - "prompt_tokens": { - "type": "number", - "description": "Total number of tokens in input", - "default": 0 - }, - "completion_tokens": { - "type": "number", - "description": "Total number of tokens in output", - "default": 0 - }, - "total_tokens": { - "type": "number", - "description": "Total number of input and output tokens", - "default": 0 - } - } - } - } - } - } -} \ No newline at end of file diff --git a/src/content/workers-ai-models/llamaguard-7b-awq.json b/src/content/workers-ai-models/llamaguard-7b-awq.json deleted file mode 100644 index ab959c81d129317..000000000000000 --- a/src/content/workers-ai-models/llamaguard-7b-awq.json +++ /dev/null @@ -1,446 +0,0 @@ -{ - "id": "d9b7a55c-cefa-4208-8ab3-11497a2b046c", - "source": 2, - "name": "@hf/thebloke/llamaguard-7b-awq", - "description": "Llama Guard is a model for classifying the safety of LLM prompts and responses, using a taxonomy of safety risks.\n", - "task": { - "id": "c329a1f9-323d-4e91-b2aa-582dd4188d34", - "name": "Text Generation", - "description": "Family of generative text models, such as large language models (LLM), that can be adapted for a variety of natural language tasks." - }, - "created_at": "2024-02-06 18:13:59.060", - "tags": [ - "moderation", - "safety", - "content-filtering", - "guardrails" - ], - "properties": [ - { - "property_id": "beta", - "value": "true" - }, - { - "property_id": "context_window", - "value": "4096" - }, - { - "property_id": "planned_deprecation_date", - "value": "2025-10-01" - } - ], - "schema": { - "input": { - "type": "object", - "oneOf": [ - { - "title": "Prompt", - "properties": { - "prompt": { - "type": "string", - "minLength": 1, - "description": "The input text prompt for the model to generate a response." - }, - "lora": { - "type": "string", - "description": "Name of the LoRA (Low-Rank Adaptation) model to fine-tune the base model." - }, - "response_format": { - "title": "JSON Mode", - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_object", - "json_schema" - ] - }, - "json_schema": {} - } - }, - "raw": { - "type": "boolean", - "default": false, - "description": "If true, a chat template is not applied and you must adhere to the specific model's expected formatting." - }, - "stream": { - "type": "boolean", - "default": false, - "description": "If true, the response will be streamed back incrementally using SSE, Server Sent Events." - }, - "max_tokens": { - "type": "integer", - "default": 256, - "description": "The maximum number of tokens to generate in the response." - }, - "temperature": { - "type": "number", - "default": 0.6, - "minimum": 0, - "maximum": 5, - "description": "Controls the randomness of the output; higher values produce more random results." - }, - "top_p": { - "type": "number", - "minimum": 0.001, - "maximum": 1, - "description": "Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses." - }, - "top_k": { - "type": "integer", - "minimum": 1, - "maximum": 50, - "description": "Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises." - }, - "seed": { - "type": "integer", - "minimum": 1, - "maximum": 9999999999, - "description": "Random seed for reproducibility of the generation." - }, - "repetition_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Penalty for repeated tokens; higher values discourage repetition." - }, - "frequency_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Decreases the likelihood of the model repeating the same lines verbatim." - }, - "presence_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Increases the likelihood of the model introducing new topics." - } - }, - "required": [ - "prompt" - ] - }, - { - "title": "Messages", - "properties": { - "messages": { - "type": "array", - "description": "An array of message objects representing the conversation history.", - "items": { - "type": "object", - "properties": { - "role": { - "type": "string", - "description": "The role of the message sender (e.g., 'user', 'assistant', 'system', 'tool')." - }, - "content": { - "type": "string", - "description": "The content of the message as a string." - } - }, - "required": [ - "role", - "content" - ] - } - }, - "functions": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "code": { - "type": "string" - } - }, - "required": [ - "name", - "code" - ] - } - }, - "tools": { - "type": "array", - "description": "A list of tools available for the assistant to use.", - "items": { - "type": "object", - "oneOf": [ - { - "properties": { - "name": { - "type": "string", - "description": "The name of the tool. More descriptive the better." - }, - "description": { - "type": "string", - "description": "A brief description of what the tool does." - }, - "parameters": { - "type": "object", - "description": "Schema defining the parameters accepted by the tool.", - "properties": { - "type": { - "type": "string", - "description": "The type of the parameters object (usually 'object')." - }, - "required": { - "type": "array", - "description": "List of required parameter names.", - "items": { - "type": "string" - } - }, - "properties": { - "type": "object", - "description": "Definitions of each parameter.", - "additionalProperties": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The data type of the parameter." - }, - "description": { - "type": "string", - "description": "A description of the expected parameter." - } - }, - "required": [ - "type", - "description" - ] - } - } - }, - "required": [ - "type", - "properties" - ] - } - }, - "required": [ - "name", - "description", - "parameters" - ] - }, - { - "properties": { - "type": { - "type": "string", - "description": "Specifies the type of tool (e.g., 'function')." - }, - "function": { - "type": "object", - "description": "Details of the function tool.", - "properties": { - "name": { - "type": "string", - "description": "The name of the function." - }, - "description": { - "type": "string", - "description": "A brief description of what the function does." - }, - "parameters": { - "type": "object", - "description": "Schema defining the parameters accepted by the function.", - "properties": { - "type": { - "type": "string", - "description": "The type of the parameters object (usually 'object')." - }, - "required": { - "type": "array", - "description": "List of required parameter names.", - "items": { - "type": "string" - } - }, - "properties": { - "type": "object", - "description": "Definitions of each parameter.", - "additionalProperties": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The data type of the parameter." - }, - "description": { - "type": "string", - "description": "A description of the expected parameter." - } - }, - "required": [ - "type", - "description" - ] - } - } - }, - "required": [ - "type", - "properties" - ] - } - }, - "required": [ - "name", - "description", - "parameters" - ] - } - }, - "required": [ - "type", - "function" - ] - } - ] - } - }, - "response_format": { - "title": "JSON Mode", - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_object", - "json_schema" - ] - }, - "json_schema": {} - } - }, - "raw": { - "type": "boolean", - "default": false, - "description": "If true, a chat template is not applied and you must adhere to the specific model's expected formatting." - }, - "stream": { - "type": "boolean", - "default": false, - "description": "If true, the response will be streamed back incrementally using SSE, Server Sent Events." - }, - "max_tokens": { - "type": "integer", - "default": 256, - "description": "The maximum number of tokens to generate in the response." - }, - "temperature": { - "type": "number", - "default": 0.6, - "minimum": 0, - "maximum": 5, - "description": "Controls the randomness of the output; higher values produce more random results." - }, - "top_p": { - "type": "number", - "minimum": 0.001, - "maximum": 1, - "description": "Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses." - }, - "top_k": { - "type": "integer", - "minimum": 1, - "maximum": 50, - "description": "Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises." - }, - "seed": { - "type": "integer", - "minimum": 1, - "maximum": 9999999999, - "description": "Random seed for reproducibility of the generation." - }, - "repetition_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Penalty for repeated tokens; higher values discourage repetition." - }, - "frequency_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Decreases the likelihood of the model repeating the same lines verbatim." - }, - "presence_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Increases the likelihood of the model introducing new topics." - } - }, - "required": [ - "messages" - ] - } - ] - }, - "output": { - "oneOf": [ - { - "type": "object", - "properties": { - "response": { - "type": "string", - "description": "The generated text response from the model" - }, - "usage": { - "type": "object", - "description": "Usage statistics for the inference request", - "properties": { - "prompt_tokens": { - "type": "number", - "description": "Total number of tokens in input", - "default": 0 - }, - "completion_tokens": { - "type": "number", - "description": "Total number of tokens in output", - "default": 0 - }, - "total_tokens": { - "type": "number", - "description": "Total number of input and output tokens", - "default": 0 - } - } - }, - "tool_calls": { - "type": "array", - "description": "An array of tool calls requests made during the response generation", - "items": { - "type": "object", - "properties": { - "arguments": { - "type": "object", - "description": "The arguments passed to be passed to the tool call request" - }, - "name": { - "type": "string", - "description": "The name of the tool to be called" - } - } - } - } - }, - "required": [ - "response" - ] - }, - { - "type": "string", - "format": "binary" - } - ] - } - } -} \ No newline at end of file diff --git a/src/content/workers-ai-models/llava-1.5-7b-hf.json b/src/content/workers-ai-models/llava-1.5-7b-hf.json deleted file mode 100644 index ac627be9905e961..000000000000000 --- a/src/content/workers-ai-models/llava-1.5-7b-hf.json +++ /dev/null @@ -1,106 +0,0 @@ -{ - "id": "af274959-cb47-4ba8-9d8e-5a0a58b6b402", - "source": 1, - "name": "@cf/llava-hf/llava-1.5-7b-hf", - "description": "LLaVA is an open-source chatbot trained by fine-tuning LLaMA/Vicuna on GPT-generated multimodal instruction-following data. It is an auto-regressive language model, based on the transformer architecture.", - "task": { - "id": "882a91d1-c331-4eec-bdad-834c919942a8", - "name": "Image-to-Text", - "description": "Image to text models output a text from a given image. Image captioning or optical character recognition can be considered as the most common applications of image to text." - }, - "created_at": "2024-05-01 18:00:39.971", - "tags": [], - "properties": [ - { - "property_id": "beta", - "value": "true" - } - ], - "schema": { - "input": { - "oneOf": [ - { - "type": "string", - "format": "binary", - "description": "Binary string representing the image contents." - }, - { - "type": "object", - "properties": { - "image": { - "oneOf": [ - { - "type": "array", - "description": "An array of integers that represent the image data constrained to 8-bit unsigned integer values", - "items": { - "type": "number", - "description": "A value between 0 and 255" - } - }, - { - "type": "string", - "format": "binary", - "description": "Binary string representing the image contents." - } - ] - }, - "temperature": { - "type": "number", - "description": "Controls the randomness of the output; higher values produce more random results." - }, - "prompt": { - "type": "string", - "description": "The input text prompt for the model to generate a response." - }, - "raw": { - "type": "boolean", - "default": false, - "description": "If true, a chat template is not applied and you must adhere to the specific model's expected formatting." - }, - "top_p": { - "type": "number", - "description": "Controls the creativity of the AI's responses by adjusting how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses." - }, - "top_k": { - "type": "number", - "description": "Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises." - }, - "seed": { - "type": "number", - "description": "Random seed for reproducibility of the generation." - }, - "repetition_penalty": { - "type": "number", - "description": "Penalty for repeated tokens; higher values discourage repetition." - }, - "frequency_penalty": { - "type": "number", - "description": "Decreases the likelihood of the model repeating the same lines verbatim." - }, - "presence_penalty": { - "type": "number", - "description": "Increases the likelihood of the model introducing new topics." - }, - "max_tokens": { - "type": "integer", - "default": 512, - "description": "The maximum number of tokens to generate in the response." - } - }, - "required": [ - "image" - ] - } - ] - }, - "output": { - "type": "object", - "contentType": "application/json", - "properties": { - "description": { - "type": "string" - } - } - } - } -} \ No newline at end of file diff --git a/src/content/workers-ai-models/lucid-origin.json b/src/content/workers-ai-models/lucid-origin.json deleted file mode 100644 index c40bcfebc9d95ba..000000000000000 --- a/src/content/workers-ai-models/lucid-origin.json +++ /dev/null @@ -1,101 +0,0 @@ -{ - "id": "0e372c11-8720-46c9-a02d-666188a22dae", - "source": 1, - "name": "@cf/leonardo/lucid-origin", - "description": "Lucid Origin from Leonardo.AI is their most adaptable and prompt-responsive model to date. Whether you're generating images with sharp graphic design, stunning full-HD renders, or highly specific creative direction, it adheres closely to your prompts, renders text with accuracy, and supports a wide array of visual styles and aesthetics – from stylized concept art to crisp product mockups.\n", - "task": { - "id": "3d6e1f35-341b-4915-a6c8-9a7142a9033a", - "name": "Text-to-Image", - "description": "Generates images from input text. These models can be used to generate and modify images based on text prompts." - }, - "created_at": "2025-08-25 19:21:28.770", - "tags": [], - "properties": [ - { - "property_id": "price", - "value": [ - { - "unit": "per 512 by 512 tile", - "price": 0.007, - "currency": "USD" - }, - { - "unit": "per step", - "price": 0.00013, - "currency": "USD" - } - ] - }, - { - "property_id": "partner", - "value": "true" - }, - { - "property_id": "terms", - "value": "https://leonardo.ai/terms-of-service/" - } - ], - "schema": { - "input": { - "type": "object", - "properties": { - "prompt": { - "type": "string", - "minLength": 1, - "description": "A text description of the image you want to generate." - }, - "guidance": { - "type": "number", - "default": 4.5, - "minimum": 0, - "maximum": 10, - "description": "Controls how closely the generated image should adhere to the prompt; higher values make the image more aligned with the prompt" - }, - "seed": { - "type": "integer", - "minimum": 0, - "description": "Random seed for reproducibility of the image generation" - }, - "height": { - "type": "integer", - "minimum": 0, - "maximum": 2500, - "default": 1120, - "description": "The height of the generated image in pixels" - }, - "width": { - "type": "integer", - "minimum": 0, - "maximum": 2500, - "default": 1120, - "description": "The width of the generated image in pixels" - }, - "num_steps": { - "type": "integer", - "minimum": 1, - "maximum": 40, - "description": "The number of diffusion steps; higher values can improve quality but take longer" - }, - "steps": { - "type": "integer", - "minimum": 1, - "maximum": 40, - "description": "The number of diffusion steps; higher values can improve quality but take longer" - } - }, - "required": [ - "prompt" - ] - }, - "output": { - "type": "object", - "contentType": "application/json", - "properties": { - "image": { - "type": "string", - "description": "The generated image in Base64 format." - } - } - } - } -} \ No newline at end of file diff --git a/src/content/workers-ai-models/m2m100-1.2b.json b/src/content/workers-ai-models/m2m100-1.2b.json deleted file mode 100644 index 022b7dcca7897ac..000000000000000 --- a/src/content/workers-ai-models/m2m100-1.2b.json +++ /dev/null @@ -1,134 +0,0 @@ -{ - "id": "617e7ec3-bf8d-4088-a863-4f89582d91b5", - "source": 1, - "name": "@cf/meta/m2m100-1.2b", - "description": "Multilingual encoder-decoder (seq-to-seq) model trained for Many-to-Many multilingual translation", - "task": { - "id": "f57d07cb-9087-487a-bbbf-bc3e17fecc4b", - "name": "Translation", - "description": "Translation models convert a sequence of text from one language to another." - }, - "created_at": "2023-09-25 19:21:11.898", - "tags": [], - "properties": [ - { - "property_id": "async_queue", - "value": "true" - }, - { - "property_id": "price", - "value": [ - { - "unit": "per M input tokens", - "price": 0.34, - "currency": "USD" - }, - { - "unit": "per M output tokens", - "price": 0.34, - "currency": "USD" - } - ] - }, - { - "property_id": "info", - "value": "https://github.com/facebookresearch/fairseq/tree/main/examples/m2m_100" - }, - { - "property_id": "languages", - "value": "english, chinese, french, spanish, arabic, russian, german, japanese, portuguese, hindi" - }, - { - "property_id": "terms", - "value": "https://github.com/facebookresearch/fairseq/blob/main/LICENSE" - } - ], - "schema": { - "input": { - "type": "object", - "oneOf": [ - { - "properties": { - "text": { - "type": "string", - "minLength": 1, - "description": "The text to be translated" - }, - "source_lang": { - "type": "string", - "default": "en", - "description": "The language code of the source text (e.g., 'en' for English). Defaults to 'en' if not specified" - }, - "target_lang": { - "type": "string", - "description": "The language code to translate the text into (e.g., 'es' for Spanish)" - } - }, - "required": [ - "text", - "target_lang" - ] - }, - { - "properties": { - "requests": { - "type": "array", - "description": "Batch of the embeddings requests to run using async-queue", - "items": { - "type": "object", - "properties": { - "text": { - "type": "string", - "minLength": 1, - "description": "The text to be translated" - }, - "source_lang": { - "type": "string", - "default": "en", - "description": "The language code of the source text (e.g., 'en' for English). Defaults to 'en' if not specified" - }, - "target_lang": { - "type": "string", - "description": "The language code to translate the text into (e.g., 'es' for Spanish)" - } - }, - "required": [ - "text", - "target_lang" - ] - } - } - }, - "required": [ - "requests" - ] - } - ] - }, - "output": { - "type": "object", - "contentType": "application/json", - "oneOf": [ - { - "properties": { - "translated_text": { - "type": "string", - "description": "The translated text in the target language" - } - } - }, - { - "type": "object", - "contentType": "application/json", - "title": "Async response", - "properties": { - "request_id": { - "type": "string", - "description": "The async request id that can be used to obtain the results." - } - } - } - ] - } - } -} \ No newline at end of file diff --git a/src/content/workers-ai-models/melotts.json b/src/content/workers-ai-models/melotts.json deleted file mode 100644 index 55d9cc3a9bd1445..000000000000000 --- a/src/content/workers-ai-models/melotts.json +++ /dev/null @@ -1,65 +0,0 @@ -{ - "id": "c837b2ac-4d9b-4d37-8811-34de60f0c44f", - "source": 1, - "name": "@cf/myshell-ai/melotts", - "description": "MeloTTS is a high-quality multi-lingual text-to-speech library by MyShell.ai.", - "task": { - "id": "b52660a1-9a95-4ab2-8b1d-f232be34604a", - "name": "Text-to-Speech", - "description": "Text-to-Speech (TTS) is the task of generating natural sounding speech given text input. TTS models can be extended to have a single model that generates speech for multiple speakers and multiple languages." - }, - "created_at": "2024-07-19 15:51:04.819", - "tags": [], - "properties": [ - { - "property_id": "price", - "value": [ - { - "unit": "per audio minute", - "price": 0.0002, - "currency": "USD" - } - ] - } - ], - "schema": { - "input": { - "type": "object", - "properties": { - "prompt": { - "type": "string", - "minLength": 1, - "description": "A text description of the audio you want to generate" - }, - "lang": { - "type": "string", - "default": "en", - "description": "The speech language (e.g., 'en' for English, 'fr' for French). Defaults to 'en' if not specified" - } - }, - "required": [ - "prompt" - ] - }, - "output": { - "oneOf": [ - { - "type": "object", - "contentType": "application/json", - "properties": { - "audio": { - "type": "string", - "description": "The generated audio in MP3 format, base64-encoded" - } - } - }, - { - "type": "string", - "contentType": "audio/mpeg", - "format": "binary", - "description": "The generated audio in MP3 format" - } - ] - } - } -} \ No newline at end of file diff --git a/src/content/workers-ai-models/meta-llama-3-8b-instruct.json b/src/content/workers-ai-models/meta-llama-3-8b-instruct.json deleted file mode 100644 index 3f4111feb172bae..000000000000000 --- a/src/content/workers-ai-models/meta-llama-3-8b-instruct.json +++ /dev/null @@ -1,433 +0,0 @@ -{ - "id": "1a7b6ad6-9987-4bd3-a329-20ee8de93296", - "source": 2, - "name": "@hf/meta-llama/meta-llama-3-8b-instruct", - "description": "Generation over generation, Meta Llama 3 demonstrates state-of-the-art performance on a wide range of industry benchmarks and offers new capabilities, including improved reasoning.\t", - "task": { - "id": "c329a1f9-323d-4e91-b2aa-582dd4188d34", - "name": "Text Generation", - "description": "Family of generative text models, such as large language models (LLM), that can be adapted for a variety of natural language tasks." - }, - "created_at": "2024-05-22 18:21:04.371", - "tags": [], - "properties": [ - { - "property_id": "context_window", - "value": "8192" - } - ], - "schema": { - "input": { - "type": "object", - "oneOf": [ - { - "title": "Prompt", - "properties": { - "prompt": { - "type": "string", - "minLength": 1, - "description": "The input text prompt for the model to generate a response." - }, - "lora": { - "type": "string", - "description": "Name of the LoRA (Low-Rank Adaptation) model to fine-tune the base model." - }, - "response_format": { - "title": "JSON Mode", - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_object", - "json_schema" - ] - }, - "json_schema": {} - } - }, - "raw": { - "type": "boolean", - "default": false, - "description": "If true, a chat template is not applied and you must adhere to the specific model's expected formatting." - }, - "stream": { - "type": "boolean", - "default": false, - "description": "If true, the response will be streamed back incrementally using SSE, Server Sent Events." - }, - "max_tokens": { - "type": "integer", - "default": 256, - "description": "The maximum number of tokens to generate in the response." - }, - "temperature": { - "type": "number", - "default": 0.6, - "minimum": 0, - "maximum": 5, - "description": "Controls the randomness of the output; higher values produce more random results." - }, - "top_p": { - "type": "number", - "minimum": 0.001, - "maximum": 1, - "description": "Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses." - }, - "top_k": { - "type": "integer", - "minimum": 1, - "maximum": 50, - "description": "Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises." - }, - "seed": { - "type": "integer", - "minimum": 1, - "maximum": 9999999999, - "description": "Random seed for reproducibility of the generation." - }, - "repetition_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Penalty for repeated tokens; higher values discourage repetition." - }, - "frequency_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Decreases the likelihood of the model repeating the same lines verbatim." - }, - "presence_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Increases the likelihood of the model introducing new topics." - } - }, - "required": [ - "prompt" - ] - }, - { - "title": "Messages", - "properties": { - "messages": { - "type": "array", - "description": "An array of message objects representing the conversation history.", - "items": { - "type": "object", - "properties": { - "role": { - "type": "string", - "description": "The role of the message sender (e.g., 'user', 'assistant', 'system', 'tool')." - }, - "content": { - "type": "string", - "description": "The content of the message as a string." - } - }, - "required": [ - "role", - "content" - ] - } - }, - "functions": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "code": { - "type": "string" - } - }, - "required": [ - "name", - "code" - ] - } - }, - "tools": { - "type": "array", - "description": "A list of tools available for the assistant to use.", - "items": { - "type": "object", - "oneOf": [ - { - "properties": { - "name": { - "type": "string", - "description": "The name of the tool. More descriptive the better." - }, - "description": { - "type": "string", - "description": "A brief description of what the tool does." - }, - "parameters": { - "type": "object", - "description": "Schema defining the parameters accepted by the tool.", - "properties": { - "type": { - "type": "string", - "description": "The type of the parameters object (usually 'object')." - }, - "required": { - "type": "array", - "description": "List of required parameter names.", - "items": { - "type": "string" - } - }, - "properties": { - "type": "object", - "description": "Definitions of each parameter.", - "additionalProperties": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The data type of the parameter." - }, - "description": { - "type": "string", - "description": "A description of the expected parameter." - } - }, - "required": [ - "type", - "description" - ] - } - } - }, - "required": [ - "type", - "properties" - ] - } - }, - "required": [ - "name", - "description", - "parameters" - ] - }, - { - "properties": { - "type": { - "type": "string", - "description": "Specifies the type of tool (e.g., 'function')." - }, - "function": { - "type": "object", - "description": "Details of the function tool.", - "properties": { - "name": { - "type": "string", - "description": "The name of the function." - }, - "description": { - "type": "string", - "description": "A brief description of what the function does." - }, - "parameters": { - "type": "object", - "description": "Schema defining the parameters accepted by the function.", - "properties": { - "type": { - "type": "string", - "description": "The type of the parameters object (usually 'object')." - }, - "required": { - "type": "array", - "description": "List of required parameter names.", - "items": { - "type": "string" - } - }, - "properties": { - "type": "object", - "description": "Definitions of each parameter.", - "additionalProperties": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The data type of the parameter." - }, - "description": { - "type": "string", - "description": "A description of the expected parameter." - } - }, - "required": [ - "type", - "description" - ] - } - } - }, - "required": [ - "type", - "properties" - ] - } - }, - "required": [ - "name", - "description", - "parameters" - ] - } - }, - "required": [ - "type", - "function" - ] - } - ] - } - }, - "response_format": { - "title": "JSON Mode", - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_object", - "json_schema" - ] - }, - "json_schema": {} - } - }, - "raw": { - "type": "boolean", - "default": false, - "description": "If true, a chat template is not applied and you must adhere to the specific model's expected formatting." - }, - "stream": { - "type": "boolean", - "default": false, - "description": "If true, the response will be streamed back incrementally using SSE, Server Sent Events." - }, - "max_tokens": { - "type": "integer", - "default": 256, - "description": "The maximum number of tokens to generate in the response." - }, - "temperature": { - "type": "number", - "default": 0.6, - "minimum": 0, - "maximum": 5, - "description": "Controls the randomness of the output; higher values produce more random results." - }, - "top_p": { - "type": "number", - "minimum": 0.001, - "maximum": 1, - "description": "Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses." - }, - "top_k": { - "type": "integer", - "minimum": 1, - "maximum": 50, - "description": "Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises." - }, - "seed": { - "type": "integer", - "minimum": 1, - "maximum": 9999999999, - "description": "Random seed for reproducibility of the generation." - }, - "repetition_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Penalty for repeated tokens; higher values discourage repetition." - }, - "frequency_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Decreases the likelihood of the model repeating the same lines verbatim." - }, - "presence_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Increases the likelihood of the model introducing new topics." - } - }, - "required": [ - "messages" - ] - } - ] - }, - "output": { - "oneOf": [ - { - "type": "object", - "properties": { - "response": { - "type": "string", - "description": "The generated text response from the model" - }, - "usage": { - "type": "object", - "description": "Usage statistics for the inference request", - "properties": { - "prompt_tokens": { - "type": "number", - "description": "Total number of tokens in input", - "default": 0 - }, - "completion_tokens": { - "type": "number", - "description": "Total number of tokens in output", - "default": 0 - }, - "total_tokens": { - "type": "number", - "description": "Total number of input and output tokens", - "default": 0 - } - } - }, - "tool_calls": { - "type": "array", - "description": "An array of tool calls requests made during the response generation", - "items": { - "type": "object", - "properties": { - "arguments": { - "type": "object", - "description": "The arguments passed to be passed to the tool call request" - }, - "name": { - "type": "string", - "description": "The name of the tool to be called" - } - } - } - } - }, - "required": [ - "response" - ] - }, - { - "type": "string", - "format": "binary" - } - ] - } - } -} \ No newline at end of file diff --git a/src/content/workers-ai-models/mistral-7b-instruct-v0.1-awq.json b/src/content/workers-ai-models/mistral-7b-instruct-v0.1-awq.json deleted file mode 100644 index 3f3212d05396292..000000000000000 --- a/src/content/workers-ai-models/mistral-7b-instruct-v0.1-awq.json +++ /dev/null @@ -1,466 +0,0 @@ -{ - "id": "980ec5e9-33c2-483a-a2d8-cd092fdf273f", - "source": 2, - "name": "@hf/thebloke/mistral-7b-instruct-v0.1-awq", - "description": "Mistral 7B Instruct v0.1 AWQ is an efficient, accurate and blazing-fast low-bit weight quantized Mistral variant.", - "task": { - "id": "c329a1f9-323d-4e91-b2aa-582dd4188d34", - "name": "Text Generation", - "description": "Family of generative text models, such as large language models (LLM), that can be adapted for a variety of natural language tasks." - }, - "created_at": "2023-11-24 00:27:15.869", - "tags": [], - "properties": [ - { - "property_id": "beta", - "value": "true" - }, - { - "property_id": "context_window", - "value": "4096" - }, - { - "property_id": "info", - "value": "https://huggingface.co/TheBloke/Mistral-7B-Instruct-v0.1-AWQ" - }, - { - "property_id": "planned_deprecation_date", - "value": "2025-10-01" - } - ], - "schema": { - "input": { - "type": "object", - "oneOf": [ - { - "title": "Prompt", - "properties": { - "prompt": { - "type": "string", - "minLength": 1, - "description": "The input text prompt for the model to generate a response." - }, - "lora": { - "type": "string", - "description": "Name of the LoRA (Low-Rank Adaptation) model to fine-tune the base model." - }, - "response_format": { - "title": "JSON Mode", - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_object", - "json_schema" - ] - }, - "json_schema": {} - } - }, - "raw": { - "type": "boolean", - "default": false, - "description": "If true, a chat template is not applied and you must adhere to the specific model's expected formatting." - }, - "stream": { - "type": "boolean", - "default": false, - "description": "If true, the response will be streamed back incrementally using SSE, Server Sent Events." - }, - "max_tokens": { - "type": "integer", - "default": 256, - "description": "The maximum number of tokens to generate in the response." - }, - "temperature": { - "type": "number", - "default": 0.6, - "minimum": 0, - "maximum": 5, - "description": "Controls the randomness of the output; higher values produce more random results." - }, - "top_p": { - "type": "number", - "minimum": 0.001, - "maximum": 1, - "description": "Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses." - }, - "top_k": { - "type": "integer", - "minimum": 1, - "maximum": 50, - "description": "Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises." - }, - "seed": { - "type": "integer", - "minimum": 1, - "maximum": 9999999999, - "description": "Random seed for reproducibility of the generation." - }, - "repetition_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Penalty for repeated tokens; higher values discourage repetition." - }, - "frequency_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Decreases the likelihood of the model repeating the same lines verbatim." - }, - "presence_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Increases the likelihood of the model introducing new topics." - } - }, - "required": [ - "prompt" - ] - }, - { - "title": "Messages", - "properties": { - "messages": { - "type": "array", - "description": "An array of message objects representing the conversation history.", - "items": { - "type": "object", - "properties": { - "role": { - "type": "string", - "description": "The role of the message sender (e.g., 'user', 'assistant', 'system', 'tool')." - }, - "content": { - "oneOf": [ - { - "type": "string", - "description": "The content of the message as a string." - }, - { - "type": "array", - "description": "Array of text content parts.", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "Type of the content (text)" - }, - "text": { - "type": "string", - "description": "Text content" - } - } - } - } - ] - } - }, - "required": [ - "role", - "content" - ] - } - }, - "functions": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "code": { - "type": "string" - } - }, - "required": [ - "name", - "code" - ] - } - }, - "tools": { - "type": "array", - "description": "A list of tools available for the assistant to use.", - "items": { - "type": "object", - "oneOf": [ - { - "properties": { - "name": { - "type": "string", - "description": "The name of the tool. More descriptive the better." - }, - "description": { - "type": "string", - "description": "A brief description of what the tool does." - }, - "parameters": { - "type": "object", - "description": "Schema defining the parameters accepted by the tool.", - "properties": { - "type": { - "type": "string", - "description": "The type of the parameters object (usually 'object')." - }, - "required": { - "type": "array", - "description": "List of required parameter names.", - "items": { - "type": "string" - } - }, - "properties": { - "type": "object", - "description": "Definitions of each parameter.", - "additionalProperties": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The data type of the parameter." - }, - "description": { - "type": "string", - "description": "A description of the expected parameter." - } - }, - "required": [ - "type", - "description" - ] - } - } - }, - "required": [ - "type", - "properties" - ] - } - }, - "required": [ - "name", - "description", - "parameters" - ] - }, - { - "properties": { - "type": { - "type": "string", - "description": "Specifies the type of tool (e.g., 'function')." - }, - "function": { - "type": "object", - "description": "Details of the function tool.", - "properties": { - "name": { - "type": "string", - "description": "The name of the function." - }, - "description": { - "type": "string", - "description": "A brief description of what the function does." - }, - "parameters": { - "type": "object", - "description": "Schema defining the parameters accepted by the function.", - "properties": { - "type": { - "type": "string", - "description": "The type of the parameters object (usually 'object')." - }, - "required": { - "type": "array", - "description": "List of required parameter names.", - "items": { - "type": "string" - } - }, - "properties": { - "type": "object", - "description": "Definitions of each parameter.", - "additionalProperties": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The data type of the parameter." - }, - "description": { - "type": "string", - "description": "A description of the expected parameter." - } - }, - "required": [ - "type", - "description" - ] - } - } - }, - "required": [ - "type", - "properties" - ] - } - }, - "required": [ - "name", - "description", - "parameters" - ] - } - }, - "required": [ - "type", - "function" - ] - } - ] - } - }, - "response_format": { - "title": "JSON Mode", - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_object", - "json_schema" - ] - }, - "json_schema": {} - } - }, - "raw": { - "type": "boolean", - "default": false, - "description": "If true, a chat template is not applied and you must adhere to the specific model's expected formatting." - }, - "stream": { - "type": "boolean", - "default": false, - "description": "If true, the response will be streamed back incrementally using SSE, Server Sent Events." - }, - "max_tokens": { - "type": "integer", - "default": 256, - "description": "The maximum number of tokens to generate in the response." - }, - "temperature": { - "type": "number", - "default": 0.6, - "minimum": 0, - "maximum": 5, - "description": "Controls the randomness of the output; higher values produce more random results." - }, - "top_p": { - "type": "number", - "minimum": 0.001, - "maximum": 1, - "description": "Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses." - }, - "top_k": { - "type": "integer", - "minimum": 1, - "maximum": 50, - "description": "Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises." - }, - "seed": { - "type": "integer", - "minimum": 1, - "maximum": 9999999999, - "description": "Random seed for reproducibility of the generation." - }, - "repetition_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Penalty for repeated tokens; higher values discourage repetition." - }, - "frequency_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Decreases the likelihood of the model repeating the same lines verbatim." - }, - "presence_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Increases the likelihood of the model introducing new topics." - } - }, - "required": [ - "messages" - ] - } - ] - }, - "output": { - "oneOf": [ - { - "type": "object", - "properties": { - "response": { - "type": "string", - "description": "The generated text response from the model" - }, - "usage": { - "type": "object", - "description": "Usage statistics for the inference request", - "properties": { - "prompt_tokens": { - "type": "number", - "description": "Total number of tokens in input", - "default": 0 - }, - "completion_tokens": { - "type": "number", - "description": "Total number of tokens in output", - "default": 0 - }, - "total_tokens": { - "type": "number", - "description": "Total number of input and output tokens", - "default": 0 - } - } - }, - "tool_calls": { - "type": "array", - "description": "An array of tool calls requests made during the response generation", - "items": { - "type": "object", - "properties": { - "arguments": { - "type": "object", - "description": "The arguments passed to be passed to the tool call request" - }, - "name": { - "type": "string", - "description": "The name of the tool to be called" - } - } - } - } - }, - "required": [ - "response" - ] - }, - { - "type": "string", - "format": "binary" - } - ] - } - } -} \ No newline at end of file diff --git a/src/content/workers-ai-models/mistral-7b-instruct-v0.1.json b/src/content/workers-ai-models/mistral-7b-instruct-v0.1.json deleted file mode 100644 index 4e55bb45705fbba..000000000000000 --- a/src/content/workers-ai-models/mistral-7b-instruct-v0.1.json +++ /dev/null @@ -1,477 +0,0 @@ -{ - "id": "c907d0f9-d69d-4e93-b501-4daeb4fd69eb", - "source": 1, - "name": "@cf/mistral/mistral-7b-instruct-v0.1", - "description": "Instruct fine-tuned version of the Mistral-7b generative text model with 7 billion parameters", - "task": { - "id": "c329a1f9-323d-4e91-b2aa-582dd4188d34", - "name": "Text Generation", - "description": "Family of generative text models, such as large language models (LLM), that can be adapted for a variety of natural language tasks." - }, - "created_at": "2023-11-07 11:54:20.229", - "tags": [], - "properties": [ - { - "property_id": "price", - "value": [ - { - "unit": "per M input tokens", - "price": 0.11, - "currency": "USD" - }, - { - "unit": "per M output tokens", - "price": 0.19, - "currency": "USD" - } - ] - }, - { - "property_id": "context_window", - "value": "2824" - }, - { - "property_id": "info", - "value": "https://mistral.ai/news/announcing-mistral-7b/" - }, - { - "property_id": "lora", - "value": "true" - } - ], - "schema": { - "input": { - "type": "object", - "oneOf": [ - { - "title": "Prompt", - "properties": { - "prompt": { - "type": "string", - "minLength": 1, - "description": "The input text prompt for the model to generate a response." - }, - "lora": { - "type": "string", - "description": "Name of the LoRA (Low-Rank Adaptation) model to fine-tune the base model." - }, - "response_format": { - "title": "JSON Mode", - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_object", - "json_schema" - ] - }, - "json_schema": {} - } - }, - "raw": { - "type": "boolean", - "default": false, - "description": "If true, a chat template is not applied and you must adhere to the specific model's expected formatting." - }, - "stream": { - "type": "boolean", - "default": false, - "description": "If true, the response will be streamed back incrementally using SSE, Server Sent Events." - }, - "max_tokens": { - "type": "integer", - "default": 256, - "description": "The maximum number of tokens to generate in the response." - }, - "temperature": { - "type": "number", - "default": 0.6, - "minimum": 0, - "maximum": 5, - "description": "Controls the randomness of the output; higher values produce more random results." - }, - "top_p": { - "type": "number", - "minimum": 0.001, - "maximum": 1, - "description": "Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses." - }, - "top_k": { - "type": "integer", - "minimum": 1, - "maximum": 50, - "description": "Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises." - }, - "seed": { - "type": "integer", - "minimum": 1, - "maximum": 9999999999, - "description": "Random seed for reproducibility of the generation." - }, - "repetition_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Penalty for repeated tokens; higher values discourage repetition." - }, - "frequency_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Decreases the likelihood of the model repeating the same lines verbatim." - }, - "presence_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Increases the likelihood of the model introducing new topics." - } - }, - "required": [ - "prompt" - ] - }, - { - "title": "Messages", - "properties": { - "messages": { - "type": "array", - "description": "An array of message objects representing the conversation history.", - "items": { - "type": "object", - "properties": { - "role": { - "type": "string", - "description": "The role of the message sender (e.g., 'user', 'assistant', 'system', 'tool')." - }, - "content": { - "oneOf": [ - { - "type": "string", - "description": "The content of the message as a string." - }, - { - "type": "array", - "description": "Array of text content parts.", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "Type of the content (text)" - }, - "text": { - "type": "string", - "description": "Text content" - } - } - } - } - ] - } - }, - "required": [ - "role", - "content" - ] - } - }, - "functions": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "code": { - "type": "string" - } - }, - "required": [ - "name", - "code" - ] - } - }, - "tools": { - "type": "array", - "description": "A list of tools available for the assistant to use.", - "items": { - "type": "object", - "oneOf": [ - { - "properties": { - "name": { - "type": "string", - "description": "The name of the tool. More descriptive the better." - }, - "description": { - "type": "string", - "description": "A brief description of what the tool does." - }, - "parameters": { - "type": "object", - "description": "Schema defining the parameters accepted by the tool.", - "properties": { - "type": { - "type": "string", - "description": "The type of the parameters object (usually 'object')." - }, - "required": { - "type": "array", - "description": "List of required parameter names.", - "items": { - "type": "string" - } - }, - "properties": { - "type": "object", - "description": "Definitions of each parameter.", - "additionalProperties": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The data type of the parameter." - }, - "description": { - "type": "string", - "description": "A description of the expected parameter." - } - }, - "required": [ - "type", - "description" - ] - } - } - }, - "required": [ - "type", - "properties" - ] - } - }, - "required": [ - "name", - "description", - "parameters" - ] - }, - { - "properties": { - "type": { - "type": "string", - "description": "Specifies the type of tool (e.g., 'function')." - }, - "function": { - "type": "object", - "description": "Details of the function tool.", - "properties": { - "name": { - "type": "string", - "description": "The name of the function." - }, - "description": { - "type": "string", - "description": "A brief description of what the function does." - }, - "parameters": { - "type": "object", - "description": "Schema defining the parameters accepted by the function.", - "properties": { - "type": { - "type": "string", - "description": "The type of the parameters object (usually 'object')." - }, - "required": { - "type": "array", - "description": "List of required parameter names.", - "items": { - "type": "string" - } - }, - "properties": { - "type": "object", - "description": "Definitions of each parameter.", - "additionalProperties": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The data type of the parameter." - }, - "description": { - "type": "string", - "description": "A description of the expected parameter." - } - }, - "required": [ - "type", - "description" - ] - } - } - }, - "required": [ - "type", - "properties" - ] - } - }, - "required": [ - "name", - "description", - "parameters" - ] - } - }, - "required": [ - "type", - "function" - ] - } - ] - } - }, - "response_format": { - "title": "JSON Mode", - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_object", - "json_schema" - ] - }, - "json_schema": {} - } - }, - "raw": { - "type": "boolean", - "default": false, - "description": "If true, a chat template is not applied and you must adhere to the specific model's expected formatting." - }, - "stream": { - "type": "boolean", - "default": false, - "description": "If true, the response will be streamed back incrementally using SSE, Server Sent Events." - }, - "max_tokens": { - "type": "integer", - "default": 256, - "description": "The maximum number of tokens to generate in the response." - }, - "temperature": { - "type": "number", - "default": 0.6, - "minimum": 0, - "maximum": 5, - "description": "Controls the randomness of the output; higher values produce more random results." - }, - "top_p": { - "type": "number", - "minimum": 0.001, - "maximum": 1, - "description": "Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses." - }, - "top_k": { - "type": "integer", - "minimum": 1, - "maximum": 50, - "description": "Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises." - }, - "seed": { - "type": "integer", - "minimum": 1, - "maximum": 9999999999, - "description": "Random seed for reproducibility of the generation." - }, - "repetition_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Penalty for repeated tokens; higher values discourage repetition." - }, - "frequency_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Decreases the likelihood of the model repeating the same lines verbatim." - }, - "presence_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Increases the likelihood of the model introducing new topics." - } - }, - "required": [ - "messages" - ] - } - ] - }, - "output": { - "oneOf": [ - { - "type": "object", - "properties": { - "response": { - "type": "string", - "description": "The generated text response from the model" - }, - "usage": { - "type": "object", - "description": "Usage statistics for the inference request", - "properties": { - "prompt_tokens": { - "type": "number", - "description": "Total number of tokens in input", - "default": 0 - }, - "completion_tokens": { - "type": "number", - "description": "Total number of tokens in output", - "default": 0 - }, - "total_tokens": { - "type": "number", - "description": "Total number of input and output tokens", - "default": 0 - } - } - }, - "tool_calls": { - "type": "array", - "description": "An array of tool calls requests made during the response generation", - "items": { - "type": "object", - "properties": { - "arguments": { - "type": "object", - "description": "The arguments passed to be passed to the tool call request" - }, - "name": { - "type": "string", - "description": "The name of the tool to be called" - } - } - } - } - }, - "required": [ - "response" - ] - }, - { - "type": "string", - "format": "binary" - } - ] - } - } -} \ No newline at end of file diff --git a/src/content/workers-ai-models/mistral-7b-instruct-v0.2-lora.json b/src/content/workers-ai-models/mistral-7b-instruct-v0.2-lora.json deleted file mode 100644 index 4a503894113f214..000000000000000 --- a/src/content/workers-ai-models/mistral-7b-instruct-v0.2-lora.json +++ /dev/null @@ -1,462 +0,0 @@ -{ - "id": "c58c317b-0c15-4bda-abb6-93e275f282d9", - "source": 1, - "name": "@cf/mistral/mistral-7b-instruct-v0.2-lora", - "description": "The Mistral-7B-Instruct-v0.2 Large Language Model (LLM) is an instruct fine-tuned version of the Mistral-7B-v0.2.", - "task": { - "id": "c329a1f9-323d-4e91-b2aa-582dd4188d34", - "name": "Text Generation", - "description": "Family of generative text models, such as large language models (LLM), that can be adapted for a variety of natural language tasks." - }, - "created_at": "2024-04-01 22:14:40.529", - "tags": [], - "properties": [ - { - "property_id": "beta", - "value": "true" - }, - { - "property_id": "context_window", - "value": "15000" - }, - { - "property_id": "lora", - "value": "true" - } - ], - "schema": { - "input": { - "type": "object", - "oneOf": [ - { - "title": "Prompt", - "properties": { - "prompt": { - "type": "string", - "minLength": 1, - "description": "The input text prompt for the model to generate a response." - }, - "lora": { - "type": "string", - "description": "Name of the LoRA (Low-Rank Adaptation) model to fine-tune the base model." - }, - "response_format": { - "title": "JSON Mode", - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_object", - "json_schema" - ] - }, - "json_schema": {} - } - }, - "raw": { - "type": "boolean", - "default": false, - "description": "If true, a chat template is not applied and you must adhere to the specific model's expected formatting." - }, - "stream": { - "type": "boolean", - "default": false, - "description": "If true, the response will be streamed back incrementally using SSE, Server Sent Events." - }, - "max_tokens": { - "type": "integer", - "default": 256, - "description": "The maximum number of tokens to generate in the response." - }, - "temperature": { - "type": "number", - "default": 0.6, - "minimum": 0, - "maximum": 5, - "description": "Controls the randomness of the output; higher values produce more random results." - }, - "top_p": { - "type": "number", - "minimum": 0.001, - "maximum": 1, - "description": "Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses." - }, - "top_k": { - "type": "integer", - "minimum": 1, - "maximum": 50, - "description": "Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises." - }, - "seed": { - "type": "integer", - "minimum": 1, - "maximum": 9999999999, - "description": "Random seed for reproducibility of the generation." - }, - "repetition_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Penalty for repeated tokens; higher values discourage repetition." - }, - "frequency_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Decreases the likelihood of the model repeating the same lines verbatim." - }, - "presence_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Increases the likelihood of the model introducing new topics." - } - }, - "required": [ - "prompt" - ] - }, - { - "title": "Messages", - "properties": { - "messages": { - "type": "array", - "description": "An array of message objects representing the conversation history.", - "items": { - "type": "object", - "properties": { - "role": { - "type": "string", - "description": "The role of the message sender (e.g., 'user', 'assistant', 'system', 'tool')." - }, - "content": { - "oneOf": [ - { - "type": "string", - "description": "The content of the message as a string." - }, - { - "type": "array", - "description": "Array of text content parts.", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "Type of the content (text)" - }, - "text": { - "type": "string", - "description": "Text content" - } - } - } - } - ] - } - }, - "required": [ - "role", - "content" - ] - } - }, - "functions": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "code": { - "type": "string" - } - }, - "required": [ - "name", - "code" - ] - } - }, - "tools": { - "type": "array", - "description": "A list of tools available for the assistant to use.", - "items": { - "type": "object", - "oneOf": [ - { - "properties": { - "name": { - "type": "string", - "description": "The name of the tool. More descriptive the better." - }, - "description": { - "type": "string", - "description": "A brief description of what the tool does." - }, - "parameters": { - "type": "object", - "description": "Schema defining the parameters accepted by the tool.", - "properties": { - "type": { - "type": "string", - "description": "The type of the parameters object (usually 'object')." - }, - "required": { - "type": "array", - "description": "List of required parameter names.", - "items": { - "type": "string" - } - }, - "properties": { - "type": "object", - "description": "Definitions of each parameter.", - "additionalProperties": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The data type of the parameter." - }, - "description": { - "type": "string", - "description": "A description of the expected parameter." - } - }, - "required": [ - "type", - "description" - ] - } - } - }, - "required": [ - "type", - "properties" - ] - } - }, - "required": [ - "name", - "description", - "parameters" - ] - }, - { - "properties": { - "type": { - "type": "string", - "description": "Specifies the type of tool (e.g., 'function')." - }, - "function": { - "type": "object", - "description": "Details of the function tool.", - "properties": { - "name": { - "type": "string", - "description": "The name of the function." - }, - "description": { - "type": "string", - "description": "A brief description of what the function does." - }, - "parameters": { - "type": "object", - "description": "Schema defining the parameters accepted by the function.", - "properties": { - "type": { - "type": "string", - "description": "The type of the parameters object (usually 'object')." - }, - "required": { - "type": "array", - "description": "List of required parameter names.", - "items": { - "type": "string" - } - }, - "properties": { - "type": "object", - "description": "Definitions of each parameter.", - "additionalProperties": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The data type of the parameter." - }, - "description": { - "type": "string", - "description": "A description of the expected parameter." - } - }, - "required": [ - "type", - "description" - ] - } - } - }, - "required": [ - "type", - "properties" - ] - } - }, - "required": [ - "name", - "description", - "parameters" - ] - } - }, - "required": [ - "type", - "function" - ] - } - ] - } - }, - "response_format": { - "title": "JSON Mode", - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_object", - "json_schema" - ] - }, - "json_schema": {} - } - }, - "raw": { - "type": "boolean", - "default": false, - "description": "If true, a chat template is not applied and you must adhere to the specific model's expected formatting." - }, - "stream": { - "type": "boolean", - "default": false, - "description": "If true, the response will be streamed back incrementally using SSE, Server Sent Events." - }, - "max_tokens": { - "type": "integer", - "default": 256, - "description": "The maximum number of tokens to generate in the response." - }, - "temperature": { - "type": "number", - "default": 0.6, - "minimum": 0, - "maximum": 5, - "description": "Controls the randomness of the output; higher values produce more random results." - }, - "top_p": { - "type": "number", - "minimum": 0.001, - "maximum": 1, - "description": "Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses." - }, - "top_k": { - "type": "integer", - "minimum": 1, - "maximum": 50, - "description": "Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises." - }, - "seed": { - "type": "integer", - "minimum": 1, - "maximum": 9999999999, - "description": "Random seed for reproducibility of the generation." - }, - "repetition_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Penalty for repeated tokens; higher values discourage repetition." - }, - "frequency_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Decreases the likelihood of the model repeating the same lines verbatim." - }, - "presence_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Increases the likelihood of the model introducing new topics." - } - }, - "required": [ - "messages" - ] - } - ] - }, - "output": { - "oneOf": [ - { - "type": "object", - "properties": { - "response": { - "type": "string", - "description": "The generated text response from the model" - }, - "usage": { - "type": "object", - "description": "Usage statistics for the inference request", - "properties": { - "prompt_tokens": { - "type": "number", - "description": "Total number of tokens in input", - "default": 0 - }, - "completion_tokens": { - "type": "number", - "description": "Total number of tokens in output", - "default": 0 - }, - "total_tokens": { - "type": "number", - "description": "Total number of input and output tokens", - "default": 0 - } - } - }, - "tool_calls": { - "type": "array", - "description": "An array of tool calls requests made during the response generation", - "items": { - "type": "object", - "properties": { - "arguments": { - "type": "object", - "description": "The arguments passed to be passed to the tool call request" - }, - "name": { - "type": "string", - "description": "The name of the tool to be called" - } - } - } - } - }, - "required": [ - "response" - ] - }, - { - "type": "string", - "format": "binary" - } - ] - } - } -} \ No newline at end of file diff --git a/src/content/workers-ai-models/mistral-7b-instruct-v0.2.json b/src/content/workers-ai-models/mistral-7b-instruct-v0.2.json deleted file mode 100644 index b22803524d914a6..000000000000000 --- a/src/content/workers-ai-models/mistral-7b-instruct-v0.2.json +++ /dev/null @@ -1,478 +0,0 @@ -{ - "id": "b97d7069-48d9-461c-80dd-445d20a632eb", - "source": 2, - "name": "@hf/mistral/mistral-7b-instruct-v0.2", - "description": "The Mistral-7B-Instruct-v0.2 Large Language Model (LLM) is an instruct fine-tuned version of the Mistral-7B-v0.2. Mistral-7B-v0.2 has the following changes compared to Mistral-7B-v0.1: 32k context window (vs 8k context in v0.1), rope-theta = 1e6, and no Sliding-Window Attention.", - "task": { - "id": "c329a1f9-323d-4e91-b2aa-582dd4188d34", - "name": "Text Generation", - "description": "Family of generative text models, such as large language models (LLM), that can be adapted for a variety of natural language tasks." - }, - "created_at": "2024-04-02 13:00:59.244", - "tags": [], - "properties": [ - { - "property_id": "beta", - "value": "true" - }, - { - "property_id": "context_window", - "value": "3072" - }, - { - "property_id": "info", - "value": "https://huggingface.co/mistralai/Mistral-7B-Instruct-v0.2" - }, - { - "property_id": "lora", - "value": "true" - }, - { - "property_id": "max_batch_prefill_tokens", - "value": "8192" - }, - { - "property_id": "max_input_length", - "value": "3072" - }, - { - "property_id": "max_total_tokens", - "value": "4096" - } - ], - "schema": { - "input": { - "type": "object", - "oneOf": [ - { - "title": "Prompt", - "properties": { - "prompt": { - "type": "string", - "minLength": 1, - "description": "The input text prompt for the model to generate a response." - }, - "lora": { - "type": "string", - "description": "Name of the LoRA (Low-Rank Adaptation) model to fine-tune the base model." - }, - "response_format": { - "title": "JSON Mode", - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_object", - "json_schema" - ] - }, - "json_schema": {} - } - }, - "raw": { - "type": "boolean", - "default": false, - "description": "If true, a chat template is not applied and you must adhere to the specific model's expected formatting." - }, - "stream": { - "type": "boolean", - "default": false, - "description": "If true, the response will be streamed back incrementally using SSE, Server Sent Events." - }, - "max_tokens": { - "type": "integer", - "default": 256, - "description": "The maximum number of tokens to generate in the response." - }, - "temperature": { - "type": "number", - "default": 0.6, - "minimum": 0, - "maximum": 5, - "description": "Controls the randomness of the output; higher values produce more random results." - }, - "top_p": { - "type": "number", - "minimum": 0.001, - "maximum": 1, - "description": "Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses." - }, - "top_k": { - "type": "integer", - "minimum": 1, - "maximum": 50, - "description": "Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises." - }, - "seed": { - "type": "integer", - "minimum": 1, - "maximum": 9999999999, - "description": "Random seed for reproducibility of the generation." - }, - "repetition_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Penalty for repeated tokens; higher values discourage repetition." - }, - "frequency_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Decreases the likelihood of the model repeating the same lines verbatim." - }, - "presence_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Increases the likelihood of the model introducing new topics." - } - }, - "required": [ - "prompt" - ] - }, - { - "title": "Messages", - "properties": { - "messages": { - "type": "array", - "description": "An array of message objects representing the conversation history.", - "items": { - "type": "object", - "properties": { - "role": { - "type": "string", - "description": "The role of the message sender (e.g., 'user', 'assistant', 'system', 'tool')." - }, - "content": { - "oneOf": [ - { - "type": "string", - "description": "The content of the message as a string." - }, - { - "type": "array", - "description": "Array of text content parts.", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "Type of the content (text)" - }, - "text": { - "type": "string", - "description": "Text content" - } - } - } - } - ] - } - }, - "required": [ - "role", - "content" - ] - } - }, - "functions": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "code": { - "type": "string" - } - }, - "required": [ - "name", - "code" - ] - } - }, - "tools": { - "type": "array", - "description": "A list of tools available for the assistant to use.", - "items": { - "type": "object", - "oneOf": [ - { - "properties": { - "name": { - "type": "string", - "description": "The name of the tool. More descriptive the better." - }, - "description": { - "type": "string", - "description": "A brief description of what the tool does." - }, - "parameters": { - "type": "object", - "description": "Schema defining the parameters accepted by the tool.", - "properties": { - "type": { - "type": "string", - "description": "The type of the parameters object (usually 'object')." - }, - "required": { - "type": "array", - "description": "List of required parameter names.", - "items": { - "type": "string" - } - }, - "properties": { - "type": "object", - "description": "Definitions of each parameter.", - "additionalProperties": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The data type of the parameter." - }, - "description": { - "type": "string", - "description": "A description of the expected parameter." - } - }, - "required": [ - "type", - "description" - ] - } - } - }, - "required": [ - "type", - "properties" - ] - } - }, - "required": [ - "name", - "description", - "parameters" - ] - }, - { - "properties": { - "type": { - "type": "string", - "description": "Specifies the type of tool (e.g., 'function')." - }, - "function": { - "type": "object", - "description": "Details of the function tool.", - "properties": { - "name": { - "type": "string", - "description": "The name of the function." - }, - "description": { - "type": "string", - "description": "A brief description of what the function does." - }, - "parameters": { - "type": "object", - "description": "Schema defining the parameters accepted by the function.", - "properties": { - "type": { - "type": "string", - "description": "The type of the parameters object (usually 'object')." - }, - "required": { - "type": "array", - "description": "List of required parameter names.", - "items": { - "type": "string" - } - }, - "properties": { - "type": "object", - "description": "Definitions of each parameter.", - "additionalProperties": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The data type of the parameter." - }, - "description": { - "type": "string", - "description": "A description of the expected parameter." - } - }, - "required": [ - "type", - "description" - ] - } - } - }, - "required": [ - "type", - "properties" - ] - } - }, - "required": [ - "name", - "description", - "parameters" - ] - } - }, - "required": [ - "type", - "function" - ] - } - ] - } - }, - "response_format": { - "title": "JSON Mode", - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_object", - "json_schema" - ] - }, - "json_schema": {} - } - }, - "raw": { - "type": "boolean", - "default": false, - "description": "If true, a chat template is not applied and you must adhere to the specific model's expected formatting." - }, - "stream": { - "type": "boolean", - "default": false, - "description": "If true, the response will be streamed back incrementally using SSE, Server Sent Events." - }, - "max_tokens": { - "type": "integer", - "default": 256, - "description": "The maximum number of tokens to generate in the response." - }, - "temperature": { - "type": "number", - "default": 0.6, - "minimum": 0, - "maximum": 5, - "description": "Controls the randomness of the output; higher values produce more random results." - }, - "top_p": { - "type": "number", - "minimum": 0.001, - "maximum": 1, - "description": "Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses." - }, - "top_k": { - "type": "integer", - "minimum": 1, - "maximum": 50, - "description": "Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises." - }, - "seed": { - "type": "integer", - "minimum": 1, - "maximum": 9999999999, - "description": "Random seed for reproducibility of the generation." - }, - "repetition_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Penalty for repeated tokens; higher values discourage repetition." - }, - "frequency_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Decreases the likelihood of the model repeating the same lines verbatim." - }, - "presence_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Increases the likelihood of the model introducing new topics." - } - }, - "required": [ - "messages" - ] - } - ] - }, - "output": { - "oneOf": [ - { - "type": "object", - "properties": { - "response": { - "type": "string", - "description": "The generated text response from the model" - }, - "usage": { - "type": "object", - "description": "Usage statistics for the inference request", - "properties": { - "prompt_tokens": { - "type": "number", - "description": "Total number of tokens in input", - "default": 0 - }, - "completion_tokens": { - "type": "number", - "description": "Total number of tokens in output", - "default": 0 - }, - "total_tokens": { - "type": "number", - "description": "Total number of input and output tokens", - "default": 0 - } - } - }, - "tool_calls": { - "type": "array", - "description": "An array of tool calls requests made during the response generation", - "items": { - "type": "object", - "properties": { - "arguments": { - "type": "object", - "description": "The arguments passed to be passed to the tool call request" - }, - "name": { - "type": "string", - "description": "The name of the tool to be called" - } - } - } - } - }, - "required": [ - "response" - ] - }, - { - "type": "string", - "format": "binary" - } - ] - } - } -} \ No newline at end of file diff --git a/src/content/workers-ai-models/mistral-small-3.1-24b-instruct.json b/src/content/workers-ai-models/mistral-small-3.1-24b-instruct.json deleted file mode 100644 index aea8567cc30f106..000000000000000 --- a/src/content/workers-ai-models/mistral-small-3.1-24b-instruct.json +++ /dev/null @@ -1,481 +0,0 @@ -{ - "id": "31690291-ebdc-4f98-bcfc-a44844e215b7", - "source": 1, - "name": "@cf/mistralai/mistral-small-3.1-24b-instruct", - "description": "Building upon Mistral Small 3 (2501), Mistral Small 3.1 (2503) adds state-of-the-art vision understanding and enhances long context capabilities up to 128k tokens without compromising text performance. With 24 billion parameters, this model achieves top-tier capabilities in both text and vision tasks.", - "task": { - "id": "c329a1f9-323d-4e91-b2aa-582dd4188d34", - "name": "Text Generation", - "description": "Family of generative text models, such as large language models (LLM), that can be adapted for a variety of natural language tasks." - }, - "created_at": "2025-03-18 03:28:37.890", - "tags": [], - "properties": [ - { - "property_id": "context_window", - "value": "128000" - }, - { - "property_id": "price", - "value": [ - { - "unit": "per M input tokens", - "price": 0.35, - "currency": "USD" - }, - { - "unit": "per M output tokens", - "price": 0.56, - "currency": "USD" - } - ] - }, - { - "property_id": "function_calling", - "value": "true" - } - ], - "schema": { - "input": { - "type": "object", - "oneOf": [ - { - "title": "Prompt", - "properties": { - "prompt": { - "type": "string", - "minLength": 1, - "description": "The input text prompt for the model to generate a response." - }, - "guided_json": { - "type": "object", - "description": "JSON schema that should be fulfilled for the response." - }, - "raw": { - "type": "boolean", - "default": false, - "description": "If true, a chat template is not applied and you must adhere to the specific model's expected formatting." - }, - "stream": { - "type": "boolean", - "default": false, - "description": "If true, the response will be streamed back incrementally using SSE, Server Sent Events." - }, - "max_tokens": { - "type": "integer", - "default": 256, - "description": "The maximum number of tokens to generate in the response." - }, - "temperature": { - "type": "number", - "default": 0.15, - "minimum": 0, - "maximum": 5, - "description": "Controls the randomness of the output; higher values produce more random results." - }, - "top_p": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses." - }, - "top_k": { - "type": "integer", - "minimum": 1, - "maximum": 50, - "description": "Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises." - }, - "seed": { - "type": "integer", - "minimum": 1, - "maximum": 9999999999, - "description": "Random seed for reproducibility of the generation." - }, - "repetition_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Penalty for repeated tokens; higher values discourage repetition." - }, - "frequency_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Decreases the likelihood of the model repeating the same lines verbatim." - }, - "presence_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Increases the likelihood of the model introducing new topics." - } - }, - "required": [ - "prompt" - ] - }, - { - "title": "Messages", - "properties": { - "messages": { - "type": "array", - "description": "An array of message objects representing the conversation history.", - "items": { - "type": "object", - "properties": { - "role": { - "type": "string", - "description": "The role of the message sender (e.g., 'user', 'assistant', 'system', 'tool')." - }, - "tool_call_id": { - "type": "string", - "description": "The tool call id. Must be supplied for tool calls for Mistral-3. If you don't know what to put here you can fall back to 000000001" - }, - "content": { - "oneOf": [ - { - "type": "string", - "description": "The content of the message as a string." - }, - { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "Type of the content provided" - }, - "text": { - "type": "string" - }, - "image_url": { - "type": "object", - "properties": { - "url": { - "type": "string", - "pattern": "^data:*", - "description": "image uri with data (e.g. data:image/jpeg;base64,/9j/...). HTTP URL will not be accepted" - } - } - } - } - } - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "Type of the content provided" - }, - "text": { - "type": "string" - }, - "image_url": { - "type": "object", - "properties": { - "url": { - "type": "string", - "pattern": "^data:*", - "description": "image uri with data (e.g. data:image/jpeg;base64,/9j/...). HTTP URL will not be accepted" - } - } - } - } - } - ] - } - } - } - }, - "functions": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "code": { - "type": "string" - } - }, - "required": [ - "name", - "code" - ] - } - }, - "tools": { - "type": "array", - "description": "A list of tools available for the assistant to use.", - "items": { - "type": "object", - "oneOf": [ - { - "properties": { - "name": { - "type": "string", - "description": "The name of the tool. More descriptive the better." - }, - "description": { - "type": "string", - "description": "A brief description of what the tool does." - }, - "parameters": { - "type": "object", - "description": "Schema defining the parameters accepted by the tool.", - "properties": { - "type": { - "type": "string", - "description": "The type of the parameters object (usually 'object')." - }, - "required": { - "type": "array", - "description": "List of required parameter names.", - "items": { - "type": "string" - } - }, - "properties": { - "type": "object", - "description": "Definitions of each parameter.", - "additionalProperties": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The data type of the parameter." - }, - "description": { - "type": "string", - "description": "A description of the expected parameter." - } - }, - "required": [ - "type", - "description" - ] - } - } - }, - "required": [ - "type", - "properties" - ] - } - }, - "required": [ - "name", - "description", - "parameters" - ] - }, - { - "properties": { - "type": { - "type": "string", - "description": "Specifies the type of tool (e.g., 'function')." - }, - "function": { - "type": "object", - "description": "Details of the function tool.", - "properties": { - "name": { - "type": "string", - "description": "The name of the function." - }, - "description": { - "type": "string", - "description": "A brief description of what the function does." - }, - "parameters": { - "type": "object", - "description": "Schema defining the parameters accepted by the function.", - "properties": { - "type": { - "type": "string", - "description": "The type of the parameters object (usually 'object')." - }, - "required": { - "type": "array", - "description": "List of required parameter names.", - "items": { - "type": "string" - } - }, - "properties": { - "type": "object", - "description": "Definitions of each parameter.", - "additionalProperties": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The data type of the parameter." - }, - "description": { - "type": "string", - "description": "A description of the expected parameter." - } - }, - "required": [ - "type", - "description" - ] - } - } - }, - "required": [ - "type", - "properties" - ] - } - }, - "required": [ - "name", - "description", - "parameters" - ] - } - }, - "required": [ - "type", - "function" - ] - } - ] - } - }, - "guided_json": { - "type": "object", - "description": "JSON schema that should be fufilled for the response." - }, - "raw": { - "type": "boolean", - "default": false, - "description": "If true, a chat template is not applied and you must adhere to the specific model's expected formatting." - }, - "stream": { - "type": "boolean", - "default": false, - "description": "If true, the response will be streamed back incrementally using SSE, Server Sent Events." - }, - "max_tokens": { - "type": "integer", - "default": 256, - "description": "The maximum number of tokens to generate in the response." - }, - "temperature": { - "type": "number", - "default": 0.15, - "minimum": 0, - "maximum": 5, - "description": "Controls the randomness of the output; higher values produce more random results." - }, - "top_p": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses." - }, - "top_k": { - "type": "integer", - "minimum": 1, - "maximum": 50, - "description": "Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises." - }, - "seed": { - "type": "integer", - "minimum": 1, - "maximum": 9999999999, - "description": "Random seed for reproducibility of the generation." - }, - "repetition_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Penalty for repeated tokens; higher values discourage repetition." - }, - "frequency_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Decreases the likelihood of the model repeating the same lines verbatim." - }, - "presence_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Increases the likelihood of the model introducing new topics." - } - }, - "required": [ - "messages" - ] - } - ] - }, - "output": { - "oneOf": [ - { - "type": "object", - "contentType": "application/json", - "properties": { - "response": { - "type": "string", - "description": "The generated text response from the model" - }, - "usage": { - "type": "object", - "description": "Usage statistics for the inference request", - "properties": { - "prompt_tokens": { - "type": "number", - "description": "Total number of tokens in input", - "default": 0 - }, - "completion_tokens": { - "type": "number", - "description": "Total number of tokens in output", - "default": 0 - }, - "total_tokens": { - "type": "number", - "description": "Total number of input and output tokens", - "default": 0 - } - } - }, - "tool_calls": { - "type": "array", - "description": "An array of tool calls requests made during the response generation", - "items": { - "type": "object", - "properties": { - "arguments": { - "type": "object", - "description": "The arguments passed to be passed to the tool call request" - }, - "name": { - "type": "string", - "description": "The name of the tool to be called" - } - } - } - } - }, - "required": [ - "response" - ] - }, - { - "type": "string", - "contentType": "text/event-stream", - "format": "binary" - } - ] - } - } -} \ No newline at end of file diff --git a/src/content/workers-ai-models/nemotron-3-120b-a12b.json b/src/content/workers-ai-models/nemotron-3-120b-a12b.json deleted file mode 100644 index 96e5c21d8f3232a..000000000000000 --- a/src/content/workers-ai-models/nemotron-3-120b-a12b.json +++ /dev/null @@ -1,2646 +0,0 @@ -{ - "id": "43dbadb4-2b0a-47e9-8479-34a49b971f1e", - "source": 1, - "name": "@cf/nvidia/nemotron-3-120b-a12b", - "description": "NVIDIA Nemotron 3 Super is a hybrid MoE model with leading accuracy for multi-agent applications and specialized agentic AI systems.", - "task": { - "id": "c329a1f9-323d-4e91-b2aa-582dd4188d34", - "name": "Text Generation", - "description": "Family of generative text models, such as large language models (LLM), that can be adapted for a variety of natural language tasks." - }, - "created_at": "2026-02-24 23:22:47.215", - "tags": [], - "properties": [ - { - "property_id": "context_window", - "value": "256000" - }, - { - "property_id": "price", - "value": [ - { - "unit": "per M input tokens", - "price": 0.5, - "currency": "USD" - }, - { - "unit": "per M output tokens", - "price": 1.5, - "currency": "USD" - } - ] - }, - { - "property_id": "function_calling", - "value": "true" - }, - { - "property_id": "reasoning", - "value": "true" - }, - { - "property_id": "terms", - "value": "https://www.nvidia.com/en-us/agreements/enterprise-software/nvidia-nemotron-open-model-license/" - } - ], - "schema": { - "input": { - "type": "object", - "oneOf": [ - { - "title": "Prompt", - "properties": { - "prompt": { - "type": "string", - "minLength": 1, - "description": "The input text prompt for the model to generate a response." - }, - "model": { - "type": "string", - "description": "ID of the model to use (e.g. '@cf/zai-org/glm-4.7-flash, etc')." - }, - "audio": { - "anyOf": [ - { - "type": "object", - "description": "Parameters for audio output. Required when modalities includes 'audio'.", - "properties": { - "voice": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "object", - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ] - } - ] - }, - "format": { - "type": "string", - "enum": [ - "wav", - "aac", - "mp3", - "flac", - "opus", - "pcm16" - ] - } - }, - "required": [ - "voice", - "format" - ] - } - ] - }, - "frequency_penalty": { - "anyOf": [ - { - "type": "number", - "minimum": -2, - "maximum": 2 - }, - { - "type": "null" - } - ], - "default": 0, - "description": "Penalizes new tokens based on their existing frequency in the text so far." - }, - "logit_bias": { - "anyOf": [ - { - "type": "object" - }, - { - "type": "null" - } - ], - "description": "Modify the likelihood of specified tokens appearing in the completion. Maps token IDs to bias values from -100 to 100." - }, - "logprobs": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "default": false, - "description": "Whether to return log probabilities of the output tokens." - }, - "top_logprobs": { - "anyOf": [ - { - "type": "integer", - "minimum": 0, - "maximum": 20 - }, - { - "type": "null" - } - ], - "description": "How many top log probabilities to return at each token position (0-20). Requires logprobs=true." - }, - "max_tokens": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "description": "Deprecated in favor of max_completion_tokens. The maximum number of tokens to generate." - }, - "max_completion_tokens": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "description": "An upper bound for the number of tokens that can be generated for a completion." - }, - "metadata": { - "anyOf": [ - { - "type": "object" - }, - { - "type": "null" - } - ], - "description": "Set of 16 key-value pairs that can be attached to the object." - }, - "modalities": { - "anyOf": [ - { - "type": "array", - "items": { - "type": "string", - "enum": [ - "text", - "audio" - ] - } - }, - { - "type": "null" - } - ], - "description": "Output types requested from the model (e.g. ['text'] or ['text', 'audio'])." - }, - "n": { - "anyOf": [ - { - "type": "integer", - "minimum": 1, - "maximum": 128 - }, - { - "type": "null" - } - ], - "default": 1, - "description": "How many chat completion choices to generate for each input message." - }, - "parallel_tool_calls": { - "type": "boolean", - "default": true, - "description": "Whether to enable parallel function calling during tool use." - }, - "prediction": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "content" - ] - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "text" - ] - }, - "text": { - "type": "string" - } - }, - "required": [ - "type", - "text" - ] - } - } - ] - } - }, - "required": [ - "type", - "content" - ] - } - ] - }, - "presence_penalty": { - "anyOf": [ - { - "type": "number", - "minimum": -2, - "maximum": 2 - }, - { - "type": "null" - } - ], - "default": 0, - "description": "Penalizes new tokens based on whether they appear in the text so far." - }, - "reasoning_effort": { - "anyOf": [ - { - "type": "string", - "enum": [ - "low", - "medium", - "high" - ] - }, - { - "type": "null" - } - ], - "description": "Constrains effort on reasoning for reasoning models (o1, o3-mini, etc.)." - }, - "chat_template_kwargs": { - "type": "object", - "properties": { - "enable_thinking": { - "type": "boolean", - "default": true, - "description": "Whether to enable reasoning, enabled by default." - }, - "clear_thinking": { - "type": "boolean", - "default": false, - "description": "If false, preserves reasoning context between turns." - } - } - }, - "response_format": { - "anyOf": [ - { - "description": "Specifies the format the model must output.", - "oneOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "text" - ] - } - }, - "required": [ - "type" - ] - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_object" - ] - } - }, - "required": [ - "type" - ] - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_schema" - ] - }, - "json_schema": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "schema": { - "type": "object" - }, - "strict": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "name" - ] - } - }, - "required": [ - "type", - "json_schema" - ] - } - ] - } - ] - }, - "seed": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "description": "If specified, the system will make a best effort to sample deterministically." - }, - "service_tier": { - "anyOf": [ - { - "type": "string", - "enum": [ - "auto", - "default", - "flex", - "scale", - "priority" - ] - }, - { - "type": "null" - } - ], - "default": "auto", - "description": "Specifies the processing type used for serving the request." - }, - "stop": { - "description": "Up to 4 sequences where the API will stop generating further tokens.", - "anyOf": [ - { - "type": "null" - }, - { - "type": "string" - }, - { - "type": "array", - "items": { - "type": "string" - }, - "minItems": 1, - "maxItems": 4 - } - ] - }, - "store": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "default": false, - "description": "Whether to store the output for model distillation / evals." - }, - "stream": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "default": false, - "description": "If true, partial message deltas will be sent as server-sent events." - }, - "stream_options": { - "anyOf": [ - { - "type": "object", - "properties": { - "include_usage": { - "type": "boolean" - }, - "include_obfuscation": { - "type": "boolean" - } - } - } - ] - }, - "temperature": { - "anyOf": [ - { - "type": "number", - "minimum": 0, - "maximum": 2 - }, - { - "type": "null" - } - ], - "default": 1, - "description": "Sampling temperature between 0 and 2." - }, - "tool_choice": { - "anyOf": [ - { - "description": "Controls which (if any) tool is called by the model. 'none' = no tools, 'auto' = model decides, 'required' = must call a tool.", - "oneOf": [ - { - "type": "string", - "enum": [ - "none", - "auto", - "required" - ] - }, - { - "type": "object", - "description": "Force a specific function tool.", - "properties": { - "type": { - "type": "string", - "enum": [ - "function" - ] - }, - "function": { - "type": "object", - "properties": { - "name": { - "type": "string" - } - }, - "required": [ - "name" - ] - } - }, - "required": [ - "type", - "function" - ] - }, - { - "type": "object", - "description": "Force a specific custom tool.", - "properties": { - "type": { - "type": "string", - "enum": [ - "custom" - ] - }, - "custom": { - "type": "object", - "properties": { - "name": { - "type": "string" - } - }, - "required": [ - "name" - ] - } - }, - "required": [ - "type", - "custom" - ] - }, - { - "type": "object", - "description": "Constrain to an allowed subset of tools.", - "properties": { - "type": { - "type": "string", - "enum": [ - "allowed_tools" - ] - }, - "allowed_tools": { - "type": "object", - "properties": { - "mode": { - "type": "string", - "enum": [ - "auto", - "required" - ] - }, - "tools": { - "type": "array", - "items": { - "type": "object" - } - } - }, - "required": [ - "mode", - "tools" - ] - } - }, - "required": [ - "type", - "allowed_tools" - ] - } - ] - } - ] - }, - "tools": { - "type": "array", - "description": "A list of tools the model may call.", - "items": { - "oneOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "function" - ] - }, - "function": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The name of the function to be called." - }, - "description": { - "type": "string", - "description": "A description of what the function does." - }, - "parameters": { - "type": "object", - "description": "The parameters the function accepts, described as a JSON Schema object." - }, - "strict": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "default": false, - "description": "Whether to enable strict schema adherence." - } - }, - "required": [ - "name" - ] - } - }, - "required": [ - "type", - "function" - ] - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "custom" - ] - }, - "custom": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "format": { - "oneOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "text" - ] - } - }, - "required": [ - "type" - ] - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "grammar" - ] - }, - "grammar": { - "type": "object", - "properties": { - "definition": { - "type": "string" - }, - "syntax": { - "type": "string", - "enum": [ - "lark", - "regex" - ] - } - }, - "required": [ - "definition", - "syntax" - ] - } - }, - "required": [ - "type", - "grammar" - ] - } - ] - } - }, - "required": [ - "name" - ] - } - }, - "required": [ - "type", - "custom" - ] - } - ] - } - }, - "top_p": { - "anyOf": [ - { - "type": "number", - "minimum": 0, - "maximum": 1 - }, - { - "type": "null" - } - ], - "default": 1, - "description": "Nucleus sampling: considers the results of the tokens with top_p probability mass." - }, - "user": { - "type": "string", - "description": "A unique identifier representing your end-user, for abuse monitoring." - }, - "web_search_options": { - "anyOf": [ - { - "type": "object", - "description": "Options for the web search tool (when using built-in web search).", - "properties": { - "search_context_size": { - "type": "string", - "enum": [ - "low", - "medium", - "high" - ], - "default": "medium" - }, - "user_location": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "approximate" - ] - }, - "approximate": { - "type": "object", - "properties": { - "city": { - "type": "string" - }, - "country": { - "type": "string" - }, - "region": { - "type": "string" - }, - "timezone": { - "type": "string" - } - } - } - }, - "required": [ - "type", - "approximate" - ] - } - } - } - ] - }, - "function_call": { - "anyOf": [ - { - "type": "string", - "enum": [ - "none", - "auto" - ] - }, - { - "type": "object", - "properties": { - "name": { - "type": "string" - } - }, - "required": [ - "name" - ] - } - ] - }, - "functions": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The name of the function to be called." - }, - "description": { - "type": "string", - "description": "A description of what the function does." - }, - "parameters": { - "type": "object", - "description": "The parameters the function accepts, described as a JSON Schema object." - }, - "strict": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "default": false, - "description": "Whether to enable strict schema adherence." - } - }, - "required": [ - "name" - ] - }, - "minItems": 1, - "maxItems": 128 - } - }, - "required": [ - "prompt" - ] - }, - { - "title": "Messages", - "properties": { - "messages": { - "type": "array", - "description": "A list of messages comprising the conversation so far.", - "items": { - "oneOf": [ - { - "type": "object", - "properties": { - "role": { - "type": "string", - "enum": [ - "developer" - ] - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "text" - ] - }, - "text": { - "type": "string" - } - }, - "required": [ - "type", - "text" - ] - } - } - ] - }, - "name": { - "type": "string" - } - }, - "required": [ - "role", - "content" - ] - }, - { - "type": "object", - "properties": { - "role": { - "type": "string", - "enum": [ - "system" - ] - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "text" - ] - }, - "text": { - "type": "string" - } - }, - "required": [ - "type", - "text" - ] - } - } - ] - }, - "name": { - "type": "string" - } - }, - "required": [ - "role", - "content" - ] - }, - { - "type": "object", - "properties": { - "role": { - "type": "string", - "enum": [ - "user" - ] - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "text", - "image_url", - "input_audio", - "file" - ] - }, - "text": { - "type": "string" - }, - "image_url": { - "type": "object", - "properties": { - "url": { - "type": "string" - }, - "detail": { - "type": "string", - "enum": [ - "auto", - "low", - "high" - ], - "default": "auto" - } - } - }, - "input_audio": { - "type": "object", - "properties": { - "data": { - "type": "string" - }, - "format": { - "type": "string", - "enum": [ - "wav", - "mp3" - ] - } - } - }, - "file": { - "type": "object", - "properties": { - "file_data": { - "type": "string" - }, - "file_id": { - "type": "string" - }, - "filename": { - "type": "string" - } - } - } - }, - "required": [ - "type" - ] - }, - "minItems": 1 - } - ] - }, - "name": { - "type": "string" - } - }, - "required": [ - "role", - "content" - ] - }, - { - "type": "object", - "properties": { - "role": { - "type": "string", - "enum": [ - "assistant" - ] - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - }, - { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "text", - "refusal" - ] - }, - "text": { - "type": "string" - }, - "refusal": { - "type": "string" - } - }, - "required": [ - "type" - ] - } - } - ] - }, - "refusal": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "name": { - "type": "string" - }, - "audio": { - "anyOf": [ - { - "type": "object", - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ] - } - ] - }, - "tool_calls": { - "type": "array", - "items": { - "oneOf": [ - { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "function" - ] - }, - "function": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "arguments": { - "type": "string", - "description": "JSON-encoded arguments string." - } - }, - "required": [ - "name", - "arguments" - ] - } - }, - "required": [ - "id", - "type", - "function" - ] - }, - { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "custom" - ] - }, - "custom": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "input": { - "type": "string" - } - }, - "required": [ - "name", - "input" - ] - } - }, - "required": [ - "id", - "type", - "custom" - ] - } - ] - } - }, - "function_call": { - "anyOf": [ - { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "arguments": { - "type": "string" - } - }, - "required": [ - "name", - "arguments" - ] - } - ] - } - }, - "required": [ - "role" - ] - }, - { - "type": "object", - "properties": { - "role": { - "type": "string", - "enum": [ - "tool" - ] - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "text" - ] - }, - "text": { - "type": "string" - } - }, - "required": [ - "type", - "text" - ] - } - } - ] - }, - "tool_call_id": { - "type": "string" - } - }, - "required": [ - "role", - "content", - "tool_call_id" - ] - }, - { - "type": "object", - "properties": { - "role": { - "type": "string", - "enum": [ - "function" - ] - }, - "content": { - "type": "string" - }, - "name": { - "type": "string" - } - }, - "required": [ - "role", - "content", - "name" - ] - } - ] - }, - "minItems": 1 - }, - "model": { - "type": "string", - "description": "ID of the model to use (e.g. '@cf/zai-org/glm-4.7-flash, etc')." - }, - "audio": { - "anyOf": [ - { - "type": "object", - "description": "Parameters for audio output. Required when modalities includes 'audio'.", - "properties": { - "voice": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "object", - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ] - } - ] - }, - "format": { - "type": "string", - "enum": [ - "wav", - "aac", - "mp3", - "flac", - "opus", - "pcm16" - ] - } - }, - "required": [ - "voice", - "format" - ] - } - ] - }, - "frequency_penalty": { - "anyOf": [ - { - "type": "number", - "minimum": -2, - "maximum": 2 - }, - { - "type": "null" - } - ], - "default": 0, - "description": "Penalizes new tokens based on their existing frequency in the text so far." - }, - "logit_bias": { - "anyOf": [ - { - "type": "object" - }, - { - "type": "null" - } - ], - "description": "Modify the likelihood of specified tokens appearing in the completion. Maps token IDs to bias values from -100 to 100." - }, - "logprobs": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "default": false, - "description": "Whether to return log probabilities of the output tokens." - }, - "top_logprobs": { - "anyOf": [ - { - "type": "integer", - "minimum": 0, - "maximum": 20 - }, - { - "type": "null" - } - ], - "description": "How many top log probabilities to return at each token position (0-20). Requires logprobs=true." - }, - "max_tokens": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "description": "Deprecated in favor of max_completion_tokens. The maximum number of tokens to generate." - }, - "max_completion_tokens": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "description": "An upper bound for the number of tokens that can be generated for a completion." - }, - "metadata": { - "anyOf": [ - { - "type": "object" - }, - { - "type": "null" - } - ], - "description": "Set of 16 key-value pairs that can be attached to the object." - }, - "modalities": { - "anyOf": [ - { - "type": "array", - "items": { - "type": "string", - "enum": [ - "text", - "audio" - ] - } - }, - { - "type": "null" - } - ], - "description": "Output types requested from the model (e.g. ['text'] or ['text', 'audio'])." - }, - "n": { - "anyOf": [ - { - "type": "integer", - "minimum": 1, - "maximum": 128 - }, - { - "type": "null" - } - ], - "default": 1, - "description": "How many chat completion choices to generate for each input message." - }, - "parallel_tool_calls": { - "type": "boolean", - "default": true, - "description": "Whether to enable parallel function calling during tool use." - }, - "prediction": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "content" - ] - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "text" - ] - }, - "text": { - "type": "string" - } - }, - "required": [ - "type", - "text" - ] - } - } - ] - } - }, - "required": [ - "type", - "content" - ] - } - ] - }, - "presence_penalty": { - "anyOf": [ - { - "type": "number", - "minimum": -2, - "maximum": 2 - }, - { - "type": "null" - } - ], - "default": 0, - "description": "Penalizes new tokens based on whether they appear in the text so far." - }, - "reasoning_effort": { - "anyOf": [ - { - "type": "string", - "enum": [ - "low", - "medium", - "high" - ] - }, - { - "type": "null" - } - ], - "description": "Constrains effort on reasoning for reasoning models (o1, o3-mini, etc.)." - }, - "chat_template_kwargs": { - "type": "object", - "properties": { - "enable_thinking": { - "type": "boolean", - "default": true, - "description": "Whether to enable reasoning, enabled by default." - }, - "clear_thinking": { - "type": "boolean", - "default": false, - "description": "If false, preserves reasoning context between turns." - } - } - }, - "response_format": { - "anyOf": [ - { - "description": "Specifies the format the model must output.", - "oneOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "text" - ] - } - }, - "required": [ - "type" - ] - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_object" - ] - } - }, - "required": [ - "type" - ] - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_schema" - ] - }, - "json_schema": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "schema": { - "type": "object" - }, - "strict": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "name" - ] - } - }, - "required": [ - "type", - "json_schema" - ] - } - ] - } - ] - }, - "seed": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "description": "If specified, the system will make a best effort to sample deterministically." - }, - "service_tier": { - "anyOf": [ - { - "type": "string", - "enum": [ - "auto", - "default", - "flex", - "scale", - "priority" - ] - }, - { - "type": "null" - } - ], - "default": "auto", - "description": "Specifies the processing type used for serving the request." - }, - "stop": { - "description": "Up to 4 sequences where the API will stop generating further tokens.", - "anyOf": [ - { - "type": "null" - }, - { - "type": "string" - }, - { - "type": "array", - "items": { - "type": "string" - }, - "minItems": 1, - "maxItems": 4 - } - ] - }, - "store": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "default": false, - "description": "Whether to store the output for model distillation / evals." - }, - "stream": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "default": false, - "description": "If true, partial message deltas will be sent as server-sent events." - }, - "stream_options": { - "anyOf": [ - { - "type": "object", - "properties": { - "include_usage": { - "type": "boolean" - }, - "include_obfuscation": { - "type": "boolean" - } - } - } - ] - }, - "temperature": { - "anyOf": [ - { - "type": "number", - "minimum": 0, - "maximum": 2 - }, - { - "type": "null" - } - ], - "default": 1, - "description": "Sampling temperature between 0 and 2." - }, - "tool_choice": { - "anyOf": [ - { - "description": "Controls which (if any) tool is called by the model. 'none' = no tools, 'auto' = model decides, 'required' = must call a tool.", - "oneOf": [ - { - "type": "string", - "enum": [ - "none", - "auto", - "required" - ] - }, - { - "type": "object", - "description": "Force a specific function tool.", - "properties": { - "type": { - "type": "string", - "enum": [ - "function" - ] - }, - "function": { - "type": "object", - "properties": { - "name": { - "type": "string" - } - }, - "required": [ - "name" - ] - } - }, - "required": [ - "type", - "function" - ] - }, - { - "type": "object", - "description": "Force a specific custom tool.", - "properties": { - "type": { - "type": "string", - "enum": [ - "custom" - ] - }, - "custom": { - "type": "object", - "properties": { - "name": { - "type": "string" - } - }, - "required": [ - "name" - ] - } - }, - "required": [ - "type", - "custom" - ] - }, - { - "type": "object", - "description": "Constrain to an allowed subset of tools.", - "properties": { - "type": { - "type": "string", - "enum": [ - "allowed_tools" - ] - }, - "allowed_tools": { - "type": "object", - "properties": { - "mode": { - "type": "string", - "enum": [ - "auto", - "required" - ] - }, - "tools": { - "type": "array", - "items": { - "type": "object" - } - } - }, - "required": [ - "mode", - "tools" - ] - } - }, - "required": [ - "type", - "allowed_tools" - ] - } - ] - } - ] - }, - "tools": { - "type": "array", - "description": "A list of tools the model may call.", - "items": { - "oneOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "function" - ] - }, - "function": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The name of the function to be called." - }, - "description": { - "type": "string", - "description": "A description of what the function does." - }, - "parameters": { - "type": "object", - "description": "The parameters the function accepts, described as a JSON Schema object." - }, - "strict": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "default": false, - "description": "Whether to enable strict schema adherence." - } - }, - "required": [ - "name" - ] - } - }, - "required": [ - "type", - "function" - ] - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "custom" - ] - }, - "custom": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "format": { - "oneOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "text" - ] - } - }, - "required": [ - "type" - ] - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "grammar" - ] - }, - "grammar": { - "type": "object", - "properties": { - "definition": { - "type": "string" - }, - "syntax": { - "type": "string", - "enum": [ - "lark", - "regex" - ] - } - }, - "required": [ - "definition", - "syntax" - ] - } - }, - "required": [ - "type", - "grammar" - ] - } - ] - } - }, - "required": [ - "name" - ] - } - }, - "required": [ - "type", - "custom" - ] - } - ] - } - }, - "top_p": { - "anyOf": [ - { - "type": "number", - "minimum": 0, - "maximum": 1 - }, - { - "type": "null" - } - ], - "default": 1, - "description": "Nucleus sampling: considers the results of the tokens with top_p probability mass." - }, - "user": { - "type": "string", - "description": "A unique identifier representing your end-user, for abuse monitoring." - }, - "web_search_options": { - "anyOf": [ - { - "type": "object", - "description": "Options for the web search tool (when using built-in web search).", - "properties": { - "search_context_size": { - "type": "string", - "enum": [ - "low", - "medium", - "high" - ], - "default": "medium" - }, - "user_location": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "approximate" - ] - }, - "approximate": { - "type": "object", - "properties": { - "city": { - "type": "string" - }, - "country": { - "type": "string" - }, - "region": { - "type": "string" - }, - "timezone": { - "type": "string" - } - } - } - }, - "required": [ - "type", - "approximate" - ] - } - } - } - ] - }, - "function_call": { - "anyOf": [ - { - "type": "string", - "enum": [ - "none", - "auto" - ] - }, - { - "type": "object", - "properties": { - "name": { - "type": "string" - } - }, - "required": [ - "name" - ] - } - ] - }, - "functions": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The name of the function to be called." - }, - "description": { - "type": "string", - "description": "A description of what the function does." - }, - "parameters": { - "type": "object", - "description": "The parameters the function accepts, described as a JSON Schema object." - }, - "strict": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "default": false, - "description": "Whether to enable strict schema adherence." - } - }, - "required": [ - "name" - ] - }, - "minItems": 1, - "maxItems": 128 - } - }, - "required": [ - "messages" - ] - } - ] - }, - "output": { - "oneOf": [ - { - "type": "object", - "contentType": "application/json", - "properties": { - "id": { - "type": "string", - "description": "A unique identifier for the chat completion." - }, - "object": { - "type": "string" - }, - "created": { - "type": "integer", - "description": "Unix timestamp (seconds) of when the completion was created." - }, - "model": { - "type": "string", - "description": "The model used for the chat completion." - }, - "choices": { - "type": "array", - "items": { - "anyOf": [ - { - "type": "object", - "properties": { - "index": { - "type": "integer" - }, - "message": { - "anyOf": [ - { - "type": "object", - "properties": { - "role": { - "type": "string", - "enum": [ - "assistant" - ] - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "refusal": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "annotations": { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "url_citation" - ] - }, - "url_citation": { - "type": "object", - "properties": { - "url": { - "type": "string" - }, - "title": { - "type": "string" - }, - "start_index": { - "type": "integer" - }, - "end_index": { - "type": "integer" - } - }, - "required": [ - "url", - "title", - "start_index", - "end_index" - ] - } - }, - "required": [ - "type", - "url_citation" - ] - } - }, - "audio": { - "anyOf": [ - { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "data": { - "type": "string", - "description": "Base64 encoded audio bytes." - }, - "expires_at": { - "type": "integer" - }, - "transcript": { - "type": "string" - } - }, - "required": [ - "id", - "data", - "expires_at", - "transcript" - ] - } - ] - }, - "tool_calls": { - "type": "array", - "items": { - "oneOf": [ - { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "function" - ] - }, - "function": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "arguments": { - "type": "string", - "description": "JSON-encoded arguments string." - } - }, - "required": [ - "name", - "arguments" - ] - } - }, - "required": [ - "id", - "type", - "function" - ] - }, - { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "custom" - ] - }, - "custom": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "input": { - "type": "string" - } - }, - "required": [ - "name", - "input" - ] - } - }, - "required": [ - "id", - "type", - "custom" - ] - } - ] - } - }, - "function_call": { - "anyOf": [ - { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "arguments": { - "type": "string" - } - }, - "required": [ - "name", - "arguments" - ] - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "role", - "content", - "refusal" - ] - } - ] - }, - "finish_reason": { - "type": "string", - "enum": [ - "stop", - "length", - "tool_calls", - "content_filter", - "function_call" - ] - }, - "logprobs": { - "anyOf": [ - { - "type": "object", - "properties": { - "content": { - "anyOf": [ - { - "type": "array", - "items": { - "type": "object", - "properties": { - "token": { - "type": "string" - }, - "logprob": { - "type": "number" - }, - "bytes": { - "anyOf": [ - { - "type": "array", - "items": { - "type": "integer" - } - }, - { - "type": "null" - } - ] - }, - "top_logprobs": { - "type": "array", - "items": { - "type": "object", - "properties": { - "token": { - "type": "string" - }, - "logprob": { - "type": "number" - }, - "bytes": { - "anyOf": [ - { - "type": "array", - "items": { - "type": "integer" - } - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "token", - "logprob", - "bytes" - ] - } - } - }, - "required": [ - "token", - "logprob", - "bytes", - "top_logprobs" - ] - } - }, - { - "type": "null" - } - ] - }, - "refusal": { - "anyOf": [ - { - "type": "array", - "items": { - "type": "object", - "properties": { - "token": { - "type": "string" - }, - "logprob": { - "type": "number" - }, - "bytes": { - "anyOf": [ - { - "type": "array", - "items": { - "type": "integer" - } - }, - { - "type": "null" - } - ] - }, - "top_logprobs": { - "type": "array", - "items": { - "type": "object", - "properties": { - "token": { - "type": "string" - }, - "logprob": { - "type": "number" - }, - "bytes": { - "anyOf": [ - { - "type": "array", - "items": { - "type": "integer" - } - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "token", - "logprob", - "bytes" - ] - } - } - }, - "required": [ - "token", - "logprob", - "bytes", - "top_logprobs" - ] - } - }, - { - "type": "null" - } - ] - } - } - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "index", - "message", - "finish_reason", - "logprobs" - ] - } - ] - }, - "minItems": 1 - }, - "usage": { - "anyOf": [ - { - "type": "object", - "properties": { - "prompt_tokens": { - "type": "integer" - }, - "completion_tokens": { - "type": "integer" - }, - "total_tokens": { - "type": "integer" - }, - "prompt_tokens_details": { - "type": "object", - "properties": { - "cached_tokens": { - "type": "integer" - }, - "audio_tokens": { - "type": "integer" - } - } - }, - "completion_tokens_details": { - "type": "object", - "properties": { - "reasoning_tokens": { - "type": "integer" - }, - "audio_tokens": { - "type": "integer" - }, - "accepted_prediction_tokens": { - "type": "integer" - }, - "rejected_prediction_tokens": { - "type": "integer" - } - } - } - }, - "required": [ - "prompt_tokens", - "completion_tokens", - "total_tokens" - ] - } - ] - }, - "system_fingerprint": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "service_tier": { - "anyOf": [ - { - "type": "string", - "enum": [ - "auto", - "default", - "flex", - "scale", - "priority" - ] - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "object", - "created", - "model", - "choices" - ] - }, - { - "type": "string", - "contentType": "text/event-stream", - "format": "binary" - } - ] - } - } -} \ No newline at end of file diff --git a/src/content/workers-ai-models/neural-chat-7b-v3-1-awq.json b/src/content/workers-ai-models/neural-chat-7b-v3-1-awq.json deleted file mode 100644 index 1ca98b08aefca2b..000000000000000 --- a/src/content/workers-ai-models/neural-chat-7b-v3-1-awq.json +++ /dev/null @@ -1,462 +0,0 @@ -{ - "id": "d2ba5c6b-bbb7-49d6-b466-900654870cd6", - "source": 2, - "name": "@hf/thebloke/neural-chat-7b-v3-1-awq", - "description": "This model is a fine-tuned 7B parameter LLM on the Intel Gaudi 2 processor from the mistralai/Mistral-7B-v0.1 on the open source dataset Open-Orca/SlimOrca.", - "task": { - "id": "c329a1f9-323d-4e91-b2aa-582dd4188d34", - "name": "Text Generation", - "description": "Family of generative text models, such as large language models (LLM), that can be adapted for a variety of natural language tasks." - }, - "created_at": "2024-02-06 18:12:30.722", - "tags": [], - "properties": [ - { - "property_id": "beta", - "value": "true" - }, - { - "property_id": "context_window", - "value": "4096" - }, - { - "property_id": "planned_deprecation_date", - "value": "2025-10-01" - } - ], - "schema": { - "input": { - "type": "object", - "oneOf": [ - { - "title": "Prompt", - "properties": { - "prompt": { - "type": "string", - "minLength": 1, - "description": "The input text prompt for the model to generate a response." - }, - "lora": { - "type": "string", - "description": "Name of the LoRA (Low-Rank Adaptation) model to fine-tune the base model." - }, - "response_format": { - "title": "JSON Mode", - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_object", - "json_schema" - ] - }, - "json_schema": {} - } - }, - "raw": { - "type": "boolean", - "default": false, - "description": "If true, a chat template is not applied and you must adhere to the specific model's expected formatting." - }, - "stream": { - "type": "boolean", - "default": false, - "description": "If true, the response will be streamed back incrementally using SSE, Server Sent Events." - }, - "max_tokens": { - "type": "integer", - "default": 256, - "description": "The maximum number of tokens to generate in the response." - }, - "temperature": { - "type": "number", - "default": 0.6, - "minimum": 0, - "maximum": 5, - "description": "Controls the randomness of the output; higher values produce more random results." - }, - "top_p": { - "type": "number", - "minimum": 0.001, - "maximum": 1, - "description": "Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses." - }, - "top_k": { - "type": "integer", - "minimum": 1, - "maximum": 50, - "description": "Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises." - }, - "seed": { - "type": "integer", - "minimum": 1, - "maximum": 9999999999, - "description": "Random seed for reproducibility of the generation." - }, - "repetition_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Penalty for repeated tokens; higher values discourage repetition." - }, - "frequency_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Decreases the likelihood of the model repeating the same lines verbatim." - }, - "presence_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Increases the likelihood of the model introducing new topics." - } - }, - "required": [ - "prompt" - ] - }, - { - "title": "Messages", - "properties": { - "messages": { - "type": "array", - "description": "An array of message objects representing the conversation history.", - "items": { - "type": "object", - "properties": { - "role": { - "type": "string", - "description": "The role of the message sender (e.g., 'user', 'assistant', 'system', 'tool')." - }, - "content": { - "oneOf": [ - { - "type": "string", - "description": "The content of the message as a string." - }, - { - "type": "array", - "description": "Array of text content parts.", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "Type of the content (text)" - }, - "text": { - "type": "string", - "description": "Text content" - } - } - } - } - ] - } - }, - "required": [ - "role", - "content" - ] - } - }, - "functions": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "code": { - "type": "string" - } - }, - "required": [ - "name", - "code" - ] - } - }, - "tools": { - "type": "array", - "description": "A list of tools available for the assistant to use.", - "items": { - "type": "object", - "oneOf": [ - { - "properties": { - "name": { - "type": "string", - "description": "The name of the tool. More descriptive the better." - }, - "description": { - "type": "string", - "description": "A brief description of what the tool does." - }, - "parameters": { - "type": "object", - "description": "Schema defining the parameters accepted by the tool.", - "properties": { - "type": { - "type": "string", - "description": "The type of the parameters object (usually 'object')." - }, - "required": { - "type": "array", - "description": "List of required parameter names.", - "items": { - "type": "string" - } - }, - "properties": { - "type": "object", - "description": "Definitions of each parameter.", - "additionalProperties": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The data type of the parameter." - }, - "description": { - "type": "string", - "description": "A description of the expected parameter." - } - }, - "required": [ - "type", - "description" - ] - } - } - }, - "required": [ - "type", - "properties" - ] - } - }, - "required": [ - "name", - "description", - "parameters" - ] - }, - { - "properties": { - "type": { - "type": "string", - "description": "Specifies the type of tool (e.g., 'function')." - }, - "function": { - "type": "object", - "description": "Details of the function tool.", - "properties": { - "name": { - "type": "string", - "description": "The name of the function." - }, - "description": { - "type": "string", - "description": "A brief description of what the function does." - }, - "parameters": { - "type": "object", - "description": "Schema defining the parameters accepted by the function.", - "properties": { - "type": { - "type": "string", - "description": "The type of the parameters object (usually 'object')." - }, - "required": { - "type": "array", - "description": "List of required parameter names.", - "items": { - "type": "string" - } - }, - "properties": { - "type": "object", - "description": "Definitions of each parameter.", - "additionalProperties": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The data type of the parameter." - }, - "description": { - "type": "string", - "description": "A description of the expected parameter." - } - }, - "required": [ - "type", - "description" - ] - } - } - }, - "required": [ - "type", - "properties" - ] - } - }, - "required": [ - "name", - "description", - "parameters" - ] - } - }, - "required": [ - "type", - "function" - ] - } - ] - } - }, - "response_format": { - "title": "JSON Mode", - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_object", - "json_schema" - ] - }, - "json_schema": {} - } - }, - "raw": { - "type": "boolean", - "default": false, - "description": "If true, a chat template is not applied and you must adhere to the specific model's expected formatting." - }, - "stream": { - "type": "boolean", - "default": false, - "description": "If true, the response will be streamed back incrementally using SSE, Server Sent Events." - }, - "max_tokens": { - "type": "integer", - "default": 256, - "description": "The maximum number of tokens to generate in the response." - }, - "temperature": { - "type": "number", - "default": 0.6, - "minimum": 0, - "maximum": 5, - "description": "Controls the randomness of the output; higher values produce more random results." - }, - "top_p": { - "type": "number", - "minimum": 0.001, - "maximum": 1, - "description": "Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses." - }, - "top_k": { - "type": "integer", - "minimum": 1, - "maximum": 50, - "description": "Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises." - }, - "seed": { - "type": "integer", - "minimum": 1, - "maximum": 9999999999, - "description": "Random seed for reproducibility of the generation." - }, - "repetition_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Penalty for repeated tokens; higher values discourage repetition." - }, - "frequency_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Decreases the likelihood of the model repeating the same lines verbatim." - }, - "presence_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Increases the likelihood of the model introducing new topics." - } - }, - "required": [ - "messages" - ] - } - ] - }, - "output": { - "oneOf": [ - { - "type": "object", - "properties": { - "response": { - "type": "string", - "description": "The generated text response from the model" - }, - "usage": { - "type": "object", - "description": "Usage statistics for the inference request", - "properties": { - "prompt_tokens": { - "type": "number", - "description": "Total number of tokens in input", - "default": 0 - }, - "completion_tokens": { - "type": "number", - "description": "Total number of tokens in output", - "default": 0 - }, - "total_tokens": { - "type": "number", - "description": "Total number of input and output tokens", - "default": 0 - } - } - }, - "tool_calls": { - "type": "array", - "description": "An array of tool calls requests made during the response generation", - "items": { - "type": "object", - "properties": { - "arguments": { - "type": "object", - "description": "The arguments passed to be passed to the tool call request" - }, - "name": { - "type": "string", - "description": "The name of the tool to be called" - } - } - } - } - }, - "required": [ - "response" - ] - }, - { - "type": "string", - "format": "binary" - } - ] - } - } -} \ No newline at end of file diff --git a/src/content/workers-ai-models/nova-3.json b/src/content/workers-ai-models/nova-3.json deleted file mode 100644 index b6053b08e3bf32f..000000000000000 --- a/src/content/workers-ai-models/nova-3.json +++ /dev/null @@ -1,337 +0,0 @@ -{ - "id": "a226909f-eef8-4265-a3a0-90db0422762e", - "source": 1, - "name": "@cf/deepgram/nova-3", - "description": "Transcribe audio using Deepgram’s speech-to-text model", - "task": { - "id": "dfce1c48-2a81-462e-a7fd-de97ce985207", - "name": "Automatic Speech Recognition", - "description": "Automatic speech recognition (ASR) models convert a speech signal, typically an audio input, to text." - }, - "created_at": "2025-06-05 16:05:15.199", - "tags": [], - "properties": [ - { - "property_id": "async_queue", - "value": "true" - }, - { - "property_id": "price", - "value": [ - { - "unit": "per audio minute", - "price": 0.0052, - "currency": "USD" - }, - { - "unit": "per audio minute (websocket)", - "price": 0.0092, - "currency": "USD" - } - ] - }, - { - "property_id": "partner", - "value": "true" - }, - { - "property_id": "terms", - "value": "https://deepgram.com/terms" - }, - { - "property_id": "realtime", - "value": "true" - } - ], - "schema": { - "input": { - "type": "object", - "properties": { - "audio": { - "type": "object", - "properties": { - "body": { - "type": "object" - }, - "contentType": { - "type": "string" - } - }, - "required": [ - "body", - "contentType" - ] - }, - "custom_topic_mode": { - "type": "string", - "enum": [ - "extended", - "strict" - ], - "description": "Sets how the model will interpret strings submitted to the custom_topic param. When strict, the model will only return topics submitted using the custom_topic param. When extended, the model will return its own detected topics in addition to those submitted using the custom_topic param." - }, - "custom_topic": { - "type": "string", - "description": "Custom topics you want the model to detect within your input audio or text if present Submit up to 100" - }, - "custom_intent_mode": { - "type": "string", - "description": "Sets how the model will interpret intents submitted to the custom_intent param. When strict, the model will only return intents submitted using the custom_intent param. When extended, the model will return its own detected intents in addition those submitted using the custom_intents param", - "enum": [ - "extended", - "strict" - ] - }, - "custom_intent": { - "type": "string", - "description": "Custom intents you want the model to detect within your input audio if present" - }, - "detect_entities": { - "type": "boolean", - "description": "Identifies and extracts key entities from content in submitted audio" - }, - "detect_language": { - "type": "boolean", - "description": "Identifies the dominant language spoken in submitted audio" - }, - "diarize": { - "type": "boolean", - "description": "Recognize speaker changes. Each word in the transcript will be assigned a speaker number starting at 0" - }, - "dictation": { - "type": "boolean", - "description": "Identify and extract key entities from content in submitted audio" - }, - "encoding": { - "type": "string", - "description": "Specify the expected encoding of your submitted audio", - "enum": [ - "linear16", - "flac", - "mulaw", - "amr-nb", - "amr-wb", - "opus", - "speex", - "g729" - ] - }, - "extra": { - "type": "string", - "description": "Arbitrary key-value pairs that are attached to the API response for usage in downstream processing" - }, - "filler_words": { - "type": "boolean", - "description": "Filler Words can help transcribe interruptions in your audio, like 'uh' and 'um'" - }, - "keyterm": { - "type": "string", - "description": "Key term prompting can boost or suppress specialized terminology and brands." - }, - "keywords": { - "type": "string", - "description": "Keywords can boost or suppress specialized terminology and brands." - }, - "language": { - "type": "string", - "description": "The BCP-47 language tag that hints at the primary spoken language. Depending on the Model and API endpoint you choose only certain languages are available." - }, - "measurements": { - "type": "boolean", - "description": "Spoken measurements will be converted to their corresponding abbreviations." - }, - "mip_opt_out": { - "type": "boolean", - "description": "Opts out requests from the Deepgram Model Improvement Program. Refer to our Docs for pricing impacts before setting this to true. https://dpgr.am/deepgram-mip." - }, - "mode": { - "type": "string", - "description": "Mode of operation for the model representing broad area of topic that will be talked about in the supplied audio", - "enum": [ - "general", - "medical", - "finance" - ] - }, - "multichannel": { - "type": "boolean", - "description": "Transcribe each audio channel independently." - }, - "numerals": { - "type": "boolean", - "description": "Numerals converts numbers from written format to numerical format." - }, - "paragraphs": { - "type": "boolean", - "description": "Splits audio into paragraphs to improve transcript readability." - }, - "profanity_filter": { - "type": "boolean", - "description": "Profanity Filter looks for recognized profanity and converts it to the nearest recognized non-profane word or removes it from the transcript completely." - }, - "punctuate": { - "type": "boolean", - "description": "Add punctuation and capitalization to the transcript." - }, - "redact": { - "type": "string", - "description": "Redaction removes sensitive information from your transcripts." - }, - "replace": { - "type": "string", - "description": "Search for terms or phrases in submitted audio and replaces them." - }, - "search": { - "type": "string", - "description": "Search for terms or phrases in submitted audio." - }, - "sentiment": { - "type": "boolean", - "description": "Recognizes the sentiment throughout a transcript or text." - }, - "smart_format": { - "type": "boolean", - "description": "Apply formatting to transcript output. When set to true, additional formatting will be applied to transcripts to improve readability." - }, - "topics": { - "type": "boolean", - "description": "Detect topics throughout a transcript or text." - }, - "utterances": { - "type": "boolean", - "description": "Segments speech into meaningful semantic units." - }, - "utt_split": { - "type": "number", - "description": "Seconds to wait before detecting a pause between words in submitted audio." - }, - "channels": { - "type": "number", - "description": "The number of channels in the submitted audio" - }, - "interim_results": { - "type": "boolean", - "description": "Specifies whether the streaming endpoint should provide ongoing transcription updates as more audio is received. When set to true, the endpoint sends continuous updates, meaning transcription results may evolve over time. Note: Supported only for webosockets." - }, - "endpointing": { - "type": "string", - "description": "Indicates how long model will wait to detect whether a speaker has finished speaking or pauses for a significant period of time. When set to a value, the streaming endpoint immediately finalizes the transcription for the processed time range and returns the transcript with a speech_final parameter set to true. Can also be set to false to disable endpointing" - }, - "vad_events": { - "type": "boolean", - "description": "Indicates that speech has started. You'll begin receiving Speech Started messages upon speech starting. Note: Supported only for webosockets." - }, - "utterance_end_ms": { - "type": "boolean", - "description": "Indicates how long model will wait to send an UtteranceEnd message after a word has been transcribed. Use with interim_results. Note: Supported only for webosockets." - } - }, - "required": [ - "audio" - ] - }, - "output": { - "type": "object", - "contentType": "application/json", - "properties": { - "results": { - "type": "object", - "properties": { - "channels": { - "type": "array", - "items": { - "type": "object", - "properties": { - "alternatives": { - "type": "array", - "items": { - "type": "object", - "properties": { - "confidence": { - "type": "number" - }, - "transcript": { - "type": "string" - }, - "words": { - "type": "array", - "items": { - "type": "object", - "properties": { - "confidence": { - "type": "number" - }, - "end": { - "type": "number" - }, - "start": { - "type": "number" - }, - "word": { - "type": "string" - } - } - } - } - } - } - } - } - } - }, - "summary": { - "type": "object", - "properties": { - "result": { - "type": "string" - }, - "short": { - "type": "string" - } - } - }, - "sentiments": { - "type": "object", - "properties": { - "segments": { - "type": "array", - "items": { - "type": "object", - "properties": { - "text": { - "type": "string" - }, - "start_word": { - "type": "number" - }, - "end_word": { - "type": "number" - }, - "sentiment": { - "type": "string" - }, - "sentiment_score": { - "type": "number" - } - } - } - }, - "average": { - "type": "object", - "properties": { - "sentiment": { - "type": "string" - }, - "sentiment_score": { - "type": "number" - } - } - } - } - } - } - } - } - } - } -} \ No newline at end of file diff --git a/src/content/workers-ai-models/openchat-3.5-0106.json b/src/content/workers-ai-models/openchat-3.5-0106.json deleted file mode 100644 index d1c026063962058..000000000000000 --- a/src/content/workers-ai-models/openchat-3.5-0106.json +++ /dev/null @@ -1,466 +0,0 @@ -{ - "id": "081054cd-a254-4349-855e-6dc0996277fa", - "source": 1, - "name": "@cf/openchat/openchat-3.5-0106", - "description": "OpenChat is an innovative library of open-source language models, fine-tuned with C-RLFT - a strategy inspired by offline reinforcement learning.", - "task": { - "id": "c329a1f9-323d-4e91-b2aa-582dd4188d34", - "name": "Text Generation", - "description": "Family of generative text models, such as large language models (LLM), that can be adapted for a variety of natural language tasks." - }, - "created_at": "2024-02-27 18:20:39.169", - "tags": [], - "properties": [ - { - "property_id": "beta", - "value": "true" - }, - { - "property_id": "context_window", - "value": "8192" - }, - { - "property_id": "info", - "value": "https://huggingface.co/openchat/openchat-3.5-0106" - }, - { - "property_id": "planned_deprecation_date", - "value": "2025-10-01" - } - ], - "schema": { - "input": { - "type": "object", - "oneOf": [ - { - "title": "Prompt", - "properties": { - "prompt": { - "type": "string", - "minLength": 1, - "description": "The input text prompt for the model to generate a response." - }, - "lora": { - "type": "string", - "description": "Name of the LoRA (Low-Rank Adaptation) model to fine-tune the base model." - }, - "response_format": { - "title": "JSON Mode", - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_object", - "json_schema" - ] - }, - "json_schema": {} - } - }, - "raw": { - "type": "boolean", - "default": false, - "description": "If true, a chat template is not applied and you must adhere to the specific model's expected formatting." - }, - "stream": { - "type": "boolean", - "default": false, - "description": "If true, the response will be streamed back incrementally using SSE, Server Sent Events." - }, - "max_tokens": { - "type": "integer", - "default": 256, - "description": "The maximum number of tokens to generate in the response." - }, - "temperature": { - "type": "number", - "default": 0.6, - "minimum": 0, - "maximum": 5, - "description": "Controls the randomness of the output; higher values produce more random results." - }, - "top_p": { - "type": "number", - "minimum": 0.001, - "maximum": 1, - "description": "Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses." - }, - "top_k": { - "type": "integer", - "minimum": 1, - "maximum": 50, - "description": "Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises." - }, - "seed": { - "type": "integer", - "minimum": 1, - "maximum": 9999999999, - "description": "Random seed for reproducibility of the generation." - }, - "repetition_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Penalty for repeated tokens; higher values discourage repetition." - }, - "frequency_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Decreases the likelihood of the model repeating the same lines verbatim." - }, - "presence_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Increases the likelihood of the model introducing new topics." - } - }, - "required": [ - "prompt" - ] - }, - { - "title": "Messages", - "properties": { - "messages": { - "type": "array", - "description": "An array of message objects representing the conversation history.", - "items": { - "type": "object", - "properties": { - "role": { - "type": "string", - "description": "The role of the message sender (e.g., 'user', 'assistant', 'system', 'tool')." - }, - "content": { - "oneOf": [ - { - "type": "string", - "description": "The content of the message as a string." - }, - { - "type": "array", - "description": "Array of text content parts.", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "Type of the content (text)" - }, - "text": { - "type": "string", - "description": "Text content" - } - } - } - } - ] - } - }, - "required": [ - "role", - "content" - ] - } - }, - "functions": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "code": { - "type": "string" - } - }, - "required": [ - "name", - "code" - ] - } - }, - "tools": { - "type": "array", - "description": "A list of tools available for the assistant to use.", - "items": { - "type": "object", - "oneOf": [ - { - "properties": { - "name": { - "type": "string", - "description": "The name of the tool. More descriptive the better." - }, - "description": { - "type": "string", - "description": "A brief description of what the tool does." - }, - "parameters": { - "type": "object", - "description": "Schema defining the parameters accepted by the tool.", - "properties": { - "type": { - "type": "string", - "description": "The type of the parameters object (usually 'object')." - }, - "required": { - "type": "array", - "description": "List of required parameter names.", - "items": { - "type": "string" - } - }, - "properties": { - "type": "object", - "description": "Definitions of each parameter.", - "additionalProperties": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The data type of the parameter." - }, - "description": { - "type": "string", - "description": "A description of the expected parameter." - } - }, - "required": [ - "type", - "description" - ] - } - } - }, - "required": [ - "type", - "properties" - ] - } - }, - "required": [ - "name", - "description", - "parameters" - ] - }, - { - "properties": { - "type": { - "type": "string", - "description": "Specifies the type of tool (e.g., 'function')." - }, - "function": { - "type": "object", - "description": "Details of the function tool.", - "properties": { - "name": { - "type": "string", - "description": "The name of the function." - }, - "description": { - "type": "string", - "description": "A brief description of what the function does." - }, - "parameters": { - "type": "object", - "description": "Schema defining the parameters accepted by the function.", - "properties": { - "type": { - "type": "string", - "description": "The type of the parameters object (usually 'object')." - }, - "required": { - "type": "array", - "description": "List of required parameter names.", - "items": { - "type": "string" - } - }, - "properties": { - "type": "object", - "description": "Definitions of each parameter.", - "additionalProperties": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The data type of the parameter." - }, - "description": { - "type": "string", - "description": "A description of the expected parameter." - } - }, - "required": [ - "type", - "description" - ] - } - } - }, - "required": [ - "type", - "properties" - ] - } - }, - "required": [ - "name", - "description", - "parameters" - ] - } - }, - "required": [ - "type", - "function" - ] - } - ] - } - }, - "response_format": { - "title": "JSON Mode", - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_object", - "json_schema" - ] - }, - "json_schema": {} - } - }, - "raw": { - "type": "boolean", - "default": false, - "description": "If true, a chat template is not applied and you must adhere to the specific model's expected formatting." - }, - "stream": { - "type": "boolean", - "default": false, - "description": "If true, the response will be streamed back incrementally using SSE, Server Sent Events." - }, - "max_tokens": { - "type": "integer", - "default": 256, - "description": "The maximum number of tokens to generate in the response." - }, - "temperature": { - "type": "number", - "default": 0.6, - "minimum": 0, - "maximum": 5, - "description": "Controls the randomness of the output; higher values produce more random results." - }, - "top_p": { - "type": "number", - "minimum": 0.001, - "maximum": 1, - "description": "Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses." - }, - "top_k": { - "type": "integer", - "minimum": 1, - "maximum": 50, - "description": "Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises." - }, - "seed": { - "type": "integer", - "minimum": 1, - "maximum": 9999999999, - "description": "Random seed for reproducibility of the generation." - }, - "repetition_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Penalty for repeated tokens; higher values discourage repetition." - }, - "frequency_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Decreases the likelihood of the model repeating the same lines verbatim." - }, - "presence_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Increases the likelihood of the model introducing new topics." - } - }, - "required": [ - "messages" - ] - } - ] - }, - "output": { - "oneOf": [ - { - "type": "object", - "properties": { - "response": { - "type": "string", - "description": "The generated text response from the model" - }, - "usage": { - "type": "object", - "description": "Usage statistics for the inference request", - "properties": { - "prompt_tokens": { - "type": "number", - "description": "Total number of tokens in input", - "default": 0 - }, - "completion_tokens": { - "type": "number", - "description": "Total number of tokens in output", - "default": 0 - }, - "total_tokens": { - "type": "number", - "description": "Total number of input and output tokens", - "default": 0 - } - } - }, - "tool_calls": { - "type": "array", - "description": "An array of tool calls requests made during the response generation", - "items": { - "type": "object", - "properties": { - "arguments": { - "type": "object", - "description": "The arguments passed to be passed to the tool call request" - }, - "name": { - "type": "string", - "description": "The name of the tool to be called" - } - } - } - } - }, - "required": [ - "response" - ] - }, - { - "type": "string", - "format": "binary" - } - ] - } - } -} \ No newline at end of file diff --git a/src/content/workers-ai-models/openhermes-2.5-mistral-7b-awq.json b/src/content/workers-ai-models/openhermes-2.5-mistral-7b-awq.json deleted file mode 100644 index 829f9c50a7847a2..000000000000000 --- a/src/content/workers-ai-models/openhermes-2.5-mistral-7b-awq.json +++ /dev/null @@ -1,462 +0,0 @@ -{ - "id": "673c56cc-8553-49a1-b179-dd549ec9209a", - "source": 2, - "name": "@hf/thebloke/openhermes-2.5-mistral-7b-awq", - "description": "OpenHermes 2.5 Mistral 7B is a state of the art Mistral Fine-tune, a continuation of OpenHermes 2 model, which trained on additional code datasets.", - "task": { - "id": "c329a1f9-323d-4e91-b2aa-582dd4188d34", - "name": "Text Generation", - "description": "Family of generative text models, such as large language models (LLM), that can be adapted for a variety of natural language tasks." - }, - "created_at": "2024-02-06 18:04:22.846", - "tags": [], - "properties": [ - { - "property_id": "beta", - "value": "true" - }, - { - "property_id": "context_window", - "value": "4096" - }, - { - "property_id": "planned_deprecation_date", - "value": "2025-10-01" - } - ], - "schema": { - "input": { - "type": "object", - "oneOf": [ - { - "title": "Prompt", - "properties": { - "prompt": { - "type": "string", - "minLength": 1, - "description": "The input text prompt for the model to generate a response." - }, - "lora": { - "type": "string", - "description": "Name of the LoRA (Low-Rank Adaptation) model to fine-tune the base model." - }, - "response_format": { - "title": "JSON Mode", - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_object", - "json_schema" - ] - }, - "json_schema": {} - } - }, - "raw": { - "type": "boolean", - "default": false, - "description": "If true, a chat template is not applied and you must adhere to the specific model's expected formatting." - }, - "stream": { - "type": "boolean", - "default": false, - "description": "If true, the response will be streamed back incrementally using SSE, Server Sent Events." - }, - "max_tokens": { - "type": "integer", - "default": 256, - "description": "The maximum number of tokens to generate in the response." - }, - "temperature": { - "type": "number", - "default": 0.6, - "minimum": 0, - "maximum": 5, - "description": "Controls the randomness of the output; higher values produce more random results." - }, - "top_p": { - "type": "number", - "minimum": 0.001, - "maximum": 1, - "description": "Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses." - }, - "top_k": { - "type": "integer", - "minimum": 1, - "maximum": 50, - "description": "Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises." - }, - "seed": { - "type": "integer", - "minimum": 1, - "maximum": 9999999999, - "description": "Random seed for reproducibility of the generation." - }, - "repetition_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Penalty for repeated tokens; higher values discourage repetition." - }, - "frequency_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Decreases the likelihood of the model repeating the same lines verbatim." - }, - "presence_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Increases the likelihood of the model introducing new topics." - } - }, - "required": [ - "prompt" - ] - }, - { - "title": "Messages", - "properties": { - "messages": { - "type": "array", - "description": "An array of message objects representing the conversation history.", - "items": { - "type": "object", - "properties": { - "role": { - "type": "string", - "description": "The role of the message sender (e.g., 'user', 'assistant', 'system', 'tool')." - }, - "content": { - "oneOf": [ - { - "type": "string", - "description": "The content of the message as a string." - }, - { - "type": "array", - "description": "Array of text content parts.", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "Type of the content (text)" - }, - "text": { - "type": "string", - "description": "Text content" - } - } - } - } - ] - } - }, - "required": [ - "role", - "content" - ] - } - }, - "functions": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "code": { - "type": "string" - } - }, - "required": [ - "name", - "code" - ] - } - }, - "tools": { - "type": "array", - "description": "A list of tools available for the assistant to use.", - "items": { - "type": "object", - "oneOf": [ - { - "properties": { - "name": { - "type": "string", - "description": "The name of the tool. More descriptive the better." - }, - "description": { - "type": "string", - "description": "A brief description of what the tool does." - }, - "parameters": { - "type": "object", - "description": "Schema defining the parameters accepted by the tool.", - "properties": { - "type": { - "type": "string", - "description": "The type of the parameters object (usually 'object')." - }, - "required": { - "type": "array", - "description": "List of required parameter names.", - "items": { - "type": "string" - } - }, - "properties": { - "type": "object", - "description": "Definitions of each parameter.", - "additionalProperties": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The data type of the parameter." - }, - "description": { - "type": "string", - "description": "A description of the expected parameter." - } - }, - "required": [ - "type", - "description" - ] - } - } - }, - "required": [ - "type", - "properties" - ] - } - }, - "required": [ - "name", - "description", - "parameters" - ] - }, - { - "properties": { - "type": { - "type": "string", - "description": "Specifies the type of tool (e.g., 'function')." - }, - "function": { - "type": "object", - "description": "Details of the function tool.", - "properties": { - "name": { - "type": "string", - "description": "The name of the function." - }, - "description": { - "type": "string", - "description": "A brief description of what the function does." - }, - "parameters": { - "type": "object", - "description": "Schema defining the parameters accepted by the function.", - "properties": { - "type": { - "type": "string", - "description": "The type of the parameters object (usually 'object')." - }, - "required": { - "type": "array", - "description": "List of required parameter names.", - "items": { - "type": "string" - } - }, - "properties": { - "type": "object", - "description": "Definitions of each parameter.", - "additionalProperties": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The data type of the parameter." - }, - "description": { - "type": "string", - "description": "A description of the expected parameter." - } - }, - "required": [ - "type", - "description" - ] - } - } - }, - "required": [ - "type", - "properties" - ] - } - }, - "required": [ - "name", - "description", - "parameters" - ] - } - }, - "required": [ - "type", - "function" - ] - } - ] - } - }, - "response_format": { - "title": "JSON Mode", - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_object", - "json_schema" - ] - }, - "json_schema": {} - } - }, - "raw": { - "type": "boolean", - "default": false, - "description": "If true, a chat template is not applied and you must adhere to the specific model's expected formatting." - }, - "stream": { - "type": "boolean", - "default": false, - "description": "If true, the response will be streamed back incrementally using SSE, Server Sent Events." - }, - "max_tokens": { - "type": "integer", - "default": 256, - "description": "The maximum number of tokens to generate in the response." - }, - "temperature": { - "type": "number", - "default": 0.6, - "minimum": 0, - "maximum": 5, - "description": "Controls the randomness of the output; higher values produce more random results." - }, - "top_p": { - "type": "number", - "minimum": 0.001, - "maximum": 1, - "description": "Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses." - }, - "top_k": { - "type": "integer", - "minimum": 1, - "maximum": 50, - "description": "Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises." - }, - "seed": { - "type": "integer", - "minimum": 1, - "maximum": 9999999999, - "description": "Random seed for reproducibility of the generation." - }, - "repetition_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Penalty for repeated tokens; higher values discourage repetition." - }, - "frequency_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Decreases the likelihood of the model repeating the same lines verbatim." - }, - "presence_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Increases the likelihood of the model introducing new topics." - } - }, - "required": [ - "messages" - ] - } - ] - }, - "output": { - "oneOf": [ - { - "type": "object", - "properties": { - "response": { - "type": "string", - "description": "The generated text response from the model" - }, - "usage": { - "type": "object", - "description": "Usage statistics for the inference request", - "properties": { - "prompt_tokens": { - "type": "number", - "description": "Total number of tokens in input", - "default": 0 - }, - "completion_tokens": { - "type": "number", - "description": "Total number of tokens in output", - "default": 0 - }, - "total_tokens": { - "type": "number", - "description": "Total number of input and output tokens", - "default": 0 - } - } - }, - "tool_calls": { - "type": "array", - "description": "An array of tool calls requests made during the response generation", - "items": { - "type": "object", - "properties": { - "arguments": { - "type": "object", - "description": "The arguments passed to be passed to the tool call request" - }, - "name": { - "type": "string", - "description": "The name of the tool to be called" - } - } - } - } - }, - "required": [ - "response" - ] - }, - { - "type": "string", - "format": "binary" - } - ] - } - } -} \ No newline at end of file diff --git a/src/content/workers-ai-models/phi-2.json b/src/content/workers-ai-models/phi-2.json deleted file mode 100644 index cffeb29e6f39fc0..000000000000000 --- a/src/content/workers-ai-models/phi-2.json +++ /dev/null @@ -1,462 +0,0 @@ -{ - "id": "1d933df3-680f-4280-940d-da87435edb07", - "source": 1, - "name": "@cf/microsoft/phi-2", - "description": "Phi-2 is a Transformer-based model with a next-word prediction objective, trained on 1.4T tokens from multiple passes on a mixture of Synthetic and Web datasets for NLP and coding.", - "task": { - "id": "c329a1f9-323d-4e91-b2aa-582dd4188d34", - "name": "Text Generation", - "description": "Family of generative text models, such as large language models (LLM), that can be adapted for a variety of natural language tasks." - }, - "created_at": "2024-02-27 18:26:21.126", - "tags": [], - "properties": [ - { - "property_id": "beta", - "value": "true" - }, - { - "property_id": "context_window", - "value": "2048" - }, - { - "property_id": "info", - "value": "https://huggingface.co/microsoft/phi-2" - } - ], - "schema": { - "input": { - "type": "object", - "oneOf": [ - { - "title": "Prompt", - "properties": { - "prompt": { - "type": "string", - "minLength": 1, - "description": "The input text prompt for the model to generate a response." - }, - "lora": { - "type": "string", - "description": "Name of the LoRA (Low-Rank Adaptation) model to fine-tune the base model." - }, - "response_format": { - "title": "JSON Mode", - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_object", - "json_schema" - ] - }, - "json_schema": {} - } - }, - "raw": { - "type": "boolean", - "default": false, - "description": "If true, a chat template is not applied and you must adhere to the specific model's expected formatting." - }, - "stream": { - "type": "boolean", - "default": false, - "description": "If true, the response will be streamed back incrementally using SSE, Server Sent Events." - }, - "max_tokens": { - "type": "integer", - "default": 256, - "description": "The maximum number of tokens to generate in the response." - }, - "temperature": { - "type": "number", - "default": 0.6, - "minimum": 0, - "maximum": 5, - "description": "Controls the randomness of the output; higher values produce more random results." - }, - "top_p": { - "type": "number", - "minimum": 0.001, - "maximum": 1, - "description": "Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses." - }, - "top_k": { - "type": "integer", - "minimum": 1, - "maximum": 50, - "description": "Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises." - }, - "seed": { - "type": "integer", - "minimum": 1, - "maximum": 9999999999, - "description": "Random seed for reproducibility of the generation." - }, - "repetition_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Penalty for repeated tokens; higher values discourage repetition." - }, - "frequency_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Decreases the likelihood of the model repeating the same lines verbatim." - }, - "presence_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Increases the likelihood of the model introducing new topics." - } - }, - "required": [ - "prompt" - ] - }, - { - "title": "Messages", - "properties": { - "messages": { - "type": "array", - "description": "An array of message objects representing the conversation history.", - "items": { - "type": "object", - "properties": { - "role": { - "type": "string", - "description": "The role of the message sender (e.g., 'user', 'assistant', 'system', 'tool')." - }, - "content": { - "oneOf": [ - { - "type": "string", - "description": "The content of the message as a string." - }, - { - "type": "array", - "description": "Array of text content parts.", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "Type of the content (text)" - }, - "text": { - "type": "string", - "description": "Text content" - } - } - } - } - ] - } - }, - "required": [ - "role", - "content" - ] - } - }, - "functions": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "code": { - "type": "string" - } - }, - "required": [ - "name", - "code" - ] - } - }, - "tools": { - "type": "array", - "description": "A list of tools available for the assistant to use.", - "items": { - "type": "object", - "oneOf": [ - { - "properties": { - "name": { - "type": "string", - "description": "The name of the tool. More descriptive the better." - }, - "description": { - "type": "string", - "description": "A brief description of what the tool does." - }, - "parameters": { - "type": "object", - "description": "Schema defining the parameters accepted by the tool.", - "properties": { - "type": { - "type": "string", - "description": "The type of the parameters object (usually 'object')." - }, - "required": { - "type": "array", - "description": "List of required parameter names.", - "items": { - "type": "string" - } - }, - "properties": { - "type": "object", - "description": "Definitions of each parameter.", - "additionalProperties": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The data type of the parameter." - }, - "description": { - "type": "string", - "description": "A description of the expected parameter." - } - }, - "required": [ - "type", - "description" - ] - } - } - }, - "required": [ - "type", - "properties" - ] - } - }, - "required": [ - "name", - "description", - "parameters" - ] - }, - { - "properties": { - "type": { - "type": "string", - "description": "Specifies the type of tool (e.g., 'function')." - }, - "function": { - "type": "object", - "description": "Details of the function tool.", - "properties": { - "name": { - "type": "string", - "description": "The name of the function." - }, - "description": { - "type": "string", - "description": "A brief description of what the function does." - }, - "parameters": { - "type": "object", - "description": "Schema defining the parameters accepted by the function.", - "properties": { - "type": { - "type": "string", - "description": "The type of the parameters object (usually 'object')." - }, - "required": { - "type": "array", - "description": "List of required parameter names.", - "items": { - "type": "string" - } - }, - "properties": { - "type": "object", - "description": "Definitions of each parameter.", - "additionalProperties": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The data type of the parameter." - }, - "description": { - "type": "string", - "description": "A description of the expected parameter." - } - }, - "required": [ - "type", - "description" - ] - } - } - }, - "required": [ - "type", - "properties" - ] - } - }, - "required": [ - "name", - "description", - "parameters" - ] - } - }, - "required": [ - "type", - "function" - ] - } - ] - } - }, - "response_format": { - "title": "JSON Mode", - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_object", - "json_schema" - ] - }, - "json_schema": {} - } - }, - "raw": { - "type": "boolean", - "default": false, - "description": "If true, a chat template is not applied and you must adhere to the specific model's expected formatting." - }, - "stream": { - "type": "boolean", - "default": false, - "description": "If true, the response will be streamed back incrementally using SSE, Server Sent Events." - }, - "max_tokens": { - "type": "integer", - "default": 256, - "description": "The maximum number of tokens to generate in the response." - }, - "temperature": { - "type": "number", - "default": 0.6, - "minimum": 0, - "maximum": 5, - "description": "Controls the randomness of the output; higher values produce more random results." - }, - "top_p": { - "type": "number", - "minimum": 0.001, - "maximum": 1, - "description": "Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses." - }, - "top_k": { - "type": "integer", - "minimum": 1, - "maximum": 50, - "description": "Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises." - }, - "seed": { - "type": "integer", - "minimum": 1, - "maximum": 9999999999, - "description": "Random seed for reproducibility of the generation." - }, - "repetition_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Penalty for repeated tokens; higher values discourage repetition." - }, - "frequency_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Decreases the likelihood of the model repeating the same lines verbatim." - }, - "presence_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Increases the likelihood of the model introducing new topics." - } - }, - "required": [ - "messages" - ] - } - ] - }, - "output": { - "oneOf": [ - { - "type": "object", - "properties": { - "response": { - "type": "string", - "description": "The generated text response from the model" - }, - "usage": { - "type": "object", - "description": "Usage statistics for the inference request", - "properties": { - "prompt_tokens": { - "type": "number", - "description": "Total number of tokens in input", - "default": 0 - }, - "completion_tokens": { - "type": "number", - "description": "Total number of tokens in output", - "default": 0 - }, - "total_tokens": { - "type": "number", - "description": "Total number of input and output tokens", - "default": 0 - } - } - }, - "tool_calls": { - "type": "array", - "description": "An array of tool calls requests made during the response generation", - "items": { - "type": "object", - "properties": { - "arguments": { - "type": "object", - "description": "The arguments passed to be passed to the tool call request" - }, - "name": { - "type": "string", - "description": "The name of the tool to be called" - } - } - } - } - }, - "required": [ - "response" - ] - }, - { - "type": "string", - "format": "binary" - } - ] - } - } -} \ No newline at end of file diff --git a/src/content/workers-ai-models/phoenix-1.0.json b/src/content/workers-ai-models/phoenix-1.0.json deleted file mode 100644 index c74039cedb140ef..000000000000000 --- a/src/content/workers-ai-models/phoenix-1.0.json +++ /dev/null @@ -1,97 +0,0 @@ -{ - "id": "724608fa-983e-495d-b95c-340d6b7e78be", - "source": 1, - "name": "@cf/leonardo/phoenix-1.0", - "description": "Phoenix 1.0 is a model by Leonardo.Ai that generates images with exceptional prompt adherence and coherent text.", - "task": { - "id": "3d6e1f35-341b-4915-a6c8-9a7142a9033a", - "name": "Text-to-Image", - "description": "Generates images from input text. These models can be used to generate and modify images based on text prompts." - }, - "created_at": "2025-08-25 18:12:18.073", - "tags": [], - "properties": [ - { - "property_id": "price", - "value": [ - { - "unit": "per 512 by 512 tile", - "price": 0.0058, - "currency": "USD" - }, - { - "unit": "per step", - "price": 0.00011, - "currency": "USD" - } - ] - }, - { - "property_id": "partner", - "value": "true" - }, - { - "property_id": "terms", - "value": "https://leonardo.ai/terms-of-service/" - } - ], - "schema": { - "input": { - "type": "object", - "properties": { - "prompt": { - "type": "string", - "minLength": 1, - "description": "A text description of the image you want to generate." - }, - "guidance": { - "type": "number", - "default": 2, - "minimum": 2, - "maximum": 10, - "description": "Controls how closely the generated image should adhere to the prompt; higher values make the image more aligned with the prompt" - }, - "seed": { - "type": "integer", - "minimum": 0, - "description": "Random seed for reproducibility of the image generation" - }, - "height": { - "type": "integer", - "minimum": 0, - "maximum": 2048, - "default": 1024, - "description": "The height of the generated image in pixels" - }, - "width": { - "type": "integer", - "minimum": 0, - "maximum": 2048, - "default": 1024, - "description": "The width of the generated image in pixels" - }, - "num_steps": { - "type": "integer", - "default": 25, - "minimum": 1, - "maximum": 50, - "description": "The number of diffusion steps; higher values can improve quality but take longer" - }, - "negative_prompt": { - "type": "string", - "minLength": 1, - "description": "Specify what to exclude from the generated images" - } - }, - "required": [ - "prompt" - ] - }, - "output": { - "type": "string", - "contentType": "image/jpeg", - "format": "binary", - "description": "The generated image in JPEG format" - } - } -} \ No newline at end of file diff --git a/src/content/workers-ai-models/plamo-embedding-1b.json b/src/content/workers-ai-models/plamo-embedding-1b.json deleted file mode 100644 index a3526b1d1e8d247..000000000000000 --- a/src/content/workers-ai-models/plamo-embedding-1b.json +++ /dev/null @@ -1,77 +0,0 @@ -{ - "id": "bc2b61f6-7eb3-4cdf-94f5-ffc128bd6aa4", - "source": 1, - "name": "@cf/pfnet/plamo-embedding-1b", - "description": "PLaMo-Embedding-1B is a Japanese text embedding model developed by Preferred Networks, Inc.\n\nIt can convert Japanese text input into numerical vectors and can be used for a wide range of applications, including information retrieval, text classification, and clustering.", - "task": { - "id": "0137cdcf-162a-4108-94f2-1ca59e8c65ee", - "name": "Text Embeddings", - "description": "Feature extraction models transform raw data into numerical features that can be processed while preserving the information in the original dataset. These models are ideal as part of building vector search applications or Retrieval Augmented Generation workflows with Large Language Models (LLM)." - }, - "created_at": "2025-09-24 18:42:05.576", - "tags": [], - "properties": [ - { - "property_id": "price", - "value": [ - { - "unit": "per M input tokens", - "price": 0.019, - "currency": "USD" - } - ] - } - ], - "schema": { - "input": { - "type": "object", - "properties": { - "text": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "array", - "items": { - "type": "string" - } - } - ], - "description": "Input text to embed. Can be a single string or a list of strings." - } - }, - "required": [ - "text" - ] - }, - "output": { - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "type": "array", - "items": { - "type": "number" - } - }, - "description": "Embedding vectors, where each vector is a list of floats." - }, - "shape": { - "type": "array", - "items": { - "type": "integer" - }, - "minItems": 2, - "maxItems": 2, - "description": "Shape of the embedding data as [number_of_embeddings, embedding_dimension]." - } - }, - "required": [ - "data", - "shape" - ] - } - } -} \ No newline at end of file diff --git a/src/content/workers-ai-models/qwen1.5-0.5b-chat.json b/src/content/workers-ai-models/qwen1.5-0.5b-chat.json deleted file mode 100644 index 1ea2d8b7cd48e7d..000000000000000 --- a/src/content/workers-ai-models/qwen1.5-0.5b-chat.json +++ /dev/null @@ -1,466 +0,0 @@ -{ - "id": "f8703a00-ed54-4f98-bdc3-cd9a813286f3", - "source": 1, - "name": "@cf/qwen/qwen1.5-0.5b-chat", - "description": "Qwen1.5 is the improved version of Qwen, the large language model series developed by Alibaba Cloud.", - "task": { - "id": "c329a1f9-323d-4e91-b2aa-582dd4188d34", - "name": "Text Generation", - "description": "Family of generative text models, such as large language models (LLM), that can be adapted for a variety of natural language tasks." - }, - "created_at": "2024-02-27 18:23:37.344", - "tags": [], - "properties": [ - { - "property_id": "beta", - "value": "true" - }, - { - "property_id": "context_window", - "value": "32000" - }, - { - "property_id": "info", - "value": "https://huggingface.co/qwen/qwen1.5-0.5b-chat" - }, - { - "property_id": "planned_deprecation_date", - "value": "2025-10-01" - } - ], - "schema": { - "input": { - "type": "object", - "oneOf": [ - { - "title": "Prompt", - "properties": { - "prompt": { - "type": "string", - "minLength": 1, - "description": "The input text prompt for the model to generate a response." - }, - "lora": { - "type": "string", - "description": "Name of the LoRA (Low-Rank Adaptation) model to fine-tune the base model." - }, - "response_format": { - "title": "JSON Mode", - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_object", - "json_schema" - ] - }, - "json_schema": {} - } - }, - "raw": { - "type": "boolean", - "default": false, - "description": "If true, a chat template is not applied and you must adhere to the specific model's expected formatting." - }, - "stream": { - "type": "boolean", - "default": false, - "description": "If true, the response will be streamed back incrementally using SSE, Server Sent Events." - }, - "max_tokens": { - "type": "integer", - "default": 256, - "description": "The maximum number of tokens to generate in the response." - }, - "temperature": { - "type": "number", - "default": 0.6, - "minimum": 0, - "maximum": 5, - "description": "Controls the randomness of the output; higher values produce more random results." - }, - "top_p": { - "type": "number", - "minimum": 0.001, - "maximum": 1, - "description": "Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses." - }, - "top_k": { - "type": "integer", - "minimum": 1, - "maximum": 50, - "description": "Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises." - }, - "seed": { - "type": "integer", - "minimum": 1, - "maximum": 9999999999, - "description": "Random seed for reproducibility of the generation." - }, - "repetition_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Penalty for repeated tokens; higher values discourage repetition." - }, - "frequency_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Decreases the likelihood of the model repeating the same lines verbatim." - }, - "presence_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Increases the likelihood of the model introducing new topics." - } - }, - "required": [ - "prompt" - ] - }, - { - "title": "Messages", - "properties": { - "messages": { - "type": "array", - "description": "An array of message objects representing the conversation history.", - "items": { - "type": "object", - "properties": { - "role": { - "type": "string", - "description": "The role of the message sender (e.g., 'user', 'assistant', 'system', 'tool')." - }, - "content": { - "oneOf": [ - { - "type": "string", - "description": "The content of the message as a string." - }, - { - "type": "array", - "description": "Array of text content parts.", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "Type of the content (text)" - }, - "text": { - "type": "string", - "description": "Text content" - } - } - } - } - ] - } - }, - "required": [ - "role", - "content" - ] - } - }, - "functions": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "code": { - "type": "string" - } - }, - "required": [ - "name", - "code" - ] - } - }, - "tools": { - "type": "array", - "description": "A list of tools available for the assistant to use.", - "items": { - "type": "object", - "oneOf": [ - { - "properties": { - "name": { - "type": "string", - "description": "The name of the tool. More descriptive the better." - }, - "description": { - "type": "string", - "description": "A brief description of what the tool does." - }, - "parameters": { - "type": "object", - "description": "Schema defining the parameters accepted by the tool.", - "properties": { - "type": { - "type": "string", - "description": "The type of the parameters object (usually 'object')." - }, - "required": { - "type": "array", - "description": "List of required parameter names.", - "items": { - "type": "string" - } - }, - "properties": { - "type": "object", - "description": "Definitions of each parameter.", - "additionalProperties": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The data type of the parameter." - }, - "description": { - "type": "string", - "description": "A description of the expected parameter." - } - }, - "required": [ - "type", - "description" - ] - } - } - }, - "required": [ - "type", - "properties" - ] - } - }, - "required": [ - "name", - "description", - "parameters" - ] - }, - { - "properties": { - "type": { - "type": "string", - "description": "Specifies the type of tool (e.g., 'function')." - }, - "function": { - "type": "object", - "description": "Details of the function tool.", - "properties": { - "name": { - "type": "string", - "description": "The name of the function." - }, - "description": { - "type": "string", - "description": "A brief description of what the function does." - }, - "parameters": { - "type": "object", - "description": "Schema defining the parameters accepted by the function.", - "properties": { - "type": { - "type": "string", - "description": "The type of the parameters object (usually 'object')." - }, - "required": { - "type": "array", - "description": "List of required parameter names.", - "items": { - "type": "string" - } - }, - "properties": { - "type": "object", - "description": "Definitions of each parameter.", - "additionalProperties": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The data type of the parameter." - }, - "description": { - "type": "string", - "description": "A description of the expected parameter." - } - }, - "required": [ - "type", - "description" - ] - } - } - }, - "required": [ - "type", - "properties" - ] - } - }, - "required": [ - "name", - "description", - "parameters" - ] - } - }, - "required": [ - "type", - "function" - ] - } - ] - } - }, - "response_format": { - "title": "JSON Mode", - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_object", - "json_schema" - ] - }, - "json_schema": {} - } - }, - "raw": { - "type": "boolean", - "default": false, - "description": "If true, a chat template is not applied and you must adhere to the specific model's expected formatting." - }, - "stream": { - "type": "boolean", - "default": false, - "description": "If true, the response will be streamed back incrementally using SSE, Server Sent Events." - }, - "max_tokens": { - "type": "integer", - "default": 256, - "description": "The maximum number of tokens to generate in the response." - }, - "temperature": { - "type": "number", - "default": 0.6, - "minimum": 0, - "maximum": 5, - "description": "Controls the randomness of the output; higher values produce more random results." - }, - "top_p": { - "type": "number", - "minimum": 0.001, - "maximum": 1, - "description": "Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses." - }, - "top_k": { - "type": "integer", - "minimum": 1, - "maximum": 50, - "description": "Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises." - }, - "seed": { - "type": "integer", - "minimum": 1, - "maximum": 9999999999, - "description": "Random seed for reproducibility of the generation." - }, - "repetition_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Penalty for repeated tokens; higher values discourage repetition." - }, - "frequency_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Decreases the likelihood of the model repeating the same lines verbatim." - }, - "presence_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Increases the likelihood of the model introducing new topics." - } - }, - "required": [ - "messages" - ] - } - ] - }, - "output": { - "oneOf": [ - { - "type": "object", - "properties": { - "response": { - "type": "string", - "description": "The generated text response from the model" - }, - "usage": { - "type": "object", - "description": "Usage statistics for the inference request", - "properties": { - "prompt_tokens": { - "type": "number", - "description": "Total number of tokens in input", - "default": 0 - }, - "completion_tokens": { - "type": "number", - "description": "Total number of tokens in output", - "default": 0 - }, - "total_tokens": { - "type": "number", - "description": "Total number of input and output tokens", - "default": 0 - } - } - }, - "tool_calls": { - "type": "array", - "description": "An array of tool calls requests made during the response generation", - "items": { - "type": "object", - "properties": { - "arguments": { - "type": "object", - "description": "The arguments passed to be passed to the tool call request" - }, - "name": { - "type": "string", - "description": "The name of the tool to be called" - } - } - } - } - }, - "required": [ - "response" - ] - }, - { - "type": "string", - "format": "binary" - } - ] - } - } -} \ No newline at end of file diff --git a/src/content/workers-ai-models/qwen1.5-1.8b-chat.json b/src/content/workers-ai-models/qwen1.5-1.8b-chat.json deleted file mode 100644 index 77e068ff429ef04..000000000000000 --- a/src/content/workers-ai-models/qwen1.5-1.8b-chat.json +++ /dev/null @@ -1,466 +0,0 @@ -{ - "id": "3222ddb3-e211-4fd9-9a6d-79a80e47b3a6", - "source": 1, - "name": "@cf/qwen/qwen1.5-1.8b-chat", - "description": "Qwen1.5 is the improved version of Qwen, the large language model series developed by Alibaba Cloud.", - "task": { - "id": "c329a1f9-323d-4e91-b2aa-582dd4188d34", - "name": "Text Generation", - "description": "Family of generative text models, such as large language models (LLM), that can be adapted for a variety of natural language tasks." - }, - "created_at": "2024-02-27 18:30:31.723", - "tags": [], - "properties": [ - { - "property_id": "beta", - "value": "true" - }, - { - "property_id": "context_window", - "value": "32000" - }, - { - "property_id": "info", - "value": "https://huggingface.co/qwen/qwen1.5-1.8b-chat" - }, - { - "property_id": "planned_deprecation_date", - "value": "2025-10-01" - } - ], - "schema": { - "input": { - "type": "object", - "oneOf": [ - { - "title": "Prompt", - "properties": { - "prompt": { - "type": "string", - "minLength": 1, - "description": "The input text prompt for the model to generate a response." - }, - "lora": { - "type": "string", - "description": "Name of the LoRA (Low-Rank Adaptation) model to fine-tune the base model." - }, - "response_format": { - "title": "JSON Mode", - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_object", - "json_schema" - ] - }, - "json_schema": {} - } - }, - "raw": { - "type": "boolean", - "default": false, - "description": "If true, a chat template is not applied and you must adhere to the specific model's expected formatting." - }, - "stream": { - "type": "boolean", - "default": false, - "description": "If true, the response will be streamed back incrementally using SSE, Server Sent Events." - }, - "max_tokens": { - "type": "integer", - "default": 256, - "description": "The maximum number of tokens to generate in the response." - }, - "temperature": { - "type": "number", - "default": 0.6, - "minimum": 0, - "maximum": 5, - "description": "Controls the randomness of the output; higher values produce more random results." - }, - "top_p": { - "type": "number", - "minimum": 0.001, - "maximum": 1, - "description": "Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses." - }, - "top_k": { - "type": "integer", - "minimum": 1, - "maximum": 50, - "description": "Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises." - }, - "seed": { - "type": "integer", - "minimum": 1, - "maximum": 9999999999, - "description": "Random seed for reproducibility of the generation." - }, - "repetition_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Penalty for repeated tokens; higher values discourage repetition." - }, - "frequency_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Decreases the likelihood of the model repeating the same lines verbatim." - }, - "presence_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Increases the likelihood of the model introducing new topics." - } - }, - "required": [ - "prompt" - ] - }, - { - "title": "Messages", - "properties": { - "messages": { - "type": "array", - "description": "An array of message objects representing the conversation history.", - "items": { - "type": "object", - "properties": { - "role": { - "type": "string", - "description": "The role of the message sender (e.g., 'user', 'assistant', 'system', 'tool')." - }, - "content": { - "oneOf": [ - { - "type": "string", - "description": "The content of the message as a string." - }, - { - "type": "array", - "description": "Array of text content parts.", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "Type of the content (text)" - }, - "text": { - "type": "string", - "description": "Text content" - } - } - } - } - ] - } - }, - "required": [ - "role", - "content" - ] - } - }, - "functions": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "code": { - "type": "string" - } - }, - "required": [ - "name", - "code" - ] - } - }, - "tools": { - "type": "array", - "description": "A list of tools available for the assistant to use.", - "items": { - "type": "object", - "oneOf": [ - { - "properties": { - "name": { - "type": "string", - "description": "The name of the tool. More descriptive the better." - }, - "description": { - "type": "string", - "description": "A brief description of what the tool does." - }, - "parameters": { - "type": "object", - "description": "Schema defining the parameters accepted by the tool.", - "properties": { - "type": { - "type": "string", - "description": "The type of the parameters object (usually 'object')." - }, - "required": { - "type": "array", - "description": "List of required parameter names.", - "items": { - "type": "string" - } - }, - "properties": { - "type": "object", - "description": "Definitions of each parameter.", - "additionalProperties": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The data type of the parameter." - }, - "description": { - "type": "string", - "description": "A description of the expected parameter." - } - }, - "required": [ - "type", - "description" - ] - } - } - }, - "required": [ - "type", - "properties" - ] - } - }, - "required": [ - "name", - "description", - "parameters" - ] - }, - { - "properties": { - "type": { - "type": "string", - "description": "Specifies the type of tool (e.g., 'function')." - }, - "function": { - "type": "object", - "description": "Details of the function tool.", - "properties": { - "name": { - "type": "string", - "description": "The name of the function." - }, - "description": { - "type": "string", - "description": "A brief description of what the function does." - }, - "parameters": { - "type": "object", - "description": "Schema defining the parameters accepted by the function.", - "properties": { - "type": { - "type": "string", - "description": "The type of the parameters object (usually 'object')." - }, - "required": { - "type": "array", - "description": "List of required parameter names.", - "items": { - "type": "string" - } - }, - "properties": { - "type": "object", - "description": "Definitions of each parameter.", - "additionalProperties": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The data type of the parameter." - }, - "description": { - "type": "string", - "description": "A description of the expected parameter." - } - }, - "required": [ - "type", - "description" - ] - } - } - }, - "required": [ - "type", - "properties" - ] - } - }, - "required": [ - "name", - "description", - "parameters" - ] - } - }, - "required": [ - "type", - "function" - ] - } - ] - } - }, - "response_format": { - "title": "JSON Mode", - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_object", - "json_schema" - ] - }, - "json_schema": {} - } - }, - "raw": { - "type": "boolean", - "default": false, - "description": "If true, a chat template is not applied and you must adhere to the specific model's expected formatting." - }, - "stream": { - "type": "boolean", - "default": false, - "description": "If true, the response will be streamed back incrementally using SSE, Server Sent Events." - }, - "max_tokens": { - "type": "integer", - "default": 256, - "description": "The maximum number of tokens to generate in the response." - }, - "temperature": { - "type": "number", - "default": 0.6, - "minimum": 0, - "maximum": 5, - "description": "Controls the randomness of the output; higher values produce more random results." - }, - "top_p": { - "type": "number", - "minimum": 0.001, - "maximum": 1, - "description": "Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses." - }, - "top_k": { - "type": "integer", - "minimum": 1, - "maximum": 50, - "description": "Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises." - }, - "seed": { - "type": "integer", - "minimum": 1, - "maximum": 9999999999, - "description": "Random seed for reproducibility of the generation." - }, - "repetition_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Penalty for repeated tokens; higher values discourage repetition." - }, - "frequency_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Decreases the likelihood of the model repeating the same lines verbatim." - }, - "presence_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Increases the likelihood of the model introducing new topics." - } - }, - "required": [ - "messages" - ] - } - ] - }, - "output": { - "oneOf": [ - { - "type": "object", - "properties": { - "response": { - "type": "string", - "description": "The generated text response from the model" - }, - "usage": { - "type": "object", - "description": "Usage statistics for the inference request", - "properties": { - "prompt_tokens": { - "type": "number", - "description": "Total number of tokens in input", - "default": 0 - }, - "completion_tokens": { - "type": "number", - "description": "Total number of tokens in output", - "default": 0 - }, - "total_tokens": { - "type": "number", - "description": "Total number of input and output tokens", - "default": 0 - } - } - }, - "tool_calls": { - "type": "array", - "description": "An array of tool calls requests made during the response generation", - "items": { - "type": "object", - "properties": { - "arguments": { - "type": "object", - "description": "The arguments passed to be passed to the tool call request" - }, - "name": { - "type": "string", - "description": "The name of the tool to be called" - } - } - } - } - }, - "required": [ - "response" - ] - }, - { - "type": "string", - "format": "binary" - } - ] - } - } -} \ No newline at end of file diff --git a/src/content/workers-ai-models/qwen1.5-14b-chat-awq.json b/src/content/workers-ai-models/qwen1.5-14b-chat-awq.json deleted file mode 100644 index c51f1b9265e0f11..000000000000000 --- a/src/content/workers-ai-models/qwen1.5-14b-chat-awq.json +++ /dev/null @@ -1,466 +0,0 @@ -{ - "id": "09d113a9-03c4-420e-b6f2-52ad4b3bed45", - "source": 1, - "name": "@cf/qwen/qwen1.5-14b-chat-awq", - "description": "Qwen1.5 is the improved version of Qwen, the large language model series developed by Alibaba Cloud. AWQ is an efficient, accurate and blazing-fast low-bit weight quantization method, currently supporting 4-bit quantization.", - "task": { - "id": "c329a1f9-323d-4e91-b2aa-582dd4188d34", - "name": "Text Generation", - "description": "Family of generative text models, such as large language models (LLM), that can be adapted for a variety of natural language tasks." - }, - "created_at": "2024-02-27 18:24:45.316", - "tags": [], - "properties": [ - { - "property_id": "beta", - "value": "true" - }, - { - "property_id": "context_window", - "value": "7500" - }, - { - "property_id": "info", - "value": "https://huggingface.co/qwen/qwen1.5-14b-chat-awq" - }, - { - "property_id": "planned_deprecation_date", - "value": "2025-10-01" - } - ], - "schema": { - "input": { - "type": "object", - "oneOf": [ - { - "title": "Prompt", - "properties": { - "prompt": { - "type": "string", - "minLength": 1, - "description": "The input text prompt for the model to generate a response." - }, - "lora": { - "type": "string", - "description": "Name of the LoRA (Low-Rank Adaptation) model to fine-tune the base model." - }, - "response_format": { - "title": "JSON Mode", - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_object", - "json_schema" - ] - }, - "json_schema": {} - } - }, - "raw": { - "type": "boolean", - "default": false, - "description": "If true, a chat template is not applied and you must adhere to the specific model's expected formatting." - }, - "stream": { - "type": "boolean", - "default": false, - "description": "If true, the response will be streamed back incrementally using SSE, Server Sent Events." - }, - "max_tokens": { - "type": "integer", - "default": 256, - "description": "The maximum number of tokens to generate in the response." - }, - "temperature": { - "type": "number", - "default": 0.6, - "minimum": 0, - "maximum": 5, - "description": "Controls the randomness of the output; higher values produce more random results." - }, - "top_p": { - "type": "number", - "minimum": 0.001, - "maximum": 1, - "description": "Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses." - }, - "top_k": { - "type": "integer", - "minimum": 1, - "maximum": 50, - "description": "Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises." - }, - "seed": { - "type": "integer", - "minimum": 1, - "maximum": 9999999999, - "description": "Random seed for reproducibility of the generation." - }, - "repetition_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Penalty for repeated tokens; higher values discourage repetition." - }, - "frequency_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Decreases the likelihood of the model repeating the same lines verbatim." - }, - "presence_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Increases the likelihood of the model introducing new topics." - } - }, - "required": [ - "prompt" - ] - }, - { - "title": "Messages", - "properties": { - "messages": { - "type": "array", - "description": "An array of message objects representing the conversation history.", - "items": { - "type": "object", - "properties": { - "role": { - "type": "string", - "description": "The role of the message sender (e.g., 'user', 'assistant', 'system', 'tool')." - }, - "content": { - "oneOf": [ - { - "type": "string", - "description": "The content of the message as a string." - }, - { - "type": "array", - "description": "Array of text content parts.", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "Type of the content (text)" - }, - "text": { - "type": "string", - "description": "Text content" - } - } - } - } - ] - } - }, - "required": [ - "role", - "content" - ] - } - }, - "functions": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "code": { - "type": "string" - } - }, - "required": [ - "name", - "code" - ] - } - }, - "tools": { - "type": "array", - "description": "A list of tools available for the assistant to use.", - "items": { - "type": "object", - "oneOf": [ - { - "properties": { - "name": { - "type": "string", - "description": "The name of the tool. More descriptive the better." - }, - "description": { - "type": "string", - "description": "A brief description of what the tool does." - }, - "parameters": { - "type": "object", - "description": "Schema defining the parameters accepted by the tool.", - "properties": { - "type": { - "type": "string", - "description": "The type of the parameters object (usually 'object')." - }, - "required": { - "type": "array", - "description": "List of required parameter names.", - "items": { - "type": "string" - } - }, - "properties": { - "type": "object", - "description": "Definitions of each parameter.", - "additionalProperties": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The data type of the parameter." - }, - "description": { - "type": "string", - "description": "A description of the expected parameter." - } - }, - "required": [ - "type", - "description" - ] - } - } - }, - "required": [ - "type", - "properties" - ] - } - }, - "required": [ - "name", - "description", - "parameters" - ] - }, - { - "properties": { - "type": { - "type": "string", - "description": "Specifies the type of tool (e.g., 'function')." - }, - "function": { - "type": "object", - "description": "Details of the function tool.", - "properties": { - "name": { - "type": "string", - "description": "The name of the function." - }, - "description": { - "type": "string", - "description": "A brief description of what the function does." - }, - "parameters": { - "type": "object", - "description": "Schema defining the parameters accepted by the function.", - "properties": { - "type": { - "type": "string", - "description": "The type of the parameters object (usually 'object')." - }, - "required": { - "type": "array", - "description": "List of required parameter names.", - "items": { - "type": "string" - } - }, - "properties": { - "type": "object", - "description": "Definitions of each parameter.", - "additionalProperties": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The data type of the parameter." - }, - "description": { - "type": "string", - "description": "A description of the expected parameter." - } - }, - "required": [ - "type", - "description" - ] - } - } - }, - "required": [ - "type", - "properties" - ] - } - }, - "required": [ - "name", - "description", - "parameters" - ] - } - }, - "required": [ - "type", - "function" - ] - } - ] - } - }, - "response_format": { - "title": "JSON Mode", - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_object", - "json_schema" - ] - }, - "json_schema": {} - } - }, - "raw": { - "type": "boolean", - "default": false, - "description": "If true, a chat template is not applied and you must adhere to the specific model's expected formatting." - }, - "stream": { - "type": "boolean", - "default": false, - "description": "If true, the response will be streamed back incrementally using SSE, Server Sent Events." - }, - "max_tokens": { - "type": "integer", - "default": 256, - "description": "The maximum number of tokens to generate in the response." - }, - "temperature": { - "type": "number", - "default": 0.6, - "minimum": 0, - "maximum": 5, - "description": "Controls the randomness of the output; higher values produce more random results." - }, - "top_p": { - "type": "number", - "minimum": 0.001, - "maximum": 1, - "description": "Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses." - }, - "top_k": { - "type": "integer", - "minimum": 1, - "maximum": 50, - "description": "Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises." - }, - "seed": { - "type": "integer", - "minimum": 1, - "maximum": 9999999999, - "description": "Random seed for reproducibility of the generation." - }, - "repetition_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Penalty for repeated tokens; higher values discourage repetition." - }, - "frequency_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Decreases the likelihood of the model repeating the same lines verbatim." - }, - "presence_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Increases the likelihood of the model introducing new topics." - } - }, - "required": [ - "messages" - ] - } - ] - }, - "output": { - "oneOf": [ - { - "type": "object", - "properties": { - "response": { - "type": "string", - "description": "The generated text response from the model" - }, - "usage": { - "type": "object", - "description": "Usage statistics for the inference request", - "properties": { - "prompt_tokens": { - "type": "number", - "description": "Total number of tokens in input", - "default": 0 - }, - "completion_tokens": { - "type": "number", - "description": "Total number of tokens in output", - "default": 0 - }, - "total_tokens": { - "type": "number", - "description": "Total number of input and output tokens", - "default": 0 - } - } - }, - "tool_calls": { - "type": "array", - "description": "An array of tool calls requests made during the response generation", - "items": { - "type": "object", - "properties": { - "arguments": { - "type": "object", - "description": "The arguments passed to be passed to the tool call request" - }, - "name": { - "type": "string", - "description": "The name of the tool to be called" - } - } - } - } - }, - "required": [ - "response" - ] - }, - { - "type": "string", - "format": "binary" - } - ] - } - } -} \ No newline at end of file diff --git a/src/content/workers-ai-models/qwen1.5-7b-chat-awq.json b/src/content/workers-ai-models/qwen1.5-7b-chat-awq.json deleted file mode 100644 index ee17ba9abaeb0e4..000000000000000 --- a/src/content/workers-ai-models/qwen1.5-7b-chat-awq.json +++ /dev/null @@ -1,466 +0,0 @@ -{ - "id": "90a20ae7-7cf4-4eb3-8672-8fc4ee580635", - "source": 1, - "name": "@cf/qwen/qwen1.5-7b-chat-awq", - "description": "Qwen1.5 is the improved version of Qwen, the large language model series developed by Alibaba Cloud. AWQ is an efficient, accurate and blazing-fast low-bit weight quantization method, currently supporting 4-bit quantization.", - "task": { - "id": "c329a1f9-323d-4e91-b2aa-582dd4188d34", - "name": "Text Generation", - "description": "Family of generative text models, such as large language models (LLM), that can be adapted for a variety of natural language tasks." - }, - "created_at": "2024-02-27 18:24:11.709", - "tags": [], - "properties": [ - { - "property_id": "beta", - "value": "true" - }, - { - "property_id": "context_window", - "value": "20000" - }, - { - "property_id": "info", - "value": "https://huggingface.co/qwen/qwen1.5-7b-chat-awq" - }, - { - "property_id": "planned_deprecation_date", - "value": "2025-10-01" - } - ], - "schema": { - "input": { - "type": "object", - "oneOf": [ - { - "title": "Prompt", - "properties": { - "prompt": { - "type": "string", - "minLength": 1, - "description": "The input text prompt for the model to generate a response." - }, - "lora": { - "type": "string", - "description": "Name of the LoRA (Low-Rank Adaptation) model to fine-tune the base model." - }, - "response_format": { - "title": "JSON Mode", - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_object", - "json_schema" - ] - }, - "json_schema": {} - } - }, - "raw": { - "type": "boolean", - "default": false, - "description": "If true, a chat template is not applied and you must adhere to the specific model's expected formatting." - }, - "stream": { - "type": "boolean", - "default": false, - "description": "If true, the response will be streamed back incrementally using SSE, Server Sent Events." - }, - "max_tokens": { - "type": "integer", - "default": 256, - "description": "The maximum number of tokens to generate in the response." - }, - "temperature": { - "type": "number", - "default": 0.6, - "minimum": 0, - "maximum": 5, - "description": "Controls the randomness of the output; higher values produce more random results." - }, - "top_p": { - "type": "number", - "minimum": 0.001, - "maximum": 1, - "description": "Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses." - }, - "top_k": { - "type": "integer", - "minimum": 1, - "maximum": 50, - "description": "Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises." - }, - "seed": { - "type": "integer", - "minimum": 1, - "maximum": 9999999999, - "description": "Random seed for reproducibility of the generation." - }, - "repetition_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Penalty for repeated tokens; higher values discourage repetition." - }, - "frequency_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Decreases the likelihood of the model repeating the same lines verbatim." - }, - "presence_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Increases the likelihood of the model introducing new topics." - } - }, - "required": [ - "prompt" - ] - }, - { - "title": "Messages", - "properties": { - "messages": { - "type": "array", - "description": "An array of message objects representing the conversation history.", - "items": { - "type": "object", - "properties": { - "role": { - "type": "string", - "description": "The role of the message sender (e.g., 'user', 'assistant', 'system', 'tool')." - }, - "content": { - "oneOf": [ - { - "type": "string", - "description": "The content of the message as a string." - }, - { - "type": "array", - "description": "Array of text content parts.", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "Type of the content (text)" - }, - "text": { - "type": "string", - "description": "Text content" - } - } - } - } - ] - } - }, - "required": [ - "role", - "content" - ] - } - }, - "functions": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "code": { - "type": "string" - } - }, - "required": [ - "name", - "code" - ] - } - }, - "tools": { - "type": "array", - "description": "A list of tools available for the assistant to use.", - "items": { - "type": "object", - "oneOf": [ - { - "properties": { - "name": { - "type": "string", - "description": "The name of the tool. More descriptive the better." - }, - "description": { - "type": "string", - "description": "A brief description of what the tool does." - }, - "parameters": { - "type": "object", - "description": "Schema defining the parameters accepted by the tool.", - "properties": { - "type": { - "type": "string", - "description": "The type of the parameters object (usually 'object')." - }, - "required": { - "type": "array", - "description": "List of required parameter names.", - "items": { - "type": "string" - } - }, - "properties": { - "type": "object", - "description": "Definitions of each parameter.", - "additionalProperties": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The data type of the parameter." - }, - "description": { - "type": "string", - "description": "A description of the expected parameter." - } - }, - "required": [ - "type", - "description" - ] - } - } - }, - "required": [ - "type", - "properties" - ] - } - }, - "required": [ - "name", - "description", - "parameters" - ] - }, - { - "properties": { - "type": { - "type": "string", - "description": "Specifies the type of tool (e.g., 'function')." - }, - "function": { - "type": "object", - "description": "Details of the function tool.", - "properties": { - "name": { - "type": "string", - "description": "The name of the function." - }, - "description": { - "type": "string", - "description": "A brief description of what the function does." - }, - "parameters": { - "type": "object", - "description": "Schema defining the parameters accepted by the function.", - "properties": { - "type": { - "type": "string", - "description": "The type of the parameters object (usually 'object')." - }, - "required": { - "type": "array", - "description": "List of required parameter names.", - "items": { - "type": "string" - } - }, - "properties": { - "type": "object", - "description": "Definitions of each parameter.", - "additionalProperties": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The data type of the parameter." - }, - "description": { - "type": "string", - "description": "A description of the expected parameter." - } - }, - "required": [ - "type", - "description" - ] - } - } - }, - "required": [ - "type", - "properties" - ] - } - }, - "required": [ - "name", - "description", - "parameters" - ] - } - }, - "required": [ - "type", - "function" - ] - } - ] - } - }, - "response_format": { - "title": "JSON Mode", - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_object", - "json_schema" - ] - }, - "json_schema": {} - } - }, - "raw": { - "type": "boolean", - "default": false, - "description": "If true, a chat template is not applied and you must adhere to the specific model's expected formatting." - }, - "stream": { - "type": "boolean", - "default": false, - "description": "If true, the response will be streamed back incrementally using SSE, Server Sent Events." - }, - "max_tokens": { - "type": "integer", - "default": 256, - "description": "The maximum number of tokens to generate in the response." - }, - "temperature": { - "type": "number", - "default": 0.6, - "minimum": 0, - "maximum": 5, - "description": "Controls the randomness of the output; higher values produce more random results." - }, - "top_p": { - "type": "number", - "minimum": 0.001, - "maximum": 1, - "description": "Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses." - }, - "top_k": { - "type": "integer", - "minimum": 1, - "maximum": 50, - "description": "Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises." - }, - "seed": { - "type": "integer", - "minimum": 1, - "maximum": 9999999999, - "description": "Random seed for reproducibility of the generation." - }, - "repetition_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Penalty for repeated tokens; higher values discourage repetition." - }, - "frequency_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Decreases the likelihood of the model repeating the same lines verbatim." - }, - "presence_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Increases the likelihood of the model introducing new topics." - } - }, - "required": [ - "messages" - ] - } - ] - }, - "output": { - "oneOf": [ - { - "type": "object", - "properties": { - "response": { - "type": "string", - "description": "The generated text response from the model" - }, - "usage": { - "type": "object", - "description": "Usage statistics for the inference request", - "properties": { - "prompt_tokens": { - "type": "number", - "description": "Total number of tokens in input", - "default": 0 - }, - "completion_tokens": { - "type": "number", - "description": "Total number of tokens in output", - "default": 0 - }, - "total_tokens": { - "type": "number", - "description": "Total number of input and output tokens", - "default": 0 - } - } - }, - "tool_calls": { - "type": "array", - "description": "An array of tool calls requests made during the response generation", - "items": { - "type": "object", - "properties": { - "arguments": { - "type": "object", - "description": "The arguments passed to be passed to the tool call request" - }, - "name": { - "type": "string", - "description": "The name of the tool to be called" - } - } - } - } - }, - "required": [ - "response" - ] - }, - { - "type": "string", - "format": "binary" - } - ] - } - } -} \ No newline at end of file diff --git a/src/content/workers-ai-models/qwen2.5-coder-32b-instruct.json b/src/content/workers-ai-models/qwen2.5-coder-32b-instruct.json deleted file mode 100644 index e60cb146e997c82..000000000000000 --- a/src/content/workers-ai-models/qwen2.5-coder-32b-instruct.json +++ /dev/null @@ -1,452 +0,0 @@ -{ - "id": "51b71d5b-8bc0-4489-a107-95e542b69914", - "source": 1, - "name": "@cf/qwen/qwen2.5-coder-32b-instruct", - "description": "Qwen2.5-Coder is the latest series of Code-Specific Qwen large language models (formerly known as CodeQwen). As of now, Qwen2.5-Coder has covered six mainstream model sizes, 0.5, 1.5, 3, 7, 14, 32 billion parameters, to meet the needs of different developers. Qwen2.5-Coder brings the following improvements upon CodeQwen1.5:", - "task": { - "id": "c329a1f9-323d-4e91-b2aa-582dd4188d34", - "name": "Text Generation", - "description": "Family of generative text models, such as large language models (LLM), that can be adapted for a variety of natural language tasks." - }, - "created_at": "2025-02-27 00:31:43.829", - "tags": [], - "properties": [ - { - "property_id": "context_window", - "value": "32768" - }, - { - "property_id": "price", - "value": [ - { - "unit": "per M input tokens", - "price": 0.66, - "currency": "USD" - }, - { - "unit": "per M output tokens", - "price": 1, - "currency": "USD" - } - ] - }, - { - "property_id": "lora", - "value": "true" - } - ], - "schema": { - "input": { - "type": "object", - "oneOf": [ - { - "title": "Prompt", - "properties": { - "prompt": { - "type": "string", - "minLength": 1, - "description": "The input text prompt for the model to generate a response." - }, - "lora": { - "type": "string", - "description": "Name of the LoRA (Low-Rank Adaptation) model to fine-tune the base model." - }, - "response_format": { - "title": "JSON Mode", - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_object", - "json_schema" - ] - }, - "json_schema": {} - } - }, - "raw": { - "type": "boolean", - "default": false, - "description": "If true, a chat template is not applied and you must adhere to the specific model's expected formatting." - }, - "stream": { - "type": "boolean", - "default": false, - "description": "If true, the response will be streamed back incrementally using SSE, Server Sent Events." - }, - "max_tokens": { - "type": "integer", - "default": 256, - "description": "The maximum number of tokens to generate in the response." - }, - "temperature": { - "type": "number", - "default": 0.6, - "minimum": 0, - "maximum": 5, - "description": "Controls the randomness of the output; higher values produce more random results." - }, - "top_p": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses." - }, - "top_k": { - "type": "integer", - "minimum": 1, - "maximum": 50, - "description": "Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises." - }, - "seed": { - "type": "integer", - "minimum": 1, - "maximum": 9999999999, - "description": "Random seed for reproducibility of the generation." - }, - "repetition_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Penalty for repeated tokens; higher values discourage repetition." - }, - "frequency_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Decreases the likelihood of the model repeating the same lines verbatim." - }, - "presence_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Increases the likelihood of the model introducing new topics." - } - }, - "required": [ - "prompt" - ] - }, - { - "title": "Messages", - "properties": { - "messages": { - "type": "array", - "description": "An array of message objects representing the conversation history.", - "items": { - "type": "object", - "properties": { - "role": { - "type": "string", - "description": "The role of the message sender (e.g., 'user', 'assistant', 'system', 'tool')." - }, - "content": { - "type": "string", - "description": "The content of the message as a string." - } - }, - "required": [ - "role", - "content" - ] - } - }, - "functions": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "code": { - "type": "string" - } - }, - "required": [ - "name", - "code" - ] - } - }, - "tools": { - "type": "array", - "description": "A list of tools available for the assistant to use.", - "items": { - "type": "object", - "oneOf": [ - { - "properties": { - "name": { - "type": "string", - "description": "The name of the tool. More descriptive the better." - }, - "description": { - "type": "string", - "description": "A brief description of what the tool does." - }, - "parameters": { - "type": "object", - "description": "Schema defining the parameters accepted by the tool.", - "properties": { - "type": { - "type": "string", - "description": "The type of the parameters object (usually 'object')." - }, - "required": { - "type": "array", - "description": "List of required parameter names.", - "items": { - "type": "string" - } - }, - "properties": { - "type": "object", - "description": "Definitions of each parameter.", - "additionalProperties": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The data type of the parameter." - }, - "description": { - "type": "string", - "description": "A description of the expected parameter." - } - }, - "required": [ - "type", - "description" - ] - } - } - }, - "required": [ - "type", - "properties" - ] - } - }, - "required": [ - "name", - "description", - "parameters" - ] - }, - { - "properties": { - "type": { - "type": "string", - "description": "Specifies the type of tool (e.g., 'function')." - }, - "function": { - "type": "object", - "description": "Details of the function tool.", - "properties": { - "name": { - "type": "string", - "description": "The name of the function." - }, - "description": { - "type": "string", - "description": "A brief description of what the function does." - }, - "parameters": { - "type": "object", - "description": "Schema defining the parameters accepted by the function.", - "properties": { - "type": { - "type": "string", - "description": "The type of the parameters object (usually 'object')." - }, - "required": { - "type": "array", - "description": "List of required parameter names.", - "items": { - "type": "string" - } - }, - "properties": { - "type": "object", - "description": "Definitions of each parameter.", - "additionalProperties": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The data type of the parameter." - }, - "description": { - "type": "string", - "description": "A description of the expected parameter." - } - }, - "required": [ - "type", - "description" - ] - } - } - }, - "required": [ - "type", - "properties" - ] - } - }, - "required": [ - "name", - "description", - "parameters" - ] - } - }, - "required": [ - "type", - "function" - ] - } - ] - } - }, - "response_format": { - "title": "JSON Mode", - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_object", - "json_schema" - ] - }, - "json_schema": {} - } - }, - "raw": { - "type": "boolean", - "default": false, - "description": "If true, a chat template is not applied and you must adhere to the specific model's expected formatting." - }, - "stream": { - "type": "boolean", - "default": false, - "description": "If true, the response will be streamed back incrementally using SSE, Server Sent Events." - }, - "max_tokens": { - "type": "integer", - "default": 256, - "description": "The maximum number of tokens to generate in the response." - }, - "temperature": { - "type": "number", - "default": 0.6, - "minimum": 0, - "maximum": 5, - "description": "Controls the randomness of the output; higher values produce more random results." - }, - "top_p": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses." - }, - "top_k": { - "type": "integer", - "minimum": 1, - "maximum": 50, - "description": "Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises." - }, - "seed": { - "type": "integer", - "minimum": 1, - "maximum": 9999999999, - "description": "Random seed for reproducibility of the generation." - }, - "repetition_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Penalty for repeated tokens; higher values discourage repetition." - }, - "frequency_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Decreases the likelihood of the model repeating the same lines verbatim." - }, - "presence_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Increases the likelihood of the model introducing new topics." - } - }, - "required": [ - "messages" - ] - } - ] - }, - "output": { - "oneOf": [ - { - "type": "object", - "properties": { - "response": { - "type": "string", - "description": "The generated text response from the model" - }, - "usage": { - "type": "object", - "description": "Usage statistics for the inference request", - "properties": { - "prompt_tokens": { - "type": "number", - "description": "Total number of tokens in input", - "default": 0 - }, - "completion_tokens": { - "type": "number", - "description": "Total number of tokens in output", - "default": 0 - }, - "total_tokens": { - "type": "number", - "description": "Total number of input and output tokens", - "default": 0 - } - } - }, - "tool_calls": { - "type": "array", - "description": "An array of tool calls requests made during the response generation", - "items": { - "type": "object", - "properties": { - "arguments": { - "type": "object", - "description": "The arguments passed to be passed to the tool call request" - }, - "name": { - "type": "string", - "description": "The name of the tool to be called" - } - } - } - } - }, - "required": [ - "response" - ] - }, - { - "type": "string", - "format": "binary" - } - ] - } - } -} \ No newline at end of file diff --git a/src/content/workers-ai-models/qwen3-30b-a3b-fp8.json b/src/content/workers-ai-models/qwen3-30b-a3b-fp8.json deleted file mode 100644 index b2398fd18499b3f..000000000000000 --- a/src/content/workers-ai-models/qwen3-30b-a3b-fp8.json +++ /dev/null @@ -1,1073 +0,0 @@ -{ - "id": "4090e54c-eee4-4221-b410-10c1c0f92f17", - "source": 1, - "name": "@cf/qwen/qwen3-30b-a3b-fp8", - "description": "Qwen3 is the latest generation of large language models in Qwen series, offering a comprehensive suite of dense and mixture-of-experts (MoE) models. Built upon extensive training, Qwen3 delivers groundbreaking advancements in reasoning, instruction-following, agent capabilities, and multilingual support.", - "task": { - "id": "c329a1f9-323d-4e91-b2aa-582dd4188d34", - "name": "Text Generation", - "description": "Family of generative text models, such as large language models (LLM), that can be adapted for a variety of natural language tasks." - }, - "created_at": "2025-04-30 21:36:10.009", - "tags": [], - "properties": [ - { - "property_id": "async_queue", - "value": "true" - }, - { - "property_id": "context_window", - "value": "32768" - }, - { - "property_id": "price", - "value": [ - { - "unit": "per M input tokens", - "price": 0.051, - "currency": "USD" - }, - { - "unit": "per M output tokens", - "price": 0.34, - "currency": "USD" - } - ] - }, - { - "property_id": "function_calling", - "value": "true" - }, - { - "property_id": "reasoning", - "value": "true" - } - ], - "schema": { - "input": { - "type": "object", - "oneOf": [ - { - "title": "Prompt", - "properties": { - "prompt": { - "type": "string", - "minLength": 1, - "description": "The input text prompt for the model to generate a response." - }, - "lora": { - "type": "string", - "description": "Name of the LoRA (Low-Rank Adaptation) model to fine-tune the base model." - }, - "response_format": { - "title": "JSON Mode", - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_object", - "json_schema" - ] - }, - "json_schema": {} - } - }, - "raw": { - "type": "boolean", - "default": false, - "description": "If true, a chat template is not applied and you must adhere to the specific model's expected formatting." - }, - "stream": { - "type": "boolean", - "default": false, - "description": "If true, the response will be streamed back incrementally using SSE, Server Sent Events." - }, - "max_tokens": { - "type": "integer", - "default": 2000, - "description": "The maximum number of tokens to generate in the response." - }, - "temperature": { - "type": "number", - "default": 0.6, - "minimum": 0, - "maximum": 5, - "description": "Controls the randomness of the output; higher values produce more random results." - }, - "top_p": { - "type": "number", - "minimum": 0.001, - "maximum": 1, - "description": "Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses." - }, - "top_k": { - "type": "integer", - "minimum": 1, - "maximum": 50, - "description": "Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises." - }, - "seed": { - "type": "integer", - "minimum": 1, - "maximum": 9999999999, - "description": "Random seed for reproducibility of the generation." - }, - "repetition_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Penalty for repeated tokens; higher values discourage repetition." - }, - "frequency_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Decreases the likelihood of the model repeating the same lines verbatim." - }, - "presence_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Increases the likelihood of the model introducing new topics." - } - }, - "required": [ - "prompt" - ] - }, - { - "title": "Messages", - "properties": { - "messages": { - "type": "array", - "description": "An array of message objects representing the conversation history.", - "items": { - "type": "object", - "properties": { - "role": { - "type": "string", - "description": "The role of the message sender (e.g., 'user', 'assistant', 'system', 'tool')." - }, - "content": { - "oneOf": [ - { - "type": "string", - "description": "The content of the message as a string." - }, - { - "type": "array", - "description": "Array of text content parts.", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "Type of the content (text)" - }, - "text": { - "type": "string", - "description": "Text content" - } - } - } - } - ] - } - }, - "required": [ - "role", - "content" - ] - } - }, - "functions": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "code": { - "type": "string" - } - }, - "required": [ - "name", - "code" - ] - } - }, - "tools": { - "type": "array", - "description": "A list of tools available for the assistant to use.", - "items": { - "type": "object", - "oneOf": [ - { - "properties": { - "name": { - "type": "string", - "description": "The name of the tool. More descriptive the better." - }, - "description": { - "type": "string", - "description": "A brief description of what the tool does." - }, - "parameters": { - "type": "object", - "description": "Schema defining the parameters accepted by the tool.", - "properties": { - "type": { - "type": "string", - "description": "The type of the parameters object (usually 'object')." - }, - "required": { - "type": "array", - "description": "List of required parameter names.", - "items": { - "type": "string" - } - }, - "properties": { - "type": "object", - "description": "Definitions of each parameter.", - "additionalProperties": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The data type of the parameter." - }, - "description": { - "type": "string", - "description": "A description of the expected parameter." - } - }, - "required": [ - "type", - "description" - ] - } - } - }, - "required": [ - "type", - "properties" - ] - } - }, - "required": [ - "name", - "description", - "parameters" - ] - }, - { - "properties": { - "type": { - "type": "string", - "description": "Specifies the type of tool (e.g., 'function')." - }, - "function": { - "type": "object", - "description": "Details of the function tool.", - "properties": { - "name": { - "type": "string", - "description": "The name of the function." - }, - "description": { - "type": "string", - "description": "A brief description of what the function does." - }, - "parameters": { - "type": "object", - "description": "Schema defining the parameters accepted by the function.", - "properties": { - "type": { - "type": "string", - "description": "The type of the parameters object (usually 'object')." - }, - "required": { - "type": "array", - "description": "List of required parameter names.", - "items": { - "type": "string" - } - }, - "properties": { - "type": "object", - "description": "Definitions of each parameter.", - "additionalProperties": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The data type of the parameter." - }, - "description": { - "type": "string", - "description": "A description of the expected parameter." - } - }, - "required": [ - "type", - "description" - ] - } - } - }, - "required": [ - "type", - "properties" - ] - } - }, - "required": [ - "name", - "description", - "parameters" - ] - } - }, - "required": [ - "type", - "function" - ] - } - ] - } - }, - "response_format": { - "title": "JSON Mode", - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_object", - "json_schema" - ] - }, - "json_schema": {} - } - }, - "raw": { - "type": "boolean", - "default": false, - "description": "If true, a chat template is not applied and you must adhere to the specific model's expected formatting." - }, - "stream": { - "type": "boolean", - "default": false, - "description": "If true, the response will be streamed back incrementally using SSE, Server Sent Events." - }, - "max_tokens": { - "type": "integer", - "default": 2000, - "description": "The maximum number of tokens to generate in the response." - }, - "temperature": { - "type": "number", - "default": 0.6, - "minimum": 0, - "maximum": 5, - "description": "Controls the randomness of the output; higher values produce more random results." - }, - "top_p": { - "type": "number", - "minimum": 0.001, - "maximum": 1, - "description": "Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses." - }, - "top_k": { - "type": "integer", - "minimum": 1, - "maximum": 50, - "description": "Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises." - }, - "seed": { - "type": "integer", - "minimum": 1, - "maximum": 9999999999, - "description": "Random seed for reproducibility of the generation." - }, - "repetition_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Penalty for repeated tokens; higher values discourage repetition." - }, - "frequency_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Decreases the likelihood of the model repeating the same lines verbatim." - }, - "presence_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Increases the likelihood of the model introducing new topics." - } - }, - "required": [ - "messages" - ] - }, - { - "title": "Async Batch", - "type": "object", - "properties": { - "requests": { - "type": "array", - "items": { - "type": "object", - "oneOf": [ - { - "title": "Prompt", - "properties": { - "prompt": { - "type": "string", - "minLength": 1, - "description": "The input text prompt for the model to generate a response." - }, - "lora": { - "type": "string", - "description": "Name of the LoRA (Low-Rank Adaptation) model to fine-tune the base model." - }, - "response_format": { - "title": "JSON Mode", - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_object", - "json_schema" - ] - }, - "json_schema": {} - } - }, - "raw": { - "type": "boolean", - "default": false, - "description": "If true, a chat template is not applied and you must adhere to the specific model's expected formatting." - }, - "stream": { - "type": "boolean", - "default": false, - "description": "If true, the response will be streamed back incrementally using SSE, Server Sent Events." - }, - "max_tokens": { - "type": "integer", - "default": 256, - "description": "The maximum number of tokens to generate in the response." - }, - "temperature": { - "type": "number", - "default": 0.6, - "minimum": 0, - "maximum": 5, - "description": "Controls the randomness of the output; higher values produce more random results." - }, - "top_p": { - "type": "number", - "minimum": 0.001, - "maximum": 1, - "description": "Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses." - }, - "top_k": { - "type": "integer", - "minimum": 1, - "maximum": 50, - "description": "Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises." - }, - "seed": { - "type": "integer", - "minimum": 1, - "maximum": 9999999999, - "description": "Random seed for reproducibility of the generation." - }, - "repetition_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Penalty for repeated tokens; higher values discourage repetition." - }, - "frequency_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Decreases the likelihood of the model repeating the same lines verbatim." - }, - "presence_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Increases the likelihood of the model introducing new topics." - } - }, - "required": [ - "prompt" - ] - }, - { - "title": "Messages", - "properties": { - "messages": { - "type": "array", - "description": "An array of message objects representing the conversation history.", - "items": { - "type": "object", - "properties": { - "role": { - "type": "string", - "description": "The role of the message sender (e.g., 'user', 'assistant', 'system', 'tool')." - }, - "content": { - "oneOf": [ - { - "type": "string", - "description": "The content of the message as a string." - }, - { - "type": "array", - "description": "Array of text content parts.", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "Type of the content (text)" - }, - "text": { - "type": "string", - "description": "Text content" - } - } - } - } - ] - } - }, - "required": [ - "role", - "content" - ] - } - }, - "functions": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "code": { - "type": "string" - } - }, - "required": [ - "name", - "code" - ] - } - }, - "tools": { - "type": "array", - "description": "A list of tools available for the assistant to use.", - "items": { - "type": "object", - "oneOf": [ - { - "properties": { - "name": { - "type": "string", - "description": "The name of the tool. More descriptive the better." - }, - "description": { - "type": "string", - "description": "A brief description of what the tool does." - }, - "parameters": { - "type": "object", - "description": "Schema defining the parameters accepted by the tool.", - "properties": { - "type": { - "type": "string", - "description": "The type of the parameters object (usually 'object')." - }, - "required": { - "type": "array", - "description": "List of required parameter names.", - "items": { - "type": "string" - } - }, - "properties": { - "type": "object", - "description": "Definitions of each parameter.", - "additionalProperties": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The data type of the parameter." - }, - "description": { - "type": "string", - "description": "A description of the expected parameter." - } - }, - "required": [ - "type", - "description" - ] - } - } - }, - "required": [ - "type", - "properties" - ] - } - }, - "required": [ - "name", - "description", - "parameters" - ] - }, - { - "properties": { - "type": { - "type": "string", - "description": "Specifies the type of tool (e.g., 'function')." - }, - "function": { - "type": "object", - "description": "Details of the function tool.", - "properties": { - "name": { - "type": "string", - "description": "The name of the function." - }, - "description": { - "type": "string", - "description": "A brief description of what the function does." - }, - "parameters": { - "type": "object", - "description": "Schema defining the parameters accepted by the function.", - "properties": { - "type": { - "type": "string", - "description": "The type of the parameters object (usually 'object')." - }, - "required": { - "type": "array", - "description": "List of required parameter names.", - "items": { - "type": "string" - } - }, - "properties": { - "type": "object", - "description": "Definitions of each parameter.", - "additionalProperties": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The data type of the parameter." - }, - "description": { - "type": "string", - "description": "A description of the expected parameter." - } - }, - "required": [ - "type", - "description" - ] - } - } - }, - "required": [ - "type", - "properties" - ] - } - }, - "required": [ - "name", - "description", - "parameters" - ] - } - }, - "required": [ - "type", - "function" - ] - } - ] - } - }, - "response_format": { - "title": "JSON Mode", - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_object", - "json_schema" - ] - }, - "json_schema": {} - } - }, - "raw": { - "type": "boolean", - "default": false, - "description": "If true, a chat template is not applied and you must adhere to the specific model's expected formatting." - }, - "stream": { - "type": "boolean", - "default": false, - "description": "If true, the response will be streamed back incrementally using SSE, Server Sent Events." - }, - "max_tokens": { - "type": "integer", - "default": 256, - "description": "The maximum number of tokens to generate in the response." - }, - "temperature": { - "type": "number", - "default": 0.6, - "minimum": 0, - "maximum": 5, - "description": "Controls the randomness of the output; higher values produce more random results." - }, - "top_p": { - "type": "number", - "minimum": 0.001, - "maximum": 1, - "description": "Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses." - }, - "top_k": { - "type": "integer", - "minimum": 1, - "maximum": 50, - "description": "Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises." - }, - "seed": { - "type": "integer", - "minimum": 1, - "maximum": 9999999999, - "description": "Random seed for reproducibility of the generation." - }, - "repetition_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Penalty for repeated tokens; higher values discourage repetition." - }, - "frequency_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Decreases the likelihood of the model repeating the same lines verbatim." - }, - "presence_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Increases the likelihood of the model introducing new topics." - } - }, - "required": [ - "messages" - ] - } - ] - } - } - }, - "required": [ - "requests" - ] - } - ] - }, - "output": { - "oneOf": [ - { - "type": "object", - "contentType": "application/json", - "title": "Chat Completion Response", - "properties": { - "id": { - "type": "string", - "description": "Unique identifier for the completion" - }, - "object": { - "type": "string", - "enum": [ - "chat.completion" - ], - "description": "Object type identifier" - }, - "created": { - "type": "number", - "description": "Unix timestamp of when the completion was created" - }, - "model": { - "type": "string", - "description": "Model used for the completion" - }, - "choices": { - "type": "array", - "description": "List of completion choices", - "items": { - "type": "object", - "properties": { - "index": { - "type": "number", - "description": "Index of the choice in the list" - }, - "message": { - "type": "object", - "description": "The message generated by the model", - "properties": { - "role": { - "type": "string", - "description": "Role of the message author" - }, - "content": { - "type": "string", - "description": "The content of the message" - }, - "reasoning_content": { - "type": "string", - "description": "Internal reasoning content (if available)" - }, - "tool_calls": { - "type": "array", - "description": "Tool calls made by the assistant", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Unique identifier for the tool call" - }, - "type": { - "type": "string", - "enum": [ - "function" - ], - "description": "Type of tool call" - }, - "function": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Name of the function to call" - }, - "arguments": { - "type": "string", - "description": "JSON string of arguments for the function" - } - }, - "required": [ - "name", - "arguments" - ] - } - }, - "required": [ - "id", - "type", - "function" - ] - } - } - }, - "required": [ - "role", - "content" - ] - }, - "finish_reason": { - "type": "string", - "description": "Reason why the model stopped generating" - }, - "stop_reason": { - "type": [ - "string", - "null" - ], - "description": "Stop reason (may be null)" - }, - "logprobs": { - "type": [ - "object", - "null" - ], - "description": "Log probabilities (if requested)" - } - } - } - }, - "usage": { - "type": "object", - "description": "Usage statistics for the inference request", - "properties": { - "prompt_tokens": { - "type": "number", - "description": "Total number of tokens in input", - "default": 0 - }, - "completion_tokens": { - "type": "number", - "description": "Total number of tokens in output", - "default": 0 - }, - "total_tokens": { - "type": "number", - "description": "Total number of input and output tokens", - "default": 0 - } - } - }, - "prompt_logprobs": { - "type": [ - "object", - "null" - ], - "description": "Log probabilities for the prompt (if requested)" - } - } - }, - { - "type": "object", - "contentType": "application/json", - "title": "Text Completion Response", - "properties": { - "id": { - "type": "string", - "description": "Unique identifier for the completion" - }, - "object": { - "type": "string", - "enum": [ - "text_completion" - ], - "description": "Object type identifier" - }, - "created": { - "type": "number", - "description": "Unix timestamp of when the completion was created" - }, - "model": { - "type": "string", - "description": "Model used for the completion" - }, - "choices": { - "type": "array", - "description": "List of completion choices", - "items": { - "type": "object", - "properties": { - "index": { - "type": "number", - "description": "Index of the choice in the list" - }, - "text": { - "type": "string", - "description": "The generated text completion" - }, - "finish_reason": { - "type": "string", - "description": "Reason why the model stopped generating" - }, - "stop_reason": { - "type": [ - "string", - "null" - ], - "description": "Stop reason (may be null)" - }, - "logprobs": { - "type": [ - "object", - "null" - ], - "description": "Log probabilities (if requested)" - }, - "prompt_logprobs": { - "type": [ - "object", - "null" - ], - "description": "Log probabilities for the prompt (if requested)" - } - }, - "required": [ - "index", - "text", - "finish_reason" - ] - } - }, - "usage": { - "type": "object", - "description": "Usage statistics for the inference request", - "properties": { - "prompt_tokens": { - "type": "number", - "description": "Total number of tokens in input", - "default": 0 - }, - "completion_tokens": { - "type": "number", - "description": "Total number of tokens in output", - "default": 0 - }, - "total_tokens": { - "type": "number", - "description": "Total number of input and output tokens", - "default": 0 - } - } - } - } - }, - { - "type": "string", - "contentType": "text/event-stream", - "format": "binary" - }, - { - "type": "object", - "contentType": "application/json", - "title": "Async response", - "properties": { - "request_id": { - "type": "string", - "description": "The async request id that can be used to obtain the results." - } - } - } - ] - } - } -} \ No newline at end of file diff --git a/src/content/workers-ai-models/qwen3-embedding-0.6b.json b/src/content/workers-ai-models/qwen3-embedding-0.6b.json deleted file mode 100644 index bd0147f7940b6ab..000000000000000 --- a/src/content/workers-ai-models/qwen3-embedding-0.6b.json +++ /dev/null @@ -1,115 +0,0 @@ -{ - "id": "cb254e3b-372b-4d4e-8526-ada79940427a", - "source": 1, - "name": "@cf/qwen/qwen3-embedding-0.6b", - "description": "The Qwen3 Embedding model series is the latest proprietary model of the Qwen family, specifically designed for text embedding and ranking tasks. ", - "task": { - "id": "0137cdcf-162a-4108-94f2-1ca59e8c65ee", - "name": "Text Embeddings", - "description": "Feature extraction models transform raw data into numerical features that can be processed while preserving the information in the original dataset. These models are ideal as part of building vector search applications or Retrieval Augmented Generation workflows with Large Language Models (LLM)." - }, - "created_at": "2025-06-18 20:23:22.086", - "tags": [], - "properties": [ - { - "property_id": "context_window", - "value": "8192" - }, - { - "property_id": "price", - "value": [ - { - "unit": "per M input tokens", - "price": 0.012, - "currency": "USD" - } - ] - } - ], - "schema": { - "input": { - "type": "object", - "properties": { - "queries": { - "oneOf": [ - { - "type": "string", - "description": "A single query string", - "minLength": 1 - }, - { - "type": "array", - "description": "An array of query strings", - "items": { - "type": "string", - "minLength": 1 - }, - "maxItems": 32 - } - ] - }, - "instruction": { - "type": "string", - "default": "Given a web search query, retrieve relevant passages that answer the query", - "description": "Optional instruction for the task" - }, - "documents": { - "oneOf": [ - { - "type": "string", - "description": "A single document string", - "minLength": 1 - }, - { - "type": "array", - "description": "An array of document strings", - "items": { - "type": "string", - "minLength": 1 - }, - "maxItems": 32 - } - ] - }, - "text": { - "oneOf": [ - { - "type": "string", - "description": "Alias for documents: a single text string", - "minLength": 1 - }, - { - "type": "array", - "description": "Alias for documents: an array of text strings", - "items": { - "type": "string", - "minLength": 1 - }, - "maxItems": 32 - } - ] - } - } - }, - "output": { - "type": "object", - "properties": { - "data": { - "items": { - "items": { - "type": "number" - }, - "type": "array" - }, - "type": "array" - }, - "shape": { - "items": { - "type": "integer" - }, - "type": "array" - } - } - } - } -} \ No newline at end of file diff --git a/src/content/workers-ai-models/qwq-32b.json b/src/content/workers-ai-models/qwq-32b.json deleted file mode 100644 index 73774bb0037bba7..000000000000000 --- a/src/content/workers-ai-models/qwq-32b.json +++ /dev/null @@ -1,485 +0,0 @@ -{ - "id": "02c16efa-29f5-4304-8e6c-3d188889f875", - "source": 1, - "name": "@cf/qwen/qwq-32b", - "description": "QwQ is the reasoning model of the Qwen series. Compared with conventional instruction-tuned models, QwQ, which is capable of thinking and reasoning, can achieve significantly enhanced performance in downstream tasks, especially hard problems. QwQ-32B is the medium-sized reasoning model, which is capable of achieving competitive performance against state-of-the-art reasoning models, e.g., DeepSeek-R1, o1-mini.", - "task": { - "id": "c329a1f9-323d-4e91-b2aa-582dd4188d34", - "name": "Text Generation", - "description": "Family of generative text models, such as large language models (LLM), that can be adapted for a variety of natural language tasks." - }, - "created_at": "2025-03-05 21:52:40.974", - "tags": [], - "properties": [ - { - "property_id": "context_window", - "value": "24000" - }, - { - "property_id": "price", - "value": [ - { - "unit": "per M input tokens", - "price": 0.66, - "currency": "USD" - }, - { - "unit": "per M output tokens", - "price": 1, - "currency": "USD" - } - ] - }, - { - "property_id": "lora", - "value": "true" - }, - { - "property_id": "reasoning", - "value": "true" - } - ], - "schema": { - "input": { - "type": "object", - "oneOf": [ - { - "title": "Prompt", - "properties": { - "prompt": { - "type": "string", - "minLength": 1, - "description": "The input text prompt for the model to generate a response." - }, - "guided_json": { - "type": "object", - "description": "JSON schema that should be fulfilled for the response." - }, - "raw": { - "type": "boolean", - "default": false, - "description": "If true, a chat template is not applied and you must adhere to the specific model's expected formatting." - }, - "stream": { - "type": "boolean", - "default": false, - "description": "If true, the response will be streamed back incrementally using SSE, Server Sent Events." - }, - "max_tokens": { - "type": "integer", - "default": 256, - "description": "The maximum number of tokens to generate in the response." - }, - "temperature": { - "type": "number", - "default": 0.15, - "minimum": 0, - "maximum": 5, - "description": "Controls the randomness of the output; higher values produce more random results." - }, - "top_p": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses." - }, - "top_k": { - "type": "integer", - "minimum": 1, - "maximum": 50, - "description": "Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises." - }, - "seed": { - "type": "integer", - "minimum": 1, - "maximum": 9999999999, - "description": "Random seed for reproducibility of the generation." - }, - "repetition_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Penalty for repeated tokens; higher values discourage repetition." - }, - "frequency_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Decreases the likelihood of the model repeating the same lines verbatim." - }, - "presence_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Increases the likelihood of the model introducing new topics." - } - }, - "required": [ - "prompt" - ] - }, - { - "title": "Messages", - "properties": { - "messages": { - "type": "array", - "description": "An array of message objects representing the conversation history.", - "items": { - "type": "object", - "properties": { - "role": { - "type": "string", - "description": "The role of the message sender (e.g., 'user', 'assistant', 'system', 'tool')." - }, - "tool_call_id": { - "type": "string", - "description": "The tool call id. If you don't know what to put here you can fall back to 000000001" - }, - "content": { - "oneOf": [ - { - "type": "string", - "description": "The content of the message as a string." - }, - { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "Type of the content provided" - }, - "text": { - "type": "string" - }, - "image_url": { - "type": "object", - "properties": { - "url": { - "type": "string", - "pattern": "^data:*", - "description": "image uri with data (e.g. data:image/jpeg;base64,/9j/...). HTTP URL will not be accepted" - } - } - } - } - } - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "Type of the content provided" - }, - "text": { - "type": "string" - }, - "image_url": { - "type": "object", - "properties": { - "url": { - "type": "string", - "pattern": "^data:*", - "description": "image uri with data (e.g. data:image/jpeg;base64,/9j/...). HTTP URL will not be accepted" - } - } - } - } - } - ] - } - } - } - }, - "functions": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "code": { - "type": "string" - } - }, - "required": [ - "name", - "code" - ] - } - }, - "tools": { - "type": "array", - "description": "A list of tools available for the assistant to use.", - "items": { - "type": "object", - "oneOf": [ - { - "properties": { - "name": { - "type": "string", - "description": "The name of the tool. More descriptive the better." - }, - "description": { - "type": "string", - "description": "A brief description of what the tool does." - }, - "parameters": { - "type": "object", - "description": "Schema defining the parameters accepted by the tool.", - "properties": { - "type": { - "type": "string", - "description": "The type of the parameters object (usually 'object')." - }, - "required": { - "type": "array", - "description": "List of required parameter names.", - "items": { - "type": "string" - } - }, - "properties": { - "type": "object", - "description": "Definitions of each parameter.", - "additionalProperties": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The data type of the parameter." - }, - "description": { - "type": "string", - "description": "A description of the expected parameter." - } - }, - "required": [ - "type", - "description" - ] - } - } - }, - "required": [ - "type", - "properties" - ] - } - }, - "required": [ - "name", - "description", - "parameters" - ] - }, - { - "properties": { - "type": { - "type": "string", - "description": "Specifies the type of tool (e.g., 'function')." - }, - "function": { - "type": "object", - "description": "Details of the function tool.", - "properties": { - "name": { - "type": "string", - "description": "The name of the function." - }, - "description": { - "type": "string", - "description": "A brief description of what the function does." - }, - "parameters": { - "type": "object", - "description": "Schema defining the parameters accepted by the function.", - "properties": { - "type": { - "type": "string", - "description": "The type of the parameters object (usually 'object')." - }, - "required": { - "type": "array", - "description": "List of required parameter names.", - "items": { - "type": "string" - } - }, - "properties": { - "type": "object", - "description": "Definitions of each parameter.", - "additionalProperties": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The data type of the parameter." - }, - "description": { - "type": "string", - "description": "A description of the expected parameter." - } - }, - "required": [ - "type", - "description" - ] - } - } - }, - "required": [ - "type", - "properties" - ] - } - }, - "required": [ - "name", - "description", - "parameters" - ] - } - }, - "required": [ - "type", - "function" - ] - } - ] - } - }, - "guided_json": { - "type": "object", - "description": "JSON schema that should be fufilled for the response." - }, - "raw": { - "type": "boolean", - "default": false, - "description": "If true, a chat template is not applied and you must adhere to the specific model's expected formatting." - }, - "stream": { - "type": "boolean", - "default": false, - "description": "If true, the response will be streamed back incrementally using SSE, Server Sent Events." - }, - "max_tokens": { - "type": "integer", - "default": 256, - "description": "The maximum number of tokens to generate in the response." - }, - "temperature": { - "type": "number", - "default": 0.15, - "minimum": 0, - "maximum": 5, - "description": "Controls the randomness of the output; higher values produce more random results." - }, - "top_p": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses." - }, - "top_k": { - "type": "integer", - "minimum": 1, - "maximum": 50, - "description": "Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises." - }, - "seed": { - "type": "integer", - "minimum": 1, - "maximum": 9999999999, - "description": "Random seed for reproducibility of the generation." - }, - "repetition_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Penalty for repeated tokens; higher values discourage repetition." - }, - "frequency_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Decreases the likelihood of the model repeating the same lines verbatim." - }, - "presence_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Increases the likelihood of the model introducing new topics." - } - }, - "required": [ - "messages" - ] - } - ] - }, - "output": { - "oneOf": [ - { - "type": "object", - "contentType": "application/json", - "properties": { - "response": { - "type": "string", - "description": "The generated text response from the model" - }, - "usage": { - "type": "object", - "description": "Usage statistics for the inference request", - "properties": { - "prompt_tokens": { - "type": "number", - "description": "Total number of tokens in input", - "default": 0 - }, - "completion_tokens": { - "type": "number", - "description": "Total number of tokens in output", - "default": 0 - }, - "total_tokens": { - "type": "number", - "description": "Total number of input and output tokens", - "default": 0 - } - } - }, - "tool_calls": { - "type": "array", - "description": "An array of tool calls requests made during the response generation", - "items": { - "type": "object", - "properties": { - "arguments": { - "type": "object", - "description": "The arguments passed to be passed to the tool call request" - }, - "name": { - "type": "string", - "description": "The name of the tool to be called" - } - } - } - } - }, - "required": [ - "response" - ] - }, - { - "type": "string", - "contentType": "text/event-stream", - "format": "binary" - } - ] - } - } -} \ No newline at end of file diff --git a/src/content/workers-ai-models/resnet-50.json b/src/content/workers-ai-models/resnet-50.json deleted file mode 100644 index 2431a284599b4ab..000000000000000 --- a/src/content/workers-ai-models/resnet-50.json +++ /dev/null @@ -1,73 +0,0 @@ -{ - "id": "7f9a76e1-d120-48dd-a565-101d328bbb02", - "source": 1, - "name": "@cf/microsoft/resnet-50", - "description": "50 layers deep image classification CNN trained on more than 1M images from ImageNet", - "task": { - "id": "00cd182b-bf30-4fc4-8481-84a3ab349657", - "name": "Image Classification", - "description": "Image classification models take an image input and assigns it labels or classes." - }, - "created_at": "2023-09-25 19:21:11.898", - "tags": [], - "properties": [ - { - "property_id": "price", - "value": [ - { - "unit": "per inference request", - "price": 0.0000025, - "currency": "USD" - } - ] - }, - { - "property_id": "info", - "value": "https://www.microsoft.com/en-us/research/blog/microsoft-vision-model-resnet-50-combines-web-scale-data-and-multi-task-learning-to-achieve-state-of-the-art/" - } - ], - "schema": { - "input": { - "oneOf": [ - { - "type": "string", - "format": "binary", - "description": "The image to classify" - }, - { - "type": "object", - "properties": { - "image": { - "type": "array", - "description": "An array of integers that represent the image data constrained to 8-bit unsigned integer values", - "items": { - "type": "number", - "description": "A value between 0 and 255 (unsigned 8bit)" - } - } - }, - "required": [ - "image" - ] - } - ] - }, - "output": { - "type": "array", - "contentType": "application/json", - "items": { - "type": "object", - "properties": { - "score": { - "type": "number", - "description": "A confidence value, between 0 and 1, indicating how certain the model is about the predicted label" - }, - "label": { - "type": "string", - "description": "The predicted category or class for the input image based on analysis" - } - } - } - } - } -} \ No newline at end of file diff --git a/src/content/workers-ai-models/smart-turn-v2.json b/src/content/workers-ai-models/smart-turn-v2.json deleted file mode 100644 index 279d415a1bcc7cc..000000000000000 --- a/src/content/workers-ai-models/smart-turn-v2.json +++ /dev/null @@ -1,106 +0,0 @@ -{ - "id": "fe8904cf-e20e-4884-b829-ed7cec0a01cb", - "source": 1, - "name": "@cf/pipecat-ai/smart-turn-v2", - "description": "An open source, community-driven, native audio turn detection model in 2nd version", - "task": { - "id": "ccb1ca5a-043d-41a7-8a3b-61017b2796fd", - "name": "Voice Activity Detection", - "description": "Detecting the presence or absence of human speech, used in speech processing." - }, - "created_at": "2025-08-04 10:08:04.219", - "tags": [], - "properties": [ - { - "property_id": "async_queue", - "value": "true" - }, - { - "property_id": "price", - "value": [ - { - "unit": "per audio minute", - "price": 0.00034, - "currency": "USD" - } - ] - }, - { - "property_id": "realtime", - "value": "true" - } - ], - "schema": { - "input": { - "type": "object", - "oneOf": [ - { - "properties": { - "audio": { - "type": "object", - "description": "readable stream with audio data and content-type specified for that data", - "properties": { - "body": { - "type": "object" - }, - "contentType": { - "type": "string" - } - }, - "required": [ - "body", - "contentType" - ] - }, - "dtype": { - "type": "string", - "description": "type of data PCM data that's sent to the inference server as raw array", - "enum": [ - "uint8", - "float32", - "float64" - ] - } - }, - "required": [ - "audio" - ] - }, - { - "properties": { - "audio": { - "type": "string", - "description": "base64 encoded audio data" - }, - "dtype": { - "type": "string", - "description": "type of data PCM data that's sent to the inference server as raw array", - "enum": [ - "uint8", - "float32", - "float64" - ] - } - }, - "required": [ - "audio" - ] - } - ] - }, - "output": { - "type": "object", - "contentType": "application/json", - "properties": { - "is_complete": { - "type": "boolean", - "description": "if true, end-of-turn was detected" - }, - "probability": { - "type": "number", - "description": "probability of the end-of-turn detection" - } - } - } - } -} \ No newline at end of file diff --git a/src/content/workers-ai-models/sqlcoder-7b-2.json b/src/content/workers-ai-models/sqlcoder-7b-2.json deleted file mode 100644 index f70679aed7b7a0e..000000000000000 --- a/src/content/workers-ai-models/sqlcoder-7b-2.json +++ /dev/null @@ -1,466 +0,0 @@ -{ - "id": "1dc9e589-df6b-4e66-ac9f-ceff42d64983", - "source": 1, - "name": "@cf/defog/sqlcoder-7b-2", - "description": "This model is intended to be used by non-technical users to understand data inside their SQL databases. ", - "task": { - "id": "c329a1f9-323d-4e91-b2aa-582dd4188d34", - "name": "Text Generation", - "description": "Family of generative text models, such as large language models (LLM), that can be adapted for a variety of natural language tasks." - }, - "created_at": "2024-02-27 18:18:46.095", - "tags": [], - "properties": [ - { - "property_id": "beta", - "value": "true" - }, - { - "property_id": "context_window", - "value": "10000" - }, - { - "property_id": "info", - "value": "https://huggingface.co/defog/sqlcoder-7b-2" - }, - { - "property_id": "terms", - "value": "https://creativecommons.org/licenses/by-sa/4.0/deed.en" - } - ], - "schema": { - "input": { - "type": "object", - "oneOf": [ - { - "title": "Prompt", - "properties": { - "prompt": { - "type": "string", - "minLength": 1, - "description": "The input text prompt for the model to generate a response." - }, - "lora": { - "type": "string", - "description": "Name of the LoRA (Low-Rank Adaptation) model to fine-tune the base model." - }, - "response_format": { - "title": "JSON Mode", - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_object", - "json_schema" - ] - }, - "json_schema": {} - } - }, - "raw": { - "type": "boolean", - "default": false, - "description": "If true, a chat template is not applied and you must adhere to the specific model's expected formatting." - }, - "stream": { - "type": "boolean", - "default": false, - "description": "If true, the response will be streamed back incrementally using SSE, Server Sent Events." - }, - "max_tokens": { - "type": "integer", - "default": 256, - "description": "The maximum number of tokens to generate in the response." - }, - "temperature": { - "type": "number", - "default": 0.6, - "minimum": 0, - "maximum": 5, - "description": "Controls the randomness of the output; higher values produce more random results." - }, - "top_p": { - "type": "number", - "minimum": 0.001, - "maximum": 1, - "description": "Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses." - }, - "top_k": { - "type": "integer", - "minimum": 1, - "maximum": 50, - "description": "Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises." - }, - "seed": { - "type": "integer", - "minimum": 1, - "maximum": 9999999999, - "description": "Random seed for reproducibility of the generation." - }, - "repetition_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Penalty for repeated tokens; higher values discourage repetition." - }, - "frequency_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Decreases the likelihood of the model repeating the same lines verbatim." - }, - "presence_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Increases the likelihood of the model introducing new topics." - } - }, - "required": [ - "prompt" - ] - }, - { - "title": "Messages", - "properties": { - "messages": { - "type": "array", - "description": "An array of message objects representing the conversation history.", - "items": { - "type": "object", - "properties": { - "role": { - "type": "string", - "description": "The role of the message sender (e.g., 'user', 'assistant', 'system', 'tool')." - }, - "content": { - "oneOf": [ - { - "type": "string", - "description": "The content of the message as a string." - }, - { - "type": "array", - "description": "Array of text content parts.", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "Type of the content (text)" - }, - "text": { - "type": "string", - "description": "Text content" - } - } - } - } - ] - } - }, - "required": [ - "role", - "content" - ] - } - }, - "functions": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "code": { - "type": "string" - } - }, - "required": [ - "name", - "code" - ] - } - }, - "tools": { - "type": "array", - "description": "A list of tools available for the assistant to use.", - "items": { - "type": "object", - "oneOf": [ - { - "properties": { - "name": { - "type": "string", - "description": "The name of the tool. More descriptive the better." - }, - "description": { - "type": "string", - "description": "A brief description of what the tool does." - }, - "parameters": { - "type": "object", - "description": "Schema defining the parameters accepted by the tool.", - "properties": { - "type": { - "type": "string", - "description": "The type of the parameters object (usually 'object')." - }, - "required": { - "type": "array", - "description": "List of required parameter names.", - "items": { - "type": "string" - } - }, - "properties": { - "type": "object", - "description": "Definitions of each parameter.", - "additionalProperties": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The data type of the parameter." - }, - "description": { - "type": "string", - "description": "A description of the expected parameter." - } - }, - "required": [ - "type", - "description" - ] - } - } - }, - "required": [ - "type", - "properties" - ] - } - }, - "required": [ - "name", - "description", - "parameters" - ] - }, - { - "properties": { - "type": { - "type": "string", - "description": "Specifies the type of tool (e.g., 'function')." - }, - "function": { - "type": "object", - "description": "Details of the function tool.", - "properties": { - "name": { - "type": "string", - "description": "The name of the function." - }, - "description": { - "type": "string", - "description": "A brief description of what the function does." - }, - "parameters": { - "type": "object", - "description": "Schema defining the parameters accepted by the function.", - "properties": { - "type": { - "type": "string", - "description": "The type of the parameters object (usually 'object')." - }, - "required": { - "type": "array", - "description": "List of required parameter names.", - "items": { - "type": "string" - } - }, - "properties": { - "type": "object", - "description": "Definitions of each parameter.", - "additionalProperties": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The data type of the parameter." - }, - "description": { - "type": "string", - "description": "A description of the expected parameter." - } - }, - "required": [ - "type", - "description" - ] - } - } - }, - "required": [ - "type", - "properties" - ] - } - }, - "required": [ - "name", - "description", - "parameters" - ] - } - }, - "required": [ - "type", - "function" - ] - } - ] - } - }, - "response_format": { - "title": "JSON Mode", - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_object", - "json_schema" - ] - }, - "json_schema": {} - } - }, - "raw": { - "type": "boolean", - "default": false, - "description": "If true, a chat template is not applied and you must adhere to the specific model's expected formatting." - }, - "stream": { - "type": "boolean", - "default": false, - "description": "If true, the response will be streamed back incrementally using SSE, Server Sent Events." - }, - "max_tokens": { - "type": "integer", - "default": 256, - "description": "The maximum number of tokens to generate in the response." - }, - "temperature": { - "type": "number", - "default": 0.6, - "minimum": 0, - "maximum": 5, - "description": "Controls the randomness of the output; higher values produce more random results." - }, - "top_p": { - "type": "number", - "minimum": 0.001, - "maximum": 1, - "description": "Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses." - }, - "top_k": { - "type": "integer", - "minimum": 1, - "maximum": 50, - "description": "Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises." - }, - "seed": { - "type": "integer", - "minimum": 1, - "maximum": 9999999999, - "description": "Random seed for reproducibility of the generation." - }, - "repetition_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Penalty for repeated tokens; higher values discourage repetition." - }, - "frequency_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Decreases the likelihood of the model repeating the same lines verbatim." - }, - "presence_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Increases the likelihood of the model introducing new topics." - } - }, - "required": [ - "messages" - ] - } - ] - }, - "output": { - "oneOf": [ - { - "type": "object", - "properties": { - "response": { - "type": "string", - "description": "The generated text response from the model" - }, - "usage": { - "type": "object", - "description": "Usage statistics for the inference request", - "properties": { - "prompt_tokens": { - "type": "number", - "description": "Total number of tokens in input", - "default": 0 - }, - "completion_tokens": { - "type": "number", - "description": "Total number of tokens in output", - "default": 0 - }, - "total_tokens": { - "type": "number", - "description": "Total number of input and output tokens", - "default": 0 - } - } - }, - "tool_calls": { - "type": "array", - "description": "An array of tool calls requests made during the response generation", - "items": { - "type": "object", - "properties": { - "arguments": { - "type": "object", - "description": "The arguments passed to be passed to the tool call request" - }, - "name": { - "type": "string", - "description": "The name of the tool to be called" - } - } - } - } - }, - "required": [ - "response" - ] - }, - { - "type": "string", - "format": "binary" - } - ] - } - } -} \ No newline at end of file diff --git a/src/content/workers-ai-models/stable-diffusion-v1-5-img2img.json b/src/content/workers-ai-models/stable-diffusion-v1-5-img2img.json deleted file mode 100644 index 493f47248141cf3..000000000000000 --- a/src/content/workers-ai-models/stable-diffusion-v1-5-img2img.json +++ /dev/null @@ -1,114 +0,0 @@ -{ - "id": "19547f04-7a6a-4f87-bf2c-f5e32fb12dc5", - "source": 1, - "name": "@cf/runwayml/stable-diffusion-v1-5-img2img", - "description": "Stable Diffusion is a latent text-to-image diffusion model capable of generating photo-realistic images. Img2img generate a new image from an input image with Stable Diffusion. ", - "task": { - "id": "3d6e1f35-341b-4915-a6c8-9a7142a9033a", - "name": "Text-to-Image", - "description": "Generates images from input text. These models can be used to generate and modify images based on text prompts." - }, - "created_at": "2024-02-27 17:32:28.581", - "tags": [], - "properties": [ - { - "property_id": "beta", - "value": "true" - }, - { - "property_id": "price", - "value": [ - { - "unit": "per step", - "price": 0, - "currency": "USD" - } - ] - }, - { - "property_id": "info", - "value": "https://huggingface.co/runwayml/stable-diffusion-v1-5" - }, - { - "property_id": "terms", - "value": "https://github.com/runwayml/stable-diffusion/blob/main/LICENSE" - } - ], - "schema": { - "input": { - "type": "object", - "properties": { - "prompt": { - "type": "string", - "minLength": 1, - "description": "A text description of the image you want to generate" - }, - "negative_prompt": { - "type": "string", - "description": "Text describing elements to avoid in the generated image" - }, - "height": { - "type": "integer", - "minimum": 256, - "maximum": 2048, - "description": "The height of the generated image in pixels" - }, - "width": { - "type": "integer", - "minimum": 256, - "maximum": 2048, - "description": "The width of the generated image in pixels" - }, - "image": { - "type": "array", - "description": "For use with img2img tasks. An array of integers that represent the image data constrained to 8-bit unsigned integer values", - "items": { - "type": "number", - "description": "A value between 0 and 255" - } - }, - "image_b64": { - "type": "string", - "description": "For use with img2img tasks. A base64-encoded string of the input image" - }, - "mask": { - "type": "array", - "description": "An array representing An array of integers that represent mask image data for inpainting constrained to 8-bit unsigned integer values", - "items": { - "type": "number", - "description": "A value between 0 and 255" - } - }, - "num_steps": { - "type": "integer", - "default": 20, - "maximum": 20, - "description": "The number of diffusion steps; higher values can improve quality but take longer" - }, - "strength": { - "type": "number", - "default": 1, - "description": "A value between 0 and 1 indicating how strongly to apply the transformation during img2img tasks; lower values make the output closer to the input image" - }, - "guidance": { - "type": "number", - "default": 7.5, - "description": "Controls how closely the generated image should adhere to the prompt; higher values make the image more aligned with the prompt" - }, - "seed": { - "type": "integer", - "description": "Random seed for reproducibility of the image generation" - } - }, - "required": [ - "prompt" - ] - }, - "output": { - "type": "string", - "contentType": "image/png", - "format": "binary", - "description": "The generated image in PNG format" - } - } -} \ No newline at end of file diff --git a/src/content/workers-ai-models/stable-diffusion-v1-5-inpainting.json b/src/content/workers-ai-models/stable-diffusion-v1-5-inpainting.json deleted file mode 100644 index 22188f1a18d884d..000000000000000 --- a/src/content/workers-ai-models/stable-diffusion-v1-5-inpainting.json +++ /dev/null @@ -1,114 +0,0 @@ -{ - "id": "a9abaef0-3031-47ad-8790-d311d8684c6c", - "source": 1, - "name": "@cf/runwayml/stable-diffusion-v1-5-inpainting", - "description": "Stable Diffusion Inpainting is a latent text-to-image diffusion model capable of generating photo-realistic images given any text input, with the extra capability of inpainting the pictures by using a mask.", - "task": { - "id": "3d6e1f35-341b-4915-a6c8-9a7142a9033a", - "name": "Text-to-Image", - "description": "Generates images from input text. These models can be used to generate and modify images based on text prompts." - }, - "created_at": "2024-02-27 17:23:57.528", - "tags": [], - "properties": [ - { - "property_id": "beta", - "value": "true" - }, - { - "property_id": "price", - "value": [ - { - "unit": "per step", - "price": 0, - "currency": "USD" - } - ] - }, - { - "property_id": "info", - "value": "https://huggingface.co/runwayml/stable-diffusion-inpainting" - }, - { - "property_id": "terms", - "value": "https://github.com/runwayml/stable-diffusion/blob/main/LICENSE" - } - ], - "schema": { - "input": { - "type": "object", - "properties": { - "prompt": { - "type": "string", - "minLength": 1, - "description": "A text description of the image you want to generate" - }, - "negative_prompt": { - "type": "string", - "description": "Text describing elements to avoid in the generated image" - }, - "height": { - "type": "integer", - "minimum": 256, - "maximum": 2048, - "description": "The height of the generated image in pixels" - }, - "width": { - "type": "integer", - "minimum": 256, - "maximum": 2048, - "description": "The width of the generated image in pixels" - }, - "image": { - "type": "array", - "description": "For use with img2img tasks. An array of integers that represent the image data constrained to 8-bit unsigned integer values", - "items": { - "type": "number", - "description": "A value between 0 and 255" - } - }, - "image_b64": { - "type": "string", - "description": "For use with img2img tasks. A base64-encoded string of the input image" - }, - "mask": { - "type": "array", - "description": "An array representing An array of integers that represent mask image data for inpainting constrained to 8-bit unsigned integer values", - "items": { - "type": "number", - "description": "A value between 0 and 255" - } - }, - "num_steps": { - "type": "integer", - "default": 20, - "maximum": 20, - "description": "The number of diffusion steps; higher values can improve quality but take longer" - }, - "strength": { - "type": "number", - "default": 1, - "description": "A value between 0 and 1 indicating how strongly to apply the transformation during img2img tasks; lower values make the output closer to the input image" - }, - "guidance": { - "type": "number", - "default": 7.5, - "description": "Controls how closely the generated image should adhere to the prompt; higher values make the image more aligned with the prompt" - }, - "seed": { - "type": "integer", - "description": "Random seed for reproducibility of the image generation" - } - }, - "required": [ - "prompt" - ] - }, - "output": { - "type": "string", - "contentType": "image/png", - "format": "binary", - "description": "The generated image in PNG format" - } - } -} \ No newline at end of file diff --git a/src/content/workers-ai-models/stable-diffusion-xl-base-1.0.json b/src/content/workers-ai-models/stable-diffusion-xl-base-1.0.json deleted file mode 100644 index bfeb09a16a161e0..000000000000000 --- a/src/content/workers-ai-models/stable-diffusion-xl-base-1.0.json +++ /dev/null @@ -1,114 +0,0 @@ -{ - "id": "6d52253a-b731-4a03-b203-cde2d4fae871", - "source": 1, - "name": "@cf/stabilityai/stable-diffusion-xl-base-1.0", - "description": "Diffusion-based text-to-image generative model by Stability AI. Generates and modify images based on text prompts.", - "task": { - "id": "3d6e1f35-341b-4915-a6c8-9a7142a9033a", - "name": "Text-to-Image", - "description": "Generates images from input text. These models can be used to generate and modify images based on text prompts." - }, - "created_at": "2023-11-10 10:54:43.694", - "tags": [], - "properties": [ - { - "property_id": "beta", - "value": "true" - }, - { - "property_id": "price", - "value": [ - { - "unit": "per step", - "price": 0, - "currency": "USD" - } - ] - }, - { - "property_id": "info", - "value": "https://stability.ai/stable-diffusion" - }, - { - "property_id": "terms", - "value": "https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0/blob/main/LICENSE.md" - } - ], - "schema": { - "input": { - "type": "object", - "properties": { - "prompt": { - "type": "string", - "minLength": 1, - "description": "A text description of the image you want to generate" - }, - "negative_prompt": { - "type": "string", - "description": "Text describing elements to avoid in the generated image" - }, - "height": { - "type": "integer", - "minimum": 256, - "maximum": 2048, - "description": "The height of the generated image in pixels" - }, - "width": { - "type": "integer", - "minimum": 256, - "maximum": 2048, - "description": "The width of the generated image in pixels" - }, - "image": { - "type": "array", - "description": "For use with img2img tasks. An array of integers that represent the image data constrained to 8-bit unsigned integer values", - "items": { - "type": "number", - "description": "A value between 0 and 255" - } - }, - "image_b64": { - "type": "string", - "description": "For use with img2img tasks. A base64-encoded string of the input image" - }, - "mask": { - "type": "array", - "description": "An array representing An array of integers that represent mask image data for inpainting constrained to 8-bit unsigned integer values", - "items": { - "type": "number", - "description": "A value between 0 and 255" - } - }, - "num_steps": { - "type": "integer", - "default": 20, - "maximum": 20, - "description": "The number of diffusion steps; higher values can improve quality but take longer" - }, - "strength": { - "type": "number", - "default": 1, - "description": "A value between 0 and 1 indicating how strongly to apply the transformation during img2img tasks; lower values make the output closer to the input image" - }, - "guidance": { - "type": "number", - "default": 7.5, - "description": "Controls how closely the generated image should adhere to the prompt; higher values make the image more aligned with the prompt" - }, - "seed": { - "type": "integer", - "description": "Random seed for reproducibility of the image generation" - } - }, - "required": [ - "prompt" - ] - }, - "output": { - "type": "string", - "contentType": "image/png", - "format": "binary", - "description": "The generated image in PNG format" - } - } -} \ No newline at end of file diff --git a/src/content/workers-ai-models/stable-diffusion-xl-lightning.json b/src/content/workers-ai-models/stable-diffusion-xl-lightning.json deleted file mode 100644 index 19e57d6388975d3..000000000000000 --- a/src/content/workers-ai-models/stable-diffusion-xl-lightning.json +++ /dev/null @@ -1,110 +0,0 @@ -{ - "id": "7f797b20-3eb0-44fd-b571-6cbbaa3c423b", - "source": 1, - "name": "@cf/bytedance/stable-diffusion-xl-lightning", - "description": "SDXL-Lightning is a lightning-fast text-to-image generation model. It can generate high-quality 1024px images in a few steps.", - "task": { - "id": "3d6e1f35-341b-4915-a6c8-9a7142a9033a", - "name": "Text-to-Image", - "description": "Generates images from input text. These models can be used to generate and modify images based on text prompts." - }, - "created_at": "2024-02-27 17:41:29.578", - "tags": [], - "properties": [ - { - "property_id": "beta", - "value": "true" - }, - { - "property_id": "price", - "value": [ - { - "unit": "per step", - "price": 0, - "currency": "USD" - } - ] - }, - { - "property_id": "info", - "value": "https://huggingface.co/ByteDance/SDXL-Lightning" - } - ], - "schema": { - "input": { - "type": "object", - "properties": { - "prompt": { - "type": "string", - "minLength": 1, - "description": "A text description of the image you want to generate" - }, - "negative_prompt": { - "type": "string", - "description": "Text describing elements to avoid in the generated image" - }, - "height": { - "type": "integer", - "minimum": 256, - "maximum": 2048, - "description": "The height of the generated image in pixels" - }, - "width": { - "type": "integer", - "minimum": 256, - "maximum": 2048, - "description": "The width of the generated image in pixels" - }, - "image": { - "type": "array", - "description": "For use with img2img tasks. An array of integers that represent the image data constrained to 8-bit unsigned integer values", - "items": { - "type": "number", - "description": "A value between 0 and 255" - } - }, - "image_b64": { - "type": "string", - "description": "For use with img2img tasks. A base64-encoded string of the input image" - }, - "mask": { - "type": "array", - "description": "An array representing An array of integers that represent mask image data for inpainting constrained to 8-bit unsigned integer values", - "items": { - "type": "number", - "description": "A value between 0 and 255" - } - }, - "num_steps": { - "type": "integer", - "default": 20, - "maximum": 20, - "description": "The number of diffusion steps; higher values can improve quality but take longer" - }, - "strength": { - "type": "number", - "default": 1, - "description": "A value between 0 and 1 indicating how strongly to apply the transformation during img2img tasks; lower values make the output closer to the input image" - }, - "guidance": { - "type": "number", - "default": 7.5, - "description": "Controls how closely the generated image should adhere to the prompt; higher values make the image more aligned with the prompt" - }, - "seed": { - "type": "integer", - "description": "Random seed for reproducibility of the image generation" - } - }, - "required": [ - "prompt" - ] - }, - "output": { - "type": "string", - "contentType": "image/png", - "format": "binary", - "description": "The generated image in PNG format" - } - } -} \ No newline at end of file diff --git a/src/content/workers-ai-models/starling-lm-7b-beta.json b/src/content/workers-ai-models/starling-lm-7b-beta.json deleted file mode 100644 index 46f7263402dc5a7..000000000000000 --- a/src/content/workers-ai-models/starling-lm-7b-beta.json +++ /dev/null @@ -1,478 +0,0 @@ -{ - "id": "e5ca943b-720f-4e66-aa8f-40e3d2770933", - "source": 2, - "name": "@hf/nexusflow/starling-lm-7b-beta", - "description": "We introduce Starling-LM-7B-beta, an open large language model (LLM) trained by Reinforcement Learning from AI Feedback (RLAIF). Starling-LM-7B-beta is trained from Openchat-3.5-0106 with our new reward model Nexusflow/Starling-RM-34B and policy optimization method Fine-Tuning Language Models from Human Preferences (PPO).", - "task": { - "id": "c329a1f9-323d-4e91-b2aa-582dd4188d34", - "name": "Text Generation", - "description": "Family of generative text models, such as large language models (LLM), that can be adapted for a variety of natural language tasks." - }, - "created_at": "2024-04-01 23:49:31.797", - "tags": [], - "properties": [ - { - "property_id": "beta", - "value": "true" - }, - { - "property_id": "context_window", - "value": "4096" - }, - { - "property_id": "info", - "value": "https://huggingface.co/Nexusflow/Starling-LM-7B-beta" - }, - { - "property_id": "max_batch_prefill_tokens", - "value": "8192" - }, - { - "property_id": "max_input_length", - "value": "3072" - }, - { - "property_id": "max_total_tokens", - "value": "4096" - }, - { - "property_id": "planned_deprecation_date", - "value": "2025-10-01" - } - ], - "schema": { - "input": { - "type": "object", - "oneOf": [ - { - "title": "Prompt", - "properties": { - "prompt": { - "type": "string", - "minLength": 1, - "description": "The input text prompt for the model to generate a response." - }, - "lora": { - "type": "string", - "description": "Name of the LoRA (Low-Rank Adaptation) model to fine-tune the base model." - }, - "response_format": { - "title": "JSON Mode", - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_object", - "json_schema" - ] - }, - "json_schema": {} - } - }, - "raw": { - "type": "boolean", - "default": false, - "description": "If true, a chat template is not applied and you must adhere to the specific model's expected formatting." - }, - "stream": { - "type": "boolean", - "default": false, - "description": "If true, the response will be streamed back incrementally using SSE, Server Sent Events." - }, - "max_tokens": { - "type": "integer", - "default": 256, - "description": "The maximum number of tokens to generate in the response." - }, - "temperature": { - "type": "number", - "default": 0.6, - "minimum": 0, - "maximum": 5, - "description": "Controls the randomness of the output; higher values produce more random results." - }, - "top_p": { - "type": "number", - "minimum": 0.001, - "maximum": 1, - "description": "Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses." - }, - "top_k": { - "type": "integer", - "minimum": 1, - "maximum": 50, - "description": "Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises." - }, - "seed": { - "type": "integer", - "minimum": 1, - "maximum": 9999999999, - "description": "Random seed for reproducibility of the generation." - }, - "repetition_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Penalty for repeated tokens; higher values discourage repetition." - }, - "frequency_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Decreases the likelihood of the model repeating the same lines verbatim." - }, - "presence_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Increases the likelihood of the model introducing new topics." - } - }, - "required": [ - "prompt" - ] - }, - { - "title": "Messages", - "properties": { - "messages": { - "type": "array", - "description": "An array of message objects representing the conversation history.", - "items": { - "type": "object", - "properties": { - "role": { - "type": "string", - "description": "The role of the message sender (e.g., 'user', 'assistant', 'system', 'tool')." - }, - "content": { - "oneOf": [ - { - "type": "string", - "description": "The content of the message as a string." - }, - { - "type": "array", - "description": "Array of text content parts.", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "Type of the content (text)" - }, - "text": { - "type": "string", - "description": "Text content" - } - } - } - } - ] - } - }, - "required": [ - "role", - "content" - ] - } - }, - "functions": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "code": { - "type": "string" - } - }, - "required": [ - "name", - "code" - ] - } - }, - "tools": { - "type": "array", - "description": "A list of tools available for the assistant to use.", - "items": { - "type": "object", - "oneOf": [ - { - "properties": { - "name": { - "type": "string", - "description": "The name of the tool. More descriptive the better." - }, - "description": { - "type": "string", - "description": "A brief description of what the tool does." - }, - "parameters": { - "type": "object", - "description": "Schema defining the parameters accepted by the tool.", - "properties": { - "type": { - "type": "string", - "description": "The type of the parameters object (usually 'object')." - }, - "required": { - "type": "array", - "description": "List of required parameter names.", - "items": { - "type": "string" - } - }, - "properties": { - "type": "object", - "description": "Definitions of each parameter.", - "additionalProperties": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The data type of the parameter." - }, - "description": { - "type": "string", - "description": "A description of the expected parameter." - } - }, - "required": [ - "type", - "description" - ] - } - } - }, - "required": [ - "type", - "properties" - ] - } - }, - "required": [ - "name", - "description", - "parameters" - ] - }, - { - "properties": { - "type": { - "type": "string", - "description": "Specifies the type of tool (e.g., 'function')." - }, - "function": { - "type": "object", - "description": "Details of the function tool.", - "properties": { - "name": { - "type": "string", - "description": "The name of the function." - }, - "description": { - "type": "string", - "description": "A brief description of what the function does." - }, - "parameters": { - "type": "object", - "description": "Schema defining the parameters accepted by the function.", - "properties": { - "type": { - "type": "string", - "description": "The type of the parameters object (usually 'object')." - }, - "required": { - "type": "array", - "description": "List of required parameter names.", - "items": { - "type": "string" - } - }, - "properties": { - "type": "object", - "description": "Definitions of each parameter.", - "additionalProperties": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The data type of the parameter." - }, - "description": { - "type": "string", - "description": "A description of the expected parameter." - } - }, - "required": [ - "type", - "description" - ] - } - } - }, - "required": [ - "type", - "properties" - ] - } - }, - "required": [ - "name", - "description", - "parameters" - ] - } - }, - "required": [ - "type", - "function" - ] - } - ] - } - }, - "response_format": { - "title": "JSON Mode", - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_object", - "json_schema" - ] - }, - "json_schema": {} - } - }, - "raw": { - "type": "boolean", - "default": false, - "description": "If true, a chat template is not applied and you must adhere to the specific model's expected formatting." - }, - "stream": { - "type": "boolean", - "default": false, - "description": "If true, the response will be streamed back incrementally using SSE, Server Sent Events." - }, - "max_tokens": { - "type": "integer", - "default": 256, - "description": "The maximum number of tokens to generate in the response." - }, - "temperature": { - "type": "number", - "default": 0.6, - "minimum": 0, - "maximum": 5, - "description": "Controls the randomness of the output; higher values produce more random results." - }, - "top_p": { - "type": "number", - "minimum": 0.001, - "maximum": 1, - "description": "Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses." - }, - "top_k": { - "type": "integer", - "minimum": 1, - "maximum": 50, - "description": "Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises." - }, - "seed": { - "type": "integer", - "minimum": 1, - "maximum": 9999999999, - "description": "Random seed for reproducibility of the generation." - }, - "repetition_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Penalty for repeated tokens; higher values discourage repetition." - }, - "frequency_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Decreases the likelihood of the model repeating the same lines verbatim." - }, - "presence_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Increases the likelihood of the model introducing new topics." - } - }, - "required": [ - "messages" - ] - } - ] - }, - "output": { - "oneOf": [ - { - "type": "object", - "properties": { - "response": { - "type": "string", - "description": "The generated text response from the model" - }, - "usage": { - "type": "object", - "description": "Usage statistics for the inference request", - "properties": { - "prompt_tokens": { - "type": "number", - "description": "Total number of tokens in input", - "default": 0 - }, - "completion_tokens": { - "type": "number", - "description": "Total number of tokens in output", - "default": 0 - }, - "total_tokens": { - "type": "number", - "description": "Total number of input and output tokens", - "default": 0 - } - } - }, - "tool_calls": { - "type": "array", - "description": "An array of tool calls requests made during the response generation", - "items": { - "type": "object", - "properties": { - "arguments": { - "type": "object", - "description": "The arguments passed to be passed to the tool call request" - }, - "name": { - "type": "string", - "description": "The name of the tool to be called" - } - } - } - } - }, - "required": [ - "response" - ] - }, - { - "type": "string", - "format": "binary" - } - ] - } - } -} \ No newline at end of file diff --git a/src/content/workers-ai-models/tinyllama-1.1b-chat-v1.0.json b/src/content/workers-ai-models/tinyllama-1.1b-chat-v1.0.json deleted file mode 100644 index 5cab744b8fafa2a..000000000000000 --- a/src/content/workers-ai-models/tinyllama-1.1b-chat-v1.0.json +++ /dev/null @@ -1,466 +0,0 @@ -{ - "id": "bf6ddd21-6477-4681-bbbe-24c3d5423e78", - "source": 1, - "name": "@cf/tinyllama/tinyllama-1.1b-chat-v1.0", - "description": "The TinyLlama project aims to pretrain a 1.1B Llama model on 3 trillion tokens. This is the chat model finetuned on top of TinyLlama/TinyLlama-1.1B-intermediate-step-1431k-3T.", - "task": { - "id": "c329a1f9-323d-4e91-b2aa-582dd4188d34", - "name": "Text Generation", - "description": "Family of generative text models, such as large language models (LLM), that can be adapted for a variety of natural language tasks." - }, - "created_at": "2024-02-27 18:25:37.524", - "tags": [], - "properties": [ - { - "property_id": "beta", - "value": "true" - }, - { - "property_id": "context_window", - "value": "2048" - }, - { - "property_id": "info", - "value": "https://huggingface.co/TinyLlama/TinyLlama-1.1B-Chat-v1.0" - }, - { - "property_id": "planned_deprecation_date", - "value": "2025-10-01" - } - ], - "schema": { - "input": { - "type": "object", - "oneOf": [ - { - "title": "Prompt", - "properties": { - "prompt": { - "type": "string", - "minLength": 1, - "description": "The input text prompt for the model to generate a response." - }, - "lora": { - "type": "string", - "description": "Name of the LoRA (Low-Rank Adaptation) model to fine-tune the base model." - }, - "response_format": { - "title": "JSON Mode", - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_object", - "json_schema" - ] - }, - "json_schema": {} - } - }, - "raw": { - "type": "boolean", - "default": false, - "description": "If true, a chat template is not applied and you must adhere to the specific model's expected formatting." - }, - "stream": { - "type": "boolean", - "default": false, - "description": "If true, the response will be streamed back incrementally using SSE, Server Sent Events." - }, - "max_tokens": { - "type": "integer", - "default": 256, - "description": "The maximum number of tokens to generate in the response." - }, - "temperature": { - "type": "number", - "default": 0.6, - "minimum": 0, - "maximum": 5, - "description": "Controls the randomness of the output; higher values produce more random results." - }, - "top_p": { - "type": "number", - "minimum": 0.001, - "maximum": 1, - "description": "Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses." - }, - "top_k": { - "type": "integer", - "minimum": 1, - "maximum": 50, - "description": "Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises." - }, - "seed": { - "type": "integer", - "minimum": 1, - "maximum": 9999999999, - "description": "Random seed for reproducibility of the generation." - }, - "repetition_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Penalty for repeated tokens; higher values discourage repetition." - }, - "frequency_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Decreases the likelihood of the model repeating the same lines verbatim." - }, - "presence_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Increases the likelihood of the model introducing new topics." - } - }, - "required": [ - "prompt" - ] - }, - { - "title": "Messages", - "properties": { - "messages": { - "type": "array", - "description": "An array of message objects representing the conversation history.", - "items": { - "type": "object", - "properties": { - "role": { - "type": "string", - "description": "The role of the message sender (e.g., 'user', 'assistant', 'system', 'tool')." - }, - "content": { - "oneOf": [ - { - "type": "string", - "description": "The content of the message as a string." - }, - { - "type": "array", - "description": "Array of text content parts.", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "Type of the content (text)" - }, - "text": { - "type": "string", - "description": "Text content" - } - } - } - } - ] - } - }, - "required": [ - "role", - "content" - ] - } - }, - "functions": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "code": { - "type": "string" - } - }, - "required": [ - "name", - "code" - ] - } - }, - "tools": { - "type": "array", - "description": "A list of tools available for the assistant to use.", - "items": { - "type": "object", - "oneOf": [ - { - "properties": { - "name": { - "type": "string", - "description": "The name of the tool. More descriptive the better." - }, - "description": { - "type": "string", - "description": "A brief description of what the tool does." - }, - "parameters": { - "type": "object", - "description": "Schema defining the parameters accepted by the tool.", - "properties": { - "type": { - "type": "string", - "description": "The type of the parameters object (usually 'object')." - }, - "required": { - "type": "array", - "description": "List of required parameter names.", - "items": { - "type": "string" - } - }, - "properties": { - "type": "object", - "description": "Definitions of each parameter.", - "additionalProperties": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The data type of the parameter." - }, - "description": { - "type": "string", - "description": "A description of the expected parameter." - } - }, - "required": [ - "type", - "description" - ] - } - } - }, - "required": [ - "type", - "properties" - ] - } - }, - "required": [ - "name", - "description", - "parameters" - ] - }, - { - "properties": { - "type": { - "type": "string", - "description": "Specifies the type of tool (e.g., 'function')." - }, - "function": { - "type": "object", - "description": "Details of the function tool.", - "properties": { - "name": { - "type": "string", - "description": "The name of the function." - }, - "description": { - "type": "string", - "description": "A brief description of what the function does." - }, - "parameters": { - "type": "object", - "description": "Schema defining the parameters accepted by the function.", - "properties": { - "type": { - "type": "string", - "description": "The type of the parameters object (usually 'object')." - }, - "required": { - "type": "array", - "description": "List of required parameter names.", - "items": { - "type": "string" - } - }, - "properties": { - "type": "object", - "description": "Definitions of each parameter.", - "additionalProperties": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The data type of the parameter." - }, - "description": { - "type": "string", - "description": "A description of the expected parameter." - } - }, - "required": [ - "type", - "description" - ] - } - } - }, - "required": [ - "type", - "properties" - ] - } - }, - "required": [ - "name", - "description", - "parameters" - ] - } - }, - "required": [ - "type", - "function" - ] - } - ] - } - }, - "response_format": { - "title": "JSON Mode", - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_object", - "json_schema" - ] - }, - "json_schema": {} - } - }, - "raw": { - "type": "boolean", - "default": false, - "description": "If true, a chat template is not applied and you must adhere to the specific model's expected formatting." - }, - "stream": { - "type": "boolean", - "default": false, - "description": "If true, the response will be streamed back incrementally using SSE, Server Sent Events." - }, - "max_tokens": { - "type": "integer", - "default": 256, - "description": "The maximum number of tokens to generate in the response." - }, - "temperature": { - "type": "number", - "default": 0.6, - "minimum": 0, - "maximum": 5, - "description": "Controls the randomness of the output; higher values produce more random results." - }, - "top_p": { - "type": "number", - "minimum": 0.001, - "maximum": 1, - "description": "Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses." - }, - "top_k": { - "type": "integer", - "minimum": 1, - "maximum": 50, - "description": "Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises." - }, - "seed": { - "type": "integer", - "minimum": 1, - "maximum": 9999999999, - "description": "Random seed for reproducibility of the generation." - }, - "repetition_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Penalty for repeated tokens; higher values discourage repetition." - }, - "frequency_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Decreases the likelihood of the model repeating the same lines verbatim." - }, - "presence_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Increases the likelihood of the model introducing new topics." - } - }, - "required": [ - "messages" - ] - } - ] - }, - "output": { - "oneOf": [ - { - "type": "object", - "properties": { - "response": { - "type": "string", - "description": "The generated text response from the model" - }, - "usage": { - "type": "object", - "description": "Usage statistics for the inference request", - "properties": { - "prompt_tokens": { - "type": "number", - "description": "Total number of tokens in input", - "default": 0 - }, - "completion_tokens": { - "type": "number", - "description": "Total number of tokens in output", - "default": 0 - }, - "total_tokens": { - "type": "number", - "description": "Total number of input and output tokens", - "default": 0 - } - } - }, - "tool_calls": { - "type": "array", - "description": "An array of tool calls requests made during the response generation", - "items": { - "type": "object", - "properties": { - "arguments": { - "type": "object", - "description": "The arguments passed to be passed to the tool call request" - }, - "name": { - "type": "string", - "description": "The name of the tool to be called" - } - } - } - } - }, - "required": [ - "response" - ] - }, - { - "type": "string", - "format": "binary" - } - ] - } - } -} \ No newline at end of file diff --git a/src/content/workers-ai-models/uform-gen2-qwen-500m.json b/src/content/workers-ai-models/uform-gen2-qwen-500m.json deleted file mode 100644 index 64e7d6af3de2551..000000000000000 --- a/src/content/workers-ai-models/uform-gen2-qwen-500m.json +++ /dev/null @@ -1,106 +0,0 @@ -{ - "id": "3dca5889-db3e-4973-aa0c-3a4a6bd22d29", - "source": 1, - "name": "@cf/unum/uform-gen2-qwen-500m", - "description": "UForm-Gen is a small generative vision-language model primarily designed for Image Captioning and Visual Question Answering. The model was pre-trained on the internal image captioning dataset and fine-tuned on public instructions datasets: SVIT, LVIS, VQAs datasets.", - "task": { - "id": "882a91d1-c331-4eec-bdad-834c919942a8", - "name": "Image-to-Text", - "description": "Image to text models output a text from a given image. Image captioning or optical character recognition can be considered as the most common applications of image to text." - }, - "created_at": "2024-02-27 18:28:52.485", - "tags": [], - "properties": [ - { - "property_id": "beta", - "value": "true" - }, - { - "property_id": "info", - "value": "https://www.unum.cloud/" - } - ], - "schema": { - "input": { - "oneOf": [ - { - "type": "string", - "format": "binary", - "description": "Binary string representing the image contents." - }, - { - "type": "object", - "properties": { - "prompt": { - "type": "string", - "description": "The input text prompt for the model to generate a response." - }, - "raw": { - "type": "boolean", - "default": false, - "description": "If true, a chat template is not applied and you must adhere to the specific model's expected formatting." - }, - "top_p": { - "type": "number", - "description": "Controls the creativity of the AI's responses by adjusting how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses." - }, - "top_k": { - "type": "number", - "description": "Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises." - }, - "seed": { - "type": "number", - "description": "Random seed for reproducibility of the generation." - }, - "repetition_penalty": { - "type": "number", - "description": "Penalty for repeated tokens; higher values discourage repetition." - }, - "frequency_penalty": { - "type": "number", - "description": "Decreases the likelihood of the model repeating the same lines verbatim." - }, - "presence_penalty": { - "type": "number", - "description": "Increases the likelihood of the model introducing new topics." - }, - "image": { - "oneOf": [ - { - "type": "array", - "description": "An array of integers that represent the image data constrained to 8-bit unsigned integer values", - "items": { - "type": "number", - "description": "A value between 0 and 255" - } - }, - { - "type": "string", - "format": "binary", - "description": "Binary string representing the image contents." - } - ] - }, - "max_tokens": { - "type": "integer", - "default": 512, - "description": "The maximum number of tokens to generate in the response." - } - }, - "required": [ - "image" - ] - } - ] - }, - "output": { - "type": "object", - "contentType": "application/json", - "properties": { - "description": { - "type": "string" - } - } - } - } -} \ No newline at end of file diff --git a/src/content/workers-ai-models/una-cybertron-7b-v2-bf16.json b/src/content/workers-ai-models/una-cybertron-7b-v2-bf16.json deleted file mode 100644 index 79ee822bdeec49d..000000000000000 --- a/src/content/workers-ai-models/una-cybertron-7b-v2-bf16.json +++ /dev/null @@ -1,462 +0,0 @@ -{ - "id": "b7fe7ad2-aeaf-47d2-8bfa-7a5ae22a2ab4", - "source": 1, - "name": "@cf/fblgit/una-cybertron-7b-v2-bf16", - "description": "Cybertron 7B v2 is a 7B MistralAI based model, best on it's series. It was trained with SFT, DPO and UNA (Unified Neural Alignment) on multiple datasets.", - "task": { - "id": "c329a1f9-323d-4e91-b2aa-582dd4188d34", - "name": "Text Generation", - "description": "Family of generative text models, such as large language models (LLM), that can be adapted for a variety of natural language tasks." - }, - "created_at": "2024-04-24 14:37:19.494", - "tags": [], - "properties": [ - { - "property_id": "beta", - "value": "true" - }, - { - "property_id": "context_window", - "value": "15000" - }, - { - "property_id": "planned_deprecation_date", - "value": "2025-10-01" - } - ], - "schema": { - "input": { - "type": "object", - "oneOf": [ - { - "title": "Prompt", - "properties": { - "prompt": { - "type": "string", - "minLength": 1, - "description": "The input text prompt for the model to generate a response." - }, - "lora": { - "type": "string", - "description": "Name of the LoRA (Low-Rank Adaptation) model to fine-tune the base model." - }, - "response_format": { - "title": "JSON Mode", - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_object", - "json_schema" - ] - }, - "json_schema": {} - } - }, - "raw": { - "type": "boolean", - "default": false, - "description": "If true, a chat template is not applied and you must adhere to the specific model's expected formatting." - }, - "stream": { - "type": "boolean", - "default": false, - "description": "If true, the response will be streamed back incrementally using SSE, Server Sent Events." - }, - "max_tokens": { - "type": "integer", - "default": 256, - "description": "The maximum number of tokens to generate in the response." - }, - "temperature": { - "type": "number", - "default": 0.6, - "minimum": 0, - "maximum": 5, - "description": "Controls the randomness of the output; higher values produce more random results." - }, - "top_p": { - "type": "number", - "minimum": 0.001, - "maximum": 1, - "description": "Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses." - }, - "top_k": { - "type": "integer", - "minimum": 1, - "maximum": 50, - "description": "Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises." - }, - "seed": { - "type": "integer", - "minimum": 1, - "maximum": 9999999999, - "description": "Random seed for reproducibility of the generation." - }, - "repetition_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Penalty for repeated tokens; higher values discourage repetition." - }, - "frequency_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Decreases the likelihood of the model repeating the same lines verbatim." - }, - "presence_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Increases the likelihood of the model introducing new topics." - } - }, - "required": [ - "prompt" - ] - }, - { - "title": "Messages", - "properties": { - "messages": { - "type": "array", - "description": "An array of message objects representing the conversation history.", - "items": { - "type": "object", - "properties": { - "role": { - "type": "string", - "description": "The role of the message sender (e.g., 'user', 'assistant', 'system', 'tool')." - }, - "content": { - "oneOf": [ - { - "type": "string", - "description": "The content of the message as a string." - }, - { - "type": "array", - "description": "Array of text content parts.", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "Type of the content (text)" - }, - "text": { - "type": "string", - "description": "Text content" - } - } - } - } - ] - } - }, - "required": [ - "role", - "content" - ] - } - }, - "functions": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "code": { - "type": "string" - } - }, - "required": [ - "name", - "code" - ] - } - }, - "tools": { - "type": "array", - "description": "A list of tools available for the assistant to use.", - "items": { - "type": "object", - "oneOf": [ - { - "properties": { - "name": { - "type": "string", - "description": "The name of the tool. More descriptive the better." - }, - "description": { - "type": "string", - "description": "A brief description of what the tool does." - }, - "parameters": { - "type": "object", - "description": "Schema defining the parameters accepted by the tool.", - "properties": { - "type": { - "type": "string", - "description": "The type of the parameters object (usually 'object')." - }, - "required": { - "type": "array", - "description": "List of required parameter names.", - "items": { - "type": "string" - } - }, - "properties": { - "type": "object", - "description": "Definitions of each parameter.", - "additionalProperties": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The data type of the parameter." - }, - "description": { - "type": "string", - "description": "A description of the expected parameter." - } - }, - "required": [ - "type", - "description" - ] - } - } - }, - "required": [ - "type", - "properties" - ] - } - }, - "required": [ - "name", - "description", - "parameters" - ] - }, - { - "properties": { - "type": { - "type": "string", - "description": "Specifies the type of tool (e.g., 'function')." - }, - "function": { - "type": "object", - "description": "Details of the function tool.", - "properties": { - "name": { - "type": "string", - "description": "The name of the function." - }, - "description": { - "type": "string", - "description": "A brief description of what the function does." - }, - "parameters": { - "type": "object", - "description": "Schema defining the parameters accepted by the function.", - "properties": { - "type": { - "type": "string", - "description": "The type of the parameters object (usually 'object')." - }, - "required": { - "type": "array", - "description": "List of required parameter names.", - "items": { - "type": "string" - } - }, - "properties": { - "type": "object", - "description": "Definitions of each parameter.", - "additionalProperties": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The data type of the parameter." - }, - "description": { - "type": "string", - "description": "A description of the expected parameter." - } - }, - "required": [ - "type", - "description" - ] - } - } - }, - "required": [ - "type", - "properties" - ] - } - }, - "required": [ - "name", - "description", - "parameters" - ] - } - }, - "required": [ - "type", - "function" - ] - } - ] - } - }, - "response_format": { - "title": "JSON Mode", - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_object", - "json_schema" - ] - }, - "json_schema": {} - } - }, - "raw": { - "type": "boolean", - "default": false, - "description": "If true, a chat template is not applied and you must adhere to the specific model's expected formatting." - }, - "stream": { - "type": "boolean", - "default": false, - "description": "If true, the response will be streamed back incrementally using SSE, Server Sent Events." - }, - "max_tokens": { - "type": "integer", - "default": 256, - "description": "The maximum number of tokens to generate in the response." - }, - "temperature": { - "type": "number", - "default": 0.6, - "minimum": 0, - "maximum": 5, - "description": "Controls the randomness of the output; higher values produce more random results." - }, - "top_p": { - "type": "number", - "minimum": 0.001, - "maximum": 1, - "description": "Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses." - }, - "top_k": { - "type": "integer", - "minimum": 1, - "maximum": 50, - "description": "Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises." - }, - "seed": { - "type": "integer", - "minimum": 1, - "maximum": 9999999999, - "description": "Random seed for reproducibility of the generation." - }, - "repetition_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Penalty for repeated tokens; higher values discourage repetition." - }, - "frequency_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Decreases the likelihood of the model repeating the same lines verbatim." - }, - "presence_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Increases the likelihood of the model introducing new topics." - } - }, - "required": [ - "messages" - ] - } - ] - }, - "output": { - "oneOf": [ - { - "type": "object", - "properties": { - "response": { - "type": "string", - "description": "The generated text response from the model" - }, - "usage": { - "type": "object", - "description": "Usage statistics for the inference request", - "properties": { - "prompt_tokens": { - "type": "number", - "description": "Total number of tokens in input", - "default": 0 - }, - "completion_tokens": { - "type": "number", - "description": "Total number of tokens in output", - "default": 0 - }, - "total_tokens": { - "type": "number", - "description": "Total number of input and output tokens", - "default": 0 - } - } - }, - "tool_calls": { - "type": "array", - "description": "An array of tool calls requests made during the response generation", - "items": { - "type": "object", - "properties": { - "arguments": { - "type": "object", - "description": "The arguments passed to be passed to the tool call request" - }, - "name": { - "type": "string", - "description": "The name of the tool to be called" - } - } - } - } - }, - "required": [ - "response" - ] - }, - { - "type": "string", - "format": "binary" - } - ] - } - } -} \ No newline at end of file diff --git a/src/content/workers-ai-models/whisper-large-v3-turbo.json b/src/content/workers-ai-models/whisper-large-v3-turbo.json deleted file mode 100644 index c498419f67ee685..000000000000000 --- a/src/content/workers-ai-models/whisper-large-v3-turbo.json +++ /dev/null @@ -1,207 +0,0 @@ -{ - "id": "200f0812-148c-48c1-915d-fb3277a94a08", - "source": 1, - "name": "@cf/openai/whisper-large-v3-turbo", - "description": "Whisper is a pre-trained model for automatic speech recognition (ASR) and speech translation. ", - "task": { - "id": "dfce1c48-2a81-462e-a7fd-de97ce985207", - "name": "Automatic Speech Recognition", - "description": "Automatic speech recognition (ASR) models convert a speech signal, typically an audio input, to text." - }, - "created_at": "2024-05-22 00:02:18.656", - "tags": [], - "properties": [ - { - "property_id": "async_queue", - "value": "true" - }, - { - "property_id": "price", - "value": [ - { - "unit": "per audio minute", - "price": 0.00051, - "currency": "USD" - } - ] - } - ], - "schema": { - "input": { - "type": "object", - "properties": { - "audio": { - "anyOf": [ - { - "type": "string", - "description": "Base64 encoded value of the audio data." - }, - { - "type": "object", - "properties": { - "body": { - "type": "object" - }, - "contentType": { - "type": "string" - } - } - } - ] - }, - "task": { - "type": "string", - "default": "transcribe", - "description": "Supported tasks are 'translate' or 'transcribe'." - }, - "language": { - "type": "string", - "description": "The language of the audio being transcribed or translated." - }, - "vad_filter": { - "type": "boolean", - "default": false, - "description": "Preprocess the audio with a voice activity detection model." - }, - "initial_prompt": { - "type": "string", - "description": "A text prompt to help provide context to the model on the contents of the audio." - }, - "prefix": { - "type": "string", - "description": "The prefix appended to the beginning of the output of the transcription and can guide the transcription result." - }, - "beam_size": { - "type": "integer", - "default": 5, - "description": "The number of beams to use in beam search decoding. Higher values may improve accuracy at the cost of speed." - }, - "condition_on_previous_text": { - "type": "boolean", - "default": true, - "description": "Whether to condition on previous text during transcription. Setting to false may help prevent hallucination loops." - }, - "no_speech_threshold": { - "type": "number", - "default": 0.6, - "description": "Threshold for detecting no-speech segments. Segments with no-speech probability above this value are skipped." - }, - "compression_ratio_threshold": { - "type": "number", - "default": 2.4, - "description": "Threshold for filtering out segments with high compression ratio, which often indicate repetitive or hallucinated text." - }, - "log_prob_threshold": { - "type": "number", - "default": -1, - "description": "Threshold for filtering out segments with low average log probability, indicating low confidence." - }, - "hallucination_silence_threshold": { - "type": "number", - "description": "Optional threshold (in seconds) to skip silent periods that may cause hallucinations." - } - }, - "required": [ - "audio" - ] - }, - "output": { - "type": "object", - "contentType": "application/json", - "properties": { - "transcription_info": { - "type": "object", - "properties": { - "language": { - "type": "string", - "description": "The language of the audio being transcribed or translated." - }, - "language_probability": { - "type": "number", - "description": "The confidence level or probability of the detected language being accurate, represented as a decimal between 0 and 1." - }, - "duration": { - "type": "number", - "description": "The total duration of the original audio file, in seconds." - }, - "duration_after_vad": { - "type": "number", - "description": "The duration of the audio after applying Voice Activity Detection (VAD) to remove silent or irrelevant sections, in seconds." - } - } - }, - "text": { - "type": "string", - "description": "The complete transcription of the audio." - }, - "word_count": { - "type": "number", - "description": "The total number of words in the transcription." - }, - "segments": { - "type": "array", - "items": { - "type": "object", - "properties": { - "start": { - "type": "number", - "description": "The starting time of the segment within the audio, in seconds." - }, - "end": { - "type": "number", - "description": "The ending time of the segment within the audio, in seconds." - }, - "text": { - "type": "string", - "description": "The transcription of the segment." - }, - "temperature": { - "type": "number", - "description": "The temperature used in the decoding process, controlling randomness in predictions. Lower values result in more deterministic outputs." - }, - "avg_logprob": { - "type": "number", - "description": "The average log probability of the predictions for the words in this segment, indicating overall confidence." - }, - "compression_ratio": { - "type": "number", - "description": "The compression ratio of the input to the output, measuring how much the text was compressed during the transcription process." - }, - "no_speech_prob": { - "type": "number", - "description": "The probability that the segment contains no speech, represented as a decimal between 0 and 1." - }, - "words": { - "type": "array", - "items": { - "type": "object", - "properties": { - "word": { - "type": "string", - "description": "The individual word transcribed from the audio." - }, - "start": { - "type": "number", - "description": "The starting time of the word within the audio, in seconds." - }, - "end": { - "type": "number", - "description": "The ending time of the word within the audio, in seconds." - } - } - } - } - } - } - }, - "vtt": { - "type": "string", - "description": "The transcription in WebVTT format, which includes timing and text information for use in subtitles." - } - }, - "required": [ - "text" - ] - } - } -} \ No newline at end of file diff --git a/src/content/workers-ai-models/whisper-tiny-en.json b/src/content/workers-ai-models/whisper-tiny-en.json deleted file mode 100644 index d80bd7e1bbe139f..000000000000000 --- a/src/content/workers-ai-models/whisper-tiny-en.json +++ /dev/null @@ -1,83 +0,0 @@ -{ - "id": "2169496d-9c0e-4e49-8399-c44ee66bff7d", - "source": 1, - "name": "@cf/openai/whisper-tiny-en", - "description": "Whisper is a pre-trained model for automatic speech recognition (ASR) and speech translation. Trained on 680k hours of labelled data, Whisper models demonstrate a strong ability to generalize to many datasets and domains without the need for fine-tuning. This is the English-only version of the Whisper Tiny model which was trained on the task of speech recognition.", - "task": { - "id": "dfce1c48-2a81-462e-a7fd-de97ce985207", - "name": "Automatic Speech Recognition", - "description": "Automatic speech recognition (ASR) models convert a speech signal, typically an audio input, to text." - }, - "created_at": "2024-04-22 20:59:02.731", - "tags": [], - "properties": [ - { - "property_id": "beta", - "value": "true" - } - ], - "schema": { - "input": { - "oneOf": [ - { - "type": "string", - "format": "binary" - }, - { - "type": "object", - "properties": { - "audio": { - "type": "array", - "description": "An array of integers that represent the audio data constrained to 8-bit unsigned integer values", - "items": { - "type": "number", - "description": "A value between 0 and 255" - } - } - }, - "required": [ - "audio" - ] - } - ] - }, - "output": { - "type": "object", - "contentType": "application/json", - "properties": { - "text": { - "type": "string", - "description": "The transcription" - }, - "word_count": { - "type": "number" - }, - "words": { - "type": "array", - "items": { - "type": "object", - "properties": { - "word": { - "type": "string" - }, - "start": { - "type": "number", - "description": "The second this word begins in the recording" - }, - "end": { - "type": "number", - "description": "The ending second when the word completes" - } - } - } - }, - "vtt": { - "type": "string" - } - }, - "required": [ - "text" - ] - } - } -} \ No newline at end of file diff --git a/src/content/workers-ai-models/whisper.json b/src/content/workers-ai-models/whisper.json deleted file mode 100644 index 57301421c869ebe..000000000000000 --- a/src/content/workers-ai-models/whisper.json +++ /dev/null @@ -1,93 +0,0 @@ -{ - "id": "c1c12ce4-c36a-4aa6-8da4-f63ba4b8984d", - "source": 1, - "name": "@cf/openai/whisper", - "description": "Whisper is a general-purpose speech recognition model. It is trained on a large dataset of diverse audio and is also a multitasking model that can perform multilingual speech recognition, speech translation, and language identification.", - "task": { - "id": "dfce1c48-2a81-462e-a7fd-de97ce985207", - "name": "Automatic Speech Recognition", - "description": "Automatic speech recognition (ASR) models convert a speech signal, typically an audio input, to text." - }, - "created_at": "2023-09-25 19:21:11.898", - "tags": [], - "properties": [ - { - "property_id": "price", - "value": [ - { - "unit": "per audio minute", - "price": 0.00045, - "currency": "USD" - } - ] - }, - { - "property_id": "info", - "value": "https://openai.com/research/whisper" - } - ], - "schema": { - "input": { - "oneOf": [ - { - "type": "string", - "format": "binary" - }, - { - "type": "object", - "properties": { - "audio": { - "type": "array", - "description": "An array of integers that represent the audio data constrained to 8-bit unsigned integer values", - "items": { - "type": "number", - "description": "A value between 0 and 255" - } - } - }, - "required": [ - "audio" - ] - } - ] - }, - "output": { - "type": "object", - "contentType": "application/json", - "properties": { - "text": { - "type": "string", - "description": "The transcription" - }, - "word_count": { - "type": "number" - }, - "words": { - "type": "array", - "items": { - "type": "object", - "properties": { - "word": { - "type": "string" - }, - "start": { - "type": "number", - "description": "The second this word begins in the recording" - }, - "end": { - "type": "number", - "description": "The ending second when the word completes" - } - } - } - }, - "vtt": { - "type": "string" - } - }, - "required": [ - "text" - ] - } - } -} \ No newline at end of file diff --git a/src/content/workers-ai-models/zephyr-7b-beta-awq.json b/src/content/workers-ai-models/zephyr-7b-beta-awq.json deleted file mode 100644 index 4f0e97d65804ce2..000000000000000 --- a/src/content/workers-ai-models/zephyr-7b-beta-awq.json +++ /dev/null @@ -1,466 +0,0 @@ -{ - "id": "3976bab8-3810-4ad8-8580-ab1e22de7823", - "source": 2, - "name": "@hf/thebloke/zephyr-7b-beta-awq", - "description": "Zephyr 7B Beta AWQ is an efficient, accurate and blazing-fast low-bit weight quantized Zephyr model variant.", - "task": { - "id": "c329a1f9-323d-4e91-b2aa-582dd4188d34", - "name": "Text Generation", - "description": "Family of generative text models, such as large language models (LLM), that can be adapted for a variety of natural language tasks." - }, - "created_at": "2023-11-24 00:27:15.869", - "tags": [], - "properties": [ - { - "property_id": "beta", - "value": "true" - }, - { - "property_id": "context_window", - "value": "4096" - }, - { - "property_id": "info", - "value": "https://huggingface.co/TheBloke/zephyr-7B-beta-AWQ" - }, - { - "property_id": "planned_deprecation_date", - "value": "2025-10-01" - } - ], - "schema": { - "input": { - "type": "object", - "oneOf": [ - { - "title": "Prompt", - "properties": { - "prompt": { - "type": "string", - "minLength": 1, - "description": "The input text prompt for the model to generate a response." - }, - "lora": { - "type": "string", - "description": "Name of the LoRA (Low-Rank Adaptation) model to fine-tune the base model." - }, - "response_format": { - "title": "JSON Mode", - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_object", - "json_schema" - ] - }, - "json_schema": {} - } - }, - "raw": { - "type": "boolean", - "default": false, - "description": "If true, a chat template is not applied and you must adhere to the specific model's expected formatting." - }, - "stream": { - "type": "boolean", - "default": false, - "description": "If true, the response will be streamed back incrementally using SSE, Server Sent Events." - }, - "max_tokens": { - "type": "integer", - "default": 256, - "description": "The maximum number of tokens to generate in the response." - }, - "temperature": { - "type": "number", - "default": 0.6, - "minimum": 0, - "maximum": 5, - "description": "Controls the randomness of the output; higher values produce more random results." - }, - "top_p": { - "type": "number", - "minimum": 0.001, - "maximum": 1, - "description": "Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses." - }, - "top_k": { - "type": "integer", - "minimum": 1, - "maximum": 50, - "description": "Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises." - }, - "seed": { - "type": "integer", - "minimum": 1, - "maximum": 9999999999, - "description": "Random seed for reproducibility of the generation." - }, - "repetition_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Penalty for repeated tokens; higher values discourage repetition." - }, - "frequency_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Decreases the likelihood of the model repeating the same lines verbatim." - }, - "presence_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Increases the likelihood of the model introducing new topics." - } - }, - "required": [ - "prompt" - ] - }, - { - "title": "Messages", - "properties": { - "messages": { - "type": "array", - "description": "An array of message objects representing the conversation history.", - "items": { - "type": "object", - "properties": { - "role": { - "type": "string", - "description": "The role of the message sender (e.g., 'user', 'assistant', 'system', 'tool')." - }, - "content": { - "oneOf": [ - { - "type": "string", - "description": "The content of the message as a string." - }, - { - "type": "array", - "description": "Array of text content parts.", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "Type of the content (text)" - }, - "text": { - "type": "string", - "description": "Text content" - } - } - } - } - ] - } - }, - "required": [ - "role", - "content" - ] - } - }, - "functions": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "code": { - "type": "string" - } - }, - "required": [ - "name", - "code" - ] - } - }, - "tools": { - "type": "array", - "description": "A list of tools available for the assistant to use.", - "items": { - "type": "object", - "oneOf": [ - { - "properties": { - "name": { - "type": "string", - "description": "The name of the tool. More descriptive the better." - }, - "description": { - "type": "string", - "description": "A brief description of what the tool does." - }, - "parameters": { - "type": "object", - "description": "Schema defining the parameters accepted by the tool.", - "properties": { - "type": { - "type": "string", - "description": "The type of the parameters object (usually 'object')." - }, - "required": { - "type": "array", - "description": "List of required parameter names.", - "items": { - "type": "string" - } - }, - "properties": { - "type": "object", - "description": "Definitions of each parameter.", - "additionalProperties": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The data type of the parameter." - }, - "description": { - "type": "string", - "description": "A description of the expected parameter." - } - }, - "required": [ - "type", - "description" - ] - } - } - }, - "required": [ - "type", - "properties" - ] - } - }, - "required": [ - "name", - "description", - "parameters" - ] - }, - { - "properties": { - "type": { - "type": "string", - "description": "Specifies the type of tool (e.g., 'function')." - }, - "function": { - "type": "object", - "description": "Details of the function tool.", - "properties": { - "name": { - "type": "string", - "description": "The name of the function." - }, - "description": { - "type": "string", - "description": "A brief description of what the function does." - }, - "parameters": { - "type": "object", - "description": "Schema defining the parameters accepted by the function.", - "properties": { - "type": { - "type": "string", - "description": "The type of the parameters object (usually 'object')." - }, - "required": { - "type": "array", - "description": "List of required parameter names.", - "items": { - "type": "string" - } - }, - "properties": { - "type": "object", - "description": "Definitions of each parameter.", - "additionalProperties": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The data type of the parameter." - }, - "description": { - "type": "string", - "description": "A description of the expected parameter." - } - }, - "required": [ - "type", - "description" - ] - } - } - }, - "required": [ - "type", - "properties" - ] - } - }, - "required": [ - "name", - "description", - "parameters" - ] - } - }, - "required": [ - "type", - "function" - ] - } - ] - } - }, - "response_format": { - "title": "JSON Mode", - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "json_object", - "json_schema" - ] - }, - "json_schema": {} - } - }, - "raw": { - "type": "boolean", - "default": false, - "description": "If true, a chat template is not applied and you must adhere to the specific model's expected formatting." - }, - "stream": { - "type": "boolean", - "default": false, - "description": "If true, the response will be streamed back incrementally using SSE, Server Sent Events." - }, - "max_tokens": { - "type": "integer", - "default": 256, - "description": "The maximum number of tokens to generate in the response." - }, - "temperature": { - "type": "number", - "default": 0.6, - "minimum": 0, - "maximum": 5, - "description": "Controls the randomness of the output; higher values produce more random results." - }, - "top_p": { - "type": "number", - "minimum": 0.001, - "maximum": 1, - "description": "Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses." - }, - "top_k": { - "type": "integer", - "minimum": 1, - "maximum": 50, - "description": "Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises." - }, - "seed": { - "type": "integer", - "minimum": 1, - "maximum": 9999999999, - "description": "Random seed for reproducibility of the generation." - }, - "repetition_penalty": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Penalty for repeated tokens; higher values discourage repetition." - }, - "frequency_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Decreases the likelihood of the model repeating the same lines verbatim." - }, - "presence_penalty": { - "type": "number", - "minimum": -2, - "maximum": 2, - "description": "Increases the likelihood of the model introducing new topics." - } - }, - "required": [ - "messages" - ] - } - ] - }, - "output": { - "oneOf": [ - { - "type": "object", - "properties": { - "response": { - "type": "string", - "description": "The generated text response from the model" - }, - "usage": { - "type": "object", - "description": "Usage statistics for the inference request", - "properties": { - "prompt_tokens": { - "type": "number", - "description": "Total number of tokens in input", - "default": 0 - }, - "completion_tokens": { - "type": "number", - "description": "Total number of tokens in output", - "default": 0 - }, - "total_tokens": { - "type": "number", - "description": "Total number of input and output tokens", - "default": 0 - } - } - }, - "tool_calls": { - "type": "array", - "description": "An array of tool calls requests made during the response generation", - "items": { - "type": "object", - "properties": { - "arguments": { - "type": "object", - "description": "The arguments passed to be passed to the tool call request" - }, - "name": { - "type": "string", - "description": "The name of the tool to be called" - } - } - } - } - }, - "required": [ - "response" - ] - }, - { - "type": "string", - "format": "binary" - } - ] - } - } -} \ No newline at end of file From 12adcac54a39331b8868c2d905fa35b261a03ab0 Mon Sep 17 00:00:00 2001 From: mvm Date: Thu, 30 Apr 2026 21:00:40 -0500 Subject: [PATCH 09/37] Fix: run prettier on changed files --- src/components/models/SchemaDisplayLazy.tsx | 226 +++++++++++++++----- src/content.config.ts | 23 +- src/util/model-resolver.ts | 4 +- 3 files changed, 188 insertions(+), 65 deletions(-) diff --git a/src/components/models/SchemaDisplayLazy.tsx b/src/components/models/SchemaDisplayLazy.tsx index b7a0a0e90ce6a59..39faedeb8e92db2 100644 --- a/src/components/models/SchemaDisplayLazy.tsx +++ b/src/components/models/SchemaDisplayLazy.tsx @@ -27,8 +27,18 @@ import type { SchemaRowData } from "./types"; // ── Schema processing (mirrors SchemaDisplay.astro logic) ───────────────────── const SKIP_KEYS = new Set([ - "type", "properties", "items", "required", "description", "default", - "enum", "oneOf", "anyOf", "allOf", "title", "additionalProperties", + "type", + "properties", + "items", + "required", + "description", + "default", + "enum", + "oneOf", + "anyOf", + "allOf", + "title", + "additionalProperties", ]); const shouldSkipKey = (key: string) => @@ -36,30 +46,50 @@ const shouldSkipKey = (key: string) => const defaultResolver: SchemaTreeRefDereferenceFn = (contextObject: object) => - ({ pointer }: { source: string | null; pointer: string | null }, _: unknown, currentObject?: object) => { + ( + { pointer }: { source: string | null; pointer: string | null }, + _: unknown, + currentObject?: object, + ) => { const activeObject = contextObject ?? currentObject; if (pointer === null) return null; if (pointer === "#") return activeObject; - const resolved = resolveInlineRef(activeObject as Dictionary, pointer); + const resolved = resolveInlineRef( + activeObject as Dictionary, + pointer, + ); if (resolved) return resolved; throw new ReferenceError(`Could not resolve '${pointer}'`); }; function isFlatSchema(schema: Record): boolean { if (schema.properties) return false; - const variants = (schema.oneOf || schema.anyOf) as Record[] | undefined; + const variants = (schema.oneOf || schema.anyOf) as + | Record[] + | undefined; if (variants?.some((v) => v.properties)) return false; return !!(schema.type || schema.contentType || schema.format); } function flatSchemaToRows(schema: Record): SchemaRowData[] { return Object.keys(schema).map((key, i, arr) => ({ - id: key, name: key, type: String(schema[key]), - isArray: false, isObject: false, isOneOf: false, - isOneOfChild: false, isFirstOneOfChild: false, isLastOneOfChild: false, - required: false, defaultValue: undefined, description: undefined, - enumValues: undefined, metadata: undefined, - depth: 0, isLast: i === arr.length - 1, ancestorIsLast: [], + id: key, + name: key, + type: String(schema[key]), + isArray: false, + isObject: false, + isOneOf: false, + isOneOfChild: false, + isFirstOneOfChild: false, + isLastOneOfChild: false, + required: false, + defaultValue: undefined, + description: undefined, + enumValues: undefined, + metadata: undefined, + depth: 0, + isLast: i === arr.length - 1, + ancestorIsLast: [], children: undefined, })); } @@ -78,7 +108,8 @@ function collectRows( const rawName = reg.subpath?.[reg.subpath.length - 1]; if (rawName === undefined || rawName === "") return false; const parentProperties = reg.parent?.fragment?.properties; - if (parentProperties && !(String(rawName) in (parentProperties as object))) return false; + if (parentProperties && !(String(rawName) in (parentProperties as object))) + return false; return true; }); @@ -90,7 +121,8 @@ function collectRows( const parentRequired = reg.parent?.fragment?.required; const required = Array.isArray(parentRequired) - ? (parentRequired as string[]).includes(name) : false; + ? (parentRequired as string[]).includes(name) + : false; const isArray = reg.primaryType === "array"; const isObject = reg.primaryType === "object"; @@ -101,40 +133,64 @@ function collectRows( let nullableType: string | undefined; let nullableChildDescription: string | undefined; if ((hasOneOf || hasAnyOf) && reg.children?.length === 2) { - const childTypes = reg.children.map((c) => String((c as RegularNode).primaryType ?? "")); + const childTypes = reg.children.map((c) => + String((c as RegularNode).primaryType ?? ""), + ); const nullIndex = childTypes.findIndex((t) => t === "null"); if (nullIndex !== -1) { const nonNullIndex = nullIndex === 0 ? 1 : 0; const nonNullChild = reg.children[nonNullIndex] as RegularNode; nullableType = childTypes[nonNullIndex]; - nullableChildDescription = nonNullChild.annotations?.description as string | undefined; + nullableChildDescription = nonNullChild.annotations?.description as + | string + | undefined; isNullable = true; } } const isOneOf = (hasOneOf || hasAnyOf) && !isNullable; - const type = isNullable && nullableType - ? `${nullableType} | null` - : isOneOf ? "one of" : (reg.primaryType ?? ""); + const type = + isNullable && nullableType + ? `${nullableType} | null` + : isOneOf + ? "one of" + : (reg.primaryType ?? ""); - const defaultValue = reg.annotations?.default !== undefined - ? String(reg.annotations.default) : undefined; - const description = (reg.annotations?.description as string | undefined) ?? nullableChildDescription; - const enumValues = ((reg.validations?.enum as unknown[]) ?? - ((reg.fragment as Record)?.enum as unknown[]))?.map(String); + const defaultValue = + reg.annotations?.default !== undefined + ? String(reg.annotations.default) + : undefined; + const description = + (reg.annotations?.description as string | undefined) ?? + nullableChildDescription; + const enumValues = ( + (reg.validations?.enum as unknown[]) ?? + ((reg.fragment as Record)?.enum as unknown[]) + )?.map(String); const metadata: Record = {}; const fragment = reg.fragment as Record; if (fragment) { for (const [key, value] of Object.entries(fragment)) { - if (!shouldSkipKey(key) && (typeof value === "string" || typeof value === "number" || typeof value === "boolean")) { + if ( + !shouldSkipKey(key) && + (typeof value === "string" || + typeof value === "number" || + typeof value === "boolean") + ) { metadata[key] = value; } } } if (reg.validations) { for (const [key, value] of Object.entries(reg.validations)) { - if (!shouldSkipKey(key) && key !== "enum" && (typeof value === "string" || typeof value === "number" || typeof value === "boolean")) { + if ( + !shouldSkipKey(key) && + key !== "enum" && + (typeof value === "string" || + typeof value === "number" || + typeof value === "boolean") + ) { metadata[key] = value; } } @@ -151,38 +207,70 @@ function collectRows( if (reg.children?.length && !isNullable) { if (isArray && reg.children.length === 1) { const itemsNode = reg.children[0] as RegularNode; - const itemsName = String(itemsNode.subpath?.[itemsNode.subpath.length - 1] ?? ""); + const itemsName = String( + itemsNode.subpath?.[itemsNode.subpath.length - 1] ?? "", + ); if (itemsName === "items" && itemsNode.children?.length) { - children = collectRows(itemsNode.children, depth + 1, [...ancestorIsLast, isLast], id); + children = collectRows( + itemsNode.children, + depth + 1, + [...ancestorIsLast, isLast], + id, + ); } else { - children = collectRows(reg.children, depth + 1, [...ancestorIsLast, isLast], id); + children = collectRows( + reg.children, + depth + 1, + [...ancestorIsLast, isLast], + id, + ); } } else { - children = collectRows(reg.children, depth + 1, [...ancestorIsLast, isLast], id); + children = collectRows( + reg.children, + depth + 1, + [...ancestorIsLast, isLast], + id, + ); } } let displayName = name; const parentReg = reg.parent as RegularNode | undefined; - const isOneOfChild = parentReg?.combiners?.includes(SchemaCombinerName.OneOf); - const isAnyOfChild = parentReg?.combiners?.includes(SchemaCombinerName.AnyOf); + const isOneOfChild = parentReg?.combiners?.includes( + SchemaCombinerName.OneOf, + ); + const isAnyOfChild = parentReg?.combiners?.includes( + SchemaCombinerName.AnyOf, + ); if (isOneOfChild || isAnyOfChild) { const frag = reg.fragment as Record; - const title = reg.title ?? ((reg.annotations as Record)?.title as string | undefined) ?? (frag?.title as string | undefined); + const title = + reg.title ?? + ((reg.annotations as Record)?.title as + | string + | undefined) ?? + (frag?.title as string | undefined); if (title) { displayName = title; } else { - const properties = frag?.properties as Record> | undefined; + const properties = frag?.properties as + | Record> + | undefined; const roleEnum = properties?.role?.enum as string[] | undefined; if (roleEnum && roleEnum.length === 1) { displayName = `${roleEnum[0]} message`; } else { - const nestedOneOf = frag?.oneOf as Record[] | undefined; + const nestedOneOf = frag?.oneOf as + | Record[] + | undefined; if (nestedOneOf && nestedOneOf.length > 0 && nestedOneOf[0]?.title) { displayName = `${nestedOneOf[0].title as string} format`; } else if (properties) { const props = Object.keys(properties); - displayName = props.includes("requests") ? "Batch request" : `Option ${Number(name) + 1}`; + displayName = props.includes("requests") + ? "Batch request" + : `Option ${Number(name) + 1}`; } else { displayName = `Option ${Number(name) + 1}`; } @@ -191,13 +279,24 @@ function collectRows( } rows.push({ - id, name: displayName, type, isArray, isObject, isOneOf, + id, + name: displayName, + type, + isArray, + isObject, + isOneOf, isOneOfChild: !!(isOneOfChild || isAnyOfChild), isFirstOneOfChild: !!(isOneOfChild || isAnyOfChild) && i === 0, isLastOneOfChild: !!(isOneOfChild || isAnyOfChild) && isLast, - required, defaultValue, description, enumValues, + required, + defaultValue, + description, + enumValues, metadata: Object.keys(metadata).length > 0 ? metadata : undefined, - depth, isLast, ancestorIsLast, children, + depth, + isLast, + ancestorIsLast, + children, }); } return rows; @@ -206,18 +305,32 @@ function collectRows( type SchemaVariant = { title: string; rows: SchemaRowData[] }; function processSchema(schema: Record): SchemaRowData[] { - const tree = new SchemaTree(schema, { mergeAllOf: true, refResolver: defaultResolver, maxRefDepth: 3 }); + const tree = new SchemaTree(schema, { + mergeAllOf: true, + refResolver: defaultResolver, + maxRefDepth: 3, + }); tree.populate(); - const topNodes = (tree.root.children[0] as RegularNode)?.children ?? undefined; + const topNodes = + (tree.root.children[0] as RegularNode)?.children ?? undefined; return collectRows(topNodes, 0, []); } -function getTopLevelVariants(schema: Record): SchemaVariant[] | null { - const variants = (schema.oneOf || schema.anyOf) as Record[] | undefined; +function getTopLevelVariants( + schema: Record, +): SchemaVariant[] | null { + const variants = (schema.oneOf || schema.anyOf) as + | Record[] + | undefined; if (!variants || variants.length < 2) return null; - const titled = variants.map((v, i) => ({ title: (v.title as string) || `Option ${i + 1}`, schema: v })); + const titled = variants.map((v, i) => ({ + title: (v.title as string) || `Option ${i + 1}`, + schema: v, + })); const hasRealTitle = variants.some((v) => v.title); - return hasRealTitle ? titled.map((v) => ({ title: v.title, rows: processSchema(v.schema) })) : null; + return hasRealTitle + ? titled.map((v) => ({ title: v.title, rows: processSchema(v.schema) })) + : null; } function buildDisplay(schema: Record): { @@ -229,7 +342,9 @@ function buildDisplay(schema: Record): { const variants = isFlat ? null : getTopLevelVariants(schema); const rows = isFlat ? flatSchemaToRows(schema) - : variants ? [] : processSchema(schema); + : variants + ? [] + : processSchema(schema); return { rows, variants, isFlat }; } @@ -246,7 +361,11 @@ export default function SchemaDisplayLazy({ url, title, schemaId }: Props) { | { status: "idle" } | { status: "loading" } | { status: "error"; message: string } - | { status: "ready"; rows: SchemaRowData[]; variants: SchemaVariant[] | null } + | { + status: "ready"; + rows: SchemaRowData[]; + variants: SchemaVariant[] | null; + } >({ status: "idle" }); const ref = useRef(null); @@ -286,8 +405,19 @@ export default function SchemaDisplayLazy({ url, title, schemaId }: Props) { {state.status === "idle" || state.status === "loading" ? (
- - + + Loading parameters…
diff --git a/src/content.config.ts b/src/content.config.ts index a2c10cf198ac5ee..bcddd8062898902 100644 --- a/src/content.config.ts +++ b/src/content.config.ts @@ -103,19 +103,14 @@ export const collections = { // ai-catalog: all models (catalog + Workers AI merged), card fields only. // Powers /ai/models/ index. Fetched from middlecache at build time. "ai-catalog": defineCollection({ - loader: middlecacheLoader( - "v1/workers-ai-model-catalog/ai-catalog.json", - { - parser: (fileContent: string) => { - const data = JSON.parse(fileContent) as { - models: Array<{ model_id: string }>; - }; - return Object.fromEntries( - data.models.map((m) => [m.model_id, m]), - ); - }, + loader: middlecacheLoader("v1/workers-ai-model-catalog/ai-catalog.json", { + parser: (fileContent: string) => { + const data = JSON.parse(fileContent) as { + models: Array<{ model_id: string }>; + }; + return Object.fromEntries(data.models.map((m) => [m.model_id, m])); }, - ), + }), schema: aiModelCardSchema, }), // workers-ai-catalog: legacy-only subset, card fields only. @@ -128,9 +123,7 @@ export const collections = { const data = JSON.parse(fileContent) as { models: Array<{ model_id: string }>; }; - return Object.fromEntries( - data.models.map((m) => [m.model_id, m]), - ); + return Object.fromEntries(data.models.map((m) => [m.model_id, m])); }, }, ), diff --git a/src/util/model-resolver.ts b/src/util/model-resolver.ts index bdfc58bd90d4842..b54d80bf1e8ea19 100644 --- a/src/util/model-resolver.ts +++ b/src/util/model-resolver.ts @@ -58,8 +58,8 @@ function detailToResolved(detail: AiModelDetail): ResolvedModel { // Extract filenames from full R2 paths in schema_manifest for the // "API Schemas (Raw)" section (e.g. "v1/.../sync-input.json" → "sync-input.json") - const schemaFiles = detail.schema_manifest.files.map((r2Path) => - r2Path.split("/").at(-1)!, + const schemaFiles = detail.schema_manifest.files.map( + (r2Path) => r2Path.split("/").at(-1)!, ); return { From 8a2de90da48afb185afb4ed943028753443ab9e2 Mon Sep 17 00:00:00 2001 From: mvm Date: Thu, 30 Apr 2026 21:38:35 -0500 Subject: [PATCH 10/37] Replace 149 detail.json fetches with single all-models-detail.json fetch MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - fetchAllModelDetails() downloads all-models-detail.json once via downloadToDotTempIfNotPresent (cached for the build session) - Returns a slug→ResolvedModel map; detail pages look up their model with a single O(1) map access - Throws on failure so the build fails loudly instead of silently generating index links that 404 - Both [...name].astro pages now fetch the map once with Promise.all alongside the card collection read --- src/pages/ai/models/[...name].astro | 42 ++++++------- src/pages/workers-ai/models/[...name].astro | 45 +++++++------- src/schemas/ai-model-catalog.ts | 12 ++++ src/util/model-resolver.ts | 66 ++++++++++++++------- 4 files changed, 95 insertions(+), 70 deletions(-) diff --git a/src/pages/ai/models/[...name].astro b/src/pages/ai/models/[...name].astro index 0690b18c967dff1..1b165835e4354f9 100644 --- a/src/pages/ai/models/[...name].astro +++ b/src/pages/ai/models/[...name].astro @@ -1,33 +1,27 @@ --- import type { GetStaticPaths } from "astro"; import ModelDetailPage from "~/components/models/ModelDetailPage.astro"; -import { getResolvedModels, fetchModelDetail } from "~/util/model-resolver"; +import { getResolvedModels, fetchAllModelDetails } from "~/util/model-resolver"; export const getStaticPaths = (async () => { - // Get card data to know which slugs exist - const models = await getResolvedModels(); + // One fetch for all detail data (fails loudly if middlecache is unavailable) + const [models, detailMap] = await Promise.all([ + getResolvedModels(), + fetchAllModelDetails(), + ]); - // Fetch detail.json for each model concurrently. - // The R2 path for detail.json uses the model_id with leading @ stripped - // (e.g. @cf/meta/llama → cf/meta/llama), but the URL param uses the full - // model_id (card.slug) to preserve existing URL structure. - const settled = await Promise.allSettled( - models.map(async (card) => { - const detailSlug = card.modelId.replace(/^@/, ""); - const detail = await fetchModelDetail(detailSlug); - return { card, detail }; - }), - ); - - return settled - .filter( - (r): r is PromiseFulfilledResult<{ card: (typeof models)[0]; detail: NonNullable>> }> => - r.status === "fulfilled" && r.value.detail !== null, - ) - .map(({ value: { card, detail } }) => ({ - params: { name: card.slug }, - props: { model: detail }, - })); + return models.flatMap((card) => { + // Detail map is keyed by slug with @ stripped + const detailSlug = card.modelId.replace(/^@/, ""); + const detail = detailMap.get(detailSlug); + if (!detail) { + console.warn( + `ai/models: no detail found for ${card.modelId} (slug: ${detailSlug})`, + ); + return []; + } + return [{ params: { name: card.slug }, props: { model: detail } }]; + }); }) satisfies GetStaticPaths; const { model } = Astro.props; diff --git a/src/pages/workers-ai/models/[...name].astro b/src/pages/workers-ai/models/[...name].astro index 734bb43fbd29c4f..46d454e7e401de1 100644 --- a/src/pages/workers-ai/models/[...name].astro +++ b/src/pages/workers-ai/models/[...name].astro @@ -1,34 +1,29 @@ --- import type { GetStaticPaths } from "astro"; import ModelDetailPage from "~/components/models/ModelDetailPage.astro"; -import { getLegacyModels, fetchModelDetail } from "~/util/model-resolver"; +import { getLegacyModels, fetchAllModelDetails } from "~/util/model-resolver"; export const getStaticPaths = (async () => { - // Get card data to know which slugs exist (Workers AI-only subset) - const models = await getLegacyModels(); + // One fetch for all detail data (fails loudly if middlecache is unavailable) + const [models, detailMap] = await Promise.all([ + getLegacyModels(), + fetchAllModelDetails(), + ]); - // Fetch detail.json for each model concurrently. - // Workers AI model_ids look like "@cf/meta/llama-3.1-8b-instruct". - // detail slug = model_id with leading @ stripped. - // URL slug = last segment only (e.g. "llama-3.1-8b-instruct"). - const settled = await Promise.allSettled( - models.map(async (card) => { - const detailSlug = card.modelId.replace(/^@/, ""); - const urlSlug = card.modelId.split("/").at(-1)!; - const detail = await fetchModelDetail(detailSlug); - return { card, detail, urlSlug }; - }), - ); - - return settled - .filter( - (r): r is PromiseFulfilledResult<{ card: (typeof models)[0]; detail: NonNullable>>; urlSlug: string }> => - r.status === "fulfilled" && r.value.detail !== null, - ) - .map(({ value: { detail, urlSlug } }) => ({ - params: { name: urlSlug }, - props: { model: detail }, - })); + return models.flatMap((card) => { + // Detail map is keyed by slug with @ stripped + const detailSlug = card.modelId.replace(/^@/, ""); + const detail = detailMap.get(detailSlug); + if (!detail) { + console.warn( + `workers-ai/models: no detail found for ${card.modelId} (slug: ${detailSlug})`, + ); + return []; + } + // Workers AI detail pages use short slug (last segment) as URL param + const urlSlug = card.modelId.split("/").at(-1)!; + return [{ params: { name: urlSlug }, props: { model: detail } }]; + }); }) satisfies GetStaticPaths; const { model } = Astro.props; diff --git a/src/schemas/ai-model-catalog.ts b/src/schemas/ai-model-catalog.ts index d46365e5898dffb..8fc3d36676efc2d 100644 --- a/src/schemas/ai-model-catalog.ts +++ b/src/schemas/ai-model-catalog.ts @@ -120,3 +120,15 @@ export const aiModelDetailSchema = z.object({ }); export type AiModelDetail = z.infer; + +/** + * Schema for all-models-detail.json — all models' detail data in one file, + * keyed by slug (@ stripped). Fetched once at build time. + */ +export const aiAllModelsDetailSchema = z.object({ + generated_at: z.string(), + model_count: z.number(), + models: z.record(z.string(), aiModelDetailSchema), +}); + +export type AiAllModelsDetail = z.infer; diff --git a/src/util/model-resolver.ts b/src/util/model-resolver.ts index b54d80bf1e8ea19..cef339e63434425 100644 --- a/src/util/model-resolver.ts +++ b/src/util/model-resolver.ts @@ -1,5 +1,9 @@ import { getCollection } from "astro:content"; import type { AiModelCard, AiModelDetail } from "~/schemas/ai-model-catalog"; +import { downloadToDotTempIfNotPresent } from "./custom-loaders"; +import fs from "node:fs"; +import { fileURLToPath } from "node:url"; +import { join } from "node:path"; import type { ModelCardData, ResolvedModel } from "./model-types"; @@ -9,7 +13,8 @@ export type { ResolvedModel, ModelCardData } from "./model-types"; export type { ApiMode } from "./model-types"; const MIDDLECACHE_BASE = "https://middlecache.ced.cloudflare.com/"; -const MODEL_DETAIL_BASE = `${MIDDLECACHE_BASE}v1/workers-ai-model-catalog/models/`; +const ALL_MODELS_DETAIL_PATH = + "v1/workers-ai-model-catalog/all-models-detail.json"; /** * Convert a middlecache AiModelCard to the ResolvedModel format expected by @@ -112,29 +117,48 @@ export async function getLegacyModels(): Promise { } /** - * Fetch full model detail from middlecache for a single model detail page. - * Called at build time in getStaticPaths for [...name].astro pages. + * Fetch all model detail data from middlecache in a single request. + * Returns a map of slug (@ stripped) → ResolvedModel. * - * @param slug - The detail file slug: model_id with leading @ stripped. - * e.g. "@cf/meta/llama-3.1-8b" → "cf/meta/llama-3.1-8b" - * e.g. "openai/gpt-5.4-mini" → "openai/gpt-5.4-mini" + * Uses downloadToDotTempIfNotPresent to cache the file locally for the + * build session — subsequent calls within the same build are free. + * + * Throws on failure so the build fails loudly rather than silently + * generating broken detail page links from the index. */ -export async function fetchModelDetail( - slug: string, -): Promise { - const url = `${MODEL_DETAIL_BASE}${slug}/detail.json`; - try { - const res = await fetch(url); - if (!res.ok) { - console.warn(`fetchModelDetail: ${res.status} for ${url}`); - return null; - } - const detail = (await res.json()) as AiModelDetail; - return detailToResolved(detail); - } catch (err) { - console.warn(`fetchModelDetail: failed to fetch ${url}:`, err); - return null; +export async function fetchAllModelDetails(): Promise< + Map +> { + await downloadToDotTempIfNotPresent( + `${MIDDLECACHE_BASE}${ALL_MODELS_DETAIL_PATH}`, + `middlecache/${ALL_MODELS_DETAIL_PATH}`, + ); + + const dotTmpPath = fileURLToPath(new URL("../../.tmp", import.meta.url)); + const localPath = join(dotTmpPath, "middlecache", ALL_MODELS_DETAIL_PATH); + const raw = JSON.parse(fs.readFileSync(localPath, "utf8")) as { + model_count: number; + models: Record; + }; + + if (!raw.models || typeof raw.models !== "object") { + throw new Error( + `all-models-detail.json: expected .models to be an object, got ${typeof raw.models}`, + ); } + + const map = new Map(); + for (const [slug, detail] of Object.entries(raw.models)) { + map.set(slug, detailToResolved(detail)); + } + + if (map.size === 0) { + throw new Error( + "all-models-detail.json: no models loaded — refusing to build with empty model set", + ); + } + + return map; } /** From b3f7b8295c567cae258ad49b6a0360170c99f90e Mon Sep 17 00:00:00 2001 From: mvm Date: Thu, 30 Apr 2026 22:13:32 -0500 Subject: [PATCH 11/37] Remove stale fetchModelDetail references in comments --- src/util/model-resolver.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/util/model-resolver.ts b/src/util/model-resolver.ts index cef339e63434425..b645e3743e99d67 100644 --- a/src/util/model-resolver.ts +++ b/src/util/model-resolver.ts @@ -18,8 +18,8 @@ const ALL_MODELS_DETAIL_PATH = /** * Convert a middlecache AiModelCard to the ResolvedModel format expected by - * components. Card entries don't carry schema or examples — those are fetched - * separately via fetchModelDetail for detail pages. + * components. Card entries carry card-level fields only — schema and examples + * are available via fetchAllModelDetails() for detail pages. */ function cardToResolved(card: AiModelCard): ResolvedModel { return { @@ -32,7 +32,7 @@ function cardToResolved(card: AiModelCard): ResolvedModel { displayName: card.display_name, description: card.description, task: card.task, - // Schema is not present in card data. Detail pages call fetchModelDetail. + // Schema is not present in card data — detail pages use fetchAllModelDetails(). schema: { input: {}, output: {} }, apiModes: undefined, tags: card.tags, From 1731d1d81d023248fdf0d0cdd67c9dc999006a39 Mon Sep 17 00:00:00 2001 From: mvm Date: Thu, 30 Apr 2026 23:06:03 -0500 Subject: [PATCH 12/37] Fix: stub @stoplight/json-schema-merge-allof for browser builds MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The package uses require() at module level — it's CJS-only and breaks when @stoplight/json-schema-tree is imported client-side. Since none of the AI model schemas use allOf, a no-op stub (return schema unchanged) is safe. The real package still runs in Node for build-time SSG usage. --- astro.config.ts | 6 ++++++ src/util/merge-allof-stub.ts | 17 +++++++++++++++++ 2 files changed, 23 insertions(+) create mode 100644 src/util/merge-allof-stub.ts diff --git a/astro.config.ts b/astro.config.ts index 805bddcf77954f4..d4a83711b6c0406 100644 --- a/astro.config.ts +++ b/astro.config.ts @@ -255,6 +255,12 @@ export default defineConfig({ vite: { resolve: { alias: { + // @stoplight/json-schema-merge-allof uses require() at module level + // and is CJS-only. Since no AI model schemas use allOf, stub it out + // for browser builds. The real package still runs in Node (SSG). + "@stoplight/json-schema-merge-allof": fileURLToPath( + new URL("./src/util/merge-allof-stub.ts", import.meta.url), + ), "./Page.astro": fileURLToPath( new URL("./src/components/overrides/Page.astro", import.meta.url), ), diff --git a/src/util/merge-allof-stub.ts b/src/util/merge-allof-stub.ts new file mode 100644 index 000000000000000..f31fd4f7d11fffe --- /dev/null +++ b/src/util/merge-allof-stub.ts @@ -0,0 +1,17 @@ +/** + * Browser stub for @stoplight/json-schema-merge-allof. + * + * The real package uses require() and is CJS-only — it can't run in the + * browser. Since none of the AI model schemas use allOf, a no-op stub is + * safe: just return the schema unchanged. + */ + +// eslint-disable-next-line @typescript-eslint/no-explicit-any +function mergeAllOf(schema: any): any { + return schema; +} + +mergeAllOf.stoplightResolvers = {}; + +export default mergeAllOf; +export { mergeAllOf }; From c82fb901904b06a33115029815e30bf8810e7c8a Mon Sep 17 00:00:00 2001 From: mvm Date: Thu, 30 Apr 2026 23:15:16 -0500 Subject: [PATCH 13/37] Fetch pre-processed schema rows from middlecache instead of raw schema SchemaDisplayLazy now fetches .rows.json (pre-processed SchemaRowData[]) instead of raw schema + running @stoplight/json-schema-tree client-side. The CJS library runs in Node at pipeline time; the browser just receives plain JSON and renders it directly via SchemaTree. - SchemaDisplayLazy: simplified to fetch RowsPayload and render; no more json-schema-tree dependency in browser bundle - ModelDetailPage: use .rows.json URLs for lazy Parameters rendering - worker/index.ts + middleware: extend regex to also proxy .rows.json - astro.config.ts: remove @stoplight/json-schema-merge-allof alias - src/util/merge-allof-stub.ts: deleted (no longer needed) --- astro.config.ts | 6 - src/components/models/ModelDetailPage.astro | 107 ++++-- src/components/models/SchemaDisplayLazy.tsx | 370 +------------------- src/middleware/index.ts | 2 +- src/util/merge-allof-stub.ts | 17 - worker/index.ts | 2 +- 6 files changed, 97 insertions(+), 407 deletions(-) delete mode 100644 src/util/merge-allof-stub.ts diff --git a/astro.config.ts b/astro.config.ts index d4a83711b6c0406..805bddcf77954f4 100644 --- a/astro.config.ts +++ b/astro.config.ts @@ -255,12 +255,6 @@ export default defineConfig({ vite: { resolve: { alias: { - // @stoplight/json-schema-merge-allof uses require() at module level - // and is CJS-only. Since no AI model schemas use allOf, stub it out - // for browser builds. The real package still runs in Node (SSG). - "@stoplight/json-schema-merge-allof": fileURLToPath( - new URL("./src/util/merge-allof-stub.ts", import.meta.url), - ), "./Page.astro": fileURLToPath( new URL("./src/components/overrides/Page.astro", import.meta.url), ), diff --git a/src/components/models/ModelDetailPage.astro b/src/components/models/ModelDetailPage.astro index 721cee29429f8b9..482d3c728317578 100644 --- a/src/components/models/ModelDetailPage.astro +++ b/src/components/models/ModelDetailPage.astro @@ -168,27 +168,28 @@ const hasSchemaFiles = // schema file URLs (lazy client-side fetch). const hasParameters = hasSchema || hasSchemaFiles; -// For lazy loading, derive input/output schema URLs from schemaFiles. -// We show the primary input + output for the Parameters section. -// For multi-mode models (sync/streaming/batch), use sync-input/output as the primary. -// For flat models, use schema-input/output. -const inputSchemaFile = model.schemaFiles?.find((f) => - f.endsWith("sync-input.json") || f.endsWith("schema-input.json") -) ?? model.schemaFiles?.[0]; -const outputSchemaFile = model.schemaFiles?.find((f) => - f.endsWith("sync-output.json") || f.endsWith("schema-output.json") -) ?? model.schemaFiles?.[1]; +// For lazy loading, find the pre-processed .rows.json files from schemaFiles. +// Use sync-input/output for multi-mode models, schema-input/output for flat. +// schemaFiles contains both .json and .rows.json paths. +const inputRowsFile = model.schemaFiles?.find( + (f) => + f.endsWith("sync-input.rows.json") || f.endsWith("schema-input.rows.json"), +); +const outputRowsFile = model.schemaFiles?.find( + (f) => + f.endsWith("sync-output.rows.json") || + f.endsWith("schema-output.rows.json"), +); // schemaFiles stores full R2 paths; the worker proxies them at the URL path segment -// e.g. "v1/workers-ai-model-catalog/workers-ai/models/llama/sync-input.json" -// → URL: "/workers-ai/models/llama/sync-input.json" +// e.g. "v1/workers-ai-model-catalog/workers-ai/models/llama/sync-input.rows.json" +// → URL: "/workers-ai/models/llama/sync-input.rows.json" function r2PathToUrl(r2Path: string | undefined): string | undefined { if (!r2Path) return undefined; - // Strip the "v1/workers-ai-model-catalog" prefix to get the proxied URL path return r2Path.replace(/^v1\/workers-ai-model-catalog/, ""); } -const inputSchemaUrl = r2PathToUrl(inputSchemaFile); -const outputSchemaUrl = r2PathToUrl(outputSchemaFile); +const inputRowsUrl = r2PathToUrl(inputRowsFile); +const outputRowsUrl = r2PathToUrl(outputRowsFile); // Derive a human-readable label from a schema filename. // e.g. "sync-input.json" → "Synchronous · Input" @@ -238,8 +239,12 @@ const starlightPageProps = { hasRemainingExamples ? { depth: 2, slug: "Examples", text: "Examples" } : false, - hasParameters ? { depth: 2, slug: "Parameters", text: "Parameters" } : false, - hasSchemaFiles ? { depth: 2, slug: "API-Schemas", text: "API Schemas (Raw)" } : false, + hasParameters + ? { depth: 2, slug: "Parameters", text: "Parameters" } + : false, + hasSchemaFiles + ? { depth: 2, slug: "API-Schemas", text: "API Schemas (Raw)" } + : false, ].filter((v) => Boolean(v)) as MarkdownHeading[], hideTitle: true, } as StarlightPageProps; @@ -396,8 +401,8 @@ const starlightPageProps = { } { - hasParameters && ( - hasSchema && model.apiModes && model.apiModes.length > 1 ? ( + hasParameters && + (hasSchema && model.apiModes && model.apiModes.length > 1 ? ( <>

Parameters

@@ -506,14 +511,14 @@ const starlightPageProps = { ) : ( - /* Lazy: fetch schema from R2 via worker proxy when user scrolls to section */ + /* Lazy: fetch pre-processed rows from R2 when user scrolls to section */ <>

Parameters

- {inputSchemaUrl ? ( + {inputRowsUrl ? ( - {outputSchemaUrl ? ( + {outputRowsUrl ? ( - ) - ) + )) } { @@ -547,10 +551,55 @@ const starlightPageProps = {
{model.schemaFiles!.map((filename) => (
- {schemaFileLabel(filename)} + + {schemaFileLabel(filename)} + - - + + + + + + + + + + + + + +
))} diff --git a/src/components/models/SchemaDisplayLazy.tsx b/src/components/models/SchemaDisplayLazy.tsx index 39faedeb8e92db2..bcda3fd163cfe25 100644 --- a/src/components/models/SchemaDisplayLazy.tsx +++ b/src/components/models/SchemaDisplayLazy.tsx @@ -1,355 +1,28 @@ /** - * SchemaDisplayLazy — client-side schema fetcher + renderer. + * SchemaDisplayLazy — client-side schema rows fetcher + renderer. * - * Accepts a URL to a raw JSON Schema file (served from R2 via the worker proxy), - * fetches it when the component becomes visible, processes it with - * @stoplight/json-schema-tree (same logic as SchemaDisplay.astro), and renders - * the result via SchemaTree / SchemaVariantSelector. + * Fetches pre-processed SchemaRowData[] from a .rows.json file served + * from R2 via the worker proxy, then renders via SchemaTree / + * SchemaVariantSelector. Schema processing (json-schema-tree) is done + * at pipeline build time in the middlecache, not in the browser. * - * This avoids fetching schema files at build time, keeping build fast. + * The URL passed in should be the .rows.json path, e.g.: + * /workers-ai/models/llama/sync-input.rows.json */ import { useState, useEffect, useRef } from "react"; -import { - SchemaTree, - SchemaCombinerName, - type SchemaNode, - type RegularNode, - type SchemaTreeRefDereferenceFn, -} from "@stoplight/json-schema-tree"; -import { type Dictionary } from "@stoplight/types"; -import { resolveInlineRef } from "@stoplight/json"; - import SchemaTreeView from "./SchemaTree.tsx"; import SchemaVariantSelector from "./SchemaVariantSelector.tsx"; import type { SchemaRowData } from "./types"; -// ── Schema processing (mirrors SchemaDisplay.astro logic) ───────────────────── - -const SKIP_KEYS = new Set([ - "type", - "properties", - "items", - "required", - "description", - "default", - "enum", - "oneOf", - "anyOf", - "allOf", - "title", - "additionalProperties", -]); - -const shouldSkipKey = (key: string) => - SKIP_KEYS.has(key) || key.startsWith("$") || key.startsWith("x-"); - -const defaultResolver: SchemaTreeRefDereferenceFn = - (contextObject: object) => - ( - { pointer }: { source: string | null; pointer: string | null }, - _: unknown, - currentObject?: object, - ) => { - const activeObject = contextObject ?? currentObject; - if (pointer === null) return null; - if (pointer === "#") return activeObject; - const resolved = resolveInlineRef( - activeObject as Dictionary, - pointer, - ); - if (resolved) return resolved; - throw new ReferenceError(`Could not resolve '${pointer}'`); - }; - -function isFlatSchema(schema: Record): boolean { - if (schema.properties) return false; - const variants = (schema.oneOf || schema.anyOf) as - | Record[] - | undefined; - if (variants?.some((v) => v.properties)) return false; - return !!(schema.type || schema.contentType || schema.format); -} - -function flatSchemaToRows(schema: Record): SchemaRowData[] { - return Object.keys(schema).map((key, i, arr) => ({ - id: key, - name: key, - type: String(schema[key]), - isArray: false, - isObject: false, - isOneOf: false, - isOneOfChild: false, - isFirstOneOfChild: false, - isLastOneOfChild: false, - required: false, - defaultValue: undefined, - description: undefined, - enumValues: undefined, - metadata: undefined, - depth: 0, - isLast: i === arr.length - 1, - ancestorIsLast: [], - children: undefined, - })); -} - -function collectRows( - nodes: SchemaNode[] | undefined, - depth: number, - ancestorIsLast: boolean[], - parentPath = "", -): SchemaRowData[] { - if (!nodes) return []; - const rows: SchemaRowData[] = []; - - const validNodes = nodes.filter((node) => { - const reg = node as RegularNode; - const rawName = reg.subpath?.[reg.subpath.length - 1]; - if (rawName === undefined || rawName === "") return false; - const parentProperties = reg.parent?.fragment?.properties; - if (parentProperties && !(String(rawName) in (parentProperties as object))) - return false; - return true; - }); - - for (let i = 0; i < validNodes.length; i++) { - const reg = validNodes[i] as RegularNode; - const name = String(reg.subpath?.[reg.subpath.length - 1] ?? ""); - const isLast = i === validNodes.length - 1; - const id = parentPath ? `${parentPath}.${name}` : name; - - const parentRequired = reg.parent?.fragment?.required; - const required = Array.isArray(parentRequired) - ? (parentRequired as string[]).includes(name) - : false; - - const isArray = reg.primaryType === "array"; - const isObject = reg.primaryType === "object"; - const hasOneOf = reg.combiners?.includes(SchemaCombinerName.OneOf) ?? false; - const hasAnyOf = reg.combiners?.includes(SchemaCombinerName.AnyOf) ?? false; - - let isNullable = false; - let nullableType: string | undefined; - let nullableChildDescription: string | undefined; - if ((hasOneOf || hasAnyOf) && reg.children?.length === 2) { - const childTypes = reg.children.map((c) => - String((c as RegularNode).primaryType ?? ""), - ); - const nullIndex = childTypes.findIndex((t) => t === "null"); - if (nullIndex !== -1) { - const nonNullIndex = nullIndex === 0 ? 1 : 0; - const nonNullChild = reg.children[nonNullIndex] as RegularNode; - nullableType = childTypes[nonNullIndex]; - nullableChildDescription = nonNullChild.annotations?.description as - | string - | undefined; - isNullable = true; - } - } - - const isOneOf = (hasOneOf || hasAnyOf) && !isNullable; - const type = - isNullable && nullableType - ? `${nullableType} | null` - : isOneOf - ? "one of" - : (reg.primaryType ?? ""); - - const defaultValue = - reg.annotations?.default !== undefined - ? String(reg.annotations.default) - : undefined; - const description = - (reg.annotations?.description as string | undefined) ?? - nullableChildDescription; - const enumValues = ( - (reg.validations?.enum as unknown[]) ?? - ((reg.fragment as Record)?.enum as unknown[]) - )?.map(String); - - const metadata: Record = {}; - const fragment = reg.fragment as Record; - if (fragment) { - for (const [key, value] of Object.entries(fragment)) { - if ( - !shouldSkipKey(key) && - (typeof value === "string" || - typeof value === "number" || - typeof value === "boolean") - ) { - metadata[key] = value; - } - } - } - if (reg.validations) { - for (const [key, value] of Object.entries(reg.validations)) { - if ( - !shouldSkipKey(key) && - key !== "enum" && - (typeof value === "string" || - typeof value === "number" || - typeof value === "boolean") - ) { - metadata[key] = value; - } - } - } - if (isArray && reg.children?.length === 1) { - const itemsNode = reg.children[0] as RegularNode; - const itemsFragment = itemsNode.fragment as Record; - if (itemsFragment?.format && typeof itemsFragment.format === "string") { - metadata["format"] = itemsFragment.format; - } - } - - let children: SchemaRowData[] | undefined; - if (reg.children?.length && !isNullable) { - if (isArray && reg.children.length === 1) { - const itemsNode = reg.children[0] as RegularNode; - const itemsName = String( - itemsNode.subpath?.[itemsNode.subpath.length - 1] ?? "", - ); - if (itemsName === "items" && itemsNode.children?.length) { - children = collectRows( - itemsNode.children, - depth + 1, - [...ancestorIsLast, isLast], - id, - ); - } else { - children = collectRows( - reg.children, - depth + 1, - [...ancestorIsLast, isLast], - id, - ); - } - } else { - children = collectRows( - reg.children, - depth + 1, - [...ancestorIsLast, isLast], - id, - ); - } - } - - let displayName = name; - const parentReg = reg.parent as RegularNode | undefined; - const isOneOfChild = parentReg?.combiners?.includes( - SchemaCombinerName.OneOf, - ); - const isAnyOfChild = parentReg?.combiners?.includes( - SchemaCombinerName.AnyOf, - ); - if (isOneOfChild || isAnyOfChild) { - const frag = reg.fragment as Record; - const title = - reg.title ?? - ((reg.annotations as Record)?.title as - | string - | undefined) ?? - (frag?.title as string | undefined); - if (title) { - displayName = title; - } else { - const properties = frag?.properties as - | Record> - | undefined; - const roleEnum = properties?.role?.enum as string[] | undefined; - if (roleEnum && roleEnum.length === 1) { - displayName = `${roleEnum[0]} message`; - } else { - const nestedOneOf = frag?.oneOf as - | Record[] - | undefined; - if (nestedOneOf && nestedOneOf.length > 0 && nestedOneOf[0]?.title) { - displayName = `${nestedOneOf[0].title as string} format`; - } else if (properties) { - const props = Object.keys(properties); - displayName = props.includes("requests") - ? "Batch request" - : `Option ${Number(name) + 1}`; - } else { - displayName = `Option ${Number(name) + 1}`; - } - } - } - } - - rows.push({ - id, - name: displayName, - type, - isArray, - isObject, - isOneOf, - isOneOfChild: !!(isOneOfChild || isAnyOfChild), - isFirstOneOfChild: !!(isOneOfChild || isAnyOfChild) && i === 0, - isLastOneOfChild: !!(isOneOfChild || isAnyOfChild) && isLast, - required, - defaultValue, - description, - enumValues, - metadata: Object.keys(metadata).length > 0 ? metadata : undefined, - depth, - isLast, - ancestorIsLast, - children, - }); - } - return rows; -} - type SchemaVariant = { title: string; rows: SchemaRowData[] }; -function processSchema(schema: Record): SchemaRowData[] { - const tree = new SchemaTree(schema, { - mergeAllOf: true, - refResolver: defaultResolver, - maxRefDepth: 3, - }); - tree.populate(); - const topNodes = - (tree.root.children[0] as RegularNode)?.children ?? undefined; - return collectRows(topNodes, 0, []); -} - -function getTopLevelVariants( - schema: Record, -): SchemaVariant[] | null { - const variants = (schema.oneOf || schema.anyOf) as - | Record[] - | undefined; - if (!variants || variants.length < 2) return null; - const titled = variants.map((v, i) => ({ - title: (v.title as string) || `Option ${i + 1}`, - schema: v, - })); - const hasRealTitle = variants.some((v) => v.title); - return hasRealTitle - ? titled.map((v) => ({ title: v.title, rows: processSchema(v.schema) })) - : null; -} - -function buildDisplay(schema: Record): { +interface RowsPayload { rows: SchemaRowData[]; variants: SchemaVariant[] | null; isFlat: boolean; -} { - const isFlat = isFlatSchema(schema); - const variants = isFlat ? null : getTopLevelVariants(schema); - const rows = isFlat - ? flatSchemaToRows(schema) - : variants - ? [] - : processSchema(schema); - return { rows, variants, isFlat }; } -// ── Component ───────────────────────────────────────────────────────────────── - interface Props { url: string; title: "Input" | "Output"; @@ -360,12 +33,8 @@ export default function SchemaDisplayLazy({ url, title, schemaId }: Props) { const [state, setState] = useState< | { status: "idle" } | { status: "loading" } - | { status: "error"; message: string } - | { - status: "ready"; - rows: SchemaRowData[]; - variants: SchemaVariant[] | null; - } + | { status: "error" } + | { status: "ready"; payload: RowsPayload } >({ status: "idle" }); const ref = useRef(null); @@ -383,15 +52,10 @@ export default function SchemaDisplayLazy({ url, title, schemaId }: Props) { fetch(url) .then((r) => { if (!r.ok) throw new Error(`HTTP ${r.status}`); - return r.json() as Promise>; - }) - .then((schema) => { - const { rows, variants } = buildDisplay(schema); - setState({ status: "ready", rows, variants }); + return r.json() as Promise; }) - .catch((err) => { - setState({ status: "error", message: String(err) }); - }); + .then((payload) => setState({ status: "ready", payload })) + .catch(() => setState({ status: "error" })); } }, { rootMargin: "200px" }, @@ -425,19 +89,19 @@ export default function SchemaDisplayLazy({ url, title, schemaId }: Props) {

Could not load schema.

- ) : state.variants && state.variants.length > 0 ? ( + ) : state.payload.variants && state.payload.variants.length > 0 ? ( - ) : state.rows.length === 0 ? ( + ) : state.payload.rows.length === 0 ? (

No parameters defined.

) : ( diff --git a/src/middleware/index.ts b/src/middleware/index.ts index adf8fc86b8c05e9..9682296e2afa349 100644 --- a/src/middleware/index.ts +++ b/src/middleware/index.ts @@ -3,7 +3,7 @@ import { defineMiddleware } from "astro:middleware"; const MIDDLECACHE_BASE = "https://middlecache.ced.cloudflare.com/"; const AI_MODEL_SCHEMA_R2_PREFIX = "v1/workers-ai-model-catalog"; const SCHEMA_FILE_RE = - /^\/(ai|workers-ai)\/models\/.+\/((?:sync|streaming|batch|schema)-(?:input|output))\.json$/; + /^\/(ai|workers-ai)\/models\/.+\/((?:sync|streaming|batch|schema)-(?:input|output))\.(?:json|rows\.json)$/; // `astro dev` only middleware so that `/api/...` links can be viewed, // and so that AI model schema JSON files are proxied from middlecache diff --git a/src/util/merge-allof-stub.ts b/src/util/merge-allof-stub.ts deleted file mode 100644 index f31fd4f7d11fffe..000000000000000 --- a/src/util/merge-allof-stub.ts +++ /dev/null @@ -1,17 +0,0 @@ -/** - * Browser stub for @stoplight/json-schema-merge-allof. - * - * The real package uses require() and is CJS-only — it can't run in the - * browser. Since none of the AI model schemas use allOf, a no-op stub is - * safe: just return the schema unchanged. - */ - -// eslint-disable-next-line @typescript-eslint/no-explicit-any -function mergeAllOf(schema: any): any { - return schema; -} - -mergeAllOf.stoplightResolvers = {}; - -export default mergeAllOf; -export { mergeAllOf }; diff --git a/worker/index.ts b/worker/index.ts index 962adedce034300..d48452d881e7029 100644 --- a/worker/index.ts +++ b/worker/index.ts @@ -16,7 +16,7 @@ const AI_MODEL_SCHEMA_R2_PREFIX = "v1/workers-ai-model-catalog"; // v1/workers-ai-model-catalog/ai/models//-input.json // and likewise for /workers-ai/models//-input.json. const SCHEMA_FILE_RE = - /^\/(ai|workers-ai)\/models\/.+\/((?:sync|streaming|batch|schema)-(?:input|output))\.json$/; + /^\/(ai|workers-ai)\/models\/.+\/((?:sync|streaming|batch|schema)-(?:input|output))\.(?:json|rows\.json)$/; // RFC 9727 requires the path to be exactly /.well-known/api-catalog with no // extension. The Cloudflare ASSETS binding cannot serve extensionless files From 791401d548ba048bf18c41dde7183be08fc288c4 Mon Sep 17 00:00:00 2001 From: mvm Date: Fri, 1 May 2026 09:09:13 -0500 Subject: [PATCH 14/37] Consolidate schema files: single models/ dir, parameters.json per model MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - All schema files now live under /ai/models/{slug}/ for both catalog and legacy models — schemaBasePath uses r2Slug (@ stripped) for all - parameters.json replaces multiple .rows.json files: single fetch contains pre-processed SchemaRowData for all modes - SchemaDisplayLazy updated to fetch parameters.json and render both flat (input/output tabs) and multi-mode (primary mode tabs) layouts - Worker proxy + dev middleware simplified: single regex for /ai/models//(parameters.json|{mode}-{dir}.json) → R2 models// - schema_manifest.{parameters_json, raw_files} shape consumed correctly - No workers-ai URL changes — page URLs unchanged, just schema fetch paths --- src/components/models/ModelDetailPage.astro | 85 +++------- src/components/models/SchemaDisplayLazy.tsx | 169 ++++++++++++++++---- src/middleware/index.ts | 10 +- src/schemas/ai-model-catalog.ts | 7 +- src/util/model-resolver.ts | 9 +- src/util/model-types.ts | 8 +- worker/index.ts | 25 +-- 7 files changed, 197 insertions(+), 116 deletions(-) diff --git a/src/components/models/ModelDetailPage.astro b/src/components/models/ModelDetailPage.astro index 482d3c728317578..3f2ba0134bedbad 100644 --- a/src/components/models/ModelDetailPage.astro +++ b/src/components/models/ModelDetailPage.astro @@ -159,37 +159,25 @@ const hasSupportedLanguages = model.name === "@cf/deepgram/nova-3"; const hasSchema = model.schema.input && Object.keys(model.schema.input).length > 0; -// Schema files populated from schema_manifest in detail.json. -// Used for both "API Schemas (Raw)" download links and lazy Parameters rendering. +// Schema files (raw_files) populated from schema_manifest — used for download links. +// parameters.json — single file with pre-processed rows for all modes, fetched lazily. const hasSchemaFiles = model.schemaFiles != null && model.schemaFiles.length > 0; -// Parameters section is shown when we have schema content (build-time) OR -// schema file URLs (lazy client-side fetch). +// Parameters section is shown when we have build-time schema OR schemaFiles for lazy fetch. const hasParameters = hasSchema || hasSchemaFiles; -// For lazy loading, find the pre-processed .rows.json files from schemaFiles. -// Use sync-input/output for multi-mode models, schema-input/output for flat. -// schemaFiles contains both .json and .rows.json paths. -const inputRowsFile = model.schemaFiles?.find( - (f) => - f.endsWith("sync-input.rows.json") || f.endsWith("schema-input.rows.json"), -); -const outputRowsFile = model.schemaFiles?.find( - (f) => - f.endsWith("sync-output.rows.json") || - f.endsWith("schema-output.rows.json"), -); - -// schemaFiles stores full R2 paths; the worker proxies them at the URL path segment -// e.g. "v1/workers-ai-model-catalog/workers-ai/models/llama/sync-input.rows.json" -// → URL: "/workers-ai/models/llama/sync-input.rows.json" -function r2PathToUrl(r2Path: string | undefined): string | undefined { - if (!r2Path) return undefined; - return r2Path.replace(/^v1\/workers-ai-model-catalog/, ""); -} -const inputRowsUrl = r2PathToUrl(inputRowsFile); -const outputRowsUrl = r2PathToUrl(outputRowsFile); +// All schema files (parameters.json and raw .json files) live under +// /ai/models/{r2Slug}/ where r2Slug = modelId with leading @ stripped. +// This is the same path for both catalog and legacy models — the worker +// proxies /ai/models/* → R2 v1/workers-ai-model-catalog/models/*. +const r2Slug = model.modelId.replace(/^@/, ""); +const schemaBasePath = `/ai/models/${r2Slug}`; + +// URL to the single parameters.json file for lazy Parameters rendering. +const parametersUrl = hasSchemaFiles + ? `${schemaBasePath}/parameters.json` + : undefined; // Derive a human-readable label from a schema filename. // e.g. "sync-input.json" → "Synchronous · Input" @@ -210,14 +198,6 @@ function schemaFileLabel(filename: string): string { return modeLabel ? `${modeLabel} · ${dirLabel}` : dirLabel; } -// Base path for the static schema JSON endpoints. -// workers-ai models use the short slug (last segment of model name). -// catalog models use the full slug as-is (may be multi-segment, e.g. "openai/gpt-5.4-mini"). -const schemaBasePath = - model.dataSource === "legacy" - ? `/workers-ai/models/${model.name.split("/").at(-1)}` - : `/ai/models/${model.slug}`; - const authorName = author?.name ?? authorId; const pageTitle = `${displayName} (${authorName}) · Cloudflare AI docs`; @@ -511,35 +491,18 @@ const starlightPageProps = { ) : ( - /* Lazy: fetch pre-processed rows from R2 when user scrolls to section */ + /* Lazy: fetch parameters.json from R2 when user scrolls to section */ <>

Parameters

- - - {inputRowsUrl ? ( - - ) : ( -

No input schema available.

- )} -
- - {outputRowsUrl ? ( - - ) : ( -

No output schema available.

- )} -
-
+ {parametersUrl ? ( + + ) : ( +

No parameters available.

+ )} )) } diff --git a/src/components/models/SchemaDisplayLazy.tsx b/src/components/models/SchemaDisplayLazy.tsx index bcda3fd163cfe25..ddd2684f72139fc 100644 --- a/src/components/models/SchemaDisplayLazy.tsx +++ b/src/components/models/SchemaDisplayLazy.tsx @@ -1,13 +1,14 @@ /** - * SchemaDisplayLazy — client-side schema rows fetcher + renderer. + * SchemaDisplayLazy — client-side parameters fetcher + renderer. * - * Fetches pre-processed SchemaRowData[] from a .rows.json file served - * from R2 via the worker proxy, then renders via SchemaTree / - * SchemaVariantSelector. Schema processing (json-schema-tree) is done - * at pipeline build time in the middlecache, not in the browser. + * Fetches parameters.json (pre-processed SchemaRowData for all modes) from R2 + * via the worker proxy, then renders Input/Output tabs. For flat models renders + * two tabs; for multi-mode models (sync/streaming/batch) renders the primary + * mode (sync or flat) with Input/Output tabs. * - * The URL passed in should be the .rows.json path, e.g.: - * /workers-ai/models/llama/sync-input.rows.json + * parameters.json shape: + * flat model: { flat: true, modes: null, input: RowsPayload, output: RowsPayload } + * multi-mode: { flat: false, modes: ["sync","streaming","batch"], sync: { input, output }, ... } */ import { useState, useEffect, useRef } from "react"; @@ -23,22 +24,64 @@ interface RowsPayload { isFlat: boolean; } +interface ParametersPayload { + flat: boolean; + modes: string[] | null; + // flat model fields + input?: RowsPayload; + output?: RowsPayload; + // multi-mode fields: keyed by mode id + [mode: string]: unknown; +} + interface Props { url: string; - title: "Input" | "Output"; schemaId: string; } -export default function SchemaDisplayLazy({ url, title, schemaId }: Props) { +function RowsPanel({ + payload, + schemaId, + hideRequired, +}: { + payload: RowsPayload; + schemaId: string; + hideRequired: boolean; +}) { + if (payload.variants && payload.variants.length > 0) { + return ( + + ); + } + if (!payload.rows || payload.rows.length === 0) { + return ( +

+ No parameters defined. +

+ ); + } + return ( + + ); +} + +export default function SchemaDisplayLazy({ url, schemaId }: Props) { const [state, setState] = useState< | { status: "idle" } | { status: "loading" } | { status: "error" } - | { status: "ready"; payload: RowsPayload } + | { status: "ready"; payload: ParametersPayload } >({ status: "idle" }); const ref = useRef(null); - const hideRequired = title === "Output"; useEffect(() => { const el = ref.current; @@ -52,7 +95,7 @@ export default function SchemaDisplayLazy({ url, title, schemaId }: Props) { fetch(url) .then((r) => { if (!r.ok) throw new Error(`HTTP ${r.status}`); - return r.json() as Promise; + return r.json() as Promise; }) .then((payload) => setState({ status: "ready", payload })) .catch(() => setState({ status: "error" })); @@ -64,9 +107,9 @@ export default function SchemaDisplayLazy({ url, title, schemaId }: Props) { return () => observer.disconnect(); }, [url]); - return ( -
- {state.status === "idle" || state.status === "loading" ? ( + if (state.status === "idle" || state.status === "loading") { + return ( +
Loading parameters…
- ) : state.status === "error" ? ( +
+ ); + } + + if (state.status === "error") { + return ( +

Could not load schema.

- ) : state.payload.variants && state.payload.variants.length > 0 ? ( - - ) : state.payload.rows.length === 0 ? ( +
+ ); + } + + const { payload } = state; + + // For flat models: render Input / Output tabs directly + if (payload.flat) { + const input = payload.input as RowsPayload | undefined; + const output = payload.output as RowsPayload | undefined; + return ( +
+ {/* Simple two-tab layout matching the build-time SchemaDisplay */} +
+ Input +
+ {input ? ( + + ) : ( +

+ No input parameters defined. +

+ )} +
+ Output +
+ {output ? ( + + ) : ( +

+ No output parameters defined. +

+ )} +
+ ); + } + + // For multi-mode models: show the primary mode (first in modes array, typically sync) + const primaryMode = payload.modes?.[0]; + const modeData = primaryMode + ? (payload[primaryMode] as + | { input: RowsPayload; output: RowsPayload } + | undefined) + : undefined; + + return ( +
+ {modeData ? ( + <> +
+ Input +
+ +
+ Output +
+ + + ) : (

No parameters defined.

- ) : ( - )}
); diff --git a/src/middleware/index.ts b/src/middleware/index.ts index 9682296e2afa349..3a7858e64d7fac4 100644 --- a/src/middleware/index.ts +++ b/src/middleware/index.ts @@ -2,8 +2,8 @@ import { defineMiddleware } from "astro:middleware"; const MIDDLECACHE_BASE = "https://middlecache.ced.cloudflare.com/"; const AI_MODEL_SCHEMA_R2_PREFIX = "v1/workers-ai-model-catalog"; -const SCHEMA_FILE_RE = - /^\/(ai|workers-ai)\/models\/.+\/((?:sync|streaming|batch|schema)-(?:input|output))\.(?:json|rows\.json)$/; +const AI_MODEL_FILE_RE = + /^\/ai\/models\/(.+)\/(parameters\.json|(?:sync|streaming|batch|schema)-(?:input|output)\.json)$/; // `astro dev` only middleware so that `/api/...` links can be viewed, // and so that AI model schema JSON files are proxied from middlecache @@ -22,8 +22,10 @@ export const onRequest = defineMiddleware(async (context, next) => { }); } - if (SCHEMA_FILE_RE.test(pathname)) { - const r2Key = `${AI_MODEL_SCHEMA_R2_PREFIX}${pathname}`; + const aiModelFileMatch = AI_MODEL_FILE_RE.exec(pathname); + if (aiModelFileMatch) { + const [, slug, filename] = aiModelFileMatch; + const r2Key = `${AI_MODEL_SCHEMA_R2_PREFIX}/models/${slug}/${filename}`; return fetch(`${MIDDLECACHE_BASE}${r2Key}`, { headers: { "accept-encoding": "identity" }, }); diff --git a/src/schemas/ai-model-catalog.ts b/src/schemas/ai-model-catalog.ts index 8fc3d36676efc2d..8e9bf0c49c6e700 100644 --- a/src/schemas/ai-model-catalog.ts +++ b/src/schemas/ai-model-catalog.ts @@ -113,9 +113,12 @@ export const aiModelDetailSchema = z.object({ .object({ label: z.string(), code: z.string() }) .array() .optional(), - // schema_manifest lists the full R2 paths for the schema files + // schema_manifest: + // parameters_json — full R2 path to parameters.json (pre-processed rows for all modes) + // raw_files — filenames for "API Schemas (Raw)" download links schema_manifest: z.object({ - files: z.string().array(), + parameters_json: z.string(), + raw_files: z.string().array(), }), }); diff --git a/src/util/model-resolver.ts b/src/util/model-resolver.ts index b645e3743e99d67..9d9397474ac95e8 100644 --- a/src/util/model-resolver.ts +++ b/src/util/model-resolver.ts @@ -61,11 +61,10 @@ function detailToResolved(detail: AiModelDetail): ResolvedModel { // request time. Keep schema empty so hasSchema is false (Parameters hidden). const schema = { input: {}, output: {} }; - // Extract filenames from full R2 paths in schema_manifest for the - // "API Schemas (Raw)" section (e.g. "v1/.../sync-input.json" → "sync-input.json") - const schemaFiles = detail.schema_manifest.files.map( - (r2Path) => r2Path.split("/").at(-1)!, - ); + // schema_manifest.raw_files: filenames for "API Schemas (Raw)" download links + // The URL base for both parameters.json and raw files is /ai/models/{slug}/ + // where slug = model_id with leading @ stripped (i.e. detail.slug) + const schemaFiles = detail.schema_manifest.raw_files; return { name: detail.model_id, diff --git a/src/util/model-types.ts b/src/util/model-types.ts index 975167ca38eede8..63282b49ae45a20 100644 --- a/src/util/model-types.ts +++ b/src/util/model-types.ts @@ -118,9 +118,9 @@ export interface ResolvedModel { // Currently inferred from data source; will eventually come from the Deus CMS. hosting: "proxied" | "hosted"; - // List of schema file names (e.g. ["sync-input.json", "sync-output.json"]) - // populated from the middlecache detail.json schema_manifest. Used by - // ModelDetailPage to render the "API Schemas (Raw)" section without needing - // the full schema content at build time. + // Raw schema filenames (e.g. ["sync-input.json", "sync-output.json"]) from + // schema_manifest.raw_files. Used by ModelDetailPage to render the + // "API Schemas (Raw)" download links. The URL base for these files is + // /ai/models/{modelId stripped of leading @}/. schemaFiles?: string[]; } diff --git a/worker/index.ts b/worker/index.ts index d48452d881e7029..976c44eab079f25 100644 --- a/worker/index.ts +++ b/worker/index.ts @@ -11,12 +11,14 @@ const redirectsEvaluator = generateRedirectsEvaluator(redirectsFileContents, { const LLMS_FULL_R2_PREFIX = "v1/cloudflare-docs-llms-full"; const AI_MODEL_SCHEMA_R2_PREFIX = "v1/workers-ai-model-catalog"; -// Schema JSON files for AI model detail pages. The R2 key mirrors the URL -// path exactly: /ai/models//-input.json maps to -// v1/workers-ai-model-catalog/ai/models//-input.json -// and likewise for /workers-ai/models//-input.json. -const SCHEMA_FILE_RE = - /^\/(ai|workers-ai)\/models\/.+\/((?:sync|streaming|batch|schema)-(?:input|output))\.(?:json|rows\.json)$/; +// Per-model schema files served from R2 for AI model detail pages. +// All files live under models/{slug}/ in R2: +// /ai/models//parameters.json → R2: v1/.../models//parameters.json +// /ai/models//sync-input.json → R2: v1/.../models//sync-input.json +// etc. +// The URL path /ai/models// maps directly to the R2 models// path. +const AI_MODEL_FILE_RE = + /^\/ai\/models\/(.+)\/(parameters\.json|(?:sync|streaming|batch|schema)-(?:input|output)\.json)$/; // RFC 9727 requires the path to be exactly /.well-known/api-catalog with no // extension. The Cloudflare ASSETS binding cannot serve extensionless files @@ -129,17 +131,18 @@ export default class extends WorkerEntrypoint { }); } - if (SCHEMA_FILE_RE.test(pathname)) { - const r2Key = `${AI_MODEL_SCHEMA_R2_PREFIX}${pathname}`; + const aiModelFileMatch = AI_MODEL_FILE_RE.exec(pathname); + if (aiModelFileMatch) { + const [, slug, filename] = aiModelFileMatch; + const r2Key = `${AI_MODEL_SCHEMA_R2_PREFIX}/models/${slug}/${filename}`; const object = await this.env.MIDDLECACHE.get(r2Key); if (!object) { - return new Response("Schema file not found", { status: 404 }); + return new Response("File not found", { status: 404 }); } return new Response(object.body, { headers: { "Content-Type": "application/json; charset=utf-8", - // Allow the browser to cache schema files for up to 5 minutes. - // The middlecache pipeline runs daily, so stale content is bounded. + // Cache for 5 minutes — middlecache pipeline runs daily. "Cache-Control": "public, max-age=300", }, }); From 79b9eaf2a98a83ea62985db0f684953829111951 Mon Sep 17 00:00:00 2001 From: mvm Date: Fri, 1 May 2026 10:22:25 -0500 Subject: [PATCH 15/37] Fix Parameters section to match production layout SchemaDisplayLazy now replicates ModelDetailPage's production rendering: - Flat models: Input heading + RowsDisplay, Output heading + RowsDisplay - Multi-mode with shared input: Input once + per-mode output collapsibles (Synchronous, Streaming, Batch) matching the production collapsible layout - Multi-mode with differing inputs: per-mode collapsibles with Input/Output Detects shared inputs by comparing JSON serialization of RowsPayload, mirroring the production firstInputJson/allInputsIdentical check. --- src/components/models/SchemaDisplayLazy.tsx | 285 ++++++++++++-------- 1 file changed, 178 insertions(+), 107 deletions(-) diff --git a/src/components/models/SchemaDisplayLazy.tsx b/src/components/models/SchemaDisplayLazy.tsx index ddd2684f72139fc..ccf9e298d4a3188 100644 --- a/src/components/models/SchemaDisplayLazy.tsx +++ b/src/components/models/SchemaDisplayLazy.tsx @@ -1,17 +1,18 @@ /** - * SchemaDisplayLazy — client-side parameters fetcher + renderer. + * SchemaDisplayLazy — fetches parameters.json and replicates production layout. * - * Fetches parameters.json (pre-processed SchemaRowData for all modes) from R2 - * via the worker proxy, then renders Input/Output tabs. For flat models renders - * two tabs; for multi-mode models (sync/streaming/batch) renders the primary - * mode (sync or flat) with Input/Output tabs. + * parameters.json shape (from middlecache): + * flat: { flat: true, modes: null, input: RowsPayload, output: RowsPayload } + * multi: { flat: false, modes: ["sync","streaming","batch"], + * sync: { input: RowsPayload, output: RowsPayload }, ... } * - * parameters.json shape: - * flat model: { flat: true, modes: null, input: RowsPayload, output: RowsPayload } - * multi-mode: { flat: false, modes: ["sync","streaming","batch"], sync: { input, output }, ... } + * Replicates the production ModelDetailPage layout: + * - Flat: Input tab + Output tab (via SchemaDisplay.astro equivalent) + * - Multi, shared input: "Input" once + per-mode output collapsibles + * - Multi, differing inputs: per-mode collapsibles with Input/Output tabs */ -import { useState, useEffect, useRef } from "react"; +import { useState, useEffect, useRef, useCallback } from "react"; import SchemaTreeView from "./SchemaTree.tsx"; import SchemaVariantSelector from "./SchemaVariantSelector.tsx"; import type { SchemaRowData } from "./types"; @@ -27,19 +28,25 @@ interface RowsPayload { interface ParametersPayload { flat: boolean; modes: string[] | null; - // flat model fields - input?: RowsPayload; - output?: RowsPayload; - // multi-mode fields: keyed by mode id - [mode: string]: unknown; + input?: RowsPayload; // flat model + output?: RowsPayload; // flat model + [mode: string]: unknown; // multi-mode entries } -interface Props { - url: string; - schemaId: string; -} +// Mode display names matching production +const MODE_NAMES: Record = { + sync: "Synchronous", + streaming: "Streaming", + batch: "Batch", +}; +const MODE_DESCRIPTIONS: Record = { + sync: "Send a request and receive a complete response", + streaming: + "Send a request with `stream: true` and receive server-sent events", + batch: "Send multiple requests in a single API call", +}; -function RowsPanel({ +function RowsDisplay({ payload, schemaId, hideRequired, @@ -59,7 +66,7 @@ function RowsPanel({ } if (!payload.rows || payload.rows.length === 0) { return ( -

+

No parameters defined.

); @@ -73,6 +80,152 @@ function RowsPanel({ ); } +function ModeDetails({ + modeId, + modeData, + schemaId, + inputLabel, +}: { + modeId: string; + modeData: { input: RowsPayload; output: RowsPayload }; + schemaId: string; + inputLabel?: string; // if set, render input with this label (shared-input path) +}) { + const [open, setOpen] = useState(false); + const name = MODE_NAMES[modeId] ?? modeId; + const description = MODE_DESCRIPTIONS[modeId]; + + return ( +
setOpen((e.target as HTMLDetailsElement).open)} + > + + {name} + {description && ( + + — {description} + + )} + + {open && ( +
+ {inputLabel ? ( + // shared-input path: only show output inside details + + ) : ( + // differing-inputs path: show both input and output + <> +
+ Input +
+ +
+ Output +
+ + + )} +
+ )} +
+ ); +} + +function ParametersContent({ + payload, + schemaId, +}: { + payload: ParametersPayload; + schemaId: string; +}) { + // Flat model: Input + Output sections + if (payload.flat) { + return ( + <> +

Input

+ +

Output

+ + + ); + } + + const modes = payload.modes ?? []; + const modeEntries = modes.map( + (id) => + [id, payload[id] as { input: RowsPayload; output: RowsPayload }] as const, + ); + + if (modeEntries.length === 0) return null; + + // Detect whether all modes share identical input (compare JSON) + const firstInputJson = JSON.stringify(modeEntries[0][1].input); + const allInputsIdentical = modeEntries.every( + ([, data]) => JSON.stringify(data.input) === firstInputJson, + ); + + if (allInputsIdentical) { + // Shared input: render input once, then per-mode output collapsibles + return ( + <> +

Input

+ +

Output

+
+ {modeEntries.map(([id, data]) => ( + + ))} +
+ + ); + } + + // Differing inputs: per-mode collapsibles with Input/Output tabs + return ( +
+ {modeEntries.map(([id, data]) => ( + + ))} +
+ ); +} + +interface Props { + url: string; + schemaId: string; +} + export default function SchemaDisplayLazy({ url, schemaId }: Props) { const [state, setState] = useState< | { status: "idle" } @@ -107,9 +260,9 @@ export default function SchemaDisplayLazy({ url, schemaId }: Props) { return () => observer.disconnect(); }, [url]); - if (state.status === "idle" || state.status === "loading") { - return ( -
+ return ( +
+ {state.status === "idle" || state.status === "loading" ? (
Loading parameters…
-
- ); - } - - if (state.status === "error") { - return ( -
+ ) : state.status === "error" ? (

Could not load schema.

-
- ); - } - - const { payload } = state; - - // For flat models: render Input / Output tabs directly - if (payload.flat) { - const input = payload.input as RowsPayload | undefined; - const output = payload.output as RowsPayload | undefined; - return ( -
- {/* Simple two-tab layout matching the build-time SchemaDisplay */} -
- Input -
- {input ? ( - - ) : ( -

- No input parameters defined. -

- )} -
- Output -
- {output ? ( - - ) : ( -

- No output parameters defined. -

- )} -
- ); - } - - // For multi-mode models: show the primary mode (first in modes array, typically sync) - const primaryMode = payload.modes?.[0]; - const modeData = primaryMode - ? (payload[primaryMode] as - | { input: RowsPayload; output: RowsPayload } - | undefined) - : undefined; - - return ( -
- {modeData ? ( - <> -
- Input -
- -
- Output -
- - ) : ( -

- No parameters defined. -

+ )}
); From 0a7ce6936be805c868c209962b37781c4ff153f7 Mon Sep 17 00:00:00 2001 From: mvm Date: Fri, 1 May 2026 10:32:05 -0500 Subject: [PATCH 16/37] Fix: remove unused useCallback import --- src/components/models/SchemaDisplayLazy.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/models/SchemaDisplayLazy.tsx b/src/components/models/SchemaDisplayLazy.tsx index ccf9e298d4a3188..6ed0f5ec9595983 100644 --- a/src/components/models/SchemaDisplayLazy.tsx +++ b/src/components/models/SchemaDisplayLazy.tsx @@ -12,7 +12,7 @@ * - Multi, differing inputs: per-mode collapsibles with Input/Output tabs */ -import { useState, useEffect, useRef, useCallback } from "react"; +import { useState, useEffect, useRef } from "react"; import SchemaTreeView from "./SchemaTree.tsx"; import SchemaVariantSelector from "./SchemaVariantSelector.tsx"; import type { SchemaRowData } from "./types"; From f24a341d72d11f8a0c32835b330ca172e416f5b3 Mon Sep 17 00:00:00 2001 From: mvm Date: Fri, 1 May 2026 11:06:00 -0500 Subject: [PATCH 17/37] Replace lazy React component with build-time Astro rendering for Parameters MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Fetch parameters.json at build time in ModelDetailPage.astro frontmatter - SchemaDisplayFromRows.astro renders pre-processed SchemaRowData using SchemaTreeView/SchemaVariantSelector (pure Astro, no React component) - ModelDetailPage uses four clean separate conditional blocks instead of one ternary chain — Starlight Tabs used correctly for flat Input/Output, matching production layout exactly - Delete SchemaDisplayLazy.tsx (React component no longer needed) --- src/components/models/ModelDetailPage.astro | 388 ++++++++++++------ .../models/SchemaDisplayFromRows.astro | 53 +++ src/components/models/SchemaDisplayLazy.tsx | 293 ------------- 3 files changed, 321 insertions(+), 413 deletions(-) create mode 100644 src/components/models/SchemaDisplayFromRows.astro delete mode 100644 src/components/models/SchemaDisplayLazy.tsx diff --git a/src/components/models/ModelDetailPage.astro b/src/components/models/ModelDetailPage.astro index 3f2ba0134bedbad..36eaf751b663d99 100644 --- a/src/components/models/ModelDetailPage.astro +++ b/src/components/models/ModelDetailPage.astro @@ -7,7 +7,8 @@ import { LinkButton, Tabs, TabItem, Code, Aside, Badge } from "~/components"; import ModelInfo from "~/components/models/ModelInfo.tsx"; import ModelFeatures from "~/components/models/ModelFeatures.tsx"; import SchemaDisplay from "~/components/models/SchemaDisplay.astro"; -import SchemaDisplayLazy from "~/components/models/SchemaDisplayLazy.tsx"; +import SchemaDisplayFromRows from "~/components/models/SchemaDisplayFromRows.astro"; +import type { RowsPayload } from "~/components/models/SchemaDisplayFromRows.astro"; import ExampleCard from "~/components/models/ExampleCard.astro"; import CopyableCode from "~/components/models/CopyableCode.astro"; @@ -160,24 +161,96 @@ const hasSchema = model.schema.input && Object.keys(model.schema.input).length > 0; // Schema files (raw_files) populated from schema_manifest — used for download links. -// parameters.json — single file with pre-processed rows for all modes, fetched lazily. const hasSchemaFiles = model.schemaFiles != null && model.schemaFiles.length > 0; -// Parameters section is shown when we have build-time schema OR schemaFiles for lazy fetch. -const hasParameters = hasSchema || hasSchemaFiles; - -// All schema files (parameters.json and raw .json files) live under -// /ai/models/{r2Slug}/ where r2Slug = modelId with leading @ stripped. -// This is the same path for both catalog and legacy models — the worker -// proxies /ai/models/* → R2 v1/workers-ai-model-catalog/models/*. +// All schema files live under /ai/models/{r2Slug}/ (@ stripped). +// Worker proxies /ai/models/* → R2 v1/workers-ai-model-catalog/models/*. const r2Slug = model.modelId.replace(/^@/, ""); const schemaBasePath = `/ai/models/${r2Slug}`; -// URL to the single parameters.json file for lazy Parameters rendering. -const parametersUrl = hasSchemaFiles - ? `${schemaBasePath}/parameters.json` - : undefined; +// Fetch parameters.json at build time from middlecache. +// Contains pre-processed SchemaRowData for all modes — no client-side +// schema processing needed. +type ModeData = { input: RowsPayload; output: RowsPayload }; +type ParametersPayload = + | { flat: true; modes: null; input: RowsPayload; output: RowsPayload } + | ({ flat: false; modes: string[] } & Record); + +let parametersData: ParametersPayload | null = null; +if (hasSchemaFiles) { + try { + const middlewareCacheBase = "https://middlecache.ced.cloudflare.com/"; + const r2Key = `v1/workers-ai-model-catalog/models/${r2Slug}/parameters.json`; + const res = await fetch(`${middlewareCacheBase}${r2Key}`); + if (res.ok) { + parametersData = (await res.json()) as ParametersPayload; + } else { + console.warn( + `ModelDetailPage: parameters.json fetch failed (${res.status}) for ${r2Slug}`, + ); + } + } catch (e) { + console.warn( + `ModelDetailPage: parameters.json fetch error for ${r2Slug}:`, + e, + ); + } +} + +// Parameters section shown when we have build-time schema OR fetched parameters data. +const hasParameters = hasSchema || parametersData != null; + +// For multi-mode: detect if all modes share identical input (same as production logic). +const parametersIsMultiMode = + parametersData != null && + !parametersData.flat && + parametersData.modes != null; +const parametersIsFlat = parametersData != null && parametersData.flat; + +// Multi-mode: all inputs identical → render input once + per-mode output collapsibles. +let multiModeAllInputsIdentical = false; +let parametersMulti: + | ({ flat: false; modes: string[] } & Record) + | null = null; +let parametersFlat: { + flat: true; + input: RowsPayload; + output: RowsPayload; +} | null = null; + +if (parametersIsMultiMode && parametersData) { + parametersMulti = parametersData as { + flat: false; + modes: string[]; + } & Record; + const firstInputJson = JSON.stringify( + parametersMulti[parametersMulti.modes[0]]?.input, + ); + multiModeAllInputsIdentical = parametersMulti.modes.every( + (id) => JSON.stringify(parametersMulti![id]?.input) === firstInputJson, + ); +} +if (parametersIsFlat && parametersData) { + parametersFlat = parametersData as { + flat: true; + input: RowsPayload; + output: RowsPayload; + }; +} + +// Mode display names/descriptions matching production. +const PARAM_MODE_NAMES: Record = { + sync: "Synchronous", + streaming: "Streaming", + batch: "Batch", +}; +const PARAM_MODE_DESCRIPTIONS: Record = { + sync: "Send a request and receive a complete response", + streaming: + "Send a request with `stream: true` and receive server-sent events", + batch: "Send multiple requests in a single API call", +}; // Derive a human-readable label from a schema filename. // e.g. "sync-input.json" → "Synchronous · Input" @@ -380,55 +453,21 @@ const starlightPageProps = { ) } + {/* Case 1: build-time schema with multiple API modes (production path) */} { - hasParameters && - (hasSchema && model.apiModes && model.apiModes.length > 1 ? ( - <> -

Parameters

- - {/* - * Render input schema once (shared across all modes), then - * render per-mode output sections. This avoids duplicating the - * processed SchemaRowData tree in the HTML for every mode. - * - * Sync and streaming always share the same input; batch may differ. - * We detect shared input by comparing JSON serialisation. - */} - {(() => { - // Detect which modes share the same input as the first mode - const firstInputJson = JSON.stringify(model.apiModes[0].input); - const allInputsIdentical = model.apiModes.every( - (mode) => JSON.stringify(mode.input) === firstInputJson, - ); - - return allInputsIdentical ? ( - <> - {/* Input rendered once */} -

Input

- - - {/* Output per mode */} -

Output

-
- {model.apiModes.map((mode) => ( -
- - {mode.name} - {mode.description && ( - - — {mode.description} - - )} - -
- -
-
- ))} -
- - ) : ( - /* Inputs differ (e.g. batch has different input) — show per-mode tabs */ + hasSchema && model.apiModes && model.apiModes.length > 1 && ( + <> +

Parameters

+ {(() => { + const firstInputJson = JSON.stringify(model.apiModes[0].input); + const allInputsIdentical = model.apiModes.every( + (mode) => JSON.stringify(mode.input) === firstInputJson, + ); + return allInputsIdentical ? ( + <> +

Input

+ +

Output

{model.apiModes.map((mode) => (
@@ -441,70 +480,179 @@ const starlightPageProps = { )}
- - - - - - - - +
))}
- ); - })()} - - ) : hasSchema ? ( - <> -

Parameters

- - - - - - {model.schema.output.format === "binary" ? ( -

- {(model.schema.output.contentType as string)?.startsWith( - "audio/", - ) ? ( - <> - The binding returns a ReadableStream with the - audio in{" "} - {(model.schema.output.contentType as string) - .replace("audio/", "") - .toUpperCase()}{" "} - format (check the model's output schema). - - ) : ( - <> - The binding returns a ReadableStream with the - output (check the model's output schema). - - )} -

- ) : ( - - )} -
-
- - ) : ( - /* Lazy: fetch parameters.json from R2 when user scrolls to section */ - <> -

Parameters

- {parametersUrl ? ( - + ) : ( -

No parameters available.

- )} - - )) +
+ {model.apiModes.map((mode) => ( +
+ + {mode.name} + {mode.description && ( + + — {mode.description} + + )} + +
+ + + + + + + + +
+
+ ))} +
+ ); + })()} + + ) + } + + {/* Case 2: build-time schema, flat (no apiModes) */} + { + hasSchema && !(model.apiModes && model.apiModes.length > 1) && ( + <> +

Parameters

+ + + + + + {model.schema.output.format === "binary" ? ( +

+ {(model.schema.output.contentType as string)?.startsWith( + "audio/", + ) ? ( + <> + The binding returns a ReadableStream with the + audio in{" "} + {(model.schema.output.contentType as string) + .replace("audio/", "") + .toUpperCase()}{" "} + format (check the model's output schema). + + ) : ( + <> + The binding returns a ReadableStream with the + output (check the model's output schema). + + )} +

+ ) : ( + + )} +
+
+ + ) + } + + {/* Case 3: pre-processed rows, flat model */} + { + parametersFlat && ( + <> +

Parameters

+ + + + + + + + + + ) + } + + {/* Case 4: pre-processed rows, multi-mode model */} + { + parametersMulti && ( + <> +

Parameters

+ {multiModeAllInputsIdentical ? ( + <> +

Input

+ +

Output

+
+ {parametersMulti.modes.map((id) => ( +
+ + {PARAM_MODE_NAMES[id] ?? id} + {PARAM_MODE_DESCRIPTIONS[id] && ( + + — {PARAM_MODE_DESCRIPTIONS[id]} + + )} + +
+ +
+
+ ))} +
+ + ) : ( +
+ {parametersMulti.modes.map((id) => ( +
+ + {PARAM_MODE_NAMES[id] ?? id} + {PARAM_MODE_DESCRIPTIONS[id] && ( + + — {PARAM_MODE_DESCRIPTIONS[id]} + + )} + +
+ + + + + + + + +
+
+ ))} +
+ )} + + ) } { diff --git a/src/components/models/SchemaDisplayFromRows.astro b/src/components/models/SchemaDisplayFromRows.astro new file mode 100644 index 000000000000000..ce3c24738e94b18 --- /dev/null +++ b/src/components/models/SchemaDisplayFromRows.astro @@ -0,0 +1,53 @@ +--- +/** + * SchemaDisplayFromRows — renders pre-processed SchemaRowData at build time. + * + * Drop-in replacement for SchemaDisplay.astro when rows are already available + * (e.g. from parameters.json fetched from middlecache). Bypasses + * @stoplight/json-schema-tree entirely. + */ +import SchemaTreeView from "./SchemaTree.tsx"; +import SchemaVariantSelector from "./SchemaVariantSelector.tsx"; +import type { SchemaRowData } from "./types"; + +type SchemaVariant = { title: string; rows: SchemaRowData[] }; + +export interface RowsPayload { + rows: SchemaRowData[]; + variants: SchemaVariant[] | null; + isFlat: boolean; +} + +interface Props { + payload: RowsPayload; + title: "Input" | "Output"; + schemaId: string; +} + +const { payload, title, schemaId } = Astro.props; +const hideRequired = title === "Output"; +--- + +
+ { + payload.variants && payload.variants.length > 0 ? ( + + ) : payload.rows.length === 0 ? ( +

+ No parameters defined. +

+ ) : ( + + ) + } +
diff --git a/src/components/models/SchemaDisplayLazy.tsx b/src/components/models/SchemaDisplayLazy.tsx deleted file mode 100644 index 6ed0f5ec9595983..000000000000000 --- a/src/components/models/SchemaDisplayLazy.tsx +++ /dev/null @@ -1,293 +0,0 @@ -/** - * SchemaDisplayLazy — fetches parameters.json and replicates production layout. - * - * parameters.json shape (from middlecache): - * flat: { flat: true, modes: null, input: RowsPayload, output: RowsPayload } - * multi: { flat: false, modes: ["sync","streaming","batch"], - * sync: { input: RowsPayload, output: RowsPayload }, ... } - * - * Replicates the production ModelDetailPage layout: - * - Flat: Input tab + Output tab (via SchemaDisplay.astro equivalent) - * - Multi, shared input: "Input" once + per-mode output collapsibles - * - Multi, differing inputs: per-mode collapsibles with Input/Output tabs - */ - -import { useState, useEffect, useRef } from "react"; -import SchemaTreeView from "./SchemaTree.tsx"; -import SchemaVariantSelector from "./SchemaVariantSelector.tsx"; -import type { SchemaRowData } from "./types"; - -type SchemaVariant = { title: string; rows: SchemaRowData[] }; - -interface RowsPayload { - rows: SchemaRowData[]; - variants: SchemaVariant[] | null; - isFlat: boolean; -} - -interface ParametersPayload { - flat: boolean; - modes: string[] | null; - input?: RowsPayload; // flat model - output?: RowsPayload; // flat model - [mode: string]: unknown; // multi-mode entries -} - -// Mode display names matching production -const MODE_NAMES: Record = { - sync: "Synchronous", - streaming: "Streaming", - batch: "Batch", -}; -const MODE_DESCRIPTIONS: Record = { - sync: "Send a request and receive a complete response", - streaming: - "Send a request with `stream: true` and receive server-sent events", - batch: "Send multiple requests in a single API call", -}; - -function RowsDisplay({ - payload, - schemaId, - hideRequired, -}: { - payload: RowsPayload; - schemaId: string; - hideRequired: boolean; -}) { - if (payload.variants && payload.variants.length > 0) { - return ( - - ); - } - if (!payload.rows || payload.rows.length === 0) { - return ( -

- No parameters defined. -

- ); - } - return ( - - ); -} - -function ModeDetails({ - modeId, - modeData, - schemaId, - inputLabel, -}: { - modeId: string; - modeData: { input: RowsPayload; output: RowsPayload }; - schemaId: string; - inputLabel?: string; // if set, render input with this label (shared-input path) -}) { - const [open, setOpen] = useState(false); - const name = MODE_NAMES[modeId] ?? modeId; - const description = MODE_DESCRIPTIONS[modeId]; - - return ( -
setOpen((e.target as HTMLDetailsElement).open)} - > - - {name} - {description && ( - - — {description} - - )} - - {open && ( -
- {inputLabel ? ( - // shared-input path: only show output inside details - - ) : ( - // differing-inputs path: show both input and output - <> -
- Input -
- -
- Output -
- - - )} -
- )} -
- ); -} - -function ParametersContent({ - payload, - schemaId, -}: { - payload: ParametersPayload; - schemaId: string; -}) { - // Flat model: Input + Output sections - if (payload.flat) { - return ( - <> -

Input

- -

Output

- - - ); - } - - const modes = payload.modes ?? []; - const modeEntries = modes.map( - (id) => - [id, payload[id] as { input: RowsPayload; output: RowsPayload }] as const, - ); - - if (modeEntries.length === 0) return null; - - // Detect whether all modes share identical input (compare JSON) - const firstInputJson = JSON.stringify(modeEntries[0][1].input); - const allInputsIdentical = modeEntries.every( - ([, data]) => JSON.stringify(data.input) === firstInputJson, - ); - - if (allInputsIdentical) { - // Shared input: render input once, then per-mode output collapsibles - return ( - <> -

Input

- -

Output

-
- {modeEntries.map(([id, data]) => ( - - ))} -
- - ); - } - - // Differing inputs: per-mode collapsibles with Input/Output tabs - return ( -
- {modeEntries.map(([id, data]) => ( - - ))} -
- ); -} - -interface Props { - url: string; - schemaId: string; -} - -export default function SchemaDisplayLazy({ url, schemaId }: Props) { - const [state, setState] = useState< - | { status: "idle" } - | { status: "loading" } - | { status: "error" } - | { status: "ready"; payload: ParametersPayload } - >({ status: "idle" }); - - const ref = useRef(null); - - useEffect(() => { - const el = ref.current; - if (!el) return; - - const observer = new IntersectionObserver( - (entries) => { - if (entries[0].isIntersecting) { - observer.disconnect(); - setState({ status: "loading" }); - fetch(url) - .then((r) => { - if (!r.ok) throw new Error(`HTTP ${r.status}`); - return r.json() as Promise; - }) - .then((payload) => setState({ status: "ready", payload })) - .catch(() => setState({ status: "error" })); - } - }, - { rootMargin: "200px" }, - ); - observer.observe(el); - return () => observer.disconnect(); - }, [url]); - - return ( -
- {state.status === "idle" || state.status === "loading" ? ( -
- - - - - Loading parameters… -
- ) : state.status === "error" ? ( -

- Could not load schema. -

- ) : ( - - )} -
- ); -} From 8b490c8b9b1ce25ebb3a7f805f55a06b73ce1a19 Mon Sep 17 00:00:00 2001 From: mvm Date: Fri, 1 May 2026 11:11:39 -0500 Subject: [PATCH 18/37] Use AnchorHeading for h2 section headings in model detail pages Plain

elements inside StarlightPage slots don't pass through the rehype pipeline, so they never get the .heading-wrapper anchor link structure. Replace all section-level h2s with AnchorHeading (same pattern used by WranglerCommand, CompatibilityFlags, etc.). --- src/components/models/ModelDetailPage.astro | 25 ++++++++++++--------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/src/components/models/ModelDetailPage.astro b/src/components/models/ModelDetailPage.astro index 36eaf751b663d99..c861291791cc57f 100644 --- a/src/components/models/ModelDetailPage.astro +++ b/src/components/models/ModelDetailPage.astro @@ -8,6 +8,7 @@ import ModelInfo from "~/components/models/ModelInfo.tsx"; import ModelFeatures from "~/components/models/ModelFeatures.tsx"; import SchemaDisplay from "~/components/models/SchemaDisplay.astro"; import SchemaDisplayFromRows from "~/components/models/SchemaDisplayFromRows.astro"; +import AnchorHeading from "~/components/AnchorHeading.astro"; import type { RowsPayload } from "~/components/models/SchemaDisplayFromRows.astro"; import ExampleCard from "~/components/models/ExampleCard.astro"; import CopyableCode from "~/components/models/CopyableCode.astro"; @@ -392,7 +393,11 @@ const starlightPageProps = { { hasSupportedLanguages && ( <> -

Supported languages

+ ) @@ -401,7 +406,7 @@ const starlightPageProps = { { hasPlayground && ( <> -

Playground

+

Try out this model with Workers AI LLM Playground. It does not require any setup or authentication and an instant way to preview and test a @@ -419,7 +424,7 @@ const starlightPageProps = { { hasCatalogUsage && firstExample && ( <> -

Usage

+ ) @@ -428,7 +433,7 @@ const starlightPageProps = { { !hasCatalogUsage && CodeExamples && ( <> -

Usage

+ ) @@ -437,7 +442,7 @@ const starlightPageProps = { { hasRemainingExamples && ( <> -

Examples

+ {remainingExamples.map((example) => (
@@ -457,7 +462,7 @@ const starlightPageProps = { { hasSchema && model.apiModes && model.apiModes.length > 1 && ( <> -

Parameters

+ {(() => { const firstInputJson = JSON.stringify(model.apiModes[0].input); const allInputsIdentical = model.apiModes.every( @@ -521,7 +526,7 @@ const starlightPageProps = { { hasSchema && !(model.apiModes && model.apiModes.length > 1) && ( <> -

Parameters

+ @@ -560,7 +565,7 @@ const starlightPageProps = { { parametersFlat && ( <> -

Parameters

+ -

Parameters

+ {multiModeAllInputsIdentical ? ( <>

Input

@@ -658,7 +663,7 @@ const starlightPageProps = { { hasSchemaFiles && ( <> -

API Schemas (Raw)

+
{model.schemaFiles!.map((filename) => (
From 1dfe02716232b844b63e51346e829845596fd073 Mon Sep 17 00:00:00 2001 From: mvm Date: Fri, 1 May 2026 11:19:25 -0500 Subject: [PATCH 19/37] Extract inline SVGs to SchemaFileLinks.astro Replace repeated Open/Download Lucide SVGs in ModelDetailPage with a dedicated SchemaFileLinks.astro component. --- src/components/models/ModelDetailPage.astro | 52 ++--------------- src/components/models/SchemaFileLinks.astro | 65 +++++++++++++++++++++ 2 files changed, 70 insertions(+), 47 deletions(-) create mode 100644 src/components/models/SchemaFileLinks.astro diff --git a/src/components/models/ModelDetailPage.astro b/src/components/models/ModelDetailPage.astro index c861291791cc57f..03ce56845814127 100644 --- a/src/components/models/ModelDetailPage.astro +++ b/src/components/models/ModelDetailPage.astro @@ -8,6 +8,7 @@ import ModelInfo from "~/components/models/ModelInfo.tsx"; import ModelFeatures from "~/components/models/ModelFeatures.tsx"; import SchemaDisplay from "~/components/models/SchemaDisplay.astro"; import SchemaDisplayFromRows from "~/components/models/SchemaDisplayFromRows.astro"; +import SchemaFileLinks from "~/components/models/SchemaFileLinks.astro"; import AnchorHeading from "~/components/AnchorHeading.astro"; import type { RowsPayload } from "~/components/models/SchemaDisplayFromRows.astro"; import ExampleCard from "~/components/models/ExampleCard.astro"; @@ -670,53 +671,10 @@ const starlightPageProps = { {schemaFileLabel(filename)} - - - - - - - - - - - - - - - - +
))}
diff --git a/src/components/models/SchemaFileLinks.astro b/src/components/models/SchemaFileLinks.astro new file mode 100644 index 000000000000000..be69ef417a1b517 --- /dev/null +++ b/src/components/models/SchemaFileLinks.astro @@ -0,0 +1,65 @@ +--- +/** + * SchemaFileLinks — renders Open and Download icon buttons for a schema file. + * Extracted from ModelDetailPage to avoid repeating inline SVGs. + */ + +interface Props { + href: string; + filename: string; +} + +const { href, filename } = Astro.props; +--- + + + + + + + + + + + From 7315cd8331bebdc48f0a37e8748897e4cc87f716 Mon Sep 17 00:00:00 2001 From: mvm Date: Fri, 1 May 2026 11:20:04 -0500 Subject: [PATCH 20/37] Fix non-deterministic schemaId in SchemaDisplay.astro Replace Date.now() with a stable hash of the schema JSON so sessionStorage expand/collapse state persists across builds. --- src/components/models/SchemaDisplay.astro | 27 ++++++++++++++++------- 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/src/components/models/SchemaDisplay.astro b/src/components/models/SchemaDisplay.astro index 6dcb17aa8c69d0f..ecfcec40078ef9a 100644 --- a/src/components/models/SchemaDisplay.astro +++ b/src/components/models/SchemaDisplay.astro @@ -73,8 +73,15 @@ function flatSchemaToRows(schemaObj: Record): SchemaRowData[] { })); } -// Generate unique ID for sessionStorage keys -const schemaId = `schema-${title.toLowerCase()}-${Date.now()}`; +// Generate a stable ID for sessionStorage keys based on schema content. +// Using a simple hash of the JSON so the key is consistent across builds — +// Date.now() was non-deterministic and silently lost user state on every deploy. +const schemaJson = JSON.stringify(schema); +let schemaHash = 0; +for (let i = 0; i < schemaJson.length; i++) { + schemaHash = (schemaHash * 31 + schemaJson.charCodeAt(i)) >>> 0; +} +const schemaId = `schema-${title.toLowerCase()}-${schemaHash.toString(36)}`; type ReferenceInfo = { source: string | null; @@ -196,11 +203,10 @@ function collectRows( (reg.annotations?.description as string | undefined) ?? nullableChildDescription; // Check both validations and fragment for enum (different schema parsers put it in different places) - const enumValues = - ((reg.validations?.enum as unknown[]) ?? - ((reg.fragment as Record)?.enum as unknown[]))?.map( - String, - ); + const enumValues = ( + (reg.validations?.enum as unknown[]) ?? + ((reg.fragment as Record)?.enum as unknown[]) + )?.map(String); // Collect all metadata from fragment and validations const metadata: Record = {}; @@ -429,7 +435,12 @@ const variantRows = No parameters defined.

) : ( - + ) }
From 6be2d1f65d7b7b5649fda29af06a2c1645464a8a Mon Sep 17 00:00:00 2001 From: mvm Date: Fri, 1 May 2026 11:20:35 -0500 Subject: [PATCH 21/37] Fix invalid

    nesting in nova-3 pricing Aside --- src/components/models/ModelDetailPage.astro | 22 ++++++++++----------- 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/src/components/models/ModelDetailPage.astro b/src/components/models/ModelDetailPage.astro index 03ce56845814127..d10dfb0f84388bb 100644 --- a/src/components/models/ModelDetailPage.astro +++ b/src/components/models/ModelDetailPage.astro @@ -375,18 +375,16 @@ const starlightPageProps = { is different based on transport. Transport-based pricing does not apply to all models.

    -

    -

      -
    • - WebSocket: $0.0092 per audio minute output (836.36 neurons per - audio minute output) -
    • -
    • - Regular HTTP: $0.0052 per audio minute output (472.73 neurons per - audio minute output) -
    • -
    -

    +
      +
    • + WebSocket: $0.0092 per audio minute output (836.36 neurons per audio + minute output) +
    • +
    • + Regular HTTP: $0.0052 per audio minute output (472.73 neurons per + audio minute output) +
    • +
    ) } From 9ce982b89280b2fadb6420efabc8490b289bf619 Mon Sep 17 00:00:00 2001 From: mvm Date: Fri, 1 May 2026 11:21:16 -0500 Subject: [PATCH 22/37] Convert ModelInfo from React to Astro for detail page usage ModelDetailPage.astro now imports ModelInfo.astro (pure display, no interactivity). ModelInfo.tsx kept for use inside ModelCatalog.tsx (client React context). --- src/components/models/ModelDetailPage.astro | 2 +- src/components/models/ModelInfo.astro | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) create mode 100644 src/components/models/ModelInfo.astro diff --git a/src/components/models/ModelDetailPage.astro b/src/components/models/ModelDetailPage.astro index d10dfb0f84388bb..8e0603b5fe94a99 100644 --- a/src/components/models/ModelDetailPage.astro +++ b/src/components/models/ModelDetailPage.astro @@ -4,7 +4,7 @@ import StarlightPage, { type StarlightPageProps, } from "@astrojs/starlight/components/StarlightPage.astro"; import { LinkButton, Tabs, TabItem, Code, Aside, Badge } from "~/components"; -import ModelInfo from "~/components/models/ModelInfo.tsx"; +import ModelInfo from "~/components/models/ModelInfo.astro"; import ModelFeatures from "~/components/models/ModelFeatures.tsx"; import SchemaDisplay from "~/components/models/SchemaDisplay.astro"; import SchemaDisplayFromRows from "~/components/models/SchemaDisplayFromRows.astro"; diff --git a/src/components/models/ModelInfo.astro b/src/components/models/ModelInfo.astro new file mode 100644 index 000000000000000..edd29f2e9ffc656 --- /dev/null +++ b/src/components/models/ModelInfo.astro @@ -0,0 +1,18 @@ +--- +import type { ResolvedModel } from "~/util/model-types"; +import { getModelAuthor } from "~/util/model-helpers"; +import { authorData } from "./data"; + +interface Props { + model: ResolvedModel; +} + +const { model } = Astro.props; +const authorId = getModelAuthor(model.name); +const author = authorData[authorId]?.name ?? authorId; +const hosting = model.hosting === "proxied" ? "Proxied" : "Hosted"; +--- + + + {model.task.name} • {author} • {hosting} + From 4be68bd495d3f907ec62f046fa466c5dd7192dc3 Mon Sep 17 00:00:00 2001 From: mvm Date: Fri, 1 May 2026 11:21:57 -0500 Subject: [PATCH 23/37] Convert ModelFeatures from React to Astro Fixes any types, fragment-in-tr HTML bug, and locale-sensitive Intl formatting that could differ between build and client. --- src/components/models/ModelDetailPage.astro | 2 +- src/components/models/ModelFeatures.astro | 199 ++++++++++++++++++++ 2 files changed, 200 insertions(+), 1 deletion(-) create mode 100644 src/components/models/ModelFeatures.astro diff --git a/src/components/models/ModelDetailPage.astro b/src/components/models/ModelDetailPage.astro index 8e0603b5fe94a99..d80ff8ddf8c452c 100644 --- a/src/components/models/ModelDetailPage.astro +++ b/src/components/models/ModelDetailPage.astro @@ -5,7 +5,7 @@ import StarlightPage, { } from "@astrojs/starlight/components/StarlightPage.astro"; import { LinkButton, Tabs, TabItem, Code, Aside, Badge } from "~/components"; import ModelInfo from "~/components/models/ModelInfo.astro"; -import ModelFeatures from "~/components/models/ModelFeatures.tsx"; +import ModelFeatures from "~/components/models/ModelFeatures.astro"; import SchemaDisplay from "~/components/models/SchemaDisplay.astro"; import SchemaDisplayFromRows from "~/components/models/SchemaDisplayFromRows.astro"; import SchemaFileLinks from "~/components/models/SchemaFileLinks.astro"; diff --git a/src/components/models/ModelFeatures.astro b/src/components/models/ModelFeatures.astro new file mode 100644 index 000000000000000..cd07762f915e4f8 --- /dev/null +++ b/src/components/models/ModelFeatures.astro @@ -0,0 +1,199 @@ +--- +import type { ResolvedModel } from "~/util/model-types"; + +interface Props { + model: ResolvedModel; +} + +const { model } = Astro.props; + +// Build a keyed map from the properties array +const properties: Record = {}; +for (const property of model.properties) { + properties[property.property_id] = property.value; +} + +const hasProperties = Object.keys(properties).length > 0; + +// Number formatters — use fixed locale for deterministic SSG output +const nf = new Intl.NumberFormat("en-US"); +const currencyFormatter = new Intl.NumberFormat("en-US", { + style: "currency", + currency: "USD", + maximumFractionDigits: 10, +}); + +// Deprecation date +const deprecationDate = properties.planned_deprecation_date + ? new Date(String(properties.planned_deprecation_date)) + : null; +const isDeprecated = + deprecationDate != null && Date.now() > deprecationDate.getTime(); +const deprecationLabel = isDeprecated ? "Deprecated" : "Planned Deprecation"; +const deprecationFormatted = + deprecationDate?.toLocaleDateString("en-US") ?? null; + +// Pricing for unit-priced models +type PriceEntry = { price: number; unit: string }; +const priceEntries = Array.isArray(properties.price) + ? (properties.price as PriceEntry[]) + : []; +const priceFormatted = + priceEntries.length > 0 + ? priceEntries + .map((p) => `${currencyFormatter.format(p.price)} ${p.unit}`) + .join(", ") + : null; + +// Dashboard deep link for catalog models +const dashPricingUrl = + model.dataSource === "catalog" + ? `https://dash.cloudflare.com/?to=/:account/ai/models/${model.modelId}` + : null; +--- + +{ + hasProperties && ( + + + + + + + + {deprecationFormatted && ( + + + + + )} + {properties.context_window && ( + + + + + )} + {properties.terms && ( + + + + + )} + {properties.info && ( + + + + + )} + {properties.max_input_tokens && ( + + + + + )} + {properties.output_dimensions && ( + + + + + )} + {properties.function_calling && ( + + + + + )} + {properties.reasoning && ( + + + + + )} + {properties.vision && ( + + + + + )} + {properties.lora && ( + + + + + )} + {properties.beta && ( + + + + + )} + {properties.async_queue && ( + + + + + )} + {properties.partner && ( + + + + + )} + {properties.realtime && ( + + + + + )} + {priceFormatted && ( + + + + + )} + {dashPricingUrl && ( + + + + + )} + +
    Model Info +
    {deprecationLabel}{deprecationFormatted}
    + Context Window{" "} + + ↗ + + {nf.format(Number(properties.context_window))} tokens
    Terms and License + + link ↗ + +
    More information + + link ↗ + +
    Maximum Input Tokens{nf.format(Number(properties.max_input_tokens))}
    Output Dimensions{nf.format(Number(properties.output_dimensions))}
    + Function calling{" "} + + ↗ + + Yes
    ReasoningYes
    VisionYes
    LoRAYes
    BetaYes
    BatchYes
    PartnerYes
    Real-timeYes
    Unit Pricing{priceFormatted}
    Pricing + + View pricing in the Cloudflare dashboard ↗ + +
    + ) +} From e884c1c4a02ec72694f3330961dfe66a161e84eb Mon Sep 17 00:00:00 2001 From: mvm Date: Fri, 1 May 2026 11:24:00 -0500 Subject: [PATCH 24/37] Extract MultiModeParams.astro to deduplicate multi-mode collapsible layout Cases 1 and 4 (build-time schema and pre-processed rows) now share the same MultiModeParams component for the shared-input/differing-input collapsible structure. --- src/components/models/ModelDetailPage.astro | 204 ++++++++------------ src/components/models/MultiModeParams.astro | 83 ++++++++ 2 files changed, 164 insertions(+), 123 deletions(-) create mode 100644 src/components/models/MultiModeParams.astro diff --git a/src/components/models/ModelDetailPage.astro b/src/components/models/ModelDetailPage.astro index d80ff8ddf8c452c..906870fd4bd074b 100644 --- a/src/components/models/ModelDetailPage.astro +++ b/src/components/models/ModelDetailPage.astro @@ -9,6 +9,7 @@ import ModelFeatures from "~/components/models/ModelFeatures.astro"; import SchemaDisplay from "~/components/models/SchemaDisplay.astro"; import SchemaDisplayFromRows from "~/components/models/SchemaDisplayFromRows.astro"; import SchemaFileLinks from "~/components/models/SchemaFileLinks.astro"; +import MultiModeParams from "~/components/models/MultiModeParams.astro"; import AnchorHeading from "~/components/AnchorHeading.astro"; import type { RowsPayload } from "~/components/models/SchemaDisplayFromRows.astro"; import ExampleCard from "~/components/models/ExampleCard.astro"; @@ -459,66 +460,50 @@ const starlightPageProps = { {/* Case 1: build-time schema with multiple API modes (production path) */} { - hasSchema && model.apiModes && model.apiModes.length > 1 && ( - <> - - {(() => { - const firstInputJson = JSON.stringify(model.apiModes[0].input); - const allInputsIdentical = model.apiModes.every( - (mode) => JSON.stringify(mode.input) === firstInputJson, - ); - return allInputsIdentical ? ( - <> -

    Input

    - -

    Output

    -
    - {model.apiModes.map((mode) => ( -
    - - {mode.name} - {mode.description && ( - - — {mode.description} - - )} - -
    - -
    -
    - ))} -
    - - ) : ( -
    + hasSchema && + model.apiModes && + model.apiModes.length > 1 && + (() => { + const firstInputJson = JSON.stringify(model.apiModes[0].input); + const allInputsIdentical = model.apiModes.every( + (mode) => JSON.stringify(mode.input) === firstInputJson, + ); + return ( + <> + + + {model.apiModes.map((mode) => ( -
    - - {mode.name} - {mode.description && ( - - — {mode.description} - - )} - -
    - - - - - - - - -
    -
    + <> + + + + ))} -
    - ); - })()} - - ) + + + ); + })() } {/* Case 2: build-time schema, flat (no apiModes) */} @@ -590,71 +575,44 @@ const starlightPageProps = { parametersMulti && ( <> - {multiModeAllInputsIdentical ? ( - <> -

    Input

    - -

    Output

    -
    - {parametersMulti.modes.map((id) => ( -
    - - {PARAM_MODE_NAMES[id] ?? id} - {PARAM_MODE_DESCRIPTIONS[id] && ( - - — {PARAM_MODE_DESCRIPTIONS[id]} - - )} - -
    - -
    -
    - ))} -
    - - ) : ( -
    - {parametersMulti.modes.map((id) => ( -
    - - {PARAM_MODE_NAMES[id] ?? id} - {PARAM_MODE_DESCRIPTIONS[id] && ( - - — {PARAM_MODE_DESCRIPTIONS[id]} - - )} - -
    - - - - - - - - -
    -
    - ))} -
    - )} + ({ + id, + name: PARAM_MODE_NAMES[id] ?? id, + description: PARAM_MODE_DESCRIPTIONS[id], + }))} + allInputsIdentical={multiModeAllInputsIdentical} + modelId={model.modelId} + > + + {parametersMulti.modes.map((id) => ( + <> + + + + + ))} + ) } diff --git a/src/components/models/MultiModeParams.astro b/src/components/models/MultiModeParams.astro new file mode 100644 index 000000000000000..425cdd1b58b8137 --- /dev/null +++ b/src/components/models/MultiModeParams.astro @@ -0,0 +1,83 @@ +--- +/** + * MultiModeParams — shared layout for multi-mode Parameters sections. + * + * Renders either: + * - Shared input: "Input" once + per-mode output collapsibles + * - Differing inputs: per-mode collapsibles with Input/Output slots inside + * + * The actual schema rendering is delegated to the caller via named slots. + * Slot naming convention: + * input — the shared input section (shared-input path) + * output-{modeId} — output for each mode (shared-input path) + * input-{modeId} — input inside per-mode collapsible (differing-inputs path) + * output-differing-{modeId} — output inside per-mode collapsible (differing-inputs path) + */ +import { Tabs, TabItem } from "~/components"; + +interface Mode { + id: string; + name: string; + description?: string; +} + +interface Props { + modes: Mode[]; + allInputsIdentical: boolean; + modelId: string; +} + +const { modes, allInputsIdentical, modelId } = Astro.props; +--- + +{ + allInputsIdentical ? ( + <> +

    Input

    + +

    Output

    +
    + {modes.map((mode) => ( +
    + + {mode.name} + {mode.description && ( + + — {mode.description} + + )} + +
    + +
    +
    + ))} +
    + + ) : ( +
    + {modes.map((mode) => ( +
    + + {mode.name} + {mode.description && ( + + — {mode.description} + + )} + +
    + + + + + + + + +
    +
    + ))} +
    + ) +} From 7772483af2b24e680e2d4f04fb07a6c79a9e7f21 Mon Sep 17 00:00:00 2001 From: mvm Date: Fri, 1 May 2026 11:25:50 -0500 Subject: [PATCH 25/37] Revert "Extract MultiModeParams.astro to deduplicate multi-mode collapsible layout" This reverts commit f373f62684a0dfd8d970aafe2cdf84255213bb0c. --- src/components/models/ModelDetailPage.astro | 204 ++++++++++++-------- src/components/models/MultiModeParams.astro | 83 -------- 2 files changed, 123 insertions(+), 164 deletions(-) delete mode 100644 src/components/models/MultiModeParams.astro diff --git a/src/components/models/ModelDetailPage.astro b/src/components/models/ModelDetailPage.astro index 906870fd4bd074b..d80ff8ddf8c452c 100644 --- a/src/components/models/ModelDetailPage.astro +++ b/src/components/models/ModelDetailPage.astro @@ -9,7 +9,6 @@ import ModelFeatures from "~/components/models/ModelFeatures.astro"; import SchemaDisplay from "~/components/models/SchemaDisplay.astro"; import SchemaDisplayFromRows from "~/components/models/SchemaDisplayFromRows.astro"; import SchemaFileLinks from "~/components/models/SchemaFileLinks.astro"; -import MultiModeParams from "~/components/models/MultiModeParams.astro"; import AnchorHeading from "~/components/AnchorHeading.astro"; import type { RowsPayload } from "~/components/models/SchemaDisplayFromRows.astro"; import ExampleCard from "~/components/models/ExampleCard.astro"; @@ -460,50 +459,66 @@ const starlightPageProps = { {/* Case 1: build-time schema with multiple API modes (production path) */} { - hasSchema && - model.apiModes && - model.apiModes.length > 1 && - (() => { - const firstInputJson = JSON.stringify(model.apiModes[0].input); - const allInputsIdentical = model.apiModes.every( - (mode) => JSON.stringify(mode.input) === firstInputJson, - ); - return ( - <> - - - + hasSchema && model.apiModes && model.apiModes.length > 1 && ( + <> + + {(() => { + const firstInputJson = JSON.stringify(model.apiModes[0].input); + const allInputsIdentical = model.apiModes.every( + (mode) => JSON.stringify(mode.input) === firstInputJson, + ); + return allInputsIdentical ? ( + <> +

    Input

    + +

    Output

    +
    + {model.apiModes.map((mode) => ( +
    + + {mode.name} + {mode.description && ( + + — {mode.description} + + )} + +
    + +
    +
    + ))} +
    + + ) : ( +
    {model.apiModes.map((mode) => ( - <> - - - - +
    + + {mode.name} + {mode.description && ( + + — {mode.description} + + )} + +
    + + + + + + + + +
    +
    ))} - - - ); - })() +
    + ); + })()} + + ) } {/* Case 2: build-time schema, flat (no apiModes) */} @@ -575,44 +590,71 @@ const starlightPageProps = { parametersMulti && ( <> - ({ - id, - name: PARAM_MODE_NAMES[id] ?? id, - description: PARAM_MODE_DESCRIPTIONS[id], - }))} - allInputsIdentical={multiModeAllInputsIdentical} - modelId={model.modelId} - > - - {parametersMulti.modes.map((id) => ( - <> - - - - - ))} - + {multiModeAllInputsIdentical ? ( + <> +

    Input

    + +

    Output

    +
    + {parametersMulti.modes.map((id) => ( +
    + + {PARAM_MODE_NAMES[id] ?? id} + {PARAM_MODE_DESCRIPTIONS[id] && ( + + — {PARAM_MODE_DESCRIPTIONS[id]} + + )} + +
    + +
    +
    + ))} +
    + + ) : ( +
    + {parametersMulti.modes.map((id) => ( +
    + + {PARAM_MODE_NAMES[id] ?? id} + {PARAM_MODE_DESCRIPTIONS[id] && ( + + — {PARAM_MODE_DESCRIPTIONS[id]} + + )} + +
    + + + + + + + + +
    +
    + ))} +
    + )} ) } diff --git a/src/components/models/MultiModeParams.astro b/src/components/models/MultiModeParams.astro deleted file mode 100644 index 425cdd1b58b8137..000000000000000 --- a/src/components/models/MultiModeParams.astro +++ /dev/null @@ -1,83 +0,0 @@ ---- -/** - * MultiModeParams — shared layout for multi-mode Parameters sections. - * - * Renders either: - * - Shared input: "Input" once + per-mode output collapsibles - * - Differing inputs: per-mode collapsibles with Input/Output slots inside - * - * The actual schema rendering is delegated to the caller via named slots. - * Slot naming convention: - * input — the shared input section (shared-input path) - * output-{modeId} — output for each mode (shared-input path) - * input-{modeId} — input inside per-mode collapsible (differing-inputs path) - * output-differing-{modeId} — output inside per-mode collapsible (differing-inputs path) - */ -import { Tabs, TabItem } from "~/components"; - -interface Mode { - id: string; - name: string; - description?: string; -} - -interface Props { - modes: Mode[]; - allInputsIdentical: boolean; - modelId: string; -} - -const { modes, allInputsIdentical, modelId } = Astro.props; ---- - -{ - allInputsIdentical ? ( - <> -

    Input

    - -

    Output

    -
    - {modes.map((mode) => ( -
    - - {mode.name} - {mode.description && ( - - — {mode.description} - - )} - -
    - -
    -
    - ))} -
    - - ) : ( -
    - {modes.map((mode) => ( -
    - - {mode.name} - {mode.description && ( - - — {mode.description} - - )} - -
    - - - - - - - - -
    -
    - ))} -
    - ) -} From c497c6adf2357296b79a39ddad560cbf0a32be23 Mon Sep 17 00:00:00 2001 From: mvm Date: Fri, 1 May 2026 11:36:13 -0500 Subject: [PATCH 26/37] Fix glossary link URL in ModelFeatures MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit /workers-ai/glossary/ → /workers-ai/platform/glossary/ --- src/components/models/ModelFeatures.astro | 2 +- src/components/models/ModelFeatures.tsx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/models/ModelFeatures.astro b/src/components/models/ModelFeatures.astro index cd07762f915e4f8..97d3c0bcc9919ea 100644 --- a/src/components/models/ModelFeatures.astro +++ b/src/components/models/ModelFeatures.astro @@ -72,7 +72,7 @@ const dashPricingUrl = Context Window{" "} - + diff --git a/src/components/models/ModelFeatures.tsx b/src/components/models/ModelFeatures.tsx index e3fda3fb84cbc74..709e89af08e29cd 100644 --- a/src/components/models/ModelFeatures.tsx +++ b/src/components/models/ModelFeatures.tsx @@ -59,7 +59,7 @@ const ModelFeatures = ({ model }: { model: ModelType }) => { Context Window - + From a6301b530be47d13a719708b4232ef9dcfff4434 Mon Sep 17 00:00:00 2001 From: mvm Date: Fri, 1 May 2026 11:58:05 -0500 Subject: [PATCH 27/37] Address bonk review findings - model-resolver.ts: filter .rows.json from schemaFiles defensively (worker proxy only serves raw .json schema files) - ModelDetailPage.astro: clarify Cases 1 and 2 are legacy/unused paths now that detailToResolved always sets empty schema/apiModes - ModelFeatures.astro: add trailing slash to /workers-ai/function-calling/ - bin/compare-model-sources.ts: delete dead code referencing deleted local JSON directories - AGENTS.md: replace deleted workers-ai-models collection with new ai-catalog and workers-ai-catalog middlecache-backed collections --- AGENTS.md | 3 +- bin/compare-model-sources.ts | 146 -------------------- src/components/models/ModelDetailPage.astro | 6 +- src/components/models/ModelFeatures.astro | 2 +- src/util/model-resolver.ts | 10 +- 5 files changed, 13 insertions(+), 154 deletions(-) delete mode 100644 bin/compare-model-sources.ts diff --git a/AGENTS.md b/AGENTS.md index db167aa4385bab5..6af9aa0531ec39c 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -337,7 +337,8 @@ The site defines 20 content collections in `src/content.config.ts` with schemas | `glossary` | `src/content/glossary/` | Glossary terms (YAML) | | `products` | `src/content/products/` | Product metadata (YAML) | | `plans` | `src/content/plans/` | Plan/pricing data (YAML) | -| `workers-ai-models` | `src/content/workers-ai-models/` | AI model definitions (JSON) | +| `ai-catalog` | middlecache (`v1/workers-ai-model-catalog/ai-catalog.json`) | All AI models, card fields only (fetched at build time via `middlecacheLoader`) | +| `workers-ai-catalog` | middlecache (`v1/workers-ai-model-catalog/workers-ai-catalog.json`) | Workers AI-only model subset, card fields only | | `directory` | `src/content/directory/` | Product/feature directory entries (YAML) | | `fields` | `src/content/fields/` | Ruleset engine field definitions (YAML) | | `learning-paths` | `src/content/learning-paths/` | Learning path definitions (JSON) | diff --git a/bin/compare-model-sources.ts b/bin/compare-model-sources.ts deleted file mode 100644 index 7795bc0c05efc64..000000000000000 --- a/bin/compare-model-sources.ts +++ /dev/null @@ -1,146 +0,0 @@ -/** - * Compares models between the catalog and legacy data sources. - * Outputs a report showing migration progress and field coverage. - * - * Usage: - * npx tsx bin/compare-model-sources.ts - */ - -import fs from "node:fs"; -import path from "node:path"; - -interface LegacyModel { - name: string; - description: string; - task: { name: string }; - properties: Array<{ property_id: string; value: unknown }>; -} - -interface CatalogModel { - model_id: string; - name: string; - description: string; - task: string; - code_snippets?: Array<{ label: string; code: string }>; - examples?: Array<{ name: string }>; - context_length?: number; - pricing?: Record; -} - -const LEGACY_DIR = path.join(process.cwd(), "src/content/workers-ai-models"); -const CATALOG_DIR = path.join(process.cwd(), "src/content/catalog-models"); - -function loadJsonFiles(dir: string): Map { - const result = new Map(); - - if (!fs.existsSync(dir)) { - return result; - } - - const files = fs.readdirSync(dir).filter((f) => f.endsWith(".json")); - - for (const file of files) { - const content = fs.readFileSync(path.join(dir, file), "utf-8"); - const data = JSON.parse(content) as T; - const slug = file.replace(".json", ""); - result.set(slug, data); - } - - return result; -} - -function main() { - console.log("Model Sources Comparison Report"); - console.log("================================\n"); - - const legacyModels = loadJsonFiles(LEGACY_DIR); - const catalogModels = loadJsonFiles(CATALOG_DIR); - - // Convert catalog models to slug-keyed map - const catalogBySlug = new Map(); - for (const [, model] of catalogModels) { - catalogBySlug.set(model.model_id, model); - } - - // Convert legacy models to slug-keyed map - const legacyBySlug = new Map(); - for (const [, model] of legacyModels) { - const slug = model.name; - legacyBySlug.set(slug, model); - } - - const catalogSlugs = new Set(catalogBySlug.keys()); - const legacySlugs = new Set(legacyBySlug.keys()); - - // Calculate sets - const onlyInCatalog = [...catalogSlugs].filter((s) => !legacySlugs.has(s)); - const onlyInLegacy = [...legacySlugs].filter((s) => !catalogSlugs.has(s)); - const inBoth = [...catalogSlugs].filter((s) => legacySlugs.has(s)); - - console.log("Summary"); - console.log("-------"); - console.log(`Total legacy models: ${legacySlugs.size}`); - console.log(`Total catalog models: ${catalogSlugs.size}`); - console.log(`Models in both: ${inBoth.length} (catalog wins)`); - console.log(`Only in catalog: ${onlyInCatalog.length}`); - console.log(`Only in legacy: ${onlyInLegacy.length}`); - console.log(); - - // Field coverage for catalog models - let withCodeSnippets = 0; - let withExamples = 0; - let withContextLength = 0; - let withPricing = 0; - - for (const [, model] of catalogBySlug) { - if (model.code_snippets && model.code_snippets.length > 0) - withCodeSnippets++; - if (model.examples && model.examples.length > 0) withExamples++; - if (model.context_length != null) withContextLength++; - if (model.pricing && Object.keys(model.pricing).length > 0) withPricing++; - } - - const pct = (n: number, total: number) => - total > 0 ? Math.round((n / total) * 100) : 0; - - console.log("Catalog Field Coverage"); - console.log("----------------------"); - console.log( - `With code snippets: ${withCodeSnippets}/${catalogSlugs.size} (${pct(withCodeSnippets, catalogSlugs.size)}%)`, - ); - console.log( - `With examples: ${withExamples}/${catalogSlugs.size} (${pct(withExamples, catalogSlugs.size)}%)`, - ); - console.log( - `With context length: ${withContextLength}/${catalogSlugs.size} (${pct(withContextLength, catalogSlugs.size)}%)`, - ); - console.log( - `With pricing: ${withPricing}/${catalogSlugs.size} (${pct(withPricing, catalogSlugs.size)}%)`, - ); - console.log(); - - if (onlyInCatalog.length > 0) { - console.log("Models only in catalog (new):"); - onlyInCatalog.forEach((s) => console.log(` - ${s}`)); - console.log(); - } - - if (onlyInLegacy.length > 0) { - console.log("Models only in legacy (not yet in catalog):"); - onlyInLegacy.forEach((s) => console.log(` - ${s}`)); - console.log(); - } - - // Migration progress - const migrated = inBoth.length + onlyInCatalog.length; - const total = legacySlugs.size + onlyInCatalog.length; - const progress = pct(migrated, total); - - console.log("Migration Progress"); - console.log("------------------"); - console.log( - `${migrated}/${total} models available via catalog (${progress}%)`, - ); -} - -main(); diff --git a/src/components/models/ModelDetailPage.astro b/src/components/models/ModelDetailPage.astro index d80ff8ddf8c452c..5109b3081fca30f 100644 --- a/src/components/models/ModelDetailPage.astro +++ b/src/components/models/ModelDetailPage.astro @@ -457,7 +457,9 @@ const starlightPageProps = { ) } - {/* Case 1: build-time schema with multiple API modes (production path) */} + { + /* Case 1: build-time schema with multiple API modes (legacy path, unused with middlecache) */ + } { hasSchema && model.apiModes && model.apiModes.length > 1 && ( <> @@ -521,7 +523,7 @@ const starlightPageProps = { ) } - {/* Case 2: build-time schema, flat (no apiModes) */} + {/* Case 2: build-time schema, flat (legacy path, unused with middlecache) */} { hasSchema && !(model.apiModes && model.apiModes.length > 1) && ( <> diff --git a/src/components/models/ModelFeatures.astro b/src/components/models/ModelFeatures.astro index 97d3c0bcc9919ea..8409c4eba8e122a 100644 --- a/src/components/models/ModelFeatures.astro +++ b/src/components/models/ModelFeatures.astro @@ -123,7 +123,7 @@ const dashPricingUrl = Function calling{" "} - + diff --git a/src/util/model-resolver.ts b/src/util/model-resolver.ts index 9d9397474ac95e8..f872052fe155183 100644 --- a/src/util/model-resolver.ts +++ b/src/util/model-resolver.ts @@ -61,10 +61,12 @@ function detailToResolved(detail: AiModelDetail): ResolvedModel { // request time. Keep schema empty so hasSchema is false (Parameters hidden). const schema = { input: {}, output: {} }; - // schema_manifest.raw_files: filenames for "API Schemas (Raw)" download links - // The URL base for both parameters.json and raw files is /ai/models/{slug}/ - // where slug = model_id with leading @ stripped (i.e. detail.slug) - const schemaFiles = detail.schema_manifest.raw_files; + // schema_manifest.raw_files: filenames for "API Schemas (Raw)" download links. + // Filter out .rows.json entries defensively — the worker proxy only serves + // raw .json schema files; .rows.json would result in a 404 download link. + const schemaFiles = detail.schema_manifest.raw_files.filter( + (f) => !f.endsWith(".rows.json"), + ); return { name: detail.model_id, From b3aabc7f393dcd3182cb4899578cecf8a91cba4a Mon Sep 17 00:00:00 2001 From: mvm Date: Sat, 2 May 2026 23:32:14 -0500 Subject: [PATCH 28/37] Extract models.tar.gz at build time for faster retrieval MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - bin/fetch-models.ts: downloads models.tar.gz from middlecache and extracts to .tmp/middlecache/v1/workers-ai-model-catalog/models/ (same pattern as bin/fetch-skills.ts) - package.json: wire into prebuild and predev hooks - ModelDetailPage.astro: use downloadToDotTempIfNotPresent for parameters.json — reads from .tmp/ if already extracted by fetch-models.ts (no-op), otherwise fetches from middlecache HTTP --- bin/fetch-models.ts | 101 ++++++++++++++++++++ package.json | 4 +- src/components/models/ModelDetailPage.astro | 29 +++--- 3 files changed, 121 insertions(+), 13 deletions(-) create mode 100644 bin/fetch-models.ts diff --git a/bin/fetch-models.ts b/bin/fetch-models.ts new file mode 100644 index 000000000000000..814e87c91bbf193 --- /dev/null +++ b/bin/fetch-models.ts @@ -0,0 +1,101 @@ +#!/usr/bin/env tsx + +/** + * Downloads and extracts the workers_ai_model_catalog models.tar.gz from + * middlecache into .tmp/middlecache/v1/workers-ai-model-catalog/models/. + * + * This runs as a prebuild/predev hook so cloudflare-docs can read + * parameters.json and schema files from the local filesystem at build time + * instead of making per-model HTTP requests. + * + * Flags: + * --soft Warn and continue on failure (used by predev so a network + * failure doesn't block local development) + * --force Re-fetch even if the models directory already exists + */ + +import { spawn } from "child_process"; +import fs from "fs"; +import { join } from "path"; + +import { downloadToDotTempIfNotPresent } from "../src/util/custom-loaders"; + +const MIDDLECACHE_BASE_URL = "https://middlecache.ced.cloudflare.com/"; +const TARBALL_MIDDLECACHE_PATH = "v1/workers-ai-model-catalog/models.tar.gz"; +const TARBALL_DOT_TMP_PATH = `middlecache/${TARBALL_MIDDLECACHE_PATH}`; + +// The extracted models/ directory inside .tmp/middlecache/v1/workers-ai-model-catalog/ +const MODELS_DOT_TMP_DIR = + ".tmp/middlecache/v1/workers-ai-model-catalog/models"; + +const soft = process.argv.includes("--soft"); +const force = process.argv.includes("--force"); + +const fail = (message: string): never => { + if (soft) { + const hasExisting = fs.existsSync(MODELS_DOT_TMP_DIR); + console.warn( + hasExisting + ? `Warning: ${message} — continuing with existing models data` + : `Warning: ${message} — ${MODELS_DOT_TMP_DIR} does not exist, model parameters will not render`, + ); + process.exit(0); + } + console.error(`Error: ${message}`); + process.exit(1); +}; + +if (fs.existsSync(MODELS_DOT_TMP_DIR) && !force) { + console.log( + `${MODELS_DOT_TMP_DIR} already exists, skipping fetch. (run with --force to re-fetch)`, + ); + process.exit(0); +} + +console.log("Fetching AI model catalog from middlecache..."); + +try { + await downloadToDotTempIfNotPresent( + `${MIDDLECACHE_BASE_URL}${TARBALL_MIDDLECACHE_PATH}`, + TARBALL_DOT_TMP_PATH, + ); +} catch (err) { + fail(`fetch failed: ${err}`); +} + +const tarballPath = join(".tmp", ...TARBALL_DOT_TMP_PATH.split("/")); +const extractDir = join( + ".tmp", + "middlecache", + "v1", + "workers-ai-model-catalog", +); + +// Remove existing models/ directory so stale data doesn't accumulate +fs.rmSync(MODELS_DOT_TMP_DIR, { recursive: true, force: true }); +fs.mkdirSync(extractDir, { recursive: true }); + +// Extract models.tar.gz into .tmp/middlecache/v1/workers-ai-model-catalog/ +// The archive contains models//... so we extract into the parent dir. +const tar = spawn("tar", ["-xzf", tarballPath, "-C", extractDir], { + stdio: "inherit", +}); + +const exitCode = await new Promise((resolve) => + tar.on("close", resolve), +); + +if (exitCode !== 0) { + fail(`tar exited with code ${exitCode}`); +} + +const modelCount = fs + .readdirSync(MODELS_DOT_TMP_DIR, { withFileTypes: true }) + .reduce((count, entry) => { + // Count top-level dirs and second-level dirs (e.g. cf/meta/llama or openai/gpt) + return count + (entry.isDirectory() ? 1 : 0); + }, 0); + +console.log( + `Extracted models.tar.gz to ${MODELS_DOT_TMP_DIR} (${modelCount} top-level entries)`, +); diff --git a/package.json b/package.json index 39973bc642b9f70..3898d386b95169e 100644 --- a/package.json +++ b/package.json @@ -5,13 +5,13 @@ "scripts": { "preinstall": "pnpx only-allow pnpm", "astro": "astro", - "prebuild": "tsx bin/fetch-skills.ts", + "prebuild": "tsx bin/fetch-skills.ts && tsx bin/fetch-models.ts", "build": "export NODE_OPTIONS='--max-old-space-size=8192' || set NODE_OPTIONS=\"--max-old-space-size=8192\" && astro build", "typegen:worker": "wrangler types ./worker/worker-configuration.d.ts", "check": "pnpm run check:astro && pnpm run check:worker", "check:astro": "astro check", "check:worker": "tsc --noEmit -p ./worker/tsconfig.json", - "predev": "tsx bin/fetch-skills.ts --soft", + "predev": "tsx bin/fetch-skills.ts --soft && tsx bin/fetch-models.ts --soft", "dev": "astro dev", "format": "pnpm run format:core:fix && pnpm run format:data", "format:core": "prettier \"**/*.{js,jsx,ts,tsx,mjs,css}\"", diff --git a/src/components/models/ModelDetailPage.astro b/src/components/models/ModelDetailPage.astro index 5109b3081fca30f..7dc2b021bd90ebf 100644 --- a/src/components/models/ModelDetailPage.astro +++ b/src/components/models/ModelDetailPage.astro @@ -42,6 +42,10 @@ import { authorData } from "~/components/models/data"; import { hasProperty } from "~/util/model-properties"; import { getModelAuthor } from "~/util/model-resolver"; import type { ResolvedModel } from "~/util/model-types"; +import fs from "node:fs"; +import { join } from "node:path"; +import { fileURLToPath } from "node:url"; +import { downloadToDotTempIfNotPresent } from "~/util/custom-loaders"; interface Props { model: ResolvedModel; @@ -181,20 +185,23 @@ type ParametersPayload = let parametersData: ParametersPayload | null = null; if (hasSchemaFiles) { + // Use downloadToDotTempIfNotPresent — same mechanism as middlecacheLoader and + // fetchAllModelDetails. If bin/fetch-models.ts already extracted the tarball, + // the file exists in .tmp/ and this is a no-op. Otherwise it fetches from HTTP. + const r2Path = `v1/workers-ai-model-catalog/models/${r2Slug}/parameters.json`; try { - const middlewareCacheBase = "https://middlecache.ced.cloudflare.com/"; - const r2Key = `v1/workers-ai-model-catalog/models/${r2Slug}/parameters.json`; - const res = await fetch(`${middlewareCacheBase}${r2Key}`); - if (res.ok) { - parametersData = (await res.json()) as ParametersPayload; - } else { - console.warn( - `ModelDetailPage: parameters.json fetch failed (${res.status}) for ${r2Slug}`, - ); - } + await downloadToDotTempIfNotPresent( + `https://middlecache.ced.cloudflare.com/${r2Path}`, + `middlecache/${r2Path}`, + ); + const dotTmpPath = fileURLToPath(new URL("../../.tmp", import.meta.url)); + const localPath = join(dotTmpPath, "middlecache", r2Path); + parametersData = JSON.parse( + fs.readFileSync(localPath, "utf8"), + ) as ParametersPayload; } catch (e) { console.warn( - `ModelDetailPage: parameters.json fetch error for ${r2Slug}:`, + `ModelDetailPage: parameters.json unavailable for ${r2Slug}:`, e, ); } From 5b74d75a49c9fc83aede2195cf08c3a05760fee7 Mon Sep 17 00:00:00 2001 From: mvm Date: Sun, 3 May 2026 11:55:53 -0500 Subject: [PATCH 29/37] Add workflow_dispatch to publish-production workflow Allows triggering a production rebuild programmatically via the GitHub Actions API without needing to push a commit. --- .github/workflows/publish-production.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/publish-production.yml b/.github/workflows/publish-production.yml index 1d03dc7b06e4160..c5dcdf45ddd818f 100644 --- a/.github/workflows/publish-production.yml +++ b/.github/workflows/publish-production.yml @@ -3,6 +3,7 @@ on: push: branches: - production + workflow_dispatch: jobs: publish: From 7c02821d87a360705754cf71905e295947115616 Mon Sep 17 00:00:00 2001 From: mvm Date: Sun, 3 May 2026 12:30:51 -0500 Subject: [PATCH 30/37] Fix .tmp path resolution in ModelDetailPage and clear stale cache in fetch-models MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - getDotTmpPath() in model-resolver.ts resolves .tmp/ relative to src/util/ (repo root) — ModelDetailPage.astro was resolving from src/components/models/ giving src/.tmp/ instead of .tmp/ - fetch-models.ts now clears stale catalog files on each run so all-models-detail.json etc. are always re-fetched after a pipeline graduation --- bin/fetch-models.ts | 14 ++++++++++++-- src/components/models/ModelDetailPage.astro | 6 ++---- src/util/model-resolver.ts | 9 +++++++++ 3 files changed, 23 insertions(+), 6 deletions(-) diff --git a/bin/fetch-models.ts b/bin/fetch-models.ts index 814e87c91bbf193..d980d0ee7319bc5 100644 --- a/bin/fetch-models.ts +++ b/bin/fetch-models.ts @@ -47,7 +47,7 @@ const fail = (message: string): never => { if (fs.existsSync(MODELS_DOT_TMP_DIR) && !force) { console.log( - `${MODELS_DOT_TMP_DIR} already exists, skipping fetch. (run with --force to re-fetch)`, + `${MODELS_DOT_TMP_DIR} already exists, skipping fetch. (run \`pnpm tsx bin/fetch-models.ts --force\` to re-fetch)`, ); process.exit(0); } @@ -71,8 +71,18 @@ const extractDir = join( "workers-ai-model-catalog", ); -// Remove existing models/ directory so stale data doesn't accumulate +// Remove existing models/ directory so stale data doesn't accumulate. +// Also remove the other catalog files so they are re-fetched fresh on the +// next build — their content changes whenever the pipeline re-graduates. fs.rmSync(MODELS_DOT_TMP_DIR, { recursive: true, force: true }); +for (const staleName of [ + "ai-catalog.json", + "workers-ai-catalog.json", + "all-models-detail.json", + "models.tar.gz", +]) { + fs.rmSync(join(extractDir, staleName), { force: true }); +} fs.mkdirSync(extractDir, { recursive: true }); // Extract models.tar.gz into .tmp/middlecache/v1/workers-ai-model-catalog/ diff --git a/src/components/models/ModelDetailPage.astro b/src/components/models/ModelDetailPage.astro index 7dc2b021bd90ebf..4fd4df8b63cffca 100644 --- a/src/components/models/ModelDetailPage.astro +++ b/src/components/models/ModelDetailPage.astro @@ -40,11 +40,10 @@ import DeepgramFlux from "~/components/models/code/DeepgramFlux.astro"; import Render from "~/components/Render.astro"; import { authorData } from "~/components/models/data"; import { hasProperty } from "~/util/model-properties"; -import { getModelAuthor } from "~/util/model-resolver"; +import { getModelAuthor, getDotTmpPath } from "~/util/model-resolver"; import type { ResolvedModel } from "~/util/model-types"; import fs from "node:fs"; import { join } from "node:path"; -import { fileURLToPath } from "node:url"; import { downloadToDotTempIfNotPresent } from "~/util/custom-loaders"; interface Props { @@ -194,8 +193,7 @@ if (hasSchemaFiles) { `https://middlecache.ced.cloudflare.com/${r2Path}`, `middlecache/${r2Path}`, ); - const dotTmpPath = fileURLToPath(new URL("../../.tmp", import.meta.url)); - const localPath = join(dotTmpPath, "middlecache", r2Path); + const localPath = join(getDotTmpPath(), "middlecache", r2Path); parametersData = JSON.parse( fs.readFileSync(localPath, "utf8"), ) as ParametersPayload; diff --git a/src/util/model-resolver.ts b/src/util/model-resolver.ts index f872052fe155183..b159a3f4c3088d9 100644 --- a/src/util/model-resolver.ts +++ b/src/util/model-resolver.ts @@ -16,6 +16,15 @@ const MIDDLECACHE_BASE = "https://middlecache.ced.cloudflare.com/"; const ALL_MODELS_DETAIL_PATH = "v1/workers-ai-model-catalog/all-models-detail.json"; +/** + * Returns the absolute path to the .tmp/ directory at the repo root. + * Centralised here so components don't have to compute relative paths + * from their own location (which varies). + */ +export function getDotTmpPath(): string { + return fileURLToPath(new URL("../../.tmp", import.meta.url)); +} + /** * Convert a middlecache AiModelCard to the ResolvedModel format expected by * components. Card entries carry card-level fields only — schema and examples From 7d1b3607f1420b21f344f032015727da1c58d9a2 Mon Sep 17 00:00:00 2001 From: mvm Date: Sun, 3 May 2026 12:42:15 -0500 Subject: [PATCH 31/37] Add colored prefix tags and fix stale-cache ordering in fetch scripts - [fetch-models] and [fetch-skills] blue prefix tags via kleur - dim text for skip message, cyan for re-fetch hint - fetch-models: move stale cache cleanup before download so downloadToDotTempIfNotPresent always re-fetches after --force --- bin/fetch-models.ts | 48 +++++++++++++++++++++++++-------------------- bin/fetch-skills.ts | 8 +++++++- 2 files changed, 34 insertions(+), 22 deletions(-) diff --git a/bin/fetch-models.ts b/bin/fetch-models.ts index d980d0ee7319bc5..5ab382fc261f884 100644 --- a/bin/fetch-models.ts +++ b/bin/fetch-models.ts @@ -18,6 +18,8 @@ import { spawn } from "child_process"; import fs from "fs"; import { join } from "path"; +import kleur from "kleur"; + import { downloadToDotTempIfNotPresent } from "../src/util/custom-loaders"; const MIDDLECACHE_BASE_URL = "https://middlecache.ced.cloudflare.com/"; @@ -45,24 +47,6 @@ const fail = (message: string): never => { process.exit(1); }; -if (fs.existsSync(MODELS_DOT_TMP_DIR) && !force) { - console.log( - `${MODELS_DOT_TMP_DIR} already exists, skipping fetch. (run \`pnpm tsx bin/fetch-models.ts --force\` to re-fetch)`, - ); - process.exit(0); -} - -console.log("Fetching AI model catalog from middlecache..."); - -try { - await downloadToDotTempIfNotPresent( - `${MIDDLECACHE_BASE_URL}${TARBALL_MIDDLECACHE_PATH}`, - TARBALL_DOT_TMP_PATH, - ); -} catch (err) { - fail(`fetch failed: ${err}`); -} - const tarballPath = join(".tmp", ...TARBALL_DOT_TMP_PATH.split("/")); const extractDir = join( ".tmp", @@ -71,9 +55,20 @@ const extractDir = join( "workers-ai-model-catalog", ); -// Remove existing models/ directory so stale data doesn't accumulate. -// Also remove the other catalog files so they are re-fetched fresh on the -// next build — their content changes whenever the pipeline re-graduates. +if (fs.existsSync(MODELS_DOT_TMP_DIR) && !force) { + console.log( + kleur.blue("[fetch-models]") + + " " + + kleur.dim(`${MODELS_DOT_TMP_DIR} already exists, skipping fetch.`) + + " " + + kleur.cyan("(run `pnpm tsx bin/fetch-models.ts --force` to re-fetch)"), + ); + process.exit(0); +} + +// Clear stale data before downloading so catalog files are always fresh +// after a pipeline graduation. Must happen before downloadToDotTempIfNotPresent +// so it re-fetches files it would otherwise skip as "already present". fs.rmSync(MODELS_DOT_TMP_DIR, { recursive: true, force: true }); for (const staleName of [ "ai-catalog.json", @@ -85,6 +80,17 @@ for (const staleName of [ } fs.mkdirSync(extractDir, { recursive: true }); +console.log("Fetching AI model catalog from middlecache..."); + +try { + await downloadToDotTempIfNotPresent( + `${MIDDLECACHE_BASE_URL}${TARBALL_MIDDLECACHE_PATH}`, + TARBALL_DOT_TMP_PATH, + ); +} catch (err) { + fail(`fetch failed: ${err}`); +} + // Extract models.tar.gz into .tmp/middlecache/v1/workers-ai-model-catalog/ // The archive contains models//... so we extract into the parent dir. const tar = spawn("tar", ["-xzf", tarballPath, "-C", extractDir], { diff --git a/bin/fetch-skills.ts b/bin/fetch-skills.ts index db2109bc7b8fe58..d472c3d9b7ee40b 100644 --- a/bin/fetch-skills.ts +++ b/bin/fetch-skills.ts @@ -4,6 +4,8 @@ import { spawn } from "child_process"; import fs from "fs"; import { join } from "path"; +import kleur from "kleur"; + import { downloadToDotTempIfNotPresent } from "../src/util/custom-loaders"; const MIDDLECACHE_BASE_URL = "https://middlecache.ced.cloudflare.com/"; @@ -35,7 +37,11 @@ const fail = (message: string): never => { if (fs.existsSync(SKILLS_DIR) && !force) { console.log( - "/skills directory already exists, skipping fetch. (run `pnpm tsx bin/fetch-skills.ts --force` to re-fetch)", + kleur.blue("[fetch-skills]") + + " " + + kleur.dim(`${SKILLS_DIR} already exists, skipping fetch.`) + + " " + + kleur.cyan("(run `pnpm tsx bin/fetch-skills.ts --force` to re-fetch)"), ); process.exit(0); } From 46bd8a9965f26853b0c3225b10a1955a506dbcaf Mon Sep 17 00:00:00 2001 From: mvm Date: Sun, 3 May 2026 12:59:11 -0500 Subject: [PATCH 32/37] Convert ModelCatalog from React to Astro - ModelCatalog.astro: server-renders all cards as static HTML with data-* attributes; vanilla JS diff --git a/src/components/ModelCatalog.tsx b/src/components/ModelCatalog.tsx deleted file mode 100644 index a3593b5796cad39..000000000000000 --- a/src/components/ModelCatalog.tsx +++ /dev/null @@ -1,516 +0,0 @@ -import { useEffect, useRef, useState, useMemo } from "react"; -import { Combobox } from "@base-ui/react/combobox"; -import { Select } from "@base-ui/react/select"; -import ModelInfo from "./models/ModelInfo"; -import ModelBadges from "./models/ModelBadges"; -import { authorData } from "./models/data"; -import type { ModelCardData } from "~/util/model-types"; -import { getModelAuthor } from "~/util/model-helpers"; -import { setSearchParams } from "~/util/url"; -import { - getCapabilities, - getLabelsByCategory, - hasProperty, -} from "~/util/model-properties"; - -type Filters = { - search: string; - authors: string[]; - tasks: string[]; - capabilities: string[]; -}; - -type SortOrder = "newest" | "oldest"; - -interface FilterItem { - value: string; - label: string; -} - -function FilterDropdown({ - label, - items, - selected, - onChange, -}: { - label: string; - items: FilterItem[]; - selected: string[]; - onChange: (selected: string[]) => void; -}) { - const hasSelection = selected.length > 0; - const triggerLabel = hasSelection ? `${label} (+${selected.length})` : label; - - const selectedItems = items.filter((item) => selected.includes(item.value)); - - return ( - - onChange((value as FilterItem[]).map((item) => item.value)) - } - items={items} - isItemEqualToValue={(a, b) => a.value === b.value} - > - - {label}}> - {() => triggerLabel} - - - - - - - - -
    - -
    - -
    - No results found. -
    -
    - - {(item: FilterItem) => ( - - - - - - - - {item.label} - - - )} - -
    -
    -
    -
    - ); -} - -const sortOptions = [ - { value: "newest", label: "Newest first" }, - { value: "oldest", label: "Oldest first" }, -]; - -function SortSelect({ - sortOrder, - onChange, -}: { - sortOrder: SortOrder; - onChange: (value: SortOrder) => void; -}) { - return ( - onChange(value as SortOrder)} - items={sortOptions} - > - - - {() => - sortOptions.find((o) => o.value === sortOrder)?.label ?? - "Newest first" - } - - - - - - - - - {sortOptions.map((option) => ( - - - - - - {option.label} - - - ))} - - - - - ); -} - -function ChevronUpDownIcon() { - return ( - - - - - ); -} - -function CheckIcon() { - return ( - - - - ); -} - -// List of model names to pin at the top -const pinnedModelNames = [ - "@cf/moonshotai/kimi-k2.6", - "@cf/zai-org/glm-4.7-flash", - "@cf/openai/gpt-oss-120b", - "@cf/meta/llama-4-scout-17b-16e-instruct", -]; - -const ModelCatalog = ({ - models, - basePath = "/ai/models", -}: { - models: ModelCardData[]; - basePath?: string; -}) => { - const [filters, setFilters] = useState({ - search: "", - authors: [], - tasks: [], - capabilities: [], - }); - const [sortOrder, setSortOrder] = useState("newest"); - const initializedRef = useRef(false); - - // Sort models by pinned status first, then by created_at date - const sortedModels = useMemo(() => { - return [...models].sort((a, b) => { - // First check if either model is pinned - const isPinnedA = pinnedModelNames.includes(a.name); - const isPinnedB = pinnedModelNames.includes(b.name); - - // If pinned status differs, prioritize pinned models - if (isPinnedA && !isPinnedB) return -1; - if (!isPinnedA && isPinnedB) return 1; - - // If both are pinned, sort by position in pinnedModelNames array (for manual ordering) - if (isPinnedA && isPinnedB) { - return ( - pinnedModelNames.indexOf(a.name) - pinnedModelNames.indexOf(b.name) - ); - } - - // If neither is pinned, sort by created_at date - const dateA = a.created_at ? new Date(a.created_at) : new Date(0); - const dateB = b.created_at ? new Date(b.created_at) : new Date(0); - return sortOrder === "newest" - ? dateB.getTime() - dateA.getTime() - : dateA.getTime() - dateB.getTime(); - }); - }, [models, sortOrder]); - - useEffect(() => { - const params = new URLSearchParams(window.location.search); - - const search = params.get("search") ?? ""; - const authors = params.getAll("authors"); - const tasks = params.getAll("tasks"); - const capabilities = params.getAll("capabilities"); - - setFilters({ - search, - authors, - tasks, - capabilities, - }); - initializedRef.current = true; - }, []); - - useEffect(() => { - if (!initializedRef.current) return; - - const params = new URLSearchParams(); - - if (filters.search) { - params.set("search", filters.search); - } - - if (filters.authors.length > 0) { - filters.authors.forEach((author) => params.append("authors", author)); - } - - if (filters.tasks.length > 0) { - filters.tasks.forEach((task) => params.append("tasks", task)); - } - - if (filters.capabilities.length > 0) { - filters.capabilities.forEach((capability) => - params.append("capabilities", capability), - ); - } - - setSearchParams(params); - }, [filters]); - - const mapped = sortedModels.map((model) => ({ - model: { - ...model, - capabilities: getCapabilities(model.properties), - }, - model_display_name: model.name.split("/").at(-1), - })); - - const getAuthorDisplayName = (id: string) => authorData[id]?.name ?? id; - - const taskItems: FilterItem[] = useMemo( - () => - [...new Set(models.map((model) => model.task.name))] - .sort() - .map((t) => ({ value: t, label: t })), - [models], - ); - - const authorItems: FilterItem[] = useMemo( - () => - [ - ...new Map( - models - .map((model) => getModelAuthor(model.name)) - .map((id) => [getAuthorDisplayName(id), id] as const), - ).values(), - ] - .sort((a, b) => - getAuthorDisplayName(a).localeCompare(getAuthorDisplayName(b)), - ) - .map((a) => ({ value: a, label: getAuthorDisplayName(a) })), - [models], - ); - - const capabilityItems: FilterItem[] = useMemo( - () => - [ - ...getLabelsByCategory(models, "model"), - ...getLabelsByCategory(models, "platform"), - ].map((c) => ({ value: c, label: c })), - [models], - ); - - const modelList = mapped.filter(({ model }) => { - if (filters.authors.length > 0) { - const selectedAuthorNames = new Set( - filters.authors.map(getAuthorDisplayName), - ); - const modelAuthorName = getAuthorDisplayName(getModelAuthor(model.name)); - if (!selectedAuthorNames.has(modelAuthorName)) { - return false; - } - } - - if (filters.tasks.length > 0) { - if (!filters.tasks.includes(model.task.name)) { - return false; - } - } - - if (filters.capabilities.length > 0) { - if (!model.capabilities.some((c) => filters.capabilities.includes(c))) { - return false; - } - } - - if (filters.search) { - if (!model.name.toLowerCase().includes(filters.search.toLowerCase())) { - return false; - } - } - - return true; - }); - - const hasActiveFilters = - filters.authors.length > 0 || - filters.tasks.length > 0 || - filters.capabilities.length > 0; - - return ( -
    - {/* Toolbar */} -
    - {/* Search input */} -
    - - - - setFilters({ ...filters, search: e.target.value })} - /> -
    - - {/* Filter dropdowns */} -
    - setFilters({ ...filters, tasks })} - /> - - setFilters({ ...filters, capabilities }) - } - /> - setFilters({ ...filters, authors })} - /> - -
    -
    - - {/* Active filters + count */} -
    - - We found{" "} - - {modelList.length} - {" "} - {modelList.length === 1 ? "model" : "models"} - - {hasActiveFilters && ( - - )} -
    - - {/* Model cards grid */} -
    - {modelList.length === 0 && ( -
    - No models found -

    - Try a different search term, or broaden your search by removing - filters. -

    -
    - )} - {modelList.map((model) => { - const isBeta = hasProperty(model.model.properties, "beta"); - - const author = getModelAuthor(model.model.name); - const authorInfo = authorData[author]; - const isPinned = pinnedModelNames.includes(model.model.name); - - return ( - - {isPinned && ( - - 📌 - - )} -
    - {authorInfo?.logo ? ( - {`${authorInfo.name} - ) : ( -
    - {author.slice(0, 1)} -
    - )} - - {model.model_display_name} - - {isBeta && Beta} -
    -
    - -
    -

    - {model.model.description} -

    -
    - -
    -
    - ); - })} -
    -
    - ); -}; - -export default ModelCatalog; diff --git a/src/components/models/FilterDropdown.tsx b/src/components/models/FilterDropdown.tsx new file mode 100644 index 000000000000000..2062e93e607e251 --- /dev/null +++ b/src/components/models/FilterDropdown.tsx @@ -0,0 +1,132 @@ +import { Combobox } from "@base-ui/react/combobox"; + +export interface FilterItem { + value: string; + label: string; +} + +/** + * Searchable multi-select dropdown for catalog filter controls. + * + * Fires a "model-catalog-filter" CustomEvent on the document when the + * selection changes, so the Astro catalog script can respond without + * React owning catalog state. + */ +export function FilterDropdown({ + label, + filterKey, + items, + selected, + onChange, +}: { + label: string; + filterKey: string; + items: FilterItem[]; + selected: string[]; + onChange: (selected: string[]) => void; +}) { + const hasSelection = selected.length > 0; + const triggerLabel = hasSelection ? `${label} (+${selected.length})` : label; + const selectedItems = items.filter((item) => selected.includes(item.value)); + + function handleChange(value: unknown) { + const next = (value as FilterItem[]).map((item) => item.value); + onChange(next); + document.dispatchEvent( + new CustomEvent("model-catalog-filter", { + detail: { key: filterKey, value: next }, + }), + ); + } + + return ( + a.value === b.value} + > + + {label}}> + {() => triggerLabel} + + + + + + + + +
    + +
    + +
    + No results found. +
    +
    + + {(item: FilterItem) => ( + + + + + + + + {item.label} + + + )} + +
    +
    +
    +
    + ); +} + +function ChevronUpDownIcon() { + return ( + + + + + ); +} + +function CheckIcon() { + return ( + + + + ); +} diff --git a/src/components/models/FilterDropdownWrapper.tsx b/src/components/models/FilterDropdownWrapper.tsx new file mode 100644 index 000000000000000..459b116fe769ab0 --- /dev/null +++ b/src/components/models/FilterDropdownWrapper.tsx @@ -0,0 +1,59 @@ +import { useState, useEffect } from "react"; +import { FilterDropdown, type FilterItem } from "./FilterDropdown"; + +/** + * Self-contained wrapper that reads initial selection from URL params on mount + * and fires "model-catalog-filter" CustomEvents when the selection changes. + * The Astro catalog script listens to these events to update card visibility. + */ +export function FilterDropdownWrapper({ + label, + filterKey, + items, +}: { + label: string; + filterKey: string; + items: FilterItem[]; +}) { + const [selected, setSelected] = useState([]); + + // Self-initialise from URL on mount; also listen for clear events + useEffect(() => { + const params = new URLSearchParams(window.location.search); + const initial = params.getAll(filterKey); + if (initial.length > 0) { + setSelected(initial); + // Fire event so the Astro script applies the initial filter pass + document.dispatchEvent( + new CustomEvent("model-catalog-filter", { + detail: { key: filterKey, value: initial }, + }), + ); + } + + function onClear() { + setSelected([]); + } + document.addEventListener("model-catalog-clear", onClear); + return () => document.removeEventListener("model-catalog-clear", onClear); + }, []); + + function handleChange(next: string[]) { + setSelected(next); + document.dispatchEvent( + new CustomEvent("model-catalog-filter", { + detail: { key: filterKey, value: next }, + }), + ); + } + + return ( + + ); +} diff --git a/src/components/models/ModelBadges.astro b/src/components/models/ModelBadges.astro new file mode 100644 index 000000000000000..4b4300c950eb1e6 --- /dev/null +++ b/src/components/models/ModelBadges.astro @@ -0,0 +1,49 @@ +--- +import type { WorkersAIModelsSchema } from "~/schemas"; +import type { ModelCardData, ResolvedModel } from "~/util/model-types"; +import { CAPABILITY_PROPERTIES } from "~/util/model-properties"; + +interface Props { + model: WorkersAIModelsSchema | ResolvedModel | ModelCardData; +} + +const CATEGORY_BADGE: Record = { + model: "default", // gray + platform: "caution", // orange +}; + +const { model } = Astro.props; + +const badges = model.properties.flatMap(({ property_id, value }) => { + // Boolean capability badges (data-driven) + if (property_id in CAPABILITY_PROPERTIES && value === "true") { + const def = CAPABILITY_PROPERTIES[property_id]; + return [ + { variant: CATEGORY_BADGE[def.category] ?? "default", text: def.label }, + ]; + } + + // Special case: deprecation badge (not a boolean capability) + if (property_id === "planned_deprecation_date") { + const timestamp = Math.floor(new Date(value as string).getTime()); + if (Date.now() > timestamp) { + return [{ variant: "danger", text: "Deprecated" }]; + } + return [{ variant: "danger", text: "Planned deprecation" }]; + } + + return []; +}); +--- + +
      + { + badges.map((badge) => ( +
    • + {badge.text} +
    • + )) + } +
    diff --git a/src/components/models/ModelInfo.astro b/src/components/models/ModelInfo.astro index edd29f2e9ffc656..65228cf133ccbc0 100644 --- a/src/components/models/ModelInfo.astro +++ b/src/components/models/ModelInfo.astro @@ -1,10 +1,10 @@ --- -import type { ResolvedModel } from "~/util/model-types"; +import type { ResolvedModel, ModelCardData } from "~/util/model-types"; import { getModelAuthor } from "~/util/model-helpers"; import { authorData } from "./data"; interface Props { - model: ResolvedModel; + model: ResolvedModel | ModelCardData; } const { model } = Astro.props; diff --git a/src/components/models/SortSelect.tsx b/src/components/models/SortSelect.tsx new file mode 100644 index 000000000000000..b3597a96caeb3e7 --- /dev/null +++ b/src/components/models/SortSelect.tsx @@ -0,0 +1,100 @@ +import { Select } from "@base-ui/react/select"; + +export type SortOrder = "newest" | "oldest"; + +const sortOptions = [ + { value: "newest", label: "Newest first" }, + { value: "oldest", label: "Oldest first" }, +]; + +/** + * Single-select dropdown for model sort order. + * + * Fires a "model-catalog-sort" CustomEvent on the document when the value + * changes, so the Astro catalog script can respond without React owning state. + */ +export function SortSelect({ + sortOrder, + onChange, +}: { + sortOrder: SortOrder; + onChange: (value: SortOrder) => void; +}) { + function handleChange(value: SortOrder | null) { + if (!value) return; + const next = value; + onChange(next); + document.dispatchEvent( + new CustomEvent("model-catalog-sort", { detail: { value: next } }), + ); + } + + return ( + + + + {() => + sortOptions.find((o) => o.value === sortOrder)?.label ?? + "Newest first" + } + + + + + + + + + {sortOptions.map((option) => ( + + + + + + {option.label} + + + ))} + + + + + ); +} + +function ChevronUpDownIcon() { + return ( + + + + + ); +} + +function CheckIcon() { + return ( + + + + ); +} diff --git a/src/components/models/SortSelectWrapper.tsx b/src/components/models/SortSelectWrapper.tsx new file mode 100644 index 000000000000000..1b18264f22201bd --- /dev/null +++ b/src/components/models/SortSelectWrapper.tsx @@ -0,0 +1,32 @@ +import { useState, useEffect } from "react"; +import { SortSelect, type SortOrder } from "./SortSelect"; + +/** + * Self-contained wrapper that reads initial sort order from URL params on mount + * and fires "model-catalog-sort" CustomEvents when the value changes. + * The Astro catalog script listens to these events to re-sort card order. + */ +export function SortSelectWrapper() { + const [sortOrder, setSortOrder] = useState("newest"); + + // Self-initialise from URL on mount + useEffect(() => { + const params = new URLSearchParams(window.location.search); + const initial = params.get("sort"); + if (initial === "oldest" || initial === "newest") { + setSortOrder(initial); + document.dispatchEvent( + new CustomEvent("model-catalog-sort", { detail: { value: initial } }), + ); + } + }, []); + + function handleChange(next: SortOrder) { + setSortOrder(next); + document.dispatchEvent( + new CustomEvent("model-catalog-sort", { detail: { value: next } }), + ); + } + + return ; +} diff --git a/src/pages/ai/models/index.astro b/src/pages/ai/models/index.astro index f533f5d7f8680e5..f0218c65eba9990 100644 --- a/src/pages/ai/models/index.astro +++ b/src/pages/ai/models/index.astro @@ -1,6 +1,6 @@ --- import StarlightPage from "@astrojs/starlight/components/StarlightPage.astro"; -import ModelCatalog from "~/components/ModelCatalog.tsx"; +import ModelCatalog from "~/components/ModelCatalog.astro"; import { getResolvedModels, toModelCardData } from "~/util/model-resolver"; import { Aside } from "~/components"; @@ -11,9 +11,11 @@ const models = (await getResolvedModels()).map(toModelCardData); - +