From 33a1ce60d17378e85770c69b7cdd823387be0776 Mon Sep 17 00:00:00 2001 From: Ludovic Apvrille <ludovic.apvrille@telecom-paris.fr> Date: Thu, 29 Feb 2024 15:31:59 +0100 Subject: [PATCH] Update on AI model --- src/main/java/ai/AIChatData.java | 9 +++++++-- src/main/java/myutil/AIInterface.java | 6 +++++- src/main/java/ui/window/JFrameAI.java | 19 +++++++++++++++++-- 3 files changed, 29 insertions(+), 5 deletions(-) diff --git a/src/main/java/ai/AIChatData.java b/src/main/java/ai/AIChatData.java index a44f69e2aa..3bf25d0cf0 100644 --- a/src/main/java/ai/AIChatData.java +++ b/src/main/java/ai/AIChatData.java @@ -87,7 +87,7 @@ public class AIChatData { feedback.clear(); } - public boolean makeAIInterface() { + public boolean makeAIInterface(String model) { if (aiinterface == null) { String key = ConfigurationTTool.OPENAIKey; if (key == null) { @@ -96,7 +96,12 @@ public class AIChatData { TraceManager.addDev("Setting key: " + key); aiinterface = new AIInterface(); aiinterface.setURL(AIInterface.URL_OPENAI_COMPLETION); - aiinterface.setAIModel(AIInterface.MODEL_GPT_35); + if ((model == null) || (model.length() == 0)) + aiinterface.setAIModel(AIInterface.MODEL_GPT_35); + else { + TraceManager.addDev("Using model:" + model); + aiinterface.setAIModel(model); + } aiinterface.setKey(key); } } diff --git a/src/main/java/myutil/AIInterface.java b/src/main/java/myutil/AIInterface.java index fc0e46f420..5b6ba4e3bd 100644 --- a/src/main/java/myutil/AIInterface.java +++ b/src/main/java/myutil/AIInterface.java @@ -147,7 +147,11 @@ public class AIInterface { public String chat(String text, boolean useKnowledgeAsInput, boolean useOuputKnowledge) throws AIInterfaceException { connect(); org.json.JSONObject mainObject = new org.json.JSONObject(); - mainObject.put("model", "gpt-3.5-turbo"); + if (aiModel == null) { + mainObject.put("model", MODEL_GPT_35); + } else { + mainObject.put("model", aiModel); + } org.json.JSONArray array = new org.json.JSONArray(); org.json.JSONObject sub = new org.json.JSONObject(); sub.put("role", "system"); diff --git a/src/main/java/ui/window/JFrameAI.java b/src/main/java/ui/window/JFrameAI.java index 9d5d3e25d8..f724e625c0 100644 --- a/src/main/java/ui/window/JFrameAI.java +++ b/src/main/java/ui/window/JFrameAI.java @@ -41,6 +41,7 @@ package ui.window; import ai.*; import avatartranslator.AvatarSpecification; +import common.ConfigurationTTool; import help.HelpEntry; import help.HelpManager; import myutil.AIInterface; @@ -108,6 +109,7 @@ public class JFrameAI extends JFrame implements ActionListener { "Formalize mutations to be performed on a block diagram"}; protected JComboBox<String> listOfPossibleActions; + protected JComboBox<String> listOfPossibleModels; private MainGUI mgui; @@ -181,9 +183,22 @@ public class JFrameAI extends JFrame implements ActionListener { panelTop.setBorder(new javax.swing.border.TitledBorder("Options")); listOfPossibleActions = new JComboBox<>(POSSIBLE_ACTIONS); - panelTop.add(listOfPossibleActions, BorderLayout.CENTER); + JPanel chatPanelAction = new JPanel(); + chatPanelAction.add(new JLabel("Selected chat:")); + chatPanelAction.add(listOfPossibleActions); + panelTop.add(chatPanelAction, BorderLayout.CENTER); listOfPossibleActions.addActionListener(this); + JPanel modelSelectionPanel = new JPanel(); + modelSelectionPanel.add(new JLabel("Selected AI model:")); + if ((ConfigurationTTool.OPENAIModel != null) && (ConfigurationTTool.OPENAIModel.trim().length() > 0 )) { + listOfPossibleModels = new JComboBox<>(ConfigurationTTool.OPENAIModel.split(" ")); + } else { + listOfPossibleModels = new JComboBox<>(AIInterface.MODEL_GPT_35.split(" ")); + } + modelSelectionPanel.add(listOfPossibleModels); + panelTop.add(modelSelectionPanel, BorderLayout.SOUTH); + framePanel.add(panelTop, BorderLayout.NORTH); @@ -762,7 +777,7 @@ public class JFrameAI extends JFrame implements ActionListener { public boolean makeAIChatData() { aiChatData = new AIChatData(); aiChatData.feedback = this; - return aiChatData.makeAIInterface(); + return aiChatData.makeAIInterface(listOfPossibleModels.getItemAt(listOfPossibleModels.getSelectedIndex())); } -- GitLab