gen_connect 0.0.9 copy "gen_connect: ^0.0.9" to clipboard
gen_connect: ^0.0.9 copied to clipboard

A modular Dart/Flutter package for integrating AI models and providers. Supports text, image, audio, and more.

example/main.dart

import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:gen_connect/connectors/openai/openai_connector.dart';
import 'package:gen_connect/connectors/gemini/gemini_connector.dart';
import 'package:gen_connect/connectors/meta/meta_connector.dart';
import 'package:gen_connect/connectors/anthropic/anthropic_connector.dart';
import 'package:gen_connect/connectors/deepseek/deepseek_connector.dart';
import 'package:gen_connect/connectors/palm/palm_connector.dart';
import 'package:gen_connect/connectors/grok/grok_connector.dart';

import 'package:gen_connect/enums/meta.dart';
import 'package:gen_connect/gen_manager.dart';

class Logger {
  final String name;
  Logger(this.name);

  void info(String message) {
    if (kDebugMode) {
      print('[$name] $message');
    }
  }
}

void main() async {
  // Instantiate connectors
  final openai = OpenAIConnector(apiKey: 'YOUR_OPENAI_KEY');
  final gemini = GeminiConnector(apiKey: 'YOUR_GEMINI_KEY');
  final meta = MetaConnector(apiKey: 'YOUR_META_KEY');
  final anthropic = AnthropicConnector(apiKey: 'YOUR_ANTHROPIC_KEY');
  final deepseek = DeepSeekConnector(apiKey: 'YOUR_DEEPSEEK_KEY');
  final palm = PalmConnector(apiKey: 'YOUR_PALM_KEY');
  final grok = GrokConnector(apiKey: 'YOUR_GROK_KEY');

  // Add connectors to GenConnectManager
  final manager = GenConnectManager.getInstance();
  manager.addConnector(openai);
  manager.addConnector(gemini);
  manager.addConnector(meta);
  manager.addConnector(anthropic);
  manager.addConnector(deepseek);
  manager.addConnector(palm);
  manager.addConnector(grok);

  runApp(AiImplementntation());
}

class AiImplementntation extends StatefulWidget {
  const AiImplementntation({super.key});

  @override
  State<AiImplementntation> createState() => _AiImplementntationState();
}

class _AiImplementntationState extends State<AiImplementntation> {
  final log = Logger('GenConnectExample');

  @override
  void initState() {
    super.initState();
    _runExamples();
  }

  Future<void> _runExamples() async {
    final manager = GenConnectManager.getInstance();

    // Retrieve and use connectors from manager
    final openaiFromManager = manager.openai;
    final geminiFromManager = manager.gemini;
    final metaFromManager = manager.meta;
    final anthropicFromManager = manager.anthropic;
    final deepseekFromManager = manager.deepseek;
    final palmFromManager = manager.palm;
    final grokFromManager = manager.grok;

    // Example usage with different models

    // OpenAI: GPT-3.5 and GPT-4
    final openaiChatGpt4 = await openaiFromManager?.gpt4.sendPrompt(
      'Hello from GPT-4!',
    );
    log.info('OpenAI chat (GPT-4): $openaiChatGpt4');
    final openaiChatGpt35 = await openaiFromManager?.gpt4_1.sendPrompt(
      'Hello from GPT-3.5!',
    );
    log.info('OpenAI chat (GPT-3.5): $openaiChatGpt35');

    // Gemini: Pro and Flash
    final geminiTextPro = await geminiFromManager?.pro.text.generateText(
      'Gemini Pro text',
    );
    log.info('Gemini text (Pro): $geminiTextPro');
    final geminiTextFlash = await geminiFromManager?.flash.text.generateText(
      'Gemini Flash text',
    );
    log.info('Gemini text (Flash): $geminiTextFlash');

    // Meta: Llama2 and Llama3
    final metaTextLlama2 = await metaFromManager?.llama2.text.sendPrompt(
      'Meta Llama2 text',
      model: MetaModel.llama2,
    );
    log.info('Meta text (Llama2): $metaTextLlama2');
    final metaTextLlama3 = await metaFromManager?.llama3.text.sendPrompt(
      'Meta Llama3 text',
      model: MetaModel.llama3,
    );
    log.info('Meta text (Llama3): $metaTextLlama3');

    // Anthropic: Claude 2 and Claude 3
    final anthropicTextClaude2 = await anthropicFromManager?.claude2.text
        .generateText('Anthropic Claude2 text');
    log.info('Anthropic text (Claude2): $anthropicTextClaude2');
    final anthropicTextClaude3 = await anthropicFromManager?.claude3.text
        .generateText('Anthropic Claude3 text');
    log.info('Anthropic text (Claude3): $anthropicTextClaude3');

    // DeepSeek: Chat and Coder
    final deepseekChat = await deepseekFromManager?.deeppseekChat.sendPrompt(
      'DeepSeek chat',
    );
    log.info('DeepSeek chat: $deepseekChat');
    final deepseekCoder = await deepseekFromManager?.deeppseekCoder.sendCode(
      'DeepSeek coder',
    );
    log.info('DeepSeek coder: $deepseekCoder');

    // PaLM: PaLM2 and Chat-Bison
    final palmText2 = await palmFromManager?.palm2.text.sendTextPrompt(
      'PaLM2 text',
    );
    log.info('PaLM text (PaLM2): $palmText2');
    final palmChatBison = await palmFromManager?.palm2Code.text.sendTextPrompt(
      'Chat-Bison text',
    );
    log.info('PaLM text (Chat-Bison): $palmChatBison');

    // Grok: 2.5 and 4
    final grokText1 = await grokFromManager?.grok2_5.text.sendPrompt(
      'Grok 1 text',
    );
    log.info('Grok text (1): $grokText1');
    final grokText2_5 = await grokFromManager?.grok4.text.sendPrompt(
      'Grok 2.5 text',
    );
    log.info('Grok text (2.5): $grokText2_5');
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(home: Scaffold(body: Text("Hello")));
  }
}
1
likes
120
points
22
downloads

Publisher

unverified uploader

Weekly Downloads

A modular Dart/Flutter package for integrating AI models and providers. Supports text, image, audio, and more.

Repository (GitHub)
View/report issues

Documentation

API reference

License

MIT (license)

Dependencies

dio, flutter, http

More

Packages that depend on gen_connect