diff --git a/miniprogram/pages/home/index.js b/miniprogram/pages/home/index.js
index 22585b2..38a19e6 100644
--- a/miniprogram/pages/home/index.js
+++ b/miniprogram/pages/home/index.js
@@ -1,17 +1,19 @@
const { request } = require('../../utils/request')
-const USER_MODULES = [
- { name: '批量识别', desc: '多条文本批量检测并给出风险汇总', tag: '批量筛查', path: '/pages/batch/index' }
+const QUICK_TEXTS = [
+ '大家好,今晚 8 点社区线上读书会,欢迎参加。',
+ '恭喜中奖领取大额现金,点击链接立即到账。',
+ '本周活动报名已开放,请在群里接龙。',
+ '高薪兼职日结,扫码进群立刻赚钱。'
]
Page({
data: {
- loading: true,
+ loading: false,
user: null,
- modelInfo: null,
- threshold: null,
- thresholdText: '--',
- userModules: USER_MODULES
+ text: '',
+ result: null,
+ quickTexts: QUICK_TEXTS
},
onShow() {
@@ -25,29 +27,89 @@ Page({
return
}
- this.setData({ loading: true })
try {
- const [user, modelInfo] = await Promise.all([
- request({ url: '/auth/me' }),
- request({ url: '/spam/model/info' })
- ])
-
+ const user = await request({ url: '/auth/me' })
app.globalData.user = user
wx.setStorageSync('user', user)
- const threshold = modelInfo.threshold || null
- const thresholdText = threshold === null || threshold === undefined ? '--' : `${(Number(threshold) * 100).toFixed(1)}%`
- this.setData({ user, modelInfo, threshold, thresholdText })
+ this.setData({ user })
+ } catch (e) {
+ // ignore
+ }
+ },
+
+ formatPercent(value, digits = 2) {
+ const num = Number(value || 0)
+ return `${(num * 100).toFixed(digits)}%`
+ },
+
+ onInput(e) {
+ this.setData({ text: e.detail.value || '' })
+ },
+
+ fillQuick(e) {
+ this.setData({ text: e.currentTarget.dataset.text || '' })
+ },
+
+ async publish() {
+ if (this.data.loading) return
+ const text = (this.data.text || '').trim()
+ if (text.length < 2) {
+ wx.showToast({ title: '请输入至少 2 个字符', icon: 'none' })
+ return
+ }
+
+ this.setData({ loading: true })
+ try {
+ const result = await request({
+ url: '/content/publish',
+ method: 'POST',
+ data: { text }
+ })
+
+ this.setData({
+ result: {
+ ...result,
+ detect: {
+ ...(result.detect || {}),
+ confidence_text: this.formatPercent((result.detect || {}).confidence, 2)
+ },
+ post_threshold_text: this.formatPercent((result.post || {}).threshold, 1),
+ detect_spam_probability_text: this.formatPercent((result.detect || {}).spam_probability, 2)
+ }
+ })
+
+ wx.showToast({
+ title: result.publish_allowed ? '发布成功' : '已拦截,可申诉',
+ icon: result.publish_allowed ? 'success' : 'none'
+ })
} finally {
this.setData({ loading: false })
}
},
+ goBatch() {
+ wx.navigateTo({ url: '/pages/batch/index' })
+ },
+
goto(e) {
const path = e.currentTarget.dataset.path
if (!path) return
wx.navigateTo({ url: path })
},
+ showTokenWeight(e) {
+ const token = e.currentTarget.dataset.token
+ const weight = e.currentTarget.dataset.weight
+ const weightNum = Number(weight || 0)
+ const direction = weightNum >= 0 ? '倾向垃圾判定' : '倾向正常判定'
+ wx.showModal({
+ title: '关键词权重',
+ content: `关键词"${token}"\n权重贡献:${weightNum >= 0 ? '+' : ''}${weightNum.toFixed(4)}\n(${direction})`,
+ showCancel: false,
+ confirmText: '关闭'
+ })
+ },
+
logout() {
getApp().clearAuth()
wx.reLaunch({ url: '/pages/login/index' })
diff --git a/miniprogram/pages/home/index.wxml b/miniprogram/pages/home/index.wxml
index 95193db..08e0d87 100644
--- a/miniprogram/pages/home/index.wxml
+++ b/miniprogram/pages/home/index.wxml
@@ -3,45 +3,65 @@
CONTROL CENTER
{{user ? ('欢迎,' + user.nickname) : '社区内容风控工作台'}}
发布内容将实时进入朴素贝叶斯识别流程,疑似垃圾信息自动拦截并支持申诉。
-
- 版本 {{modelInfo.version || '未训练'}}
- 阈值 {{thresholdText}}
- 样本 {{modelInfo.sample_count || 0}}
-
-
- 检测引擎状态
-
-
- 模型版本
- {{modelInfo.version || '未训练'}}
+
+ 发布信息
+
+
+ 内容文本
+
+ 当前字数:{{text.length}},建议不少于 2 个字符。
+
+
+
+ 识别反馈
+
+ 发布结果
+ {{result.publish_allowed ? '发布成功' : '已拦截,需申诉'}}
-
- 训练样本
- {{modelInfo.sample_count || 0}}
+
+ 分类标签
+ {{result.detect.category_label}}
-
- 垃圾阈值
- {{thresholdText}}
+
+ 模型判断
+ {{result.detect.prediction_text}}
-
- 最近训练
- {{modelInfo.trained_at || '--'}}
+
+ 垃圾概率
+ {{result.detect_spam_probability_text}}
+
+
+
+
+
+ 检测置信度
+ {{result.detect.confidence_text}}
+
+
+
+
+
+ 本次阈值
+ {{result.post_threshold_text}}
+
+
+ 风险关键词
+
+ {{item.token}}
+
-
-
- 更多功能
- 批量检测与管理功能入口。
-
-
- {{item.name}}
- {{item.desc}}
- {{item.tag}}
+
+ 快捷示例
+
+ {{item}}
-
+
+
+