import { GoogleGenerativeAI } from '@google/generative-ai'; // Validate required environment variables if (!process.env.GOOGLE_GENERATIVE_AI_API_KEY) { throw new Error('GOOGLE_GENERATIVE_AI_API_KEY environment variable is required'); } if (!process.env.GOOGLE_EMBEDDING_MODEL) { throw new Error('GOOGLE_EMBEDDING_MODEL environment variable is required (e.g., gemini-embedding-001)'); } const genAI = new GoogleGenerativeAI(process.env.GOOGLE_GENERATIVE_AI_API_KEY); const embeddingModel = genAI.getGenerativeModel({ model: process.env.GOOGLE_EMBEDDING_MODEL, }); /** * Generates a vector embedding for a given text using the configured Google embedding model. * * @param text - The text to embed * @returns A vector embedding (dimension depends on model) */ export async function generateEmbedding(text: string): Promise { try { const result = await embeddingModel.embedContent(text); return result.embedding.values; } catch (error) { console.error('Error generating embedding:', error); throw new Error('Failed to generate AI embedding.'); } }