mirror of
https://github.com/geekgeekrun/geekgeekrun.git
synced 2026-07-20 04:02:31 +08:00
enhance gtag name and args
This commit is contained in:
@@ -209,7 +209,7 @@ export const sendGptContent = async (page: Page, chatRecords) => {
|
||||
rawMarkdownText.replace(/^```json/m, '').replace(/```$/m, '')
|
||||
)?.response
|
||||
} catch (err) {
|
||||
gtag('encounter_error_when_parse_llm_respond_text', {
|
||||
gtag('encounter_error_when_parse_llm_text', {
|
||||
err,
|
||||
model: llmConfig?.model,
|
||||
providerCompleteApiUrl: llmConfig?.providerCompleteApiUrl
|
||||
|
||||
@@ -297,16 +297,16 @@ const mainLoop = async () => {
|
||||
.filter((it) => it.bizType !== 101 && it.isSelf)
|
||||
.slice(-recentMessageQuantityForLlm)
|
||||
await sendGptContent(pageMapByName.boss!, messageListForGpt)
|
||||
gtag('read_no_reply_reminder_llm_content_sent')
|
||||
gtag('rnrr_llm_content_sent')
|
||||
} catch (err) {
|
||||
console.log(err)
|
||||
if (rechatLlmFallback === RECHAT_LLM_FALLBACK.SEND_LOOK_FORWARD_EMOTION) {
|
||||
await sendLookForwardReplyEmotion(pageMapByName.boss!)
|
||||
gtag('read_no_reply_reminder_look_forward_reply_emotion_sent', {
|
||||
gtag('rnrr_look_forward_reply_emotion_sent', {
|
||||
fallback: true
|
||||
})
|
||||
} else {
|
||||
gtag('read_no_reply_reminder_encounter_error', {
|
||||
gtag('rnrr_encounter_error', {
|
||||
error: err
|
||||
})
|
||||
throw err
|
||||
@@ -314,7 +314,7 @@ const mainLoop = async () => {
|
||||
}
|
||||
} else {
|
||||
await sendLookForwardReplyEmotion(pageMapByName.boss!)
|
||||
gtag('read_no_reply_reminder_look_forward_reply_emotion_sent')
|
||||
gtag('rnrr_look_forward_reply_emotion_sent')
|
||||
}
|
||||
} else {
|
||||
cursorToContinueFind += 1
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import buildInfo from '../../../common/build-info.json'
|
||||
import os from 'node:os'
|
||||
|
||||
type LowercaseLetter =
|
||||
| 'a'
|
||||
@@ -55,6 +56,7 @@ function getCommonParams() {
|
||||
return {
|
||||
app_version: buildInfo.version,
|
||||
app_build_hash: buildInfo.buildHash,
|
||||
os_info: `${os.type()} | ${os.release()} | ${os.arch()}`,
|
||||
t: Number(new Date())
|
||||
}
|
||||
}
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
<el-tooltip
|
||||
content="待对比条目少于2个"
|
||||
:disabled="tableProps.length > 1"
|
||||
@show="gtagRenderer('tooltip_shown_about_compare_item_no_enough')"
|
||||
@show="gtagRenderer('tooltip_show_about_lake_of_compare_item')"
|
||||
>
|
||||
<el-radio v-model="diffPivot" :label="item.value" :disabled="tableProps.length <= 1">作为diff基准</el-radio>
|
||||
</el-tooltip>
|
||||
|
||||
@@ -67,7 +67,7 @@ const processTasks = async () => {
|
||||
})
|
||||
await p
|
||||
} catch {
|
||||
gtagRenderer('encounter_error_when_downloading_dependencies')
|
||||
gtagRenderer('encounter_error_when_download_deps')
|
||||
await ElMessageBox.confirm('需要重试吗?', '核心组件下载失败', {
|
||||
closeOnClickModal: false,
|
||||
closeOnPressEscape: false,
|
||||
@@ -76,11 +76,11 @@ const processTasks = async () => {
|
||||
cancelButtonText: '退出程序'
|
||||
})
|
||||
.then(() => {
|
||||
gtagRenderer('start_retry_download_dependencies')
|
||||
gtagRenderer('start_retry_download_deps')
|
||||
processTasks()
|
||||
})
|
||||
.catch(() => {
|
||||
gtagRenderer('cancel_download_dependencies_and_exit')
|
||||
gtagRenderer('cancel_download_deps_and_exit')
|
||||
promiseList.length = 0
|
||||
electron.ipcRenderer.invoke('exit-app-immediately')
|
||||
})
|
||||
|
||||
@@ -87,7 +87,7 @@
|
||||
font-size-inherit
|
||||
@click="
|
||||
() => {
|
||||
gtagRenderer('replace_inputted_cookie_by_collected_cookie')
|
||||
gtagRenderer('replace_inputted_cookie_by_collected')
|
||||
fillCollectedCookie()
|
||||
}
|
||||
"
|
||||
@@ -144,13 +144,13 @@ const formRules = {
|
||||
`JSON格式无效 - 存在语法错误: ${err.message};建议使用EditThisCookie扩展程序进行复制。`
|
||||
)
|
||||
)
|
||||
gtagRenderer('wrong_cookie_format_for_json_syntax-error')
|
||||
gtagRenderer('wrong_cookie_format_json_syntax_error')
|
||||
return
|
||||
}
|
||||
|
||||
if (!checkCookieListFormat(JSON.parse(formContent.value.collectedCookies))) {
|
||||
cb(new Error(`Cookie格式无效 - 部分字段缺失;建议使用EditThisCookie扩展程序进行复制。`))
|
||||
gtagRenderer('wrong_cookie_format_for_field_loss')
|
||||
gtagRenderer('wrong_cookie_format_field_loss')
|
||||
return
|
||||
}
|
||||
cb()
|
||||
@@ -168,7 +168,7 @@ const handleCookieCollected = (_, payload) => {
|
||||
fillCollectedCookie()
|
||||
gtagRenderer('cookie_collected_and_auto_filled')
|
||||
} else {
|
||||
gtagRenderer('cookie_collected_but_user_has_changed_input')
|
||||
gtagRenderer('cookie_collected_after_changed_input')
|
||||
}
|
||||
}
|
||||
const fillCollectedCookie = () => {
|
||||
|
||||
@@ -24,19 +24,19 @@ const { ipcRenderer } = electron
|
||||
const router = useRouter()
|
||||
|
||||
const handleStopButtonClick = async () => {
|
||||
gtagRenderer('geek_auto_start_chat_with_boss_stop_button_clicked')
|
||||
gtagRenderer('gascwb_stop_button_clicked')
|
||||
ipcRenderer.invoke('stop-geek-auto-start-chat-with-boss')
|
||||
}
|
||||
|
||||
const isStopping = ref(false)
|
||||
const handleStopping = () => {
|
||||
gtagRenderer('geek_auto_start_chat_with_boss_become_stopping')
|
||||
gtagRenderer('gascwb_become_stopping')
|
||||
isStopping.value = true
|
||||
}
|
||||
ipcRenderer.once('geek-auto-start-chat-with-boss-stopping', handleStopping)
|
||||
|
||||
const handleStopped = () => {
|
||||
gtagRenderer('geek_auto_start_chat_with_boss_become_stopped')
|
||||
gtagRenderer('gascwb_become_stopped')
|
||||
router.replace('/main-layout/GeekAutoStartChatWithBoss')
|
||||
}
|
||||
ipcRenderer.once('geek-auto-start-chat-with-boss-stopped', handleStopped)
|
||||
@@ -51,14 +51,14 @@ onMounted(async () => {
|
||||
await electron.ipcRenderer.invoke('run-geek-auto-start-chat-with-boss')
|
||||
} catch (err) {
|
||||
if (err instanceof Error && err.message.includes('NEED_TO_CHECK_RUNTIME_DEPENDENCIES')) {
|
||||
gtagRenderer('geek_auto_start_chat_with_boss_cannot_run_due_to_corrupt')
|
||||
gtagRenderer('gascwb_cannot_run_for_corrupt')
|
||||
ElMessage.error({
|
||||
message: `核心组件损坏,正在尝试修复`
|
||||
})
|
||||
router.replace('/')
|
||||
}
|
||||
console.error(err)
|
||||
gtagRenderer('geek_auto_start_chat_with_boss_cannot_run_due_to_unknown_error', { err })
|
||||
gtagRenderer('gascwb_cannot_run_for_unknown_error', { err })
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
@@ -22,19 +22,19 @@ const { ipcRenderer } = electron
|
||||
const router = useRouter()
|
||||
|
||||
const handleStopButtonClick = async () => {
|
||||
gtagRenderer('read_no_reply_reminder_stop_button_clicked')
|
||||
gtagRenderer('rnrr_stop_button_clicked')
|
||||
ipcRenderer.invoke('stop-geek-auto-start-chat-with-boss')
|
||||
}
|
||||
|
||||
const isStopping = ref(false)
|
||||
const handleStopping = () => {
|
||||
gtagRenderer('read_no_reply_reminder_become_stopping')
|
||||
gtagRenderer('rnrr_become_stopping')
|
||||
isStopping.value = true
|
||||
}
|
||||
ipcRenderer.once('geek-auto-start-chat-with-boss-stopping', handleStopping)
|
||||
|
||||
const handleStopped = () => {
|
||||
gtagRenderer('read_no_reply_reminder_become_stopped')
|
||||
gtagRenderer('rnrr_become_stopped')
|
||||
router.replace('/main-layout/ReadNoReplyReminder')
|
||||
}
|
||||
ipcRenderer.once('geek-auto-start-chat-with-boss-stopped', handleStopped)
|
||||
@@ -49,14 +49,14 @@ onMounted(async () => {
|
||||
await electron.ipcRenderer.invoke('run-read-no-reply-auto-reminder')
|
||||
} catch (err) {
|
||||
if (err instanceof Error && err.message.includes('NEED_TO_CHECK_RUNTIME_DEPENDENCIES')) {
|
||||
gtagRenderer('read_no_reply_reminder_cannot_run_due_to_corrupt')
|
||||
gtagRenderer('rnrr_cannot_run_for_corrupt')
|
||||
ElMessage.error({
|
||||
message: `核心组件损坏,正在尝试修复`
|
||||
})
|
||||
router.replace('/')
|
||||
}
|
||||
console.error(err)
|
||||
gtagRenderer('read_no_reply_reminder_cannot_run_due_to_unknown_error', { err })
|
||||
gtagRenderer('rnrr_cannot_run_for_unknown_error', { err })
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
期望公司(以逗号分隔,不区分大小写)<el-tooltip
|
||||
effect="light"
|
||||
placement="bottom-start"
|
||||
@show="gtagRenderer('tooltip_shown_about_expect_company_figure')"
|
||||
@show="gtagRenderer('tooltip_show_about_expect_company_figure')"
|
||||
>
|
||||
<template #content>
|
||||
<img block h-270px src="./resources/intro-of-job-entry.png" />
|
||||
@@ -52,7 +52,7 @@
|
||||
<el-tooltip
|
||||
effect="light"
|
||||
placement="bottom"
|
||||
@show="gtagRenderer('tooltip_shown_about_expect_job_info_figure')"
|
||||
@show="gtagRenderer('tooltip_show_about_expect_job_info_figure')"
|
||||
>
|
||||
<template #content>
|
||||
<img block h-270px src="./resources/intro-of-job-info.png" />
|
||||
@@ -64,7 +64,7 @@
|
||||
<el-tooltip
|
||||
effect="light"
|
||||
placement="bottom-start"
|
||||
@show="gtagRenderer('tooltip_shown_about_mark_not_suit_intro')"
|
||||
@show="gtagRenderer('tooltip_show_about_mark_not_suit_intro')"
|
||||
>
|
||||
<template #content>
|
||||
<ol m0 line-height-1.5em w-400px pl2em>
|
||||
@@ -80,7 +80,7 @@
|
||||
style="color: var(--el-color-primary)"
|
||||
@click.prevent="
|
||||
() => {
|
||||
gtagRenderer('click_view_mark_as_not_suit_record_from_boss_b_tooltip')
|
||||
gtagRenderer('click_view_mansr_from_boss_b_tooltip')
|
||||
$router.push('/main-layout/MarkAsNotSuitRecord')
|
||||
}
|
||||
"
|
||||
@@ -286,7 +286,7 @@ const handleSubmit = async () => {
|
||||
path: '/geekAutoStartChatWithBoss/prepareRun',
|
||||
query: { flow: 'geek-auto-start-chat-with-boss' }
|
||||
})
|
||||
gtagRenderer('config_saved_and_will_launch_auto_start_chat', {
|
||||
gtagRenderer('config_saved_and_launch_auto_start_chat', {
|
||||
has_dingtalk_robot_token: !!formContent.value?.dingtalkRobotAccessToken
|
||||
})
|
||||
}
|
||||
|
||||
@@ -77,7 +77,7 @@
|
||||
size="small"
|
||||
@click="
|
||||
() => {
|
||||
gtagRenderer('mark_as_not_suit_record_refresh_clicked')
|
||||
gtagRenderer('mansr_refresh_clicked')
|
||||
getMarkAsNotSuitRecord()
|
||||
}
|
||||
"
|
||||
@@ -104,7 +104,7 @@
|
||||
scene="markAsNotSuitRecord"
|
||||
@closed="
|
||||
() => {
|
||||
gtagRenderer('mark_as_not_suit_record_closed')
|
||||
gtagRenderer('mansr_closed')
|
||||
selectedJobInfoForViewSnapshot = null
|
||||
}
|
||||
"
|
||||
@@ -137,7 +137,7 @@ const tableRef = ref<InstanceType<typeof ElTable>>()
|
||||
const isTableLoading = ref(false)
|
||||
async function getMarkAsNotSuitRecord() {
|
||||
try {
|
||||
gtagRenderer('mark_as_not_suit_record_request_sent', {
|
||||
gtagRenderer('mansr_request_sent', {
|
||||
page_no: pagination.value.pageNo,
|
||||
page_size: pagination.value.pageSize,
|
||||
})
|
||||
@@ -152,12 +152,12 @@ async function getMarkAsNotSuitRecord() {
|
||||
pageNo: res.pageNo,
|
||||
pageSize: pagination.value.pageSize
|
||||
}
|
||||
gtagRenderer('mark_as_not_suit_record_request_success', {
|
||||
gtagRenderer('mansr_request_success', {
|
||||
page_no: pagination.value.pageNo,
|
||||
page_size: pagination.value.pageSize,
|
||||
})
|
||||
} catch (err) {
|
||||
gtagRenderer('mark_as_not_suit_record_request_error', {
|
||||
gtagRenderer('mansr_request_error', {
|
||||
err,
|
||||
page_no: pagination.value.pageNo,
|
||||
page_size: pagination.value.pageSize,
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
effect="light"
|
||||
placement="right"
|
||||
:enterable="false"
|
||||
@show="gtagRenderer('tooltip_shown_about_look_forward_reply_emotion_figure')"
|
||||
@show="gtagRenderer('tooltip_show_about_lfr_emotion_figure')"
|
||||
>
|
||||
<template #content>
|
||||
<img block h-100px src="./resources/look-forward-reply-emotion.gif" />
|
||||
@@ -271,21 +271,21 @@ const handleSubmit = async () => {
|
||||
RECHAT_CONTENT_SOURCE.GEMINI_WITH_CHAT_CONTEXT
|
||||
) {
|
||||
if (!(await electron.ipcRenderer.invoke('check-is-resume-content-valid'))) {
|
||||
gtagRenderer('cannot_launch_due_to_invalid_resume_content_dialog_show')
|
||||
gtagRenderer('cannot_launch_for_invalid_rc_dialog_show')
|
||||
try {
|
||||
await ElMessageBox.confirm(`简历内容无效;您需要编辑一下您的简历`, {
|
||||
cancelButtonText: '取消',
|
||||
confirmButtonText: '好的,去编辑我的简历',
|
||||
dangerouslyUseHTMLString: true
|
||||
})
|
||||
gtagRenderer('cannot_launch_due_to_invalid_resume_content_dialog_click_confirm')
|
||||
gtagRenderer('invalid_rc_dialog_click_confirm')
|
||||
try {
|
||||
await electron.ipcRenderer.invoke('resume-edit')
|
||||
} catch (err) {
|
||||
console.log(err)
|
||||
}
|
||||
} catch {
|
||||
gtagRenderer('cannot_launch_due_to_invalid_resume_content_dialog_click_cancel')
|
||||
gtagRenderer('invalid_rc_dialog_click_cancel')
|
||||
}
|
||||
return
|
||||
}
|
||||
@@ -293,7 +293,7 @@ const handleSubmit = async () => {
|
||||
await electron.ipcRenderer.invoke('check-if-llm-config-list-valid')
|
||||
} catch (err) {
|
||||
if (err?.message?.includes(`CANNOT_FIND_VALID_CONFIG`)) {
|
||||
gtagRenderer('cannot_launch_due_to_invalid_llm_config')
|
||||
gtagRenderer('cannot_launch_for_invalid_llm_config')
|
||||
console.log(`大模型配置无效`, err)
|
||||
ElMessageBox.confirm(
|
||||
'大模型配置不存在或者包含无效配置<br />您是否希望查看并修正当前大模型配置?',
|
||||
@@ -307,7 +307,7 @@ const handleSubmit = async () => {
|
||||
}
|
||||
)
|
||||
.then(async () => {
|
||||
gtagRenderer('view_llm_config_clicked_in_invalid_tip_dialog')
|
||||
gtagRenderer('invalid_llm_config_tip_dialog_confirm')
|
||||
try {
|
||||
await electron.ipcRenderer.invoke('llm-config')
|
||||
} catch (err) {
|
||||
@@ -315,10 +315,10 @@ const handleSubmit = async () => {
|
||||
}
|
||||
})
|
||||
.catch(() => {
|
||||
gtagRenderer('close_invalid_llm_config_tip_dialog')
|
||||
gtagRenderer('invalid_llm_config_tip_dialog_cancel')
|
||||
})
|
||||
} else {
|
||||
gtagRenderer('cannot_launch_due_to_unknown_error_when_check_llm_config', { err })
|
||||
gtagRenderer('cannot_launch_for_check_llm_config_error', { err })
|
||||
ElMessage({
|
||||
type: 'error',
|
||||
message: '大模型配置检查未通过,请重试'
|
||||
@@ -330,7 +330,7 @@ const handleSubmit = async () => {
|
||||
await electron.ipcRenderer.invoke('check-if-auto-remind-prompt-valid')
|
||||
} catch (err) {
|
||||
if (err?.message?.includes(`RESUME_PLACEHOLDER_NOT_EXIST`)) {
|
||||
gtagRenderer('cannot_launch_due_to_resume_placeholder_not_exist')
|
||||
gtagRenderer('cannot_launch_for_no_resume_placehold')
|
||||
console.log(`提示词模板无效`, err)
|
||||
ElMessageBox.confirm(
|
||||
'提示词模板缺少简历内容占位符:<br /><b>__REPLACE_REAL_RESUME_HERE__</b><br /><br />您是否希望还原默认的提示词模板?',
|
||||
@@ -344,14 +344,14 @@ const handleSubmit = async () => {
|
||||
}
|
||||
)
|
||||
.then(async () => {
|
||||
gtagRenderer('reset_template_clicked_in_invalid_tip_dialog')
|
||||
gtagRenderer('confirm_invalid_rt_tip_dialog')
|
||||
await restoreDefaultTemplate()
|
||||
})
|
||||
.catch(() => {
|
||||
gtagRenderer('close_invalid_resume_template_tip_dialog')
|
||||
gtagRenderer('close_invalid_rt_tip_dialog')
|
||||
})
|
||||
} else {
|
||||
gtagRenderer('cannot_launch_due_to_unknown_error_when_check_prompt', { err })
|
||||
gtagRenderer('cannot_launch_for_check_prompt_error', { err })
|
||||
ElMessage({
|
||||
type: 'error',
|
||||
message: '用于生成自动提醒消息的提示词检查未通过,请重试'
|
||||
@@ -360,7 +360,7 @@ const handleSubmit = async () => {
|
||||
return
|
||||
}
|
||||
if (!(await electron.ipcRenderer.invoke('resume-content-enough-detect'))) {
|
||||
gtagRenderer('resume_content_not_enough_dialog_show')
|
||||
gtagRenderer('rc_not_enough_dialog_show')
|
||||
try {
|
||||
await ElMessageBox.confirm(
|
||||
`简历内容可能不够充足(各个部分内容长度相加 <800 字)<br />后续大模型根据简历生成的内容将可能不符合预期(例如相同内容重复生成、生成预期之外的内容)<br /><br />要继续运行吗?`,
|
||||
@@ -370,9 +370,9 @@ const handleSubmit = async () => {
|
||||
dangerouslyUseHTMLString: true
|
||||
}
|
||||
)
|
||||
gtagRenderer('resume_content_not_enough_dialog_click_confirm')
|
||||
gtagRenderer('rc_not_enough_dialog_click_confirm')
|
||||
} catch {
|
||||
gtagRenderer('resume_content_not_enough_dialog_click_cancel')
|
||||
gtagRenderer('rc_not_enough_dialog_click_cancel')
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
<el-tooltip
|
||||
placement="right"
|
||||
:enterable="false"
|
||||
@show="gtagRenderer('tooltip_shown_for_nav_boss_b_entry')"
|
||||
@show="gtagRenderer('tooltip_show_for_nav_boss_b_entry')"
|
||||
>
|
||||
<template #content>
|
||||
<div w-480px>
|
||||
@@ -56,7 +56,7 @@
|
||||
<el-tooltip
|
||||
placement="right"
|
||||
:enterable="false"
|
||||
@show="gtagRenderer('tooltip_shown_for_read_no_reply_reminder_entry')"
|
||||
@show="gtagRenderer('tooltip_show_for_rnrr_entry')"
|
||||
>
|
||||
<template #content>
|
||||
<div w-480px>
|
||||
|
||||
@@ -408,7 +408,7 @@ const handleSubmit = async () => {
|
||||
})
|
||||
) {
|
||||
try {
|
||||
gtagRenderer('resume_content_not_enough_dialog_show')
|
||||
gtagRenderer('rc_not_enough_dialog_show')
|
||||
await ElMessageBox.confirm(
|
||||
`简历内容可能不够充足(各个部分内容长度相加 <800 字)<br />后续大模型根据简历生成的内容将可能不符合预期(例如相同内容重复生成、生成预期之外的内容)<br /><br />要继续保存吗?`,
|
||||
{
|
||||
|
||||
@@ -4,8 +4,8 @@ export function gtagRenderer(name, params: any = null) {
|
||||
name,
|
||||
params: {
|
||||
...(params ?? {}),
|
||||
user_agent: navigator.userAgent,
|
||||
current_href: location.href,
|
||||
page_location: location.href,
|
||||
page_title: document.title,
|
||||
screen_w: window.screen?.width ?? null,
|
||||
screen_h: window.screen?.height ?? null,
|
||||
screen_dpr: window.devicePixelRatio
|
||||
|
||||
Reference in New Issue
Block a user