Gemini Box
Overview
Gemini Box is a wrapper library for easily using the Gemini API, Google Cloud Platform (GCP)'s Generative AI API, in Dart. This package is used within the Coin Galaxy project and enables efficient communication with Gemini AI models.
Features
- Support for the latest Gemini AI models (Gemini 1.0, 1.5, 2.0, 2.5, etc.)
- Text generation, image understanding, embedding generation, and other capabilities
- File upload and file management support
- Compatible with various Gemini model versions
- Flexible request configuration options
Usage
import 'package:gemini_box/gemini_box.dart';
void main() async {
// Initialize Gemini instance with API key
final gemini = Gemini(apiKey: 'YOUR_API_KEY');
// Create request
final requestBody = RequestBody(
contents: [
Content(
parts: [
Part(text: 'Hello, Gemini!'),
],
),
],
generationConfig: GenerationConfig(
temperature: 0.7,
maxOutputTokens: 1000,
),
);
// Generate content
final response = await gemini.generateContent(
model: GeminiVersions.gemini15Pro.version,
requestBody: requestBody,
);
// Handle response
print(response.candidates?.first.content?.parts?.first);
}
Working with Images
import 'dart:convert';
import 'dart:io';
import 'package:gemini_box/gemini_box.dart';
void main() async {
// Load image file
final imageFile = File('path/to/image.jpg');
final imageBytes = await imageFile.readAsBytes();
final base64Image = base64Encode(imageBytes);
// Initialize Gemini instance
final gemini = Gemini(apiKey: 'YOUR_API_KEY');
// Generate content with inline image
final response = await gemini.generateContent(
model: GeminiVersions.gemini20FlashLite.version,
requestBody: RequestBody(
contents: [
Content(
parts: [
Part(inlineData: Blob(
mimeType: 'image/jpeg',
data: base64Image,
)),
Part(text: 'Please describe this image.'),
],
),
],
),
);
// Display result
print(response.candidates?.first.content?.parts?.first);
}
Supported Models
This library supports numerous Gemini model versions, including:
- Gemini 1.0 Pro Vision
- Gemini 1.5 Pro
- Gemini 1.5 Flash
- Gemini 2.0 Flash
- Gemini 2.5 Flash Preview
- And many others
Installation
Add the dependency to your pubspec.yaml
file:
dependencies:
gemini_box: ^1.0.0
Then install the package:
dart pub get
License
This project is provided under the MIT License.