Skip to content

Commit

Permalink
feat : free chat
Browse files Browse the repository at this point in the history
  • Loading branch information
NameIsUser06 committed Jan 5, 2024
1 parent 74ac89f commit 9f24296
Show file tree
Hide file tree
Showing 3 changed files with 43 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import com.investment.findfriend.domain.chat.presentation.dto.request.ChatRequest;
import com.investment.findfriend.domain.chat.presentation.dto.response.ChatResponse;
import com.investment.findfriend.domain.chat.presentation.dto.response.GenerateChatResponse;
import com.investment.findfriend.domain.chat.service.FreeChatService;
import com.investment.findfriend.domain.chat.service.GetListChatService;
import com.investment.findfriend.domain.chat.service.PostChatService;
import jakarta.servlet.http.HttpServletRequest;
Expand All @@ -19,6 +20,7 @@ public class ChatController {

private final PostChatService postChatService;
private final GetListChatService getListChatService;
private final FreeChatService freeChatService;

@PostMapping
public ResponseEntity<GenerateChatResponse> chat(@RequestBody ChatRequest request, HttpServletRequest httpServletRequest) {
Expand All @@ -29,4 +31,9 @@ public ResponseEntity<GenerateChatResponse> chat(@RequestBody ChatRequest reques
public ResponseEntity<List<ChatResponse>> getListChat(@RequestParam Long id, HttpServletRequest httpServletRequest) {
return getListChatService.execute(id, httpServletRequest);
}

@GetMapping("/free")
public ResponseEntity<GenerateChatResponse> freeChat(@RequestBody ChatRequest request) {
return freeChatService.execute(request);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
package com.investment.findfriend.domain.chat.service;

import com.investment.findfriend.domain.chat.presentation.dto.request.ChatRequest;
import com.investment.findfriend.domain.chat.presentation.dto.response.GenerateChatResponse;
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;
import com.investment.findfriend.global.feign.properties.ChatGPTProperties;
import lombok.RequiredArgsConstructor;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
@RequiredArgsConstructor
public class FreeChatService {

private final ChatGPTClient chatGPTClient;
private final ChatGPTProperties chatGPTProperties;

public ResponseEntity<GenerateChatResponse> execute(ChatRequest request) {
ChatGPTResponse response = chatGPTClient.getChatGPTResponse(ChatGPTRequest.builder()
.model(chatGPTProperties.getModel())
.temperature(chatGPTProperties.getTemperature())
.messages(List.of(ChatGPTMessage.builder()
.role("user")
.content(request.getText())
.build()))
.build(), "Bearer " + chatGPTProperties.getApiKey());
return ResponseEntity.ok(GenerateChatResponse.builder()
.response(response.getChoices().get(0).getMessage().getContent())
.build());
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -47,8 +47,6 @@ public ResponseEntity<GenerateChatResponse> execute(ChatRequest request, HttpSer
.build()))
.build(), "Bearer " + chatGPTProperties.getApiKey());

System.out.println(request.getText() + " " + response.getChoices().get(0).getMessage().getContent());

chatRepository.save(
Chat.builder()
.user(user)
Expand Down

0 comments on commit 9f24296

Please sign in to comment.