Skip to content

Conversation

@koyasi777
Copy link
Contributor

No description provided.

@neekersen
Copy link

neekersen commented Jun 16, 2025

I revised to the latest models acc. to Jun 2025. @koyasi777 @ItzCrazyKns
Source: https://ai.google.dev/gemini-api/docs/models

import {
ChatGoogleGenerativeAI,
GoogleGenerativeAIEmbeddings,
} from '@langchain/google-genai';
import { getGeminiApiKey } from '../config';
import { ChatModel, EmbeddingModel } from '.';

export const PROVIDER_INFO = {
key: 'gemini',
displayName: 'Google Gemini',
};
import { BaseChatModel } from '@langchain/core/language_models/chat_models';
import { Embeddings } from '@langchain/core/embeddings';

const geminiChatModels: Record<string, string>[] = [
{
displayName: 'Gemini 2.5 Flash Preview 05-20',
key: 'gemini-2.5-flash-preview-05-20',
},
{
displayName: 'Gemini 2.5 Pro Preview',
key: 'gemini-2.5-pro-preview-06-05',
},
{
displayName: 'Gemini 2.0 Flash',
key: 'gemini-2.0-flash',
},
{
displayName: 'Gemini 2.0 Flash-Lite',
key: 'gemini-2.0-flash-lite',
},
{
displayName: 'Gemini 1.5 Flash',
key: 'gemini-1.5-flash',
},
{
displayName: 'Gemini 1.5 Flash-8B',
key: 'gemini-1.5-flash-8b',
},
{
displayName: 'Gemini 1.5 Pro',
key: 'gemini-1.5-pro',
},
];

const geminiEmbeddingModels: Record<string, string>[] = [
{
displayName: 'Gemini Embedding',
key: 'gemini-embedding-exp',
},
{
displayName: 'Text Embedding 004',
key: 'models/text-embedding-004',
},
{
displayName: 'Embedding 001',
key: 'models/embedding-001',
},
];

export const loadGeminiChatModels = async () => {
const geminiApiKey = getGeminiApiKey();

if (!geminiApiKey) return {};

try {
const chatModels: Record<string, ChatModel> = {};

geminiChatModels.forEach((model) => {
  chatModels[model.key] = {
    displayName: model.displayName,
    model: new ChatGoogleGenerativeAI({
      apiKey: geminiApiKey,
      modelName: model.key,
      temperature: 0.7,
    }) as unknown as BaseChatModel,
  };
});

return chatModels;

} catch (err) {
console.error(Error loading Gemini models: ${err});
return {};
}
};

export const loadGeminiEmbeddingModels = async () => {
const geminiApiKey = getGeminiApiKey();

if (!geminiApiKey) return {};

try {
const embeddingModels: Record<string, EmbeddingModel> = {};

geminiEmbeddingModels.forEach((model) => {
  embeddingModels[model.key] = {
    displayName: model.displayName,
    model: new GoogleGenerativeAIEmbeddings({
      apiKey: geminiApiKey,
      modelName: model.key,
    }) as unknown as Embeddings,
  };
});

return embeddingModels;

} catch (err) {
console.error(Error loading OpenAI embeddings models: ${err});
return {};
}
};

@ItzCrazyKns
Copy link
Owner

Thanks!

@neekersen
Copy link

neekersen commented Jun 21, 2025

Updated version acc. to the date 21 Jun 2025. @ItzCrazyKns
Source: https://ai.google.dev/gemini-api/docs/models

import {
ChatGoogleGenerativeAI,
GoogleGenerativeAIEmbeddings,
} from '@langchain/google-genai';
import { getGeminiApiKey } from '../config';
import { ChatModel, EmbeddingModel } from '.';

export const PROVIDER_INFO = {
key: 'gemini',
displayName: 'Google Gemini',
};
import { BaseChatModel } from '@langchain/core/language_models/chat_models';
import { Embeddings } from '@langchain/core/embeddings';

const geminiChatModels: Record<string, string>[] = [
{
displayName: 'Gemini 2.5 Pro',
key: 'gemini-2.5-pro',
},
{
displayName: 'Gemini 2.5 Flash',
key: 'gemini-2.5-flash',
},
{
displayName: 'Gemini 2.5 Flash-Lite Preview',
key: 'gemini-2.5-flash-lite-preview-06-17',
},
{
displayName: 'Gemini 2.5 Flash Preview 05-20',
key: 'gemini-2.5-flash-preview-05-20',
},
{
displayName: 'Gemini 2.5 Pro Preview',
key: 'gemini-2.5-pro-preview-06-05',
},
{
displayName: 'Gemini 2.0 Flash',
key: 'gemini-2.0-flash',
},
{
displayName: 'Gemini 2.0 Flash-Lite',
key: 'gemini-2.0-flash-lite',
},
{
displayName: 'Gemini 1.5 Flash',
key: 'gemini-1.5-flash',
},
{
displayName: 'Gemini 1.5 Flash-8B',
key: 'gemini-1.5-flash-8b',
},
{
displayName: 'Gemini 1.5 Pro',
key: 'gemini-1.5-pro',
},
];

const geminiEmbeddingModels: Record<string, string>[] = [
{
displayName: 'Gemini Embedding',
key: 'gemini-embedding-exp',
},
{
displayName: 'Text Embedding 004',
key: 'models/text-embedding-004',
},
{
displayName: 'Embedding 001',
key: 'models/embedding-001',
},
];

export const loadGeminiChatModels = async () => {
const geminiApiKey = getGeminiApiKey();

if (!geminiApiKey) return {};

try {
const chatModels: Record<string, ChatModel> = {};

geminiChatModels.forEach((model) => {
  chatModels[model.key] = {
    displayName: model.displayName,
    model: new ChatGoogleGenerativeAI({
      apiKey: geminiApiKey,
      modelName: model.key,
      temperature: 0.7,
    }) as unknown as BaseChatModel,
  };
});

return chatModels;

} catch (err) {
console.error(Error loading Gemini models: ${err});
return {};
}
};

export const loadGeminiEmbeddingModels = async () => {
const geminiApiKey = getGeminiApiKey();

if (!geminiApiKey) return {};

try {
const embeddingModels: Record<string, EmbeddingModel> = {};

geminiEmbeddingModels.forEach((model) => {
  embeddingModels[model.key] = {
    displayName: model.displayName,
    model: new GoogleGenerativeAIEmbeddings({
      apiKey: geminiApiKey,
      modelName: model.key,
    }) as unknown as Embeddings,
  };
});

return embeddingModels;

} catch (err) {
console.error(Error loading OpenAI embeddings models: ${err});
return {};
}
};

egoodman92 pushed a commit to egoodman92/Perplexica-Front that referenced this pull request Jul 21, 2025
feat(gemini): add Gemini 2.5 Flash & Pro preview models (May 2025)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants