@genkit-ai/compat-oai 1.15.5 → 1.16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/deepseek/index.d.mts +5 -0
- package/lib/deepseek/index.d.ts +5 -0
- package/lib/image.d.mts +7 -7
- package/lib/image.d.ts +7 -7
- package/lib/image.js +1 -1
- package/lib/image.js.map +1 -1
- package/lib/image.mjs +1 -1
- package/lib/image.mjs.map +1 -1
- package/lib/index.d.mts +8 -0
- package/lib/index.d.ts +8 -0
- package/lib/index.js +39 -9
- package/lib/index.js.map +1 -1
- package/lib/index.mjs +40 -8
- package/lib/index.mjs.map +1 -1
- package/lib/model.d.mts +2 -2
- package/lib/model.d.ts +2 -2
- package/lib/model.js +5 -6
- package/lib/model.js.map +1 -1
- package/lib/model.mjs +5 -6
- package/lib/model.mjs.map +1 -1
- package/lib/openai/dalle.d.mts +37 -2
- package/lib/openai/dalle.d.ts +37 -2
- package/lib/openai/dalle.js +38 -1
- package/lib/openai/dalle.js.map +1 -1
- package/lib/openai/dalle.mjs +41 -2
- package/lib/openai/dalle.mjs.map +1 -1
- package/lib/openai/gpt.d.mts +172 -0
- package/lib/openai/gpt.d.ts +172 -0
- package/lib/openai/gpt.js +36 -1
- package/lib/openai/gpt.js.map +1 -1
- package/lib/openai/gpt.mjs +36 -1
- package/lib/openai/gpt.mjs.map +1 -1
- package/lib/openai/index.d.mts +3 -0
- package/lib/openai/index.d.ts +3 -0
- package/lib/openai/index.js +2 -1
- package/lib/openai/index.js.map +1 -1
- package/lib/openai/index.mjs +7 -2
- package/lib/openai/index.mjs.map +1 -1
- package/lib/xai/grok-image.d.mts +2 -1
- package/lib/xai/grok-image.d.ts +2 -1
- package/lib/xai/index.d.mts +4 -0
- package/lib/xai/index.d.ts +4 -0
- package/package.json +2 -2
package/lib/openai/gpt.d.ts
CHANGED
|
@@ -1144,6 +1144,178 @@ declare const SUPPORTED_GPT_MODELS: {
|
|
|
1144
1144
|
} & {
|
|
1145
1145
|
store: z.ZodOptional<z.ZodBoolean>;
|
|
1146
1146
|
}, z.ZodTypeAny, "passthrough">>>;
|
|
1147
|
+
readonly 'gpt-5': ModelReference<z.ZodObject<{
|
|
1148
|
+
version: z.ZodOptional<z.ZodString>;
|
|
1149
|
+
maxOutputTokens: z.ZodOptional<z.ZodNumber>;
|
|
1150
|
+
topK: z.ZodOptional<z.ZodNumber>;
|
|
1151
|
+
topP: z.ZodOptional<z.ZodNumber>;
|
|
1152
|
+
stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
1153
|
+
} & {
|
|
1154
|
+
temperature: z.ZodOptional<z.ZodNumber>;
|
|
1155
|
+
frequencyPenalty: z.ZodOptional<z.ZodNumber>;
|
|
1156
|
+
logProbs: z.ZodOptional<z.ZodBoolean>;
|
|
1157
|
+
presencePenalty: z.ZodOptional<z.ZodNumber>;
|
|
1158
|
+
topLogProbs: z.ZodOptional<z.ZodNumber>;
|
|
1159
|
+
} & {
|
|
1160
|
+
store: z.ZodOptional<z.ZodBoolean>;
|
|
1161
|
+
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
|
|
1162
|
+
version: z.ZodOptional<z.ZodString>;
|
|
1163
|
+
maxOutputTokens: z.ZodOptional<z.ZodNumber>;
|
|
1164
|
+
topK: z.ZodOptional<z.ZodNumber>;
|
|
1165
|
+
topP: z.ZodOptional<z.ZodNumber>;
|
|
1166
|
+
stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
1167
|
+
} & {
|
|
1168
|
+
temperature: z.ZodOptional<z.ZodNumber>;
|
|
1169
|
+
frequencyPenalty: z.ZodOptional<z.ZodNumber>;
|
|
1170
|
+
logProbs: z.ZodOptional<z.ZodBoolean>;
|
|
1171
|
+
presencePenalty: z.ZodOptional<z.ZodNumber>;
|
|
1172
|
+
topLogProbs: z.ZodOptional<z.ZodNumber>;
|
|
1173
|
+
} & {
|
|
1174
|
+
store: z.ZodOptional<z.ZodBoolean>;
|
|
1175
|
+
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
|
|
1176
|
+
version: z.ZodOptional<z.ZodString>;
|
|
1177
|
+
maxOutputTokens: z.ZodOptional<z.ZodNumber>;
|
|
1178
|
+
topK: z.ZodOptional<z.ZodNumber>;
|
|
1179
|
+
topP: z.ZodOptional<z.ZodNumber>;
|
|
1180
|
+
stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
1181
|
+
} & {
|
|
1182
|
+
temperature: z.ZodOptional<z.ZodNumber>;
|
|
1183
|
+
frequencyPenalty: z.ZodOptional<z.ZodNumber>;
|
|
1184
|
+
logProbs: z.ZodOptional<z.ZodBoolean>;
|
|
1185
|
+
presencePenalty: z.ZodOptional<z.ZodNumber>;
|
|
1186
|
+
topLogProbs: z.ZodOptional<z.ZodNumber>;
|
|
1187
|
+
} & {
|
|
1188
|
+
store: z.ZodOptional<z.ZodBoolean>;
|
|
1189
|
+
}, z.ZodTypeAny, "passthrough">>>;
|
|
1190
|
+
readonly 'gpt-5-mini': ModelReference<z.ZodObject<{
|
|
1191
|
+
version: z.ZodOptional<z.ZodString>;
|
|
1192
|
+
maxOutputTokens: z.ZodOptional<z.ZodNumber>;
|
|
1193
|
+
topK: z.ZodOptional<z.ZodNumber>;
|
|
1194
|
+
topP: z.ZodOptional<z.ZodNumber>;
|
|
1195
|
+
stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
1196
|
+
} & {
|
|
1197
|
+
temperature: z.ZodOptional<z.ZodNumber>;
|
|
1198
|
+
frequencyPenalty: z.ZodOptional<z.ZodNumber>;
|
|
1199
|
+
logProbs: z.ZodOptional<z.ZodBoolean>;
|
|
1200
|
+
presencePenalty: z.ZodOptional<z.ZodNumber>;
|
|
1201
|
+
topLogProbs: z.ZodOptional<z.ZodNumber>;
|
|
1202
|
+
} & {
|
|
1203
|
+
store: z.ZodOptional<z.ZodBoolean>;
|
|
1204
|
+
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
|
|
1205
|
+
version: z.ZodOptional<z.ZodString>;
|
|
1206
|
+
maxOutputTokens: z.ZodOptional<z.ZodNumber>;
|
|
1207
|
+
topK: z.ZodOptional<z.ZodNumber>;
|
|
1208
|
+
topP: z.ZodOptional<z.ZodNumber>;
|
|
1209
|
+
stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
1210
|
+
} & {
|
|
1211
|
+
temperature: z.ZodOptional<z.ZodNumber>;
|
|
1212
|
+
frequencyPenalty: z.ZodOptional<z.ZodNumber>;
|
|
1213
|
+
logProbs: z.ZodOptional<z.ZodBoolean>;
|
|
1214
|
+
presencePenalty: z.ZodOptional<z.ZodNumber>;
|
|
1215
|
+
topLogProbs: z.ZodOptional<z.ZodNumber>;
|
|
1216
|
+
} & {
|
|
1217
|
+
store: z.ZodOptional<z.ZodBoolean>;
|
|
1218
|
+
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
|
|
1219
|
+
version: z.ZodOptional<z.ZodString>;
|
|
1220
|
+
maxOutputTokens: z.ZodOptional<z.ZodNumber>;
|
|
1221
|
+
topK: z.ZodOptional<z.ZodNumber>;
|
|
1222
|
+
topP: z.ZodOptional<z.ZodNumber>;
|
|
1223
|
+
stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
1224
|
+
} & {
|
|
1225
|
+
temperature: z.ZodOptional<z.ZodNumber>;
|
|
1226
|
+
frequencyPenalty: z.ZodOptional<z.ZodNumber>;
|
|
1227
|
+
logProbs: z.ZodOptional<z.ZodBoolean>;
|
|
1228
|
+
presencePenalty: z.ZodOptional<z.ZodNumber>;
|
|
1229
|
+
topLogProbs: z.ZodOptional<z.ZodNumber>;
|
|
1230
|
+
} & {
|
|
1231
|
+
store: z.ZodOptional<z.ZodBoolean>;
|
|
1232
|
+
}, z.ZodTypeAny, "passthrough">>>;
|
|
1233
|
+
readonly 'gpt-5-nano': ModelReference<z.ZodObject<{
|
|
1234
|
+
version: z.ZodOptional<z.ZodString>;
|
|
1235
|
+
maxOutputTokens: z.ZodOptional<z.ZodNumber>;
|
|
1236
|
+
topK: z.ZodOptional<z.ZodNumber>;
|
|
1237
|
+
topP: z.ZodOptional<z.ZodNumber>;
|
|
1238
|
+
stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
1239
|
+
} & {
|
|
1240
|
+
temperature: z.ZodOptional<z.ZodNumber>;
|
|
1241
|
+
frequencyPenalty: z.ZodOptional<z.ZodNumber>;
|
|
1242
|
+
logProbs: z.ZodOptional<z.ZodBoolean>;
|
|
1243
|
+
presencePenalty: z.ZodOptional<z.ZodNumber>;
|
|
1244
|
+
topLogProbs: z.ZodOptional<z.ZodNumber>;
|
|
1245
|
+
} & {
|
|
1246
|
+
store: z.ZodOptional<z.ZodBoolean>;
|
|
1247
|
+
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
|
|
1248
|
+
version: z.ZodOptional<z.ZodString>;
|
|
1249
|
+
maxOutputTokens: z.ZodOptional<z.ZodNumber>;
|
|
1250
|
+
topK: z.ZodOptional<z.ZodNumber>;
|
|
1251
|
+
topP: z.ZodOptional<z.ZodNumber>;
|
|
1252
|
+
stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
1253
|
+
} & {
|
|
1254
|
+
temperature: z.ZodOptional<z.ZodNumber>;
|
|
1255
|
+
frequencyPenalty: z.ZodOptional<z.ZodNumber>;
|
|
1256
|
+
logProbs: z.ZodOptional<z.ZodBoolean>;
|
|
1257
|
+
presencePenalty: z.ZodOptional<z.ZodNumber>;
|
|
1258
|
+
topLogProbs: z.ZodOptional<z.ZodNumber>;
|
|
1259
|
+
} & {
|
|
1260
|
+
store: z.ZodOptional<z.ZodBoolean>;
|
|
1261
|
+
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
|
|
1262
|
+
version: z.ZodOptional<z.ZodString>;
|
|
1263
|
+
maxOutputTokens: z.ZodOptional<z.ZodNumber>;
|
|
1264
|
+
topK: z.ZodOptional<z.ZodNumber>;
|
|
1265
|
+
topP: z.ZodOptional<z.ZodNumber>;
|
|
1266
|
+
stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
1267
|
+
} & {
|
|
1268
|
+
temperature: z.ZodOptional<z.ZodNumber>;
|
|
1269
|
+
frequencyPenalty: z.ZodOptional<z.ZodNumber>;
|
|
1270
|
+
logProbs: z.ZodOptional<z.ZodBoolean>;
|
|
1271
|
+
presencePenalty: z.ZodOptional<z.ZodNumber>;
|
|
1272
|
+
topLogProbs: z.ZodOptional<z.ZodNumber>;
|
|
1273
|
+
} & {
|
|
1274
|
+
store: z.ZodOptional<z.ZodBoolean>;
|
|
1275
|
+
}, z.ZodTypeAny, "passthrough">>>;
|
|
1276
|
+
readonly 'gpt-5-chat-latest': ModelReference<z.ZodObject<{
|
|
1277
|
+
version: z.ZodOptional<z.ZodString>;
|
|
1278
|
+
maxOutputTokens: z.ZodOptional<z.ZodNumber>;
|
|
1279
|
+
topK: z.ZodOptional<z.ZodNumber>;
|
|
1280
|
+
topP: z.ZodOptional<z.ZodNumber>;
|
|
1281
|
+
stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
1282
|
+
} & {
|
|
1283
|
+
temperature: z.ZodOptional<z.ZodNumber>;
|
|
1284
|
+
frequencyPenalty: z.ZodOptional<z.ZodNumber>;
|
|
1285
|
+
logProbs: z.ZodOptional<z.ZodBoolean>;
|
|
1286
|
+
presencePenalty: z.ZodOptional<z.ZodNumber>;
|
|
1287
|
+
topLogProbs: z.ZodOptional<z.ZodNumber>;
|
|
1288
|
+
} & {
|
|
1289
|
+
store: z.ZodOptional<z.ZodBoolean>;
|
|
1290
|
+
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
|
|
1291
|
+
version: z.ZodOptional<z.ZodString>;
|
|
1292
|
+
maxOutputTokens: z.ZodOptional<z.ZodNumber>;
|
|
1293
|
+
topK: z.ZodOptional<z.ZodNumber>;
|
|
1294
|
+
topP: z.ZodOptional<z.ZodNumber>;
|
|
1295
|
+
stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
1296
|
+
} & {
|
|
1297
|
+
temperature: z.ZodOptional<z.ZodNumber>;
|
|
1298
|
+
frequencyPenalty: z.ZodOptional<z.ZodNumber>;
|
|
1299
|
+
logProbs: z.ZodOptional<z.ZodBoolean>;
|
|
1300
|
+
presencePenalty: z.ZodOptional<z.ZodNumber>;
|
|
1301
|
+
topLogProbs: z.ZodOptional<z.ZodNumber>;
|
|
1302
|
+
} & {
|
|
1303
|
+
store: z.ZodOptional<z.ZodBoolean>;
|
|
1304
|
+
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
|
|
1305
|
+
version: z.ZodOptional<z.ZodString>;
|
|
1306
|
+
maxOutputTokens: z.ZodOptional<z.ZodNumber>;
|
|
1307
|
+
topK: z.ZodOptional<z.ZodNumber>;
|
|
1308
|
+
topP: z.ZodOptional<z.ZodNumber>;
|
|
1309
|
+
stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
1310
|
+
} & {
|
|
1311
|
+
temperature: z.ZodOptional<z.ZodNumber>;
|
|
1312
|
+
frequencyPenalty: z.ZodOptional<z.ZodNumber>;
|
|
1313
|
+
logProbs: z.ZodOptional<z.ZodBoolean>;
|
|
1314
|
+
presencePenalty: z.ZodOptional<z.ZodNumber>;
|
|
1315
|
+
topLogProbs: z.ZodOptional<z.ZodNumber>;
|
|
1316
|
+
} & {
|
|
1317
|
+
store: z.ZodOptional<z.ZodBoolean>;
|
|
1318
|
+
}, z.ZodTypeAny, "passthrough">>>;
|
|
1147
1319
|
};
|
|
1148
1320
|
|
|
1149
1321
|
export { OpenAIChatCompletionConfigSchema, SUPPORTED_GPT_MODELS, openAIModelRef };
|
package/lib/openai/gpt.js
CHANGED
|
@@ -200,6 +200,37 @@ const gpt35Turbo1106 = openAIModelRef({
|
|
|
200
200
|
name: "openai/gpt-3.5-turbo-1106",
|
|
201
201
|
info: GPT_35_MODEL_INFO
|
|
202
202
|
});
|
|
203
|
+
const GPT_5_MODEL_INFO = {
|
|
204
|
+
supports: {
|
|
205
|
+
multiturn: true,
|
|
206
|
+
tools: true,
|
|
207
|
+
media: true,
|
|
208
|
+
systemRole: true,
|
|
209
|
+
output: ["text", "json"]
|
|
210
|
+
}
|
|
211
|
+
};
|
|
212
|
+
const gpt5 = openAIModelRef({
|
|
213
|
+
name: "openai/gpt-5",
|
|
214
|
+
info: GPT_5_MODEL_INFO
|
|
215
|
+
});
|
|
216
|
+
const gpt5Mini = openAIModelRef({
|
|
217
|
+
name: "openai/gpt-5-mini",
|
|
218
|
+
info: GPT_5_MODEL_INFO
|
|
219
|
+
});
|
|
220
|
+
const gpt5Nano = openAIModelRef({
|
|
221
|
+
name: "openai/gpt-5-nano",
|
|
222
|
+
info: GPT_5_MODEL_INFO
|
|
223
|
+
});
|
|
224
|
+
const gpt5ChatLatest = openAIModelRef({
|
|
225
|
+
name: "openai/gpt-5-chat-latest",
|
|
226
|
+
info: {
|
|
227
|
+
supports: {
|
|
228
|
+
...GPT_5_MODEL_INFO.supports,
|
|
229
|
+
tools: false,
|
|
230
|
+
output: ["text"]
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
});
|
|
203
234
|
const SUPPORTED_GPT_MODELS = {
|
|
204
235
|
"gpt-4.5": gpt45,
|
|
205
236
|
"gpt-4.5-preview": gpt45Preview,
|
|
@@ -225,7 +256,11 @@ const SUPPORTED_GPT_MODELS = {
|
|
|
225
256
|
"gpt-4-32k-0613": gpt432k0613,
|
|
226
257
|
"gpt-3.5-turbo": gpt35Turbo,
|
|
227
258
|
"gpt-3.5-turbo-0125": gpt35Turbo0125,
|
|
228
|
-
"gpt-3.5-turbo-1106": gpt35Turbo1106
|
|
259
|
+
"gpt-3.5-turbo-1106": gpt35Turbo1106,
|
|
260
|
+
"gpt-5": gpt5,
|
|
261
|
+
"gpt-5-mini": gpt5Mini,
|
|
262
|
+
"gpt-5-nano": gpt5Nano,
|
|
263
|
+
"gpt-5-chat-latest": gpt5ChatLatest
|
|
229
264
|
};
|
|
230
265
|
// Annotate the CommonJS export names for ESM import in node:
|
|
231
266
|
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 },\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 });\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\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} 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 },\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 });\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"]}
|
package/lib/openai/gpt.mjs
CHANGED
|
@@ -175,6 +175,37 @@ const gpt35Turbo1106 = openAIModelRef({
|
|
|
175
175
|
name: "openai/gpt-3.5-turbo-1106",
|
|
176
176
|
info: GPT_35_MODEL_INFO
|
|
177
177
|
});
|
|
178
|
+
const GPT_5_MODEL_INFO = {
|
|
179
|
+
supports: {
|
|
180
|
+
multiturn: true,
|
|
181
|
+
tools: true,
|
|
182
|
+
media: true,
|
|
183
|
+
systemRole: true,
|
|
184
|
+
output: ["text", "json"]
|
|
185
|
+
}
|
|
186
|
+
};
|
|
187
|
+
const gpt5 = openAIModelRef({
|
|
188
|
+
name: "openai/gpt-5",
|
|
189
|
+
info: GPT_5_MODEL_INFO
|
|
190
|
+
});
|
|
191
|
+
const gpt5Mini = openAIModelRef({
|
|
192
|
+
name: "openai/gpt-5-mini",
|
|
193
|
+
info: GPT_5_MODEL_INFO
|
|
194
|
+
});
|
|
195
|
+
const gpt5Nano = openAIModelRef({
|
|
196
|
+
name: "openai/gpt-5-nano",
|
|
197
|
+
info: GPT_5_MODEL_INFO
|
|
198
|
+
});
|
|
199
|
+
const gpt5ChatLatest = openAIModelRef({
|
|
200
|
+
name: "openai/gpt-5-chat-latest",
|
|
201
|
+
info: {
|
|
202
|
+
supports: {
|
|
203
|
+
...GPT_5_MODEL_INFO.supports,
|
|
204
|
+
tools: false,
|
|
205
|
+
output: ["text"]
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
});
|
|
178
209
|
const SUPPORTED_GPT_MODELS = {
|
|
179
210
|
"gpt-4.5": gpt45,
|
|
180
211
|
"gpt-4.5-preview": gpt45Preview,
|
|
@@ -200,7 +231,11 @@ const SUPPORTED_GPT_MODELS = {
|
|
|
200
231
|
"gpt-4-32k-0613": gpt432k0613,
|
|
201
232
|
"gpt-3.5-turbo": gpt35Turbo,
|
|
202
233
|
"gpt-3.5-turbo-0125": gpt35Turbo0125,
|
|
203
|
-
"gpt-3.5-turbo-1106": gpt35Turbo1106
|
|
234
|
+
"gpt-3.5-turbo-1106": gpt35Turbo1106,
|
|
235
|
+
"gpt-5": gpt5,
|
|
236
|
+
"gpt-5-mini": gpt5Mini,
|
|
237
|
+
"gpt-5-nano": gpt5Nano,
|
|
238
|
+
"gpt-5-chat-latest": gpt5ChatLatest
|
|
204
239
|
};
|
|
205
240
|
export {
|
|
206
241
|
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 },\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 });\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\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} as const;\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../src/openai/gpt.ts"],"sourcesContent":["/**\n * Copyright 2024 The Fire Company\n * Copyright 2024 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { z } from 'genkit';\nimport { ModelInfo, ModelReference } from 'genkit/model';\nimport { 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 },\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 });\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":[]}
|
package/lib/openai/index.d.mts
CHANGED
|
@@ -13,6 +13,9 @@ import 'openai';
|
|
|
13
13
|
import 'openai/resources/audio/index.mjs';
|
|
14
14
|
import 'openai/resources/images.mjs';
|
|
15
15
|
import 'genkit/registry';
|
|
16
|
+
import '../embedder.mjs';
|
|
17
|
+
import '../model.mjs';
|
|
18
|
+
import 'openai/resources/index.mjs';
|
|
16
19
|
|
|
17
20
|
/**
|
|
18
21
|
* Copyright 2024 The Fire Company
|
package/lib/openai/index.d.ts
CHANGED
|
@@ -13,6 +13,9 @@ import 'openai';
|
|
|
13
13
|
import 'openai/resources/audio/index.mjs';
|
|
14
14
|
import 'openai/resources/images.mjs';
|
|
15
15
|
import 'genkit/registry';
|
|
16
|
+
import '../embedder.js';
|
|
17
|
+
import '../model.js';
|
|
18
|
+
import 'openai/resources/index.mjs';
|
|
16
19
|
|
|
17
20
|
/**
|
|
18
21
|
* Copyright 2024 The Fire Company
|
package/lib/openai/index.js
CHANGED
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 Genkit,\n modelActionMetadata,\n ModelReference,\n z,\n} from 'genkit';\nimport { GenkitPlugin } 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 { openAIImageModelRef, SUPPORTED_IMAGE_MODELS } 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 ai: Genkit,\n client: OpenAI,\n actionType: ActionType,\n actionName: string\n) => {\n if (actionType === 'embedder') {\n defineCompatOpenAIEmbedder({ ai, name: `openai/${actionName}`, client });\n } else if (\n actionName.includes('gpt-image-1') ||\n actionName.includes('dall-e')\n ) {\n const modelRef = openAIImageModelRef({ name: `openai/${actionName}` });\n defineCompatOpenAIImageModel({ ai, name: modelRef.name, client, modelRef });\n } else if (actionName.includes('tts')) {\n const modelRef = openAISpeechModelRef({ name: `openai/${actionName}` });\n defineCompatOpenAISpeechModel({\n ai,\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: `openai/${actionName}`,\n });\n defineCompatOpenAITranscriptionModel({\n ai,\n name: modelRef.name,\n client,\n modelRef,\n });\n } else {\n const modelRef = openAIModelRef({ name: `openai/${actionName}` });\n defineCompatOpenAIModel({\n ai,\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: `openai/${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: `openai/${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: `openai/${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: `openai/${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] ??\n openAIModelRef({ name: `openai/${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): GenkitPlugin {\n return openAICompatible({\n name: 'openai',\n ...options,\n initializer: async (ai, client) => {\n Object.values(SUPPORTED_GPT_MODELS).forEach((modelRef) =>\n defineCompatOpenAIModel({ ai, name: modelRef.name, client, modelRef })\n );\n Object.values(SUPPORTED_EMBEDDING_MODELS).forEach((embedderRef) =>\n defineCompatOpenAIEmbedder({\n ai,\n name: embedderRef.name,\n client,\n embedderRef,\n })\n );\n Object.values(SUPPORTED_TTS_MODELS).forEach((modelRef) =>\n defineCompatOpenAISpeechModel({\n ai,\n name: modelRef.name,\n client,\n modelRef,\n })\n );\n Object.values(SUPPORTED_STT_MODELS).forEach((modelRef) =>\n defineCompatOpenAITranscriptionModel({\n ai,\n name: modelRef.name,\n client,\n modelRef,\n })\n );\n Object.values(SUPPORTED_IMAGE_MODELS).forEach((modelRef) =>\n defineCompatOpenAIImageModel({\n ai,\n name: modelRef.name,\n client,\n modelRef,\n })\n );\n },\n resolver,\n listActions,\n });\n}\n\nexport type OpenAIPlugin = {\n (params?: OpenAIPluginOptions): GenkitPlugin;\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: `openai/${name}`,\n config,\n });\n }\n if (name.includes('tts')) {\n return openAISpeechModelRef({\n name: `openai/${name}`,\n config,\n });\n }\n if (name.includes('whisper') || name.includes('transcribe')) {\n return openAITranscriptionModelRef({\n name: `openai/${name}`,\n config,\n });\n }\n return openAIModelRef({\n name: `openai/${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: `openai/${name}`,\n config,\n configSchema: TextEmbeddingConfigSchema,\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 Genkit,\n modelActionMetadata,\n ModelReference,\n z,\n} from 'genkit';\nimport { GenkitPlugin } 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 ai: Genkit,\n client: OpenAI,\n actionType: ActionType,\n actionName: string\n) => {\n if (actionType === 'embedder') {\n defineCompatOpenAIEmbedder({ ai, name: `openai/${actionName}`, client });\n } else if (\n actionName.includes('gpt-image-1') ||\n actionName.includes('dall-e')\n ) {\n const modelRef = openAIImageModelRef({ name: `openai/${actionName}` });\n defineCompatOpenAIImageModel({ ai, name: modelRef.name, client, modelRef });\n } else if (actionName.includes('tts')) {\n const modelRef = openAISpeechModelRef({ name: `openai/${actionName}` });\n defineCompatOpenAISpeechModel({\n ai,\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: `openai/${actionName}`,\n });\n defineCompatOpenAITranscriptionModel({\n ai,\n name: modelRef.name,\n client,\n modelRef,\n });\n } else {\n const modelRef = openAIModelRef({ name: `openai/${actionName}` });\n defineCompatOpenAIModel({\n ai,\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: `openai/${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: `openai/${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: `openai/${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: `openai/${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] ??\n openAIModelRef({ name: `openai/${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): GenkitPlugin {\n return openAICompatible({\n name: 'openai',\n ...options,\n initializer: async (ai, client) => {\n Object.values(SUPPORTED_GPT_MODELS).forEach((modelRef) =>\n defineCompatOpenAIModel({ ai, name: modelRef.name, client, modelRef })\n );\n Object.values(SUPPORTED_EMBEDDING_MODELS).forEach((embedderRef) =>\n defineCompatOpenAIEmbedder({\n ai,\n name: embedderRef.name,\n client,\n embedderRef,\n })\n );\n Object.values(SUPPORTED_TTS_MODELS).forEach((modelRef) =>\n defineCompatOpenAISpeechModel({\n ai,\n name: modelRef.name,\n client,\n modelRef,\n })\n );\n Object.values(SUPPORTED_STT_MODELS).forEach((modelRef) =>\n defineCompatOpenAITranscriptionModel({\n ai,\n name: modelRef.name,\n client,\n modelRef,\n })\n );\n Object.values(SUPPORTED_IMAGE_MODELS).forEach((modelRef) =>\n defineCompatOpenAIImageModel({\n ai,\n name: modelRef.name,\n client,\n modelRef,\n requestBuilder: modelRef.name.includes('gpt-image-1')\n ? gptImage1RequestBuilder\n : undefined,\n })\n );\n },\n resolver,\n listActions,\n });\n}\n\nexport type OpenAIPlugin = {\n (params?: OpenAIPluginOptions): GenkitPlugin;\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: `openai/${name}`,\n config,\n });\n }\n if (name.includes('tts')) {\n return openAISpeechModelRef({\n name: `openai/${name}`,\n config,\n });\n }\n if (name.includes('whisper') || name.includes('transcribe')) {\n return openAITranscriptionModelRef({\n name: `openai/${name}`,\n config,\n });\n }\n return openAIModelRef({\n name: `openai/${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: `openai/${name}`,\n config,\n configSchema: TextEmbeddingConfigSchema,\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":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAiBA,oBASO;AAIP,mBAKO;AACP,sBAA2C;AAC3C,mBAGO;AACP,eAAgD;AAChD,mBAAwC;AACxC,mBAIO;AACP,IAAAA,mBAGO;AACP,iBAIO;AACP,iBAA2D;AAC3D,qBAGO;AAIP,MAAM,6BAA6B,CAAC,WAAW,WAAW,OAAO;AAEjE,MAAM,WAAW,OACf,IACA,QACA,YACA,eACG;AACH,MAAI,eAAe,YAAY;AAC7B,oDAA2B,EAAE,IAAI,MAAM,UAAU,UAAU,IAAI,OAAO,CAAC;AAAA,EACzE,WACE,WAAW,SAAS,aAAa,KACjC,WAAW,SAAS,QAAQ,GAC5B;AACA,UAAM,eAAW,kCAAoB,EAAE,MAAM,UAAU,UAAU,GAAG,CAAC;AACrE,mDAA6B,EAAE,IAAI,MAAM,SAAS,MAAM,QAAQ,SAAS,CAAC;AAAA,EAC5E,WAAW,WAAW,SAAS,KAAK,GAAG;AACrC,UAAM,eAAW,iCAAqB,EAAE,MAAM,UAAU,UAAU,GAAG,CAAC;AACtE,oDAA8B;AAAA,MAC5B;AAAA,MACA,MAAM,SAAS;AAAA,MACf;AAAA,MACA;AAAA,IACF,CAAC;AAAA,EACH,WACE,WAAW,SAAS,SAAS,KAC7B,WAAW,SAAS,YAAY,GAChC;AACA,UAAM,eAAW,4CAA4B;AAAA,MAC3C,MAAM,UAAU,UAAU;AAAA,IAC5B,CAAC;AACD,2DAAqC;AAAA,MACnC;AAAA,MACA,MAAM,SAAS;AAAA,MACf;AAAA,MACA;AAAA,IACF,CAAC;AAAA,EACH,OAAO;AACL,UAAM,eAAW,2BAAe,EAAE,MAAM,UAAU,UAAU,GAAG,CAAC;AAChE,8CAAwB;AAAA,MACtB;AAAA,MACA,MAAM,SAAS;AAAA,MACf;AAAA,MACA;AAAA,IACF,CAAC;AAAA,EACH;AACF;AAEA,SAAS,mBAAmBC,QAA8B;AACxD,SAAO,CAAC,2BAA2B,KAAK,CAAC,MAAMA,OAAM,GAAG,SAAS,CAAC,CAAC;AACrE;AAEA,MAAM,cAAc,OAAO,WAA8C;AACvE,SAAO,MAAM,OAAO,OAAO,KAAK,EAAE;AAAA,IAAK,CAAC,aACtC,SAAS,KAAK,OAAO,kBAAkB,EAAE,IAAI,CAACA,WAAwB;AACpE,UAAIA,OAAM,GAAG,SAAS,WAAW,GAAG;AAClC,mBAAO,sCAAuB;AAAA,UAC5B,MAAM,UAAUA,OAAM,EAAE;AAAA,UACxB,cAAc;AAAA,UACd,MAAM,4CAA2BA,OAAM,EAAE,GAAG;AAAA,QAC9C,CAAC;AAAA,MACH,WACEA,OAAM,GAAG,SAAS,aAAa,KAC/BA,OAAM,GAAG,SAAS,QAAQ,GAC1B;AACA,cAAM,WACJ,oCAAuBA,OAAM,EAAE,SAC/B,kCAAoB,EAAE,MAAM,UAAUA,OAAM,EAAE,GAAG,CAAC;AACpD,mBAAO,mCAAoB;AAAA,UACzB,MAAM,SAAS;AAAA,UACf,MAAM,SAAS;AAAA,UACf,cAAc,SAAS;AAAA,QACzB,CAAC;AAAA,MACH,WAAWA,OAAM,GAAG,SAAS,KAAK,GAAG;AACnC,cAAM,WACJ,gCAAqBA,OAAM,EAAE,SAC7B,iCAAqB,EAAE,MAAM,UAAUA,OAAM,EAAE,GAAG,CAAC;AACrD,mBAAO,mCAAoB;AAAA,UACzB,MAAM,SAAS;AAAA,UACf,MAAM,SAAS;AAAA,UACf,cAAc,SAAS;AAAA,QACzB,CAAC;AAAA,MACH,WACEA,OAAM,GAAG,SAAS,SAAS,KAC3BA,OAAM,GAAG,SAAS,YAAY,GAC9B;AACA,cAAM,WACJ,oCAAqBA,OAAM,EAAE,SAC7B,4CAA4B,EAAE,MAAM,UAAUA,OAAM,EAAE,GAAG,CAAC;AAC5D,mBAAO,mCAAoB;AAAA,UACzB,MAAM,SAAS;AAAA,UACf,MAAM,SAAS;AAAA,UACf,cAAc,SAAS;AAAA,QACzB,CAAC;AAAA,MACH,OAAO;AACL,cAAM,WACJ,gCAAqBA,OAAM,EAAE,SAC7B,2BAAe,EAAE,MAAM,UAAUA,OAAM,EAAE,GAAG,CAAC;AAC/C,mBAAO,mCAAoB;AAAA,UACzB,MAAM,SAAS;AAAA,UACf,MAAM,SAAS;AAAA,UACf,cAAc,SAAS;AAAA,QACzB,CAAC;AAAA,MACH;AAAA,IACF,CAAC;AAAA,EACH;AACF;AAEO,SAAS,aAAa,SAA6C;AACxE,aAAO,2BAAiB;AAAA,IACtB,MAAM;AAAA,IACN,GAAG;AAAA,IACH,aAAa,OAAO,IAAI,WAAW;AACjC,aAAO,OAAO,+BAAoB,EAAE;AAAA,QAAQ,CAAC,iBAC3C,sCAAwB,EAAE,IAAI,MAAM,SAAS,MAAM,QAAQ,SAAS,CAAC;AAAA,MACvE;AACA,aAAO,OAAO,2CAA0B,EAAE;AAAA,QAAQ,CAACC,qBACjD,4CAA2B;AAAA,UACzB;AAAA,UACA,MAAMA,aAAY;AAAA,UAClB;AAAA,UACA,aAAAA;AAAA,QACF,CAAC;AAAA,MACH;AACA,aAAO,OAAO,+BAAoB,EAAE;AAAA,QAAQ,CAAC,iBAC3C,4CAA8B;AAAA,UAC5B;AAAA,UACA,MAAM,SAAS;AAAA,UACf;AAAA,UACA;AAAA,QACF,CAAC;AAAA,MACH;AACA,aAAO,OAAO,mCAAoB,EAAE;AAAA,QAAQ,CAAC,iBAC3C,mDAAqC;AAAA,UACnC;AAAA,UACA,MAAM,SAAS;AAAA,UACf;AAAA,UACA;AAAA,QACF,CAAC;AAAA,MACH;AACA,aAAO,OAAO,mCAAsB,EAAE;AAAA,QAAQ,CAAC,iBAC7C,2CAA6B;AAAA,UAC3B;AAAA,UACA,MAAM,SAAS;AAAA,UACf;AAAA,UACA;AAAA,UACA,gBAAgB,SAAS,KAAK,SAAS,aAAa,IAChD,uCACA;AAAA,QACN,CAAC;AAAA,MACH;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AACH;AA0CA,MAAM,QAAS,CAAC,MAAc,WAA+C;AAC3E,MAAI,KAAK,SAAS,aAAa,KAAK,KAAK,SAAS,QAAQ,GAAG;AAC3D,eAAO,kCAAoB;AAAA,MACzB,MAAM,UAAU,IAAI;AAAA,MACpB;AAAA,IACF,CAAC;AAAA,EACH;AACA,MAAI,KAAK,SAAS,KAAK,GAAG;AACxB,eAAO,iCAAqB;AAAA,MAC1B,MAAM,UAAU,IAAI;AAAA,MACpB;AAAA,IACF,CAAC;AAAA,EACH;AACA,MAAI,KAAK,SAAS,SAAS,KAAK,KAAK,SAAS,YAAY,GAAG;AAC3D,eAAO,4CAA4B;AAAA,MACjC,MAAM,UAAU,IAAI;AAAA,MACpB;AAAA,IACF,CAAC;AAAA,EACH;AACA,aAAO,2BAAe;AAAA,IACpB,MAAM,UAAU,IAAI;AAAA,IACpB;AAAA,EACF,CAAC;AACH;AAEA,MAAM,WAAY,CAChB,MACA,WACoC;AACpC,aAAO,2BAAY;AAAA,IACjB,MAAM,UAAU,IAAI;AAAA,IACpB;AAAA,IACA,cAAc;AAAA,EAChB,CAAC;AACH;AA+BO,MAAM,SAAuB,OAAO,OAAO,cAAc;AAAA,EAC9D;AAAA,EACA;AACF,CAAC;AAED,IAAO,iBAAQ;","names":["import_embedder","model","embedderRef"]}
|
package/lib/openai/index.mjs
CHANGED
|
@@ -13,7 +13,11 @@ import {
|
|
|
13
13
|
} from "../image.js";
|
|
14
14
|
import { openAICompatible } from "../index.js";
|
|
15
15
|
import { defineCompatOpenAIModel } from "../model.js";
|
|
16
|
-
import {
|
|
16
|
+
import {
|
|
17
|
+
gptImage1RequestBuilder,
|
|
18
|
+
openAIImageModelRef,
|
|
19
|
+
SUPPORTED_IMAGE_MODELS
|
|
20
|
+
} from "./dalle.js";
|
|
17
21
|
import {
|
|
18
22
|
SUPPORTED_EMBEDDING_MODELS,
|
|
19
23
|
TextEmbeddingConfigSchema
|
|
@@ -143,7 +147,8 @@ function openAIPlugin(options) {
|
|
|
143
147
|
ai,
|
|
144
148
|
name: modelRef.name,
|
|
145
149
|
client,
|
|
146
|
-
modelRef
|
|
150
|
+
modelRef,
|
|
151
|
+
requestBuilder: modelRef.name.includes("gpt-image-1") ? gptImage1RequestBuilder : void 0
|
|
147
152
|
})
|
|
148
153
|
);
|
|
149
154
|
},
|
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 Genkit,\n modelActionMetadata,\n ModelReference,\n z,\n} from 'genkit';\nimport { GenkitPlugin } 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 { openAIImageModelRef, SUPPORTED_IMAGE_MODELS } 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 ai: Genkit,\n client: OpenAI,\n actionType: ActionType,\n actionName: string\n) => {\n if (actionType === 'embedder') {\n defineCompatOpenAIEmbedder({ ai, name: `openai/${actionName}`, client });\n } else if (\n actionName.includes('gpt-image-1') ||\n actionName.includes('dall-e')\n ) {\n const modelRef = openAIImageModelRef({ name: `openai/${actionName}` });\n defineCompatOpenAIImageModel({ ai, name: modelRef.name, client, modelRef });\n } else if (actionName.includes('tts')) {\n const modelRef = openAISpeechModelRef({ name: `openai/${actionName}` });\n defineCompatOpenAISpeechModel({\n ai,\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: `openai/${actionName}`,\n });\n defineCompatOpenAITranscriptionModel({\n ai,\n name: modelRef.name,\n client,\n modelRef,\n });\n } else {\n const modelRef = openAIModelRef({ name: `openai/${actionName}` });\n defineCompatOpenAIModel({\n ai,\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: `openai/${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: `openai/${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: `openai/${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: `openai/${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] ??\n openAIModelRef({ name: `openai/${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): GenkitPlugin {\n return openAICompatible({\n name: 'openai',\n ...options,\n initializer: async (ai, client) => {\n Object.values(SUPPORTED_GPT_MODELS).forEach((modelRef) =>\n defineCompatOpenAIModel({ ai, name: modelRef.name, client, modelRef })\n );\n Object.values(SUPPORTED_EMBEDDING_MODELS).forEach((embedderRef) =>\n defineCompatOpenAIEmbedder({\n ai,\n name: embedderRef.name,\n client,\n embedderRef,\n })\n );\n Object.values(SUPPORTED_TTS_MODELS).forEach((modelRef) =>\n defineCompatOpenAISpeechModel({\n ai,\n name: modelRef.name,\n client,\n modelRef,\n })\n );\n Object.values(SUPPORTED_STT_MODELS).forEach((modelRef) =>\n defineCompatOpenAITranscriptionModel({\n ai,\n name: modelRef.name,\n client,\n modelRef,\n })\n );\n Object.values(SUPPORTED_IMAGE_MODELS).forEach((modelRef) =>\n defineCompatOpenAIImageModel({\n ai,\n name: modelRef.name,\n client,\n modelRef,\n })\n );\n },\n resolver,\n listActions,\n });\n}\n\nexport type OpenAIPlugin = {\n (params?: OpenAIPluginOptions): GenkitPlugin;\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: `openai/${name}`,\n config,\n });\n }\n if (name.includes('tts')) {\n return openAISpeechModelRef({\n name: `openai/${name}`,\n config,\n });\n }\n if (name.includes('whisper') || name.includes('transcribe')) {\n return openAITranscriptionModelRef({\n name: `openai/${name}`,\n config,\n });\n }\n return openAIModelRef({\n name: `openai/${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: `openai/${name}`,\n config,\n configSchema: TextEmbeddingConfigSchema,\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 Genkit,\n modelActionMetadata,\n ModelReference,\n z,\n} from 'genkit';\nimport { GenkitPlugin } 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 ai: Genkit,\n client: OpenAI,\n actionType: ActionType,\n actionName: string\n) => {\n if (actionType === 'embedder') {\n defineCompatOpenAIEmbedder({ ai, name: `openai/${actionName}`, client });\n } else if (\n actionName.includes('gpt-image-1') ||\n actionName.includes('dall-e')\n ) {\n const modelRef = openAIImageModelRef({ name: `openai/${actionName}` });\n defineCompatOpenAIImageModel({ ai, name: modelRef.name, client, modelRef });\n } else if (actionName.includes('tts')) {\n const modelRef = openAISpeechModelRef({ name: `openai/${actionName}` });\n defineCompatOpenAISpeechModel({\n ai,\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: `openai/${actionName}`,\n });\n defineCompatOpenAITranscriptionModel({\n ai,\n name: modelRef.name,\n client,\n modelRef,\n });\n } else {\n const modelRef = openAIModelRef({ name: `openai/${actionName}` });\n defineCompatOpenAIModel({\n ai,\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: `openai/${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: `openai/${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: `openai/${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: `openai/${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] ??\n openAIModelRef({ name: `openai/${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): GenkitPlugin {\n return openAICompatible({\n name: 'openai',\n ...options,\n initializer: async (ai, client) => {\n Object.values(SUPPORTED_GPT_MODELS).forEach((modelRef) =>\n defineCompatOpenAIModel({ ai, name: modelRef.name, client, modelRef })\n );\n Object.values(SUPPORTED_EMBEDDING_MODELS).forEach((embedderRef) =>\n defineCompatOpenAIEmbedder({\n ai,\n name: embedderRef.name,\n client,\n embedderRef,\n })\n );\n Object.values(SUPPORTED_TTS_MODELS).forEach((modelRef) =>\n defineCompatOpenAISpeechModel({\n ai,\n name: modelRef.name,\n client,\n modelRef,\n })\n );\n Object.values(SUPPORTED_STT_MODELS).forEach((modelRef) =>\n defineCompatOpenAITranscriptionModel({\n ai,\n name: modelRef.name,\n client,\n modelRef,\n })\n );\n Object.values(SUPPORTED_IMAGE_MODELS).forEach((modelRef) =>\n defineCompatOpenAIImageModel({\n ai,\n name: modelRef.name,\n client,\n modelRef,\n requestBuilder: modelRef.name.includes('gpt-image-1')\n ? gptImage1RequestBuilder\n : undefined,\n })\n );\n },\n resolver,\n listActions,\n });\n}\n\nexport type OpenAIPlugin = {\n (params?: OpenAIPluginOptions): GenkitPlugin;\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: `openai/${name}`,\n config,\n });\n }\n if (name.includes('tts')) {\n return openAISpeechModelRef({\n name: `openai/${name}`,\n config,\n });\n }\n if (name.includes('whisper') || name.includes('transcribe')) {\n return openAITranscriptionModelRef({\n name: `openai/${name}`,\n config,\n });\n }\n return openAIModelRef({\n name: `openai/${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: `openai/${name}`,\n config,\n configSchema: TextEmbeddingConfigSchema,\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/grok-image.d.mts
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import * as genkit from 'genkit';
|
|
2
|
+
import * as zod from 'zod';
|
|
2
3
|
export { compatOaiImageModelRef as xaiImageModelRef } from '../image.mjs';
|
|
3
4
|
import 'genkit/model';
|
|
4
5
|
import 'openai';
|
|
5
6
|
import 'openai/resources/images.mjs';
|
|
6
7
|
|
|
7
8
|
declare const SUPPORTED_IMAGE_MODELS: {
|
|
8
|
-
'grok-2-image-1212': genkit.ModelReference<
|
|
9
|
+
'grok-2-image-1212': genkit.ModelReference<zod.ZodTypeAny | zod.AnyZodObject>;
|
|
9
10
|
};
|
|
10
11
|
|
|
11
12
|
export { SUPPORTED_IMAGE_MODELS };
|
package/lib/xai/grok-image.d.ts
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import * as genkit from 'genkit';
|
|
2
|
+
import * as zod from 'zod';
|
|
2
3
|
export { compatOaiImageModelRef as xaiImageModelRef } from '../image.js';
|
|
3
4
|
import 'genkit/model';
|
|
4
5
|
import 'openai';
|
|
5
6
|
import 'openai/resources/images.mjs';
|
|
6
7
|
|
|
7
8
|
declare const SUPPORTED_IMAGE_MODELS: {
|
|
8
|
-
'grok-2-image-1212': genkit.ModelReference<
|
|
9
|
+
'grok-2-image-1212': genkit.ModelReference<zod.ZodTypeAny | zod.AnyZodObject>;
|
|
9
10
|
};
|
|
10
11
|
|
|
11
12
|
export { SUPPORTED_IMAGE_MODELS };
|
package/lib/xai/index.d.mts
CHANGED
|
@@ -8,8 +8,12 @@ import 'genkit/model';
|
|
|
8
8
|
import 'openai';
|
|
9
9
|
import 'openai/resources/images.mjs';
|
|
10
10
|
import 'genkit/registry';
|
|
11
|
+
import '../audio.mjs';
|
|
12
|
+
import 'openai/resources/audio/index.mjs';
|
|
13
|
+
import '../embedder.mjs';
|
|
11
14
|
import '../model.mjs';
|
|
12
15
|
import 'openai/resources/index.mjs';
|
|
16
|
+
import 'zod';
|
|
13
17
|
|
|
14
18
|
/**
|
|
15
19
|
* Copyright 2024 Google LLC
|