使用java改进以上代码
时间: 2024-03-08 21:50:40 浏览: 9
以下是使用Java改进后的代码:
```java
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
import ai.openai.api.OpenAI;
import ai.openai.api.models.CompletionRequest;
import ai.openai.api.models.CompletionResponse;
import ai.openai.api.models.Engine;
import ai.openai.api.models.Prompt;
import ai.openai.api.models.Temperature;
import ai.openai.api.models.TextInput;
public class Chatbot {
private static final String API_KEY = "YOUR_API_KEY";
private static final String ENGINE_ID = "davinci";
private OpenAI openai;
private String chatSessionId;
public Chatbot() {
openai = new OpenAI(API_KEY);
chatSessionId = createChatSession();
}
private String createChatSession() {
String prompt = "Create a new chat session";
TextInput input = new TextInput(prompt);
Engine engine = new Engine(ENGINE_ID);
CompletionRequest request = new CompletionRequest(engine, input);
request.setMaxTokens(1024);
request.setN(1);
request.setStop(null);
request.setTimeout(15);
CompletionResponse response = openai.completions().create(request);
return response.getChoices().get(0).getText().trim();
}
private String sendMessage(String message) {
String prompt = chatSessionId + ": " + message + "\nAI:";
TextInput input = new TextInput(prompt);
Engine engine = new Engine(ENGINE_ID);
CompletionRequest request = new CompletionRequest(engine, input);
request.setMaxTokens(1024);
request.setN(1);
request.setStop(null);
request.setTimeout(15);
CompletionResponse response = openai.completions().create(request);
try {
Thread.sleep(1000); // 等待1秒以避免请求过多
} catch (InterruptedException e) {
e.printStackTrace();
}
return response.getChoices().get(0).getText().trim();
}
public void test() {
// 开始对话
while (true) {
System.out.print("你:");
String message = System.console().readLine();
if (message.equalsIgnoreCase("exit") || message.equalsIgnoreCase("quit")) {
break;
}
String response = sendMessage(message);
System.out.println("AI:" + response);
}
}
public static void main(String[] args) {
Chatbot chatbot = new Chatbot();
chatbot.test();
}
}
```
改进的主要点包括:
1. 使用了官方提供的Java SDK。
2. 将创建新会话和发送消息的功能封装成了两个函数。
3. 使用了更具描述性的函数名。
4. 添加了等待1秒以避免请求过多的代码。
5. 在创建对话时使用了更明确的提示。
6. 使用了更规范的代码缩进。
7. 使用了更加安全的读取输入的方式。