temp commit

This commit is contained in:
2026-05-04 14:36:01 +02:00
parent c392916af4
commit e7996e1aaa
7 changed files with 40 additions and 25 deletions

View File

@@ -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>

View File

@@ -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();

View File

@@ -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)

View File

@@ -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;
}
}

View File

@@ -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;
}
}

View File

@@ -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

View File

@@ -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) {