Spaces:
Running
Running
import { | |
ChatGoogleGenerativeAI, | |
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-1.5-flash': { | |
displayName: 'Gemini 1.5 Flash', | |
model: new ChatGoogleGenerativeAI({ | |
modelName: 'gemini-1.5-flash', | |
temperature: 0.7, | |
apiKey: geminiApiKey, | |
}), | |
}, | |
'gemini-1.5-flash-8b': { | |
displayName: 'Gemini 1.5 Flash 8B', | |
model: new ChatGoogleGenerativeAI({ | |
modelName: 'gemini-1.5-flash-8b', | |
temperature: 0.7, | |
apiKey: geminiApiKey, | |
}), | |
}, | |
'gemini-1.5-pro': { | |
displayName: 'Gemini 1.5 Pro', | |
model: new ChatGoogleGenerativeAI({ | |
modelName: 'gemini-1.5-pro', | |
temperature: 0.7, | |
apiKey: geminiApiKey, | |
}), | |
}, | |
}; | |
return chatModels; | |
} catch (err) { | |
logger.error(`Error loading Gemini models: ${err}`); | |
return {}; | |
} | |
}; | |
export const loadGeminiEmbeddingsModels = async () => { | |
const geminiApiKey = getGeminiApiKey(); | |
if (!geminiApiKey) return {}; | |
try { | |
const embeddingModels = { | |
'text-embedding-004': { | |
displayName: 'Text Embedding', | |
model: new GoogleGenerativeAIEmbeddings({ | |
apiKey: geminiApiKey, | |
modelName: 'text-embedding-004', | |
}), | |
}, | |
}; | |
return embeddingModels; | |
} catch (err) { | |
logger.error(`Error loading Gemini embeddings model: ${err}`); | |
return {}; | |
} | |
}; | |