Skip to content

Commit 3935e50

Browse files
DevDesai444sanchitmonga22
authored andcommitted
Validate Flutter LLM settings before FFI calls
1 parent 7bb0914 commit 3935e50

2 files changed

Lines changed: 31 additions & 1 deletion

File tree

sdk/runanywhere-flutter/packages/runanywhere/lib/native/dart_bridge_llm.dart

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ import 'dart:ffi';
1818
import 'dart:isolate'; // Keep for non-streaming generation
1919

2020
import 'package:ffi/ffi.dart';
21-
21+
import 'package:runanywhere/features/llm/llm_configuration.dart';
2222
import 'package:runanywhere/foundation/logging/sdk_logger.dart';
2323
import 'package:runanywhere/native/ffi_types.dart';
2424
import 'package:runanywhere/native/platform_loader.dart';
@@ -241,6 +241,12 @@ class DartBridgeLLM {
241241
double temperature = 0.7,
242242
String? systemPrompt,
243243
}) async {
244+
_validateGenerationParameters(
245+
maxTokens: maxTokens,
246+
temperature: temperature,
247+
systemPrompt: systemPrompt,
248+
);
249+
244250
final handle = getHandle();
245251

246252
if (!isLoaded) {
@@ -284,6 +290,13 @@ class DartBridgeLLM {
284290
double temperature = 0.7,
285291
String? systemPrompt,
286292
}) {
293+
_validateGenerationParameters(
294+
maxTokens: maxTokens,
295+
temperature: temperature,
296+
systemPrompt: systemPrompt,
297+
streamingEnabled: true,
298+
);
299+
287300
final handle = getHandle();
288301

289302
if (!isLoaded) {
@@ -367,6 +380,21 @@ class DartBridgeLLM {
367380
}
368381
}
369382

383+
void _validateGenerationParameters({
384+
required int maxTokens,
385+
required double temperature,
386+
String? systemPrompt,
387+
bool streamingEnabled = false,
388+
}) {
389+
LLMConfiguration(
390+
contextLength: 32768,
391+
maxTokens: maxTokens,
392+
temperature: temperature,
393+
systemPrompt: systemPrompt,
394+
streamingEnabled: streamingEnabled,
395+
).validate();
396+
}
397+
370398
// MARK: - Cleanup
371399

372400
/// Destroy the component and release resources.

sdk/runanywhere-flutter/packages/runanywhere/lib/public/runanywhere.dart

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1975,6 +1975,8 @@ class RunAnywhere {
19751975
tokensPerSecond: tokensPerSecond,
19761976
structuredData: structuredData,
19771977
);
1978+
} on SDKError {
1979+
rethrow;
19781980
} catch (e) {
19791981
// Track generation failure
19801982
TelemetryService.shared.trackError(

0 commit comments

Comments
 (0)