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
}