UNPKG

@genkit-ai/compat-oai

Version:

Genkit AI framework plugin for OpenAI APIs.

127 lines 4.05 kB
"use strict"; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __hasOwnProp = Object.prototype.hasOwnProperty; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); var image_exports = {}; __export(image_exports, { IMAGE_GENERATION_MODEL_INFO: () => IMAGE_GENERATION_MODEL_INFO, ImageGenerationCommonConfigSchema: () => ImageGenerationCommonConfigSchema, compatOaiImageModelRef: () => compatOaiImageModelRef, defineCompatOpenAIImageModel: () => defineCompatOpenAIImageModel }); module.exports = __toCommonJS(image_exports); var import_genkit = require("genkit"); const IMAGE_GENERATION_MODEL_INFO = { supports: { media: false, output: ["media"], multiturn: false, systemRole: false, tools: false } }; const ImageGenerationCommonConfigSchema = import_genkit.z.object({ size: import_genkit.z.enum(["1024x1024", "1792x1024", "1024x1792"]).optional(), style: import_genkit.z.enum(["vivid", "natural"]).optional(), user: import_genkit.z.string().optional(), n: import_genkit.z.number().int().min(1).max(10).default(1), quality: import_genkit.z.enum(["standard", "hd"]).optional(), response_format: import_genkit.z.enum(["b64_json", "url"]).default("b64_json").optional() }); function toImageGenerateParams(modelName, request, requestBuilder) { const { temperature, version: modelVersion, maxOutputTokens, stopSequences, topK, topP, response_format, ...restOfConfig } = request.config ?? {}; let options = { model: modelVersion ?? modelName, prompt: new import_genkit.Message(request.messages[0]).text, response_format: response_format || "b64_json" }; if (requestBuilder) { requestBuilder(request, options); } else { options = { ...options, ...restOfConfig }; } for (const k in options) { if (options[k] === void 0) { delete options[k]; } } return options; } function toGenerateResponse(result) { const images = result.data; if (!images) { return { finishReason: "stop" }; } else { const content = (result.data ?? []).map((image) => ({ media: { contentType: "image/png", url: image.url || `data:image/png;base64,${image.b64_json}` } })); return { message: { role: "model", content }, raw: result }; } } function defineCompatOpenAIImageModel(params) { const { ai, name, client, modelRef: modelRef2, requestBuilder } = params; const modelName = name.substring(name.indexOf("/") + 1); return ai.defineModel( { name, ...modelRef2?.info, apiVersion: "v2", configSchema: modelRef2?.configSchema }, async (request, { abortSignal }) => { const result = await client.images.generate( toImageGenerateParams(modelName, request, requestBuilder), { signal: abortSignal } ); return toGenerateResponse(result); } ); } function compatOaiImageModelRef(params) { const { name, info = IMAGE_GENERATION_MODEL_INFO, configSchema, config = void 0 } = params; return (0, import_genkit.modelRef)({ name, configSchema: configSchema || ImageGenerationCommonConfigSchema, info, config }); } // Annotate the CommonJS export names for ESM import in node: 0 && (module.exports = { IMAGE_GENERATION_MODEL_INFO, ImageGenerationCommonConfigSchema, compatOaiImageModelRef, defineCompatOpenAIImageModel }); //# sourceMappingURL=image.js.map