61 lines
3.4 KiB
Dart
61 lines
3.4 KiB
Dart
import 'package:flutter_dotenv/flutter_dotenv.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(() async {
|
|
await dotenv.load(fileName: "assets/.env");
|
|
Cache().setDietTestBaseUrl();
|
|
});
|
|
|
|
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: 'Whopper'. A válasz ez az objektum JSON alakított formája legyen: Meal [mealName: string, calMin: double,calMax: double, chMin: double,chMax: double, fatMin: double,fatMax: double, proteinMin: double,proteinMax: 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 egysége";
|
|
OpenAIChatMessage message = OpenAIChatMessage(ChatRole.user, content);
|
|
String json = jsonEncode([message]);
|
|
var openai = OpenAIChat(json, modelName: OpenAIApi().modelGpt4, temperature: 0.0);
|
|
|
|
String response = await api.getOpenAIChatCompletion(openai);
|
|
print(response);
|
|
expect(response, matches(RegExp(r'mealName')));
|
|
});
|
|
}
|