genkitx-azure-openai
Version:
Firebase Genkit AI framework plugin for Azure OpenAI APIs.
79 lines • 2.23 kB
JavaScript
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