mirror of
https://github.com/zongzibinbin/MallChat.git
synced 2026-03-13 21:53:41 +08:00
优化chatAI
This commit is contained in:
@@ -65,11 +65,11 @@ wx:
|
|||||||
aesKey: ${mallchat.wx.aesKey} # 接口配置里的EncodingAESKey值
|
aesKey: ${mallchat.wx.aesKey} # 接口配置里的EncodingAESKey值
|
||||||
chatai:
|
chatai:
|
||||||
chatgpt:
|
chatgpt:
|
||||||
use: true
|
use: false
|
||||||
AIUserId: 10450
|
AIUserId: 10452
|
||||||
key: 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
|
key: xxxxx
|
||||||
chatglm2:
|
chatglm2:
|
||||||
use: true
|
use: false
|
||||||
url: http://vastmiao.natapp1.cc
|
url: xxxxx
|
||||||
minute: 3 # 每个用户每3分钟可以请求一次
|
minute: 3 # 每个用户每3分钟可以请求一次
|
||||||
AIUserId: 10451
|
AIUserId: 10451
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ public class ChatGLM2Handler extends AbstractChatAIHandler {
|
|||||||
"没给钱,矿工了。。。。",
|
"没给钱,矿工了。。。。",
|
||||||
"服务器被你们玩儿坏了。。。。",
|
"服务器被你们玩儿坏了。。。。",
|
||||||
"你们这群人,我都不想理你们了。。。。",
|
"你们这群人,我都不想理你们了。。。。",
|
||||||
"还艾特我呢?那是另外的价钱。。。。",
|
"艾特我那是另外的价钱。。。。",
|
||||||
"得加钱");
|
"得加钱");
|
||||||
|
|
||||||
|
|
||||||
@@ -67,6 +67,7 @@ public class ChatGLM2Handler extends AbstractChatAIHandler {
|
|||||||
.create()
|
.create()
|
||||||
.url(glm2Properties.getUrl())
|
.url(glm2Properties.getUrl())
|
||||||
.prompt(content)
|
.prompt(content)
|
||||||
|
.timeout(glm2Properties.getTimeout())
|
||||||
.send();
|
.send();
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
@@ -123,7 +124,7 @@ public class ChatGLM2Handler extends AbstractChatAIHandler {
|
|||||||
// if (CollectionUtils.isEmpty(extra.getAtUidList())) {
|
// if (CollectionUtils.isEmpty(extra.getAtUidList())) {
|
||||||
// return false;
|
// return false;
|
||||||
// }
|
// }
|
||||||
// if (!extra.getAtUidList().contains(ChatAIServiceImpl.AI_USER_ID)) {
|
// if (!extra.getAtUidList().contains(glm2Properties.getAIUserId())) {
|
||||||
// return false;
|
// return false;
|
||||||
// }
|
// }
|
||||||
|
|
||||||
|
|||||||
@@ -40,24 +40,36 @@ public class GPTChatAIHandler extends AbstractChatAIHandler {
|
|||||||
Long uid = message.getFromUid();
|
Long uid = message.getFromUid();
|
||||||
Long chatNum;
|
Long chatNum;
|
||||||
String text;
|
String text;
|
||||||
if ((chatNum = userChatNumInrc(uid)) > chatGPTProperties.getLimit()) {
|
if ((chatNum = getUserChatNum(uid)) > chatGPTProperties.getLimit()) {
|
||||||
text = "你今天已经和我聊了" + chatNum + "次了,我累了,明天再聊吧";
|
text = "你今天已经和我聊了" + chatNum + "次了,我累了,明天再聊吧";
|
||||||
} else {
|
} else {
|
||||||
HttpResponse response = ChatGPTUtils.create(chatGPTProperties.getKey())
|
HttpResponse response = null;
|
||||||
|
try {
|
||||||
|
response = ChatGPTUtils.create(chatGPTProperties.getKey())
|
||||||
.proxyUrl(chatGPTProperties.getProxyUrl())
|
.proxyUrl(chatGPTProperties.getProxyUrl())
|
||||||
.model(chatGPTProperties.getModelName())
|
.model(chatGPTProperties.getModelName())
|
||||||
.prompt(content)
|
.prompt(content)
|
||||||
.send();
|
.send();
|
||||||
text = ChatGPTUtils.parseText(response);
|
text = ChatGPTUtils.parseText(response);
|
||||||
|
userChatNumInrc(uid);
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
text = "我累了,明天再聊吧";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return text;
|
return text;
|
||||||
}
|
}
|
||||||
|
|
||||||
private Long userChatNumInrc(Long uid) {
|
private Long userChatNumInrc(Long uid) {
|
||||||
//todo:白名单
|
|
||||||
return RedisUtils.inc(RedisKey.getKey(RedisKey.USER_CHAT_NUM, uid), DateUtils.getEndTimeByToday().intValue(), TimeUnit.MILLISECONDS);
|
return RedisUtils.inc(RedisKey.getKey(RedisKey.USER_CHAT_NUM, uid), DateUtils.getEndTimeByToday().intValue(), TimeUnit.MILLISECONDS);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private Long getUserChatNum(Long uid) {
|
||||||
|
Long num = RedisUtils.get(RedisKey.getKey(RedisKey.USER_CHAT_NUM, uid), Long.class);
|
||||||
|
return num == null ? 0 : num;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected boolean supports(Message message) {
|
protected boolean supports(Message message) {
|
||||||
@@ -73,7 +85,7 @@ public class GPTChatAIHandler extends AbstractChatAIHandler {
|
|||||||
// if (CollectionUtils.isEmpty(extra.getAtUidList())) {
|
// if (CollectionUtils.isEmpty(extra.getAtUidList())) {
|
||||||
// return false;
|
// return false;
|
||||||
// }
|
// }
|
||||||
// if (!extra.getAtUidList().contains(ChatAIServiceImpl.AI_USER_ID)) {
|
// if (!extra.getAtUidList().contains(chatGPTProperties.getAIUserId())) {
|
||||||
// return false;
|
// return false;
|
||||||
// }
|
// }
|
||||||
|
|
||||||
|
|||||||
@@ -36,8 +36,13 @@ public class ChatGLM2Properties {
|
|||||||
private String AIUserName;
|
private String AIUserName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 每个用户每3分钟可以请求一次
|
* 每个用户每?分钟可以请求一次
|
||||||
*/
|
*/
|
||||||
private Long minute = 3L;
|
private Long minute = 3L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 超时
|
||||||
|
*/
|
||||||
|
private Integer timeout = 60*1000;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -42,8 +42,6 @@ public class ChatGLM2Utils {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public ChatGLM2Utils url(String url) {
|
public ChatGLM2Utils url(String url) {
|
||||||
this.url = url;
|
this.url = url;
|
||||||
return this;
|
return this;
|
||||||
@@ -59,6 +57,7 @@ public class ChatGLM2Utils {
|
|||||||
this.prompt = prompt;
|
this.prompt = prompt;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public HttpResponse send() {
|
public HttpResponse send() {
|
||||||
JSONObject param = new JSONObject();
|
JSONObject param = new JSONObject();
|
||||||
param.set("prompt", prompt);
|
param.set("prompt", prompt);
|
||||||
|
|||||||
@@ -141,6 +141,8 @@ public class ChatGPTUtils {
|
|||||||
param.set("top_p", topP);
|
param.set("top_p", topP);
|
||||||
param.set("frequency_penalty", frequencyPenalty);
|
param.set("frequency_penalty", frequencyPenalty);
|
||||||
param.set("presence_penalty", presencePenalty);
|
param.set("presence_penalty", presencePenalty);
|
||||||
|
log.info("headers >>> " + headers);
|
||||||
|
log.info("param >>> " + param);
|
||||||
return HttpUtil.createPost(StringUtils.isNotBlank(proxyUrl) ? proxyUrl : URL)
|
return HttpUtil.createPost(StringUtils.isNotBlank(proxyUrl) ? proxyUrl : URL)
|
||||||
.addHeaders(headers)
|
.addHeaders(headers)
|
||||||
.body(param.toString())
|
.body(param.toString())
|
||||||
|
|||||||
Reference in New Issue
Block a user