作者 钟来

Default Changelist

... ... @@ -26,6 +26,28 @@ public class ChatGPTApiController {
protected final Logger logger = LoggerFactory.getLogger(this.getClass());
@ApiOperation(value = "发送免费的接口")
@PostMapping("/sendFreeMessage")
public String sendFreeMessage(@RequestBody String jsonStr)
{
int timeout = 3000000;
Map<String,String> map = new HashMap<>();
map.put("Authorization","Bearer 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");
String str = HttpRequest.post("https://api.openai.com/v1/chat/completions").setReadTimeout(timeout).timeout(timeout).addHeaders(map).body(jsonStr).execute().body();
return str;
}
@ApiOperation(value = "发送不免费的接口")
@PostMapping("/sendNotFreeMessage")
public String sendNotFreeMessage(@RequestBody String jsonStr)
{
int timeout = 3000000;
Map<String,String> map = new HashMap<>();
map.put("Authorization","Bearer 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");
String str = HttpRequest.post("https://api.openai.com/v1/chat/completions").setReadTimeout(timeout).timeout(timeout).addHeaders(map).body(jsonStr).execute().body();
return str;
}
@ApiOperation(value = "测试")
@PostMapping("/sendMessage")
public String sendMessage(HttpServletResponse response, @RequestBody ChatGPTApiDto chatGPTApiDto)
... ... @@ -37,10 +59,10 @@ public class ChatGPTApiController {
jsonObject.put("model","gpt-3.5-turbo-0301");
jsonObject.put("messages",chatGPTApiDto.getMessageList());
// String domainName = "api.openai.com";
// String apiDomain = "openai.yu2le.com/api";
String domainName = "chatgpt.njlaikun.com";
String apiDomain = "localhost:8082";
String domainName = "api.openai.com";
String apiDomain = "openai.yu2le.com/api";
// String domainName = "chatgpt.njlaikun.com";
// String apiDomain = "localhost:8082";
Map<String,String> map = new HashMap<>();
if(chatGPTApiDto.getIsfree())
... ... @@ -50,6 +72,7 @@ public class ChatGPTApiController {
map.put("Authorization","Bearer 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");
}
map.put("Content-Type","application/json");
logger.info("开始请求openai接口:{}",JSONObject.toJSON(chatGPTApiDto));
String str = HttpRequest.post("https://"+domainName+"/v1/chat/completions").setReadTimeout(timeout).timeout(timeout).addHeaders(map).body(jsonObject.toString()).execute().body();
logger.info("返回的数据:{}",str);
if(JSONUtil.isTypeJSONObject(str))
... ...
... ... @@ -7,40 +7,34 @@ import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.Message;
import com.ruoyi.common.core.domain.MessageCode;
import com.ruoyi.common.core.redis.RedisCache;
import com.ruoyi.common.utils.Arith;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.bean.BeanUtils;
import com.ruoyi.common.utils.html.HttpUtils;
import com.ruoyi.common.utils.http.OkHttpUtils;
import com.ruoyi.system.login.dto.OpenAiLoginUser;
import com.ruoyi.system.login.dto.OpenAiUserInfo;
import com.ruoyi.system.login.service.TokenService;
import com.ruoyi.system.service.PublicService;
import com.theokanning.openai.Usage;
import com.theokanning.openai.completion.CompletionChoice;
import com.theokanning.openai.completion.CompletionResult;
import com.zhonglai.luhui.openai.dto.*;
import com.zhonglai.luhui.openai.service.VipServiceImpl;
import com.zhonglai.luhui.openai.utils.OpenAiUtils;
import com.zhonglai.luhui.openai.utils.SysConfigKeyType;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.catalina.Session;
import org.apache.commons.io.input.ReaderInputStream;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.math.BigDecimal;
import java.util.*;
import java.util.stream.Collectors;
@Api(tags = "chatGPT接口")
@RestController
... ... @@ -54,6 +48,9 @@ public class ChatGPTController extends BaseController {
private static String sessionkey = "CHAT_HISTORY_CONTEXT";//上下文关联存放地址
@Autowired
private TokenService tokenService;
@ApiOperation("与AI机器进行聊天(废弃)")
@RequestMapping(value = "/aiChatbot",method = RequestMethod.POST)
public AjaxResult aiChatbot(HttpServletRequest httpServletRequest, @RequestBody String data)
... ... @@ -250,7 +247,9 @@ public class ChatGPTController extends BaseController {
JSONObject jsonObject = new JSONObject();
jsonObject.put("model","gpt-3.5-turbo-0301");
jsonObject.put("messages",messageList);
String str = HttpUtil.post("https://chatgpt.njlaikun.com/v1/chat/completions",jsonObject.toString());
String str = HttpUtil.post("http://23.224.171.145:8086/chatGPTApi/sendNotFreeMessage",jsonObject.toString());
// String str = HttpUtil.post("https://free.chatgpt.njlaikun.com/v1/chat/completions",jsonObject.toString());
logger.info("返回的数据:{}",str);
CompletionResult3_5 completionResult = JSONObject.parseObject(str, CompletionResult3_5.class);
return completionResult;
... ... @@ -267,7 +266,9 @@ public class ChatGPTController extends BaseController {
JSONObject jsonObject = new JSONObject();
jsonObject.put("model","gpt-3.5-turbo-0301");
jsonObject.put("messages",messageList);
String str = HttpUtil.post("https://free.chatgpt.njlaikun.com/v1/chat/completions",jsonObject.toString());
String str = HttpUtil.post("https://23.224.171.145:8086/chatGPTApi/sendFreeMessage",jsonObject.toString());
// String str = HttpUtil.post("https://free.chatgpt.njlaikun.com/v1/chat/completions",jsonObject.toString());
logger.info("返回的数据:{}",str);
CompletionResult3_5 completionResult = JSONObject.parseObject(str, CompletionResult3_5.class);
return completionResult;
... ...
... ... @@ -107,7 +107,7 @@ public class ChatGPTStreamController extends BaseController {
PrintWriter pout = null;
BufferedReader in = null;
try {
URL url = new URL("http://localhost:8086/chatGPTApi/sendMessage");
URL url = new URL("http://23.224.171.145:8086/chatGPTApi/sendMessage");
// 打开和URL之间的连接
URLConnection conn = url.openConnection();
// 设置通用的请求属性
... ...
... ... @@ -8,6 +8,8 @@ import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.file.FileUploadUtils;
import com.ruoyi.common.utils.file.FileUtils;
import com.ruoyi.framework.config.ServerConfig;
import com.ruoyi.system.login.dto.OpenAiLoginUser;
import com.ruoyi.system.login.dto.OpenAiUserInfo;
import com.ruoyi.system.service.PublicService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
... ... @@ -39,7 +41,9 @@ public class UserInfoController extends BaseController {
@GetMapping("/getUserInfo")
public AjaxResult getUserInfo()
{
return AjaxResult.success(getLoginUser().getUser());
//更新缓存积分
OpenAiUserInfo openAiUserInfo = publicService.getObjectForTableName(OpenAiUserInfo.class,"id",getUserId().toString(),"`lk_openai`.`user_info`");
return AjaxResult.success(openAiUserInfo);
}
@ApiOperation("修改头像")
... ...
... ... @@ -97,11 +97,6 @@ public class LoginService {
AsyncManager.me().execute(AsyncFactory.recordLogininfor(user, SysLogininforType.openAi, Constants.LOGIN_SUCCESS, MessageUtils.message("user.login.success")));
OpenAiLoginUser loginUser = (OpenAiLoginUser) authentication.getPrincipal();
loginUser.setSysLogininforType(SysLogininforType.openAi);
// OpenAiUserInfo openAiUserInfo = new OpenAiUserInfo();
// openAiUserInfo.setId(loginUser.getUserId().intValue());
// openAiUserInfo.s(IpUtils.getIpAddr(ServletUtils.getRequest()));
// openAiUserInfo.setLastLoginTime(DateUtils.getNowTimeMilly());
// publicService.updateObjectByTable(openAiUserInfo,"id","`lk_openai`.`user_info`");
return tokenService.createToken(loginUser);
}
... ...
... ... @@ -126,6 +126,12 @@ public class TokenService
return createToken(claims);
}
public void upUser(BaseLoginUser loginUser)
{
String userKey = getTokenKey(loginUser.getToken());
redisCache.setCacheObject(userKey, loginUser, expireTime, TimeUnit.MINUTES);
}
/**
* 验证令牌有效期,相差不足20分钟,自动刷新缓存
*
... ...