@genkit-ai/compat-oai 1.23.0 → 1.25.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/README.md +4 -5
- package/lib/deepseek/index.js.map +1 -1
- package/lib/deepseek/index.mjs.map +1 -1
- package/lib/index.d.mts +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/openai/gpt.d.mts +43 -0
- package/lib/openai/gpt.d.ts +43 -0
- package/lib/openai/gpt.js +6 -1
- package/lib/openai/gpt.js.map +1 -1
- package/lib/openai/gpt.mjs +6 -1
- package/lib/openai/gpt.mjs.map +1 -1
- package/lib/openai/index.js.map +1 -1
- package/lib/openai/index.mjs.map +1 -1
- package/lib/xai/index.js.map +1 -1
- package/lib/xai/index.mjs.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
# OpenAI Compatible API plugin for Genkit
|
|
2
2
|
|
|
3
|
-
**`@genkit-ai/compat-oai`** is a
|
|
4
|
-
[Firebase Genkit](https://github.com/firebase/genkit).
|
|
3
|
+
**`@genkit-ai/compat-oai`** is a plugin for using OpenAI Compatible APIs with [Genkit](https://genkit.dev).
|
|
5
4
|
|
|
6
5
|
This Genkit plugin allows to use OpenAI models through their official APIs.
|
|
7
6
|
|
|
@@ -195,10 +194,10 @@ export const customModelFlow = ai.defineFlow(
|
|
|
195
194
|
|
|
196
195
|
Want to contribute to the project? That's awesome! Head over to our [Contribution Guidelines](https://github.com/firebase/genkit/blob/main/CONTRIBUTING.md).
|
|
197
196
|
|
|
198
|
-
## Need
|
|
199
|
-
|
|
200
|
-
Reach out by opening a discussion on [Github Discussions](https://github.com/firebase/genkit/discussions).
|
|
197
|
+
## Need help?
|
|
201
198
|
|
|
199
|
+
- [Genkit Discord](https://genkit.dev/discord)
|
|
200
|
+
- [Github Issues](https://github.com/firebase/genkit/issues)
|
|
202
201
|
|
|
203
202
|
## License
|
|
204
203
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/deepseek/index.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 {\n ActionMetadata,\n GenkitError,\n modelActionMetadata,\n ModelReference,\n z,\n} from 'genkit';\nimport { logger } from 'genkit/logging';\nimport { GenkitPluginV2 } from 'genkit/plugin';\nimport { ActionType } from 'genkit/registry';\nimport OpenAI from 'openai';\nimport { openAICompatible, PluginOptions } from '../index.js';\nimport { defineCompatOpenAIModel } from '../model.js';\nimport {\n DeepSeekChatCompletionConfigSchema,\n deepSeekModelRef,\n deepSeekRequestBuilder,\n SUPPORTED_DEEPSEEK_MODELS,\n} from './deepseek.js';\n\nexport type DeepSeekPluginOptions = Omit<PluginOptions, 'name' | 'baseURL'>;\n\nconst resolver = async (\n client: OpenAI,\n actionType: ActionType,\n actionName: string\n) => {\n if (actionType === 'model') {\n const modelRef = deepSeekModelRef({\n name: actionName,\n });\n return defineCompatOpenAIModel({\n name: modelRef.name,\n client,\n modelRef,\n requestBuilder: deepSeekRequestBuilder,\n });\n } else {\n logger.warn('Only model actions are supported by the DeepSeek plugin');\n return undefined;\n }\n};\n\nconst listActions = async (client: OpenAI): Promise<ActionMetadata[]> => {\n return await client.models.list().then((response) =>\n response.data\n .filter((model) => model.object === 'model')\n .map((model: OpenAI.Model) => {\n const modelRef =\n SUPPORTED_DEEPSEEK_MODELS[model.id] ??\n deepSeekModelRef({\n name: model.id,\n });\n return modelActionMetadata({\n name: modelRef.name,\n info: modelRef.info,\n configSchema: modelRef.configSchema,\n });\n })\n );\n};\n\nexport function deepSeekPlugin(\n options?: DeepSeekPluginOptions\n): GenkitPluginV2 {\n const apiKey = options?.apiKey ?? process.env.DEEPSEEK_API_KEY;\n if (!apiKey) {\n throw new GenkitError({\n status: 'FAILED_PRECONDITION',\n message:\n 'Please pass in the API key or set the DEEPSEEK_API_KEY environment variable.',\n });\n }\n return openAICompatible({\n name: 'deepseek',\n baseURL: 'https://api.deepseek.com',\n apiKey,\n ...options,\n initializer: async (client) => {\n return Object.values(SUPPORTED_DEEPSEEK_MODELS).map((modelRef) =>\n defineCompatOpenAIModel({\n name: modelRef.name,\n client,\n modelRef,\n requestBuilder: deepSeekRequestBuilder,\n })\n );\n },\n resolver,\n listActions,\n });\n}\n\nexport type DeepSeekPlugin = {\n (params?: DeepSeekPluginOptions): GenkitPluginV2;\n model(\n name: keyof typeof SUPPORTED_DEEPSEEK_MODELS,\n config?: z.infer<typeof DeepSeekChatCompletionConfigSchema>\n ): ModelReference<typeof DeepSeekChatCompletionConfigSchema>;\n model(name: string, config?: any): ModelReference<z.ZodTypeAny>;\n};\n\nconst model = ((name: string, config?: any): ModelReference<z.ZodTypeAny> => {\n return deepSeekModelRef({\n name,\n config,\n });\n}) as DeepSeekPlugin['model'];\n\n/**\n * This module provides an interface to the DeepSeek 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 `deepseek` 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 * - deepSeek: The main plugin function to interact with DeepSeek, via OpenAI\n * compatible API.\n *\n * Usage: To use the models, initialize the deepseek plugin inside\n * `configureGenkit` and pass the configuration options. If no API key is\n * provided in the options, the environment variable `OPENAI_API_KEY` must be\n * set.\n *\n * Example:\n * ```\n * import { deepSeek } from '@genkit-ai/compat-oai/deepseek';\n *\n * export default configureGenkit({\n * plugins: [\n * deepSeek()\n * ... // other plugins\n * ]\n * });\n * ```\n */\nexport const deepSeek: DeepSeekPlugin = Object.assign(deepSeekPlugin, {\n model,\n});\n\nexport default deepSeek;\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAgBA,oBAMO;AACP,qBAAuB;AAIvB,eAAgD;AAChD,mBAAwC;AACxC,sBAKO;AAIP,MAAM,WAAW,OACf,QACA,YACA,eACG;AACH,MAAI,eAAe,SAAS;AAC1B,UAAM,eAAW,kCAAiB;AAAA,MAChC,MAAM;AAAA,IACR,CAAC;AACD,eAAO,sCAAwB;AAAA,MAC7B,MAAM,SAAS;AAAA,MACf;AAAA,MACA;AAAA,MACA,gBAAgB;AAAA,IAClB,CAAC;AAAA,EACH,OAAO;AACL,0BAAO,KAAK,yDAAyD;AACrE,WAAO;AAAA,EACT;AACF;AAEA,MAAM,cAAc,OAAO,WAA8C;AACvE,SAAO,MAAM,OAAO,OAAO,KAAK,EAAE;AAAA,IAAK,CAAC,aACtC,SAAS,KACN,OAAO,CAACA,WAAUA,OAAM,WAAW,OAAO,EAC1C,IAAI,CAACA,WAAwB;AAC5B,YAAM,WACJ,0CAA0BA,OAAM,EAAE,SAClC,kCAAiB;AAAA,QACf,MAAMA,OAAM;AAAA,MACd,CAAC;AACH,iBAAO,mCAAoB;AAAA,QACzB,MAAM,SAAS;AAAA,QACf,MAAM,SAAS;AAAA,QACf,cAAc,SAAS;AAAA,MACzB,CAAC;AAAA,IACH,CAAC;AAAA,EACL;AACF;AAEO,SAAS,eACd,SACgB;AAChB,QAAM,SAAS,SAAS,UAAU,QAAQ,IAAI;AAC9C,MAAI,CAAC,QAAQ;AACX,UAAM,IAAI,0BAAY;AAAA,MACpB,QAAQ;AAAA,MACR,SACE;AAAA,IACJ,CAAC;AAAA,EACH;AACA,aAAO,2BAAiB;AAAA,IACtB,MAAM;AAAA,IACN,SAAS;AAAA,IACT;AAAA,IACA,GAAG;AAAA,IACH,aAAa,OAAO,WAAW;AAC7B,aAAO,OAAO,OAAO,yCAAyB,EAAE;AAAA,QAAI,CAAC,iBACnD,sCAAwB;AAAA,UACtB,MAAM,SAAS;AAAA,UACf;AAAA,UACA;AAAA,UACA,gBAAgB;AAAA,QAClB,CAAC;AAAA,MACH;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AACH;AAWA,MAAM,QAAS,CAAC,MAAc,WAA+C;AAC3E,aAAO,kCAAiB;AAAA,IACtB;AAAA,IACA;AAAA,EACF,CAAC;AACH;AAgCO,MAAM,WAA2B,OAAO,OAAO,gBAAgB;AAAA,EACpE;AACF,CAAC;AAED,IAAO,mBAAQ;","names":["model"]}
|
|
1
|
+
{"version":3,"sources":["../../src/deepseek/index.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 {\n ActionMetadata,\n GenkitError,\n modelActionMetadata,\n ModelReference,\n z,\n} from 'genkit';\nimport { logger } from 'genkit/logging';\nimport { type GenkitPluginV2 } from 'genkit/plugin';\nimport { ActionType } from 'genkit/registry';\nimport OpenAI from 'openai';\nimport { openAICompatible, PluginOptions } from '../index.js';\nimport { defineCompatOpenAIModel } from '../model.js';\nimport {\n DeepSeekChatCompletionConfigSchema,\n deepSeekModelRef,\n deepSeekRequestBuilder,\n SUPPORTED_DEEPSEEK_MODELS,\n} from './deepseek.js';\n\nexport type DeepSeekPluginOptions = Omit<PluginOptions, 'name' | 'baseURL'>;\n\nconst resolver = async (\n client: OpenAI,\n actionType: ActionType,\n actionName: string\n) => {\n if (actionType === 'model') {\n const modelRef = deepSeekModelRef({\n name: actionName,\n });\n return defineCompatOpenAIModel({\n name: modelRef.name,\n client,\n modelRef,\n requestBuilder: deepSeekRequestBuilder,\n });\n } else {\n logger.warn('Only model actions are supported by the DeepSeek plugin');\n return undefined;\n }\n};\n\nconst listActions = async (client: OpenAI): Promise<ActionMetadata[]> => {\n return await client.models.list().then((response) =>\n response.data\n .filter((model) => model.object === 'model')\n .map((model: OpenAI.Model) => {\n const modelRef =\n SUPPORTED_DEEPSEEK_MODELS[model.id] ??\n deepSeekModelRef({\n name: model.id,\n });\n return modelActionMetadata({\n name: modelRef.name,\n info: modelRef.info,\n configSchema: modelRef.configSchema,\n });\n })\n );\n};\n\nexport function deepSeekPlugin(\n options?: DeepSeekPluginOptions\n): GenkitPluginV2 {\n const apiKey = options?.apiKey ?? process.env.DEEPSEEK_API_KEY;\n if (!apiKey) {\n throw new GenkitError({\n status: 'FAILED_PRECONDITION',\n message:\n 'Please pass in the API key or set the DEEPSEEK_API_KEY environment variable.',\n });\n }\n return openAICompatible({\n name: 'deepseek',\n baseURL: 'https://api.deepseek.com',\n apiKey,\n ...options,\n initializer: async (client) => {\n return Object.values(SUPPORTED_DEEPSEEK_MODELS).map((modelRef) =>\n defineCompatOpenAIModel({\n name: modelRef.name,\n client,\n modelRef,\n requestBuilder: deepSeekRequestBuilder,\n })\n );\n },\n resolver,\n listActions,\n });\n}\n\nexport type DeepSeekPlugin = {\n (params?: DeepSeekPluginOptions): GenkitPluginV2;\n model(\n name: keyof typeof SUPPORTED_DEEPSEEK_MODELS,\n config?: z.infer<typeof DeepSeekChatCompletionConfigSchema>\n ): ModelReference<typeof DeepSeekChatCompletionConfigSchema>;\n model(name: string, config?: any): ModelReference<z.ZodTypeAny>;\n};\n\nconst model = ((name: string, config?: any): ModelReference<z.ZodTypeAny> => {\n return deepSeekModelRef({\n name,\n config,\n });\n}) as DeepSeekPlugin['model'];\n\n/**\n * This module provides an interface to the DeepSeek 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 `deepseek` 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 * - deepSeek: The main plugin function to interact with DeepSeek, via OpenAI\n * compatible API.\n *\n * Usage: To use the models, initialize the deepseek plugin inside\n * `configureGenkit` and pass the configuration options. If no API key is\n * provided in the options, the environment variable `OPENAI_API_KEY` must be\n * set.\n *\n * Example:\n * ```\n * import { deepSeek } from '@genkit-ai/compat-oai/deepseek';\n *\n * export default configureGenkit({\n * plugins: [\n * deepSeek()\n * ... // other plugins\n * ]\n * });\n * ```\n */\nexport const deepSeek: DeepSeekPlugin = Object.assign(deepSeekPlugin, {\n model,\n});\n\nexport default deepSeek;\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAgBA,oBAMO;AACP,qBAAuB;AAIvB,eAAgD;AAChD,mBAAwC;AACxC,sBAKO;AAIP,MAAM,WAAW,OACf,QACA,YACA,eACG;AACH,MAAI,eAAe,SAAS;AAC1B,UAAM,eAAW,kCAAiB;AAAA,MAChC,MAAM;AAAA,IACR,CAAC;AACD,eAAO,sCAAwB;AAAA,MAC7B,MAAM,SAAS;AAAA,MACf;AAAA,MACA;AAAA,MACA,gBAAgB;AAAA,IAClB,CAAC;AAAA,EACH,OAAO;AACL,0BAAO,KAAK,yDAAyD;AACrE,WAAO;AAAA,EACT;AACF;AAEA,MAAM,cAAc,OAAO,WAA8C;AACvE,SAAO,MAAM,OAAO,OAAO,KAAK,EAAE;AAAA,IAAK,CAAC,aACtC,SAAS,KACN,OAAO,CAACA,WAAUA,OAAM,WAAW,OAAO,EAC1C,IAAI,CAACA,WAAwB;AAC5B,YAAM,WACJ,0CAA0BA,OAAM,EAAE,SAClC,kCAAiB;AAAA,QACf,MAAMA,OAAM;AAAA,MACd,CAAC;AACH,iBAAO,mCAAoB;AAAA,QACzB,MAAM,SAAS;AAAA,QACf,MAAM,SAAS;AAAA,QACf,cAAc,SAAS;AAAA,MACzB,CAAC;AAAA,IACH,CAAC;AAAA,EACL;AACF;AAEO,SAAS,eACd,SACgB;AAChB,QAAM,SAAS,SAAS,UAAU,QAAQ,IAAI;AAC9C,MAAI,CAAC,QAAQ;AACX,UAAM,IAAI,0BAAY;AAAA,MACpB,QAAQ;AAAA,MACR,SACE;AAAA,IACJ,CAAC;AAAA,EACH;AACA,aAAO,2BAAiB;AAAA,IACtB,MAAM;AAAA,IACN,SAAS;AAAA,IACT;AAAA,IACA,GAAG;AAAA,IACH,aAAa,OAAO,WAAW;AAC7B,aAAO,OAAO,OAAO,yCAAyB,EAAE;AAAA,QAAI,CAAC,iBACnD,sCAAwB;AAAA,UACtB,MAAM,SAAS;AAAA,UACf;AAAA,UACA;AAAA,UACA,gBAAgB;AAAA,QAClB,CAAC;AAAA,MACH;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AACH;AAWA,MAAM,QAAS,CAAC,MAAc,WAA+C;AAC3E,aAAO,kCAAiB;AAAA,IACtB;AAAA,IACA;AAAA,EACF,CAAC;AACH;AAgCO,MAAM,WAA2B,OAAO,OAAO,gBAAgB;AAAA,EACpE;AACF,CAAC;AAED,IAAO,mBAAQ;","names":["model"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/deepseek/index.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 {\n ActionMetadata,\n GenkitError,\n modelActionMetadata,\n ModelReference,\n z,\n} from 'genkit';\nimport { logger } from 'genkit/logging';\nimport { GenkitPluginV2 } from 'genkit/plugin';\nimport { ActionType } from 'genkit/registry';\nimport OpenAI from 'openai';\nimport { openAICompatible, PluginOptions } from '../index.js';\nimport { defineCompatOpenAIModel } from '../model.js';\nimport {\n DeepSeekChatCompletionConfigSchema,\n deepSeekModelRef,\n deepSeekRequestBuilder,\n SUPPORTED_DEEPSEEK_MODELS,\n} from './deepseek.js';\n\nexport type DeepSeekPluginOptions = Omit<PluginOptions, 'name' | 'baseURL'>;\n\nconst resolver = async (\n client: OpenAI,\n actionType: ActionType,\n actionName: string\n) => {\n if (actionType === 'model') {\n const modelRef = deepSeekModelRef({\n name: actionName,\n });\n return defineCompatOpenAIModel({\n name: modelRef.name,\n client,\n modelRef,\n requestBuilder: deepSeekRequestBuilder,\n });\n } else {\n logger.warn('Only model actions are supported by the DeepSeek plugin');\n return undefined;\n }\n};\n\nconst listActions = async (client: OpenAI): Promise<ActionMetadata[]> => {\n return await client.models.list().then((response) =>\n response.data\n .filter((model) => model.object === 'model')\n .map((model: OpenAI.Model) => {\n const modelRef =\n SUPPORTED_DEEPSEEK_MODELS[model.id] ??\n deepSeekModelRef({\n name: model.id,\n });\n return modelActionMetadata({\n name: modelRef.name,\n info: modelRef.info,\n configSchema: modelRef.configSchema,\n });\n })\n );\n};\n\nexport function deepSeekPlugin(\n options?: DeepSeekPluginOptions\n): GenkitPluginV2 {\n const apiKey = options?.apiKey ?? process.env.DEEPSEEK_API_KEY;\n if (!apiKey) {\n throw new GenkitError({\n status: 'FAILED_PRECONDITION',\n message:\n 'Please pass in the API key or set the DEEPSEEK_API_KEY environment variable.',\n });\n }\n return openAICompatible({\n name: 'deepseek',\n baseURL: 'https://api.deepseek.com',\n apiKey,\n ...options,\n initializer: async (client) => {\n return Object.values(SUPPORTED_DEEPSEEK_MODELS).map((modelRef) =>\n defineCompatOpenAIModel({\n name: modelRef.name,\n client,\n modelRef,\n requestBuilder: deepSeekRequestBuilder,\n })\n );\n },\n resolver,\n listActions,\n });\n}\n\nexport type DeepSeekPlugin = {\n (params?: DeepSeekPluginOptions): GenkitPluginV2;\n model(\n name: keyof typeof SUPPORTED_DEEPSEEK_MODELS,\n config?: z.infer<typeof DeepSeekChatCompletionConfigSchema>\n ): ModelReference<typeof DeepSeekChatCompletionConfigSchema>;\n model(name: string, config?: any): ModelReference<z.ZodTypeAny>;\n};\n\nconst model = ((name: string, config?: any): ModelReference<z.ZodTypeAny> => {\n return deepSeekModelRef({\n name,\n config,\n });\n}) as DeepSeekPlugin['model'];\n\n/**\n * This module provides an interface to the DeepSeek 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 `deepseek` 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 * - deepSeek: The main plugin function to interact with DeepSeek, via OpenAI\n * compatible API.\n *\n * Usage: To use the models, initialize the deepseek plugin inside\n * `configureGenkit` and pass the configuration options. If no API key is\n * provided in the options, the environment variable `OPENAI_API_KEY` must be\n * set.\n *\n * Example:\n * ```\n * import { deepSeek } from '@genkit-ai/compat-oai/deepseek';\n *\n * export default configureGenkit({\n * plugins: [\n * deepSeek()\n * ... // other plugins\n * ]\n * });\n * ```\n */\nexport const deepSeek: DeepSeekPlugin = Object.assign(deepSeekPlugin, {\n model,\n});\n\nexport default deepSeek;\n"],"mappings":"AAgBA;AAAA,EAEE;AAAA,EACA;AAAA,OAGK;AACP,SAAS,cAAc;AAIvB,SAAS,wBAAuC;AAChD,SAAS,+BAA+B;AACxC;AAAA,EAEE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAIP,MAAM,WAAW,OACf,QACA,YACA,eACG;AACH,MAAI,eAAe,SAAS;AAC1B,UAAM,WAAW,iBAAiB;AAAA,MAChC,MAAM;AAAA,IACR,CAAC;AACD,WAAO,wBAAwB;AAAA,MAC7B,MAAM,SAAS;AAAA,MACf;AAAA,MACA;AAAA,MACA,gBAAgB;AAAA,IAClB,CAAC;AAAA,EACH,OAAO;AACL,WAAO,KAAK,yDAAyD;AACrE,WAAO;AAAA,EACT;AACF;AAEA,MAAM,cAAc,OAAO,WAA8C;AACvE,SAAO,MAAM,OAAO,OAAO,KAAK,EAAE;AAAA,IAAK,CAAC,aACtC,SAAS,KACN,OAAO,CAACA,WAAUA,OAAM,WAAW,OAAO,EAC1C,IAAI,CAACA,WAAwB;AAC5B,YAAM,WACJ,0BAA0BA,OAAM,EAAE,KAClC,iBAAiB;AAAA,QACf,MAAMA,OAAM;AAAA,MACd,CAAC;AACH,aAAO,oBAAoB;AAAA,QACzB,MAAM,SAAS;AAAA,QACf,MAAM,SAAS;AAAA,QACf,cAAc,SAAS;AAAA,MACzB,CAAC;AAAA,IACH,CAAC;AAAA,EACL;AACF;AAEO,SAAS,eACd,SACgB;AAChB,QAAM,SAAS,SAAS,UAAU,QAAQ,IAAI;AAC9C,MAAI,CAAC,QAAQ;AACX,UAAM,IAAI,YAAY;AAAA,MACpB,QAAQ;AAAA,MACR,SACE;AAAA,IACJ,CAAC;AAAA,EACH;AACA,SAAO,iBAAiB;AAAA,IACtB,MAAM;AAAA,IACN,SAAS;AAAA,IACT;AAAA,IACA,GAAG;AAAA,IACH,aAAa,OAAO,WAAW;AAC7B,aAAO,OAAO,OAAO,yBAAyB,EAAE;AAAA,QAAI,CAAC,aACnD,wBAAwB;AAAA,UACtB,MAAM,SAAS;AAAA,UACf;AAAA,UACA;AAAA,UACA,gBAAgB;AAAA,QAClB,CAAC;AAAA,MACH;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AACH;AAWA,MAAM,QAAS,CAAC,MAAc,WAA+C;AAC3E,SAAO,iBAAiB;AAAA,IACtB;AAAA,IACA;AAAA,EACF,CAAC;AACH;AAgCO,MAAM,WAA2B,OAAO,OAAO,gBAAgB;AAAA,EACpE;AACF,CAAC;AAED,IAAO,mBAAQ;","names":["model"]}
|
|
1
|
+
{"version":3,"sources":["../../src/deepseek/index.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 {\n ActionMetadata,\n GenkitError,\n modelActionMetadata,\n ModelReference,\n z,\n} from 'genkit';\nimport { logger } from 'genkit/logging';\nimport { type GenkitPluginV2 } from 'genkit/plugin';\nimport { ActionType } from 'genkit/registry';\nimport OpenAI from 'openai';\nimport { openAICompatible, PluginOptions } from '../index.js';\nimport { defineCompatOpenAIModel } from '../model.js';\nimport {\n DeepSeekChatCompletionConfigSchema,\n deepSeekModelRef,\n deepSeekRequestBuilder,\n SUPPORTED_DEEPSEEK_MODELS,\n} from './deepseek.js';\n\nexport type DeepSeekPluginOptions = Omit<PluginOptions, 'name' | 'baseURL'>;\n\nconst resolver = async (\n client: OpenAI,\n actionType: ActionType,\n actionName: string\n) => {\n if (actionType === 'model') {\n const modelRef = deepSeekModelRef({\n name: actionName,\n });\n return defineCompatOpenAIModel({\n name: modelRef.name,\n client,\n modelRef,\n requestBuilder: deepSeekRequestBuilder,\n });\n } else {\n logger.warn('Only model actions are supported by the DeepSeek plugin');\n return undefined;\n }\n};\n\nconst listActions = async (client: OpenAI): Promise<ActionMetadata[]> => {\n return await client.models.list().then((response) =>\n response.data\n .filter((model) => model.object === 'model')\n .map((model: OpenAI.Model) => {\n const modelRef =\n SUPPORTED_DEEPSEEK_MODELS[model.id] ??\n deepSeekModelRef({\n name: model.id,\n });\n return modelActionMetadata({\n name: modelRef.name,\n info: modelRef.info,\n configSchema: modelRef.configSchema,\n });\n })\n );\n};\n\nexport function deepSeekPlugin(\n options?: DeepSeekPluginOptions\n): GenkitPluginV2 {\n const apiKey = options?.apiKey ?? process.env.DEEPSEEK_API_KEY;\n if (!apiKey) {\n throw new GenkitError({\n status: 'FAILED_PRECONDITION',\n message:\n 'Please pass in the API key or set the DEEPSEEK_API_KEY environment variable.',\n });\n }\n return openAICompatible({\n name: 'deepseek',\n baseURL: 'https://api.deepseek.com',\n apiKey,\n ...options,\n initializer: async (client) => {\n return Object.values(SUPPORTED_DEEPSEEK_MODELS).map((modelRef) =>\n defineCompatOpenAIModel({\n name: modelRef.name,\n client,\n modelRef,\n requestBuilder: deepSeekRequestBuilder,\n })\n );\n },\n resolver,\n listActions,\n });\n}\n\nexport type DeepSeekPlugin = {\n (params?: DeepSeekPluginOptions): GenkitPluginV2;\n model(\n name: keyof typeof SUPPORTED_DEEPSEEK_MODELS,\n config?: z.infer<typeof DeepSeekChatCompletionConfigSchema>\n ): ModelReference<typeof DeepSeekChatCompletionConfigSchema>;\n model(name: string, config?: any): ModelReference<z.ZodTypeAny>;\n};\n\nconst model = ((name: string, config?: any): ModelReference<z.ZodTypeAny> => {\n return deepSeekModelRef({\n name,\n config,\n });\n}) as DeepSeekPlugin['model'];\n\n/**\n * This module provides an interface to the DeepSeek 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 `deepseek` 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 * - deepSeek: The main plugin function to interact with DeepSeek, via OpenAI\n * compatible API.\n *\n * Usage: To use the models, initialize the deepseek plugin inside\n * `configureGenkit` and pass the configuration options. If no API key is\n * provided in the options, the environment variable `OPENAI_API_KEY` must be\n * set.\n *\n * Example:\n * ```\n * import { deepSeek } from '@genkit-ai/compat-oai/deepseek';\n *\n * export default configureGenkit({\n * plugins: [\n * deepSeek()\n * ... // other plugins\n * ]\n * });\n * ```\n */\nexport const deepSeek: DeepSeekPlugin = Object.assign(deepSeekPlugin, {\n model,\n});\n\nexport default deepSeek;\n"],"mappings":"AAgBA;AAAA,EAEE;AAAA,EACA;AAAA,OAGK;AACP,SAAS,cAAc;AAIvB,SAAS,wBAAuC;AAChD,SAAS,+BAA+B;AACxC;AAAA,EAEE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAIP,MAAM,WAAW,OACf,QACA,YACA,eACG;AACH,MAAI,eAAe,SAAS;AAC1B,UAAM,WAAW,iBAAiB;AAAA,MAChC,MAAM;AAAA,IACR,CAAC;AACD,WAAO,wBAAwB;AAAA,MAC7B,MAAM,SAAS;AAAA,MACf;AAAA,MACA;AAAA,MACA,gBAAgB;AAAA,IAClB,CAAC;AAAA,EACH,OAAO;AACL,WAAO,KAAK,yDAAyD;AACrE,WAAO;AAAA,EACT;AACF;AAEA,MAAM,cAAc,OAAO,WAA8C;AACvE,SAAO,MAAM,OAAO,OAAO,KAAK,EAAE;AAAA,IAAK,CAAC,aACtC,SAAS,KACN,OAAO,CAACA,WAAUA,OAAM,WAAW,OAAO,EAC1C,IAAI,CAACA,WAAwB;AAC5B,YAAM,WACJ,0BAA0BA,OAAM,EAAE,KAClC,iBAAiB;AAAA,QACf,MAAMA,OAAM;AAAA,MACd,CAAC;AACH,aAAO,oBAAoB;AAAA,QACzB,MAAM,SAAS;AAAA,QACf,MAAM,SAAS;AAAA,QACf,cAAc,SAAS;AAAA,MACzB,CAAC;AAAA,IACH,CAAC;AAAA,EACL;AACF;AAEO,SAAS,eACd,SACgB;AAChB,QAAM,SAAS,SAAS,UAAU,QAAQ,IAAI;AAC9C,MAAI,CAAC,QAAQ;AACX,UAAM,IAAI,YAAY;AAAA,MACpB,QAAQ;AAAA,MACR,SACE;AAAA,IACJ,CAAC;AAAA,EACH;AACA,SAAO,iBAAiB;AAAA,IACtB,MAAM;AAAA,IACN,SAAS;AAAA,IACT;AAAA,IACA,GAAG;AAAA,IACH,aAAa,OAAO,WAAW;AAC7B,aAAO,OAAO,OAAO,yBAAyB,EAAE;AAAA,QAAI,CAAC,aACnD,wBAAwB;AAAA,UACtB,MAAM,SAAS;AAAA,UACf;AAAA,UACA;AAAA,UACA,gBAAgB;AAAA,QAClB,CAAC;AAAA,MACH;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AACH;AAWA,MAAM,QAAS,CAAC,MAAc,WAA+C;AAC3E,SAAO,iBAAiB;AAAA,IACtB;AAAA,IACA;AAAA,EACF,CAAC;AACH;AAgCO,MAAM,WAA2B,OAAO,OAAO,gBAAgB;AAAA,EACpE;AACF,CAAC;AAED,IAAO,mBAAQ;","names":["model"]}
|
package/lib/index.d.mts
CHANGED
|
@@ -70,6 +70,6 @@ interface PluginOptions extends Partial<ClientOptions> {
|
|
|
70
70
|
* });
|
|
71
71
|
* ```
|
|
72
72
|
*/
|
|
73
|
-
declare const openAICompatible: (options: PluginOptions) => genkit_plugin.
|
|
73
|
+
declare const openAICompatible: (options: PluginOptions) => genkit_plugin.GenkitPluginV2Instance;
|
|
74
74
|
|
|
75
75
|
export { type PluginOptions, openAICompatible as default, openAICompatible };
|
package/lib/index.d.ts
CHANGED
|
@@ -70,6 +70,6 @@ interface PluginOptions extends Partial<ClientOptions> {
|
|
|
70
70
|
* });
|
|
71
71
|
* ```
|
|
72
72
|
*/
|
|
73
|
-
declare const openAICompatible: (options: PluginOptions) => genkit_plugin.
|
|
73
|
+
declare const openAICompatible: (options: PluginOptions) => genkit_plugin.GenkitPluginV2Instance;
|
|
74
74
|
|
|
75
75
|
export { type PluginOptions, openAICompatible as default, openAICompatible };
|
package/lib/openai/gpt.d.mts
CHANGED
|
@@ -1316,6 +1316,49 @@ declare const SUPPORTED_GPT_MODELS: {
|
|
|
1316
1316
|
} & {
|
|
1317
1317
|
store: z.ZodOptional<z.ZodBoolean>;
|
|
1318
1318
|
}, z.ZodTypeAny, "passthrough">>>;
|
|
1319
|
+
readonly 'gpt-5.1': ModelReference<z.ZodObject<{
|
|
1320
|
+
version: z.ZodOptional<z.ZodString>;
|
|
1321
|
+
maxOutputTokens: z.ZodOptional<z.ZodNumber>;
|
|
1322
|
+
topK: z.ZodOptional<z.ZodNumber>;
|
|
1323
|
+
topP: z.ZodOptional<z.ZodNumber>;
|
|
1324
|
+
stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
1325
|
+
} & {
|
|
1326
|
+
temperature: z.ZodOptional<z.ZodNumber>;
|
|
1327
|
+
frequencyPenalty: z.ZodOptional<z.ZodNumber>;
|
|
1328
|
+
logProbs: z.ZodOptional<z.ZodBoolean>;
|
|
1329
|
+
presencePenalty: z.ZodOptional<z.ZodNumber>;
|
|
1330
|
+
topLogProbs: z.ZodOptional<z.ZodNumber>;
|
|
1331
|
+
} & {
|
|
1332
|
+
store: z.ZodOptional<z.ZodBoolean>;
|
|
1333
|
+
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
|
|
1334
|
+
version: z.ZodOptional<z.ZodString>;
|
|
1335
|
+
maxOutputTokens: z.ZodOptional<z.ZodNumber>;
|
|
1336
|
+
topK: z.ZodOptional<z.ZodNumber>;
|
|
1337
|
+
topP: z.ZodOptional<z.ZodNumber>;
|
|
1338
|
+
stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
1339
|
+
} & {
|
|
1340
|
+
temperature: z.ZodOptional<z.ZodNumber>;
|
|
1341
|
+
frequencyPenalty: z.ZodOptional<z.ZodNumber>;
|
|
1342
|
+
logProbs: z.ZodOptional<z.ZodBoolean>;
|
|
1343
|
+
presencePenalty: z.ZodOptional<z.ZodNumber>;
|
|
1344
|
+
topLogProbs: z.ZodOptional<z.ZodNumber>;
|
|
1345
|
+
} & {
|
|
1346
|
+
store: z.ZodOptional<z.ZodBoolean>;
|
|
1347
|
+
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
|
|
1348
|
+
version: z.ZodOptional<z.ZodString>;
|
|
1349
|
+
maxOutputTokens: z.ZodOptional<z.ZodNumber>;
|
|
1350
|
+
topK: z.ZodOptional<z.ZodNumber>;
|
|
1351
|
+
topP: z.ZodOptional<z.ZodNumber>;
|
|
1352
|
+
stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
1353
|
+
} & {
|
|
1354
|
+
temperature: z.ZodOptional<z.ZodNumber>;
|
|
1355
|
+
frequencyPenalty: z.ZodOptional<z.ZodNumber>;
|
|
1356
|
+
logProbs: z.ZodOptional<z.ZodBoolean>;
|
|
1357
|
+
presencePenalty: z.ZodOptional<z.ZodNumber>;
|
|
1358
|
+
topLogProbs: z.ZodOptional<z.ZodNumber>;
|
|
1359
|
+
} & {
|
|
1360
|
+
store: z.ZodOptional<z.ZodBoolean>;
|
|
1361
|
+
}, z.ZodTypeAny, "passthrough">>>;
|
|
1319
1362
|
};
|
|
1320
1363
|
|
|
1321
1364
|
export { OpenAIChatCompletionConfigSchema, SUPPORTED_GPT_MODELS, openAIModelRef };
|
package/lib/openai/gpt.d.ts
CHANGED
|
@@ -1316,6 +1316,49 @@ declare const SUPPORTED_GPT_MODELS: {
|
|
|
1316
1316
|
} & {
|
|
1317
1317
|
store: z.ZodOptional<z.ZodBoolean>;
|
|
1318
1318
|
}, z.ZodTypeAny, "passthrough">>>;
|
|
1319
|
+
readonly 'gpt-5.1': ModelReference<z.ZodObject<{
|
|
1320
|
+
version: z.ZodOptional<z.ZodString>;
|
|
1321
|
+
maxOutputTokens: z.ZodOptional<z.ZodNumber>;
|
|
1322
|
+
topK: z.ZodOptional<z.ZodNumber>;
|
|
1323
|
+
topP: z.ZodOptional<z.ZodNumber>;
|
|
1324
|
+
stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
1325
|
+
} & {
|
|
1326
|
+
temperature: z.ZodOptional<z.ZodNumber>;
|
|
1327
|
+
frequencyPenalty: z.ZodOptional<z.ZodNumber>;
|
|
1328
|
+
logProbs: z.ZodOptional<z.ZodBoolean>;
|
|
1329
|
+
presencePenalty: z.ZodOptional<z.ZodNumber>;
|
|
1330
|
+
topLogProbs: z.ZodOptional<z.ZodNumber>;
|
|
1331
|
+
} & {
|
|
1332
|
+
store: z.ZodOptional<z.ZodBoolean>;
|
|
1333
|
+
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
|
|
1334
|
+
version: z.ZodOptional<z.ZodString>;
|
|
1335
|
+
maxOutputTokens: z.ZodOptional<z.ZodNumber>;
|
|
1336
|
+
topK: z.ZodOptional<z.ZodNumber>;
|
|
1337
|
+
topP: z.ZodOptional<z.ZodNumber>;
|
|
1338
|
+
stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
1339
|
+
} & {
|
|
1340
|
+
temperature: z.ZodOptional<z.ZodNumber>;
|
|
1341
|
+
frequencyPenalty: z.ZodOptional<z.ZodNumber>;
|
|
1342
|
+
logProbs: z.ZodOptional<z.ZodBoolean>;
|
|
1343
|
+
presencePenalty: z.ZodOptional<z.ZodNumber>;
|
|
1344
|
+
topLogProbs: z.ZodOptional<z.ZodNumber>;
|
|
1345
|
+
} & {
|
|
1346
|
+
store: z.ZodOptional<z.ZodBoolean>;
|
|
1347
|
+
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
|
|
1348
|
+
version: z.ZodOptional<z.ZodString>;
|
|
1349
|
+
maxOutputTokens: z.ZodOptional<z.ZodNumber>;
|
|
1350
|
+
topK: z.ZodOptional<z.ZodNumber>;
|
|
1351
|
+
topP: z.ZodOptional<z.ZodNumber>;
|
|
1352
|
+
stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
1353
|
+
} & {
|
|
1354
|
+
temperature: z.ZodOptional<z.ZodNumber>;
|
|
1355
|
+
frequencyPenalty: z.ZodOptional<z.ZodNumber>;
|
|
1356
|
+
logProbs: z.ZodOptional<z.ZodBoolean>;
|
|
1357
|
+
presencePenalty: z.ZodOptional<z.ZodNumber>;
|
|
1358
|
+
topLogProbs: z.ZodOptional<z.ZodNumber>;
|
|
1359
|
+
} & {
|
|
1360
|
+
store: z.ZodOptional<z.ZodBoolean>;
|
|
1361
|
+
}, z.ZodTypeAny, "passthrough">>>;
|
|
1319
1362
|
};
|
|
1320
1363
|
|
|
1321
1364
|
export { OpenAIChatCompletionConfigSchema, SUPPORTED_GPT_MODELS, openAIModelRef };
|
package/lib/openai/gpt.js
CHANGED
|
@@ -233,6 +233,10 @@ const gpt5ChatLatest = openAIModelRef({
|
|
|
233
233
|
}
|
|
234
234
|
}
|
|
235
235
|
});
|
|
236
|
+
const gpt5_1 = openAIModelRef({
|
|
237
|
+
name: "openai/gpt-5.1",
|
|
238
|
+
info: GPT_5_MODEL_INFO
|
|
239
|
+
});
|
|
236
240
|
const SUPPORTED_GPT_MODELS = {
|
|
237
241
|
"gpt-4.5": gpt45,
|
|
238
242
|
"gpt-4.5-preview": gpt45Preview,
|
|
@@ -262,7 +266,8 @@ const SUPPORTED_GPT_MODELS = {
|
|
|
262
266
|
"gpt-5": gpt5,
|
|
263
267
|
"gpt-5-mini": gpt5Mini,
|
|
264
268
|
"gpt-5-nano": gpt5Nano,
|
|
265
|
-
"gpt-5-chat-latest": gpt5ChatLatest
|
|
269
|
+
"gpt-5-chat-latest": gpt5ChatLatest,
|
|
270
|
+
"gpt-5.1": gpt5_1
|
|
266
271
|
};
|
|
267
272
|
// Annotate the CommonJS export names for ESM import in node:
|
|
268
273
|
0 && (module.exports = {
|
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: 'openai/gpt-4.5',\n info: MULTIMODAL_MODEL_INFO,\n});\nconst gpt45Preview = openAIModelRef({\n name: 'openai/gpt-4.5-preview',\n info: MULTIMODAL_MODEL_INFO,\n});\n\nconst gpt4o = openAIModelRef({\n name: 'openai/gpt-4o',\n info: MULTIMODAL_MODEL_INFO,\n});\nconst gpt4o20240513 = openAIModelRef({\n name: 'openai/gpt-4o-2024-05-13',\n info: MULTIMODAL_MODEL_INFO,\n});\n\nconst o1 = openAIModelRef({\n name: 'openai/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: 'openai/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: 'openai/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: 'openai/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: 'openai/gpt-4o-mini',\n info: MULTIMODAL_MODEL_INFO,\n});\nconst gpt4oMini20240718 = openAIModelRef({\n name: 'openai/gpt-4o-mini-2024-07-18',\n info: MULTIMODAL_MODEL_INFO,\n});\n\nconst gpt4Turbo = openAIModelRef({\n name: 'openai/gpt-4-turbo',\n info: MULTIMODAL_MODEL_INFO,\n});\nconst gpt4Turbo20240409 = openAIModelRef({\n name: 'openai/gpt-4-turbo-2024-04-09',\n info: MULTIMODAL_MODEL_INFO,\n});\nconst gpt4TurboPreview = openAIModelRef({\n name: 'openai/gpt-4-turbo-preview',\n info: MULTIMODAL_MODEL_INFO,\n});\nconst gpt40125Preview = openAIModelRef({\n name: 'openai/gpt-4-0125-preview',\n info: MULTIMODAL_MODEL_INFO,\n});\nconst gpt41106Preview = openAIModelRef({\n name: 'openai/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: 'openai/gpt-4-vision',\n info: GPT_4_VISION_MODEL_INFO,\n});\nconst gpt4VisionPreview = openAIModelRef({\n name: 'openai/gpt-4-vision-preview',\n info: GPT_4_VISION_MODEL_INFO,\n});\nconst gpt41106VisionPreview = openAIModelRef({\n name: 'openai/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: 'openai/gpt-4', info: GPT_4_MODEL_INFO });\nconst gpt40613 = openAIModelRef({\n name: 'openai/gpt-4-0613',\n info: GPT_4_MODEL_INFO,\n});\nconst gpt432k = openAIModelRef({\n name: 'openai/gpt-4-32k',\n info: GPT_4_MODEL_INFO,\n});\nconst gpt432k0613 = openAIModelRef({\n name: 'openai/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: 'openai/gpt-3.5-turbo',\n info: GPT_35_MODEL_INFO,\n});\nconst gpt35Turbo0125 = openAIModelRef({\n name: 'openai/gpt-3.5-turbo-0125',\n info: GPT_35_MODEL_INFO,\n});\nconst gpt35Turbo1106 = openAIModelRef({\n name: 'openai/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: 'openai/gpt-5',\n info: GPT_5_MODEL_INFO,\n});\nconst gpt5Mini = openAIModelRef({\n name: 'openai/gpt-5-mini',\n info: GPT_5_MODEL_INFO,\n});\nconst gpt5Nano = openAIModelRef({\n name: 'openai/gpt-5-nano',\n info: GPT_5_MODEL_INFO,\n});\nconst gpt5ChatLatest = openAIModelRef({\n name: 'openai/gpt-5-chat-latest',\n info: {\n supports: {\n ...GPT_5_MODEL_INFO.supports,\n tools: false,\n output: ['text'],\n },\n },\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} 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 { 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: 'openai/gpt-4.5',\n info: MULTIMODAL_MODEL_INFO,\n});\nconst gpt45Preview = openAIModelRef({\n name: 'openai/gpt-4.5-preview',\n info: MULTIMODAL_MODEL_INFO,\n});\n\nconst gpt4o = openAIModelRef({\n name: 'openai/gpt-4o',\n info: MULTIMODAL_MODEL_INFO,\n});\nconst gpt4o20240513 = openAIModelRef({\n name: 'openai/gpt-4o-2024-05-13',\n info: MULTIMODAL_MODEL_INFO,\n});\n\nconst o1 = openAIModelRef({\n name: 'openai/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: 'openai/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: 'openai/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: 'openai/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: 'openai/gpt-4o-mini',\n info: MULTIMODAL_MODEL_INFO,\n});\nconst gpt4oMini20240718 = openAIModelRef({\n name: 'openai/gpt-4o-mini-2024-07-18',\n info: MULTIMODAL_MODEL_INFO,\n});\n\nconst gpt4Turbo = openAIModelRef({\n name: 'openai/gpt-4-turbo',\n info: MULTIMODAL_MODEL_INFO,\n});\nconst gpt4Turbo20240409 = openAIModelRef({\n name: 'openai/gpt-4-turbo-2024-04-09',\n info: MULTIMODAL_MODEL_INFO,\n});\nconst gpt4TurboPreview = openAIModelRef({\n name: 'openai/gpt-4-turbo-preview',\n info: MULTIMODAL_MODEL_INFO,\n});\nconst gpt40125Preview = openAIModelRef({\n name: 'openai/gpt-4-0125-preview',\n info: MULTIMODAL_MODEL_INFO,\n});\nconst gpt41106Preview = openAIModelRef({\n name: 'openai/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: 'openai/gpt-4-vision',\n info: GPT_4_VISION_MODEL_INFO,\n});\nconst gpt4VisionPreview = openAIModelRef({\n name: 'openai/gpt-4-vision-preview',\n info: GPT_4_VISION_MODEL_INFO,\n});\nconst gpt41106VisionPreview = openAIModelRef({\n name: 'openai/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: 'openai/gpt-4', info: GPT_4_MODEL_INFO });\nconst gpt40613 = openAIModelRef({\n name: 'openai/gpt-4-0613',\n info: GPT_4_MODEL_INFO,\n});\nconst gpt432k = openAIModelRef({\n name: 'openai/gpt-4-32k',\n info: GPT_4_MODEL_INFO,\n});\nconst gpt432k0613 = openAIModelRef({\n name: 'openai/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: 'openai/gpt-3.5-turbo',\n info: GPT_35_MODEL_INFO,\n});\nconst gpt35Turbo0125 = openAIModelRef({\n name: 'openai/gpt-3.5-turbo-0125',\n info: GPT_35_MODEL_INFO,\n});\nconst gpt35Turbo1106 = openAIModelRef({\n name: 'openai/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: 'openai/gpt-5',\n info: GPT_5_MODEL_INFO,\n});\nconst gpt5Mini = openAIModelRef({\n name: 'openai/gpt-5-mini',\n info: GPT_5_MODEL_INFO,\n});\nconst gpt5Nano = openAIModelRef({\n name: 'openai/gpt-5-nano',\n info: GPT_5_MODEL_INFO,\n});\nconst gpt5ChatLatest = openAIModelRef({\n name: 'openai/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: 'openai/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
|
@@ -208,6 +208,10 @@ const gpt5ChatLatest = openAIModelRef({
|
|
|
208
208
|
}
|
|
209
209
|
}
|
|
210
210
|
});
|
|
211
|
+
const gpt5_1 = openAIModelRef({
|
|
212
|
+
name: "openai/gpt-5.1",
|
|
213
|
+
info: GPT_5_MODEL_INFO
|
|
214
|
+
});
|
|
211
215
|
const SUPPORTED_GPT_MODELS = {
|
|
212
216
|
"gpt-4.5": gpt45,
|
|
213
217
|
"gpt-4.5-preview": gpt45Preview,
|
|
@@ -237,7 +241,8 @@ const SUPPORTED_GPT_MODELS = {
|
|
|
237
241
|
"gpt-5": gpt5,
|
|
238
242
|
"gpt-5-mini": gpt5Mini,
|
|
239
243
|
"gpt-5-nano": gpt5Nano,
|
|
240
|
-
"gpt-5-chat-latest": gpt5ChatLatest
|
|
244
|
+
"gpt-5-chat-latest": gpt5ChatLatest,
|
|
245
|
+
"gpt-5.1": gpt5_1
|
|
241
246
|
};
|
|
242
247
|
export {
|
|
243
248
|
OpenAIChatCompletionConfigSchema,
|
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: 'openai/gpt-4.5',\n info: MULTIMODAL_MODEL_INFO,\n});\nconst gpt45Preview = openAIModelRef({\n name: 'openai/gpt-4.5-preview',\n info: MULTIMODAL_MODEL_INFO,\n});\n\nconst gpt4o = openAIModelRef({\n name: 'openai/gpt-4o',\n info: MULTIMODAL_MODEL_INFO,\n});\nconst gpt4o20240513 = openAIModelRef({\n name: 'openai/gpt-4o-2024-05-13',\n info: MULTIMODAL_MODEL_INFO,\n});\n\nconst o1 = openAIModelRef({\n name: 'openai/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: 'openai/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: 'openai/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: 'openai/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: 'openai/gpt-4o-mini',\n info: MULTIMODAL_MODEL_INFO,\n});\nconst gpt4oMini20240718 = openAIModelRef({\n name: 'openai/gpt-4o-mini-2024-07-18',\n info: MULTIMODAL_MODEL_INFO,\n});\n\nconst gpt4Turbo = openAIModelRef({\n name: 'openai/gpt-4-turbo',\n info: MULTIMODAL_MODEL_INFO,\n});\nconst gpt4Turbo20240409 = openAIModelRef({\n name: 'openai/gpt-4-turbo-2024-04-09',\n info: MULTIMODAL_MODEL_INFO,\n});\nconst gpt4TurboPreview = openAIModelRef({\n name: 'openai/gpt-4-turbo-preview',\n info: MULTIMODAL_MODEL_INFO,\n});\nconst gpt40125Preview = openAIModelRef({\n name: 'openai/gpt-4-0125-preview',\n info: MULTIMODAL_MODEL_INFO,\n});\nconst gpt41106Preview = openAIModelRef({\n name: 'openai/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: 'openai/gpt-4-vision',\n info: GPT_4_VISION_MODEL_INFO,\n});\nconst gpt4VisionPreview = openAIModelRef({\n name: 'openai/gpt-4-vision-preview',\n info: GPT_4_VISION_MODEL_INFO,\n});\nconst gpt41106VisionPreview = openAIModelRef({\n name: 'openai/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: 'openai/gpt-4', info: GPT_4_MODEL_INFO });\nconst gpt40613 = openAIModelRef({\n name: 'openai/gpt-4-0613',\n info: GPT_4_MODEL_INFO,\n});\nconst gpt432k = openAIModelRef({\n name: 'openai/gpt-4-32k',\n info: GPT_4_MODEL_INFO,\n});\nconst gpt432k0613 = openAIModelRef({\n name: 'openai/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: 'openai/gpt-3.5-turbo',\n info: GPT_35_MODEL_INFO,\n});\nconst gpt35Turbo0125 = openAIModelRef({\n name: 'openai/gpt-3.5-turbo-0125',\n info: GPT_35_MODEL_INFO,\n});\nconst gpt35Turbo1106 = openAIModelRef({\n name: 'openai/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: 'openai/gpt-5',\n info: GPT_5_MODEL_INFO,\n});\nconst gpt5Mini = openAIModelRef({\n name: 'openai/gpt-5-mini',\n info: GPT_5_MODEL_INFO,\n});\nconst gpt5Nano = openAIModelRef({\n name: 'openai/gpt-5-nano',\n info: GPT_5_MODEL_INFO,\n});\nconst gpt5ChatLatest = openAIModelRef({\n name: 'openai/gpt-5-chat-latest',\n info: {\n supports: {\n ...GPT_5_MODEL_INFO.supports,\n tools: false,\n output: ['text'],\n },\n },\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} as const;\n"],"mappings":"AAiBA,SAAS,SAAS;AAElB,SAAS,kCAAkC,yBAAyB;AAEpE,MAAM,wBAAmC;AAAA,EACvC,UAAU;AAAA,IACR,WAAW;AAAA,IACX,OAAO;AAAA,IACP,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,QAAQ,CAAC,QAAQ,MAAM;AAAA,IACvB,aAAa;AAAA,EACf;AACF;AAGO,MAAM,mCACX,iCAAiC,OAAO;AAAA,EACtC,OAAO,EAAE,QAAQ,EAAE,SAAS;AAC9B,CAAC;AAGI,SAAS,eAAe,QAI6B;AAC1D,SAAO,kBAAkB;AAAA,IACvB,GAAG;AAAA,IACH,MAAM,OAAO;AAAA,IACb,cAAc;AAAA,IACd,WAAW;AAAA,EACb,CAAC;AACH;AAEA,MAAM,QAAQ,eAAe;AAAA,EAC3B,MAAM;AAAA,EACN,MAAM;AACR,CAAC;AACD,MAAM,eAAe,eAAe;AAAA,EAClC,MAAM;AAAA,EACN,MAAM;AACR,CAAC;AAED,MAAM,QAAQ,eAAe;AAAA,EAC3B,MAAM;AAAA,EACN,MAAM;AACR,CAAC;AACD,MAAM,gBAAgB,eAAe;AAAA,EACnC,MAAM;AAAA,EACN,MAAM;AACR,CAAC;AAED,MAAM,KAAK,eAAe;AAAA,EACxB,MAAM;AAAA,EACN,MAAM;AAAA,IACJ,UAAU;AAAA,MACR,WAAW;AAAA,MACX,OAAO;AAAA,MACP,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,QAAQ,CAAC,QAAQ,MAAM;AAAA,IACzB;AAAA,EACF;AACF,CAAC;AAED,MAAM,KAAK,eAAe;AAAA,EACxB,MAAM;AAAA,EACN,MAAM;AAAA,IACJ,UAAU;AAAA,MACR,WAAW;AAAA,MACX,OAAO;AAAA,MACP,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,QAAQ,CAAC,QAAQ,MAAM;AAAA,IACzB;AAAA,EACF;AACF,CAAC;AAED,MAAM,SAAS,eAAe;AAAA,EAC5B,MAAM;AAAA,EACN,MAAM;AAAA,IACJ,UAAU;AAAA,MACR,WAAW;AAAA,MACX,OAAO;AAAA,MACP,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,QAAQ,CAAC,QAAQ,MAAM;AAAA,IACzB;AAAA,EACF;AACF,CAAC;AAED,MAAM,SAAS,eAAe;AAAA,EAC5B,MAAM;AAAA,EACN,MAAM;AAAA,IACJ,UAAU;AAAA,MACR,WAAW;AAAA,MACX,OAAO;AAAA,MACP,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,QAAQ,CAAC,QAAQ,MAAM;AAAA,IACzB;AAAA,EACF;AACF,CAAC;AAED,MAAM,YAAY,eAAe;AAAA,EAC/B,MAAM;AAAA,EACN,MAAM;AACR,CAAC;AACD,MAAM,oBAAoB,eAAe;AAAA,EACvC,MAAM;AAAA,EACN,MAAM;AACR,CAAC;AAED,MAAM,YAAY,eAAe;AAAA,EAC/B,MAAM;AAAA,EACN,MAAM;AACR,CAAC;AACD,MAAM,oBAAoB,eAAe;AAAA,EACvC,MAAM;AAAA,EACN,MAAM;AACR,CAAC;AACD,MAAM,mBAAmB,eAAe;AAAA,EACtC,MAAM;AAAA,EACN,MAAM;AACR,CAAC;AACD,MAAM,kBAAkB,eAAe;AAAA,EACrC,MAAM;AAAA,EACN,MAAM;AACR,CAAC;AACD,MAAM,kBAAkB,eAAe;AAAA,EACrC,MAAM;AAAA,EACN,MAAM;AACR,CAAC;AAED,MAAM,0BAAqC;AAAA,EACzC,UAAU;AAAA,IACR,WAAW;AAAA,IACX,OAAO;AAAA,IACP,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,QAAQ,CAAC,MAAM;AAAA,EACjB;AACF;AACA,MAAM,aAAa,eAAe;AAAA,EAChC,MAAM;AAAA,EACN,MAAM;AACR,CAAC;AACD,MAAM,oBAAoB,eAAe;AAAA,EACvC,MAAM;AAAA,EACN,MAAM;AACR,CAAC;AACD,MAAM,wBAAwB,eAAe;AAAA,EAC3C,MAAM;AAAA,EACN,MAAM;AACR,CAAC;AAED,MAAM,mBAA8B;AAAA,EAClC,UAAU;AAAA,IACR,WAAW;AAAA,IACX,OAAO;AAAA,IACP,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,QAAQ,CAAC,MAAM;AAAA,EACjB;AACF;AACA,MAAM,OAAO,eAAe,EAAE,MAAM,gBAAgB,MAAM,iBAAiB,CAAC;AAC5E,MAAM,WAAW,eAAe;AAAA,EAC9B,MAAM;AAAA,EACN,MAAM;AACR,CAAC;AACD,MAAM,UAAU,eAAe;AAAA,EAC7B,MAAM;AAAA,EACN,MAAM;AACR,CAAC;AACD,MAAM,cAAc,eAAe;AAAA,EACjC,MAAM;AAAA,EACN,MAAM;AACR,CAAC;AAED,MAAM,oBAA+B;AAAA,EACnC,UAAU;AAAA,IACR,WAAW;AAAA,IACX,OAAO;AAAA,IACP,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,QAAQ,CAAC,QAAQ,MAAM;AAAA,EACzB;AACF;AACA,MAAM,aAAa,eAAe;AAAA,EAChC,MAAM;AAAA,EACN,MAAM;AACR,CAAC;AACD,MAAM,iBAAiB,eAAe;AAAA,EACpC,MAAM;AAAA,EACN,MAAM;AACR,CAAC;AACD,MAAM,iBAAiB,eAAe;AAAA,EACpC,MAAM;AAAA,EACN,MAAM;AACR,CAAC;AAED,MAAM,mBAA8B;AAAA,EAClC,UAAU;AAAA,IACR,WAAW;AAAA,IACX,OAAO;AAAA,IACP,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,QAAQ,CAAC,QAAQ,MAAM;AAAA,EACzB;AACF;AACA,MAAM,OAAO,eAAe;AAAA,EAC1B,MAAM;AAAA,EACN,MAAM;AACR,CAAC;AACD,MAAM,WAAW,eAAe;AAAA,EAC9B,MAAM;AAAA,EACN,MAAM;AACR,CAAC;AACD,MAAM,WAAW,eAAe;AAAA,EAC9B,MAAM;AAAA,EACN,MAAM;AACR,CAAC;AACD,MAAM,iBAAiB,eAAe;AAAA,EACpC,MAAM;AAAA,EACN,MAAM;AAAA,IACJ,UAAU;AAAA,MACR,GAAG,iBAAiB;AAAA,MACpB,OAAO;AAAA,MACP,QAAQ,CAAC,MAAM;AAAA,IACjB;AAAA,EACF;AACF,CAAC;AAEM,MAAM,uBAAuB;AAAA,EAClC,WAAW;AAAA,EACX,mBAAmB;AAAA,EACnB,UAAU;AAAA,EACV,qBAAqB;AAAA,EACrB;AAAA,EACA;AAAA,EACA,WAAW;AAAA,EACX,WAAW;AAAA,EACX,eAAe;AAAA,EACf,0BAA0B;AAAA,EAC1B,eAAe;AAAA,EACf,0BAA0B;AAAA,EAC1B,uBAAuB;AAAA,EACvB,sBAAsB;AAAA,EACtB,sBAAsB;AAAA,EACtB,gBAAgB;AAAA,EAChB,wBAAwB;AAAA,EACxB,6BAA6B;AAAA,EAC7B,SAAS;AAAA,EACT,cAAc;AAAA,EACd,aAAa;AAAA,EACb,kBAAkB;AAAA,EAClB,iBAAiB;AAAA,EACjB,sBAAsB;AAAA,EACtB,sBAAsB;AAAA,EACtB,SAAS;AAAA,EACT,cAAc;AAAA,EACd,cAAc;AAAA,EACd,qBAAqB;AACvB;","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 { 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: 'openai/gpt-4.5',\n info: MULTIMODAL_MODEL_INFO,\n});\nconst gpt45Preview = openAIModelRef({\n name: 'openai/gpt-4.5-preview',\n info: MULTIMODAL_MODEL_INFO,\n});\n\nconst gpt4o = openAIModelRef({\n name: 'openai/gpt-4o',\n info: MULTIMODAL_MODEL_INFO,\n});\nconst gpt4o20240513 = openAIModelRef({\n name: 'openai/gpt-4o-2024-05-13',\n info: MULTIMODAL_MODEL_INFO,\n});\n\nconst o1 = openAIModelRef({\n name: 'openai/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: 'openai/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: 'openai/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: 'openai/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: 'openai/gpt-4o-mini',\n info: MULTIMODAL_MODEL_INFO,\n});\nconst gpt4oMini20240718 = openAIModelRef({\n name: 'openai/gpt-4o-mini-2024-07-18',\n info: MULTIMODAL_MODEL_INFO,\n});\n\nconst gpt4Turbo = openAIModelRef({\n name: 'openai/gpt-4-turbo',\n info: MULTIMODAL_MODEL_INFO,\n});\nconst gpt4Turbo20240409 = openAIModelRef({\n name: 'openai/gpt-4-turbo-2024-04-09',\n info: MULTIMODAL_MODEL_INFO,\n});\nconst gpt4TurboPreview = openAIModelRef({\n name: 'openai/gpt-4-turbo-preview',\n info: MULTIMODAL_MODEL_INFO,\n});\nconst gpt40125Preview = openAIModelRef({\n name: 'openai/gpt-4-0125-preview',\n info: MULTIMODAL_MODEL_INFO,\n});\nconst gpt41106Preview = openAIModelRef({\n name: 'openai/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: 'openai/gpt-4-vision',\n info: GPT_4_VISION_MODEL_INFO,\n});\nconst gpt4VisionPreview = openAIModelRef({\n name: 'openai/gpt-4-vision-preview',\n info: GPT_4_VISION_MODEL_INFO,\n});\nconst gpt41106VisionPreview = openAIModelRef({\n name: 'openai/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: 'openai/gpt-4', info: GPT_4_MODEL_INFO });\nconst gpt40613 = openAIModelRef({\n name: 'openai/gpt-4-0613',\n info: GPT_4_MODEL_INFO,\n});\nconst gpt432k = openAIModelRef({\n name: 'openai/gpt-4-32k',\n info: GPT_4_MODEL_INFO,\n});\nconst gpt432k0613 = openAIModelRef({\n name: 'openai/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: 'openai/gpt-3.5-turbo',\n info: GPT_35_MODEL_INFO,\n});\nconst gpt35Turbo0125 = openAIModelRef({\n name: 'openai/gpt-3.5-turbo-0125',\n info: GPT_35_MODEL_INFO,\n});\nconst gpt35Turbo1106 = openAIModelRef({\n name: 'openai/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: 'openai/gpt-5',\n info: GPT_5_MODEL_INFO,\n});\nconst gpt5Mini = openAIModelRef({\n name: 'openai/gpt-5-mini',\n info: GPT_5_MODEL_INFO,\n});\nconst gpt5Nano = openAIModelRef({\n name: 'openai/gpt-5-nano',\n info: GPT_5_MODEL_INFO,\n});\nconst gpt5ChatLatest = openAIModelRef({\n name: 'openai/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: 'openai/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.js.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 { GenkitPluginV2, ResolvableAction } from 'genkit/plugin';\nimport { 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 { openAISpeechModelRef, SUPPORTED_TTS_MODELS } from './tts.js';\nimport {\n openAITranscriptionModelRef,\n SUPPORTED_STT_MODELS,\n} from './whisper.js';\n\nexport type OpenAIPluginOptions = Omit<PluginOptions, 'name' | 'baseURL'>;\n\nconst UNSUPPORTED_MODEL_MATCHERS = ['babbage', 'davinci', 'codex'];\n\nconst resolver = async (\n client: OpenAI,\n actionType: ActionType,\n actionName: string\n) => {\n if (actionType === 'embedder') {\n return defineCompatOpenAIEmbedder({ name: actionName, client });\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 modelRef,\n });\n } else if (actionName.includes('tts')) {\n const modelRef = openAISpeechModelRef({ name: actionName });\n return defineCompatOpenAISpeechModel({\n name: modelRef.name,\n client,\n modelRef,\n });\n } else if (\n actionName.includes('whisper') ||\n actionName.includes('transcribe')\n ) {\n const modelRef = openAITranscriptionModelRef({\n name: actionName,\n });\n return defineCompatOpenAITranscriptionModel({\n name: modelRef.name,\n client,\n modelRef,\n });\n } else {\n const modelRef = openAIModelRef({ name: actionName });\n return defineCompatOpenAIModel({\n name: modelRef.name,\n client,\n modelRef,\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 (\n model.id.includes('whisper') ||\n model.id.includes('transcribe')\n ) {\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 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({ name: modelRef.name, client, modelRef })\n )\n );\n models.push(\n ...Object.values(SUPPORTED_EMBEDDING_MODELS).map((embedderRef) =>\n defineCompatOpenAIEmbedder({\n name: embedderRef.name,\n client,\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 modelRef,\n })\n )\n );\n models.push(\n ...Object.values(SUPPORTED_STT_MODELS).map((modelRef) =>\n defineCompatOpenAITranscriptionModel({\n name: modelRef.name,\n client,\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 modelRef,\n requestBuilder: modelRef.name.includes('gpt-image-1')\n ? gptImage1RequestBuilder\n : undefined,\n })\n )\n );\n return models;\n },\n resolver,\n listActions,\n });\n}\n\nexport type OpenAIPlugin = {\n (params?: OpenAIPluginOptions): GenkitPluginV2;\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(\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:\n | keyof typeof SUPPORTED_STT_MODELS\n | (`whisper-${string}` & {})\n | (`${string}-transcribe` & {}),\n config?: z.infer<typeof TranscriptionConfigSchema>\n ): ModelReference<typeof TranscriptionConfigSchema>;\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 namespace: 'openai',\n });\n }\n if (name.includes('tts')) {\n return openAISpeechModelRef({\n name,\n config,\n namespace: 'openai',\n });\n }\n if (name.includes('whisper') || name.includes('transcribe')) {\n return openAITranscriptionModelRef({\n name,\n config,\n namespace: 'openai',\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":["import_embedder","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 { ResolvableAction, type GenkitPluginV2 } from 'genkit/plugin';\nimport { 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 { openAISpeechModelRef, SUPPORTED_TTS_MODELS } from './tts.js';\nimport {\n openAITranscriptionModelRef,\n SUPPORTED_STT_MODELS,\n} from './whisper.js';\n\nexport type OpenAIPluginOptions = Omit<PluginOptions, 'name' | 'baseURL'>;\n\nconst UNSUPPORTED_MODEL_MATCHERS = ['babbage', 'davinci', 'codex'];\n\nconst resolver = async (\n client: OpenAI,\n actionType: ActionType,\n actionName: string\n) => {\n if (actionType === 'embedder') {\n return defineCompatOpenAIEmbedder({ name: actionName, client });\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 modelRef,\n });\n } else if (actionName.includes('tts')) {\n const modelRef = openAISpeechModelRef({ name: actionName });\n return defineCompatOpenAISpeechModel({\n name: modelRef.name,\n client,\n modelRef,\n });\n } else if (\n actionName.includes('whisper') ||\n actionName.includes('transcribe')\n ) {\n const modelRef = openAITranscriptionModelRef({\n name: actionName,\n });\n return defineCompatOpenAITranscriptionModel({\n name: modelRef.name,\n client,\n modelRef,\n });\n } else {\n const modelRef = openAIModelRef({ name: actionName });\n return defineCompatOpenAIModel({\n name: modelRef.name,\n client,\n modelRef,\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 (\n model.id.includes('whisper') ||\n model.id.includes('transcribe')\n ) {\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 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({ name: modelRef.name, client, modelRef })\n )\n );\n models.push(\n ...Object.values(SUPPORTED_EMBEDDING_MODELS).map((embedderRef) =>\n defineCompatOpenAIEmbedder({\n name: embedderRef.name,\n client,\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 modelRef,\n })\n )\n );\n models.push(\n ...Object.values(SUPPORTED_STT_MODELS).map((modelRef) =>\n defineCompatOpenAITranscriptionModel({\n name: modelRef.name,\n client,\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 modelRef,\n requestBuilder: modelRef.name.includes('gpt-image-1')\n ? gptImage1RequestBuilder\n : undefined,\n })\n )\n );\n return models;\n },\n resolver,\n listActions,\n });\n}\n\nexport type OpenAIPlugin = {\n (params?: OpenAIPluginOptions): GenkitPluginV2;\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(\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:\n | keyof typeof SUPPORTED_STT_MODELS\n | (`whisper-${string}` & {})\n | (`${string}-transcribe` & {}),\n config?: z.infer<typeof TranscriptionConfigSchema>\n ): ModelReference<typeof TranscriptionConfigSchema>;\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 namespace: 'openai',\n });\n }\n if (name.includes('tts')) {\n return openAISpeechModelRef({\n name,\n config,\n namespace: 'openai',\n });\n }\n if (name.includes('whisper') || name.includes('transcribe')) {\n return openAITranscriptionModelRef({\n name,\n config,\n namespace: 'openai',\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":["import_embedder","model","embedderRef"]}
|
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 { GenkitPluginV2, ResolvableAction } from 'genkit/plugin';\nimport { 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 { openAISpeechModelRef, SUPPORTED_TTS_MODELS } from './tts.js';\nimport {\n openAITranscriptionModelRef,\n SUPPORTED_STT_MODELS,\n} from './whisper.js';\n\nexport type OpenAIPluginOptions = Omit<PluginOptions, 'name' | 'baseURL'>;\n\nconst UNSUPPORTED_MODEL_MATCHERS = ['babbage', 'davinci', 'codex'];\n\nconst resolver = async (\n client: OpenAI,\n actionType: ActionType,\n actionName: string\n) => {\n if (actionType === 'embedder') {\n return defineCompatOpenAIEmbedder({ name: actionName, client });\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 modelRef,\n });\n } else if (actionName.includes('tts')) {\n const modelRef = openAISpeechModelRef({ name: actionName });\n return defineCompatOpenAISpeechModel({\n name: modelRef.name,\n client,\n modelRef,\n });\n } else if (\n actionName.includes('whisper') ||\n actionName.includes('transcribe')\n ) {\n const modelRef = openAITranscriptionModelRef({\n name: actionName,\n });\n return defineCompatOpenAITranscriptionModel({\n name: modelRef.name,\n client,\n modelRef,\n });\n } else {\n const modelRef = openAIModelRef({ name: actionName });\n return defineCompatOpenAIModel({\n name: modelRef.name,\n client,\n modelRef,\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 (\n model.id.includes('whisper') ||\n model.id.includes('transcribe')\n ) {\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 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({ name: modelRef.name, client, modelRef })\n )\n );\n models.push(\n ...Object.values(SUPPORTED_EMBEDDING_MODELS).map((embedderRef) =>\n defineCompatOpenAIEmbedder({\n name: embedderRef.name,\n client,\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 modelRef,\n })\n )\n );\n models.push(\n ...Object.values(SUPPORTED_STT_MODELS).map((modelRef) =>\n defineCompatOpenAITranscriptionModel({\n name: modelRef.name,\n client,\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 modelRef,\n requestBuilder: modelRef.name.includes('gpt-image-1')\n ? gptImage1RequestBuilder\n : undefined,\n })\n )\n );\n return models;\n },\n resolver,\n listActions,\n });\n}\n\nexport type OpenAIPlugin = {\n (params?: OpenAIPluginOptions): GenkitPluginV2;\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(\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:\n | keyof typeof SUPPORTED_STT_MODELS\n | (`whisper-${string}` & {})\n | (`${string}-transcribe` & {}),\n config?: z.infer<typeof TranscriptionConfigSchema>\n ): ModelReference<typeof TranscriptionConfigSchema>;\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 namespace: 'openai',\n });\n }\n if (name.includes('tts')) {\n return openAISpeechModelRef({\n name,\n config,\n namespace: 'openai',\n });\n }\n if (name.includes('whisper') || name.includes('transcribe')) {\n return openAITranscriptionModelRef({\n name,\n config,\n namespace: 'openai',\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 { ResolvableAction, type GenkitPluginV2 } from 'genkit/plugin';\nimport { 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 { openAISpeechModelRef, SUPPORTED_TTS_MODELS } from './tts.js';\nimport {\n openAITranscriptionModelRef,\n SUPPORTED_STT_MODELS,\n} from './whisper.js';\n\nexport type OpenAIPluginOptions = Omit<PluginOptions, 'name' | 'baseURL'>;\n\nconst UNSUPPORTED_MODEL_MATCHERS = ['babbage', 'davinci', 'codex'];\n\nconst resolver = async (\n client: OpenAI,\n actionType: ActionType,\n actionName: string\n) => {\n if (actionType === 'embedder') {\n return defineCompatOpenAIEmbedder({ name: actionName, client });\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 modelRef,\n });\n } else if (actionName.includes('tts')) {\n const modelRef = openAISpeechModelRef({ name: actionName });\n return defineCompatOpenAISpeechModel({\n name: modelRef.name,\n client,\n modelRef,\n });\n } else if (\n actionName.includes('whisper') ||\n actionName.includes('transcribe')\n ) {\n const modelRef = openAITranscriptionModelRef({\n name: actionName,\n });\n return defineCompatOpenAITranscriptionModel({\n name: modelRef.name,\n client,\n modelRef,\n });\n } else {\n const modelRef = openAIModelRef({ name: actionName });\n return defineCompatOpenAIModel({\n name: modelRef.name,\n client,\n modelRef,\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 (\n model.id.includes('whisper') ||\n model.id.includes('transcribe')\n ) {\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 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({ name: modelRef.name, client, modelRef })\n )\n );\n models.push(\n ...Object.values(SUPPORTED_EMBEDDING_MODELS).map((embedderRef) =>\n defineCompatOpenAIEmbedder({\n name: embedderRef.name,\n client,\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 modelRef,\n })\n )\n );\n models.push(\n ...Object.values(SUPPORTED_STT_MODELS).map((modelRef) =>\n defineCompatOpenAITranscriptionModel({\n name: modelRef.name,\n client,\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 modelRef,\n requestBuilder: modelRef.name.includes('gpt-image-1')\n ? gptImage1RequestBuilder\n : undefined,\n })\n )\n );\n return models;\n },\n resolver,\n listActions,\n });\n}\n\nexport type OpenAIPlugin = {\n (params?: OpenAIPluginOptions): GenkitPluginV2;\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(\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:\n | keyof typeof SUPPORTED_STT_MODELS\n | (`whisper-${string}` & {})\n | (`${string}-transcribe` & {}),\n config?: z.infer<typeof TranscriptionConfigSchema>\n ): ModelReference<typeof TranscriptionConfigSchema>;\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 namespace: 'openai',\n });\n }\n if (name.includes('tts')) {\n return openAISpeechModelRef({\n name,\n config,\n namespace: 'openai',\n });\n }\n if (name.includes('whisper') || name.includes('transcribe')) {\n return openAITranscriptionModelRef({\n name,\n config,\n namespace: 'openai',\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/xai/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/xai/index.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 {\n ActionMetadata,\n GenkitError,\n modelActionMetadata,\n ModelReference,\n z,\n} from 'genkit';\nimport { logger } from 'genkit/logging';\nimport {
|
|
1
|
+
{"version":3,"sources":["../../src/xai/index.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 {\n ActionMetadata,\n GenkitError,\n modelActionMetadata,\n ModelReference,\n z,\n} from 'genkit';\nimport { logger } from 'genkit/logging';\nimport { ResolvableAction, type GenkitPluginV2 } from 'genkit/plugin';\nimport { ActionType } from 'genkit/registry';\nimport OpenAI from 'openai';\nimport {\n defineCompatOpenAIImageModel,\n ImageGenerationCommonConfigSchema,\n} from '../image.js';\nimport { openAICompatible, PluginOptions } from '../index.js';\nimport { defineCompatOpenAIModel } from '../model.js';\nimport { SUPPORTED_IMAGE_MODELS, xaiImageModelRef } from './grok-image.js';\nimport {\n grokRequestBuilder,\n SUPPORTED_LANGUAGE_MODELS,\n XaiChatCompletionConfigSchema,\n xaiModelRef,\n} from './grok.js';\n\nexport type XAIPluginOptions = Omit<PluginOptions, 'name' | 'baseURL'>;\n\nconst resolver = async (\n client: OpenAI,\n actionType: ActionType,\n actionName: string\n) => {\n if (actionType === 'model') {\n const modelRef = xaiModelRef({ name: actionName });\n return defineCompatOpenAIModel({\n name: modelRef.name,\n client,\n modelRef,\n requestBuilder: grokRequestBuilder,\n });\n } else {\n logger.warn('Only model actions are supported by the XAI plugin');\n }\n return undefined;\n};\n\nconst listActions = async (client: OpenAI): Promise<ActionMetadata[]> => {\n return await client.models.list().then((response) =>\n response.data\n .filter((model) => model.object === 'model')\n .map((model: OpenAI.Model) => {\n if (model.id.includes('image')) {\n const modelRef =\n SUPPORTED_IMAGE_MODELS[model.id] ??\n xaiImageModelRef({ 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_LANGUAGE_MODELS[model.id] ??\n xaiModelRef({ 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 xAIPlugin(options?: XAIPluginOptions): GenkitPluginV2 {\n const apiKey = options?.apiKey ?? process.env.XAI_API_KEY;\n if (!apiKey) {\n throw new GenkitError({\n status: 'FAILED_PRECONDITION',\n message:\n 'Please pass in the API key or set the XAI_API_KEY environment variable.',\n });\n }\n return openAICompatible({\n name: 'xai',\n baseURL: 'https://api.x.ai/v1',\n apiKey,\n ...options,\n initializer: async (client) => {\n const models = [] as ResolvableAction[];\n models.push(\n ...Object.values(SUPPORTED_LANGUAGE_MODELS).map((modelRef) =>\n defineCompatOpenAIModel({\n name: modelRef.name,\n client,\n modelRef,\n requestBuilder: grokRequestBuilder,\n })\n )\n );\n models.push(\n ...Object.values(SUPPORTED_IMAGE_MODELS).map((modelRef) =>\n defineCompatOpenAIImageModel({\n name: modelRef.name,\n client,\n modelRef,\n })\n )\n );\n return models;\n },\n resolver,\n listActions,\n });\n}\n\nexport type XAIPlugin = {\n (params?: XAIPluginOptions): GenkitPluginV2;\n model(\n name: keyof typeof SUPPORTED_LANGUAGE_MODELS,\n config?: z.infer<typeof XaiChatCompletionConfigSchema>\n ): ModelReference<typeof XaiChatCompletionConfigSchema>;\n model(\n name: keyof typeof SUPPORTED_IMAGE_MODELS,\n config?: z.infer<typeof ImageGenerationCommonConfigSchema>\n ): ModelReference<typeof ImageGenerationCommonConfigSchema>;\n model(name: string, config?: any): ModelReference<z.ZodTypeAny>;\n};\n\nconst model = ((name: string, config?: any): ModelReference<z.ZodTypeAny> => {\n if (name.includes('image')) {\n return xaiImageModelRef({\n name,\n config,\n namespace: 'xai',\n });\n }\n return xaiModelRef({\n name,\n config,\n });\n}) as XAIPlugin['model'];\n\n/**\n * This module provides an interface to the XAI 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 `xai` 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 * - xAI: The main plugin function to interact with XAI, via OpenAI\n * compatible API.\n *\n * Usage: To use the models, initialize the xAI plugin inside\n * `configureGenkit` and pass the configuration options. If no API key is\n * provided in the options, the environment variable `OPENAI_API_KEY` must be\n * set.\n *\n * Example:\n * ```\n * import { xAI } from '@genkit-ai/compat-oai/xai';\n *\n * export default configureGenkit({\n * plugins: [\n * xAI()\n * ... // other plugins\n * ]\n * });\n * ```\n */\nexport const xAI: XAIPlugin = Object.assign(xAIPlugin, {\n model,\n});\n\nexport default xAI;\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAgBA,oBAMO;AACP,qBAAuB;AAIvB,mBAGO;AACP,eAAgD;AAChD,mBAAwC;AACxC,wBAAyD;AACzD,kBAKO;AAIP,MAAM,WAAW,OACf,QACA,YACA,eACG;AACH,MAAI,eAAe,SAAS;AAC1B,UAAM,eAAW,yBAAY,EAAE,MAAM,WAAW,CAAC;AACjD,eAAO,sCAAwB;AAAA,MAC7B,MAAM,SAAS;AAAA,MACf;AAAA,MACA;AAAA,MACA,gBAAgB;AAAA,IAClB,CAAC;AAAA,EACH,OAAO;AACL,0BAAO,KAAK,oDAAoD;AAAA,EAClE;AACA,SAAO;AACT;AAEA,MAAM,cAAc,OAAO,WAA8C;AACvE,SAAO,MAAM,OAAO,OAAO,KAAK,EAAE;AAAA,IAAK,CAAC,aACtC,SAAS,KACN,OAAO,CAACA,WAAUA,OAAM,WAAW,OAAO,EAC1C,IAAI,CAACA,WAAwB;AAC5B,UAAIA,OAAM,GAAG,SAAS,OAAO,GAAG;AAC9B,cAAM,WACJ,yCAAuBA,OAAM,EAAE,SAC/B,oCAAiB,EAAE,MAAMA,OAAM,GAAG,CAAC;AACrC,mBAAO,mCAAoB;AAAA,UACzB,MAAM,SAAS;AAAA,UACf,MAAM,SAAS;AAAA,UACf,cAAc,SAAS;AAAA,QACzB,CAAC;AAAA,MACH,OAAO;AACL,cAAM,WACJ,sCAA0BA,OAAM,EAAE,SAClC,yBAAY,EAAE,MAAMA,OAAM,GAAG,CAAC;AAChC,mBAAO,mCAAoB;AAAA,UACzB,MAAM,SAAS;AAAA,UACf,MAAM,SAAS;AAAA,UACf,cAAc,SAAS;AAAA,QACzB,CAAC;AAAA,MACH;AAAA,IACF,CAAC;AAAA,EACL;AACF;AAEO,SAAS,UAAU,SAA4C;AACpE,QAAM,SAAS,SAAS,UAAU,QAAQ,IAAI;AAC9C,MAAI,CAAC,QAAQ;AACX,UAAM,IAAI,0BAAY;AAAA,MACpB,QAAQ;AAAA,MACR,SACE;AAAA,IACJ,CAAC;AAAA,EACH;AACA,aAAO,2BAAiB;AAAA,IACtB,MAAM;AAAA,IACN,SAAS;AAAA,IACT;AAAA,IACA,GAAG;AAAA,IACH,aAAa,OAAO,WAAW;AAC7B,YAAM,SAAS,CAAC;AAChB,aAAO;AAAA,QACL,GAAG,OAAO,OAAO,qCAAyB,EAAE;AAAA,UAAI,CAAC,iBAC/C,sCAAwB;AAAA,YACtB,MAAM,SAAS;AAAA,YACf;AAAA,YACA;AAAA,YACA,gBAAgB;AAAA,UAClB,CAAC;AAAA,QACH;AAAA,MACF;AACA,aAAO;AAAA,QACL,GAAG,OAAO,OAAO,wCAAsB,EAAE;AAAA,UAAI,CAAC,iBAC5C,2CAA6B;AAAA,YAC3B,MAAM,SAAS;AAAA,YACf;AAAA,YACA;AAAA,UACF,CAAC;AAAA,QACH;AAAA,MACF;AACA,aAAO;AAAA,IACT;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AACH;AAeA,MAAM,QAAS,CAAC,MAAc,WAA+C;AAC3E,MAAI,KAAK,SAAS,OAAO,GAAG;AAC1B,eAAO,oCAAiB;AAAA,MACtB;AAAA,MACA;AAAA,MACA,WAAW;AAAA,IACb,CAAC;AAAA,EACH;AACA,aAAO,yBAAY;AAAA,IACjB;AAAA,IACA;AAAA,EACF,CAAC;AACH;AAgCO,MAAM,MAAiB,OAAO,OAAO,WAAW;AAAA,EACrD;AACF,CAAC;AAED,IAAO,cAAQ;","names":["model"]}
|
package/lib/xai/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/xai/index.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 {\n ActionMetadata,\n GenkitError,\n modelActionMetadata,\n ModelReference,\n z,\n} from 'genkit';\nimport { logger } from 'genkit/logging';\nimport {
|
|
1
|
+
{"version":3,"sources":["../../src/xai/index.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 {\n ActionMetadata,\n GenkitError,\n modelActionMetadata,\n ModelReference,\n z,\n} from 'genkit';\nimport { logger } from 'genkit/logging';\nimport { ResolvableAction, type GenkitPluginV2 } from 'genkit/plugin';\nimport { ActionType } from 'genkit/registry';\nimport OpenAI from 'openai';\nimport {\n defineCompatOpenAIImageModel,\n ImageGenerationCommonConfigSchema,\n} from '../image.js';\nimport { openAICompatible, PluginOptions } from '../index.js';\nimport { defineCompatOpenAIModel } from '../model.js';\nimport { SUPPORTED_IMAGE_MODELS, xaiImageModelRef } from './grok-image.js';\nimport {\n grokRequestBuilder,\n SUPPORTED_LANGUAGE_MODELS,\n XaiChatCompletionConfigSchema,\n xaiModelRef,\n} from './grok.js';\n\nexport type XAIPluginOptions = Omit<PluginOptions, 'name' | 'baseURL'>;\n\nconst resolver = async (\n client: OpenAI,\n actionType: ActionType,\n actionName: string\n) => {\n if (actionType === 'model') {\n const modelRef = xaiModelRef({ name: actionName });\n return defineCompatOpenAIModel({\n name: modelRef.name,\n client,\n modelRef,\n requestBuilder: grokRequestBuilder,\n });\n } else {\n logger.warn('Only model actions are supported by the XAI plugin');\n }\n return undefined;\n};\n\nconst listActions = async (client: OpenAI): Promise<ActionMetadata[]> => {\n return await client.models.list().then((response) =>\n response.data\n .filter((model) => model.object === 'model')\n .map((model: OpenAI.Model) => {\n if (model.id.includes('image')) {\n const modelRef =\n SUPPORTED_IMAGE_MODELS[model.id] ??\n xaiImageModelRef({ 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_LANGUAGE_MODELS[model.id] ??\n xaiModelRef({ 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 xAIPlugin(options?: XAIPluginOptions): GenkitPluginV2 {\n const apiKey = options?.apiKey ?? process.env.XAI_API_KEY;\n if (!apiKey) {\n throw new GenkitError({\n status: 'FAILED_PRECONDITION',\n message:\n 'Please pass in the API key or set the XAI_API_KEY environment variable.',\n });\n }\n return openAICompatible({\n name: 'xai',\n baseURL: 'https://api.x.ai/v1',\n apiKey,\n ...options,\n initializer: async (client) => {\n const models = [] as ResolvableAction[];\n models.push(\n ...Object.values(SUPPORTED_LANGUAGE_MODELS).map((modelRef) =>\n defineCompatOpenAIModel({\n name: modelRef.name,\n client,\n modelRef,\n requestBuilder: grokRequestBuilder,\n })\n )\n );\n models.push(\n ...Object.values(SUPPORTED_IMAGE_MODELS).map((modelRef) =>\n defineCompatOpenAIImageModel({\n name: modelRef.name,\n client,\n modelRef,\n })\n )\n );\n return models;\n },\n resolver,\n listActions,\n });\n}\n\nexport type XAIPlugin = {\n (params?: XAIPluginOptions): GenkitPluginV2;\n model(\n name: keyof typeof SUPPORTED_LANGUAGE_MODELS,\n config?: z.infer<typeof XaiChatCompletionConfigSchema>\n ): ModelReference<typeof XaiChatCompletionConfigSchema>;\n model(\n name: keyof typeof SUPPORTED_IMAGE_MODELS,\n config?: z.infer<typeof ImageGenerationCommonConfigSchema>\n ): ModelReference<typeof ImageGenerationCommonConfigSchema>;\n model(name: string, config?: any): ModelReference<z.ZodTypeAny>;\n};\n\nconst model = ((name: string, config?: any): ModelReference<z.ZodTypeAny> => {\n if (name.includes('image')) {\n return xaiImageModelRef({\n name,\n config,\n namespace: 'xai',\n });\n }\n return xaiModelRef({\n name,\n config,\n });\n}) as XAIPlugin['model'];\n\n/**\n * This module provides an interface to the XAI 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 `xai` 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 * - xAI: The main plugin function to interact with XAI, via OpenAI\n * compatible API.\n *\n * Usage: To use the models, initialize the xAI plugin inside\n * `configureGenkit` and pass the configuration options. If no API key is\n * provided in the options, the environment variable `OPENAI_API_KEY` must be\n * set.\n *\n * Example:\n * ```\n * import { xAI } from '@genkit-ai/compat-oai/xai';\n *\n * export default configureGenkit({\n * plugins: [\n * xAI()\n * ... // other plugins\n * ]\n * });\n * ```\n */\nexport const xAI: XAIPlugin = Object.assign(xAIPlugin, {\n model,\n});\n\nexport default xAI;\n"],"mappings":"AAgBA;AAAA,EAEE;AAAA,EACA;AAAA,OAGK;AACP,SAAS,cAAc;AAIvB;AAAA,EACE;AAAA,OAEK;AACP,SAAS,wBAAuC;AAChD,SAAS,+BAA+B;AACxC,SAAS,wBAAwB,wBAAwB;AACzD;AAAA,EACE;AAAA,EACA;AAAA,EAEA;AAAA,OACK;AAIP,MAAM,WAAW,OACf,QACA,YACA,eACG;AACH,MAAI,eAAe,SAAS;AAC1B,UAAM,WAAW,YAAY,EAAE,MAAM,WAAW,CAAC;AACjD,WAAO,wBAAwB;AAAA,MAC7B,MAAM,SAAS;AAAA,MACf;AAAA,MACA;AAAA,MACA,gBAAgB;AAAA,IAClB,CAAC;AAAA,EACH,OAAO;AACL,WAAO,KAAK,oDAAoD;AAAA,EAClE;AACA,SAAO;AACT;AAEA,MAAM,cAAc,OAAO,WAA8C;AACvE,SAAO,MAAM,OAAO,OAAO,KAAK,EAAE;AAAA,IAAK,CAAC,aACtC,SAAS,KACN,OAAO,CAACA,WAAUA,OAAM,WAAW,OAAO,EAC1C,IAAI,CAACA,WAAwB;AAC5B,UAAIA,OAAM,GAAG,SAAS,OAAO,GAAG;AAC9B,cAAM,WACJ,uBAAuBA,OAAM,EAAE,KAC/B,iBAAiB,EAAE,MAAMA,OAAM,GAAG,CAAC;AACrC,eAAO,oBAAoB;AAAA,UACzB,MAAM,SAAS;AAAA,UACf,MAAM,SAAS;AAAA,UACf,cAAc,SAAS;AAAA,QACzB,CAAC;AAAA,MACH,OAAO;AACL,cAAM,WACJ,0BAA0BA,OAAM,EAAE,KAClC,YAAY,EAAE,MAAMA,OAAM,GAAG,CAAC;AAChC,eAAO,oBAAoB;AAAA,UACzB,MAAM,SAAS;AAAA,UACf,MAAM,SAAS;AAAA,UACf,cAAc,SAAS;AAAA,QACzB,CAAC;AAAA,MACH;AAAA,IACF,CAAC;AAAA,EACL;AACF;AAEO,SAAS,UAAU,SAA4C;AACpE,QAAM,SAAS,SAAS,UAAU,QAAQ,IAAI;AAC9C,MAAI,CAAC,QAAQ;AACX,UAAM,IAAI,YAAY;AAAA,MACpB,QAAQ;AAAA,MACR,SACE;AAAA,IACJ,CAAC;AAAA,EACH;AACA,SAAO,iBAAiB;AAAA,IACtB,MAAM;AAAA,IACN,SAAS;AAAA,IACT;AAAA,IACA,GAAG;AAAA,IACH,aAAa,OAAO,WAAW;AAC7B,YAAM,SAAS,CAAC;AAChB,aAAO;AAAA,QACL,GAAG,OAAO,OAAO,yBAAyB,EAAE;AAAA,UAAI,CAAC,aAC/C,wBAAwB;AAAA,YACtB,MAAM,SAAS;AAAA,YACf;AAAA,YACA;AAAA,YACA,gBAAgB;AAAA,UAClB,CAAC;AAAA,QACH;AAAA,MACF;AACA,aAAO;AAAA,QACL,GAAG,OAAO,OAAO,sBAAsB,EAAE;AAAA,UAAI,CAAC,aAC5C,6BAA6B;AAAA,YAC3B,MAAM,SAAS;AAAA,YACf;AAAA,YACA;AAAA,UACF,CAAC;AAAA,QACH;AAAA,MACF;AACA,aAAO;AAAA,IACT;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AACH;AAeA,MAAM,QAAS,CAAC,MAAc,WAA+C;AAC3E,MAAI,KAAK,SAAS,OAAO,GAAG;AAC1B,WAAO,iBAAiB;AAAA,MACtB;AAAA,MACA;AAAA,MACA,WAAW;AAAA,IACb,CAAC;AAAA,EACH;AACA,SAAO,YAAY;AAAA,IACjB;AAAA,IACA;AAAA,EACF,CAAC;AACH;AAgCO,MAAM,MAAiB,OAAO,OAAO,WAAW;AAAA,EACrD;AACF,CAAC;AAED,IAAO,cAAQ;","names":["model"]}
|
package/package.json
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
"genai",
|
|
12
12
|
"generative-ai"
|
|
13
13
|
],
|
|
14
|
-
"version": "1.
|
|
14
|
+
"version": "1.25.0",
|
|
15
15
|
"type": "commonjs",
|
|
16
16
|
"repository": {
|
|
17
17
|
"type": "git",
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
"openai": "^4.95.0"
|
|
25
25
|
},
|
|
26
26
|
"peerDependencies": {
|
|
27
|
-
"genkit": "^1.
|
|
27
|
+
"genkit": "^1.25.0"
|
|
28
28
|
},
|
|
29
29
|
"devDependencies": {
|
|
30
30
|
"@jest/globals": "^29.7.0",
|