Add support for Google Gemini AI
This commit is contained in:
@@ -2,6 +2,7 @@ import { NextRequest, NextResponse } from 'next/server';
|
||||
import { createGroq } from '@ai-sdk/groq';
|
||||
import { createAnthropic } from '@ai-sdk/anthropic';
|
||||
import { createOpenAI } from '@ai-sdk/openai';
|
||||
import { createGoogleGenerativeAI } from '@ai-sdk/google';
|
||||
import { streamText } from 'ai';
|
||||
import type { SandboxState } from '@/types/sandbox';
|
||||
import { selectFilesForEdit, getFileContents, formatFilesForAI } from '@/lib/context-selector';
|
||||
@@ -19,6 +20,10 @@ const anthropic = createAnthropic({
|
||||
baseURL: process.env.ANTHROPIC_BASE_URL || 'https://api.anthropic.com/v1',
|
||||
});
|
||||
|
||||
const googleGenerativeAI = createGoogleGenerativeAI({
|
||||
apiKey: process.env.GEMINI_API_KEY,
|
||||
});
|
||||
|
||||
const openai = createOpenAI({
|
||||
apiKey: process.env.OPENAI_API_KEY,
|
||||
});
|
||||
@@ -1148,11 +1153,13 @@ CRITICAL: When files are provided in the context:
|
||||
|
||||
// Determine which provider to use based on model
|
||||
const isAnthropic = model.startsWith('anthropic/');
|
||||
const isGoogle = model.startsWith('google/');
|
||||
const isOpenAI = model.startsWith('openai/gpt-5');
|
||||
const modelProvider = isAnthropic ? anthropic : (isOpenAI ? openai : groq);
|
||||
const modelProvider = isAnthropic ? anthropic : (isOpenAI ? openai : (isGoogle ? googleGenerativeAI : groq));
|
||||
const actualModel = isAnthropic ? model.replace('anthropic/', '') :
|
||||
(model === 'openai/gpt-5') ? 'gpt-5' : model;
|
||||
|
||||
(model === 'openai/gpt-5') ? 'gpt-5' :
|
||||
(isGoogle ? model.replace('google/', '') : model);
|
||||
|
||||
// Make streaming API call with appropriate provider
|
||||
const streamOptions: any = {
|
||||
model: modelProvider(actualModel),
|
||||
|
||||
Reference in New Issue
Block a user