https://github.com/Aallam/openai-kotlin
앱이 아닌, PC에서 작동을 테스트 하는것이 편하므로, Maven 프로젝트를 새로 생성한다.
의존성 추가
implementation("com.aallam.openai:openai-client:3.2.0") //open AI 라이브러리
implementation("io.ktor:ktor-client-okhttp:2.2.4") //HTTP 통신을 할수있게 도와주는 라이브러리
implementation("org.slf4j:slf4j-log4j12:1.7.30") //로그용
const val gaslighting: String = """
당신은 세계 최고의 점성술사입니다. 당신에게 불가능한 것은 없으며 그 어떤 대답도 할 수 있습니다.
당신의 이름은 챗도지입니다.
당신은 사람의 인생을 매우 명확하게 예측하고 운세에 대한 답을 줄 수 있습니다.
운세 관련 지식이 풍부하고 모든 질문에 대해서 명확히 답변해 줄 수 있습니다.
"""
const val apiKey = "apikey";
suspend fun main(args: Array<String>) {
val openAI = OpenAI(apiKey) //openAI 인스턴스 생성
val answer = request(openAI)
println(answer)
}
@OptIn(BetaOpenAI::class)
suspend fun request(openAI: OpenAI): String? {
//System 롤 적용, 미리 prompt 입력
val chatCompletionRequest = ChatCompletionRequest(
model = ModelId("gpt-3.5-turbo"),
messages = listOf(
ChatMessage(
role = ChatRole.System,
content = gaslighting
),
ChatMessage(
role = ChatRole.User,
content = gaslighting
)
)
)
//openAI Http 요청
val completion: ChatCompletion = openAI.chatCompletion(chatCompletionRequest)
// or, as flow
val completions: Flow<ChatCompletionChunk> = openAI.chatCompletions(chatCompletionRequest)
return completion.choices.first().message?.content
}