Skip to content

Commit af0fc28

Browse files
committed
added option to
1 parent 91053b2 commit af0fc28

File tree

3 files changed

+37
-7
lines changed

3 files changed

+37
-7
lines changed

src/main/java/org/example/project/service/ChatGPTService.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,20 +32,20 @@ public ChatGPTService(ApplicationConfig config) {
3232
.init();
3333
}
3434

35-
public String sendMessage(String prompt, String question) {
35+
public String sendMessage(String prompt, String question, String model) {
3636
log.info("Question: {}", question);
3737

3838
Message system = Message.ofSystem(prompt);
3939
Message message = Message.of(question);
4040
messageHistory.add(system);
4141
messageHistory.add(message);
4242

43-
return sendMessagesToChatGPT();
43+
return sendMessagesToChatGPT(model);
4444
}
4545

46-
private String sendMessagesToChatGPT(){
46+
private String sendMessagesToChatGPT(String model){
4747
ChatCompletion chatCompletion = ChatCompletion.builder()
48-
.model(ChatCompletion.Model.GPT4oMini)
48+
.model(model)
4949
.messages(messageHistory)
5050
.maxTokens(3000)
5151
.temperature(0.9)

src/main/java/org/example/project/service/DialogMode.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,6 @@ public enum DialogMode {
44
MAIN,
55
ADD_NOTE,
66
WAIT_DEPARTURE_PLACE,
7+
WAIT_GPT_VERSION,
78
WAIT_QUESTION,
89
}

src/main/java/org/example/project/service/TelegramBot.java

Lines changed: 32 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package org.example.project.service;
22

3+
import com.plexpt.chatgpt.entity.chat.ChatCompletion;
34
import lombok.extern.slf4j.Slf4j;
45
import org.example.project.configuration.ApplicationConfig;
56
import org.example.project.domain.Users;
@@ -41,6 +42,8 @@ public class TelegramBot extends TelegramLongPollingBot {
4142

4243
private DialogMode dialogMode;
4344

45+
private String gptVersion = "";
46+
4447
static final String HELP_TEXT = "This bot is created by Demyan Zverev and for his own purpose\n\n" +
4548
"You can execute from the main menu on the left or by typing command: \n\n" +
4649
"Type /start to see a welcome message\n\n" +
@@ -76,6 +79,7 @@ public void onUpdateReceived(Update update) {
7679
String messageText = update.getMessage().getText();
7780
long chatId = update.getMessage().getChatId();
7881

82+
7983
switch(dialogMode) {
8084
case MAIN:
8185
switch (messageText) {
@@ -114,25 +118,50 @@ public void onUpdateReceived(Update update) {
114118
case WAIT_DEPARTURE_PLACE:
115119
sendBusSchedule(chatId, messageText);
116120
break;
121+
case WAIT_GPT_VERSION:
122+
gptVersion = gptVersionReceived(chatId, messageText);
123+
break;
117124
case WAIT_QUESTION:
118-
questionToGptReceived(chatId, messageText);
125+
questionToGptReceived(chatId, messageText, gptVersion);
119126
break;
120127
}
121128
}
122129
}
123130

124131
// TODO: Изменить взаимодействие с ChatGPT в боте
125-
private void questionToGptReceived(long chatId, String question) {
132+
private void questionToGptReceived(long chatId, String question, String model) {
126133
log.info("Send message to ChatGPT");
127-
String answer = chatGPTService.sendMessage("", question);
134+
String answer = chatGPTService.sendMessage("", question, model);
128135
sendMessage(chatId, answer);
129136
dialogMode = DialogMode.MAIN;
130137
}
131138

132139
private void gptReceived(long chatId) {
140+
String answer = """
141+
Choose version of ChatGPT:
142+
1) GPT 3.5 Turbo
143+
2) GPT 4
144+
3) GPT 4o mini
145+
4) GPT 4o
146+
Print only digit""";
147+
sendMessage(chatId, answer);
148+
dialogMode = DialogMode.WAIT_GPT_VERSION;
149+
}
150+
151+
private String gptVersionReceived(long chatId, String gptVersion) {
133152
String answer = "Write your question:";
134153
sendMessage(chatId, answer);
135154
dialogMode = DialogMode.WAIT_QUESTION;
155+
return whichGptVersion(gptVersion);
156+
}
157+
158+
private String whichGptVersion(String version) {
159+
return switch (version) {
160+
case "2" -> ChatCompletion.Model.GPT4;
161+
case "3" -> ChatCompletion.Model.GPT4oMini;
162+
case "4" -> ChatCompletion.Model.GPT4o;
163+
default -> ChatCompletion.Model.GPT_3_5_TURBO;
164+
};
136165
}
137166

138167
private void getIP(long chatId) {

0 commit comments

Comments
 (0)