perplexity_dart 0.0.1
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).
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");
}
}