temp commit
This commit is contained in:
5
pom.xml
5
pom.xml
@@ -4,10 +4,9 @@
|
||||
<artifactId>plinfa</artifactId>
|
||||
<version>0.0.1-SNAPSHOT</version>
|
||||
<properties>
|
||||
<qtjambi.version>6.10.0</qtjambi.version>
|
||||
<qtjambi.version>6.11.0</qtjambi.version>
|
||||
<jackson.version>3.0.3</jackson.version>
|
||||
<maven.compiler.source>24</maven.compiler.source>
|
||||
<maven.compiler.release>24</maven.compiler.release>
|
||||
<maven.compiler.release>25</maven.compiler.release>
|
||||
</properties>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
|
||||
@@ -6,8 +6,10 @@ import de.derpandaa.plinfa.dto.ChatDto;
|
||||
import de.derpandaa.plinfa.dto.MessageDto;
|
||||
import de.derpandaa.plinfa.dto.MessageDto.Role;
|
||||
import de.derpandaa.plinfa.dto.OpenAiDto;
|
||||
import io.qt.core.QMetaObject;
|
||||
import io.qt.core.QMimeData;
|
||||
import io.qt.core.Qt.AlignmentFlag;
|
||||
import io.qt.core.Qt.ConnectionType;
|
||||
import io.qt.core.Qt.TextFormat;
|
||||
import io.qt.gui.QColor;
|
||||
import io.qt.gui.QKeySequence;
|
||||
@@ -163,7 +165,7 @@ public class ChatWindow extends QWidget {
|
||||
|
||||
OpenAiDto openAiDto = chatDto.getOpenAiDto();
|
||||
|
||||
openAiDto.setModel((de.derpandaa.plinfa.aiprovider.Model) modelComboBox.currentData());
|
||||
openAiDto.setModel((Model) modelComboBox.currentData());
|
||||
|
||||
MessageDto messageDto = new MessageDto(Role.user, message);
|
||||
openAiDto.addMessage(messageDto);
|
||||
@@ -180,20 +182,21 @@ public class ChatWindow extends QWidget {
|
||||
chatWidget.adjustSize();
|
||||
|
||||
try {
|
||||
// .runAsync(openAiDto, answer -> {
|
||||
// QMetaObject.invokeMethod(this, () -> {
|
||||
// chatLayout.removeWidget(loadingWidget);
|
||||
// loadingWidget.disposeLater();
|
||||
//
|
||||
// openAiDto.addMessage(new MessageDto(Role.assistant, answer));
|
||||
// QWidget assistantWidget = createMessage(answer, Role.assistant);
|
||||
// chatLayout.addWidget(assistantWidget);
|
||||
// scrollArea.ensureWidgetVisible(assistantWidget);
|
||||
// chatWidget.adjustSize();
|
||||
// chatDto.writeToFile();
|
||||
//
|
||||
// }, ConnectionType.QueuedConnection);
|
||||
// });
|
||||
AiProviderManager.getAiProviderManager().getProviderForModel((Model) modelComboBox.currentData())
|
||||
.runAsync(openAiDto, answer -> {
|
||||
QMetaObject.invokeMethod(this, () -> {
|
||||
chatLayout.removeWidget(loadingWidget);
|
||||
loadingWidget.disposeLater();
|
||||
|
||||
openAiDto.addMessage(new MessageDto(Role.assistant, answer));
|
||||
QWidget assistantWidget = createMessage(answer, Role.assistant);
|
||||
chatLayout.addWidget(assistantWidget);
|
||||
scrollArea.ensureWidgetVisible(assistantWidget);
|
||||
chatWidget.adjustSize();
|
||||
chatDto.writeToFile();
|
||||
|
||||
}, ConnectionType.QueuedConnection);
|
||||
});
|
||||
} catch (Exception e) {
|
||||
// TODO Auto-generated catch block
|
||||
e.printStackTrace();
|
||||
|
||||
@@ -14,9 +14,6 @@ import tools.jackson.databind.JsonNode;
|
||||
import tools.jackson.databind.ObjectMapper;
|
||||
|
||||
public abstract class AbstractAiProvider {
|
||||
public enum Provider {
|
||||
OPEN_AI
|
||||
}
|
||||
|
||||
protected static final ObjectMapper mapper = new ObjectMapper();
|
||||
|
||||
@@ -54,6 +51,7 @@ public abstract class AbstractAiProvider {
|
||||
String jsonBody = mapper.writeValueAsString(dto);
|
||||
|
||||
HttpRequest request = buildRequest(jsonBody);
|
||||
System.out.println(jsonBody);
|
||||
|
||||
HttpClient client = HttpClient.newHttpClient();
|
||||
client.sendAsync(request, HttpResponse.BodyHandlers.ofString()).thenApply(HttpResponse::body)
|
||||
|
||||
@@ -31,4 +31,13 @@ public class AiProviderManager {
|
||||
return models;
|
||||
}
|
||||
|
||||
public AbstractAiProvider getProviderForModel(Model model) {
|
||||
for (AbstractAiProvider aiProvider : providers) {
|
||||
if (model.clazz().equals(aiProvider.getClass())) {
|
||||
return aiProvider;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,11 +1,16 @@
|
||||
package de.derpandaa.plinfa.aiprovider;
|
||||
|
||||
import de.derpandaa.plinfa.aiprovider.AbstractAiProvider.Provider;
|
||||
import com.fasterxml.jackson.annotation.JsonValue;
|
||||
|
||||
public record Model(String modelName, Provider provider) {
|
||||
public record Model(String modelName, Class<? extends AbstractAiProvider> clazz) {
|
||||
@Override
|
||||
public String toString() {
|
||||
return modelName;
|
||||
}
|
||||
|
||||
@JsonValue
|
||||
public String modelName() {
|
||||
return modelName;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -25,7 +25,7 @@ public class OpenAiProvider extends AbstractAiProvider {
|
||||
@Override
|
||||
public List<Model> getModels() {
|
||||
|
||||
return List.of(new Model("gpt-5-nano", Provider.OPEN_AI));
|
||||
return List.of(new Model("gpt-5-nano", this.getClass()));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -19,7 +19,7 @@ public class OpenAiDto {
|
||||
@JsonProperty("messages")
|
||||
private List<MessageDto> messages;
|
||||
|
||||
@JsonProperty("max_tokens")
|
||||
@JsonProperty("max_completion_tokens")
|
||||
private int maxTokens;
|
||||
|
||||
public OpenAiDto() {
|
||||
@@ -28,6 +28,7 @@ public class OpenAiDto {
|
||||
|
||||
public OpenAiDto(int maxTokens) {
|
||||
this.maxTokens = maxTokens;
|
||||
this.messages = new ArrayList<MessageDto>();
|
||||
}
|
||||
|
||||
public OpenAiDto(Model model) {
|
||||
|
||||
Reference in New Issue
Block a user