@genkit-ai/compat-oai 1.35.0 → 1.36.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/audio.mjs +1 -1
- package/lib/audio.mjs.map +1 -1
- package/lib/deepseek/deepseek.js +1 -1
- package/lib/deepseek/deepseek.js.map +1 -1
- package/lib/deepseek/deepseek.mjs +1 -1
- package/lib/deepseek/deepseek.mjs.map +1 -1
- package/lib/deepseek/index.mjs +3 -3
- package/lib/deepseek/index.mjs.map +1 -1
- package/lib/embedder.mjs +1 -1
- package/lib/embedder.mjs.map +1 -1
- package/lib/image.mjs +1 -1
- package/lib/image.mjs.map +1 -1
- package/lib/index.mjs +7 -7
- package/lib/index.mjs.map +1 -1
- package/lib/model.mjs +1 -1
- package/lib/model.mjs.map +1 -1
- package/lib/openai/dalle.js +1 -1
- package/lib/openai/dalle.js.map +1 -1
- package/lib/openai/dalle.mjs +1 -1
- package/lib/openai/dalle.mjs.map +1 -1
- package/lib/openai/gpt.js +1 -1
- package/lib/openai/gpt.js.map +1 -1
- package/lib/openai/gpt.mjs +4 -1
- package/lib/openai/gpt.mjs.map +1 -1
- package/lib/openai/index.mjs +11 -11
- package/lib/openai/index.mjs.map +1 -1
- package/lib/openai/stt.js +1 -1
- package/lib/openai/stt.js.map +1 -1
- package/lib/openai/stt.mjs +1 -1
- package/lib/openai/stt.mjs.map +1 -1
- package/lib/openai/tts.js +1 -1
- package/lib/openai/tts.js.map +1 -1
- package/lib/openai/tts.mjs +1 -1
- package/lib/openai/tts.mjs.map +1 -1
- package/lib/openai/whisper.mjs +3 -3
- package/lib/openai/whisper.mjs.map +1 -1
- package/lib/translate.mjs +1 -1
- package/lib/translate.mjs.map +1 -1
- package/lib/xai/grok-image.js +1 -1
- package/lib/xai/grok-image.js.map +1 -1
- package/lib/xai/grok-image.mjs +1 -1
- package/lib/xai/grok-image.mjs.map +1 -1
- package/lib/xai/grok.js +1 -1
- package/lib/xai/grok.js.map +1 -1
- package/lib/xai/grok.mjs +1 -1
- package/lib/xai/grok.mjs.map +1 -1
- package/lib/xai/index.mjs +5 -5
- package/lib/xai/index.mjs.map +1 -1
- package/package.json +2 -2
package/lib/openai/gpt.js
CHANGED
|
@@ -24,7 +24,7 @@ __export(gpt_exports, {
|
|
|
24
24
|
});
|
|
25
25
|
module.exports = __toCommonJS(gpt_exports);
|
|
26
26
|
var import_genkit = require("genkit");
|
|
27
|
-
var import_model2 = require("../model");
|
|
27
|
+
var import_model2 = require("../model.js");
|
|
28
28
|
const MULTIMODAL_MODEL_INFO = {
|
|
29
29
|
supports: {
|
|
30
30
|
multiturn: true,
|
package/lib/openai/gpt.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/openai/gpt.ts"],"sourcesContent":["/**\n * Copyright 2024 The Fire Company\n * Copyright 2024 Google LLC\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 { z } from 'genkit';\nimport { ModelInfo, ModelReference } from 'genkit/model';\nimport { ChatCompletionCommonConfigSchema, compatOaiModelRef } from '../model';\n\nconst MULTIMODAL_MODEL_INFO: ModelInfo = {\n supports: {\n multiturn: true,\n tools: true,\n media: true,\n systemRole: true,\n output: ['text', 'json'],\n constrained: 'all',\n },\n};\n\n/** OpenAI Custom configuration schema. */\nexport const OpenAIChatCompletionConfigSchema =\n ChatCompletionCommonConfigSchema.extend({\n store: z.boolean().optional(),\n });\n\n/** OpenAI ModelRef helper, with OpenAI specific config. */\nexport function openAIModelRef(params: {\n name: string;\n info?: ModelInfo;\n config?: any;\n}): ModelReference<typeof OpenAIChatCompletionConfigSchema> {\n return compatOaiModelRef({\n ...params,\n info: params.info,\n configSchema: OpenAIChatCompletionConfigSchema,\n namespace: 'openai',\n });\n}\n\nconst gpt45 = openAIModelRef({\n name: 'gpt-4.5',\n info: MULTIMODAL_MODEL_INFO,\n});\nconst gpt45Preview = openAIModelRef({\n name: 'gpt-4.5-preview',\n info: MULTIMODAL_MODEL_INFO,\n});\n\nconst gpt4o = openAIModelRef({\n name: 'gpt-4o',\n info: MULTIMODAL_MODEL_INFO,\n});\nconst gpt4o20240513 = openAIModelRef({\n name: 'gpt-4o-2024-05-13',\n info: MULTIMODAL_MODEL_INFO,\n});\n\nconst o1 = openAIModelRef({\n name: 'o1',\n info: {\n supports: {\n multiturn: true,\n tools: true,\n media: true,\n systemRole: false,\n output: ['text', 'json'],\n },\n },\n});\n\nconst o3 = openAIModelRef({\n name: 'o3',\n info: {\n supports: {\n multiturn: true,\n tools: true,\n media: true,\n systemRole: false,\n output: ['text', 'json'],\n },\n },\n});\n\nconst o3Mini = openAIModelRef({\n name: 'o3-mini',\n info: {\n supports: {\n multiturn: true,\n tools: true,\n media: false,\n systemRole: false,\n output: ['text', 'json'],\n },\n },\n});\n\nconst o4Mini = openAIModelRef({\n name: 'o4-mini',\n info: {\n supports: {\n multiturn: true,\n tools: true,\n media: true,\n systemRole: false,\n output: ['text', 'json'],\n },\n },\n});\n\nconst gpt4oMini = openAIModelRef({\n name: 'gpt-4o-mini',\n info: MULTIMODAL_MODEL_INFO,\n});\nconst gpt4oMini20240718 = openAIModelRef({\n name: 'gpt-4o-mini-2024-07-18',\n info: MULTIMODAL_MODEL_INFO,\n});\n\nconst gpt4Turbo = openAIModelRef({\n name: 'gpt-4-turbo',\n info: MULTIMODAL_MODEL_INFO,\n});\nconst gpt4Turbo20240409 = openAIModelRef({\n name: 'gpt-4-turbo-2024-04-09',\n info: MULTIMODAL_MODEL_INFO,\n});\nconst gpt4TurboPreview = openAIModelRef({\n name: 'gpt-4-turbo-preview',\n info: MULTIMODAL_MODEL_INFO,\n});\nconst gpt40125Preview = openAIModelRef({\n name: 'gpt-4-0125-preview',\n info: MULTIMODAL_MODEL_INFO,\n});\nconst gpt41106Preview = openAIModelRef({\n name: 'gpt-4-1106-preview',\n info: MULTIMODAL_MODEL_INFO,\n});\n\nconst GPT_4_VISION_MODEL_INFO: ModelInfo = {\n supports: {\n multiturn: true,\n tools: false,\n media: true,\n systemRole: true,\n output: ['text'],\n },\n};\nconst gpt4Vision = openAIModelRef({\n name: 'gpt-4-vision',\n info: GPT_4_VISION_MODEL_INFO,\n});\nconst gpt4VisionPreview = openAIModelRef({\n name: 'gpt-4-vision-preview',\n info: GPT_4_VISION_MODEL_INFO,\n});\nconst gpt41106VisionPreview = openAIModelRef({\n name: 'gpt-4-1106-vision-preview',\n info: GPT_4_VISION_MODEL_INFO,\n});\n\nconst GPT_4_MODEL_INFO: ModelInfo = {\n supports: {\n multiturn: true,\n tools: true,\n media: false,\n systemRole: true,\n output: ['text'],\n },\n};\nconst gpt4 = openAIModelRef({ name: 'gpt-4', info: GPT_4_MODEL_INFO });\nconst gpt40613 = openAIModelRef({\n name: 'gpt-4-0613',\n info: GPT_4_MODEL_INFO,\n});\nconst gpt432k = openAIModelRef({\n name: 'gpt-4-32k',\n info: GPT_4_MODEL_INFO,\n});\nconst gpt432k0613 = openAIModelRef({\n name: 'gpt-4-32k-0613',\n info: GPT_4_MODEL_INFO,\n});\n\nconst GPT_35_MODEL_INFO: ModelInfo = {\n supports: {\n multiturn: true,\n tools: true,\n media: false,\n systemRole: true,\n output: ['text', 'json'],\n },\n};\nconst gpt35Turbo = openAIModelRef({\n name: 'gpt-3.5-turbo',\n info: GPT_35_MODEL_INFO,\n});\nconst gpt35Turbo0125 = openAIModelRef({\n name: 'gpt-3.5-turbo-0125',\n info: GPT_35_MODEL_INFO,\n});\nconst gpt35Turbo1106 = openAIModelRef({\n name: 'gpt-3.5-turbo-1106',\n info: GPT_35_MODEL_INFO,\n});\n\nconst GPT_5_MODEL_INFO: ModelInfo = {\n supports: {\n multiturn: true,\n tools: true,\n media: true,\n systemRole: true,\n output: ['text', 'json'],\n },\n};\nconst gpt5 = openAIModelRef({\n name: 'gpt-5',\n info: GPT_5_MODEL_INFO,\n});\nconst gpt5Mini = openAIModelRef({\n name: 'gpt-5-mini',\n info: GPT_5_MODEL_INFO,\n});\nconst gpt5Nano = openAIModelRef({\n name: 'gpt-5-nano',\n info: GPT_5_MODEL_INFO,\n});\nconst gpt5ChatLatest = openAIModelRef({\n name: 'gpt-5-chat-latest',\n info: {\n supports: {\n ...GPT_5_MODEL_INFO.supports,\n tools: false,\n output: ['text'],\n },\n },\n});\nconst gpt5_1 = openAIModelRef({\n name: 'gpt-5.1',\n info: GPT_5_MODEL_INFO,\n});\n\nexport const SUPPORTED_GPT_MODELS = {\n 'gpt-4.5': gpt45,\n 'gpt-4.5-preview': gpt45Preview,\n 'gpt-4o': gpt4o,\n 'gpt-4o-2024-05-13': gpt4o20240513,\n o1: o1,\n o3: o3,\n 'o3-mini': o3Mini,\n 'o4-mini': o4Mini,\n 'gpt-4o-mini': gpt4oMini,\n 'gpt-4o-mini-2024-07-18': gpt4oMini20240718,\n 'gpt-4-turbo': gpt4Turbo,\n 'gpt-4-turbo-2024-04-09': gpt4Turbo20240409,\n 'gpt-4-turbo-preview': gpt4TurboPreview,\n 'gpt-4-0125-preview': gpt40125Preview,\n 'gpt-4-1106-preview': gpt41106Preview,\n 'gpt-4-vision': gpt4Vision,\n 'gpt-4-vision-preview': gpt4VisionPreview,\n 'gpt-4-1106-vision-preview': gpt41106VisionPreview,\n 'gpt-4': gpt4,\n 'gpt-4-0613': gpt40613,\n 'gpt-4-32k': gpt432k,\n 'gpt-4-32k-0613': gpt432k0613,\n 'gpt-3.5-turbo': gpt35Turbo,\n 'gpt-3.5-turbo-0125': gpt35Turbo0125,\n 'gpt-3.5-turbo-1106': gpt35Turbo1106,\n 'gpt-5': gpt5,\n 'gpt-5-mini': gpt5Mini,\n 'gpt-5-nano': gpt5Nano,\n 'gpt-5-chat-latest': gpt5ChatLatest,\n 'gpt-5.1': gpt5_1,\n} as const;\n"],"mappings":"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","names":["import_model"]}
|
|
1
|
+
{"version":3,"sources":["../../src/openai/gpt.ts"],"sourcesContent":["/**\n * Copyright 2024 The Fire Company\n * Copyright 2024 Google LLC\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 { z } from 'genkit';\nimport { ModelInfo, ModelReference } from 'genkit/model';\nimport {\n ChatCompletionCommonConfigSchema,\n compatOaiModelRef,\n} from '../model.js';\n\nconst MULTIMODAL_MODEL_INFO: ModelInfo = {\n supports: {\n multiturn: true,\n tools: true,\n media: true,\n systemRole: true,\n output: ['text', 'json'],\n constrained: 'all',\n },\n};\n\n/** OpenAI Custom configuration schema. */\nexport const OpenAIChatCompletionConfigSchema =\n ChatCompletionCommonConfigSchema.extend({\n store: z.boolean().optional(),\n });\n\n/** OpenAI ModelRef helper, with OpenAI specific config. */\nexport function openAIModelRef(params: {\n name: string;\n info?: ModelInfo;\n config?: any;\n}): ModelReference<typeof OpenAIChatCompletionConfigSchema> {\n return compatOaiModelRef({\n ...params,\n info: params.info,\n configSchema: OpenAIChatCompletionConfigSchema,\n namespace: 'openai',\n });\n}\n\nconst gpt45 = openAIModelRef({\n name: 'gpt-4.5',\n info: MULTIMODAL_MODEL_INFO,\n});\nconst gpt45Preview = openAIModelRef({\n name: 'gpt-4.5-preview',\n info: MULTIMODAL_MODEL_INFO,\n});\n\nconst gpt4o = openAIModelRef({\n name: 'gpt-4o',\n info: MULTIMODAL_MODEL_INFO,\n});\nconst gpt4o20240513 = openAIModelRef({\n name: 'gpt-4o-2024-05-13',\n info: MULTIMODAL_MODEL_INFO,\n});\n\nconst o1 = openAIModelRef({\n name: 'o1',\n info: {\n supports: {\n multiturn: true,\n tools: true,\n media: true,\n systemRole: false,\n output: ['text', 'json'],\n },\n },\n});\n\nconst o3 = openAIModelRef({\n name: 'o3',\n info: {\n supports: {\n multiturn: true,\n tools: true,\n media: true,\n systemRole: false,\n output: ['text', 'json'],\n },\n },\n});\n\nconst o3Mini = openAIModelRef({\n name: 'o3-mini',\n info: {\n supports: {\n multiturn: true,\n tools: true,\n media: false,\n systemRole: false,\n output: ['text', 'json'],\n },\n },\n});\n\nconst o4Mini = openAIModelRef({\n name: 'o4-mini',\n info: {\n supports: {\n multiturn: true,\n tools: true,\n media: true,\n systemRole: false,\n output: ['text', 'json'],\n },\n },\n});\n\nconst gpt4oMini = openAIModelRef({\n name: 'gpt-4o-mini',\n info: MULTIMODAL_MODEL_INFO,\n});\nconst gpt4oMini20240718 = openAIModelRef({\n name: 'gpt-4o-mini-2024-07-18',\n info: MULTIMODAL_MODEL_INFO,\n});\n\nconst gpt4Turbo = openAIModelRef({\n name: 'gpt-4-turbo',\n info: MULTIMODAL_MODEL_INFO,\n});\nconst gpt4Turbo20240409 = openAIModelRef({\n name: 'gpt-4-turbo-2024-04-09',\n info: MULTIMODAL_MODEL_INFO,\n});\nconst gpt4TurboPreview = openAIModelRef({\n name: 'gpt-4-turbo-preview',\n info: MULTIMODAL_MODEL_INFO,\n});\nconst gpt40125Preview = openAIModelRef({\n name: 'gpt-4-0125-preview',\n info: MULTIMODAL_MODEL_INFO,\n});\nconst gpt41106Preview = openAIModelRef({\n name: 'gpt-4-1106-preview',\n info: MULTIMODAL_MODEL_INFO,\n});\n\nconst GPT_4_VISION_MODEL_INFO: ModelInfo = {\n supports: {\n multiturn: true,\n tools: false,\n media: true,\n systemRole: true,\n output: ['text'],\n },\n};\nconst gpt4Vision = openAIModelRef({\n name: 'gpt-4-vision',\n info: GPT_4_VISION_MODEL_INFO,\n});\nconst gpt4VisionPreview = openAIModelRef({\n name: 'gpt-4-vision-preview',\n info: GPT_4_VISION_MODEL_INFO,\n});\nconst gpt41106VisionPreview = openAIModelRef({\n name: 'gpt-4-1106-vision-preview',\n info: GPT_4_VISION_MODEL_INFO,\n});\n\nconst GPT_4_MODEL_INFO: ModelInfo = {\n supports: {\n multiturn: true,\n tools: true,\n media: false,\n systemRole: true,\n output: ['text'],\n },\n};\nconst gpt4 = openAIModelRef({ name: 'gpt-4', info: GPT_4_MODEL_INFO });\nconst gpt40613 = openAIModelRef({\n name: 'gpt-4-0613',\n info: GPT_4_MODEL_INFO,\n});\nconst gpt432k = openAIModelRef({\n name: 'gpt-4-32k',\n info: GPT_4_MODEL_INFO,\n});\nconst gpt432k0613 = openAIModelRef({\n name: 'gpt-4-32k-0613',\n info: GPT_4_MODEL_INFO,\n});\n\nconst GPT_35_MODEL_INFO: ModelInfo = {\n supports: {\n multiturn: true,\n tools: true,\n media: false,\n systemRole: true,\n output: ['text', 'json'],\n },\n};\nconst gpt35Turbo = openAIModelRef({\n name: 'gpt-3.5-turbo',\n info: GPT_35_MODEL_INFO,\n});\nconst gpt35Turbo0125 = openAIModelRef({\n name: 'gpt-3.5-turbo-0125',\n info: GPT_35_MODEL_INFO,\n});\nconst gpt35Turbo1106 = openAIModelRef({\n name: 'gpt-3.5-turbo-1106',\n info: GPT_35_MODEL_INFO,\n});\n\nconst GPT_5_MODEL_INFO: ModelInfo = {\n supports: {\n multiturn: true,\n tools: true,\n media: true,\n systemRole: true,\n output: ['text', 'json'],\n },\n};\nconst gpt5 = openAIModelRef({\n name: 'gpt-5',\n info: GPT_5_MODEL_INFO,\n});\nconst gpt5Mini = openAIModelRef({\n name: 'gpt-5-mini',\n info: GPT_5_MODEL_INFO,\n});\nconst gpt5Nano = openAIModelRef({\n name: 'gpt-5-nano',\n info: GPT_5_MODEL_INFO,\n});\nconst gpt5ChatLatest = openAIModelRef({\n name: 'gpt-5-chat-latest',\n info: {\n supports: {\n ...GPT_5_MODEL_INFO.supports,\n tools: false,\n output: ['text'],\n },\n },\n});\nconst gpt5_1 = openAIModelRef({\n name: 'gpt-5.1',\n info: GPT_5_MODEL_INFO,\n});\n\nexport const SUPPORTED_GPT_MODELS = {\n 'gpt-4.5': gpt45,\n 'gpt-4.5-preview': gpt45Preview,\n 'gpt-4o': gpt4o,\n 'gpt-4o-2024-05-13': gpt4o20240513,\n o1: o1,\n o3: o3,\n 'o3-mini': o3Mini,\n 'o4-mini': o4Mini,\n 'gpt-4o-mini': gpt4oMini,\n 'gpt-4o-mini-2024-07-18': gpt4oMini20240718,\n 'gpt-4-turbo': gpt4Turbo,\n 'gpt-4-turbo-2024-04-09': gpt4Turbo20240409,\n 'gpt-4-turbo-preview': gpt4TurboPreview,\n 'gpt-4-0125-preview': gpt40125Preview,\n 'gpt-4-1106-preview': gpt41106Preview,\n 'gpt-4-vision': gpt4Vision,\n 'gpt-4-vision-preview': gpt4VisionPreview,\n 'gpt-4-1106-vision-preview': gpt41106VisionPreview,\n 'gpt-4': gpt4,\n 'gpt-4-0613': gpt40613,\n 'gpt-4-32k': gpt432k,\n 'gpt-4-32k-0613': gpt432k0613,\n 'gpt-3.5-turbo': gpt35Turbo,\n 'gpt-3.5-turbo-0125': gpt35Turbo0125,\n 'gpt-3.5-turbo-1106': gpt35Turbo1106,\n 'gpt-5': gpt5,\n 'gpt-5-mini': gpt5Mini,\n 'gpt-5-nano': gpt5Nano,\n 'gpt-5-chat-latest': gpt5ChatLatest,\n 'gpt-5.1': gpt5_1,\n} as const;\n"],"mappings":"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","names":["import_model"]}
|
package/lib/openai/gpt.mjs
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import { z } from "genkit";
|
|
2
|
-
import {
|
|
2
|
+
import {
|
|
3
|
+
ChatCompletionCommonConfigSchema,
|
|
4
|
+
compatOaiModelRef
|
|
5
|
+
} from "../model.mjs";
|
|
3
6
|
const MULTIMODAL_MODEL_INFO = {
|
|
4
7
|
supports: {
|
|
5
8
|
multiturn: true,
|
package/lib/openai/gpt.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/openai/gpt.ts"],"sourcesContent":["/**\n * Copyright 2024 The Fire Company\n * Copyright 2024 Google LLC\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 { z } from 'genkit';\nimport { ModelInfo, ModelReference } from 'genkit/model';\nimport { ChatCompletionCommonConfigSchema, compatOaiModelRef } from '../model';\n\nconst MULTIMODAL_MODEL_INFO: ModelInfo = {\n supports: {\n multiturn: true,\n tools: true,\n media: true,\n systemRole: true,\n output: ['text', 'json'],\n constrained: 'all',\n },\n};\n\n/** OpenAI Custom configuration schema. */\nexport const OpenAIChatCompletionConfigSchema =\n ChatCompletionCommonConfigSchema.extend({\n store: z.boolean().optional(),\n });\n\n/** OpenAI ModelRef helper, with OpenAI specific config. */\nexport function openAIModelRef(params: {\n name: string;\n info?: ModelInfo;\n config?: any;\n}): ModelReference<typeof OpenAIChatCompletionConfigSchema> {\n return compatOaiModelRef({\n ...params,\n info: params.info,\n configSchema: OpenAIChatCompletionConfigSchema,\n namespace: 'openai',\n });\n}\n\nconst gpt45 = openAIModelRef({\n name: 'gpt-4.5',\n info: MULTIMODAL_MODEL_INFO,\n});\nconst gpt45Preview = openAIModelRef({\n name: 'gpt-4.5-preview',\n info: MULTIMODAL_MODEL_INFO,\n});\n\nconst gpt4o = openAIModelRef({\n name: 'gpt-4o',\n info: MULTIMODAL_MODEL_INFO,\n});\nconst gpt4o20240513 = openAIModelRef({\n name: 'gpt-4o-2024-05-13',\n info: MULTIMODAL_MODEL_INFO,\n});\n\nconst o1 = openAIModelRef({\n name: 'o1',\n info: {\n supports: {\n multiturn: true,\n tools: true,\n media: true,\n systemRole: false,\n output: ['text', 'json'],\n },\n },\n});\n\nconst o3 = openAIModelRef({\n name: 'o3',\n info: {\n supports: {\n multiturn: true,\n tools: true,\n media: true,\n systemRole: false,\n output: ['text', 'json'],\n },\n },\n});\n\nconst o3Mini = openAIModelRef({\n name: 'o3-mini',\n info: {\n supports: {\n multiturn: true,\n tools: true,\n media: false,\n systemRole: false,\n output: ['text', 'json'],\n },\n },\n});\n\nconst o4Mini = openAIModelRef({\n name: 'o4-mini',\n info: {\n supports: {\n multiturn: true,\n tools: true,\n media: true,\n systemRole: false,\n output: ['text', 'json'],\n },\n },\n});\n\nconst gpt4oMini = openAIModelRef({\n name: 'gpt-4o-mini',\n info: MULTIMODAL_MODEL_INFO,\n});\nconst gpt4oMini20240718 = openAIModelRef({\n name: 'gpt-4o-mini-2024-07-18',\n info: MULTIMODAL_MODEL_INFO,\n});\n\nconst gpt4Turbo = openAIModelRef({\n name: 'gpt-4-turbo',\n info: MULTIMODAL_MODEL_INFO,\n});\nconst gpt4Turbo20240409 = openAIModelRef({\n name: 'gpt-4-turbo-2024-04-09',\n info: MULTIMODAL_MODEL_INFO,\n});\nconst gpt4TurboPreview = openAIModelRef({\n name: 'gpt-4-turbo-preview',\n info: MULTIMODAL_MODEL_INFO,\n});\nconst gpt40125Preview = openAIModelRef({\n name: 'gpt-4-0125-preview',\n info: MULTIMODAL_MODEL_INFO,\n});\nconst gpt41106Preview = openAIModelRef({\n name: 'gpt-4-1106-preview',\n info: MULTIMODAL_MODEL_INFO,\n});\n\nconst GPT_4_VISION_MODEL_INFO: ModelInfo = {\n supports: {\n multiturn: true,\n tools: false,\n media: true,\n systemRole: true,\n output: ['text'],\n },\n};\nconst gpt4Vision = openAIModelRef({\n name: 'gpt-4-vision',\n info: GPT_4_VISION_MODEL_INFO,\n});\nconst gpt4VisionPreview = openAIModelRef({\n name: 'gpt-4-vision-preview',\n info: GPT_4_VISION_MODEL_INFO,\n});\nconst gpt41106VisionPreview = openAIModelRef({\n name: 'gpt-4-1106-vision-preview',\n info: GPT_4_VISION_MODEL_INFO,\n});\n\nconst GPT_4_MODEL_INFO: ModelInfo = {\n supports: {\n multiturn: true,\n tools: true,\n media: false,\n systemRole: true,\n output: ['text'],\n },\n};\nconst gpt4 = openAIModelRef({ name: 'gpt-4', info: GPT_4_MODEL_INFO });\nconst gpt40613 = openAIModelRef({\n name: 'gpt-4-0613',\n info: GPT_4_MODEL_INFO,\n});\nconst gpt432k = openAIModelRef({\n name: 'gpt-4-32k',\n info: GPT_4_MODEL_INFO,\n});\nconst gpt432k0613 = openAIModelRef({\n name: 'gpt-4-32k-0613',\n info: GPT_4_MODEL_INFO,\n});\n\nconst GPT_35_MODEL_INFO: ModelInfo = {\n supports: {\n multiturn: true,\n tools: true,\n media: false,\n systemRole: true,\n output: ['text', 'json'],\n },\n};\nconst gpt35Turbo = openAIModelRef({\n name: 'gpt-3.5-turbo',\n info: GPT_35_MODEL_INFO,\n});\nconst gpt35Turbo0125 = openAIModelRef({\n name: 'gpt-3.5-turbo-0125',\n info: GPT_35_MODEL_INFO,\n});\nconst gpt35Turbo1106 = openAIModelRef({\n name: 'gpt-3.5-turbo-1106',\n info: GPT_35_MODEL_INFO,\n});\n\nconst GPT_5_MODEL_INFO: ModelInfo = {\n supports: {\n multiturn: true,\n tools: true,\n media: true,\n systemRole: true,\n output: ['text', 'json'],\n },\n};\nconst gpt5 = openAIModelRef({\n name: 'gpt-5',\n info: GPT_5_MODEL_INFO,\n});\nconst gpt5Mini = openAIModelRef({\n name: 'gpt-5-mini',\n info: GPT_5_MODEL_INFO,\n});\nconst gpt5Nano = openAIModelRef({\n name: 'gpt-5-nano',\n info: GPT_5_MODEL_INFO,\n});\nconst gpt5ChatLatest = openAIModelRef({\n name: 'gpt-5-chat-latest',\n info: {\n supports: {\n ...GPT_5_MODEL_INFO.supports,\n tools: false,\n output: ['text'],\n },\n },\n});\nconst gpt5_1 = openAIModelRef({\n name: 'gpt-5.1',\n info: GPT_5_MODEL_INFO,\n});\n\nexport const SUPPORTED_GPT_MODELS = {\n 'gpt-4.5': gpt45,\n 'gpt-4.5-preview': gpt45Preview,\n 'gpt-4o': gpt4o,\n 'gpt-4o-2024-05-13': gpt4o20240513,\n o1: o1,\n o3: o3,\n 'o3-mini': o3Mini,\n 'o4-mini': o4Mini,\n 'gpt-4o-mini': gpt4oMini,\n 'gpt-4o-mini-2024-07-18': gpt4oMini20240718,\n 'gpt-4-turbo': gpt4Turbo,\n 'gpt-4-turbo-2024-04-09': gpt4Turbo20240409,\n 'gpt-4-turbo-preview': gpt4TurboPreview,\n 'gpt-4-0125-preview': gpt40125Preview,\n 'gpt-4-1106-preview': gpt41106Preview,\n 'gpt-4-vision': gpt4Vision,\n 'gpt-4-vision-preview': gpt4VisionPreview,\n 'gpt-4-1106-vision-preview': gpt41106VisionPreview,\n 'gpt-4': gpt4,\n 'gpt-4-0613': gpt40613,\n 'gpt-4-32k': gpt432k,\n 'gpt-4-32k-0613': gpt432k0613,\n 'gpt-3.5-turbo': gpt35Turbo,\n 'gpt-3.5-turbo-0125': gpt35Turbo0125,\n 'gpt-3.5-turbo-1106': gpt35Turbo1106,\n 'gpt-5': gpt5,\n 'gpt-5-mini': gpt5Mini,\n 'gpt-5-nano': gpt5Nano,\n 'gpt-5-chat-latest': gpt5ChatLatest,\n 'gpt-5.1': gpt5_1,\n} as const;\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../src/openai/gpt.ts"],"sourcesContent":["/**\n * Copyright 2024 The Fire Company\n * Copyright 2024 Google LLC\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 { z } from 'genkit';\nimport { ModelInfo, ModelReference } from 'genkit/model';\nimport {\n ChatCompletionCommonConfigSchema,\n compatOaiModelRef,\n} from '../model.mjs';\n\nconst MULTIMODAL_MODEL_INFO: ModelInfo = {\n supports: {\n multiturn: true,\n tools: true,\n media: true,\n systemRole: true,\n output: ['text', 'json'],\n constrained: 'all',\n },\n};\n\n/** OpenAI Custom configuration schema. */\nexport const OpenAIChatCompletionConfigSchema =\n ChatCompletionCommonConfigSchema.extend({\n store: z.boolean().optional(),\n });\n\n/** OpenAI ModelRef helper, with OpenAI specific config. */\nexport function openAIModelRef(params: {\n name: string;\n info?: ModelInfo;\n config?: any;\n}): ModelReference<typeof OpenAIChatCompletionConfigSchema> {\n return compatOaiModelRef({\n ...params,\n info: params.info,\n configSchema: OpenAIChatCompletionConfigSchema,\n namespace: 'openai',\n });\n}\n\nconst gpt45 = openAIModelRef({\n name: 'gpt-4.5',\n info: MULTIMODAL_MODEL_INFO,\n});\nconst gpt45Preview = openAIModelRef({\n name: 'gpt-4.5-preview',\n info: MULTIMODAL_MODEL_INFO,\n});\n\nconst gpt4o = openAIModelRef({\n name: 'gpt-4o',\n info: MULTIMODAL_MODEL_INFO,\n});\nconst gpt4o20240513 = openAIModelRef({\n name: 'gpt-4o-2024-05-13',\n info: MULTIMODAL_MODEL_INFO,\n});\n\nconst o1 = openAIModelRef({\n name: 'o1',\n info: {\n supports: {\n multiturn: true,\n tools: true,\n media: true,\n systemRole: false,\n output: ['text', 'json'],\n },\n },\n});\n\nconst o3 = openAIModelRef({\n name: 'o3',\n info: {\n supports: {\n multiturn: true,\n tools: true,\n media: true,\n systemRole: false,\n output: ['text', 'json'],\n },\n },\n});\n\nconst o3Mini = openAIModelRef({\n name: 'o3-mini',\n info: {\n supports: {\n multiturn: true,\n tools: true,\n media: false,\n systemRole: false,\n output: ['text', 'json'],\n },\n },\n});\n\nconst o4Mini = openAIModelRef({\n name: 'o4-mini',\n info: {\n supports: {\n multiturn: true,\n tools: true,\n media: true,\n systemRole: false,\n output: ['text', 'json'],\n },\n },\n});\n\nconst gpt4oMini = openAIModelRef({\n name: 'gpt-4o-mini',\n info: MULTIMODAL_MODEL_INFO,\n});\nconst gpt4oMini20240718 = openAIModelRef({\n name: 'gpt-4o-mini-2024-07-18',\n info: MULTIMODAL_MODEL_INFO,\n});\n\nconst gpt4Turbo = openAIModelRef({\n name: 'gpt-4-turbo',\n info: MULTIMODAL_MODEL_INFO,\n});\nconst gpt4Turbo20240409 = openAIModelRef({\n name: 'gpt-4-turbo-2024-04-09',\n info: MULTIMODAL_MODEL_INFO,\n});\nconst gpt4TurboPreview = openAIModelRef({\n name: 'gpt-4-turbo-preview',\n info: MULTIMODAL_MODEL_INFO,\n});\nconst gpt40125Preview = openAIModelRef({\n name: 'gpt-4-0125-preview',\n info: MULTIMODAL_MODEL_INFO,\n});\nconst gpt41106Preview = openAIModelRef({\n name: 'gpt-4-1106-preview',\n info: MULTIMODAL_MODEL_INFO,\n});\n\nconst GPT_4_VISION_MODEL_INFO: ModelInfo = {\n supports: {\n multiturn: true,\n tools: false,\n media: true,\n systemRole: true,\n output: ['text'],\n },\n};\nconst gpt4Vision = openAIModelRef({\n name: 'gpt-4-vision',\n info: GPT_4_VISION_MODEL_INFO,\n});\nconst gpt4VisionPreview = openAIModelRef({\n name: 'gpt-4-vision-preview',\n info: GPT_4_VISION_MODEL_INFO,\n});\nconst gpt41106VisionPreview = openAIModelRef({\n name: 'gpt-4-1106-vision-preview',\n info: GPT_4_VISION_MODEL_INFO,\n});\n\nconst GPT_4_MODEL_INFO: ModelInfo = {\n supports: {\n multiturn: true,\n tools: true,\n media: false,\n systemRole: true,\n output: ['text'],\n },\n};\nconst gpt4 = openAIModelRef({ name: 'gpt-4', info: GPT_4_MODEL_INFO });\nconst gpt40613 = openAIModelRef({\n name: 'gpt-4-0613',\n info: GPT_4_MODEL_INFO,\n});\nconst gpt432k = openAIModelRef({\n name: 'gpt-4-32k',\n info: GPT_4_MODEL_INFO,\n});\nconst gpt432k0613 = openAIModelRef({\n name: 'gpt-4-32k-0613',\n info: GPT_4_MODEL_INFO,\n});\n\nconst GPT_35_MODEL_INFO: ModelInfo = {\n supports: {\n multiturn: true,\n tools: true,\n media: false,\n systemRole: true,\n output: ['text', 'json'],\n },\n};\nconst gpt35Turbo = openAIModelRef({\n name: 'gpt-3.5-turbo',\n info: GPT_35_MODEL_INFO,\n});\nconst gpt35Turbo0125 = openAIModelRef({\n name: 'gpt-3.5-turbo-0125',\n info: GPT_35_MODEL_INFO,\n});\nconst gpt35Turbo1106 = openAIModelRef({\n name: 'gpt-3.5-turbo-1106',\n info: GPT_35_MODEL_INFO,\n});\n\nconst GPT_5_MODEL_INFO: ModelInfo = {\n supports: {\n multiturn: true,\n tools: true,\n media: true,\n systemRole: true,\n output: ['text', 'json'],\n },\n};\nconst gpt5 = openAIModelRef({\n name: 'gpt-5',\n info: GPT_5_MODEL_INFO,\n});\nconst gpt5Mini = openAIModelRef({\n name: 'gpt-5-mini',\n info: GPT_5_MODEL_INFO,\n});\nconst gpt5Nano = openAIModelRef({\n name: 'gpt-5-nano',\n info: GPT_5_MODEL_INFO,\n});\nconst gpt5ChatLatest = openAIModelRef({\n name: 'gpt-5-chat-latest',\n info: {\n supports: {\n ...GPT_5_MODEL_INFO.supports,\n tools: false,\n output: ['text'],\n },\n },\n});\nconst gpt5_1 = openAIModelRef({\n name: 'gpt-5.1',\n info: GPT_5_MODEL_INFO,\n});\n\nexport const SUPPORTED_GPT_MODELS = {\n 'gpt-4.5': gpt45,\n 'gpt-4.5-preview': gpt45Preview,\n 'gpt-4o': gpt4o,\n 'gpt-4o-2024-05-13': gpt4o20240513,\n o1: o1,\n o3: o3,\n 'o3-mini': o3Mini,\n 'o4-mini': o4Mini,\n 'gpt-4o-mini': gpt4oMini,\n 'gpt-4o-mini-2024-07-18': gpt4oMini20240718,\n 'gpt-4-turbo': gpt4Turbo,\n 'gpt-4-turbo-2024-04-09': gpt4Turbo20240409,\n 'gpt-4-turbo-preview': gpt4TurboPreview,\n 'gpt-4-0125-preview': gpt40125Preview,\n 'gpt-4-1106-preview': gpt41106Preview,\n 'gpt-4-vision': gpt4Vision,\n 'gpt-4-vision-preview': gpt4VisionPreview,\n 'gpt-4-1106-vision-preview': gpt41106VisionPreview,\n 'gpt-4': gpt4,\n 'gpt-4-0613': gpt40613,\n 'gpt-4-32k': gpt432k,\n 'gpt-4-32k-0613': gpt432k0613,\n 'gpt-3.5-turbo': gpt35Turbo,\n 'gpt-3.5-turbo-0125': gpt35Turbo0125,\n 'gpt-3.5-turbo-1106': gpt35Turbo1106,\n 'gpt-5': gpt5,\n 'gpt-5-mini': gpt5Mini,\n 'gpt-5-nano': gpt5Nano,\n 'gpt-5-chat-latest': gpt5ChatLatest,\n 'gpt-5.1': gpt5_1,\n} as const;\n"],"mappings":"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","names":[]}
|
package/lib/openai/index.mjs
CHANGED
|
@@ -6,33 +6,33 @@ import {
|
|
|
6
6
|
import {
|
|
7
7
|
defineCompatOpenAISpeechModel,
|
|
8
8
|
defineCompatOpenAITranscriptionModel
|
|
9
|
-
} from "../audio.
|
|
10
|
-
import { defineCompatOpenAIEmbedder } from "../embedder.
|
|
9
|
+
} from "../audio.mjs";
|
|
10
|
+
import { defineCompatOpenAIEmbedder } from "../embedder.mjs";
|
|
11
11
|
import {
|
|
12
12
|
defineCompatOpenAIImageModel
|
|
13
|
-
} from "../image.
|
|
14
|
-
import { openAICompatible } from "../index.
|
|
15
|
-
import { defineCompatOpenAIModel } from "../model.
|
|
13
|
+
} from "../image.mjs";
|
|
14
|
+
import { openAICompatible } from "../index.mjs";
|
|
15
|
+
import { defineCompatOpenAIModel } from "../model.mjs";
|
|
16
16
|
import {
|
|
17
17
|
gptImage1RequestBuilder,
|
|
18
18
|
openAIImageModelRef,
|
|
19
19
|
SUPPORTED_IMAGE_MODELS
|
|
20
|
-
} from "./dalle.
|
|
20
|
+
} from "./dalle.mjs";
|
|
21
21
|
import {
|
|
22
22
|
SUPPORTED_EMBEDDING_MODELS,
|
|
23
23
|
TextEmbeddingConfigSchema
|
|
24
|
-
} from "./embedder.
|
|
24
|
+
} from "./embedder.mjs";
|
|
25
25
|
import {
|
|
26
26
|
openAIModelRef,
|
|
27
27
|
SUPPORTED_GPT_MODELS
|
|
28
|
-
} from "./gpt.
|
|
29
|
-
import { openAITranscriptionModelRef, SUPPORTED_STT_MODELS } from "./stt.
|
|
30
|
-
import { openAISpeechModelRef, SUPPORTED_TTS_MODELS } from "./tts.
|
|
28
|
+
} from "./gpt.mjs";
|
|
29
|
+
import { openAITranscriptionModelRef, SUPPORTED_STT_MODELS } from "./stt.mjs";
|
|
30
|
+
import { openAISpeechModelRef, SUPPORTED_TTS_MODELS } from "./tts.mjs";
|
|
31
31
|
import {
|
|
32
32
|
defineOpenAIWhisperModel,
|
|
33
33
|
openAIWhisperModelRef,
|
|
34
34
|
SUPPORTED_WHISPER_MODELS
|
|
35
|
-
} from "./whisper.
|
|
35
|
+
} from "./whisper.mjs";
|
|
36
36
|
const UNSUPPORTED_MODEL_MATCHERS = ["babbage", "davinci", "codex"];
|
|
37
37
|
function createResolver(pluginOptions) {
|
|
38
38
|
return async (client, actionType, actionName) => {
|
package/lib/openai/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/openai/index.ts"],"sourcesContent":["/**\n * Copyright 2024 The Fire Company\n * Copyright 2024 Google LLC\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 {\n ActionMetadata,\n embedderActionMetadata,\n embedderRef,\n EmbedderReference,\n modelActionMetadata,\n ModelReference,\n z,\n} from 'genkit';\nimport { type GenkitPluginV2, type ResolvableAction } from 'genkit/plugin';\nimport { type ActionType } from 'genkit/registry';\nimport OpenAI from 'openai';\nimport {\n defineCompatOpenAISpeechModel,\n defineCompatOpenAITranscriptionModel,\n SpeechConfigSchema,\n TranscriptionConfigSchema,\n} from '../audio.js';\nimport { defineCompatOpenAIEmbedder } from '../embedder.js';\nimport {\n defineCompatOpenAIImageModel,\n ImageGenerationCommonConfigSchema,\n} from '../image.js';\nimport { openAICompatible, PluginOptions } from '../index.js';\nimport { defineCompatOpenAIModel } from '../model.js';\nimport {\n gptImage1RequestBuilder,\n openAIImageModelRef,\n SUPPORTED_IMAGE_MODELS,\n} from './dalle.js';\nimport {\n SUPPORTED_EMBEDDING_MODELS,\n TextEmbeddingConfigSchema,\n} from './embedder.js';\nimport {\n OpenAIChatCompletionConfigSchema,\n openAIModelRef,\n SUPPORTED_GPT_MODELS,\n} from './gpt.js';\nimport { openAITranscriptionModelRef, SUPPORTED_STT_MODELS } from './stt.js';\nimport { openAISpeechModelRef, SUPPORTED_TTS_MODELS } from './tts.js';\nimport {\n defineOpenAIWhisperModel,\n openAIWhisperModelRef,\n SUPPORTED_WHISPER_MODELS,\n WhisperConfigSchema,\n} from './whisper.js';\n\nexport type OpenAIPluginOptions = Omit<PluginOptions, 'name' | 'baseURL'>;\n\nconst UNSUPPORTED_MODEL_MATCHERS = ['babbage', 'davinci', 'codex'];\n\nfunction createResolver(pluginOptions: PluginOptions) {\n return async (client: OpenAI, actionType: ActionType, actionName: string) => {\n if (actionType === 'embedder') {\n return defineCompatOpenAIEmbedder({\n name: actionName,\n client,\n pluginOptions,\n });\n } else if (\n actionName.includes('gpt-image-1') ||\n actionName.includes('dall-e')\n ) {\n const modelRef = openAIImageModelRef({ name: actionName });\n return defineCompatOpenAIImageModel({\n name: modelRef.name,\n client,\n pluginOptions,\n modelRef,\n });\n } else if (actionName.includes('tts')) {\n const modelRef = openAISpeechModelRef({ name: actionName });\n return defineCompatOpenAISpeechModel({\n name: modelRef.name,\n client,\n pluginOptions,\n modelRef,\n });\n } else if (actionName.includes('whisper')) {\n const modelRef = openAIWhisperModelRef({ name: actionName });\n return defineOpenAIWhisperModel({\n name: modelRef.name,\n client,\n pluginOptions,\n modelRef,\n });\n } else if (actionName.includes('transcribe')) {\n const modelRef = openAITranscriptionModelRef({\n name: actionName,\n });\n return defineCompatOpenAITranscriptionModel({\n name: modelRef.name,\n client,\n pluginOptions,\n modelRef,\n });\n } else {\n const modelRef = openAIModelRef({ name: actionName });\n return defineCompatOpenAIModel({\n name: modelRef.name,\n client,\n pluginOptions,\n modelRef,\n });\n }\n };\n}\n\nfunction filterOpenAiModels(model: OpenAI.Model): boolean {\n return !UNSUPPORTED_MODEL_MATCHERS.some((m) => model.id.includes(m));\n}\n\nconst listActions = async (client: OpenAI): Promise<ActionMetadata[]> => {\n return await client.models.list().then((response) =>\n response.data.filter(filterOpenAiModels).map((model: OpenAI.Model) => {\n if (model.id.includes('embedding')) {\n return embedderActionMetadata({\n name: model.id,\n configSchema: TextEmbeddingConfigSchema,\n info: SUPPORTED_EMBEDDING_MODELS[model.id]?.info,\n });\n } else if (\n model.id.includes('gpt-image-1') ||\n model.id.includes('dall-e')\n ) {\n const modelRef =\n SUPPORTED_IMAGE_MODELS[model.id] ??\n openAIImageModelRef({ name: model.id });\n return modelActionMetadata({\n name: modelRef.name,\n info: modelRef.info,\n configSchema: modelRef.configSchema,\n });\n } else if (model.id.includes('tts')) {\n const modelRef =\n SUPPORTED_TTS_MODELS[model.id] ??\n openAISpeechModelRef({ name: model.id });\n return modelActionMetadata({\n name: modelRef.name,\n info: modelRef.info,\n configSchema: modelRef.configSchema,\n });\n } else if (model.id.includes('whisper')) {\n const modelRef =\n SUPPORTED_WHISPER_MODELS[model.id] ??\n openAIWhisperModelRef({ name: model.id });\n return modelActionMetadata({\n name: modelRef.name,\n info: modelRef.info,\n configSchema: modelRef.configSchema,\n });\n } else if (model.id.includes('transcribe')) {\n const modelRef =\n SUPPORTED_STT_MODELS[model.id] ??\n openAITranscriptionModelRef({ name: model.id });\n return modelActionMetadata({\n name: modelRef.name,\n info: modelRef.info,\n configSchema: modelRef.configSchema,\n });\n } else {\n const modelRef =\n SUPPORTED_GPT_MODELS[model.id] ?? openAIModelRef({ name: model.id });\n return modelActionMetadata({\n name: modelRef.name,\n info: modelRef.info,\n configSchema: modelRef.configSchema,\n });\n }\n })\n );\n};\n\nexport function openAIPlugin(options?: OpenAIPluginOptions): GenkitPluginV2 {\n const pluginOptions = { name: 'openai', ...options };\n return openAICompatible({\n name: 'openai',\n ...options,\n initializer: async (client) => {\n const models = [] as ResolvableAction[];\n models.push(\n ...Object.values(SUPPORTED_GPT_MODELS).map((modelRef) =>\n defineCompatOpenAIModel({\n name: modelRef.name,\n client,\n pluginOptions,\n modelRef,\n })\n )\n );\n models.push(\n ...Object.values(SUPPORTED_EMBEDDING_MODELS).map((embedderRef) =>\n defineCompatOpenAIEmbedder({\n name: embedderRef.name,\n client,\n pluginOptions,\n embedderRef,\n })\n )\n );\n models.push(\n ...Object.values(SUPPORTED_TTS_MODELS).map((modelRef) =>\n defineCompatOpenAISpeechModel({\n name: modelRef.name,\n client,\n pluginOptions,\n modelRef,\n })\n )\n );\n models.push(\n ...Object.values(SUPPORTED_WHISPER_MODELS).map((modelRef) =>\n defineOpenAIWhisperModel({\n name: modelRef.name,\n client,\n pluginOptions,\n modelRef,\n })\n )\n );\n models.push(\n ...Object.values(SUPPORTED_STT_MODELS).map((modelRef) =>\n defineCompatOpenAITranscriptionModel({\n name: modelRef.name,\n client,\n pluginOptions,\n modelRef,\n })\n )\n );\n models.push(\n ...Object.values(SUPPORTED_IMAGE_MODELS).map((modelRef) =>\n defineCompatOpenAIImageModel({\n name: modelRef.name,\n client,\n pluginOptions,\n modelRef,\n requestBuilder: modelRef.name.includes('gpt-image-1')\n ? gptImage1RequestBuilder\n : undefined,\n })\n )\n );\n return models;\n },\n resolver: createResolver(pluginOptions),\n listActions,\n });\n}\n\nexport type OpenAIPlugin = {\n (params?: OpenAIPluginOptions): GenkitPluginV2;\n model(\n name:\n | keyof typeof SUPPORTED_IMAGE_MODELS\n | (`dall-e${string}` & {})\n | (`gpt-image-${string}` & {}),\n config?: z.infer<typeof ImageGenerationCommonConfigSchema>\n ): ModelReference<typeof ImageGenerationCommonConfigSchema>;\n model(\n name:\n | keyof typeof SUPPORTED_TTS_MODELS\n | (`tts-${string}` & {})\n | (`${string}-tts` & {}),\n config?: z.infer<typeof SpeechConfigSchema>\n ): ModelReference<typeof SpeechConfigSchema>;\n model(\n name: keyof typeof SUPPORTED_WHISPER_MODELS | (`whisper-${string}` & {}),\n config?: z.infer<typeof WhisperConfigSchema>\n ): ModelReference<typeof WhisperConfigSchema>;\n model(\n name: keyof typeof SUPPORTED_STT_MODELS | (`${string}-transcribe` & {}),\n config?: z.infer<typeof TranscriptionConfigSchema>\n ): ModelReference<typeof TranscriptionConfigSchema>;\n model(\n name:\n | keyof typeof SUPPORTED_GPT_MODELS\n | (`gpt-${string}` & {})\n | (`o${number}` & {}),\n config?: z.infer<typeof OpenAIChatCompletionConfigSchema>\n ): ModelReference<typeof OpenAIChatCompletionConfigSchema>;\n model(name: string, config?: any): ModelReference<z.ZodTypeAny>;\n embedder(\n name:\n | keyof typeof SUPPORTED_EMBEDDING_MODELS\n | (`${string}-embedding-${string}` & {}),\n config?: z.infer<typeof TextEmbeddingConfigSchema>\n ): EmbedderReference<typeof TextEmbeddingConfigSchema>;\n embedder(name: string, config?: any): EmbedderReference<z.ZodTypeAny>;\n};\n\nconst model = ((name: string, config?: any): ModelReference<z.ZodTypeAny> => {\n if (name.includes('gpt-image-1') || name.includes('dall-e')) {\n return openAIImageModelRef({\n name,\n config,\n });\n }\n if (name.includes('tts')) {\n return openAISpeechModelRef({\n name,\n config,\n });\n }\n if (name.includes('whisper')) {\n return openAIWhisperModelRef({\n name,\n config,\n });\n }\n if (name.includes('transcribe')) {\n return openAITranscriptionModelRef({\n name,\n config,\n });\n }\n return openAIModelRef({\n name,\n config,\n });\n}) as OpenAIPlugin['model'];\n\nconst embedder = ((\n name: string,\n config?: any\n): EmbedderReference<z.ZodTypeAny> => {\n return embedderRef({\n name,\n config,\n configSchema: TextEmbeddingConfigSchema,\n namespace: 'openai',\n });\n}) as OpenAIPlugin['embedder'];\n\n/**\n * This module provides an interface to the OpenAI models through the Genkit\n * plugin system. It allows users to interact with various models by providing\n * an API key and optional configuration.\n *\n * The main export is the `openai` plugin, which can be configured with an API\n * key either directly or through environment variables. It initializes the\n * OpenAI client and makes available the models for use.\n *\n * Exports:\n * - openai: The main plugin function to interact with OpenAI.\n *\n * Usage:\n * To use the models, initialize the openai plugin inside `configureGenkit` and\n * pass the configuration options. If no API key is provided in the options, the\n * environment variable `OPENAI_API_KEY` must be set.\n *\n * Example:\n * ```\n * import { openAI } from '@genkit-ai/compat-oai/openai';\n *\n * export default configureGenkit({\n * plugins: [\n * openai()\n * ... // other plugins\n * ]\n * });\n * ```\n */\nexport const openAI: OpenAIPlugin = Object.assign(openAIPlugin, {\n model,\n embedder,\n});\n\nexport default openAI;\n"],"mappings":"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","names":["model","embedderRef"]}
|
|
1
|
+
{"version":3,"sources":["../../src/openai/index.ts"],"sourcesContent":["/**\n * Copyright 2024 The Fire Company\n * Copyright 2024 Google LLC\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 {\n ActionMetadata,\n embedderActionMetadata,\n embedderRef,\n EmbedderReference,\n modelActionMetadata,\n ModelReference,\n z,\n} from 'genkit';\nimport { type GenkitPluginV2, type ResolvableAction } from 'genkit/plugin';\nimport { type ActionType } from 'genkit/registry';\nimport OpenAI from 'openai';\nimport {\n defineCompatOpenAISpeechModel,\n defineCompatOpenAITranscriptionModel,\n SpeechConfigSchema,\n TranscriptionConfigSchema,\n} from '../audio.mjs';\nimport { defineCompatOpenAIEmbedder } from '../embedder.mjs';\nimport {\n defineCompatOpenAIImageModel,\n ImageGenerationCommonConfigSchema,\n} from '../image.mjs';\nimport { openAICompatible, PluginOptions } from '../index.mjs';\nimport { defineCompatOpenAIModel } from '../model.mjs';\nimport {\n gptImage1RequestBuilder,\n openAIImageModelRef,\n SUPPORTED_IMAGE_MODELS,\n} from './dalle.mjs';\nimport {\n SUPPORTED_EMBEDDING_MODELS,\n TextEmbeddingConfigSchema,\n} from './embedder.mjs';\nimport {\n OpenAIChatCompletionConfigSchema,\n openAIModelRef,\n SUPPORTED_GPT_MODELS,\n} from './gpt.mjs';\nimport { openAITranscriptionModelRef, SUPPORTED_STT_MODELS } from './stt.mjs';\nimport { openAISpeechModelRef, SUPPORTED_TTS_MODELS } from './tts.mjs';\nimport {\n defineOpenAIWhisperModel,\n openAIWhisperModelRef,\n SUPPORTED_WHISPER_MODELS,\n WhisperConfigSchema,\n} from './whisper.mjs';\n\nexport type OpenAIPluginOptions = Omit<PluginOptions, 'name' | 'baseURL'>;\n\nconst UNSUPPORTED_MODEL_MATCHERS = ['babbage', 'davinci', 'codex'];\n\nfunction createResolver(pluginOptions: PluginOptions) {\n return async (client: OpenAI, actionType: ActionType, actionName: string) => {\n if (actionType === 'embedder') {\n return defineCompatOpenAIEmbedder({\n name: actionName,\n client,\n pluginOptions,\n });\n } else if (\n actionName.includes('gpt-image-1') ||\n actionName.includes('dall-e')\n ) {\n const modelRef = openAIImageModelRef({ name: actionName });\n return defineCompatOpenAIImageModel({\n name: modelRef.name,\n client,\n pluginOptions,\n modelRef,\n });\n } else if (actionName.includes('tts')) {\n const modelRef = openAISpeechModelRef({ name: actionName });\n return defineCompatOpenAISpeechModel({\n name: modelRef.name,\n client,\n pluginOptions,\n modelRef,\n });\n } else if (actionName.includes('whisper')) {\n const modelRef = openAIWhisperModelRef({ name: actionName });\n return defineOpenAIWhisperModel({\n name: modelRef.name,\n client,\n pluginOptions,\n modelRef,\n });\n } else if (actionName.includes('transcribe')) {\n const modelRef = openAITranscriptionModelRef({\n name: actionName,\n });\n return defineCompatOpenAITranscriptionModel({\n name: modelRef.name,\n client,\n pluginOptions,\n modelRef,\n });\n } else {\n const modelRef = openAIModelRef({ name: actionName });\n return defineCompatOpenAIModel({\n name: modelRef.name,\n client,\n pluginOptions,\n modelRef,\n });\n }\n };\n}\n\nfunction filterOpenAiModels(model: OpenAI.Model): boolean {\n return !UNSUPPORTED_MODEL_MATCHERS.some((m) => model.id.includes(m));\n}\n\nconst listActions = async (client: OpenAI): Promise<ActionMetadata[]> => {\n return await client.models.list().then((response) =>\n response.data.filter(filterOpenAiModels).map((model: OpenAI.Model) => {\n if (model.id.includes('embedding')) {\n return embedderActionMetadata({\n name: model.id,\n configSchema: TextEmbeddingConfigSchema,\n info: SUPPORTED_EMBEDDING_MODELS[model.id]?.info,\n });\n } else if (\n model.id.includes('gpt-image-1') ||\n model.id.includes('dall-e')\n ) {\n const modelRef =\n SUPPORTED_IMAGE_MODELS[model.id] ??\n openAIImageModelRef({ name: model.id });\n return modelActionMetadata({\n name: modelRef.name,\n info: modelRef.info,\n configSchema: modelRef.configSchema,\n });\n } else if (model.id.includes('tts')) {\n const modelRef =\n SUPPORTED_TTS_MODELS[model.id] ??\n openAISpeechModelRef({ name: model.id });\n return modelActionMetadata({\n name: modelRef.name,\n info: modelRef.info,\n configSchema: modelRef.configSchema,\n });\n } else if (model.id.includes('whisper')) {\n const modelRef =\n SUPPORTED_WHISPER_MODELS[model.id] ??\n openAIWhisperModelRef({ name: model.id });\n return modelActionMetadata({\n name: modelRef.name,\n info: modelRef.info,\n configSchema: modelRef.configSchema,\n });\n } else if (model.id.includes('transcribe')) {\n const modelRef =\n SUPPORTED_STT_MODELS[model.id] ??\n openAITranscriptionModelRef({ name: model.id });\n return modelActionMetadata({\n name: modelRef.name,\n info: modelRef.info,\n configSchema: modelRef.configSchema,\n });\n } else {\n const modelRef =\n SUPPORTED_GPT_MODELS[model.id] ?? openAIModelRef({ name: model.id });\n return modelActionMetadata({\n name: modelRef.name,\n info: modelRef.info,\n configSchema: modelRef.configSchema,\n });\n }\n })\n );\n};\n\nexport function openAIPlugin(options?: OpenAIPluginOptions): GenkitPluginV2 {\n const pluginOptions = { name: 'openai', ...options };\n return openAICompatible({\n name: 'openai',\n ...options,\n initializer: async (client) => {\n const models = [] as ResolvableAction[];\n models.push(\n ...Object.values(SUPPORTED_GPT_MODELS).map((modelRef) =>\n defineCompatOpenAIModel({\n name: modelRef.name,\n client,\n pluginOptions,\n modelRef,\n })\n )\n );\n models.push(\n ...Object.values(SUPPORTED_EMBEDDING_MODELS).map((embedderRef) =>\n defineCompatOpenAIEmbedder({\n name: embedderRef.name,\n client,\n pluginOptions,\n embedderRef,\n })\n )\n );\n models.push(\n ...Object.values(SUPPORTED_TTS_MODELS).map((modelRef) =>\n defineCompatOpenAISpeechModel({\n name: modelRef.name,\n client,\n pluginOptions,\n modelRef,\n })\n )\n );\n models.push(\n ...Object.values(SUPPORTED_WHISPER_MODELS).map((modelRef) =>\n defineOpenAIWhisperModel({\n name: modelRef.name,\n client,\n pluginOptions,\n modelRef,\n })\n )\n );\n models.push(\n ...Object.values(SUPPORTED_STT_MODELS).map((modelRef) =>\n defineCompatOpenAITranscriptionModel({\n name: modelRef.name,\n client,\n pluginOptions,\n modelRef,\n })\n )\n );\n models.push(\n ...Object.values(SUPPORTED_IMAGE_MODELS).map((modelRef) =>\n defineCompatOpenAIImageModel({\n name: modelRef.name,\n client,\n pluginOptions,\n modelRef,\n requestBuilder: modelRef.name.includes('gpt-image-1')\n ? gptImage1RequestBuilder\n : undefined,\n })\n )\n );\n return models;\n },\n resolver: createResolver(pluginOptions),\n listActions,\n });\n}\n\nexport type OpenAIPlugin = {\n (params?: OpenAIPluginOptions): GenkitPluginV2;\n model(\n name:\n | keyof typeof SUPPORTED_IMAGE_MODELS\n | (`dall-e${string}` & {})\n | (`gpt-image-${string}` & {}),\n config?: z.infer<typeof ImageGenerationCommonConfigSchema>\n ): ModelReference<typeof ImageGenerationCommonConfigSchema>;\n model(\n name:\n | keyof typeof SUPPORTED_TTS_MODELS\n | (`tts-${string}` & {})\n | (`${string}-tts` & {}),\n config?: z.infer<typeof SpeechConfigSchema>\n ): ModelReference<typeof SpeechConfigSchema>;\n model(\n name: keyof typeof SUPPORTED_WHISPER_MODELS | (`whisper-${string}` & {}),\n config?: z.infer<typeof WhisperConfigSchema>\n ): ModelReference<typeof WhisperConfigSchema>;\n model(\n name: keyof typeof SUPPORTED_STT_MODELS | (`${string}-transcribe` & {}),\n config?: z.infer<typeof TranscriptionConfigSchema>\n ): ModelReference<typeof TranscriptionConfigSchema>;\n model(\n name:\n | keyof typeof SUPPORTED_GPT_MODELS\n | (`gpt-${string}` & {})\n | (`o${number}` & {}),\n config?: z.infer<typeof OpenAIChatCompletionConfigSchema>\n ): ModelReference<typeof OpenAIChatCompletionConfigSchema>;\n model(name: string, config?: any): ModelReference<z.ZodTypeAny>;\n embedder(\n name:\n | keyof typeof SUPPORTED_EMBEDDING_MODELS\n | (`${string}-embedding-${string}` & {}),\n config?: z.infer<typeof TextEmbeddingConfigSchema>\n ): EmbedderReference<typeof TextEmbeddingConfigSchema>;\n embedder(name: string, config?: any): EmbedderReference<z.ZodTypeAny>;\n};\n\nconst model = ((name: string, config?: any): ModelReference<z.ZodTypeAny> => {\n if (name.includes('gpt-image-1') || name.includes('dall-e')) {\n return openAIImageModelRef({\n name,\n config,\n });\n }\n if (name.includes('tts')) {\n return openAISpeechModelRef({\n name,\n config,\n });\n }\n if (name.includes('whisper')) {\n return openAIWhisperModelRef({\n name,\n config,\n });\n }\n if (name.includes('transcribe')) {\n return openAITranscriptionModelRef({\n name,\n config,\n });\n }\n return openAIModelRef({\n name,\n config,\n });\n}) as OpenAIPlugin['model'];\n\nconst embedder = ((\n name: string,\n config?: any\n): EmbedderReference<z.ZodTypeAny> => {\n return embedderRef({\n name,\n config,\n configSchema: TextEmbeddingConfigSchema,\n namespace: 'openai',\n });\n}) as OpenAIPlugin['embedder'];\n\n/**\n * This module provides an interface to the OpenAI models through the Genkit\n * plugin system. It allows users to interact with various models by providing\n * an API key and optional configuration.\n *\n * The main export is the `openai` plugin, which can be configured with an API\n * key either directly or through environment variables. It initializes the\n * OpenAI client and makes available the models for use.\n *\n * Exports:\n * - openai: The main plugin function to interact with OpenAI.\n *\n * Usage:\n * To use the models, initialize the openai plugin inside `configureGenkit` and\n * pass the configuration options. If no API key is provided in the options, the\n * environment variable `OPENAI_API_KEY` must be set.\n *\n * Example:\n * ```\n * import { openAI } from '@genkit-ai/compat-oai/openai';\n *\n * export default configureGenkit({\n * plugins: [\n * openai()\n * ... // other plugins\n * ]\n * });\n * ```\n */\nexport const openAI: OpenAIPlugin = Object.assign(openAIPlugin, {\n model,\n embedder,\n});\n\nexport default openAI;\n"],"mappings":"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","names":["model","embedderRef"]}
|
package/lib/openai/stt.js
CHANGED
|
@@ -22,7 +22,7 @@ __export(stt_exports, {
|
|
|
22
22
|
openAITranscriptionModelRef: () => openAITranscriptionModelRef
|
|
23
23
|
});
|
|
24
24
|
module.exports = __toCommonJS(stt_exports);
|
|
25
|
-
var import_audio = require("../audio");
|
|
25
|
+
var import_audio = require("../audio.js");
|
|
26
26
|
function openAITranscriptionModelRef(params) {
|
|
27
27
|
return (0, import_audio.compatOaiTranscriptionModelRef)({ ...params, namespace: "openai" });
|
|
28
28
|
}
|
package/lib/openai/stt.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/openai/stt.ts"],"sourcesContent":["/**\n * Copyright 2024 The Fire Company\n * Copyright 2024 Google LLC\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 { z } from 'genkit';\nimport { ModelInfo } from 'genkit/model';\nimport { compatOaiTranscriptionModelRef } from '../audio';\n\n/** OpenAI transcription ModelRef helper, same as the OpenAI-compatible spec. */\nexport function openAITranscriptionModelRef<\n CustomOptions extends z.ZodTypeAny = z.ZodTypeAny,\n>(params: {\n name: string;\n info?: ModelInfo;\n configSchema?: CustomOptions;\n config?: any;\n}) {\n return compatOaiTranscriptionModelRef({ ...params, namespace: 'openai' });\n}\n\nexport const SUPPORTED_STT_MODELS = {\n 'gpt-4o-transcribe': openAITranscriptionModelRef({\n name: 'gpt-4o-transcribe',\n }),\n 'gpt-4o-mini-transcribe': openAITranscriptionModelRef({\n name: 'gpt-4o-mini-transcribe',\n }),\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAmBA,mBAA+C;AAGxC,SAAS,4BAEd,QAKC;AACD,aAAO,6CAA+B,EAAE,GAAG,QAAQ,WAAW,SAAS,CAAC;AAC1E;AAEO,MAAM,uBAAuB;AAAA,EAClC,qBAAqB,4BAA4B;AAAA,IAC/C,MAAM;AAAA,EACR,CAAC;AAAA,EACD,0BAA0B,4BAA4B;AAAA,IACpD,MAAM;AAAA,EACR,CAAC;AACH;","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../src/openai/stt.ts"],"sourcesContent":["/**\n * Copyright 2024 The Fire Company\n * Copyright 2024 Google LLC\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 { z } from 'genkit';\nimport { ModelInfo } from 'genkit/model';\nimport { compatOaiTranscriptionModelRef } from '../audio.js';\n\n/** OpenAI transcription ModelRef helper, same as the OpenAI-compatible spec. */\nexport function openAITranscriptionModelRef<\n CustomOptions extends z.ZodTypeAny = z.ZodTypeAny,\n>(params: {\n name: string;\n info?: ModelInfo;\n configSchema?: CustomOptions;\n config?: any;\n}) {\n return compatOaiTranscriptionModelRef({ ...params, namespace: 'openai' });\n}\n\nexport const SUPPORTED_STT_MODELS = {\n 'gpt-4o-transcribe': openAITranscriptionModelRef({\n name: 'gpt-4o-transcribe',\n }),\n 'gpt-4o-mini-transcribe': openAITranscriptionModelRef({\n name: 'gpt-4o-mini-transcribe',\n }),\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAmBA,mBAA+C;AAGxC,SAAS,4BAEd,QAKC;AACD,aAAO,6CAA+B,EAAE,GAAG,QAAQ,WAAW,SAAS,CAAC;AAC1E;AAEO,MAAM,uBAAuB;AAAA,EAClC,qBAAqB,4BAA4B;AAAA,IAC/C,MAAM;AAAA,EACR,CAAC;AAAA,EACD,0BAA0B,4BAA4B;AAAA,IACpD,MAAM;AAAA,EACR,CAAC;AACH;","names":[]}
|
package/lib/openai/stt.mjs
CHANGED
package/lib/openai/stt.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/openai/stt.ts"],"sourcesContent":["/**\n * Copyright 2024 The Fire Company\n * Copyright 2024 Google LLC\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 { z } from 'genkit';\nimport { ModelInfo } from 'genkit/model';\nimport { compatOaiTranscriptionModelRef } from '../audio';\n\n/** OpenAI transcription ModelRef helper, same as the OpenAI-compatible spec. */\nexport function openAITranscriptionModelRef<\n CustomOptions extends z.ZodTypeAny = z.ZodTypeAny,\n>(params: {\n name: string;\n info?: ModelInfo;\n configSchema?: CustomOptions;\n config?: any;\n}) {\n return compatOaiTranscriptionModelRef({ ...params, namespace: 'openai' });\n}\n\nexport const SUPPORTED_STT_MODELS = {\n 'gpt-4o-transcribe': openAITranscriptionModelRef({\n name: 'gpt-4o-transcribe',\n }),\n 'gpt-4o-mini-transcribe': openAITranscriptionModelRef({\n name: 'gpt-4o-mini-transcribe',\n }),\n};\n"],"mappings":"AAmBA,SAAS,sCAAsC;AAGxC,SAAS,4BAEd,QAKC;AACD,SAAO,+BAA+B,EAAE,GAAG,QAAQ,WAAW,SAAS,CAAC;AAC1E;AAEO,MAAM,uBAAuB;AAAA,EAClC,qBAAqB,4BAA4B;AAAA,IAC/C,MAAM;AAAA,EACR,CAAC;AAAA,EACD,0BAA0B,4BAA4B;AAAA,IACpD,MAAM;AAAA,EACR,CAAC;AACH;","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../src/openai/stt.ts"],"sourcesContent":["/**\n * Copyright 2024 The Fire Company\n * Copyright 2024 Google LLC\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 { z } from 'genkit';\nimport { ModelInfo } from 'genkit/model';\nimport { compatOaiTranscriptionModelRef } from '../audio.mjs';\n\n/** OpenAI transcription ModelRef helper, same as the OpenAI-compatible spec. */\nexport function openAITranscriptionModelRef<\n CustomOptions extends z.ZodTypeAny = z.ZodTypeAny,\n>(params: {\n name: string;\n info?: ModelInfo;\n configSchema?: CustomOptions;\n config?: any;\n}) {\n return compatOaiTranscriptionModelRef({ ...params, namespace: 'openai' });\n}\n\nexport const SUPPORTED_STT_MODELS = {\n 'gpt-4o-transcribe': openAITranscriptionModelRef({\n name: 'gpt-4o-transcribe',\n }),\n 'gpt-4o-mini-transcribe': openAITranscriptionModelRef({\n name: 'gpt-4o-mini-transcribe',\n }),\n};\n"],"mappings":"AAmBA,SAAS,sCAAsC;AAGxC,SAAS,4BAEd,QAKC;AACD,SAAO,+BAA+B,EAAE,GAAG,QAAQ,WAAW,SAAS,CAAC;AAC1E;AAEO,MAAM,uBAAuB;AAAA,EAClC,qBAAqB,4BAA4B;AAAA,IAC/C,MAAM;AAAA,EACR,CAAC;AAAA,EACD,0BAA0B,4BAA4B;AAAA,IACpD,MAAM;AAAA,EACR,CAAC;AACH;","names":[]}
|
package/lib/openai/tts.js
CHANGED
|
@@ -22,7 +22,7 @@ __export(tts_exports, {
|
|
|
22
22
|
openAISpeechModelRef: () => openAISpeechModelRef
|
|
23
23
|
});
|
|
24
24
|
module.exports = __toCommonJS(tts_exports);
|
|
25
|
-
var import_audio = require("../audio");
|
|
25
|
+
var import_audio = require("../audio.js");
|
|
26
26
|
function openAISpeechModelRef(params) {
|
|
27
27
|
return (0, import_audio.compatOaiSpeechModelRef)({ ...params, namespace: "openai" });
|
|
28
28
|
}
|
package/lib/openai/tts.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/openai/tts.ts"],"sourcesContent":["/**\n * Copyright 2024 The Fire Company\n * Copyright 2024 Google LLC\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 */\nimport { z } from 'genkit';\nimport { ModelInfo } from 'genkit/model';\nimport { compatOaiSpeechModelRef, SpeechConfigSchema } from '../audio';\n\n/** OpenAI speech ModelRef helper, same as the OpenAI-compatible spec. */\nexport function openAISpeechModelRef<\n CustomOptions extends z.ZodTypeAny = z.ZodTypeAny,\n>(params: {\n name: string;\n info?: ModelInfo;\n configSchema?: CustomOptions;\n config?: any;\n}) {\n return compatOaiSpeechModelRef({ ...params, namespace: 'openai' });\n}\n\nexport const SUPPORTED_TTS_MODELS = {\n 'tts-1': openAISpeechModelRef({ name: 'tts-1' }),\n 'tts-1-hd': openAISpeechModelRef({\n name: 'tts-1-hd',\n }),\n 'gpt-4o-mini-tts': openAISpeechModelRef({\n name: 'gpt-4o-mini-tts',\n configSchema: SpeechConfigSchema.omit({ speed: true }),\n }),\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAkBA,mBAA4D;AAGrD,SAAS,qBAEd,QAKC;AACD,aAAO,sCAAwB,EAAE,GAAG,QAAQ,WAAW,SAAS,CAAC;AACnE;AAEO,MAAM,uBAAuB;AAAA,EAClC,SAAS,qBAAqB,EAAE,MAAM,QAAQ,CAAC;AAAA,EAC/C,YAAY,qBAAqB;AAAA,IAC/B,MAAM;AAAA,EACR,CAAC;AAAA,EACD,mBAAmB,qBAAqB;AAAA,IACtC,MAAM;AAAA,IACN,cAAc,gCAAmB,KAAK,EAAE,OAAO,KAAK,CAAC;AAAA,EACvD,CAAC;AACH;","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../src/openai/tts.ts"],"sourcesContent":["/**\n * Copyright 2024 The Fire Company\n * Copyright 2024 Google LLC\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 */\nimport { z } from 'genkit';\nimport { ModelInfo } from 'genkit/model';\nimport { compatOaiSpeechModelRef, SpeechConfigSchema } from '../audio.js';\n\n/** OpenAI speech ModelRef helper, same as the OpenAI-compatible spec. */\nexport function openAISpeechModelRef<\n CustomOptions extends z.ZodTypeAny = z.ZodTypeAny,\n>(params: {\n name: string;\n info?: ModelInfo;\n configSchema?: CustomOptions;\n config?: any;\n}) {\n return compatOaiSpeechModelRef({ ...params, namespace: 'openai' });\n}\n\nexport const SUPPORTED_TTS_MODELS = {\n 'tts-1': openAISpeechModelRef({ name: 'tts-1' }),\n 'tts-1-hd': openAISpeechModelRef({\n name: 'tts-1-hd',\n }),\n 'gpt-4o-mini-tts': openAISpeechModelRef({\n name: 'gpt-4o-mini-tts',\n configSchema: SpeechConfigSchema.omit({ speed: true }),\n }),\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAkBA,mBAA4D;AAGrD,SAAS,qBAEd,QAKC;AACD,aAAO,sCAAwB,EAAE,GAAG,QAAQ,WAAW,SAAS,CAAC;AACnE;AAEO,MAAM,uBAAuB;AAAA,EAClC,SAAS,qBAAqB,EAAE,MAAM,QAAQ,CAAC;AAAA,EAC/C,YAAY,qBAAqB;AAAA,IAC/B,MAAM;AAAA,EACR,CAAC;AAAA,EACD,mBAAmB,qBAAqB;AAAA,IACtC,MAAM;AAAA,IACN,cAAc,gCAAmB,KAAK,EAAE,OAAO,KAAK,CAAC;AAAA,EACvD,CAAC;AACH;","names":[]}
|
package/lib/openai/tts.mjs
CHANGED
package/lib/openai/tts.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/openai/tts.ts"],"sourcesContent":["/**\n * Copyright 2024 The Fire Company\n * Copyright 2024 Google LLC\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 */\nimport { z } from 'genkit';\nimport { ModelInfo } from 'genkit/model';\nimport { compatOaiSpeechModelRef, SpeechConfigSchema } from '../audio';\n\n/** OpenAI speech ModelRef helper, same as the OpenAI-compatible spec. */\nexport function openAISpeechModelRef<\n CustomOptions extends z.ZodTypeAny = z.ZodTypeAny,\n>(params: {\n name: string;\n info?: ModelInfo;\n configSchema?: CustomOptions;\n config?: any;\n}) {\n return compatOaiSpeechModelRef({ ...params, namespace: 'openai' });\n}\n\nexport const SUPPORTED_TTS_MODELS = {\n 'tts-1': openAISpeechModelRef({ name: 'tts-1' }),\n 'tts-1-hd': openAISpeechModelRef({\n name: 'tts-1-hd',\n }),\n 'gpt-4o-mini-tts': openAISpeechModelRef({\n name: 'gpt-4o-mini-tts',\n configSchema: SpeechConfigSchema.omit({ speed: true }),\n }),\n};\n"],"mappings":"AAkBA,SAAS,yBAAyB,0BAA0B;AAGrD,SAAS,qBAEd,QAKC;AACD,SAAO,wBAAwB,EAAE,GAAG,QAAQ,WAAW,SAAS,CAAC;AACnE;AAEO,MAAM,uBAAuB;AAAA,EAClC,SAAS,qBAAqB,EAAE,MAAM,QAAQ,CAAC;AAAA,EAC/C,YAAY,qBAAqB;AAAA,IAC/B,MAAM;AAAA,EACR,CAAC;AAAA,EACD,mBAAmB,qBAAqB;AAAA,IACtC,MAAM;AAAA,IACN,cAAc,mBAAmB,KAAK,EAAE,OAAO,KAAK,CAAC;AAAA,EACvD,CAAC;AACH;","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../src/openai/tts.ts"],"sourcesContent":["/**\n * Copyright 2024 The Fire Company\n * Copyright 2024 Google LLC\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 */\nimport { z } from 'genkit';\nimport { ModelInfo } from 'genkit/model';\nimport { compatOaiSpeechModelRef, SpeechConfigSchema } from '../audio.mjs';\n\n/** OpenAI speech ModelRef helper, same as the OpenAI-compatible spec. */\nexport function openAISpeechModelRef<\n CustomOptions extends z.ZodTypeAny = z.ZodTypeAny,\n>(params: {\n name: string;\n info?: ModelInfo;\n configSchema?: CustomOptions;\n config?: any;\n}) {\n return compatOaiSpeechModelRef({ ...params, namespace: 'openai' });\n}\n\nexport const SUPPORTED_TTS_MODELS = {\n 'tts-1': openAISpeechModelRef({ name: 'tts-1' }),\n 'tts-1-hd': openAISpeechModelRef({\n name: 'tts-1-hd',\n }),\n 'gpt-4o-mini-tts': openAISpeechModelRef({\n name: 'gpt-4o-mini-tts',\n configSchema: SpeechConfigSchema.omit({ speed: true }),\n }),\n};\n"],"mappings":"AAkBA,SAAS,yBAAyB,0BAA0B;AAGrD,SAAS,qBAEd,QAKC;AACD,SAAO,wBAAwB,EAAE,GAAG,QAAQ,WAAW,SAAS,CAAC;AACnE;AAEO,MAAM,uBAAuB;AAAA,EAClC,SAAS,qBAAqB,EAAE,MAAM,QAAQ,CAAC;AAAA,EAC/C,YAAY,qBAAqB;AAAA,IAC/B,MAAM;AAAA,EACR,CAAC;AAAA,EACD,mBAAmB,qBAAqB;AAAA,IACtC,MAAM;AAAA,IACN,cAAc,mBAAmB,KAAK,EAAE,OAAO,KAAK,CAAC;AAAA,EACvD,CAAC;AACH;","names":[]}
|
package/lib/openai/whisper.mjs
CHANGED
|
@@ -4,12 +4,12 @@ import {
|
|
|
4
4
|
TranscriptionConfigSchema,
|
|
5
5
|
toSttRequest,
|
|
6
6
|
transcriptionToGenerateResponse
|
|
7
|
-
} from "../audio.
|
|
7
|
+
} from "../audio.mjs";
|
|
8
8
|
import {
|
|
9
9
|
toTranslationRequest,
|
|
10
10
|
translationToGenerateResponse
|
|
11
|
-
} from "../translate.
|
|
12
|
-
import { maybeCreateRequestScopedOpenAIClient, toModelName } from "../utils.
|
|
11
|
+
} from "../translate.mjs";
|
|
12
|
+
import { maybeCreateRequestScopedOpenAIClient, toModelName } from "../utils.mjs";
|
|
13
13
|
const WHISPER_MODEL_INFO = {
|
|
14
14
|
supports: {
|
|
15
15
|
media: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/openai/whisper.ts"],"sourcesContent":["/**\n * Copyright 2024 The Fire Company\n * Copyright 2024 Google LLC\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 { ModelReference } from 'genkit';\nimport { modelRef, z } from 'genkit';\nimport type { ModelAction, ModelInfo } from 'genkit/model';\nimport { model } from 'genkit/plugin';\nimport OpenAI from 'openai';\nimport {\n TranscriptionConfigSchema,\n toSttRequest,\n transcriptionToGenerateResponse,\n} from '../audio.
|
|
1
|
+
{"version":3,"sources":["../../src/openai/whisper.ts"],"sourcesContent":["/**\n * Copyright 2024 The Fire Company\n * Copyright 2024 Google LLC\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 { ModelReference } from 'genkit';\nimport { modelRef, z } from 'genkit';\nimport type { ModelAction, ModelInfo } from 'genkit/model';\nimport { model } from 'genkit/plugin';\nimport OpenAI from 'openai';\nimport {\n TranscriptionConfigSchema,\n toSttRequest,\n transcriptionToGenerateResponse,\n} from '../audio.mjs';\nimport type { PluginOptions } from '../index.mjs';\nimport {\n toTranslationRequest,\n translationToGenerateResponse,\n} from '../translate.mjs';\nimport { maybeCreateRequestScopedOpenAIClient, toModelName } from '../utils.mjs';\n\nexport const WHISPER_MODEL_INFO: ModelInfo = {\n supports: {\n media: true,\n output: ['text', 'json'],\n multiturn: false,\n systemRole: false,\n tools: false,\n },\n};\n\n/**\n * Config schema for Whisper models. Extends the transcription config with\n * a `translate` flag that switches between transcription and translation APIs.\n */\nexport const WhisperConfigSchema = TranscriptionConfigSchema.extend({\n /** When true, uses Translation API instead of Transcription. Default: false */\n translate: z.boolean().optional().default(false),\n});\n\n/**\n * Method to define an OpenAI Whisper model that can perform both transcription and\n * translation based on the `translate` config flag.\n *\n * @param params.ai The Genkit AI instance.\n * @param params.name The name of the model.\n * @param params.client The OpenAI client instance.\n * @param params.modelRef Optional reference to the model's configuration and\n * custom options.\n *\n * @returns the created {@link ModelAction}\n */\nexport function defineOpenAIWhisperModel<\n CustomOptions extends z.ZodTypeAny = z.ZodTypeAny,\n>(params: {\n name: string;\n client: OpenAI;\n modelRef?: ModelReference<CustomOptions>;\n pluginOptions?: PluginOptions;\n}): ModelAction {\n const { name, client: defaultClient, pluginOptions, modelRef } = params;\n const modelName = toModelName(name, pluginOptions?.name);\n const actionName =\n modelRef?.name ?? `${pluginOptions?.name ?? 'openai'}/${modelName}`;\n\n return model(\n {\n name: actionName,\n ...modelRef?.info,\n configSchema: modelRef?.configSchema,\n },\n async (request, { abortSignal }) => {\n const { translate, ...cleanConfig } = (request.config ?? {}) as Record<\n string,\n unknown\n >;\n const cleanRequest = { ...request, config: cleanConfig };\n const client = maybeCreateRequestScopedOpenAIClient(\n pluginOptions,\n request,\n defaultClient\n );\n\n if (translate === true) {\n const params = toTranslationRequest(modelName, cleanRequest);\n const result = await client.audio.translations.create(params, {\n signal: abortSignal,\n });\n return translationToGenerateResponse(result);\n } else {\n const params = toSttRequest(modelName, cleanRequest);\n // Explicitly setting stream to false ensures we use the non-streaming overload\n const result = await client.audio.transcriptions.create(\n {\n ...params,\n stream: false,\n },\n { signal: abortSignal }\n );\n return transcriptionToGenerateResponse(result);\n }\n }\n );\n}\n\n/** OpenAI whisper ModelRef helper. */\nexport function openAIWhisperModelRef<\n CustomOptions extends z.ZodTypeAny = z.ZodTypeAny,\n>(params: {\n name: string;\n info?: ModelInfo;\n configSchema?: CustomOptions;\n config?: any;\n}) {\n const {\n name,\n info = WHISPER_MODEL_INFO,\n configSchema,\n config = undefined,\n } = params;\n return modelRef({\n name,\n configSchema: configSchema || (WhisperConfigSchema as any),\n info,\n config,\n namespace: 'openai',\n });\n}\n\nexport const SUPPORTED_WHISPER_MODELS = {\n 'whisper-1': openAIWhisperModelRef({\n name: 'whisper-1',\n }),\n};\n"],"mappings":"AAkBA,SAAS,UAAU,SAAS;AAE5B,SAAS,aAAa;AAEtB;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAEP;AAAA,EACE;AAAA,EACA;AAAA,OACK;AACP,SAAS,sCAAsC,mBAAmB;AAE3D,MAAM,qBAAgC;AAAA,EAC3C,UAAU;AAAA,IACR,OAAO;AAAA,IACP,QAAQ,CAAC,QAAQ,MAAM;AAAA,IACvB,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,OAAO;AAAA,EACT;AACF;AAMO,MAAM,sBAAsB,0BAA0B,OAAO;AAAA;AAAA,EAElE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,KAAK;AACjD,CAAC;AAcM,SAAS,yBAEd,QAKc;AACd,QAAM,EAAE,MAAM,QAAQ,eAAe,eAAe,UAAAA,UAAS,IAAI;AACjE,QAAM,YAAY,YAAY,MAAM,eAAe,IAAI;AACvD,QAAM,aACJA,WAAU,QAAQ,GAAG,eAAe,QAAQ,QAAQ,IAAI,SAAS;AAEnE,SAAO;AAAA,IACL;AAAA,MACE,MAAM;AAAA,MACN,GAAGA,WAAU;AAAA,MACb,cAAcA,WAAU;AAAA,IAC1B;AAAA,IACA,OAAO,SAAS,EAAE,YAAY,MAAM;AAClC,YAAM,EAAE,WAAW,GAAG,YAAY,IAAK,QAAQ,UAAU,CAAC;AAI1D,YAAM,eAAe,EAAE,GAAG,SAAS,QAAQ,YAAY;AACvD,YAAM,SAAS;AAAA,QACb;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAEA,UAAI,cAAc,MAAM;AACtB,cAAMC,UAAS,qBAAqB,WAAW,YAAY;AAC3D,cAAM,SAAS,MAAM,OAAO,MAAM,aAAa,OAAOA,SAAQ;AAAA,UAC5D,QAAQ;AAAA,QACV,CAAC;AACD,eAAO,8BAA8B,MAAM;AAAA,MAC7C,OAAO;AACL,cAAMA,UAAS,aAAa,WAAW,YAAY;AAEnD,cAAM,SAAS,MAAM,OAAO,MAAM,eAAe;AAAA,UAC/C;AAAA,YACE,GAAGA;AAAA,YACH,QAAQ;AAAA,UACV;AAAA,UACA,EAAE,QAAQ,YAAY;AAAA,QACxB;AACA,eAAO,gCAAgC,MAAM;AAAA,MAC/C;AAAA,IACF;AAAA,EACF;AACF;AAGO,SAAS,sBAEd,QAKC;AACD,QAAM;AAAA,IACJ;AAAA,IACA,OAAO;AAAA,IACP;AAAA,IACA,SAAS;AAAA,EACX,IAAI;AACJ,SAAO,SAAS;AAAA,IACd;AAAA,IACA,cAAc,gBAAiB;AAAA,IAC/B;AAAA,IACA;AAAA,IACA,WAAW;AAAA,EACb,CAAC;AACH;AAEO,MAAM,2BAA2B;AAAA,EACtC,aAAa,sBAAsB;AAAA,IACjC,MAAM;AAAA,EACR,CAAC;AACH;","names":["modelRef","params"]}
|
package/lib/translate.mjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { GenerationCommonConfigSchema, Message, modelRef, z } from "genkit";
|
|
2
2
|
import { model } from "genkit/plugin";
|
|
3
|
-
import { maybeCreateRequestScopedOpenAIClient, toModelName } from "./utils.
|
|
3
|
+
import { maybeCreateRequestScopedOpenAIClient, toModelName } from "./utils.mjs";
|
|
4
4
|
const TRANSLATION_MODEL_INFO = {
|
|
5
5
|
supports: {
|
|
6
6
|
media: true,
|
package/lib/translate.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/translate.ts"],"sourcesContent":["/**\n * Copyright 2024 The Fire Company\n * Copyright 2024 Google LLC\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 {\n GenerateRequest,\n GenerateResponseData,\n ModelReference,\n} from 'genkit';\nimport { GenerationCommonConfigSchema, Message, modelRef, z } from 'genkit';\nimport type { ModelAction, ModelInfo } from 'genkit/model';\nimport { model } from 'genkit/plugin';\nimport OpenAI from 'openai';\nimport type {\n TranslationCreateParams,\n TranslationCreateResponse,\n} from 'openai/resources/audio/index.mjs';\nimport { PluginOptions } from './index.
|
|
1
|
+
{"version":3,"sources":["../src/translate.ts"],"sourcesContent":["/**\n * Copyright 2024 The Fire Company\n * Copyright 2024 Google LLC\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 {\n GenerateRequest,\n GenerateResponseData,\n ModelReference,\n} from 'genkit';\nimport { GenerationCommonConfigSchema, Message, modelRef, z } from 'genkit';\nimport type { ModelAction, ModelInfo } from 'genkit/model';\nimport { model } from 'genkit/plugin';\nimport OpenAI from 'openai';\nimport type {\n TranslationCreateParams,\n TranslationCreateResponse,\n} from 'openai/resources/audio/index.mjs';\nimport { PluginOptions } from './index.mjs';\nimport { maybeCreateRequestScopedOpenAIClient, toModelName } from './utils.mjs';\n\nexport type TranslationRequestBuilder = (\n req: GenerateRequest,\n params: TranslationCreateParams\n) => void;\n\nexport const TRANSLATION_MODEL_INFO: ModelInfo = {\n supports: {\n media: true,\n output: ['text', 'json'],\n multiturn: false,\n systemRole: false,\n tools: false,\n },\n};\n\nexport const TranslationConfigSchema = GenerationCommonConfigSchema.pick({\n temperature: true,\n}).extend({\n response_format: z\n .enum(['json', 'text', 'srt', 'verbose_json', 'vtt'])\n .optional(),\n});\n\nexport function toTranslationRequest(\n modelName: string,\n request: GenerateRequest,\n requestBuilder?: TranslationRequestBuilder\n): TranslationCreateParams {\n const message = new Message(request.messages[0]);\n const media = message.media;\n if (!media?.url) {\n throw new Error('No media found in the request');\n }\n const mediaBuffer = Buffer.from(\n media.url.slice(media.url.indexOf(',') + 1),\n 'base64'\n );\n const mediaFile = new File([mediaBuffer], 'input', {\n type:\n media.contentType ??\n media.url.slice('data:'.length, media.url.indexOf(';')),\n });\n const {\n temperature,\n version: modelVersion,\n maxOutputTokens,\n stopSequences,\n topK,\n topP,\n ...restOfConfig\n } = request.config ?? {};\n\n let options: TranslationCreateParams = {\n model: modelVersion ?? modelName,\n file: mediaFile,\n prompt: message.text,\n temperature,\n };\n if (requestBuilder) {\n requestBuilder(request, options);\n } else {\n options = {\n ...options,\n ...restOfConfig, // passthrough rest of the config\n };\n }\n const outputFormat = request.output?.format as 'json' | 'text' | 'media';\n const customFormat = request.config?.response_format;\n if (outputFormat && customFormat) {\n if (\n outputFormat === 'json' &&\n customFormat !== 'json' &&\n customFormat !== 'verbose_json'\n ) {\n throw new Error(\n `Custom response format ${customFormat} is not compatible with output format ${outputFormat}`\n );\n }\n }\n if (outputFormat === 'media') {\n throw new Error(`Output format ${outputFormat} is not supported.`);\n }\n options.response_format = customFormat || outputFormat || 'text';\n for (const k in options) {\n if (options[k] === undefined) {\n delete options[k];\n }\n }\n return options;\n}\n\nexport function translationToGenerateResponse(\n result: TranslationCreateResponse | string\n): GenerateResponseData {\n return {\n message: {\n role: 'model',\n content: [\n {\n text: typeof result === 'string' ? result : result.text,\n },\n ],\n },\n finishReason: 'stop',\n raw: result,\n };\n}\n\n/**\n * Method to define a new Genkit Model that is compatible with Open AI\n * Translation API.\n *\n * These models are to be used to translate audio to text.\n *\n * @param params An object containing parameters for defining the OpenAI\n * translation model.\n * @param params.ai The Genkit AI instance.\n * @param params.name The name of the model.\n * @param params.client The OpenAI client instance.\n * @param params.modelRef Optional reference to the model's configuration and\n * custom options.\n *\n * @returns the created {@link ModelAction}\n */\nexport function defineCompatOpenAITranslationModel<\n CustomOptions extends z.ZodTypeAny = z.ZodTypeAny,\n>(params: {\n name: string;\n client: OpenAI;\n pluginOptions?: PluginOptions;\n modelRef?: ModelReference<CustomOptions>;\n requestBuilder?: TranslationRequestBuilder;\n}) {\n const {\n name,\n client: defaultClient,\n pluginOptions,\n modelRef,\n requestBuilder,\n } = params;\n const modelName = toModelName(name, pluginOptions?.name);\n const actionName = `${pluginOptions?.name ?? 'compat-oai'}/${modelName}`;\n\n return model(\n {\n name: actionName,\n ...modelRef?.info,\n configSchema: modelRef?.configSchema,\n },\n async (request, { abortSignal }) => {\n const params = toTranslationRequest(modelName, request, requestBuilder);\n const client = maybeCreateRequestScopedOpenAIClient(\n pluginOptions,\n request,\n defaultClient\n );\n const result = await client.audio.translations.create(params, {\n signal: abortSignal,\n });\n return translationToGenerateResponse(result);\n }\n );\n}\n\n/** Translation ModelRef helper, with reasonable defaults for\n * OpenAI-compatible providers */\nexport function compatOaiTranslationModelRef<\n CustomOptions extends z.ZodTypeAny = z.ZodTypeAny,\n>(params: {\n name: string;\n info?: ModelInfo;\n configSchema?: CustomOptions;\n config?: any;\n namespace?: string;\n}) {\n const {\n name,\n info = TRANSLATION_MODEL_INFO,\n configSchema,\n config = undefined,\n namespace,\n } = params;\n return modelRef({\n name,\n configSchema: configSchema || (TranslationConfigSchema as any),\n info,\n config,\n namespace,\n });\n}\n"],"mappings":"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","names":["modelRef","params"]}
|
package/lib/xai/grok-image.js
CHANGED
|
@@ -22,7 +22,7 @@ __export(grok_image_exports, {
|
|
|
22
22
|
xaiImageModelRef: () => xaiImageModelRef
|
|
23
23
|
});
|
|
24
24
|
module.exports = __toCommonJS(grok_image_exports);
|
|
25
|
-
var import_image = require("../image");
|
|
25
|
+
var import_image = require("../image.js");
|
|
26
26
|
function xaiImageModelRef(params) {
|
|
27
27
|
return (0, import_image.compatOaiImageModelRef)({ ...params, namespace: "xai" });
|
|
28
28
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/xai/grok-image.ts"],"sourcesContent":["/**\n * Copyright 2024 Google LLC\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 { z } from 'genkit';\nimport { ModelInfo } from 'genkit/model';\nimport { compatOaiImageModelRef } from '../image';\n\n/** XAI image generation ModelRef helper, same as the OpenAI-compatible model specification. */\nexport function xaiImageModelRef<\n CustomOptions extends z.ZodTypeAny = z.ZodTypeAny,\n>(params: {\n name: string;\n info?: ModelInfo;\n configSchema?: CustomOptions;\n config?: any;\n}) {\n return compatOaiImageModelRef({ ...params, namespace: 'xai' });\n}\n\nexport const SUPPORTED_IMAGE_MODELS = {\n 'grok-2-image-1212': xaiImageModelRef({\n name: 'grok-2-image-1212',\n }),\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAkBA,mBAAuC;AAGhC,SAAS,iBAEd,QAKC;AACD,aAAO,qCAAuB,EAAE,GAAG,QAAQ,WAAW,MAAM,CAAC;AAC/D;AAEO,MAAM,yBAAyB;AAAA,EACpC,qBAAqB,iBAAiB;AAAA,IACpC,MAAM;AAAA,EACR,CAAC;AACH;","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../src/xai/grok-image.ts"],"sourcesContent":["/**\n * Copyright 2024 Google LLC\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 { z } from 'genkit';\nimport { ModelInfo } from 'genkit/model';\nimport { compatOaiImageModelRef } from '../image.js';\n\n/** XAI image generation ModelRef helper, same as the OpenAI-compatible model specification. */\nexport function xaiImageModelRef<\n CustomOptions extends z.ZodTypeAny = z.ZodTypeAny,\n>(params: {\n name: string;\n info?: ModelInfo;\n configSchema?: CustomOptions;\n config?: any;\n}) {\n return compatOaiImageModelRef({ ...params, namespace: 'xai' });\n}\n\nexport const SUPPORTED_IMAGE_MODELS = {\n 'grok-2-image-1212': xaiImageModelRef({\n name: 'grok-2-image-1212',\n }),\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAkBA,mBAAuC;AAGhC,SAAS,iBAEd,QAKC;AACD,aAAO,qCAAuB,EAAE,GAAG,QAAQ,WAAW,MAAM,CAAC;AAC/D;AAEO,MAAM,yBAAyB;AAAA,EACpC,qBAAqB,iBAAiB;AAAA,IACpC,MAAM;AAAA,EACR,CAAC;AACH;","names":[]}
|
package/lib/xai/grok-image.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/xai/grok-image.ts"],"sourcesContent":["/**\n * Copyright 2024 Google LLC\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 { z } from 'genkit';\nimport { ModelInfo } from 'genkit/model';\nimport { compatOaiImageModelRef } from '../image';\n\n/** XAI image generation ModelRef helper, same as the OpenAI-compatible model specification. */\nexport function xaiImageModelRef<\n CustomOptions extends z.ZodTypeAny = z.ZodTypeAny,\n>(params: {\n name: string;\n info?: ModelInfo;\n configSchema?: CustomOptions;\n config?: any;\n}) {\n return compatOaiImageModelRef({ ...params, namespace: 'xai' });\n}\n\nexport const SUPPORTED_IMAGE_MODELS = {\n 'grok-2-image-1212': xaiImageModelRef({\n name: 'grok-2-image-1212',\n }),\n};\n"],"mappings":"AAkBA,SAAS,8BAA8B;AAGhC,SAAS,iBAEd,QAKC;AACD,SAAO,uBAAuB,EAAE,GAAG,QAAQ,WAAW,MAAM,CAAC;AAC/D;AAEO,MAAM,yBAAyB;AAAA,EACpC,qBAAqB,iBAAiB;AAAA,IACpC,MAAM;AAAA,EACR,CAAC;AACH;","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../src/xai/grok-image.ts"],"sourcesContent":["/**\n * Copyright 2024 Google LLC\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 { z } from 'genkit';\nimport { ModelInfo } from 'genkit/model';\nimport { compatOaiImageModelRef } from '../image.mjs';\n\n/** XAI image generation ModelRef helper, same as the OpenAI-compatible model specification. */\nexport function xaiImageModelRef<\n CustomOptions extends z.ZodTypeAny = z.ZodTypeAny,\n>(params: {\n name: string;\n info?: ModelInfo;\n configSchema?: CustomOptions;\n config?: any;\n}) {\n return compatOaiImageModelRef({ ...params, namespace: 'xai' });\n}\n\nexport const SUPPORTED_IMAGE_MODELS = {\n 'grok-2-image-1212': xaiImageModelRef({\n name: 'grok-2-image-1212',\n }),\n};\n"],"mappings":"AAkBA,SAAS,8BAA8B;AAGhC,SAAS,iBAEd,QAKC;AACD,SAAO,uBAAuB,EAAE,GAAG,QAAQ,WAAW,MAAM,CAAC;AAC/D;AAEO,MAAM,yBAAyB;AAAA,EACpC,qBAAqB,iBAAiB;AAAA,IACpC,MAAM;AAAA,EACR,CAAC;AACH;","names":[]}
|
package/lib/xai/grok.js
CHANGED
|
@@ -25,7 +25,7 @@ __export(grok_exports, {
|
|
|
25
25
|
});
|
|
26
26
|
module.exports = __toCommonJS(grok_exports);
|
|
27
27
|
var import_genkit = require("genkit");
|
|
28
|
-
var import_model2 = require("../model");
|
|
28
|
+
var import_model2 = require("../model.js");
|
|
29
29
|
const XAI_LANGUGAGE_MODEL_INFO = {
|
|
30
30
|
supports: {
|
|
31
31
|
multiturn: true,
|
package/lib/xai/grok.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/xai/grok.ts"],"sourcesContent":["/**\n * Copyright 2024 Google LLC\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 { z } from 'genkit';\nimport { ModelInfo, ModelReference } from 'genkit/model';\nimport {\n ChatCompletionCommonConfigSchema,\n ModelRequestBuilder,\n compatOaiModelRef,\n} from '../model';\n\n/**\n * Language models that support text -> text, tool calling, structured output\n */\nconst XAI_LANGUGAGE_MODEL_INFO: ModelInfo = {\n supports: {\n multiturn: true,\n tools: true,\n media: false,\n systemRole: true,\n output: ['text', 'json'],\n },\n};\n\n/** XAI Custom configuration schema. */\nexport const XaiChatCompletionConfigSchema =\n ChatCompletionCommonConfigSchema.extend({\n deferred: z.boolean().optional(),\n reasoningEffort: z.enum(['low', 'medium', 'high']).optional(),\n webSearchOptions: z.object({}).passthrough().optional(),\n });\n\n/** XAI ModelRef helper, with XAI specific config. */\nexport function xaiModelRef(params: {\n name: string;\n info?: ModelInfo;\n config?: any;\n}): ModelReference<typeof XaiChatCompletionConfigSchema> {\n return compatOaiModelRef({\n ...params,\n info: params.info ?? XAI_LANGUGAGE_MODEL_INFO,\n configSchema: XaiChatCompletionConfigSchema,\n namespace: 'xai',\n });\n}\n\nexport const grokRequestBuilder: ModelRequestBuilder = (req, params) => {\n const { deferred, webSearchOptions, reasoningEffort } = req.config ?? {};\n\n params.web_search_options = webSearchOptions;\n params.reasoning_effort = reasoningEffort;\n // Deferred is not a standard field on the request type\n (params as any).deferred = deferred;\n};\n\nexport const SUPPORTED_LANGUAGE_MODELS = {\n 'grok-3': xaiModelRef({\n name: 'grok-3',\n }),\n 'grok-3-fast': xaiModelRef({\n name: 'grok-3-fast',\n }),\n 'grok-3-mini': xaiModelRef({\n name: 'grok-3-mini',\n }),\n 'grok-3-mini-fast': xaiModelRef({\n name: 'grok-3-mini-fast',\n }),\n 'grok-2-vision-1212': xaiModelRef({\n name: 'grok-2-vision-1212',\n info: {\n supports: {\n multiturn: false,\n tools: true,\n media: true,\n systemRole: false,\n output: ['text', 'json'],\n },\n },\n }),\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAgBA,oBAAkB;AAElB,IAAAA,gBAIO;AAKP,MAAM,2BAAsC;AAAA,EAC1C,UAAU;AAAA,IACR,WAAW;AAAA,IACX,OAAO;AAAA,IACP,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,QAAQ,CAAC,QAAQ,MAAM;AAAA,EACzB;AACF;AAGO,MAAM,gCACX,+CAAiC,OAAO;AAAA,EACtC,UAAU,gBAAE,QAAQ,EAAE,SAAS;AAAA,EAC/B,iBAAiB,gBAAE,KAAK,CAAC,OAAO,UAAU,MAAM,CAAC,EAAE,SAAS;AAAA,EAC5D,kBAAkB,gBAAE,OAAO,CAAC,CAAC,EAAE,YAAY,EAAE,SAAS;AACxD,CAAC;AAGI,SAAS,YAAY,QAI6B;AACvD,aAAO,iCAAkB;AAAA,IACvB,GAAG;AAAA,IACH,MAAM,OAAO,QAAQ;AAAA,IACrB,cAAc;AAAA,IACd,WAAW;AAAA,EACb,CAAC;AACH;AAEO,MAAM,qBAA0C,CAAC,KAAK,WAAW;AACtE,QAAM,EAAE,UAAU,kBAAkB,gBAAgB,IAAI,IAAI,UAAU,CAAC;AAEvE,SAAO,qBAAqB;AAC5B,SAAO,mBAAmB;AAE1B,EAAC,OAAe,WAAW;AAC7B;AAEO,MAAM,4BAA4B;AAAA,EACvC,UAAU,YAAY;AAAA,IACpB,MAAM;AAAA,EACR,CAAC;AAAA,EACD,eAAe,YAAY;AAAA,IACzB,MAAM;AAAA,EACR,CAAC;AAAA,EACD,eAAe,YAAY;AAAA,IACzB,MAAM;AAAA,EACR,CAAC;AAAA,EACD,oBAAoB,YAAY;AAAA,IAC9B,MAAM;AAAA,EACR,CAAC;AAAA,EACD,sBAAsB,YAAY;AAAA,IAChC,MAAM;AAAA,IACN,MAAM;AAAA,MACJ,UAAU;AAAA,QACR,WAAW;AAAA,QACX,OAAO;AAAA,QACP,OAAO;AAAA,QACP,YAAY;AAAA,QACZ,QAAQ,CAAC,QAAQ,MAAM;AAAA,MACzB;AAAA,IACF;AAAA,EACF,CAAC;AACH;","names":["import_model"]}
|
|
1
|
+
{"version":3,"sources":["../../src/xai/grok.ts"],"sourcesContent":["/**\n * Copyright 2024 Google LLC\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 { z } from 'genkit';\nimport { ModelInfo, ModelReference } from 'genkit/model';\nimport {\n ChatCompletionCommonConfigSchema,\n ModelRequestBuilder,\n compatOaiModelRef,\n} from '../model.js';\n\n/**\n * Language models that support text -> text, tool calling, structured output\n */\nconst XAI_LANGUGAGE_MODEL_INFO: ModelInfo = {\n supports: {\n multiturn: true,\n tools: true,\n media: false,\n systemRole: true,\n output: ['text', 'json'],\n },\n};\n\n/** XAI Custom configuration schema. */\nexport const XaiChatCompletionConfigSchema =\n ChatCompletionCommonConfigSchema.extend({\n deferred: z.boolean().optional(),\n reasoningEffort: z.enum(['low', 'medium', 'high']).optional(),\n webSearchOptions: z.object({}).passthrough().optional(),\n });\n\n/** XAI ModelRef helper, with XAI specific config. */\nexport function xaiModelRef(params: {\n name: string;\n info?: ModelInfo;\n config?: any;\n}): ModelReference<typeof XaiChatCompletionConfigSchema> {\n return compatOaiModelRef({\n ...params,\n info: params.info ?? XAI_LANGUGAGE_MODEL_INFO,\n configSchema: XaiChatCompletionConfigSchema,\n namespace: 'xai',\n });\n}\n\nexport const grokRequestBuilder: ModelRequestBuilder = (req, params) => {\n const { deferred, webSearchOptions, reasoningEffort } = req.config ?? {};\n\n params.web_search_options = webSearchOptions;\n params.reasoning_effort = reasoningEffort;\n // Deferred is not a standard field on the request type\n (params as any).deferred = deferred;\n};\n\nexport const SUPPORTED_LANGUAGE_MODELS = {\n 'grok-3': xaiModelRef({\n name: 'grok-3',\n }),\n 'grok-3-fast': xaiModelRef({\n name: 'grok-3-fast',\n }),\n 'grok-3-mini': xaiModelRef({\n name: 'grok-3-mini',\n }),\n 'grok-3-mini-fast': xaiModelRef({\n name: 'grok-3-mini-fast',\n }),\n 'grok-2-vision-1212': xaiModelRef({\n name: 'grok-2-vision-1212',\n info: {\n supports: {\n multiturn: false,\n tools: true,\n media: true,\n systemRole: false,\n output: ['text', 'json'],\n },\n },\n }),\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAgBA,oBAAkB;AAElB,IAAAA,gBAIO;AAKP,MAAM,2BAAsC;AAAA,EAC1C,UAAU;AAAA,IACR,WAAW;AAAA,IACX,OAAO;AAAA,IACP,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,QAAQ,CAAC,QAAQ,MAAM;AAAA,EACzB;AACF;AAGO,MAAM,gCACX,+CAAiC,OAAO;AAAA,EACtC,UAAU,gBAAE,QAAQ,EAAE,SAAS;AAAA,EAC/B,iBAAiB,gBAAE,KAAK,CAAC,OAAO,UAAU,MAAM,CAAC,EAAE,SAAS;AAAA,EAC5D,kBAAkB,gBAAE,OAAO,CAAC,CAAC,EAAE,YAAY,EAAE,SAAS;AACxD,CAAC;AAGI,SAAS,YAAY,QAI6B;AACvD,aAAO,iCAAkB;AAAA,IACvB,GAAG;AAAA,IACH,MAAM,OAAO,QAAQ;AAAA,IACrB,cAAc;AAAA,IACd,WAAW;AAAA,EACb,CAAC;AACH;AAEO,MAAM,qBAA0C,CAAC,KAAK,WAAW;AACtE,QAAM,EAAE,UAAU,kBAAkB,gBAAgB,IAAI,IAAI,UAAU,CAAC;AAEvE,SAAO,qBAAqB;AAC5B,SAAO,mBAAmB;AAE1B,EAAC,OAAe,WAAW;AAC7B;AAEO,MAAM,4BAA4B;AAAA,EACvC,UAAU,YAAY;AAAA,IACpB,MAAM;AAAA,EACR,CAAC;AAAA,EACD,eAAe,YAAY;AAAA,IACzB,MAAM;AAAA,EACR,CAAC;AAAA,EACD,eAAe,YAAY;AAAA,IACzB,MAAM;AAAA,EACR,CAAC;AAAA,EACD,oBAAoB,YAAY;AAAA,IAC9B,MAAM;AAAA,EACR,CAAC;AAAA,EACD,sBAAsB,YAAY;AAAA,IAChC,MAAM;AAAA,IACN,MAAM;AAAA,MACJ,UAAU;AAAA,QACR,WAAW;AAAA,QACX,OAAO;AAAA,QACP,OAAO;AAAA,QACP,YAAY;AAAA,QACZ,QAAQ,CAAC,QAAQ,MAAM;AAAA,MACzB;AAAA,IACF;AAAA,EACF,CAAC;AACH;","names":["import_model"]}
|
package/lib/xai/grok.mjs
CHANGED
package/lib/xai/grok.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/xai/grok.ts"],"sourcesContent":["/**\n * Copyright 2024 Google LLC\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 { z } from 'genkit';\nimport { ModelInfo, ModelReference } from 'genkit/model';\nimport {\n ChatCompletionCommonConfigSchema,\n ModelRequestBuilder,\n compatOaiModelRef,\n} from '../model';\n\n/**\n * Language models that support text -> text, tool calling, structured output\n */\nconst XAI_LANGUGAGE_MODEL_INFO: ModelInfo = {\n supports: {\n multiturn: true,\n tools: true,\n media: false,\n systemRole: true,\n output: ['text', 'json'],\n },\n};\n\n/** XAI Custom configuration schema. */\nexport const XaiChatCompletionConfigSchema =\n ChatCompletionCommonConfigSchema.extend({\n deferred: z.boolean().optional(),\n reasoningEffort: z.enum(['low', 'medium', 'high']).optional(),\n webSearchOptions: z.object({}).passthrough().optional(),\n });\n\n/** XAI ModelRef helper, with XAI specific config. */\nexport function xaiModelRef(params: {\n name: string;\n info?: ModelInfo;\n config?: any;\n}): ModelReference<typeof XaiChatCompletionConfigSchema> {\n return compatOaiModelRef({\n ...params,\n info: params.info ?? XAI_LANGUGAGE_MODEL_INFO,\n configSchema: XaiChatCompletionConfigSchema,\n namespace: 'xai',\n });\n}\n\nexport const grokRequestBuilder: ModelRequestBuilder = (req, params) => {\n const { deferred, webSearchOptions, reasoningEffort } = req.config ?? {};\n\n params.web_search_options = webSearchOptions;\n params.reasoning_effort = reasoningEffort;\n // Deferred is not a standard field on the request type\n (params as any).deferred = deferred;\n};\n\nexport const SUPPORTED_LANGUAGE_MODELS = {\n 'grok-3': xaiModelRef({\n name: 'grok-3',\n }),\n 'grok-3-fast': xaiModelRef({\n name: 'grok-3-fast',\n }),\n 'grok-3-mini': xaiModelRef({\n name: 'grok-3-mini',\n }),\n 'grok-3-mini-fast': xaiModelRef({\n name: 'grok-3-mini-fast',\n }),\n 'grok-2-vision-1212': xaiModelRef({\n name: 'grok-2-vision-1212',\n info: {\n supports: {\n multiturn: false,\n tools: true,\n media: true,\n systemRole: false,\n output: ['text', 'json'],\n },\n },\n }),\n};\n"],"mappings":"AAgBA,SAAS,SAAS;AAElB;AAAA,EACE;AAAA,EAEA;AAAA,OACK;AAKP,MAAM,2BAAsC;AAAA,EAC1C,UAAU;AAAA,IACR,WAAW;AAAA,IACX,OAAO;AAAA,IACP,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,QAAQ,CAAC,QAAQ,MAAM;AAAA,EACzB;AACF;AAGO,MAAM,gCACX,iCAAiC,OAAO;AAAA,EACtC,UAAU,EAAE,QAAQ,EAAE,SAAS;AAAA,EAC/B,iBAAiB,EAAE,KAAK,CAAC,OAAO,UAAU,MAAM,CAAC,EAAE,SAAS;AAAA,EAC5D,kBAAkB,EAAE,OAAO,CAAC,CAAC,EAAE,YAAY,EAAE,SAAS;AACxD,CAAC;AAGI,SAAS,YAAY,QAI6B;AACvD,SAAO,kBAAkB;AAAA,IACvB,GAAG;AAAA,IACH,MAAM,OAAO,QAAQ;AAAA,IACrB,cAAc;AAAA,IACd,WAAW;AAAA,EACb,CAAC;AACH;AAEO,MAAM,qBAA0C,CAAC,KAAK,WAAW;AACtE,QAAM,EAAE,UAAU,kBAAkB,gBAAgB,IAAI,IAAI,UAAU,CAAC;AAEvE,SAAO,qBAAqB;AAC5B,SAAO,mBAAmB;AAE1B,EAAC,OAAe,WAAW;AAC7B;AAEO,MAAM,4BAA4B;AAAA,EACvC,UAAU,YAAY;AAAA,IACpB,MAAM;AAAA,EACR,CAAC;AAAA,EACD,eAAe,YAAY;AAAA,IACzB,MAAM;AAAA,EACR,CAAC;AAAA,EACD,eAAe,YAAY;AAAA,IACzB,MAAM;AAAA,EACR,CAAC;AAAA,EACD,oBAAoB,YAAY;AAAA,IAC9B,MAAM;AAAA,EACR,CAAC;AAAA,EACD,sBAAsB,YAAY;AAAA,IAChC,MAAM;AAAA,IACN,MAAM;AAAA,MACJ,UAAU;AAAA,QACR,WAAW;AAAA,QACX,OAAO;AAAA,QACP,OAAO;AAAA,QACP,YAAY;AAAA,QACZ,QAAQ,CAAC,QAAQ,MAAM;AAAA,MACzB;AAAA,IACF;AAAA,EACF,CAAC;AACH;","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../src/xai/grok.ts"],"sourcesContent":["/**\n * Copyright 2024 Google LLC\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 { z } from 'genkit';\nimport { ModelInfo, ModelReference } from 'genkit/model';\nimport {\n ChatCompletionCommonConfigSchema,\n ModelRequestBuilder,\n compatOaiModelRef,\n} from '../model.mjs';\n\n/**\n * Language models that support text -> text, tool calling, structured output\n */\nconst XAI_LANGUGAGE_MODEL_INFO: ModelInfo = {\n supports: {\n multiturn: true,\n tools: true,\n media: false,\n systemRole: true,\n output: ['text', 'json'],\n },\n};\n\n/** XAI Custom configuration schema. */\nexport const XaiChatCompletionConfigSchema =\n ChatCompletionCommonConfigSchema.extend({\n deferred: z.boolean().optional(),\n reasoningEffort: z.enum(['low', 'medium', 'high']).optional(),\n webSearchOptions: z.object({}).passthrough().optional(),\n });\n\n/** XAI ModelRef helper, with XAI specific config. */\nexport function xaiModelRef(params: {\n name: string;\n info?: ModelInfo;\n config?: any;\n}): ModelReference<typeof XaiChatCompletionConfigSchema> {\n return compatOaiModelRef({\n ...params,\n info: params.info ?? XAI_LANGUGAGE_MODEL_INFO,\n configSchema: XaiChatCompletionConfigSchema,\n namespace: 'xai',\n });\n}\n\nexport const grokRequestBuilder: ModelRequestBuilder = (req, params) => {\n const { deferred, webSearchOptions, reasoningEffort } = req.config ?? {};\n\n params.web_search_options = webSearchOptions;\n params.reasoning_effort = reasoningEffort;\n // Deferred is not a standard field on the request type\n (params as any).deferred = deferred;\n};\n\nexport const SUPPORTED_LANGUAGE_MODELS = {\n 'grok-3': xaiModelRef({\n name: 'grok-3',\n }),\n 'grok-3-fast': xaiModelRef({\n name: 'grok-3-fast',\n }),\n 'grok-3-mini': xaiModelRef({\n name: 'grok-3-mini',\n }),\n 'grok-3-mini-fast': xaiModelRef({\n name: 'grok-3-mini-fast',\n }),\n 'grok-2-vision-1212': xaiModelRef({\n name: 'grok-2-vision-1212',\n info: {\n supports: {\n multiturn: false,\n tools: true,\n media: true,\n systemRole: false,\n output: ['text', 'json'],\n },\n },\n }),\n};\n"],"mappings":"AAgBA,SAAS,SAAS;AAElB;AAAA,EACE;AAAA,EAEA;AAAA,OACK;AAKP,MAAM,2BAAsC;AAAA,EAC1C,UAAU;AAAA,IACR,WAAW;AAAA,IACX,OAAO;AAAA,IACP,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,QAAQ,CAAC,QAAQ,MAAM;AAAA,EACzB;AACF;AAGO,MAAM,gCACX,iCAAiC,OAAO;AAAA,EACtC,UAAU,EAAE,QAAQ,EAAE,SAAS;AAAA,EAC/B,iBAAiB,EAAE,KAAK,CAAC,OAAO,UAAU,MAAM,CAAC,EAAE,SAAS;AAAA,EAC5D,kBAAkB,EAAE,OAAO,CAAC,CAAC,EAAE,YAAY,EAAE,SAAS;AACxD,CAAC;AAGI,SAAS,YAAY,QAI6B;AACvD,SAAO,kBAAkB;AAAA,IACvB,GAAG;AAAA,IACH,MAAM,OAAO,QAAQ;AAAA,IACrB,cAAc;AAAA,IACd,WAAW;AAAA,EACb,CAAC;AACH;AAEO,MAAM,qBAA0C,CAAC,KAAK,WAAW;AACtE,QAAM,EAAE,UAAU,kBAAkB,gBAAgB,IAAI,IAAI,UAAU,CAAC;AAEvE,SAAO,qBAAqB;AAC5B,SAAO,mBAAmB;AAE1B,EAAC,OAAe,WAAW;AAC7B;AAEO,MAAM,4BAA4B;AAAA,EACvC,UAAU,YAAY;AAAA,IACpB,MAAM;AAAA,EACR,CAAC;AAAA,EACD,eAAe,YAAY;AAAA,IACzB,MAAM;AAAA,EACR,CAAC;AAAA,EACD,eAAe,YAAY;AAAA,IACzB,MAAM;AAAA,EACR,CAAC;AAAA,EACD,oBAAoB,YAAY;AAAA,IAC9B,MAAM;AAAA,EACR,CAAC;AAAA,EACD,sBAAsB,YAAY;AAAA,IAChC,MAAM;AAAA,IACN,MAAM;AAAA,MACJ,UAAU;AAAA,QACR,WAAW;AAAA,QACX,OAAO;AAAA,QACP,OAAO;AAAA,QACP,YAAY;AAAA,QACZ,QAAQ,CAAC,QAAQ,MAAM;AAAA,MACzB;AAAA,IACF;AAAA,EACF,CAAC;AACH;","names":[]}
|
package/lib/xai/index.mjs
CHANGED
|
@@ -5,15 +5,15 @@ import {
|
|
|
5
5
|
import { logger } from "genkit/logging";
|
|
6
6
|
import {
|
|
7
7
|
defineCompatOpenAIImageModel
|
|
8
|
-
} from "../image.
|
|
9
|
-
import { openAICompatible } from "../index.
|
|
10
|
-
import { defineCompatOpenAIModel } from "../model.
|
|
11
|
-
import { SUPPORTED_IMAGE_MODELS, xaiImageModelRef } from "./grok-image.
|
|
8
|
+
} from "../image.mjs";
|
|
9
|
+
import { openAICompatible } from "../index.mjs";
|
|
10
|
+
import { defineCompatOpenAIModel } from "../model.mjs";
|
|
11
|
+
import { SUPPORTED_IMAGE_MODELS, xaiImageModelRef } from "./grok-image.mjs";
|
|
12
12
|
import {
|
|
13
13
|
grokRequestBuilder,
|
|
14
14
|
SUPPORTED_LANGUAGE_MODELS,
|
|
15
15
|
xaiModelRef
|
|
16
|
-
} from "./grok.
|
|
16
|
+
} from "./grok.mjs";
|
|
17
17
|
function createResolver(pluginOptions) {
|
|
18
18
|
return async (client, actionType, actionName) => {
|
|
19
19
|
if (actionType === "model") {
|