Skip to content

Commit

Permalink
init: oai - add & return search results
Browse files Browse the repository at this point in the history
  • Loading branch information
iamfiscus committed Nov 12, 2024
1 parent 93e3f4c commit dd89f88
Show file tree
Hide file tree
Showing 7 changed files with 140 additions and 241 deletions.
18 changes: 12 additions & 6 deletions lib/app/modules/diary/controllers/diary_controller.dart
Original file line number Diff line number Diff line change
Expand Up @@ -48,13 +48,15 @@ class FoodVoiceResult {
static List<FoodVoiceResult> fromOpenAiCompletion(List<dynamic> items) {
return items.map((item) {
// Handle nulls for food items
final food = item['food'];
final food = item;
return FoodVoiceResult(
label: food?['label'] as String? ?? 'Unknown Food', // Default value for label
searchTerm: food?['searchTerm'] as String? ?? '', // Default to empty string
quantity: (food?['quantity'] as double?) ?? 0.0, // Default to 0.0
unit: food?['unit'] as String? ?? 'units', // Default unit
mealType: _parseMealType(food?['mealType'] as String? ?? 'UNKNOWN'), // Default to UNKNOWN
searchTerm: (food?['searchTerm'] as String?) ?? '', // Default to empty string
quantity: (food?['quantity'] is int)
? (food?['quantity'] as int).toDouble()
: (food?['quantity'] as double? ?? 0.0), // Default to 0.0
unit: (food?['unit'] as String?) ?? 'units', // Default unit
mealType: _parseMealType((food?['mealType'] as String?) ?? 'UNKNOWN'), // Default to UNKNOWN
);
}).toList();
}
Expand Down Expand Up @@ -163,6 +165,7 @@ class DiaryController extends GetxController {
isAvailable.value = await speech.initialize(
onError: (error) => _onSpeechError(error),
onStatus: (status) => _onSpeechStatus(status),
finalTimeout: const Duration(milliseconds: 5000),
);

if (isAvailable.value) {
Expand All @@ -184,6 +187,8 @@ class DiaryController extends GetxController {
onResult: _onSpeechResult,
listenOptions: SpeechListenOptions(partialResults: true),
localeId: currentLocaleId.value,
listenFor: const Duration(seconds: 10),
pauseFor: const Duration(seconds: 5),
);
isListening.value = true;
} catch (e) {
Expand Down Expand Up @@ -505,7 +510,8 @@ class DiaryController extends GetxController {
matchedFoods.value = voiceResults.map((r) => r.label).toList();
} else {
final openAIChatCompletion = await OpenAIService.to.extractFoodsFromText(text);
final newItems = FoodVoiceResult.fromOpenAiCompletion(openAIChatCompletion['foods']['items'] as List<dynamic>);
final newItems = FoodVoiceResult.fromOpenAiCompletion(
openAIChatCompletion['foods']['items'] as List<dynamic>);
voiceResults.value = newItems;

matchedFoods.value = voiceResults.map((r) => r.label).toList();
Expand Down
Loading

0 comments on commit dd89f88

Please sign in to comment.