ai_chat_plus 1.0.6 copy "ai_chat_plus: ^1.0.6" to clipboard
ai_chat_plus: ^1.0.6 copied to clipboard

A Flutter package that provides AI chat functionality with enhanced features including OpenAI, Google Gemini, and Claude AI integrations, voice recognition, and multimodal support.

AI Chat Plus #

A Flutter package that provides AI chat functionality with enhanced features including OpenAI, Google Gemini, and Claude AI integrations, voice recognition, and multimodal support.

Features #

Currently Implemented:

  • πŸ€– OpenAI GPT Integration (3.5/4/4-turbo)
  • 🧠 Google Gemini Integration
  • πŸ”„ Streaming responses support
  • 🎯 Type-safe API
  • πŸ“± Easy integration with beautiful UI components
  • ⚑ Fast and efficient message handling

Coming Soon:

  • Claude AI Integration
  • Voice Recognition
  • Text-to-Speech
  • Message Storage
  • And more!

Usage #

Basic Setup #

Add this to your package's pubspec.yaml file:

dependencies:
  ai_chat_plus: ^1.0.6

Then run:

flutter pub get

Using OpenAI Service #

import 'package:ai_chat_plus/ai_chat_plus.dart';

Future<void> initOpenAI() async {
  final config = AIModelConfig(
    provider: AIProvider.openAI,
    apiKey: 'YOUR_OPENAI_API_KEY',
    modelId: OpenAIModel.gpt35Turbo.modelId,
  );

  final aiService = AIServiceFactory.createService(AIProvider.openAI);
  await aiService.initialize(config);
  
  // Generate response
  final response = await aiService.generateResponse("Hello, how are you?");
  print(response);
}

Using Gemini Service #

import 'package:ai_chat_plus/ai_chat_plus.dart';

Future<void> initGemini() async {
  final config = AIModelConfig(
    provider: AIProvider.gemini,
    apiKey: 'YOUR_GEMINI_API_KEY',
    modelId: GeminiModel.geminiFlash.modelId,
  );

  final aiService = AIServiceFactory.createService(AIProvider.gemini);
  await aiService.initialize(config);
  
  // Generate response
  final response = await aiService.generateResponse("What is quantum computing?");
  print(response);
}

Using Claude Service #

import 'package:ai_chat_plus/ai_chat_plus.dart';

Future<void> initClaude() async {
  final config = AIModelConfig(
    provider: AIProvider.claude,
    apiKey: 'YOUR_CLAUDE_API_KEY',
    modelId: ClaudeModel.claude3Sonnet.modelId,
  );

  final aiService = AIServiceFactory.createService(AIProvider.claude);
  await aiService.initialize(config);
  
  // Generate response
  final response = await aiService.generateResponse("What is artificial intelligence?");
  print(response);
}

Creating a Chat Application #

To create a chat application with both OpenAI and Gemini support:

  1. Create separate pages for each service:
// Create OpenAI chat page
class OpenAIChatPage extends StatefulWidget {
  // ... implementation in example/pages/openai_page.dart
}

// Create Gemini chat page
class GeminiChatPage extends StatefulWidget {
  // ... implementation in example/pages/gemini_page.dart
}
  1. Set up navigation between services:
class ChatScreen extends StatefulWidget {
  @override
  State<ChatScreen> createState() => _ChatScreenState();
}

class _ChatScreenState extends State<ChatScreen> {
  int _selectedIndex = 0;
  final List<Widget> _pages = [
    const GeminiChatPage(),
    const OpenAIChatPage(),
  ];

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: _pages[_selectedIndex],
      bottomNavigationBar: BottomNavigationBar(
        items: const <BottomNavigationBarItem>[
          BottomNavigationBarItem(
            icon: Icon(Icons.psychology),
            label: 'Gemini',
          ),
          BottomNavigationBarItem(
            icon: Icon(Icons.chat_bubble),
            label: 'OpenAI',
          ),
        ],
        currentIndex: _selectedIndex,
        onTap: (index) => setState(() => _selectedIndex = index),
      ),
    );
  }
}

Important Notes #

  1. API Keys:

  2. Available Models:

    • OpenAI: gpt35Turbo, gpt4, gpt4Turbo
    • Gemini: geminiFlash, geminiPro, geminiPro15
    • Claude: claude3Sonnet, claude3Opus, claude3Haiku
  3. Error Handling:

    try {
      final response = await aiService.generateResponse(message);
      // Handle success
    } catch (e) {
      // Handle error
      print('Error: $e');
    }
    
  4. Service Cleanup:

    @override
    void dispose() {
      aiService.dispose();
      super.dispose();
    }
    

For complete implementation examples, check the example folder in the package repository.

Key Features #

  1. Provider Selection

    • Switch between OpenAI, Gemini, and Claude providers
    • Each provider uses its specific model configuration
  2. Error Handling

    • Proper initialization error handling
    • Message sending error handling
    • Visual error feedback
  3. UI Features

    • Beautiful message bubbles
    • Different colors for user and AI messages
    • Loading indicators
    • Provider-specific styling
  4. Service Management

    • Proper service initialization
    • Resource cleanup on dispose
    • API key configuration

Important Notes #

  1. API Keys

    • Replace YOUR_OPENAI_API_KEY with your actual OpenAI API key
    • Replace YOUR_GEMINI_API_KEY with your actual Gemini API key
    • Replace YOUR_CLAUDE_API_KEY with your actual Claude API key
    • Never commit API keys to version control
  2. Model Selection

    • OpenAI models: gpt35Turbo, gpt4, gpt4Turbo
    • Gemini models: geminiFlash, geminiPro, geminiPro15
    • Claude models: claude3Sonnet, claude3Opus, claude3Haiku
  3. Streaming Support

    • OpenAI supports streaming responses
    • Gemini Flash currently doesn't support streaming
  4. Error Handling

    • Always wrap service calls in try-catch blocks
    • Handle initialization errors
    • Provide user feedback for errors

Additional Information #

  • Contributing: We welcome contributions! Please read our contributing guidelines before submitting pull requests.
  • Issues: File issues at the GitHub repository
  • License: This project is licensed under the MIT License - see the LICENSE file for details

Support #

If you find this package helpful, please give it a star on GitHub!

8
likes
0
points
33
downloads

Publisher

unverified uploader

Weekly Downloads

A Flutter package that provides AI chat functionality with enhanced features including OpenAI, Google Gemini, and Claude AI integrations, voice recognition, and multimodal support.

Repository (GitHub)
View/report issues

License

unknown (license)

Dependencies

dart_openai, equatable, flutter, flutter_web_plugins, freezed_annotation, google_generative_ai, http, json_annotation, provider, universal_io, web_socket_channel

More

Packages that depend on ai_chat_plus

Packages that implement ai_chat_plus