workouttest_util/test/openai_test.dart
2023-03-12 21:48:03 +01:00

59 lines
3.2 KiB
Dart

import 'package:flutter_test/flutter_test.dart';
import 'package:workouttest_util/model/cache.dart';
import 'package:workouttest_util/model/openai.dart';
import 'package:workouttest_util/model/openai_chat.dart';
import 'package:workouttest_util/model/openai_chat_message.dart';
import 'package:workouttest_util/service/openai_service.dart';
import 'dart:convert';
void main() {
setUp(() {
Cache().setLocalBaseUrl();
});
test('openai response succesful', () async {
var api = OpenAIApi();
String response = await api.getOpenAICompletion("Who wrote the song 'yellow submarine'?");
print(response);
expect(response, matches(RegExp(r'Beatles')));
});
test('openai with model response succesful', () async {
var api = OpenAIApi();
String question =
"Készíts egy heti egészséges és változatos étrendet egy új felhasználónak az alábbi adatok alapján: férfi, 51 éves. Célja: Le szeretnék fogyni, heti mozgás: Hetente 3-4 alkalom, BMI: 24.784257517393772, BMR: 1723.75. A neve Tibi. Az egyes étkezések különbözőek legyenek, és add meg hozzájuk a mennyiséget és a kalóriatartalmat is. Vedd figyelembe, hogy a napi összes kalóriaérték 200-400 kCal-val kevesebb legyen, mint 1723.75 kCal";
var openai = OpenAI(question, "text-davinci-003", 0.5);
String response = await api.getOpenAICompletionWithModel(openai);
print(response);
expect(response, matches(RegExp(r'Tibi')));
});
test('openai chat completion response succesful', () async {
var api = OpenAIApi();
String content =
"Te a Diet4You applikáció asszisztense vagy. Add meg ennek az ételnek a kalória és tápanyagadatait: 'Hortobágyi palacsinta'. A válasz ez az objektum JSON alakított formája legyen: Meal [mealName: string, cal: double, ch: double, fat: double, protein: double, sugar: double, portion: double, unit: string]. A portion paraméter azt tartalmazza, hogy ebből az ételből hány gramm v. ml az átlagos adag. A unit paraméter a 'portion' mennyiségi egyésge";
OpenAIChatMessage message = OpenAIChatMessage(ChatRole.user, content);
String json = jsonEncode([message]);
var openai = OpenAIChat(json);
String response = await api.getOpenAIChatCompletion(openai);
print(response);
expect(response, matches(RegExp(r'mealName')));
});
test('openai chat completion response succesful 2', () async {
var api = OpenAIApi();
String content =
"Te a Diet4You applikáció asszisztense vagy. Add meg ennek az ételnek a kalória és tápanyagadatait: 'Szegedi halászlé'. A válasz ez az objektum JSON alakított formája legyen: Meal [mealName: string, cal: double, ch: double, fat: double, protein: double, sugar: double, portion: double, unit: string]. A portion paraméter azt tartalmazza, hogy ebből az ételből hány gramm v. ml az átlagos adag. A unit paraméter a 'portion' mennyiségi egyésge";
OpenAIChatMessage message = OpenAIChatMessage(ChatRole.user, content);
String json = jsonEncode([message]);
var openai = OpenAIChat(json);
String response = await api.getOpenAIChatCompletion(openai);
print(response);
expect(response, matches(RegExp(r'mealName')));
});
}