added Google Generative AI (gemini) integration

This commit is contained in:
jonathan DS
2024-10-15 18:47:35 -03:00
parent 4f7a06f56a
commit 8701be2f6d
4 changed files with 30 additions and 8 deletions

View File

@@ -3,6 +3,7 @@
import { getAPIKey } from '~/lib/.server/llm/api-key';
import { createAnthropic } from '@ai-sdk/anthropic';
import { createOpenAI } from '@ai-sdk/openai';
import { createGoogleGenerativeAI } from '@ai-sdk/google';
import { ollama } from 'ollama-ai-provider';
import { createOpenRouter } from "@openrouter/ai-sdk-provider";
@@ -22,6 +23,14 @@ export function getOpenAIModel(apiKey: string, model: string) {
return openai(model);
}
export function getGoogleModel(apiKey: string, model: string) {
const google = createGoogleGenerativeAI(
apiKey,
);
return google(model);
}
export function getGroqModel(apiKey: string, model: string) {
const openai = createOpenAI({
baseURL: 'https://api.groq.com/openai/v1',
@@ -45,7 +54,8 @@ export function getOpenRouterModel(apiKey: string, model: string) {
export function getModel(provider: string, model: string, env: Env) {
const apiKey = getAPIKey(env, provider);
switch (provider) {
case 'Anthropic':
return getAnthropicModel(apiKey, model);
@@ -55,6 +65,8 @@ export function getModel(provider: string, model: string, env: Env) {
return getGroqModel(apiKey, model);
case 'OpenRouter':
return getOpenRouterModel(apiKey, model);
case 'Google':
return getGoogleModel(apiKey, model)
default:
return getOllamaModel(model);
}