Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | 9x 9x 3x 1x 2x 2x 2x 2x 1x 1x | import { GoogleGenerativeAI } from '@google/generative-ai';
import { LLMProvider } from './provider';
import { SeraphConfig } from '../config';
export class GeminiProvider implements LLMProvider {
private genAI: GoogleGenerativeAI;
private model: string;
constructor(config: SeraphConfig) {
if (!config.apiKey) {
throw new Error('Gemini API key not found in config.');
}
this.genAI = new GoogleGenerativeAI(config.apiKey);
this.model = config.llm?.model || 'gemini-1.5-pro-latest';
}
async generate(prompt: string): Promise<string> {
const model = this.genAI.getGenerativeModel({ model: this.model });
const result = await model.generateContent(prompt);
const response = await result.response;
return response.text();
}
}
|