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> <artifactId>plinfa</artifactId>
<version>0.0.1-SNAPSHOT</version> <version>0.0.1-SNAPSHOT</version>
<properties> <properties>
<qtjambi.version>6.10.0</qtjambi.version> <qtjambi.version>6.11.0</qtjambi.version>
<jackson.version>3.0.3</jackson.version> <jackson.version>3.0.3</jackson.version>
<maven.compiler.source>24</maven.compiler.source> <maven.compiler.release>25</maven.compiler.release>
<maven.compiler.release>24</maven.compiler.release>
</properties> </properties>
<dependencies> <dependencies>
<dependency> <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;
import de.derpandaa.plinfa.dto.MessageDto.Role; import de.derpandaa.plinfa.dto.MessageDto.Role;
import de.derpandaa.plinfa.dto.OpenAiDto; import de.derpandaa.plinfa.dto.OpenAiDto;
import io.qt.core.QMetaObject;
import io.qt.core.QMimeData; import io.qt.core.QMimeData;
import io.qt.core.Qt.AlignmentFlag; import io.qt.core.Qt.AlignmentFlag;
import io.qt.core.Qt.ConnectionType;
import io.qt.core.Qt.TextFormat; import io.qt.core.Qt.TextFormat;
import io.qt.gui.QColor; import io.qt.gui.QColor;
import io.qt.gui.QKeySequence; import io.qt.gui.QKeySequence;
@@ -163,7 +165,7 @@ public class ChatWindow extends QWidget {
OpenAiDto openAiDto = chatDto.getOpenAiDto(); 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); MessageDto messageDto = new MessageDto(Role.user, message);
openAiDto.addMessage(messageDto); openAiDto.addMessage(messageDto);
@@ -180,20 +182,21 @@ public class ChatWindow extends QWidget {
chatWidget.adjustSize(); chatWidget.adjustSize();
try { try {
// .runAsync(openAiDto, answer -> { AiProviderManager.getAiProviderManager().getProviderForModel((Model) modelComboBox.currentData())
// QMetaObject.invokeMethod(this, () -> { .runAsync(openAiDto, answer -> {
// chatLayout.removeWidget(loadingWidget); QMetaObject.invokeMethod(this, () -> {
// loadingWidget.disposeLater(); chatLayout.removeWidget(loadingWidget);
// loadingWidget.disposeLater();
// openAiDto.addMessage(new MessageDto(Role.assistant, answer));
// QWidget assistantWidget = createMessage(answer, Role.assistant); openAiDto.addMessage(new MessageDto(Role.assistant, answer));
// chatLayout.addWidget(assistantWidget); QWidget assistantWidget = createMessage(answer, Role.assistant);
// scrollArea.ensureWidgetVisible(assistantWidget); chatLayout.addWidget(assistantWidget);
// chatWidget.adjustSize(); scrollArea.ensureWidgetVisible(assistantWidget);
// chatDto.writeToFile(); chatWidget.adjustSize();
// chatDto.writeToFile();
// }, ConnectionType.QueuedConnection);
// }); }, ConnectionType.QueuedConnection);
});
} catch (Exception e) { } catch (Exception e) {
// TODO Auto-generated catch block // TODO Auto-generated catch block
e.printStackTrace(); e.printStackTrace();

View File

@@ -14,9 +14,6 @@ import tools.jackson.databind.JsonNode;
import tools.jackson.databind.ObjectMapper; import tools.jackson.databind.ObjectMapper;
public abstract class AbstractAiProvider { public abstract class AbstractAiProvider {
public enum Provider {
OPEN_AI
}
protected static final ObjectMapper mapper = new ObjectMapper(); protected static final ObjectMapper mapper = new ObjectMapper();
@@ -54,6 +51,7 @@ public abstract class AbstractAiProvider {
String jsonBody = mapper.writeValueAsString(dto); String jsonBody = mapper.writeValueAsString(dto);
HttpRequest request = buildRequest(jsonBody); HttpRequest request = buildRequest(jsonBody);
System.out.println(jsonBody);
HttpClient client = HttpClient.newHttpClient(); HttpClient client = HttpClient.newHttpClient();
client.sendAsync(request, HttpResponse.BodyHandlers.ofString()).thenApply(HttpResponse::body) client.sendAsync(request, HttpResponse.BodyHandlers.ofString()).thenApply(HttpResponse::body)

View File

@@ -31,4 +31,13 @@ public class AiProviderManager {
return models; 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; 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 @Override
public String toString() { public String toString() {
return modelName; return modelName;
} }
@JsonValue
public String modelName() {
return modelName;
}
} }

View File

@@ -25,7 +25,7 @@ public class OpenAiProvider extends AbstractAiProvider {
@Override @Override
public List<Model> getModels() { 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 @Override

View File

@@ -19,7 +19,7 @@ public class OpenAiDto {
@JsonProperty("messages") @JsonProperty("messages")
private List<MessageDto> messages; private List<MessageDto> messages;
@JsonProperty("max_tokens") @JsonProperty("max_completion_tokens")
private int maxTokens; private int maxTokens;
public OpenAiDto() { public OpenAiDto() {
@@ -28,6 +28,7 @@ public class OpenAiDto {
public OpenAiDto(int maxTokens) { public OpenAiDto(int maxTokens) {
this.maxTokens = maxTokens; this.maxTokens = maxTokens;
this.messages = new ArrayList<MessageDto>();
} }
public OpenAiDto(Model model) { public OpenAiDto(Model model) {