From d8c67762daf48e8338a809e823956f1d009e937a Mon Sep 17 00:00:00 2001 From: xsl Date: Wed, 14 Oct 2026 14:25:17 +0800 Subject: [PATCH] feat(h5): calculate integer total from weighted dimensions across reports and admin --- docs/综合得分三维度加权-2026-10-14.md | 38 + graphify-out/.graphify_labels.json | 34 +- graphify-out/.graphify_labels.json.sig | 2 +- graphify-out/GRAPH_REPORT.md | 192 +- graphify-out/graph.html | 8 +- graphify-out/graph.json | 2886 ++++++++++++++---------- graphify-out/manifest.json | 42 +- h5/README.md | 2 +- h5/admin.html | 2 +- h5/js/admin.js | 6 +- h5/js/app.js | 9 +- h5/js/skin-score.js | 18 +- h5/server.js | 12 +- h5/test/regression.js | 2 +- h5/test/report-persistence.mjs | 42 + h5/test/weighted-total.js | 31 + 16 files changed, 1891 insertions(+), 1435 deletions(-) create mode 100644 docs/综合得分三维度加权-2026-10-14.md create mode 100644 h5/test/weighted-total.js diff --git a/docs/综合得分三维度加权-2026-10-14.md b/docs/综合得分三维度加权-2026-10-14.md new file mode 100644 index 0000000..22a46f8 --- /dev/null +++ b/docs/综合得分三维度加权-2026-10-14.md @@ -0,0 +1,38 @@ +# 综合得分:三维度按 4:3:3 加权 + +## 已确认公式 + +综合得分 = Math.round(紧塑力S × 4 + 透亮感S × 3 + 稳韧力S × 3) + +- 三个维度为10分制,综合得分为100分制整数。 +- 使用现有维度S分数(保留两位小数)计算,不先取页面显示的一位小数;最终四舍五入一次。 +- 三维度任何一个缺失、非数值或越界,返回 null,页面显示 `--`,CSV为空;不按0分计、不重新分配权重。 +- 不再读取旷视 `score_info.total_score` 或顶层 `total_score` 作为综合得分。原始接口数据仍原样保留供复核。 + +例如:紧塑力8、透亮感9、稳韧力8.5 → 84.5 → 85分。 + +## 生效位置 + +统一函数 `SkinScore.weightedTotal(dims)`,供评分引擎、H5报告页和后台复用。 + +- 新检测的 `vm.total` 与后台记录 `total_score` 保存加权结果,规则标记为 `dimensions-433-v1`。 +- 后台列表列名“综合得分”,详情明确显示公式与精度规则,CSV列名“综合得分(4:3:3)”。 +- 历史报告H5展示、后台列表/详情/CSV按已保存维度计算,不使用旧接口总分;不批量改写历史记录、报告快照或原始返回文件。 +- 不修改维度评分、原始肌龄、文案或推荐产品规则;历史推荐保持不变。 +- 历史快照和历史列表接口里既有的摘要总分不做迁移;用户页面不会使用该旧摘要分数,报告详情由统一函数计算显示。 + +## 本地验证 + +```sh +node h5/test/weighted-total.js +node h5/js/skin-score.js +node h5/test/regression.js +node h5/test/recommendation.js +node h5/test/raw-skin-age.js +node h5/test/accounts.js +H5_ARTIFACT_DIR=/tmp/juzi-weighted-total-20261014 node h5/test/report-persistence.mjs +``` + +使用临时数据目录、固定微信身份和接口样例进行测试,不调用付费检测,不读写真实线上报告。验证新记录保存、前后端展示一致、CSV、历史记录文件不变、缺失维度、安全隔离与既有产品/文案回归。 + +已获用户确认,纳入 2026-10-14 发版;部署后只读核对线上静态资源、报告页与后台接口,不调用真实付费检测或新增测试记录。 diff --git a/graphify-out/.graphify_labels.json b/graphify-out/.graphify_labels.json index 7ec2d57..97f6e45 100644 --- a/graphify-out/.graphify_labels.json +++ b/graphify-out/.graphify_labels.json @@ -25,7 +25,7 @@ "23": "facepp-skinanalyze(旷视皮肤分析专业版调用技能)", "24": "巨子测肤 · 1'me 语音播报内容设计文档 V1.0", "25": "mobile-select.iife.min.js", - "26": ".extractWeights", + "26": "NeuralNetwork", "27": "gen_voice.py", "28": "C", "29": "face-api.js 本地化依赖(h5/vendor/faceapi/)", @@ -40,12 +40,12 @@ "38": "FaceLandmark68Net", "39": "UI交互界面调整", "40": "第四轮反馈修改与验收", - "41": ".loadFromDisk", + "41": "ao", "42": "layer_at", - "43": "ComputeAllFaceDescriptorsTask", + "43": ".run", "44": "start-local.sh", "45": "report-persistence.mjs", - "46": "PredictAllFaceExpressionsWithFaceAlignmentTask", + "46": ".forwardInput", "47": "extractFaceTensors", "48": "已修改", "49": "mobile-select/README.md", @@ -63,7 +63,7 @@ "61": "报告布局与跟手交互调整", "62": "提交前 Review(2026-10-11)", "63": "e2e-browser.mjs", - "64": "isValidNumber", + "64": "综合得分:三维度按 4:3:3 加权", "65": "微信登录接入与公网部署说明", "66": "h5/README.md", "67": "ui-20261009.mjs", @@ -92,13 +92,12 @@ "90": "customer-feedback.mjs", "91": "wi", "92": "客户反馈修改(2026-10-12)", - "93": ".runAndExtendWithFaceDetection", + "93": ".runAndExtendWithFaceDetections", "94": "第三轮反馈:PSD 对齐、验收及上线记录", "95": "login-performance.mjs", "96": "production-loop.mjs", "97": "account-client.js", - "98": ".mul", - "99": "ComputeSingleFaceDescriptorTask", + "98": "TinyYolov2", "100": ".draw", "101": "wechat-fixture.cjs", "102": "DetectSingleFaceLandmarksTask", @@ -110,40 +109,23 @@ "108": "profile-interaction.mjs", "109": "submitPhotos", "110": "startCamera", - "111": "extractWeightsFactory", "112": "微信退出登录-2026-10-13.md", "113": "swipe-track.js", "114": "optimize_delivery_images.py", "115": "normalize", - "116": ".run", + "116": "extractAllFacesAndComputeResults", "117": "play", "118": "f", - "119": "PredictSingleFaceExpressionsWithFaceAlignmentTask", - "120": "PredictAllFaceExpressionsTask", "121": "wechat-browser.mjs", "122": "doCapture", "123": "评分圈内居中、基础信息页固定与正脸语音修复", - "124": "FaceProcessor", "125": "报告等待页实拍背景-2026-10-12.md", - "126": "PredictSingleFaceExpressionsTask", "127": "splash-brand-browser.mjs", - "128": "NeuralNetwork", - "129": "TinyYolov2Base", - "130": "FaceFeatureExtractor", "131": "原始肌龄显示与鸿蒙滚轮兼容", "132": "harmony-picker.mjs", - "133": ".toString", "134": "camera-flip-browser.mjs", - "135": "AgeGenderNet", - "136": "convLayer", "137": "height", - "138": "age", "139": "recommendation.js", - "140": ".forwardInput", - "141": "FaceRecognitionNet", - "142": ".runAndExtendWithFaceDetections", - "143": "TinyXception", - "144": "FaceExpressionNet", "145": "PredictAllAgeAndGenderWithFaceAlignmentTask", "146": "PredictSingleAgeAndGenderWithFaceAlignmentTask", "147": "拍摄角度不合格震动提醒-2026-10-13.md" diff --git a/graphify-out/.graphify_labels.json.sig b/graphify-out/.graphify_labels.json.sig index 0876467..6bda8e6 100644 --- a/graphify-out/.graphify_labels.json.sig +++ b/graphify-out/.graphify_labels.json.sig @@ -1 +1 @@ -{"0": "017a6130270ab9f2", "1": "cb6ea50bd4e4a5ca", "2": "4d1bb0fdf94e716d", "3": "125a85b2d8e78e52", "4": "4b1835ae3a82cf12", "5": "b5b4a03db0f5697e", "6": "16df50aadff513fb", "7": "03b56b13a08b5f83", "8": "a689fcb62e7754af", "9": "a579e3315ea1fb63", "10": "188dd5e33354e35d", "11": "4a490abd5e503318", "12": "aeca274694e158d2", "13": "7e3b558a587a4ebe", "14": "58417b287cc79e90", "15": "4bc370be8afd7db1", "16": "95add6a975c0cb72", "17": "288c2a98831b0021", "18": "f93d5d85e671fcee", "19": "5272556cf61d08b3", "20": "aecf2fce44ba49c5", "21": "2405e1edb003a83e", "22": "54d7329fed675057", "23": "90fac00055070ce2", "24": "f85b5b1634224c86", "25": "46e8db3e6e3f37ea", "26": "16bdd538850fbb24", "27": "eab427ce9a5219e9", "28": "f2d553fdb7f3d983", "29": "c608f1c6492e1cb1", "30": "73c13793fca09f56", "31": "fbbcfc059751cc6a", "32": "f6bcf56c4589316b", "33": "75f750c5b7d9f63d", "34": "f024ff7942935690", "35": "241be5abeab1da6f", "36": "a7d375041779bad4", "37": "cb8f26249485324a", "38": "9a25b1230b5fe649", "39": "fdd95375b4a5ddb3", "40": "5e546676ab96de03", "41": "00dab8704da757dc", "42": "916170b9f5d7346b", "43": "3dd68cce72af5314", "44": "852c1bb2446edd9c", "45": "e042d7fe7351bcb9", "46": "65718282b3c32109", "47": "e1aa21690d4f0dae", "48": "cf2f2424bc00436f", "49": "1f976711cda158dc", "50": "bbb2b57d72922b16", "51": "eb6a182204867275", "52": "2ec3c8c088568ba9", "53": "68c45056378341a7", "54": "c58d41e8e580fdc6", "55": "812950f51be20e40", "56": "9ee2ad45dc27851d", "57": "f2a40b5f1b29f669", "58": "80b3d789d41454ea", "59": "891f59cda3708718", "60": "a505b7de6257a4e8", "61": "5209ce2a267bf33b", "62": "1366ae24c7e5897d", "63": "c256b43f75d7809e", "64": "1c27e5f448dc4f9c", "65": "bdee3c4a37df52f8", "66": "9727b30d720298e3", "67": "3e126d8deaf6e200", "68": "6b91f3679541de79", "69": "e511846eeba03076", "70": "be0c8310abda2467", "71": "589a2d5a76f3880a", "72": "c84f196a7bd35861", "73": "2b887bf601ccfb9f", "74": "ae2a154311e1f53a", "75": "69fdd23278518884", "76": "3c4c278d6026bc3a", "77": "979dcc63399620ad", "78": "ac00532d5d77886f", "79": "c6cfdfe181232ecc", "80": "315325cde1352e98", "81": "37c559741825be74", "82": "200f25fbad7af8fb", "83": "1284897282eb47a3", "84": "d8bb296741d3d05c", "85": "7067e88534a91ab4", "86": "386c6fcc7be918e0", "87": "e5fa7717989eda80", "88": "8b5ab5232cef3457", "89": "9e3363b80eeceeea", "90": "dd1c246e19a2d032", "91": "83b0fd3b14363e4d", "92": "fced244d93677d90", "93": "5a9014c4a7f87699", "94": "713d04996c4627df", "95": "59c31f858c7b6970", "96": "4195478d5c528371", "97": "505ea719b994ac5e", "98": "e6ef8c2f1b997e99", "99": "7ac475ea9bc280f8", "100": "bf75bfc99d4f9e34", "101": "beb276de6301634c", "102": "23f1d406f6c779ae", "103": "6ffbe07b521a061b", "104": "e114a7aebaaca2f1", "105": "af50c66d16c81bba", "106": "8bc72c179793e1c2", "107": "3877490226a78145", "108": "e0fc0a42e33bda91", "109": "4afb1715f62865b1", "110": "f1660fde8e75d368", "111": "72618e564850b9ce", "112": "af995dd35403b4dd", "113": "0d99f86b9e41c4bb", "114": "b9d7c266afa84437", "115": "7a0da13554c97235", "116": "8d6f4b5e4f67bcb7", "117": "679b8985ab775959", "118": "f5fa3e3d7d829c42", "119": "8c471c7baeaaca54", "120": "e800d832c255899a", "121": "2b037735e1f5b0f6", "122": "61b6fafa306cb441", "123": "b091e3eb82b456eb", "124": "94ead9feda213ac6", "125": "e4f29216745ec758", "126": "cb5ac3401283c378", "127": "006218e34885dbe0", "128": "d96493a5f110bd4c", "129": "327fcc91276306b0", "130": "9209646b8de02314", "131": "482dbb7ec33d8c23", "132": "3daacabc5062b554", "133": "89e609b2678905d3", "134": "e7c90d6ef8276a1e", "135": "14fdf4e4c496519f", "136": "8616cd6d33fcb6cb", "137": "746b316833e9c203", "138": "b234c5e4ac7f632d", "139": "e594ecaa8e7d1538", "140": "5fec2bbca3634aec", "141": "b186b90877868930", "142": "46204fb2e4d50c53", "143": "9beb9113cf6685a2", "144": "e858d75e995c92e5", "145": "92ab3e5134ed8685", "146": "01f68dfc34a29d32", "147": "0e6cad06ebfcfb29"} \ No newline at end of file +{"0": "b513c3d9e2ce0ee9", "1": "cb6ea50bd4e4a5ca", "2": "4d1bb0fdf94e716d", "3": "4ee58d162f4e59ea", "4": "4b1835ae3a82cf12", "5": "5d94cf57d5d1a6fb", "6": "ae50c9da649ec57b", "7": "a906f950ce2f31ab", "8": "94615f6f98a8e1f2", "9": "4a86450ff5444c44", "10": "188dd5e33354e35d", "11": "4a490abd5e503318", "12": "f7306620afc0de70", "13": "7e3b558a587a4ebe", "14": "58417b287cc79e90", "15": "4bc370be8afd7db1", "16": "95add6a975c0cb72", "17": "288c2a98831b0021", "18": "f93d5d85e671fcee", "19": "5272556cf61d08b3", "20": "aecf2fce44ba49c5", "21": "2405e1edb003a83e", "22": "0e697f6aae67b293", "23": "90fac00055070ce2", "24": "f85b5b1634224c86", "25": "46e8db3e6e3f37ea", "26": "8e18b3e21166963c", "27": "eab427ce9a5219e9", "28": "8609687e7e66e290", "29": "c608f1c6492e1cb1", "30": "73c13793fca09f56", "31": "fbbcfc059751cc6a", "32": "f6bcf56c4589316b", "33": "75f750c5b7d9f63d", "34": "f024ff7942935690", "35": "241be5abeab1da6f", "36": "a7d375041779bad4", "37": "cb8f26249485324a", "38": "9a25b1230b5fe649", "39": "fdd95375b4a5ddb3", "40": "5e546676ab96de03", "41": "8e5e97153c881130", "42": "916170b9f5d7346b", "43": "6cda159cdef28f96", "44": "852c1bb2446edd9c", "45": "e042d7fe7351bcb9", "46": "880a74c6d255e5cc", "47": "0303828c18285570", "48": "cf2f2424bc00436f", "49": "1f976711cda158dc", "50": "bbb2b57d72922b16", "51": "eb6a182204867275", "52": "2ec3c8c088568ba9", "53": "68c45056378341a7", "54": "c58d41e8e580fdc6", "55": "812950f51be20e40", "56": "9ee2ad45dc27851d", "57": "f2a40b5f1b29f669", "58": "5dc697ba1920d5a0", "59": "891f59cda3708718", "60": "a505b7de6257a4e8", "61": "5209ce2a267bf33b", "62": "1366ae24c7e5897d", "63": "c256b43f75d7809e", "64": "ad47fc38e493a4e2", "65": "bdee3c4a37df52f8", "66": "9727b30d720298e3", "67": "3e126d8deaf6e200", "68": "6b91f3679541de79", "69": "e511846eeba03076", "70": "be0c8310abda2467", "71": "589a2d5a76f3880a", "72": "c84f196a7bd35861", "73": "2b887bf601ccfb9f", "74": "ae2a154311e1f53a", "75": "69fdd23278518884", "76": "3c4c278d6026bc3a", "77": "979dcc63399620ad", "78": "68c52c80f38f8b2c", "79": "c6cfdfe181232ecc", "80": "315325cde1352e98", "81": "37c559741825be74", "82": "200f25fbad7af8fb", "83": "1284897282eb47a3", "84": "d8bb296741d3d05c", "85": "7067e88534a91ab4", "86": "386c6fcc7be918e0", "87": "e5fa7717989eda80", "88": "8b5ab5232cef3457", "89": "9e3363b80eeceeea", "90": "dd1c246e19a2d032", "91": "83b0fd3b14363e4d", "92": "fced244d93677d90", "93": "f0b2b88fc2d3c999", "94": "713d04996c4627df", "95": "59c31f858c7b6970", "96": "4195478d5c528371", "97": "505ea719b994ac5e", "98": "c96276581a8c98d4", "100": "bf75bfc99d4f9e34", "101": "beb276de6301634c", "102": "9d0d3a0dba1e85c8", "103": "6ffbe07b521a061b", "104": "e114a7aebaaca2f1", "105": "af50c66d16c81bba", "106": "8bc72c179793e1c2", "107": "3877490226a78145", "108": "e0fc0a42e33bda91", "109": "4afb1715f62865b1", "110": "f1660fde8e75d368", "112": "af995dd35403b4dd", "113": "0d99f86b9e41c4bb", "114": "b9d7c266afa84437", "115": "a8dd95af4259d555", "116": "ec2ef7fbebe8cd34", "117": "679b8985ab775959", "118": "50139bb98492555c", "121": "2b037735e1f5b0f6", "122": "61b6fafa306cb441", "123": "b091e3eb82b456eb", "125": "e4f29216745ec758", "127": "006218e34885dbe0", "131": "482dbb7ec33d8c23", "132": "3daacabc5062b554", "134": "e7c90d6ef8276a1e", "137": "afdd5c2f54c40808", "139": "e594ecaa8e7d1538", "145": "92ab3e5134ed8685", "146": "01f68dfc34a29d32", "147": "0e6cad06ebfcfb29"} \ No newline at end of file diff --git a/graphify-out/GRAPH_REPORT.md b/graphify-out/GRAPH_REPORT.md index 6506ed9..3c4642e 100644 --- a/graphify-out/GRAPH_REPORT.md +++ b/graphify-out/GRAPH_REPORT.md @@ -1,16 +1,16 @@ -# Graph Report - juzi (2026-10-13) +# Graph Report - juzi (2026-10-14) ## Corpus Check -- 118 files · ~4,910,480 words +- 120 files · ~4,911,203 words - Verdict: corpus is large enough that graph structure adds value. ## Summary -- 1507 nodes · 2958 edges · 148 communities (112 shown, 36 thin omitted) +- 1522 nodes · 2977 edges · 130 communities (105 shown, 25 thin omitted) - Extraction: 93% EXTRACTED · 7% INFERRED · 0% AMBIGUOUS · INFERRED: 210 edges (avg confidence: 0.57) - Token cost: 0 input · 0 output ## Graph Freshness -- Built from commit: `73813061` +- Built from commit: `61a7f7c7` - Run `git rev-parse HEAD` and compare to check if the graph is stale. - Run `graphify update .` after code changes (no API cost). @@ -41,7 +41,7 @@ - facepp-skinanalyze(旷视皮肤分析专业版调用技能) - 巨子测肤 · 1'me 语音播报内容设计文档 V1.0 - mobile-select.iife.min.js -- .extractWeights +- NeuralNetwork - gen_voice.py - C - face-api.js 本地化依赖(h5/vendor/faceapi/) @@ -54,12 +54,12 @@ - FaceLandmark68Net - UI交互界面调整 - 第四轮反馈修改与验收 -- .loadFromDisk +- ao - layer_at -- ComputeAllFaceDescriptorsTask +- .run - start-local.sh - report-persistence.mjs -- PredictAllFaceExpressionsWithFaceAlignmentTask +- .forwardInput - extractFaceTensors - 已修改 - mobile-select/README.md @@ -74,7 +74,7 @@ - 报告布局与跟手交互调整 - 提交前 Review(2026-10-11) - e2e-browser.mjs -- isValidNumber +- 综合得分:三维度按 4:3:3 加权 - 微信登录接入与公网部署说明 - h5/README.md - ui-20261009.mjs @@ -99,13 +99,12 @@ - 傅艳NEW与项思炼的会话 2026年10月12日.md - wi - 客户反馈修改(2026-10-12) -- .runAndExtendWithFaceDetection +- .runAndExtendWithFaceDetections - 第三轮反馈:PSD 对齐、验收及上线记录 - login-performance.mjs - production-loop.mjs - account-client.js -- .mul -- ComputeSingleFaceDescriptorTask +- TinyYolov2 - .draw - wechat-fixture.cjs - DetectSingleFaceLandmarksTask @@ -115,36 +114,19 @@ - profile-interaction.mjs - submitPhotos - startCamera -- extractWeightsFactory - 微信退出登录-2026-10-13.md - normalize -- .run +- extractAllFacesAndComputeResults - play - f -- PredictSingleFaceExpressionsWithFaceAlignmentTask -- PredictAllFaceExpressionsTask - wechat-browser.mjs - doCapture - 评分圈内居中、基础信息页固定与正脸语音修复 -- FaceProcessor - 报告等待页实拍背景-2026-10-12.md -- PredictSingleFaceExpressionsTask -- NeuralNetwork -- TinyYolov2Base -- FaceFeatureExtractor - 原始肌龄显示与鸿蒙滚轮兼容 - harmony-picker.mjs -- .toString -- AgeGenderNet -- convLayer - height -- age - recommendation.js -- .forwardInput -- FaceRecognitionNet -- .runAndExtendWithFaceDetections -- TinyXception -- FaceExpressionNet - PredictAllAgeAndGenderWithFaceAlignmentTask - PredictSingleAgeAndGenderWithFaceAlignmentTask - 拍摄角度不合格震动提醒-2026-10-13.md @@ -176,11 +158,11 @@ ## Import Cycles - None detected. -## Communities (148 total, 36 thin omitted) +## Communities (130 total, 25 thin omitted) ### Community 0 - "face-api.js" Cohesion: 0.02 -Nodes (42): boxPredictionLayer(), cn(), computeReshapedDimensions(), createBrowserEnv(), createFileSystem(), createNodejsEnv(), decodeBoxesLayer(), depthwiseConvLayer() (+34 more) +Nodes (41): bgrToRgbTensor(), cn(), computeReshapedDimensions(), createBrowserEnv(), createFileSystem(), createNodejsEnv(), Dimensions(), dr() (+33 more) ### Community 1 - "线上闭环测试(不含真实微信授权)" Cohesion: 0.25 @@ -191,32 +173,32 @@ Cohesion: 0.12 Nodes (17): cancelSkinDrag(), decode(), drain(), goSkin(), load(), loginAllowed(), loginWechat(), preload() (+9 more) ### Community 3 - "skin-score.js" -Cohesion: 0.10 -Nodes (49): acneGrade(), buildViewModel(), calcAcne(), calcContour(), calcSens(), calcSmooth(), calcTone(), calcWrinkles() (+41 more) +Cohesion: 0.08 +Nodes (55): acneGrade(), buildViewModel(), calcAcne(), calcContour(), calcSens(), calcSmooth(), calcTone(), calcWrinkles() (+47 more) ### Community 4 - "customer-feedback-second.js" Cohesion: 0.14 Nodes (11): assert, context, events, face, fs, geometry, original, path (+3 more) ### Community 5 - "disposeUnusedWeightTensors" -Cohesion: 0.12 +Cohesion: 0.09 Nodes (23): disposeUnusedWeightTensors(), extractorsFactory$3(), extractorsFactory$5(), extractorsFactory$7(), extractorsFactory$9(), extractParamsFromWeigthMap(), extractParamsFromWeigthMap$1(), extractParamsFromWeigthMap$2() (+15 more) ### Community 6 - "n" -Cohesion: 0.12 -Nodes (36): ae(), be(), bf(), bi(), ce(), de(), e(), Ef() (+28 more) +Cohesion: 0.11 +Nodes (43): a(), ae(), be(), bf(), bi(), ce(), de(), e() (+35 more) ### Community 7 - "test/profile-store.js" -Cohesion: 0.14 -Nodes (13): assert, data, empty, now, other, Profile, quota, regions (+5 more) +Cohesion: 0.06 +Nodes (21): age(), clean(), create(), key(), assert, data, empty, now (+13 more) ### Community 8 - "admin.js" -Cohesion: 0.20 -Nodes (29): ageText(), api(), bind(), captureQualityHtml(), closeDetail(), collectFilters(), dimsHtml(), doRetry() (+21 more) +Cohesion: 0.19 +Nodes (30): ageText(), api(), bind(), captureQualityHtml(), closeDetail(), collectFilters(), dimsHtml(), doRetry() (+22 more) ### Community 9 - "__awaiter" Cohesion: 0.14 -Nodes (13): __awaiter(), extendWithFaceDescriptor(), extendWithFaceExpressions(), extractAllFacesAndComputeResults(), extractSingleFaceAndComputeResult(), fetchImage(), fetchJson(), fetchNetWeights() (+5 more) +Nodes (12): __awaiter(), ComposableTask(), fetchImage(), fetchJson(), fetchNetWeights(), fetchOrThrow(), __generator(), getModelUris() (+4 more) ### Community 10 - "k" Cohesion: 0.18 @@ -228,7 +210,7 @@ Nodes (20): atomic(), body(), cookie(), cookies(), crypto, fs, json(), login() ( ### Community 12 - "server.js" Cohesion: 0.08 -Nodes (52): accounts, appendRecord(), callFacepp(), CaptureDiagnostics, CRED, crypto, csvCell(), DATA_DIR (+44 more) +Nodes (53): accounts, appendRecord(), callFacepp(), CaptureDiagnostics, CRED, crypto, csvCell(), DATA_DIR (+45 more) ### Community 13 - "files" Cohesion: 0.12 @@ -267,8 +249,8 @@ Cohesion: 0.19 Nodes (19): awaitMediaLoaded(), bufferToImage(), createCanvas(), createCanvasFromMedia(), extractFaces(), extractImagePatches(), getContext2dOrThrow(), getEnv() (+11 more) ### Community 22 - "i" -Cohesion: 0.08 -Nodes (31): ba(), bn(), ca(), cl(), da(), dn(), ee(), et() (+23 more) +Cohesion: 0.11 +Nodes (21): ba(), ca(), da(), dn(), ee(), et(), fa(), i() (+13 more) ### Community 23 - "facepp-skinanalyze(旷视皮肤分析专业版调用技能)" Cohesion: 0.20 @@ -282,17 +264,17 @@ Nodes (8): 1. 音频格式约定(已定), 2. 播报清单(14 条), 3. 播放策 Cohesion: 0.20 Nodes (16): _arrayLikeToArray(), _arrayWithHoles(), _arrayWithoutHoles(), _classCallCheck(), _createClass(), _defineProperties(), h(), _iterableToArray() (+8 more) -### Community 26 - ".extractWeights" -Cohesion: 0.22 -Nodes (10): createFaceDetectionNet(), createFaceRecognitionNet(), createMtcnn(), createSsdMobilenetv1(), createTinyFaceDetector(), createTinyYolov2(), extractConvParamsFactory(), extractorsFactory$1() (+2 more) +### Community 26 - "NeuralNetwork" +Cohesion: 0.07 +Nodes (27): createFaceDetectionNet(), createFaceRecognitionNet(), createMtcnn(), createSsdMobilenetv1(), createTinyFaceDetector(), createTinyYolov2(), extractConvParamsFactory(), extractFCParamsFactory() (+19 more) ### Community 27 - "gen_voice.py" Cohesion: 0.30 Nodes (11): ndarray, Path, gen_countdown(), main(), normalize_clip(), 倒计时单独按字生成再拼接,避免「三、二、一」整句被读成播报腔、与提示音气质漂移。 与提示音共用同一 speaker + instruct;句间留约…, 裁掉过长首尾静音,保留 ≤150ms 边沿,避免提示显迟钝。, 响度归一 −16 LUFS + 转 MP3 48k CBR mono 22050Hz。 (+3 more) ### Community 28 - "C" -Cohesion: 0.10 -Nodes (28): ao(), Bo(), C(), cd(), co(), Do(), eo(), fo() (+20 more) +Cohesion: 0.09 +Nodes (32): bn(), Bo(), C(), cd(), cl(), co(), eo(), fn() (+24 more) ### Community 29 - "face-api.js 本地化依赖(h5/vendor/faceapi/)" Cohesion: 0.29 @@ -322,14 +304,18 @@ Nodes (4): 1meAI测肤旷视UI问题反馈, UI交互界面调整, 交互, **设 Cohesion: 0.22 Nodes (8): PSD 来源, 前端参数及限制, 后台校准留痕, 已确认并实现, 生产部署及只读验收, 皱纹(紧塑力)原文, 第四轮反馈修改与验收, 验证 -### Community 41 - ".loadFromDisk" -Cohesion: 0.29 -Nodes (3): ComposableTask(), getModelUris(), TinyFaceDetector() +### Community 41 - "ao" +Cohesion: 0.33 +Nodes (6): ao(), Do(), io(), oo(), so(), To() ### Community 42 - "layer_at" Cohesion: 0.18 Nodes (11): list, bounds(), layer_at(), main(), save_image(), composite(), main(), sha256() (+3 more) +### Community 43 - ".run" +Cohesion: 0.22 +Nodes (3): ComputeAllFaceDescriptorsTask(), ComputeSingleFaceDescriptorTask(), extendWithFaceDescriptor() + ### Community 44 - "start-local.sh" Cohesion: 0.50 Nodes (3): HOST, PORT, start-local.sh script @@ -338,9 +324,13 @@ Nodes (3): HOST, PORT, start-local.sh script Cohesion: 0.29 Nodes (6): child, dataRoot, fx, h5, ReportUI, require +### Community 46 - ".forwardInput" +Cohesion: 0.22 +Nodes (9): boxPredictionLayer(), decodeBoxesLayer(), depthwiseConvLayer(), getCenterCoordinatesAndSizesLayer(), getStridesForLayerIdx(), mobileNetV1(), outputLayer(), pointwiseConvLayer() (+1 more) + ### Community 47 - "extractFaceTensors" -Cohesion: 0.10 -Nodes (11): Box(), DetectAllFaceLandmarksTask(), extendWithFaceDetection(), extendWithFaceLandmarks(), extractFaceTensors(), FaceLandmarks(), isWithFaceDetection(), isWithFaceLandmarks() (+3 more) +Cohesion: 0.11 +Nodes (8): Box(), DetectAllFaceLandmarksTask(), extendWithFaceLandmarks(), extractFaceTensors(), FaceLandmarks(), isTensor3D(), minBbox(), ObjectDetection() ### Community 48 - "已修改" Cohesion: 0.22 @@ -367,8 +357,8 @@ Cohesion: 0.60 Nodes (5): diffCtx(), loadJSON(), main(), okNum(), okStr() ### Community 58 - ".forwardInput" -Cohesion: 0.16 -Nodes (9): iou(), nonMaxSuppression(), nonMaxSuppression$1(), scale(), SsdMobilenetv1(), stage1(), stage2(), stage3() (+1 more) +Cohesion: 0.17 +Nodes (9): FaceRecognitionNet(), iou(), nonMaxSuppression(), nonMaxSuppression$1(), scale(), SsdMobilenetv1(), stage1(), stage2() (+1 more) ### Community 61 - "报告布局与跟手交互调整" Cohesion: 0.33 @@ -382,9 +372,9 @@ Nodes (4): 仍需公网/业务确认, 已发现并修复, 提交前 Review(202 Cohesion: 0.29 Nodes (4): EXPECTED, fails, pageErrors, pwRoot -### Community 64 - "isValidNumber" -Cohesion: 0.33 -Nodes (5): bgrToRgbTensor(), Dimensions(), isValidNumber(), isValidProbablitiy(), isWithGender() +### Community 64 - "综合得分:三维度按 4:3:3 加权" +Cohesion: 0.40 +Nodes (4): 已确认公式, 本地验证, 生效位置, 综合得分:三维度按 4:3:3 加权 ### Community 65 - "微信登录接入与公网部署说明" Cohesion: 0.29 @@ -450,9 +440,9 @@ Nodes (9): Ci(), Ei(), Fi(), Ii(), ki(), pe(), ri(), wi() (+1 more) Cohesion: 0.33 Nodes (5): 公网部署与复测, 客户反馈修改(2026-10-12), 皱纹数据说明, 逐项处理, 验证 -### Community 93 - ".runAndExtendWithFaceDetection" -Cohesion: 0.33 -Nodes (5): allFacesMtcnn(), allFacesSsdMobilenetv1(), allFacesTinyYolov2(), detectAllFaces(), DetectSingleFaceTask() +### Community 93 - ".runAndExtendWithFaceDetections" +Cohesion: 0.17 +Nodes (10): allFacesMtcnn(), allFacesSsdMobilenetv1(), allFacesTinyYolov2(), detectAllFaces(), DetectAllFacesTask(), DetectSingleFaceTask(), extendWithFaceDetection(), isWithFaceDetection() (+2 more) ### Community 94 - "第三轮反馈:PSD 对齐、验收及上线记录" Cohesion: 0.33 @@ -466,14 +456,14 @@ Nodes (3): artifacts, errors, samples Cohesion: 0.53 Nodes (8): browser(), clearGuestCache(), ensureGuest(), guest(), init(), logout(), rememberKind(), request() -### Community 98 - ".mul" -Cohesion: 0.50 -Nodes (3): wl(), wn(), xn() - ### Community 101 - "wechat-fixture.cjs" Cohesion: 0.50 Nodes (3): crypto, fs, path +### Community 102 - "DetectSingleFaceLandmarksTask" +Cohesion: 0.16 +Nodes (3): DetectSingleFaceLandmarksTask(), PredictAllFaceExpressionsWithFaceAlignmentTask(), PredictSingleFaceExpressionsWithFaceAlignmentTask() + ### Community 107 - "基础信息记忆与肤质拖动" Cohesion: 0.40 Nodes (4): 回归命令, 基础信息记忆与肤质拖动, 肤质交互, 范围 @@ -490,25 +480,21 @@ Nodes (12): bindBackdropClose(), closeLoginSuccess(), closeOverlay(), handleCamH Cohesion: 0.21 Nodes (12): beginDetect(), detTick(), enableFallback(), getCamStream(), loadFaceApi(), loadModels(), maybeStartDetect(), onCamTrackEnded() (+4 more) -### Community 111 - "extractWeightsFactory" -Cohesion: 0.17 -Nodes (8): extractorsFactory(), extractorsFactory$4(), extractParams(), extractParams$5(), extractParams$6(), extractParamsTiny(), extractWeightsFactory(), TinyFaceFeatureExtractor() - ### Community 115 - "normalize" -Cohesion: 0.27 -Nodes (8): conv(), denseBlock3(), denseBlock4(), depthwiseSeparableConv(), mainBlock(), normalize(), reductionBlock(), __spreadArrays() +Cohesion: 0.07 +Nodes (28): conv(), conv$1(), convDown(), convLayer(), convLayer$1(), convNoRelu(), convWithBatchNorm(), denseBlock3() (+20 more) -### Community 116 - ".run" -Cohesion: 0.29 -Nodes (4): extendWithAge(), extendWithGender(), PredictAllAgeAndGenderTask(), PredictSingleAgeAndGenderTask() +### Community 116 - "extractAllFacesAndComputeResults" +Cohesion: 0.14 +Nodes (9): extendWithAge(), extendWithFaceExpressions(), extendWithGender(), extractAllFacesAndComputeResults(), extractSingleFaceAndComputeResult(), PredictAllAgeAndGenderTask(), PredictAllFaceExpressionsTask(), PredictSingleAgeAndGenderTask() (+1 more) ### Community 117 - "play" Cohesion: 0.33 Nodes (6): applyMirror(), busyWithFlow(), effMirror(), handleCamVisible(), play(), renderCamStep() ### Community 118 - "f" -Cohesion: 0.20 -Nodes (24): a(), cf(), d(), drawContour(), dt(), ea(), f(), g() (+16 more) +Cohesion: 0.11 +Nodes (25): cf(), d(), drawContour(), dt(), ea(), f(), FaceLandmarks5(), FaceMatch() (+17 more) ### Community 121 - "wechat-browser.mjs" Cohesion: 0.22 @@ -522,64 +508,32 @@ Nodes (24): armNudge(), captureFromVideo(), captureHaptic(), captureStageHint(), Cohesion: 0.40 Nodes (4): 发布, 范围, 评分圈内居中、基础信息页固定与正脸语音修复, 验证 -### Community 124 - "FaceProcessor" -Cohesion: 0.22 -Nodes (3): extractParams$1(), FaceLandmark68TinyNet(), FaceProcessor() - -### Community 129 - "TinyYolov2Base" -Cohesion: 0.29 -Nodes (5): convWithBatchNorm(), depthwiseSeparableConv$1(), leaky(), TinyYolov2Base(), validateConfig() - -### Community 130 - "FaceFeatureExtractor" -Cohesion: 0.22 -Nodes (5): extractFCParamsFactory(), extractorsFactory$8(), extractParams$3(), extractParams$7(), FaceFeatureExtractor() - ### Community 131 - "原始肌龄显示与鸿蒙滚轮兼容" Cohesion: 0.50 Nodes (3): 原始肌龄显示与鸿蒙滚轮兼容, 回归, 范围 -### Community 133 - ".toString" -Cohesion: 0.20 -Nodes (7): FaceLandmarks5(), FaceMatch(), getCenterPoint(), la(), pr(), pt(), vt() - -### Community 136 - "convLayer" -Cohesion: 0.43 -Nodes (8): convLayer(), fullyConnectedLayer(), ONet(), PNet(), prelu(), qh(), RNet(), sharedLayer() - ### Community 137 - "height" -Cohesion: 0.38 -Nodes (5): height(), FaceLandmark68NetBase(), getSizesForScale(), normalize$1(), rescaleAndNormalize() - -### Community 138 - "age" -Cohesion: 0.43 -Nodes (4): age(), clean(), create(), key() +Cohesion: 0.24 +Nodes (6): height(), FaceLandmark68NetBase(), getSizesForScale(), normalize$1(), rescaleAndNormalize(), TinyYolov2Base() ### Community 139 - "recommendation.js" Cohesion: 0.33 Nodes (6): assert, check(), missing, raw, SS, UI -### Community 140 - ".forwardInput" -Cohesion: 0.48 -Nodes (6): conv$1(), convDown(), convLayer$1(), convNoRelu(), residual(), residualDown() - -### Community 141 - "FaceRecognitionNet" -Cohesion: 0.33 -Nodes (3): extractorsFactory$2(), extractParams$4(), FaceRecognitionNet() - ## Knowledge Gaps -- **345 isolated node(s):** `source`, `document_size`, `pages`, `assets`, `layers` (+340 more) +- **353 isolated node(s):** `source`, `document_size`, `pages`, `assets`, `layers` (+348 more) These have ≤1 connection - possible missing edges or undocumented components. -- **36 thin communities (<3 nodes) omitted from report** — run `graphify query` to explore isolated nodes. +- **25 thin communities (<3 nodes) omitted from report** — run `graphify query` to explore isolated nodes. ## Suggested Questions _Questions this graph is uniquely positioned to answer:_ -- **Why does `height()` connect `height` to `app.js`, `customer-feedback.js`, `scan-placeholder.mjs`, `__awaiter`, `profile-interaction.mjs`, `showScreen`, `extractFaceTensors`, `extractFaces`, `.forwardInput`?** - _High betweenness centrality (0.068) - this node is a cross-community bridge._ +- **Why does `height()` connect `height` to `app.js`, `customer-feedback.js`, `scan-placeholder.mjs`, `profile-interaction.mjs`, `showScreen`, `extractFaceTensors`, `extractFaces`, `.forwardInput`?** + _High betweenness centrality (0.061) - this node is a cross-community bridge._ - **Why does `v()` connect `f` to `report-ui.js`, `vizCompose`, `C`, `face-api.js`?** - _High betweenness centrality (0.046) - this node is a cross-community bridge._ + _High betweenness centrality (0.044) - this node is a cross-community bridge._ - **Why does `fill()` connect `report-ui.js` to `f`?** - _High betweenness centrality (0.037) - this node is a cross-community bridge._ + _High betweenness centrality (0.038) - this node is a cross-community bridge._ - **Are the 24 inferred relationships involving `n()` (e.g. with `newRecordId()` and `ae()`) actually correct?** _`n()` has 24 INFERRED edges - model-reasoned connections that need verification._ - **Are the 27 inferred relationships involving `r()` (e.g. with `handleExport()` and `handleRecordsQuery()`) actually correct?** @@ -587,4 +541,4 @@ _Questions this graph is uniquely positioned to answer:_ - **Are the 9 inferred relationships involving `i()` (e.g. with `da()` and `f()`) actually correct?** _`i()` has 9 INFERRED edges - model-reasoned connections that need verification._ - **What connects `source`, `document_size`, `pages` to the rest of the system?** - _345 weakly-connected nodes found - possible documentation gaps or missing edges._ \ No newline at end of file + _353 weakly-connected nodes found - possible documentation gaps or missing edges._ \ No newline at end of file diff --git a/graphify-out/graph.html b/graphify-out/graph.html index 2be4358..7a01c0d 100644 --- a/graphify-out/graph.html +++ b/graphify-out/graph.html @@ -63,12 +63,12 @@
-
1507 nodes · 2958 edges · 148 communities
+
1522 nodes · 2977 edges · 130 communities