This commit is contained in:
lunaticbum 2025-02-14 17:49:07 +09:00
parent 7f465d9916
commit f720e41ac1

View File

@ -134,42 +134,51 @@ class Telegram {
CoroutineScope(Dispatchers.IO).launch { CoroutineScope(Dispatchers.IO).launch {
try { try {
if (req.reqMsg?.contains("주변") == true) { if (req.reqMsg?.contains("주변") == true) {
val gSearch = "https://www.googleapis.com/customsearch/v1?key=AIzaSyARLXyvmr_554tOy3UCh3naFlZQS3-qQQM&cx=207f328d3ad7242f2&q=${req.reqMsg}&num=5&lr=kr" // val gSearch = "https://www.googleapis.com/customsearch/v1?key=AIzaSyARLXyvmr_554tOy3UCh3naFlZQS3-qQQM&cx=207f328d3ad7242f2&q=${req.reqMsg}&num=5&lr=kr"
println("gSearch >>> ${gSearch}") // println("gSearch >>> ${gSearch}")
WebClient.create().get() // WebClient.create().get()
.uri(gSearch) // .uri(gSearch)
.retrieve() // .retrieve()
.bodyToMono(GoogleSearchResult::class.java).timeout(Duration.ofMinutes(20L)).block()?.let { result -> // .bodyToMono(GoogleSearchResult::class.java).timeout(Duration.ofMinutes(20L)).block()?.let { result ->
println("gsearch result ==> ${Gson().toJson(result)}") // println("gsearch result ==> ${Gson().toJson(result)}")
req.reqMsg = req.reqMsg + "\n\n" + result.items?.map { it.snippet +"\nurl:"+it.link }?.joinToString { "\n" } // req.reqMsg = req.reqMsg + "\n\n" + result.items?.map { it.snippet +"\nurl:"+it.link }?.joinToString { "\n" }
val client = WebClient.create() // val client = WebClient.create()
client.post() // client.post()
.uri("https://lama.lunaticbum.kr/api/generate") // .uri("https://lama.lunaticbum.kr/api/generate")
.body(BodyInserters.fromValue(Gson().toJson(req))) // .body(BodyInserters.fromValue(Gson().toJson(req)))
.retrieve() // .retrieve()
.bodyToMono(String::class.java).timeout(Duration.ofMinutes(20L)).block()?.let { result -> // .bodyToMono(String::class.java).timeout(Duration.ofMinutes(20L)).block()?.let { result ->
println("generate Result ==> ${result}") // println("generate Result ==> ${result}")
Gson().fromJson(result, BumlamaResp::class.java)?.let { sss -> // Gson().fromJson(result, BumlamaResp::class.java)?.let { sss ->
println(Gson().toJson(sss)) // println(Gson().toJson(sss))
val fullUrl = "https://api.telegram.org/${globalEvv.telegramBotKey}/sendMessage?chat_id=${globalEvv.telegramMyId}&text=${req.reqMsg}의 대답이 도착했어요.\n\n${sss.response}" // val fullUrl = "https://api.telegram.org/${globalEvv.telegramBotKey}/sendMessage?chat_id=${globalEvv.telegramMyId}&text=${req.reqMsg}의 대답이 도착했어요.\n\n${sss.response}"
logService.log("fullUrl >>> ${fullUrl}") // logService.log("fullUrl >>> ${fullUrl}")
WebClient.create().get() // WebClient.create().get()
.uri(fullUrl) // .uri(fullUrl)
.retrieve() // .retrieve()
.bodyToMono(String::class.java).block() ?: "FAIL" // .bodyToMono(String::class.java).block() ?: "FAIL"
} // }
} // }
} // }
} else if (req.reqMsg?.contains("검색") == true) { } else if (req.reqMsg?.contains("검색") == true) {
val gSearch = "https://www.googleapis.com/customsearch/v1?key=AIzaSyARLXyvmr_554tOy3UCh3naFlZQS3-qQQM&cx=207f328d3ad7242f2&q=${req.reqMsg}&num=5&lr=kr" var originalQuery = req.reqMsg
val gSearch = "https://www.googleapis.com/customsearch/v1?key=AIzaSyARLXyvmr_554tOy3UCh3naFlZQS3-qQQM&cx=207f328d3ad7242f2&q=${originalQuery}&num=5&lr=kr"
println("gSearch >>> ${gSearch}") println("gSearch >>> ${gSearch}")
WebClient.create().get() WebClient.create().get()
.uri(gSearch) .uri(gSearch)
.retrieve() .retrieve()
.bodyToMono(GoogleSearchResult::class.java).timeout(Duration.ofMinutes(20L)).block()?.let { result -> .bodyToMono(GoogleSearchResult::class.java).timeout(Duration.ofMinutes(20L)).block()?.let { gsResult ->
println("gsearch result ==> ${Gson().toJson(result)}") println("gsearch result ==> ${Gson().toJson(gsResult)}")
req.reqMsg = req.reqMsg + "\n\n" + result.items?.map { it.snippet +"\nurl:"+it.link }?.joinToString { "\n" } var additionalInfo = StringBuffer()
gsResult.items?.forEach {
additionalInfo.append("- 정보 타이틀 : ").append(it.title).append("\n")
additionalInfo.append("- 정보 출처 :").append(it.link).append("\n")
additionalInfo.append("- 정보 요약 :").append(it.snippet).append("\n")
}
println("additionalInfo >>> ${additionalInfo.toString()}")
req.reqMsg = "질문 : " + originalQuery + "\n\n추가정보:" + "\n${additionalInfo.toString()} 위의 질문과 추가 정보를 고려하여 답변해주세요."
val client = WebClient.create() val client = WebClient.create()
client.post() client.post()
.uri("https://lama.lunaticbum.kr/api/generate") .uri("https://lama.lunaticbum.kr/api/generate")
@ -178,13 +187,26 @@ class Telegram {
.bodyToMono(String::class.java).timeout(Duration.ofMinutes(20L)).block()?.let { result -> .bodyToMono(String::class.java).timeout(Duration.ofMinutes(20L)).block()?.let { result ->
println("generate Result ==> ${result}") println("generate Result ==> ${result}")
Gson().fromJson(result, BumlamaResp::class.java)?.let { sss -> Gson().fromJson(result, BumlamaResp::class.java)?.let { sss ->
var toalmsg = "${originalQuery}의 대답이 도착했어요.\n" + "\n" + "${sss.response}"
println(Gson().toJson(sss)) println(Gson().toJson(sss))
val fullUrl = "https://api.telegram.org/${globalEvv.telegramBotKey}/sendMessage?chat_id=${globalEvv.telegramMyId}&text=${req.reqMsg}의 대답이 도착했어요.\n\n${sss.response}" if (toalmsg.length > 200) {
logService.log("fullUrl >>> ${fullUrl}") toalmsg.chunked(120).forEach {
WebClient.create().get() val fullUrl =
.uri(fullUrl) "https://api.telegram.org/${globalEvv.telegramBotKey}/sendMessage?chat_id=${globalEvv.telegramMyId}&text=${it}"
.retrieve() WebClient.create().get()
.bodyToMono(String::class.java).block() ?: "FAIL" .uri(fullUrl)
.retrieve()
.bodyToMono(String::class.java).block() ?: "FAIL"
}
} else {
val fullUrl =
"https://api.telegram.org/${globalEvv.telegramBotKey}/sendMessage?chat_id=${globalEvv.telegramMyId}&text=${req.reqMsg}의 대답이 도착했어요.\n\n${sss.response}"
logService.log("fullUrl >>> ${fullUrl}")
WebClient.create().get()
.uri(fullUrl)
.retrieve()
.bodyToMono(String::class.java).block() ?: "FAIL"
}
} }
} }
} }