From 72339ba559761b7a4fcebd72494221a4405f0ad1 Mon Sep 17 00:00:00 2001 From: Nipurn123 <154745876+Nipurn123@users.noreply.github.com> Date: Wed, 24 Jul 2024 23:45:55 +0530 Subject: [PATCH] gemini.ts --- src/lib/providers/gemini.ts | 45 +++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 src/lib/providers/gemini.ts diff --git a/src/lib/providers/gemini.ts b/src/lib/providers/gemini.ts new file mode 100644 index 0000000..f8e39df --- /dev/null +++ b/src/lib/providers/gemini.ts @@ -0,0 +1,45 @@ +import { ChatGoogleGenerativeAI } from '@langchain/google-genai'; +import { GoogleGenerativeAIEmbeddings } from '@langchain/google-genai'; +import { getGeminiApiKey } from '../../config'; +import logger from '../../utils/logger'; + +export const loadGeminiChatModels = async () => { + const geminiApiKey = getGeminiApiKey(); + + if (!geminiApiKey) return {}; + + try { + const chatModels = { + 'Gemini Pro': new ChatGoogleGenerativeAI({ + temperature: 0.7, + apiKey: geminiApiKey, + modelName: 'gemini-pro', + }), + }; + + return chatModels; + } catch (err) { + logger.error(`Error loading Gemini chat models: ${err}`); + return {}; + } +}; + +export const loadGeminiEmbeddingsModels = async () => { + const geminiApiKey = getGeminiApiKey(); + + if (!geminiApiKey) return {}; + + try { + const embeddingsModels = { + 'Gemini Embedding': new GoogleGenerativeAIEmbeddings({ + apiKey: geminiApiKey, + modelName: 'embedding-001', + }), + }; + + return embeddingsModels; + } catch (err) { + logger.error(`Error loading Gemini embeddings model: ${err}`); + return {}; + } +};