Skip to content

Commit

Permalink
Merge pull request #20 from JunKyung-Jo/feat/chat
Browse files Browse the repository at this point in the history
FEAT : Chatting 기능 구현
  • Loading branch information
NameIsUser06 authored Dec 15, 2023
2 parents a70b3b2 + 3872b51 commit eea7d5a
Show file tree
Hide file tree
Showing 4 changed files with 26 additions and 8 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
import com.investment.findfriend.domain.chat.repository.ChatRepository;
import com.investment.findfriend.domain.user.domain.User;
import com.investment.findfriend.domain.user.repository.UserRepository;
import com.investment.findfriend.global.feign.dto.request.gpt.ChatGPTMessage;
import com.investment.findfriend.global.feign.dto.request.gpt.ChatGPTRequest;
import com.investment.findfriend.global.feign.dto.response.gpt.ChatGPTResponse;
import com.investment.findfriend.global.feign.gpt.ChatGPTClient;
Expand All @@ -18,6 +19,9 @@
import org.springframework.stereotype.Service;

import java.time.LocalDateTime;
import java.util.Collection;
import java.util.Collections;
import java.util.List;

@Service
@RequiredArgsConstructor
Expand All @@ -35,22 +39,24 @@ public ResponseEntity<GenerateChatResponse> execute(ChatRequest request, HttpSer

ChatGPTResponse response = chatGPTClient.getChatGPTResponse(ChatGPTRequest.builder()
.model(chatGPTProperties.getModel())
.max_tokens(chatGPTProperties.getMax_tokens())
.temperature(chatGPTProperties.getTemperature())
.prompt(request.getText())
.build(), chatGPTProperties.getApiKey());
.messages(List.of(ChatGPTMessage.builder()
.role("user")
.content(request.getText())
.build()))
.build(), "Bearer " + chatGPTProperties.getApiKey());

chatRepository.save(
Chat.builder()
.user(user)
.userMessage(request.getText())
.replyMessage(response.getChoices().get(0).getText())
.replyMessage(response.getChoices().get(0).getMessage().getContent())
.timestamp(LocalDateTime.now())
.build()
);

return ResponseEntity.ok(GenerateChatResponse.builder()
.response(response.getChoices().get(0).getText())
.response(response.getChoices().get(0).getMessage().getContent())
.build());
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package com.investment.findfriend.global.feign.dto.request.gpt;

import lombok.Builder;
import lombok.Getter;

@Getter
@Builder
public class ChatGPTMessage {
private String role;
private String content;
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,12 @@
import lombok.Builder;
import lombok.Getter;

import java.util.List;

@Getter
@Builder
public class ChatGPTRequest {
private String model;
private String prompt;
private List<ChatGPTMessage> messages;
private int temperature;
private int max_tokens;
}
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@

@FeignClient(
name = "ChatGPTClient",
url = "https://api.openai.com/v1/completions"
url = "https://api.openai.com/v1/chat/completions"
)
public interface ChatGPTClient {
@PostMapping
Expand Down

0 comments on commit eea7d5a

Please sign in to comment.