perplexity_dart 0.0.1 copy "perplexity_dart: ^0.0.1" to clipboard
perplexity_dart: ^0.0.1 copied to clipboard

A lightweight Dart SDK to interact with Perplexity.ai's chat completion API (streaming + model switching supported).

example/example.dart

import 'dart:io';
import 'package:perplexity_dart/perplexity_dart.dart';

void main() async {
  final client = PerplexityClient(
    apiKey: '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',
  );

  stdout.write("Enter your prompt: ");
  final prompt = stdin.readLineSync();

  stdout.write("Stream response? (y/n): ");
  final streamInput = stdin.readLineSync();
  final useStream = streamInput?.toLowerCase() == 'y';

  if (prompt == null || prompt.trim().isEmpty) {
    print("⚠️ No prompt entered. Exiting.");
    return;
  }

  try {
    if (useStream) {
      print("\nπŸ” Streaming response:\n");
      final stream = client.streamChat(prompt: prompt.trim());
      await for (final chunk in stream) {
        stdout.write(chunk);
      }
      print("\n\nβœ… Done.");
    } else {
      print("\nπŸ“₯ Fetching full response...\n");
      final response = await client.sendMessage(prompt: prompt.trim());

      print("πŸ’¬ Answer:\n${response.content}\n");

      if (response.citations.isNotEmpty) {
        print("πŸ”— Sources:");
        for (final source in response.citations) {
          print("- $source");
        }
      }
    }
  } catch (e) {
    print("\n❌ Error: $e");
  }
}
2
likes
130
points
79
downloads

Publisher

unverified uploader

Weekly Downloads

A lightweight Dart SDK to interact with Perplexity.ai's chat completion API (streaming + model switching supported).

Repository (GitHub)
View/report issues

Topics

#perplexity #chat #ai #llm #sdk

Documentation

API reference

License

MIT (license)

Dependencies

bloc, http

More

Packages that depend on perplexity_dart