AiClient constructor
AiClient({
- required AiProvider provider,
- required String apiKey,
- String? model,
- HttpClient? httpClient,
- Duration timeout = const Duration(seconds: 60),
Implementation
AiClient({
required this.provider,
required String apiKey,
String? model,
HttpClient? httpClient,
this.timeout = const Duration(seconds: 60),
}) : _apiKey = apiKey.trim(),
model = model ?? provider.defaultModel,
_http = httpClient ?? HttpClient(),
_ownsClient = httpClient == null {
if (_apiKey.isEmpty || !RegExp(r'^[\x21-\x7e]+$').hasMatch(_apiKey)) {
throw ArgumentError(
'Set a valid ${provider.environmentKey} environment variable.',
);
}
if (!RegExp(r'^[a-zA-Z0-9][a-zA-Z0-9._:-]{0,127}$').hasMatch(this.model)) {
throw ArgumentError('Invalid AI model ID.');
}
if (timeout <= Duration.zero)
throw ArgumentError('AI timeout must be positive.');
}