groq 1.0.0 copy "groq: ^1.0.0" to clipboard
groq: ^1.0.0 copied to clipboard

The Groq Dart SDK enables developers to use Groq's api. Groq is on a mission to set the standard for GenAI inference speed, helping real-time AI applications come to life today.

Groq Dart Package #

Overview #

This Dart package provides a simple and elegant integration with the Groq AI API, allowing developers to easily incorporate conversational AI capabilities into their Flutter applications.

Features #

  • Simple API key configuration
  • Support for multiple Groq AI models
  • Easy message sending and chat management
  • Custom system instructions
  • Error handling
  • Flutter-friendly UI components

Installation #

Add the following to your pubspec.yaml:

dependencies:
  groq: ^latest_version

Then run:

flutter pub get

Usage #

1. API Key Configuration #

You can set your Groq API key when running the app using:

flutter run --dart-define=groqApiKey='YOUR_GROQ_API_KEY'

2. Basic Example #

import 'package:groq/groq.dart';

// Initialize Groq client
final groq = Groq(
  apiKey: const String.fromEnvironment('groqApiKey'),
  model: "gemma-7b-it", // Optional: specify a model
);

// Start a chat session
groq.startChat();

// Send a message
GroqResponse response = await groq.sendMessage("Hello, how are you?");
print(response.choices.first.message.content);

3. Custom System Instructions #

You can set custom system instructions to guide the AI's behavior:

// Set custom instructions for the chat
groq.setCustomInstructionsWith(
  "You are a helpful assistant who always responds in a friendly, concise manner. " +
  "Use casual language and provide clear, direct answers."
);

// Now subsequent messages will follow these instructions
GroqResponse response = await groq.sendMessage("Tell me about AI");

4. Complete Flutter Chat Example #

class ChatScreen extends StatefulWidget {
  @override
  _ChatScreenState createState() => _ChatScreenState();
}

class _ChatScreenState extends State<ChatScreen> {
  final _groq = Groq(
    apiKey: const String.fromEnvironment('groqApiKey'),
    model: "gemma-7b-it",
  );

  final List<ChatMessage> _messages = [];

  @override
  void initState() {
    super.initState();
    // Set custom instructions when initializing
    _groq.setCustomInstructionsWith(
      "You are a helpful chat assistant for a Flutter app. " +
      "Respond concisely and be supportive."
    );
  }

  void _sendMessage(String text) async {
    // Add user message
    setState(() {
      _messages.add(ChatMessage(text: text, isUserMessage: true));
    });

    // Get AI response
    try {
      GroqResponse response = await _groq.sendMessage(text);
      setState(() {
        _messages.add(ChatMessage(
          text: response.choices.first.message.content, 
          isUserMessage: false
        ));
      });
    } on GroqException catch (error) {
      // Handle errors
      setState(() {
        _messages.add(ErrorMessage(text: error.message));
      });
    }
  }
}

Supported Models #

The package supports various Groq AI models, including:

  • gemma-7b-it
  • llama2-70b-4096
  • And more (check Groq documentation for latest models)

Key Methods #

  • startChat(): Initializes a new chat session
  • sendMessage(String message): Sends a message and receives a response
  • setCustomInstructionsWith(String instructions): Sets custom system instructions for the AI
  • clearChat(): Clears the current chat context

Error Handling #

The package includes built-in error handling with GroqException to help you manage API interactions gracefully.

Contributing #

Contributions are welcome! Please feel free to submit a Pull Request.

Disclaimer #

This package is a community project and is not officially affiliated with Groq.

17
likes
0
points
1.06k
downloads

Publisher

verified publishertagonsoft.com

Weekly Downloads

The Groq Dart SDK enables developers to use Groq's api. Groq is on a mission to set the standard for GenAI inference speed, helping real-time AI applications come to life today.

Repository (GitHub)
View/report issues

License

unknown (license)

Dependencies

http

More

Packages that depend on groq