genkitx-azure-openai
Version:
Genkit AI framework plugin for Azure OpenAI APIs.
1 lines • 4.38 kB
Source Map (JSON)
{"version":3,"sources":["../src/embedder.ts"],"sourcesContent":["/**\n * Copyright 2026 Xavier Portilla Edo\n * Copyright 2026 Google LLC\n * Copyright 2026 Bloom Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { Genkit } from \"genkit\";\nimport { embedderRef, z } from \"genkit\";\nimport { AzureOpenAI } from \"openai\";\n\nexport const TextEmbeddingConfigSchema = z.object({\n dimensions: z.number().optional(),\n encodingFormat: z.union([z.literal(\"float\"), z.literal(\"base64\")]).optional(),\n});\n\nexport type TextEmbeddingGeckoConfig = z.infer<\n typeof TextEmbeddingConfigSchema\n>;\n\nexport const TextEmbeddingInputSchema = z.string();\n\nexport const textEmbedding3Small = embedderRef({\n name: \"azure-openai/text-embedding-3-small\",\n configSchema: TextEmbeddingConfigSchema,\n info: {\n dimensions: 1536,\n label: \"Open AI - Text Embedding 3 Small\",\n supports: {\n input: [\"text\"],\n },\n },\n});\n\nexport const textEmbedding3Large = embedderRef({\n name: \"azure-openai/text-embedding-3-large\",\n configSchema: TextEmbeddingConfigSchema,\n info: {\n dimensions: 3072,\n label: \"Open AI - Text Embedding 3 Large\",\n supports: {\n input: [\"text\"],\n },\n },\n});\n\nexport const textEmbeddingAda002 = embedderRef({\n name: \"azure-openai/text-embedding-ada-002\",\n configSchema: TextEmbeddingConfigSchema,\n info: {\n dimensions: 1536,\n label: \"Open AI - Text Embedding ADA 002\",\n supports: {\n input: [\"text\"],\n },\n },\n});\n\nexport const SUPPORTED_EMBEDDING_MODELS = {\n \"text-embedding-3-small\": textEmbedding3Small,\n \"text-embedding-3-large\": textEmbedding3Large,\n \"text-embedding-ada-002\": textEmbeddingAda002,\n};\n\nexport function openaiEmbedder(ai: Genkit, name: string, client: AzureOpenAI) {\n const model =\n SUPPORTED_EMBEDDING_MODELS[name as keyof typeof SUPPORTED_EMBEDDING_MODELS];\n if (!model) throw new Error(`Unsupported model: ${name}`);\n\n return ai.defineEmbedder(\n {\n info: model.info!,\n configSchema: TextEmbeddingConfigSchema,\n name: model.name,\n },\n async (input, options) => {\n const embeddings = await client.embeddings.create({\n model: name,\n input: input.map((d) => d.text),\n dimensions: options?.dimensions,\n encoding_format: options?.encodingFormat,\n });\n return {\n embeddings: embeddings.data.map((d) => ({ embedding: d.embedding })),\n };\n },\n );\n}\n"],"mappings":"AAmBA,SAAS,aAAa,SAAS;AAGxB,MAAM,4BAA4B,EAAE,OAAO;AAAA,EAChD,YAAY,EAAE,OAAO,EAAE,SAAS;AAAA,EAChC,gBAAgB,EAAE,MAAM,CAAC,EAAE,QAAQ,OAAO,GAAG,EAAE,QAAQ,QAAQ,CAAC,CAAC,EAAE,SAAS;AAC9E,CAAC;AAMM,MAAM,2BAA2B,EAAE,OAAO;AAE1C,MAAM,sBAAsB,YAAY;AAAA,EAC7C,MAAM;AAAA,EACN,cAAc;AAAA,EACd,MAAM;AAAA,IACJ,YAAY;AAAA,IACZ,OAAO;AAAA,IACP,UAAU;AAAA,MACR,OAAO,CAAC,MAAM;AAAA,IAChB;AAAA,EACF;AACF,CAAC;AAEM,MAAM,sBAAsB,YAAY;AAAA,EAC7C,MAAM;AAAA,EACN,cAAc;AAAA,EACd,MAAM;AAAA,IACJ,YAAY;AAAA,IACZ,OAAO;AAAA,IACP,UAAU;AAAA,MACR,OAAO,CAAC,MAAM;AAAA,IAChB;AAAA,EACF;AACF,CAAC;AAEM,MAAM,sBAAsB,YAAY;AAAA,EAC7C,MAAM;AAAA,EACN,cAAc;AAAA,EACd,MAAM;AAAA,IACJ,YAAY;AAAA,IACZ,OAAO;AAAA,IACP,UAAU;AAAA,MACR,OAAO,CAAC,MAAM;AAAA,IAChB;AAAA,EACF;AACF,CAAC;AAEM,MAAM,6BAA6B;AAAA,EACxC,0BAA0B;AAAA,EAC1B,0BAA0B;AAAA,EAC1B,0BAA0B;AAC5B;AAEO,SAAS,eAAe,IAAY,MAAc,QAAqB;AAC5E,QAAM,QACJ,2BAA2B,IAA+C;AAC5E,MAAI,CAAC,MAAO,OAAM,IAAI,MAAM,sBAAsB,IAAI,EAAE;AAExD,SAAO,GAAG;AAAA,IACR;AAAA,MACE,MAAM,MAAM;AAAA,MACZ,cAAc;AAAA,MACd,MAAM,MAAM;AAAA,IACd;AAAA,IACA,OAAO,OAAO,YAAY;AACxB,YAAM,aAAa,MAAM,OAAO,WAAW,OAAO;AAAA,QAChD,OAAO;AAAA,QACP,OAAO,MAAM,IAAI,CAAC,MAAM,EAAE,IAAI;AAAA,QAC9B,YAAY,SAAS;AAAA,QACrB,iBAAiB,SAAS;AAAA,MAC5B,CAAC;AACD,aAAO;AAAA,QACL,YAAY,WAAW,KAAK,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE;AAAA,MACrE;AAAA,IACF;AAAA,EACF;AACF;","names":[]}