mirror of
https://github.com/carlrobertoh/ProxyAI.git
synced 2026-05-12 14:10:29 +00:00
Fix error logging and add more telemetry actions
This commit is contained in:
parent
d504922fea
commit
b35daaae88
10 changed files with 75 additions and 32 deletions
|
|
@ -1,11 +1,11 @@
|
|||
package ee.carlrobert.codegpt.completions;
|
||||
package ee.carlrobert.codegpt;
|
||||
|
||||
import ee.carlrobert.codegpt.TelemetryService;
|
||||
import ee.carlrobert.codegpt.telemetry.core.service.TelemetryMessageBuilder.ActionMessage;
|
||||
|
||||
public enum TelemetryAction {
|
||||
|
||||
COMPLETION("CodeGPT-Completion"),
|
||||
COMPLETION_ERROR("CodeGPT-Completion-Error"),
|
||||
IDE_ACTION("CodeGPT-Action");
|
||||
|
||||
private final String code;
|
||||
11
src/main/java/ee/carlrobert/codegpt/actions/ActionType.java
Normal file
11
src/main/java/ee/carlrobert/codegpt/actions/ActionType.java
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
package ee.carlrobert.codegpt.actions;
|
||||
|
||||
public enum ActionType {
|
||||
|
||||
CLEAR_CHAT_WINDOW,
|
||||
CREATE_NEW_CHAT,
|
||||
DELETE_ALL_CONVERSATIONS,
|
||||
DELETE_CONVERSATION,
|
||||
OPEN_CONVERSATION_IN_EDITOR,
|
||||
RELOAD_MESSAGE
|
||||
}
|
||||
|
|
@ -3,7 +3,9 @@ package ee.carlrobert.codegpt.actions.toolwindow;
|
|||
import com.intellij.icons.AllIcons;
|
||||
import com.intellij.openapi.actionSystem.AnAction;
|
||||
import com.intellij.openapi.actionSystem.AnActionEvent;
|
||||
import ee.carlrobert.codegpt.actions.ActionType;
|
||||
import ee.carlrobert.codegpt.actions.editor.EditorActionsUtil;
|
||||
import ee.carlrobert.codegpt.TelemetryAction;
|
||||
import ee.carlrobert.codegpt.conversations.ConversationsState;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
|
|
@ -27,6 +29,12 @@ public class ClearChatWindowAction extends AnAction {
|
|||
|
||||
@Override
|
||||
public void actionPerformed(@NotNull AnActionEvent event) {
|
||||
onActionPerformed.run();
|
||||
try {
|
||||
onActionPerformed.run();
|
||||
} finally {
|
||||
TelemetryAction.createActionMessage(TelemetryAction.IDE_ACTION)
|
||||
.property("action", ActionType.CLEAR_CHAT_WINDOW.name())
|
||||
.send();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,11 +1,11 @@
|
|||
package ee.carlrobert.codegpt.actions.toolwindow;
|
||||
|
||||
import com.intellij.icons.AllIcons;
|
||||
import com.intellij.openapi.actionSystem.ActionManager;
|
||||
import com.intellij.openapi.actionSystem.AnAction;
|
||||
import com.intellij.openapi.actionSystem.AnActionEvent;
|
||||
import com.intellij.openapi.extensions.PluginId;
|
||||
import ee.carlrobert.codegpt.actions.ActionType;
|
||||
import ee.carlrobert.codegpt.actions.editor.EditorActionsUtil;
|
||||
import ee.carlrobert.codegpt.TelemetryAction;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public class CreateNewConversationAction extends AnAction {
|
||||
|
|
@ -20,9 +20,15 @@ public class CreateNewConversationAction extends AnAction {
|
|||
|
||||
@Override
|
||||
public void actionPerformed(@NotNull AnActionEvent event) {
|
||||
var project = event.getProject();
|
||||
if (project != null) {
|
||||
onCreate.run();
|
||||
try {
|
||||
var project = event.getProject();
|
||||
if (project != null) {
|
||||
onCreate.run();
|
||||
}
|
||||
} finally {
|
||||
TelemetryAction.createActionMessage(TelemetryAction.IDE_ACTION)
|
||||
.property("action", ActionType.CREATE_NEW_CHAT.name())
|
||||
.send();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,8 +6,9 @@ import com.intellij.icons.AllIcons;
|
|||
import com.intellij.openapi.actionSystem.AnAction;
|
||||
import com.intellij.openapi.actionSystem.AnActionEvent;
|
||||
import com.intellij.openapi.ui.Messages;
|
||||
import ee.carlrobert.codegpt.actions.ActionType;
|
||||
import ee.carlrobert.codegpt.actions.editor.EditorActionsUtil;
|
||||
import ee.carlrobert.codegpt.completions.TelemetryAction;
|
||||
import ee.carlrobert.codegpt.TelemetryAction;
|
||||
import ee.carlrobert.codegpt.conversations.ConversationService;
|
||||
import ee.carlrobert.codegpt.toolwindow.chat.standard.StandardChatToolWindowContentManager;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
|
@ -45,7 +46,7 @@ public class DeleteAllConversationsAction extends AnAction {
|
|||
project.getService(StandardChatToolWindowContentManager.class).resetActiveTab();
|
||||
} finally {
|
||||
TelemetryAction.createActionMessage(TelemetryAction.IDE_ACTION)
|
||||
.property("action", "DELETE_ALL_CONVERSATIONS")
|
||||
.property("action", ActionType.DELETE_ALL_CONVERSATIONS.name())
|
||||
.send();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,8 +4,9 @@ import com.intellij.icons.AllIcons;
|
|||
import com.intellij.openapi.actionSystem.AnAction;
|
||||
import com.intellij.openapi.actionSystem.AnActionEvent;
|
||||
import com.intellij.openapi.ui.Messages;
|
||||
import ee.carlrobert.codegpt.actions.ActionType;
|
||||
import ee.carlrobert.codegpt.actions.editor.EditorActionsUtil;
|
||||
import ee.carlrobert.codegpt.completions.TelemetryAction;
|
||||
import ee.carlrobert.codegpt.TelemetryAction;
|
||||
import ee.carlrobert.codegpt.conversations.ConversationService;
|
||||
import ee.carlrobert.codegpt.conversations.ConversationsState;
|
||||
import ee.carlrobert.codegpt.util.OverlayUtils;
|
||||
|
|
@ -32,7 +33,7 @@ public class DeleteConversationAction extends AnAction {
|
|||
var project = event.getProject();
|
||||
if (project != null) {
|
||||
TelemetryAction.createActionMessage(TelemetryAction.IDE_ACTION)
|
||||
.property("action", "DELETE_CONVERSATION")
|
||||
.property("action", ActionType.DELETE_CONVERSATION.name())
|
||||
.send();
|
||||
|
||||
ConversationService.getInstance().deleteSelectedConversation();
|
||||
|
|
|
|||
|
|
@ -9,8 +9,9 @@ import com.intellij.openapi.fileEditor.FileEditorManager;
|
|||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.openapi.wm.ToolWindowManager;
|
||||
import com.intellij.testFramework.LightVirtualFile;
|
||||
import ee.carlrobert.codegpt.TelemetryService;
|
||||
import ee.carlrobert.codegpt.actions.ActionType;
|
||||
import ee.carlrobert.codegpt.actions.editor.EditorActionsUtil;
|
||||
import ee.carlrobert.codegpt.TelemetryAction;
|
||||
import ee.carlrobert.codegpt.conversations.ConversationsState;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.stream.Collectors;
|
||||
|
|
@ -33,20 +34,29 @@ public class OpenInEditorAction extends AnAction {
|
|||
|
||||
@Override
|
||||
public void actionPerformed(@NotNull AnActionEvent e) {
|
||||
var project = e.getProject();
|
||||
var currentConversation = ConversationsState.getCurrentConversation();
|
||||
if (project != null && currentConversation != null) {
|
||||
var dateTimeStamp = currentConversation.getUpdatedOn().format(DateTimeFormatter.ofPattern("yyyyMMddHHmm"));
|
||||
var fileName = String.format("%s_%s.md", currentConversation.getModel(), dateTimeStamp);
|
||||
var fileContent = currentConversation
|
||||
.getMessages()
|
||||
.stream()
|
||||
.map(it -> String.format("### User:\n%s\n### ChatGPT:\n%s\n", it.getPrompt(), it.getResponse()))
|
||||
.collect(Collectors.joining());
|
||||
VirtualFile file = new LightVirtualFile(fileName, fileContent);
|
||||
FileEditorManager.getInstance(project).openFile(file, true);
|
||||
var toolWindow = requireNonNull(ToolWindowManager.getInstance(project).getToolWindow("CodeGPT"));
|
||||
toolWindow.hide();
|
||||
try {
|
||||
var project = e.getProject();
|
||||
var currentConversation = ConversationsState.getCurrentConversation();
|
||||
if (project != null && currentConversation != null) {
|
||||
var dateTimeStamp = currentConversation.getUpdatedOn()
|
||||
.format(DateTimeFormatter.ofPattern("yyyyMMddHHmm"));
|
||||
var fileName = String.format("%s_%s.md", currentConversation.getModel(), dateTimeStamp);
|
||||
var fileContent = currentConversation
|
||||
.getMessages()
|
||||
.stream()
|
||||
.map(it -> String.format("### User:\n%s\n### ChatGPT:\n%s\n", it.getPrompt(),
|
||||
it.getResponse()))
|
||||
.collect(Collectors.joining());
|
||||
VirtualFile file = new LightVirtualFile(fileName, fileContent);
|
||||
FileEditorManager.getInstance(project).openFile(file, true);
|
||||
var toolWindow = requireNonNull(
|
||||
ToolWindowManager.getInstance(project).getToolWindow("CodeGPT"));
|
||||
toolWindow.hide();
|
||||
}
|
||||
} finally {
|
||||
TelemetryAction.createActionMessage(TelemetryAction.IDE_ACTION)
|
||||
.property("action", ActionType.OPEN_CONVERSATION_IN_EDITOR.name())
|
||||
.send();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
package ee.carlrobert.codegpt.completions;
|
||||
|
||||
import ee.carlrobert.codegpt.TelemetryService;
|
||||
import ee.carlrobert.codegpt.TelemetryAction;
|
||||
import ee.carlrobert.codegpt.conversations.Conversation;
|
||||
import ee.carlrobert.codegpt.conversations.message.Message;
|
||||
import ee.carlrobert.codegpt.settings.state.AzureSettingsState;
|
||||
|
|
@ -230,9 +230,10 @@ public class CompletionRequestHandler {
|
|||
}
|
||||
|
||||
private void sendError(ErrorDetails error, Throwable ex) {
|
||||
TelemetryAction.createActionMessage(TelemetryAction.COMPLETION)
|
||||
TelemetryAction.createActionMessage(TelemetryAction.COMPLETION_ERROR)
|
||||
.property("conversationId", conversation.getId().toString())
|
||||
.error(new RuntimeException("Received an error during completion.\n" + error, ex))
|
||||
.property("model", conversation.getModel())
|
||||
.error(new RuntimeException(error.toString(), ex))
|
||||
.send();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -11,10 +11,11 @@ import com.intellij.openapi.roots.ui.componentsList.components.ScrollablePanel;
|
|||
import com.intellij.ui.JBColor;
|
||||
import com.intellij.ui.components.JBScrollPane;
|
||||
import com.intellij.util.ui.JBUI;
|
||||
import ee.carlrobert.codegpt.actions.ActionType;
|
||||
import ee.carlrobert.codegpt.TelemetryService;
|
||||
import ee.carlrobert.codegpt.completions.CompletionRequestHandler;
|
||||
import ee.carlrobert.codegpt.completions.SerpResult;
|
||||
import ee.carlrobert.codegpt.completions.TelemetryAction;
|
||||
import ee.carlrobert.codegpt.TelemetryAction;
|
||||
import ee.carlrobert.codegpt.conversations.Conversation;
|
||||
import ee.carlrobert.codegpt.conversations.ConversationService;
|
||||
import ee.carlrobert.codegpt.conversations.message.Message;
|
||||
|
|
@ -235,6 +236,10 @@ public abstract class BaseChatToolWindowTabPanel implements ChatToolWindowTabPan
|
|||
conversationService.saveMessage(conversation, message);
|
||||
call(conversation, message, responsePanel, true);
|
||||
}
|
||||
|
||||
TelemetryAction.createActionMessage(TelemetryAction.IDE_ACTION)
|
||||
.property("action", ActionType.RELOAD_MESSAGE.name())
|
||||
.send();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue