@genkit-ai/googleai
Version:
Genkit AI framework plugin for Google AI APIs, including Gemini APIs.
1 lines • 4.6 kB
Source Map (JSON)
{"version":3,"sources":["../src/predict.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 { getGenkitClientHeader } from './common';\n\n/**\n * @deprecated\n */\nexport type PredictMethod = 'predict' | 'predictLongRunning';\n\n/**\n * @deprecated\n */\nexport interface Operation {\n name: string;\n done?: boolean;\n error?: {\n message: string;\n };\n response?: {\n generateVideoResponse: {\n generatedSamples: { video: { uri: string } }[];\n };\n };\n}\n\nfunction predictEndpoint(options: {\n apiVersion: string;\n model: string;\n apiKey: string;\n method: PredictMethod;\n}) {\n return `https://generativelanguage.googleapis.com/${options.apiVersion}/models/${options.model}:${options.method}?key=${options.apiKey}`;\n}\n\nfunction opCheckEndpoint(options: {\n apiVersion: string;\n operation: string;\n apiKey: string;\n}) {\n return `https://generativelanguage.googleapis.com/${options.apiVersion}/${options.operation}?key=${options.apiKey}`;\n}\n\n/**\n * @deprecated\n */\nexport type PredictClient<I = unknown, R = unknown, P = unknown> = (\n instances: I[],\n parameters: P\n) => Promise<R>;\n\n/**\n * @deprecated\n */\nexport function predictModel<I = unknown, R = unknown, P = unknown>(\n model: string,\n apiKey: string,\n method: PredictMethod\n): PredictClient<I, R, P> {\n return async (instances: I[], parameters: P): Promise<R> => {\n const fetch = (await import('node-fetch')).default;\n\n const req = {\n instances,\n parameters,\n };\n\n const response = await fetch(\n predictEndpoint({\n model,\n apiVersion: 'v1beta',\n apiKey,\n method,\n }),\n {\n method: 'POST',\n body: JSON.stringify(req),\n headers: {\n 'Content-Type': 'application/json',\n 'X-Goog-Api-Client': getGenkitClientHeader(),\n },\n }\n );\n\n if (!response.ok) {\n throw new Error(\n `Error from Gemini AI predict: HTTP ${\n response.status\n }: ${await response.text()}`\n );\n }\n\n return (await response.json()) as R;\n };\n}\n\n/**\n * @deprecated\n */\nexport async function checkOp(\n operation: string,\n apiKey: string\n): Promise<Operation> {\n const fetch = (await import('node-fetch')).default;\n\n const response = await fetch(\n opCheckEndpoint({\n apiVersion: 'v1beta',\n operation,\n apiKey,\n }),\n {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json',\n 'X-Goog-Api-Client': getGenkitClientHeader(),\n },\n }\n );\n\n if (!response.ok) {\n throw new Error(\n `Error from operation API: HTTP ${\n response.status\n }: ${await response.text()}`\n );\n }\n\n return (await response.json()) as Operation;\n}\n"],"mappings":"AAgBA,SAAS,6BAA6B;AAuBtC,SAAS,gBAAgB,SAKtB;AACD,SAAO,6CAA6C,QAAQ,UAAU,WAAW,QAAQ,KAAK,IAAI,QAAQ,MAAM,QAAQ,QAAQ,MAAM;AACxI;AAEA,SAAS,gBAAgB,SAItB;AACD,SAAO,6CAA6C,QAAQ,UAAU,IAAI,QAAQ,SAAS,QAAQ,QAAQ,MAAM;AACnH;AAaO,SAAS,aACd,OACA,QACA,QACwB;AACxB,SAAO,OAAO,WAAgB,eAA8B;AAC1D,UAAM,SAAS,MAAM,OAAO,YAAY,GAAG;AAE3C,UAAM,MAAM;AAAA,MACV;AAAA,MACA;AAAA,IACF;AAEA,UAAM,WAAW,MAAM;AAAA,MACrB,gBAAgB;AAAA,QACd;AAAA,QACA,YAAY;AAAA,QACZ;AAAA,QACA;AAAA,MACF,CAAC;AAAA,MACD;AAAA,QACE,QAAQ;AAAA,QACR,MAAM,KAAK,UAAU,GAAG;AAAA,QACxB,SAAS;AAAA,UACP,gBAAgB;AAAA,UAChB,qBAAqB,sBAAsB;AAAA,QAC7C;AAAA,MACF;AAAA,IACF;AAEA,QAAI,CAAC,SAAS,IAAI;AAChB,YAAM,IAAI;AAAA,QACR,sCACE,SAAS,MACX,KAAK,MAAM,SAAS,KAAK,CAAC;AAAA,MAC5B;AAAA,IACF;AAEA,WAAQ,MAAM,SAAS,KAAK;AAAA,EAC9B;AACF;AAKA,eAAsB,QACpB,WACA,QACoB;AACpB,QAAM,SAAS,MAAM,OAAO,YAAY,GAAG;AAE3C,QAAM,WAAW,MAAM;AAAA,IACrB,gBAAgB;AAAA,MACd,YAAY;AAAA,MACZ;AAAA,MACA;AAAA,IACF,CAAC;AAAA,IACD;AAAA,MACE,QAAQ;AAAA,MACR,SAAS;AAAA,QACP,gBAAgB;AAAA,QAChB,qBAAqB,sBAAsB;AAAA,MAC7C;AAAA,IACF;AAAA,EACF;AAEA,MAAI,CAAC,SAAS,IAAI;AAChB,UAAM,IAAI;AAAA,MACR,kCACE,SAAS,MACX,KAAK,MAAM,SAAS,KAAK,CAAC;AAAA,IAC5B;AAAA,EACF;AAEA,SAAQ,MAAM,SAAS,KAAK;AAC9B;","names":[]}