API 1.2+3 open ai chat completion

This commit is contained in:
Tibor Bossanyi
2023-03-12 17:06:44 +01:00
parent cae214f87e
commit 26d344777c
9 changed files with 128 additions and 10 deletions
@@ -1,7 +1,11 @@
package com.aitrainer.api.controller
import com.aallam.openai.api.BetaOpenAI
import com.aallam.openai.api.chat.ChatMessage
import com.aitrainer.api.model.OpenAI
import com.aitrainer.api.model.OpenAIChat
import com.aitrainer.api.openai.OpenAIService
import com.google.gson.Gson
import kotlinx.coroutines.*
import org.slf4j.LoggerFactory
import org.springframework.web.bind.annotation.*
@@ -41,6 +45,21 @@ class OpenAIController() {
return result
}
@OptIn(BetaOpenAI::class, DelicateCoroutinesApi::class)
@PostMapping("/openai/chat_completion")
fun getOpenAIChatCompletion(@RequestBody openai: OpenAIChat) : String {
var result = ""
val openAIService = OpenAIService(openai.modelName, openai.temperature)
val deferred = GlobalScope.async {
openAIService.chatCompletion(openai.messages)
}
runBlocking {
result = deferred.await().toString()
println("Result: $result" )
}
return result
}
@OptIn(DelicateCoroutinesApi::class)
@GetMapping("/openai/list_models")
fun getOpenAIModels(): MutableList<String> {