easybeam_flutter 1.0.1 copy "easybeam_flutter: ^1.0.1" to clipboard
easybeam_flutter: ^1.0.1 copied to clipboard

A Flutter SDK for Easybeam AI platform

Easybeam Flutter SDK #

Build and Test

Easybeam Flutter SDK is a powerful and flexible library for integrating Easybeam AI functionality into your Flutter applications. This SDK provides seamless access to Easybeam's AI-powered chat and workflow capabilities, supporting both streaming and non-streaming interactions.

Features #

  • Portal and Workflow Integration: Easily interact with Easybeam portals and workflows.
  • Streaming Support: Real-time streaming of AI responses for interactive experiences.
  • Non-Streaming Requests: Traditional request-response pattern for simpler interactions.
  • Flexible Configuration: Customize the SDK behavior to fit your application needs.
  • Error Handling: Robust error handling for reliable integration.
  • Review Submission: Built-in functionality to submit user reviews.

Installation #

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

dependencies:
  easybeam_flutter: ^1.0.0

Then run:

flutter pub get

Usage #

Initialization #

First, import the package and create an instance of Easybeam:

import 'package:easybeam_flutter/easybeam_flutter.dart';

final easybeam = Easybeam(EasyBeamConfig(token: 'your_api_token_here'));

Streaming Interaction #

To start a streaming interaction with a portal:

final cancelFunction = easybeam.streamPortal(
  portalId: 'your_portal_id',
  filledVariables: {'key': 'value'},
  messages: [
    ChatMessage(
      content: 'Hello, AI!',
      role: ChatRole.USER,
      createdAt: ChatMessage.getCurrentTimestamp(),
      id: '1',
    ),
  ],
  onNewResponse: (response) {
    print('New message: ${response.newMessage.content}');
  },
  onClose: () {
    print('Stream closed');
  },
  onError: (error) {
    print('Error: $error');
  },
);

// To cancel the stream later:
cancelFunction();

Non-Streaming Interaction #

For a simple request-response interaction:

try {
  final response = await easybeam.getPortal(
    portalId: 'your_portal_id',
    filledVariables: {'key': 'value'},
    messages: [
      ChatMessage(
        content: 'Hello, AI!',
        role: ChatRole.USER,
        createdAt: ChatMessage.getCurrentTimestamp(),
        id: '1',
      ),
    ],
  );
  print('AI response: ${response.newMessage.content}');
} catch (e) {
  print('Error: $e');
}

Submitting a Review #

To submit a review for a chat interaction:

await easybeam.review(
  chatId: 'your_chat_id',
  userId: 'user123',
  reviewScore: 5,
  reviewText: 'Great experience!',
);

Advanced Usage #

Custom HTTP Client #

You can inject a custom HTTP client for more control over network requests:

import 'package:http/http.dart' as http;

final customClient = http.Client();
easybeam.injectHttpClient(customClient);

Cleanup #

When you're done with the Easybeam instance, make sure to dispose of it to clean up resources:

easybeam.dispose();

Error Handling #

The SDK provides detailed error messages. Always wrap API calls in try-catch blocks for proper error handling.

Notes #

  • Ensure you have a valid Easybeam API token before using the SDK.
  • The SDK uses Server-Sent Events (SSE) for streaming, which may have implications for backend compatibility and network configurations.
  • For production applications, consider implementing proper token management and security practices.

Contributing #

Contributions to the Easybeam Flutter SDK are welcome! Please refer to the contributing guidelines for more information.

License #

This project is licensed under the MIT License - see the LICENSE file for details.

Support #

For support, please contact hello@easybeam.ai or visit our documentation.

0
likes
130
points
224
downloads

Publisher

unverified uploader

Weekly Downloads

A Flutter SDK for Easybeam AI platform

Repository (GitHub)
View/report issues

Documentation

API reference

License

MIT (license)

Dependencies

fetch_client, flutter, http, intl

More

Packages that depend on easybeam_flutter