LlmChatService.java 1.2 KB

123456789101112131415161718192021222324252627282930313233343536
  1. package com.webchat.aigc.llm;
  2. import com.webchat.domain.dto.aigc.ChatCompletionMessageRequest;
  3. import com.webchat.domain.vo.llm.ChatCompletionMessage;
  4. import com.webchat.domain.vo.llm.ChatCompletionResponse;
  5. import com.webchat.domain.vo.llm.ChatMessageRole;
  6. import org.springframework.beans.factory.annotation.Value;
  7. import org.springframework.stereotype.Service;
  8. import java.util.Arrays;
  9. import java.util.List;
  10. @Service
  11. public class LlmChatService {
  12. @Value("${llm.config.model:deepseek}")
  13. private String modal;
  14. public String chat(ChatCompletionMessageRequest chatCompletionMessageRequest) {
  15. final List<ChatCompletionMessage> messageList = Arrays.asList(
  16. new ChatCompletionMessage(ChatMessageRole.USER.value(),
  17. chatCompletionMessageRequest.getPrompt()));
  18. AbstractLLMChatService abstractLLMChatService = LLMServiceFactory.getLLMService(modal);
  19. try {
  20. ChatCompletionResponse chatCompletionResponse = abstractLLMChatService.chat(messageList);
  21. return chatCompletionResponse.getChoices().get(0).getMessage().getContent();
  22. } catch (Exception e) {
  23. throw new RuntimeException(e);
  24. }
  25. }
  26. }