1.1.0 • Published 4 months ago
@microfox/ai-provider-google v1.1.0
Google AI Provider
A comprehensive TypeScript SDK for interacting with Google AI's REST API endpoints, enabling seamless integration with various AI models for text generation, embeddings, and image creation.
Installation
npm install @microfox/ai-provider-googleQuick Start
import { GoogleAiProvider } from '@microfox/ai-provider-google';
// Initialize the provider
const provider = new GoogleAiProvider({
apiKey: process.env.GOOGLE_API_KEY,
});
// Text Generation Example
const model = provider.languageModel('gemini-2.5-pro-preview-05-06', {
temperature: 0.7,
maxOutputTokens: 1024,
useSearchGrounding: true,
});
const result = await model.generateText({
prompt: 'Write a vegetarian lasagna recipe for 4 people.',
});
// Embeddings Example
const embeddingModel = provider.textEmbeddingModel('text-embedding-004');
const embedding = await embeddingModel.generate('Hello, world!');
// Image Generation Example
const imageModel = provider.imageModel(
'gemini-2.0-flash-preview-image-generation',
);
const images = await imageModel.generate({
prompt: 'Generate an image of a comic cat',
});Supported Models
Language Models
Gemini 2.5 Series
gemini-2.5-pro-preview-05-06gemini-2.5-pro-preview-05-06-long-contextgemini-2.5-flash-preview-05-20gemini-2.5-flash-preview-05-20-thinkinggemini-2.5-flash-preview-native-audio-dialoggemini-2.5-flash-exp-native-audio-thinking-dialoggemini-2.5-flash-preview-ttsgemini-2.5-pro-preview-tts
Gemini 2.0 Series
gemini-2.0-flashgemini-2.0-flash-audiogemini-2.0-flash-live-001gemini-2.0-flash-live-001-audiogemini-2.0-flash-litegemini-2.0-flash-preview-image-generation
Gemini 1.5 Series
gemini-1.5-progemini-1.5-pro-long-contextgemini-1.5-flashgemini-1.5-flash-long-contextgemini-1.5-flash-8bgemini-1.5-flash-8b-long-context
Embedding Models
gemini-embedding-exptext-embedding-004embedding-001
Image Generation Models
gemini-2.0-flash-preview-image-generationimagen-3.0-generate-002
Configuration
Model Settings
interface GoogleChatSettings {
// Randomness control (0.0 to 1.0)
temperature?: number;
// Generation limits
maxOutputTokens?: number;
maxInputTokens?: number;
// Token selection parameters
topP?: number;
topK?: number;
// User identification
user?: string;
// Output configuration
structuredOutputs?: boolean;
// Safety configuration
safetySettings?: Array<{
category: string;
threshold: string;
}>;
// Search and retrieval
useSearchGrounding?: boolean;
dynamicRetrievalConfig?: {
mode: 'MODE_DYNAMIC' | 'MODE_UNSPECIFIED';
dynamicThreshold?: number;
};
}Error Handling
try {
const response = await model.generateText({
prompt: 'Hello, world!',
});
} catch (error) {
if (error instanceof Error) {
console.error('Google AI API Error:', error.message);
}
}Best Practices
Security
- Store API keys in environment variables
- Implement proper error handling
- Use appropriate model versions
Performance
- Consider rate limits and costs
- Implement caching strategies
- Choose models based on use case requirements
Development
- Test thoroughly in development environment
- Monitor API usage and costs
- Keep SDK version up to date
License
MIT