ChatAiServiceImpl.java 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. package com.goafanti.ChatAI.service.impl;
  2. import com.goafanti.ChatAI.bo.*;
  3. import com.goafanti.ChatAI.service.ChatAiService;
  4. import com.goafanti.common.bo.SseEmitterUTF8;
  5. import com.goafanti.common.dao.ErnieBotCommonDao;
  6. import com.goafanti.common.error.BusinessException;
  7. import com.goafanti.common.model.ErnieBotCommon;
  8. import com.goafanti.common.utils.*;
  9. import com.goafanti.core.mybatis.JDBCIdGenerator;
  10. import org.springframework.beans.factory.annotation.Autowired;
  11. import org.springframework.stereotype.Service;
  12. import java.io.IOException;
  13. import java.util.List;
  14. @Service
  15. public class ChatAiServiceImpl implements ChatAiService {
  16. @Autowired
  17. private ErnieBotCommonDao ernieBotCommonDao;
  18. @Autowired
  19. private BaiduChatUtils baiduChatUtils;
  20. @Autowired
  21. private SseEmitterUtils sseEmitterUtils;
  22. @Autowired
  23. private JDBCIdGenerator jdbcIdGenerator;
  24. @Override
  25. public SseEmitterUTF8 sendChat(InputSendChat in) {
  26. SseEmitterUTF8 sseEmitter = new SseEmitterUTF8(3600_000L);
  27. // if (clientId==null)clientId=UUID.randomUUID().toString();
  28. SseMap.sseEmitterMap.put(in.getUserId(), new SseResult(in.getUserId(), System.currentTimeMillis(), sseEmitter));
  29. try {
  30. // 先将数据返回,异步调用返回数据
  31. // baiduChatUtils.sendBaiduAiStream(in);
  32. baiduChatUtils.sendERNIEBOT4Stream(in);
  33. } catch (IOException e) {
  34. e.printStackTrace();
  35. throw new BusinessException("文言一心调用失败"+e.getLocalizedMessage());
  36. }
  37. return sseEmitter;
  38. }
  39. @Override
  40. public SseEmitterUTF8 sendGLM(InputsendGLM in) {
  41. SseEmitterUTF8 sseEmitter = new SseEmitterUTF8(3600_000L);
  42. String id=jdbcIdGenerator.generateId().toString();
  43. SseMap.sseEmitterMap.put(id, new SseResult(id, System.currentTimeMillis(), sseEmitter));
  44. try {
  45. sseEmitterUtils.sseEmitterSend(id,in);
  46. } catch (IOException e) {
  47. e.printStackTrace();
  48. throw new BusinessException("ChatGLM调用失败"+e.getLocalizedMessage());
  49. }
  50. return sseEmitter;
  51. }
  52. @Override
  53. // @Cacheable(value = "selectErnieBotCommonAll#300",key = "'page:'+'All'")
  54. public List<ErnieBotCommon> selectErnieBotCommonAll(Integer count) {
  55. return ernieBotCommonDao.selectAll(count);
  56. }
  57. }