Skip to content

Commit e113709

Browse files
committed
OpenAIService支持配置baseUrl
1 parent 23e02ba commit e113709

File tree

4 files changed

+25
-18
lines changed

4 files changed

+25
-18
lines changed

README.md

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,10 +31,11 @@ _Tips:1.2版本开始使用Vert.x替换SpringBoot_
3131
1. 使用之前需要有微信公众号的帐号,没有的请戳[微信公众号申请](https://mp.weixin.qq.com/cgi-bin/readtemplate?t=register/step1_tmpl&lang=zh_CN)
3232
2. 如果需要使用图灵机器人的回复内容则需要[注册图灵机器人帐号](http://tuling123.com/register/email.jhtml)获取相应的ApiKey并配置在启动参数或者环境变量中
3333
3. 如果需要使用ChatGPT的回复内容则需要[创建OpenAI的API Key](https://platform.openai.com/account/api-keys)并配置在启动参数或者环境变量中
34-
4. 可以通过配置启动参数或者环境变量`OPENAI_BASE_DOMAIN`更换访问OpenAI的域名
35-
5. 可以通过配置启动参数或者环境变量`OPENAI_PROXY`使用代理服务访问OpenAI
36-
6. 内容响应来源的优先级`自定义关键 > ChatGPT > 图灵机器人`
37-
7. 在微信公众号后台配置回调URL为<https://wechatrobot.doodl6.com/weChat/receiveMessage>,其中`wechatrobot.doodl6.com`是你自己的域名,token与`config.yml`里面配置的保持一致即可
34+
4. 可以通过配置启动参数或者环境变量`OPENAI_SERVER_URL`更换访问OpenAI的baseUrl
35+
5. 可以通过配置启动参数或者环境变量`OPENAI_BASE_DOMAIN`更换访问OpenAI的域名
36+
6. 可以通过配置启动参数或者环境变量`OPENAI_PROXY`使用代理服务访问OpenAI
37+
7. 内容响应来源的优先级`自定义关键 > ChatGPT > 图灵机器人`
38+
8. 在微信公众号后台配置回调URL为<https://wechatrobot.doodl6.com/weChat/receiveMessage>,其中`wechatrobot.doodl6.com`是你自己的域名,token与`config.yml`里面配置的保持一致即可
3839

3940
## 开发部署
4041

robot-web/src/main/java/com/doodl6/wechatrobot/processor/TextMessageProcessor.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
import com.doodl6.wechatrobot.enums.WeChatMsgType;
66
import com.doodl6.wechatrobot.response.BaseMessage;
77
import com.doodl6.wechatrobot.response.TextMessage;
8-
import com.doodl6.wechatrobot.service.ChatGptService;
8+
import com.doodl6.wechatrobot.service.OpenAIService;
99
import com.doodl6.wechatrobot.service.KeywordService;
1010
import com.doodl6.wechatrobot.service.TulingService;
1111
import com.doodl6.wechatrobot.util.LogUtil;
@@ -22,13 +22,13 @@ public class TextMessageProcessor implements WeChatMessageProcessor {
2222

2323
private final KeywordService keywordService;
2424

25-
private final ChatGptService chatGptService;
25+
private final OpenAIService openAIService;
2626

2727
private final TulingService tulingService;
2828

2929
public TextMessageProcessor(Vertx vertx, KeywordConfig keywordConfig) {
3030
this.keywordService = new KeywordService(vertx, keywordConfig);
31-
this.chatGptService = new ChatGptService();
31+
this.openAIService = new OpenAIService();
3232
this.tulingService = new TulingService();
3333
}
3434

@@ -51,7 +51,7 @@ public BaseMessage processMessage(WeChatMessage weChatMessage) {
5151

5252
//再尝试从GPT获取响应
5353
if (message == null) {
54-
message = chatGptService.getResponse(content);
54+
message = openAIService.getResponse(content);
5555
}
5656

5757
//再尝试从图灵机器人获取响应

robot-web/src/main/java/com/doodl6/wechatrobot/service/ChatGptService.java renamed to robot-web/src/main/java/com/doodl6/wechatrobot/service/OpenAIService.java

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -20,19 +20,21 @@
2020
import java.util.Collections;
2121
import java.util.List;
2222

23-
public class ChatGptService {
23+
public class OpenAIService {
2424

2525
private static final String OPENAI_API_KEY = "OPENAI_API_KEY";
2626

2727
private static final String OPENAI_BASE_DOMAIN = "OPENAI_BASE_DOMAIN";
2828

29+
private static final String OPENAI_SERVER_URL = "OPENAI_SERVER_URL";
30+
2931
private static final String OPENAI_PROXY = "OPENAI_PROXY";
3032

3133
private static final String MODEL = "gpt-3.5-turbo";
3234

3335
private static OpenAiService openAiService;
3436

35-
public ChatGptService() {
37+
public OpenAIService() {
3638
String apiKey = PropertyUtil.getProperty(OPENAI_API_KEY);
3739
if (StringUtils.isBlank(apiKey)) {
3840
return;
@@ -55,14 +57,19 @@ public ChatGptService() {
5557
ObjectMapper mapper = OpenAiService.defaultObjectMapper();
5658
Retrofit.Builder retrofitBuilder = OpenAiService.defaultRetrofit(client, mapper).newBuilder();
5759

58-
String baseDomain = PropertyUtil.getProperty(OPENAI_BASE_DOMAIN);
59-
if (StringUtils.isNotBlank(baseDomain)) {
60-
boolean valid = AddressUtil.validateAddress(baseDomain);
61-
if (!valid) {
62-
throw new RuntimeException("OPENAI_BASE_DOMAIN is not valid, value:" + baseDomain);
60+
String serverUrl = PropertyUtil.getProperty(OPENAI_SERVER_URL);
61+
if (StringUtils.isNotBlank(serverUrl)) {
62+
retrofitBuilder.baseUrl(serverUrl);
63+
} else {
64+
String baseDomain = PropertyUtil.getProperty(OPENAI_BASE_DOMAIN);
65+
if (StringUtils.isNotBlank(baseDomain)) {
66+
boolean valid = AddressUtil.validateAddress(baseDomain);
67+
if (!valid) {
68+
throw new RuntimeException("OPENAI_BASE_DOMAIN is not valid, value:" + baseDomain);
69+
}
70+
71+
retrofitBuilder.baseUrl("https://" + baseDomain + "/");
6372
}
64-
65-
retrofitBuilder.baseUrl("https://" + baseDomain + "/");
6673
}
6774

6875
Retrofit retrofit = retrofitBuilder.build();

robot-web/src/main/resources/reflect.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,5 +19,4 @@
1919
"allPublicMethods" : true,
2020
"allDeclaredConstructors" : true
2121
}
22-
2322
]

0 commit comments

Comments
 (0)