UNPKG

@genkit-ai/compat-oai

Version:

Genkit AI framework plugin for OpenAI APIs.

1 lines 10.8 kB
{"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":[]}