{"version":3,"sources":["../../../src/modelgarden/legacy/model_garden.ts"],"sourcesContent":["/**\n * Copyright 2024 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { z, type Genkit, type ModelReference } from 'genkit';\nimport { modelRef, type GenerateRequest, type ModelAction } from 'genkit/model';\nimport type { GoogleAuth } from 'google-auth-library';\nimport OpenAI from 'openai';\nimport { getGenkitClientHeader } from '../../common/index.js';\nimport {\n  OpenAIConfigSchema,\n  openaiCompatibleModel,\n} from './openai_compatibility.js';\n\n/** @deprecated */\nexport const ModelGardenModelConfigSchema = OpenAIConfigSchema.extend({\n  location: z.string().optional(),\n});\n\n/** @deprecated */\nexport const llama31 = modelRef({\n  name: 'vertexai/llama-3.1',\n  info: {\n    label: 'Llama 3.1',\n    supports: {\n      multiturn: true,\n      tools: true,\n      media: false,\n      systemRole: true,\n      output: ['text', 'json'],\n    },\n    versions: [\n      'meta/llama3-405b-instruct-maas',\n      // 8b and 70b versions are coming soon\n    ],\n  },\n  configSchema: ModelGardenModelConfigSchema,\n  version: 'meta/llama3-405b-instruct-maas',\n}) as ModelReference<typeof ModelGardenModelConfigSchema>;\n\n/** @deprecated */\nexport const llama32 = modelRef({\n  name: 'vertexai/llama-3.2',\n  info: {\n    label: 'Llama 3.2',\n    supports: {\n      multiturn: true,\n      tools: true,\n      media: true,\n      systemRole: true,\n      output: ['text', 'json'],\n    },\n    versions: ['meta/llama-3.2-90b-vision-instruct-maas'],\n  },\n  configSchema: ModelGardenModelConfigSchema,\n  version: 'meta/llama-3.2-90b-vision-instruct-maas',\n}) as ModelReference<typeof ModelGardenModelConfigSchema>;\n\n/**\n * @deprecated use `llama31` instead\n */\nexport const llama3 = modelRef({\n  name: 'vertexai/llama3-405b',\n  info: {\n    label: 'Llama 3.1 405b',\n    supports: {\n      multiturn: true,\n      tools: true,\n      media: false,\n      systemRole: true,\n      output: ['text'],\n    },\n    versions: ['meta/llama3-405b-instruct-maas'],\n  },\n  configSchema: ModelGardenModelConfigSchema,\n  version: 'meta/llama3-405b-instruct-maas',\n}) as ModelReference<typeof ModelGardenModelConfigSchema>;\n\n/** @deprecated */\nexport const SUPPORTED_OPENAI_FORMAT_MODELS = {\n  'llama3-405b': llama3,\n  'llama-3.1': llama31,\n  'llama-3.2': llama32,\n};\n\n/** @deprecated */\nexport function modelGardenOpenaiCompatibleModel(\n  ai: Genkit,\n  name: string,\n  projectId: string,\n  location: string,\n  googleAuth: GoogleAuth,\n  baseUrlTemplate: string | undefined\n): ModelAction<typeof ModelGardenModelConfigSchema> {\n  const model = SUPPORTED_OPENAI_FORMAT_MODELS[name];\n  if (!model) throw new Error(`Unsupported model: ${name}`);\n  if (!baseUrlTemplate) {\n    baseUrlTemplate =\n      'https://{location}-aiplatform.googleapis.com/v1beta1/projects/{projectId}/locations/{location}/endpoints/openapi';\n  }\n\n  const clientFactory = async (\n    request: GenerateRequest<typeof ModelGardenModelConfigSchema>\n  ): Promise<OpenAI> => {\n    const requestLocation = request.config?.location || location;\n    return new OpenAI({\n      baseURL: baseUrlTemplate!\n        .replace(/{location}/g, requestLocation)\n        .replace(/{projectId}/g, projectId),\n      apiKey: (await googleAuth.getAccessToken())!,\n      defaultHeaders: {\n        'X-Goog-Api-Client': getGenkitClientHeader(),\n      },\n    });\n  };\n  return openaiCompatibleModel(ai, model, clientFactory);\n}\n"],"mappings":"AAgBA,SAAS,SAA2C;AACpD,SAAS,gBAAwD;AAEjE,OAAO,YAAY;AACnB,SAAS,6BAA6B;AACtC;AAAA,EACE;AAAA,EACA;AAAA,OACK;AAGA,MAAM,+BAA+B,mBAAmB,OAAO;AAAA,EACpE,UAAU,EAAE,OAAO,EAAE,SAAS;AAChC,CAAC;AAGM,MAAM,UAAU,SAAS;AAAA,EAC9B,MAAM;AAAA,EACN,MAAM;AAAA,IACJ,OAAO;AAAA,IACP,UAAU;AAAA,MACR,WAAW;AAAA,MACX,OAAO;AAAA,MACP,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,QAAQ,CAAC,QAAQ,MAAM;AAAA,IACzB;AAAA,IACA,UAAU;AAAA,MACR;AAAA;AAAA,IAEF;AAAA,EACF;AAAA,EACA,cAAc;AAAA,EACd,SAAS;AACX,CAAC;AAGM,MAAM,UAAU,SAAS;AAAA,EAC9B,MAAM;AAAA,EACN,MAAM;AAAA,IACJ,OAAO;AAAA,IACP,UAAU;AAAA,MACR,WAAW;AAAA,MACX,OAAO;AAAA,MACP,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,QAAQ,CAAC,QAAQ,MAAM;AAAA,IACzB;AAAA,IACA,UAAU,CAAC,yCAAyC;AAAA,EACtD;AAAA,EACA,cAAc;AAAA,EACd,SAAS;AACX,CAAC;AAKM,MAAM,SAAS,SAAS;AAAA,EAC7B,MAAM;AAAA,EACN,MAAM;AAAA,IACJ,OAAO;AAAA,IACP,UAAU;AAAA,MACR,WAAW;AAAA,MACX,OAAO;AAAA,MACP,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,QAAQ,CAAC,MAAM;AAAA,IACjB;AAAA,IACA,UAAU,CAAC,gCAAgC;AAAA,EAC7C;AAAA,EACA,cAAc;AAAA,EACd,SAAS;AACX,CAAC;AAGM,MAAM,iCAAiC;AAAA,EAC5C,eAAe;AAAA,EACf,aAAa;AAAA,EACb,aAAa;AACf;AAGO,SAAS,iCACd,IACA,MACA,WACA,UACA,YACA,iBACkD;AAClD,QAAM,QAAQ,+BAA+B,IAAI;AACjD,MAAI,CAAC,MAAO,OAAM,IAAI,MAAM,sBAAsB,IAAI,EAAE;AACxD,MAAI,CAAC,iBAAiB;AACpB,sBACE;AAAA,EACJ;AAEA,QAAM,gBAAgB,OACpB,YACoB;AACpB,UAAM,kBAAkB,QAAQ,QAAQ,YAAY;AACpD,WAAO,IAAI,OAAO;AAAA,MAChB,SAAS,gBACN,QAAQ,eAAe,eAAe,EACtC,QAAQ,gBAAgB,SAAS;AAAA,MACpC,QAAS,MAAM,WAAW,eAAe;AAAA,MACzC,gBAAgB;AAAA,QACd,qBAAqB,sBAAsB;AAAA,MAC7C;AAAA,IACF,CAAC;AAAA,EACH;AACA,SAAO,sBAAsB,IAAI,OAAO,aAAa;AACvD;","names":[]}