diff --git a/packages/ui/src/main/flow/OPEN_SETTING_WINDOW/ipc/index.ts b/packages/ui/src/main/flow/OPEN_SETTING_WINDOW/ipc/index.ts index 36277f1..fe2def6 100644 --- a/packages/ui/src/main/flow/OPEN_SETTING_WINDOW/ipc/index.ts +++ b/packages/ui/src/main/flow/OPEN_SETTING_WINDOW/ipc/index.ts @@ -547,12 +547,17 @@ export default function initIpc() { } } }) - ipcMain.on('test-llm-config-effect', () => { - createReadNoReplyReminderLlmMockWindow({ - parent: mainWindow!, - modal: true, - show: true - }) + ipcMain.on('test-llm-config-effect', (_, { autoReminderConfig } = {}) => { + createReadNoReplyReminderLlmMockWindow( + { + parent: mainWindow!, + modal: true, + show: true + }, + { + autoReminderConfig + } + ) async function requestLlm(_, requestPayload) { return await requestNewMessageContent(requestPayload.messageList, { requestScene: RequestSceneEnum.testing, diff --git a/packages/ui/src/main/window/readNoReplyReminderLlmMockWindow.ts b/packages/ui/src/main/window/readNoReplyReminderLlmMockWindow.ts index a90d9f1..d2909bb 100644 --- a/packages/ui/src/main/window/readNoReplyReminderLlmMockWindow.ts +++ b/packages/ui/src/main/window/readNoReplyReminderLlmMockWindow.ts @@ -1,9 +1,11 @@ import { BrowserWindow } from 'electron' import path from 'path' +import { URL } from 'node:url' export let readNoReplyReminderLlmMockWindow: BrowserWindow | null = null export function createReadNoReplyReminderLlmMockWindow( - opt?: Electron.BrowserWindowConstructorOptions + opt?: Electron.BrowserWindowConstructorOptions, + { autoReminderConfig } = {} ): BrowserWindow { // Create the browser window. if (readNoReplyReminderLlmMockWindow) { @@ -29,16 +31,19 @@ export function createReadNoReplyReminderLlmMockWindow( // HMR for renderer base on electron-vite cli. // Load the remote URL for development or the local html file for production. + let urlObj: URL if (process.env.NODE_ENV === 'development' && process.env['ELECTRON_RENDERER_URL']) { - readNoReplyReminderLlmMockWindow.loadURL( - process.env['ELECTRON_RENDERER_URL'] + '#/readNoReplyReminderLlmMock' - ) + urlObj = new URL(process.env['ELECTRON_RENDERER_URL'] + '#/readNoReplyReminderLlmMock') } else { - readNoReplyReminderLlmMockWindow.loadURL( + urlObj = new URL( 'file://' + path.join(__dirname, '../renderer/index.html') + '#/readNoReplyReminderLlmMock' ) } + for (const [k, v] of Object.entries(autoReminderConfig || {})) { + urlObj.searchParams.append(k, v) + } + readNoReplyReminderLlmMockWindow.loadURL(String(urlObj)) readNoReplyReminderLlmMockWindow!.once('closed', () => { readNoReplyReminderLlmMockWindow = null }) diff --git a/packages/ui/src/renderer/src/page/MainLayout/ReadNoReplyReminder.vue b/packages/ui/src/renderer/src/page/MainLayout/ReadNoReplyReminder.vue index cc0cd0f..97203cb 100644 --- a/packages/ui/src/renderer/src/page/MainLayout/ReadNoReplyReminder.vue +++ b/packages/ui/src/renderer/src/page/MainLayout/ReadNoReplyReminder.vue @@ -116,6 +116,11 @@ 次聊天内容作为上下文生成新消息 + + 使用当前配置模拟已读不回复聊过程 +
当所有模型均不可使用时  @@ -133,11 +138,6 @@
- - 使用当前配置模拟已读不回复聊过程 - @@ -473,7 +473,9 @@ async function handleTestEffectClicked() { if (!(await checkIsCanRun())) { return } - electron.ipcRenderer.send('test-llm-config-effect') + electron.ipcRenderer.send('test-llm-config-effect', { + autoReminderConfig: JSON.parse(JSON.stringify(formContent.value.autoReminder)) + }) } diff --git a/packages/ui/src/renderer/src/page/ReadNoReplyReminderLlmMock/index.vue b/packages/ui/src/renderer/src/page/ReadNoReplyReminderLlmMock/index.vue index 5bc3b67..cd5a59f 100644 --- a/packages/ui/src/renderer/src/page/ReadNoReplyReminderLlmMock/index.vue +++ b/packages/ui/src/renderer/src/page/ReadNoReplyReminderLlmMock/index.vue @@ -22,7 +22,12 @@
-
+
{{ item.text }}
([]) +const recentMessageQuantityForLlm = + Number(new URL(location.href).searchParams.get('recentMessageQuantityForLlm')) || 8 +function getIsEnterContent(index) { + return messageList.value.length - index - 1 < recentMessageQuantityForLlm +} + const llmConfigList = ref([]) const llmConfigListForRender = computed(() => { return [ @@ -172,7 +183,7 @@ async function sendLlmGeneratedContent() { isLoading.value = true try { const response = await electron.ipcRenderer.invoke('request-llm-for-test', { - messageList: JSON.parse(JSON.stringify(messageList.value ?? [])), + messageList: JSON.parse(JSON.stringify((messageList.value ?? []).slice(-8))), llmConfigIdForPick: selectedLlmConfig.value ? [selectedLlmConfig.value] : null }) console.log(response) @@ -224,7 +235,22 @@ function formatApiSecret(text) { background-color: #d1f0ef; color: #333; padding: 10px; - border-radius: 8px 8px 0 8px; + border-radius: 8px 8px 0 0; + &.will-enter-context { + position: relative; + &::before { + content: '聊天上下文'; + display: flex; + font-size: 10px; + position: absolute; + top: 100%; + left: 0; + background-color: #10c7c3; + color: #fff; + line-height: 1; + padding: 2px 4px; + } + } } }