diff --git a/src/util/APIUtil.ts b/src/util/APIUtil.ts
index 770fa9d..75f61e4 100644
--- a/src/util/APIUtil.ts
+++ b/src/util/APIUtil.ts
@@ -85,6 +85,15 @@ class APIUtil {
})
}
+ updateCurrentMessageId() {
+ this.currentMessageId = `msg-${uuidv4()}`;
+ return this.currentMessageId;
+ }
+
+ getCurrentMessageId() {
+ return this.currentMessageId;
+ }
+
async createMessage(message: MessageData, messageId?: string) {
// 如果 messageId 为空,则使用 uuid 生成新的 ID
var newMessageId = messageId || `msg-${uuidv4()}`;
diff --git a/src/views/components/ChatMark/index.tsx b/src/views/components/ChatMark/index.tsx
index 916585e..8694b53 100644
--- a/src/views/components/ChatMark/index.tsx
+++ b/src/views/components/ChatMark/index.tsx
@@ -101,7 +101,7 @@ const ChatMark = ({
value: JSON.stringify(formData),
ide: platform,
language: info?.extension || info?.path?.split('.').pop()
- }))
+ }));
};
const handleCancel = () => {
@@ -112,7 +112,7 @@ const ChatMark = ({
name: "cancel",
ide: platform,
language: info?.extension || info?.path?.split('.').pop()
- }))
+ }));
};
const handleButtonClick = ({ event, index }) => {
diff --git a/src/views/components/MessageMarkdown/CodeButtons.tsx b/src/views/components/MessageMarkdown/CodeButtons.tsx
index b8f4c18..f72d2db 100644
--- a/src/views/components/MessageMarkdown/CodeButtons.tsx
+++ b/src/views/components/MessageMarkdown/CodeButtons.tsx
@@ -21,7 +21,10 @@ const CodeCopyButton = ({ code, language, platform }) => {
{({ copied, copy }) => (
{
copy();
- APIUtil.createEvent({name: 'copy', value: 'copy', language: language, ide: platform})
+ APIUtil.createEvent(
+ {name: 'copy', value: code, language: language, ide: platform},
+ APIUtil.getCurrentMessageId()
+ );
}}>
{copied ? : }
@@ -48,7 +51,10 @@ const DiffButton = ({ code, language, platform }) => {
command: e,
content: selectedCode
});
- APIUtil.createEvent({name: e, value: e, language: language, ide: platform});
+ APIUtil.createEvent(
+ {name: e, value: selectedCode, language: language, ide: platform},
+ APIUtil.getCurrentMessageId()
+ );
};
return (
@@ -65,7 +71,10 @@ const EditApplyButton = ({ code, language, platform }) => {
content: code,
autoedit: true
});
- APIUtil.createEvent({name: "edit_apply", value: "edit_apply", language: language, ide: platform});
+ APIUtil.createEvent(
+ {name: "edit_apply", value: code, language: language, ide: platform},
+ APIUtil.getCurrentMessageId()
+ );
};
return (
@@ -81,7 +90,10 @@ const CodeApplyButton = ({ code, language, platform }) => {
command: e,
content: code
});
- APIUtil.createEvent({name: e, value: e, language: language, ide: platform});
+ APIUtil.createEvent(
+ {name: e, value: code, language: language, ide: platform},
+ APIUtil.getCurrentMessageId()
+ );
};
return (
@@ -97,7 +109,10 @@ const FileApplyButton = ({ code, language, platform }) => {
command: e,
content: code
});
- APIUtil.createEvent({name: e, value: e, language: language, ide: platform});
+ APIUtil.createEvent(
+ {name: e, value: code, language: language, ide: platform},
+ APIUtil.getCurrentMessageId()
+ );
};
return (
@@ -115,7 +130,10 @@ const NewFileButton = ({ code, language, platform }) => {
language: language,
content: code
});
- APIUtil.createEvent({name: e, value: e, language: language, ide: platform});
+ APIUtil.createEvent(
+ {name: e, value: code, language: language, ide: platform},
+ APIUtil.getCurrentMessageId()
+ );
};
return (
diff --git a/src/views/components/MessageMarkdown/index.tsx b/src/views/components/MessageMarkdown/index.tsx
index ad621a4..67e4c1a 100644
--- a/src/views/components/MessageMarkdown/index.tsx
+++ b/src/views/components/MessageMarkdown/index.tsx
@@ -113,8 +113,11 @@ const MessageMarkdown = observer((props: MessageMarkdownProps) => {
const selection = window.getSelection()?.toString();
console.log("Copied: ", selection);
const e = 'manual_copy';
- APIUtil.createEvent({name: e, value: selection, language: language, ide: platform})
- }
+ APIUtil.createEvent(
+ {name: e, value: selection, language: language, ide: platform},
+ APIUtil.getCurrentMessageId()
+ );
+ };
useEffect(() => {
let previousNode: any = null;
diff --git a/src/views/stores/ChatStore.ts b/src/views/stores/ChatStore.ts
index 75ec526..09af7dd 100644
--- a/src/views/stores/ChatStore.ts
+++ b/src/views/stores/ChatStore.ts
@@ -7,6 +7,7 @@ import i18next from "i18next";
import APIUtil from "@/util/APIUtil";
import IDEServiceUtil from "@/util/IDEServiceUtil";
import { ASSISTANT_DISPLAY_NAME } from "@/util/constants";
+import { v4 as uuidv4 } from 'uuid';
interface Context {
content: string;
@@ -186,13 +187,14 @@ export const ChatStore = types
const supportedCommands = new Set(rootStore.input.commandMenus.map(x => x.name));
let command = text.startsWith("/") ? text.split(" ", 1)[0] : null;
command = command && supportedCommands.has(command.slice(1)) ? command : null;
+
IDEServiceUtil.getCurrentFileInfo().then(info => APIUtil.createMessage({
content: text,
command: command,
model: chatModel,
language: info?.extension || info?.path?.split(".").pop(),
ide: platform === "idea" ? "intellij" : platform
- }));
+ }, APIUtil.updateCurrentMessageId()));
};
const helpMessage = (originalMessage = false) => {
@@ -392,6 +394,13 @@ Thinking...
} else {
self.messages[messagesLength - 1].message = message;
}
+
+ // send event to server
+ const platform = process.env.platform === "idea" ? "intellij" : process.env.platform;
+ APIUtil.createEvent(
+ {name: 'stopGenerating', value: message, language: "unknow", ide: platform},
+ APIUtil.getCurrentMessageId()
+ );
},
newMessage: (message: IMessage) => {