Done some basic things
This commit is contained in:
@@ -0,0 +1,67 @@
|
||||
package de.derpandaa.plinfa.aiprovider;
|
||||
|
||||
import java.net.URI;
|
||||
import java.net.http.HttpRequest;
|
||||
import java.util.List;
|
||||
|
||||
import de.derpandaa.plinfa.dto.AiRequest;
|
||||
import de.derpandaa.plinfa.dto.AiResponseDto;
|
||||
import de.derpandaa.plinfa.dto.MessageDto;
|
||||
import de.derpandaa.plinfa.dto.OpenAiResponseDto;
|
||||
import tools.jackson.databind.node.ArrayNode;
|
||||
import tools.jackson.databind.node.ObjectNode;
|
||||
|
||||
public class OpenAiProvider extends AbstractAiProvider {
|
||||
public static String API_KEY;
|
||||
private static int maxTokens;
|
||||
private static OpenAiProvider openAiProvider;
|
||||
|
||||
public OpenAiProvider() {
|
||||
}
|
||||
|
||||
@Override
|
||||
public HttpRequest buildRequest(String jsonBody) {
|
||||
return HttpRequest.newBuilder().uri(URI.create("https://api.openai.com/v1/chat/completions"))
|
||||
.header("Content-Type", "application/json").header("Authorization", "Bearer " + API_KEY)
|
||||
.POST(HttpRequest.BodyPublishers.ofString(jsonBody)).build();
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Model> getModels() {
|
||||
|
||||
return List.of(new Model("gpt-5-nano", this.getClass()));
|
||||
}
|
||||
|
||||
@Override
|
||||
public AiResponseDto parseResponse(String body) {
|
||||
return new OpenAiResponseDto(body);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String buildRequestBody(AiRequest request) throws Exception {
|
||||
|
||||
ObjectNode root = mapper.createObjectNode();
|
||||
|
||||
root.put("model", request.getModel().modelName());
|
||||
root.put("max_completion_tokens", request.getMaxTokens());
|
||||
|
||||
if (request.getSystemPrompt() != null) {
|
||||
ArrayNode messages = root.putArray("messages");
|
||||
|
||||
ObjectNode system = mapper.createObjectNode();
|
||||
system.put("role", "system");
|
||||
system.put("content", request.getSystemPrompt());
|
||||
messages.add(system);
|
||||
|
||||
for (MessageDto m : request.getMessages()) {
|
||||
ObjectNode msg = mapper.createObjectNode();
|
||||
msg.put("role", m.getRole().name());
|
||||
msg.put("content", m.getContent());
|
||||
messages.add(msg);
|
||||
}
|
||||
}
|
||||
|
||||
return mapper.writeValueAsString(root);
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user