UNPKG

genkitx-azure-openai

Version:

Firebase Genkit AI framework plugin for Azure OpenAI APIs.

79 lines 2.23 kB
import { __async } from "./chunk-MLCSNVBT.mjs"; import { embedderRef, z } from "genkit"; const TextEmbeddingConfigSchema = z.object({ dimensions: z.number().optional(), encodingFormat: z.union([z.literal("float"), z.literal("base64")]).optional() }); const TextEmbeddingInputSchema = z.string(); const textEmbedding3Small = embedderRef({ name: "azure-openai/text-embedding-3-small", configSchema: TextEmbeddingConfigSchema, info: { dimensions: 1536, label: "Open AI - Text Embedding 3 Small", supports: { input: ["text"] } } }); const textEmbedding3Large = embedderRef({ name: "azure-openai/text-embedding-3-large", configSchema: TextEmbeddingConfigSchema, info: { dimensions: 3072, label: "Open AI - Text Embedding 3 Large", supports: { input: ["text"] } } }); const textEmbeddingAda002 = embedderRef({ name: "azure-openai/text-embedding-ada-002", configSchema: TextEmbeddingConfigSchema, info: { dimensions: 1536, label: "Open AI - Text Embedding ADA 002", supports: { input: ["text"] } } }); const SUPPORTED_EMBEDDING_MODELS = { "text-embedding-3-small": textEmbedding3Small, "text-embedding-3-large": textEmbedding3Large, "text-embedding-ada-002": textEmbeddingAda002 }; function openaiEmbedder(ai, name, client) { const model = SUPPORTED_EMBEDDING_MODELS[name]; if (!model) throw new Error(`Unsupported model: ${name}`); return ai.defineEmbedder( { info: model.info, configSchema: TextEmbeddingConfigSchema, name: model.name }, (input, options) => __async(this, null, function* () { const embeddings = yield client.embeddings.create({ model: name, input: input.map((d) => d.text), dimensions: options == null ? void 0 : options.dimensions, encoding_format: options == null ? void 0 : options.encodingFormat }); return { embeddings: embeddings.data.map((d) => ({ embedding: d.embedding })) }; }) ); } export { SUPPORTED_EMBEDDING_MODELS, TextEmbeddingConfigSchema, TextEmbeddingInputSchema, openaiEmbedder, textEmbedding3Large, textEmbedding3Small, textEmbeddingAda002 }; //# sourceMappingURL=embedder.mjs.map