pdf_gemini 0.0.4 copy "pdf_gemini: ^0.0.4" to clipboard
pdf_gemini: ^0.0.4 copied to clipboard

This package provides a simple way to interact and chat with pdf files using google gemini.

Pdf Gemini Package #

This package provides a simple way to interact, chat with pdf files using google gemini and managing uploaded files.

Features #

  • Upload PDF to gemini
  • Prompt PDF ang get generated response with Google Gemini Api
  • Lightweight and easy to integrate into any Flutter app.

Installation #

Run the command on your command prompt

flutter pub add pdf_gemini

Usage #

Step 1: Import the Package #

In your Dart file, import the package:

import 'package:pdf_gemini/pdf_gemini.dart';

Step 2: Provide Your API Key #

When using the API service, instantiate the service class and pass your API key to it. Here's an example of how to fetch data from an API endpoint:

void main() async {
  const geminiApiKey = 'your_api_key_here';
  final genaiService = GenaiClient(geminiApiKey: geminiApiKey);

  try {
    final testFile = File('');
    final data = await genaiService.promptDocument(
      'file_name', 
      'pdf', 
      testFile.readAsBytesSync(), 
      'Your prompt',
    );
    print(data.text);
  } catch (e) {
    print('Error: $e');
  }
}

Example Explained: #

  • Replace 'your_api_key_here' with your actual API key provided by the service you're integrating.
  • The promptDocument() method accepts the document and prompt input and returns the generated response as a model (text: text, citations: sources) if successful.
  • Make sure to handle exceptions in case of a failed request.

Testing #

To ensure your package works as expected, you can write tests to mock API responses. Here's a simple test example:

import 'dart:io';

import 'package:flutter_test/flutter_test.dart';
import 'package:pdf_gemini/pdf_gemini.dart';

void main() {
  group('PDFChatClient', () {
    const geminiApiKey = '';
    final genaiService = GenaiClient(geminiApiKey: geminiApiKey);

    test('Prompt PDF Test', () async {
      // Create a temporary test file
      final testFile = File('your_file_path').readAsBytesSync();

      try {
        await genaiService.promptDocument(
          fileName: 'Your file name',
          fileType: 'pdf',
          fileData: testFile,
          prompt: 'your prompt',
          model: 'gemini-1.5-flash',
        );
      } catch (e) {
        fail('Failed: $e');
      }
    });
  });
}

Contributing #

Contributions are welcome! If you'd like to improve this package, feel free to fork the repository and submit a pull request. Make sure to write tests for any new features.

License #

This project is licensed under the BSD 3-clause license - see the LICENSE file for details.

3
likes
160
points
42
downloads

Publisher

verified publisherjoegakah.com

Weekly Downloads

This package provides a simple way to interact and chat with pdf files using google gemini.

Homepage
Repository (GitHub)

Documentation

API reference

License

BSD-3-Clause (license)

Dependencies

dio, flutter

More

Packages that depend on pdf_gemini