tensorzero 0.1.0
tensorzero: ^0.1.0 copied to clipboard
A full-featured Dart client for TensorZero Gateway supporting both native inference and OpenAI-compatible APIs with streaming, tool calling, and multimodal capabilities.
example/tensorzero_example.dart
/// TensorZero Dart Client - Working Examples
///
/// This example demonstrates the current working components of the TensorZero client.
/// We're building up to the full enterprise-grade implementation.
import 'package:tensorzero/tensorzero.dart';
/// Example using the core infrastructure that works
void infrastructureExample() {
print('šļø Core Infrastructure Example');
print('==============================');
// Test Result types
final success = ResultFactory.success<String, Exception>('Hello World');
final failure = ResultFactory.failure<String, Exception>(
Exception('Something went wrong'),
);
print('Success result: $success');
print('Failure result: $failure');
// Test ModelName validation
try {
final validModel = ModelName('tensorzero::function_name::chat_completion');
print('ā
Valid model name: $validModel');
} catch (e) {
print('ā Model name validation failed: $e');
}
// Test FunctionName validation
try {
final validFunction = FunctionName('chat_completion');
print('ā
Valid function name: $validFunction');
} catch (e) {
print('ā Function name validation failed: $e');
}
// Test CacheMode
final cacheMode = CacheMode.writeOnly;
print(
'Cache mode: $cacheMode (can read: ${cacheMode.canRead}, can write: ${cacheMode.canWrite})',
);
}
/// Example using the content block system
void contentBlockExample() {
print('\nš¦ Content Block System Example');
print('=================================');
// Create different types of content blocks
final textBlock = ContentBlock.text(text: 'Hello world!');
final rawTextBlock = ContentBlock.rawText(value: 'Unprocessed text');
final thoughtBlock = ContentBlock.thought(text: 'This is a reasoning step');
print('Text block: ${textBlock.toJson()}');
print('Raw text block: ${rawTextBlock.toJson()}');
print('Thought block: ${thoughtBlock.toJson()}');
// Test content block utilities
final blocks = [textBlock, rawTextBlock, thoughtBlock];
final tokenEstimate = ContentBlockUtils.estimateTokenCount(blocks);
print('Estimated token count: $tokenEstimate');
// Test text extraction
final textRepresentation = ContentBlockUtils.toText(blocks);
print('Text representation: "$textRepresentation"');
}
/// Example using validation
void validationExample() {
print('\nā
Validation Example');
print('======================');
// Test model name validation
final validModelResult = TensorZeroValidators.validModelName(
'tensorzero::function_name::test',
);
print('Valid model name: $validModelResult');
final invalidModelResult = TensorZeroValidators.validModelName(
'invalid-model',
);
print('Invalid model name: $invalidModelResult');
// Test function name validation
final validFunctionResult = FunctionNameValidators.isValid(
'valid_function_name',
);
print('Valid function name: $validFunctionResult');
final invalidFunctionResult = FunctionNameValidators.isValid(
'invalid function name!',
);
print('Invalid function name: $invalidFunctionResult');
}
/// Main function - run all examples
void main() {
print('š TensorZero Dart Client - Working Examples');
print('==============================================');
infrastructureExample();
contentBlockExample();
validationExample();
print('\nā
All examples completed successfully!');
print('\nš Next Steps:');
print('- OpenAI-compatible client implementation');
print('- Native TensorZero client');
print('- Streaming support');
print('- Tool calling system');
print('- Full integration tests');
}