From 406d4685897adb0ea700107c92c248c48c4a33f3 Mon Sep 17 00:00:00 2001 From: ttaehee Date: Sun, 14 May 2023 23:08:24 +0900 Subject: [PATCH] =?UTF-8?q?feat=20:=20api=20=ED=98=B8=EC=B6=9C=EC=9D=84=20?= =?UTF-8?q?=EC=88=98=ED=96=89=ED=95=A0=20=ED=81=B4=EB=9D=BC=EC=9D=B4?= =?UTF-8?q?=EC=96=B8=ED=8A=B8=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bot/global/config/OpenFeignClientConfig.java | 13 +++++++++++++ .../bot/global/feign/openai/OpenAiChatClient.java | 14 ++++++++++++++ 2 files changed, 27 insertions(+) create mode 100644 src/main/java/com/taehee/bot/global/feign/openai/OpenAiChatClient.java diff --git a/src/main/java/com/taehee/bot/global/config/OpenFeignClientConfig.java b/src/main/java/com/taehee/bot/global/config/OpenFeignClientConfig.java index 01f5eca..1c0c5c1 100644 --- a/src/main/java/com/taehee/bot/global/config/OpenFeignClientConfig.java +++ b/src/main/java/com/taehee/bot/global/config/OpenFeignClientConfig.java @@ -1,7 +1,9 @@ package com.taehee.bot.global.config; +import feign.RequestInterceptor; import org.springframework.beans.factory.annotation.Value; import org.springframework.cloud.openfeign.EnableFeignClients; +import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration @@ -10,4 +12,15 @@ public class OpenFeignClientConfig { @Value("${openai.api-key}") private String apiKey; + + @Value("${openai.model}") + private String model; + + @Value("${openai.role}") + private String role; + + @Bean + public RequestInterceptor apiKeyInterceptor() { + return requestTemplate -> requestTemplate.header("Authorization", apiKey); + } } diff --git a/src/main/java/com/taehee/bot/global/feign/openai/OpenAiChatClient.java b/src/main/java/com/taehee/bot/global/feign/openai/OpenAiChatClient.java new file mode 100644 index 0000000..d4cd050 --- /dev/null +++ b/src/main/java/com/taehee/bot/global/feign/openai/OpenAiChatClient.java @@ -0,0 +1,14 @@ +package com.taehee.bot.global.feign.openai; + +import com.taehee.bot.global.config.OpenFeignClientConfig; +import com.taehee.bot.global.feign.openai.dto.request.OpenAiRequest; +import com.taehee.bot.global.feign.openai.dto.response.OpenAiResponse; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; + +@FeignClient(name = "OpenAiChatClient", url = "${openai.url}", configuration = OpenFeignClientConfig.class) +public interface OpenAiChatClient { + @PostMapping + OpenAiResponse call(@RequestBody OpenAiRequest openAiRequest); +}