gemini_box 0.0.1 copy "gemini_box: ^0.0.1" to clipboard
gemini_box: ^0.0.1 copied to clipboard

'A gemini AI provider based on ai_box.'

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.