v1.2.9.3 fix on generated diet JSON handling

This commit is contained in:
bossanyit 2023-06-15 16:31:22 +02:00
parent 4362988c4a
commit 7ea9164f66
2 changed files with 186 additions and 177 deletions

View File

@ -82,7 +82,9 @@ class DietController(private val dietRepository: DietRepository, private val mea
val formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss") val formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")
val todayString = now.format(formatter) val todayString = now.format(formatter)
var diet: Diet? = dietRepository.findTheLastEmptyDiet(dietUserId) var diet: Diet? = dietRepository.findTheLastEmptyDiet(dietUserId)
if ( diet == null ) { val dietSaved: Diet?
this.openAiKey = openaiKey
if (diet == null) {
diet = Diet( diet = Diet(
dietUserId = dietUserId, dietUserId = dietUserId,
dietText = "", dietText = "",
@ -91,17 +93,17 @@ class DietController(private val dietRepository: DietRepository, private val mea
generating = 1 generating = 1
) )
diet = dietRepository.save(diet) diet = dietRepository.save(diet)
println("new diet: $diet.dietId")
}
var result: String? var result: String?
this.openAiKey = openaiKey
if ( !test) {
val systemInput = "Te egy táplálkozási szakértő vagy. A feladat egy étrend elkészítése ebben a 3 lépésben:\n" + if (!test) {
val systemInput =
"Te egy táplálkozási szakértő vagy. A feladat egy étrend elkészítése ebben a 3 lépésben:\n" +
"\n" + "\n" +
"1. Vizsgáld meg az input adatokat, és készítsd el az étrendet\n" + "1. Vizsgáld meg az input adatokat, és készítsd el az étrendet\n" +
"2. Ellenőrizd az ételeket, hogy tényleg létezik-e olyan, és megfelel az input adatok feltételeinek\n" + "2. Ellenőrizd az ételeket, hogy tényleg létezik-e olyan, és megfelel az input adatok feltételeinek\n" +
"3. Ellenőrizd a kimeneti formátumot. Csak a megadott kimeneti formátumban válaszolj" "3. Ellenőrizd a kimeneti formátumot. Csak a megadott JSON kimeneti formátumban válaszolj, semmilyen más formátum nem elfogadott.\n"
val deferred = GlobalScope.async { val deferred = GlobalScope.async {
@ -116,6 +118,7 @@ class DietController(private val dietRepository: DietRepository, private val mea
runBlocking { runBlocking {
result = deferred.await().toString() result = deferred.await().toString()
result = extractJson(result!!) result = extractJson(result!!)
println("extracted json: $result")
} }
if (result == null || result!!.isEmpty()) { if (result == null || result!!.isEmpty()) {
@ -268,12 +271,17 @@ class DietController(private val dietRepository: DietRepository, private val mea
"}" "}"
} }
val gson = Gson()
diet.dietText = result!! diet.dietText = result!!
diet.startDate = todayString diet.startDate = todayString
diet.premium = 1 diet.premium = 1
val dietSaved = dietRepository.save(diet) dietSaved = dietRepository.save(diet)
} else {
dietSaved = diet
}
val gson = Gson()
val dietJson = JSONObject(diet.dietText) val dietJson = JSONObject(diet.dietText)
val mealPlansJson = dietJson.getJSONArray("DIET") val mealPlansJson = dietJson.getJSONArray("DIET")

View File

@ -168,11 +168,12 @@ class DietTest {
dietRepository.delete(newDiet2) dietRepository.delete(newDiet2)
} }
//@Test @Test
fun `find the last empty diet successfully`() { fun `find the last empty diet successfully`() {
val diet: Diet? = dietRepository.findTheLastEmptyDiet(2) val diet: Diet? = dietRepository.findTheLastEmptyDiet(2)
assertNotNull(diet) assertNotNull(diet)
assertEquals(diet.premium, 1) assertEquals(diet.premium, 1)
println("DietID: ${diet.dietId}")
} }
@Test @Test
@ -200,7 +201,7 @@ class DietTest {
"]}" "]}"
mockMvc.perform( mockMvc.perform(
MockMvcRequestBuilders.post("/api/diet/generate_premium/2/true") MockMvcRequestBuilders.post("/api/diet/generate_premium/2/false")
.contentType(MediaType.APPLICATION_JSON) .contentType(MediaType.APPLICATION_JSON)
.header("Authorization", "Bearer $authToken") .header("Authorization", "Bearer $authToken")
.content(input) .content(input)