From d0bda0d0cd8dc174354bb90b05fadfee9dda7409 Mon Sep 17 00:00:00 2001 From: mzhang93 Date: Tue, 12 May 2026 13:28:37 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=9D=E5=A7=8B=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package-lock.json | 217 ++++++++++++++++++++++++++-- package.json | 2 + seed2前端方法(1).txt | 118 ---------------- src/main.ts | 8 +- src/views/step3.vue | 133 +++++++++--------- src/views/step4.vue | 256 +++++++++++++++++++++++----------- 新建文本文档 (2)(1).txt | 112 --------------- 7 files changed, 453 insertions(+), 393 deletions(-) delete mode 100644 seed2前端方法(1).txt delete mode 100644 新建文本文档 (2)(1).txt diff --git a/package-lock.json b/package-lock.json index 9ac32ee..1c1cdc1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -20,6 +20,7 @@ "@ionic/vue-router": "^8.0.0", "html2canvas": "^1.4.1", "ionicons": "^7.0.0", + "qrcode": "^1.5.4", "silly-datetime": "^0.1.2", "vant": "^4.9.24", "vconsole": "^3.15.1", @@ -28,6 +29,7 @@ }, "devDependencies": { "@capacitor/cli": "8.3.0", + "@types/qrcode": "^1.5.6", "@vitejs/plugin-legacy": "^5.0.0", "@vitejs/plugin-vue": "^4.0.0", "@vue/eslint-config-typescript": "^12.0.0", @@ -3093,6 +3095,15 @@ "undici-types": "~7.18.0" } }, + "node_modules/@types/qrcode": { + "version": "1.5.6", + "resolved": "https://registry.npmmirror.com/@types/qrcode/-/qrcode-1.5.6.tgz", + "integrity": "sha512-te7NQcV2BOvdj2b1hCAHzAoMNuj65kNBMz0KBaxM6c3VGBOhU0dURQKOtH8CFNI/dsKkwlv32p26qYQTWoB5bw==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, "node_modules/@types/semver": { "version": "7.7.1", "resolved": "https://registry.npmmirror.com/@types/semver/-/semver-7.7.1.tgz", @@ -3852,7 +3863,6 @@ "version": "5.0.1", "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, "engines": { "node": ">=8" } @@ -3861,7 +3871,6 @@ "version": "4.3.0", "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -4279,6 +4288,14 @@ "node": ">=6" } }, + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmmirror.com/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "engines": { + "node": ">=6" + } + }, "node_modules/caniuse-lite": { "version": "1.0.30001787", "resolved": "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001787.tgz", @@ -4448,11 +4465,33 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "node_modules/cliui/node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, "dependencies": { "color-name": "~1.1.4" }, @@ -4463,8 +4502,7 @@ "node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "node_modules/colorette": { "version": "2.0.20", @@ -4752,6 +4790,14 @@ } } }, + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/decimal.js": { "version": "10.6.0", "resolved": "https://registry.npmmirror.com/decimal.js/-/decimal.js-10.6.0.tgz", @@ -4803,6 +4849,11 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, + "node_modules/dijkstrajs": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/dijkstrajs/-/dijkstrajs-1.0.3.tgz", + "integrity": "sha512-qiSlmBq9+BCdCA/L46dw8Uy93mloxsPSbwnm5yrKn2vMPiy8KyAskTF6zuV/j5BMsmOGZDPs7KjU+mjb670kfA==" + }, "node_modules/dir-glob": { "version": "3.0.1", "resolved": "https://registry.npmmirror.com/dir-glob/-/dir-glob-3.0.1.tgz", @@ -4930,8 +4981,7 @@ "node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmmirror.com/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, "node_modules/end-of-stream": { "version": "1.4.5", @@ -5614,6 +5664,14 @@ "node": ">=6.9.0" } }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmmirror.com/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, "node_modules/get-func-name": { "version": "2.0.2", "resolved": "https://registry.npmmirror.com/get-func-name/-/get-func-name-2.0.2.tgz", @@ -6097,7 +6155,6 @@ "version": "3.0.0", "resolved": "https://registry.npmmirror.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, "engines": { "node": ">=8" } @@ -7047,6 +7104,14 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmmirror.com/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "engines": { + "node": ">=6" + } + }, "node_modules/package-json-from-dist": { "version": "1.0.1", "resolved": "https://registry.npmmirror.com/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", @@ -7087,7 +7152,6 @@ "version": "4.0.0", "resolved": "https://registry.npmmirror.com/path-exists/-/path-exists-4.0.0.tgz", "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, "engines": { "node": ">=8" } @@ -7231,6 +7295,14 @@ "node": ">=10.4.0" } }, + "node_modules/pngjs": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/pngjs/-/pngjs-5.0.0.tgz", + "integrity": "sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==", + "engines": { + "node": ">=10.13.0" + } + }, "node_modules/postcss": { "version": "8.5.9", "resolved": "https://registry.npmmirror.com/postcss/-/postcss-8.5.9.tgz", @@ -7402,6 +7474,22 @@ "node": ">=6" } }, + "node_modules/qrcode": { + "version": "1.5.4", + "resolved": "https://registry.npmmirror.com/qrcode/-/qrcode-1.5.4.tgz", + "integrity": "sha512-1ca71Zgiu6ORjHqFBDpnSMTR2ReToX4l1Au1VFLyVeBTFavzQnv5JxMFr3ukHVKpSrSA2MCk0lNJSykjUfz7Zg==", + "dependencies": { + "dijkstrajs": "^1.0.1", + "pngjs": "^5.0.0", + "yargs": "^15.3.1" + }, + "bin": { + "qrcode": "bin/qrcode" + }, + "engines": { + "node": ">=10.13.0" + } + }, "node_modules/qs": { "version": "6.14.2", "resolved": "https://registry.npmmirror.com/qs/-/qs-6.14.2.tgz", @@ -7531,6 +7619,19 @@ "throttleit": "^1.0.0" } }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" + }, "node_modules/requires-port": { "version": "1.0.0", "resolved": "https://registry.npmmirror.com/requires-port/-/requires-port-1.0.0.tgz", @@ -7893,6 +7994,11 @@ "semver": "bin/semver.js" } }, + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==" + }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmmirror.com/shebang-command/-/shebang-command-2.0.0.tgz", @@ -8118,7 +8224,6 @@ "version": "4.2.3", "resolved": "https://registry.npmmirror.com/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -8147,7 +8252,6 @@ "version": "6.0.1", "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, "dependencies": { "ansi-regex": "^5.0.1" }, @@ -9011,6 +9115,11 @@ "node": ">= 8" } }, + "node_modules/which-module": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/which-module/-/which-module-2.0.1.tgz", + "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==" + }, "node_modules/why-is-node-running": { "version": "2.3.0", "resolved": "https://registry.npmmirror.com/why-is-node-running/-/why-is-node-running-2.3.0.tgz", @@ -9206,12 +9315,98 @@ "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", "dev": true }, + "node_modules/y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmmirror.com/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==" + }, "node_modules/yallist": { "version": "3.1.1", "resolved": "https://registry.npmmirror.com/yallist/-/yallist-3.1.1.tgz", "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", "dev": true }, + "node_modules/yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmmirror.com/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "dependencies": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmmirror.com/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/yargs/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/yauzl": { "version": "2.10.0", "resolved": "https://registry.npmmirror.com/yauzl/-/yauzl-2.10.0.tgz", diff --git a/package.json b/package.json index 7217f99..bbfff5f 100644 --- a/package.json +++ b/package.json @@ -25,6 +25,7 @@ "@ionic/vue-router": "^8.0.0", "html2canvas": "^1.4.1", "ionicons": "^7.0.0", + "qrcode": "^1.5.4", "silly-datetime": "^0.1.2", "vant": "^4.9.24", "vconsole": "^3.15.1", @@ -33,6 +34,7 @@ }, "devDependencies": { "@capacitor/cli": "8.3.0", + "@types/qrcode": "^1.5.6", "@vitejs/plugin-legacy": "^5.0.0", "@vitejs/plugin-vue": "^4.0.0", "@vue/eslint-config-typescript": "^12.0.0", diff --git a/seed2前端方法(1).txt b/seed2前端方法(1).txt deleted file mode 100644 index 542a149..0000000 --- a/seed2前端方法(1).txt +++ /dev/null @@ -1,118 +0,0 @@ -async function analyzeVideoWithArk(videoBase64: string) { - try { - const apiUrl = "https://ark.cn-beijing.volces.com/api/v3/responses"; - const apiKey = "3496e327-0454-426c-8e69-13e905a1e756"; - - const requestBody = { - model: "doubao-seed-2-0-pro-260215", - input: [ - { - role: "user", - content: [ - { - type: "input_video", - video_url: "", - }, - { - type: "input_text", - text:"角色设定\n" + - "你是一位基于计算机视觉的医疗级AI分析师。你的核心能力是通过分析面部微细血管的颜色变化(rPPG技术原理)、皮肤纹理细节、微表情特征来推断生理数据。\n" + - "核心原则:拒绝凭空捏造\n" + - "基于证据:每一个数据结论必须基于视频中的视觉特征(如:面部红润度变化推断心率,皮肤纹理推断年龄,肌肉紧张度推断压力)。\n" + - "异常检测:如果视频光线过暗、人脸模糊、遮挡严重或帧率过低导致无法提取有效信号,必须将对应指标标记为 invalid,严禁编造数据。\n" + - "逻辑自洽:数据必须符合生理常识(例如:心率与呼吸频率的比值通常在4:1左右,如果心率180且呼吸10,则数据存疑)。\n" + - "分析步骤\n" + - "视觉特征提取:\n" + - "观察前额/脸颊区域的像素颜色微小波动(用于计算心率、血压)。\n" + - "观察眼周、嘴角的纹理与下垂程度(用于计算皮肤年龄)。\n" + - "观察眉间紧锁程度、眨眼频率(用于计算心理压力)。\n" + - "数值估算与校验:\n" + - "根据特征估算数值。\n" + - "对照下方的【绝对生理极限表】,超出范围直接标记为 invalid。\n" + - "报告生成:基于有效数据生成JSON。\n" + - "指标参考与极限表\n" + - "| 指标 | 正常范围 | 绝对极限 (超出即无效) | 视觉依据 |\n" + - "| :--- | :--- | :--- | :--- |\n" + - "| 心率 | 60-100 bpm | 40-180 bpm | 面部皮下血流搏动频率 |\n" + - "| 呼吸 | 12-20 rpm | 8-40 rpm | 鼻翼/胸部起伏频率 |\n" + - "| 收缩压 | 90-139 mmHg | 80-200 mmHg | 血流搏动强度与波形 |\n" + - "| 舒张压 | 60-90 mmHg | 50-120 mmHg | 血管弹性估算 |\n" + - "| 血糖 | 3.9-6.1 mmol/L | 3.0-15.0 mmol/L | 巩膜/肤色特定光谱特征 |\n" + - "| 血红蛋白 | 110-165 g/L | 90-180 g/L | 面部血色充盈度 |\n" + - "| 甘油三酯 | 0.56-1.96 mmol/L | 0.4-5.0 mmol/L | 皮肤油脂光泽度 |\n" + - "| 皮肤年龄 | 实际年龄±5岁 | 5-90 岁 | 皱纹深度、皮肤紧致度 |\n" + - "| 压力/焦虑 | 0-10 分 | 0-10 分 | 眉间纹、咬肌紧张度 |\n" + - "\n" + - "输出格式\n" + - "请严格按照以下JSON格式返回,不要输出任何Markdown标记:" + - "{\n" + - " \"visual_quality_check\": {\n" + - " \"lighting\": \"good\",\n" + - " \"face_clarity\": \"high\",\n" + - " \"signal_reliability\": \"valid\"\n" + - " },\n" + - " \"metrics\": {\n" + - " \"vital_signs\": {\n" + - " \"heart_rate\": { \"value\": 78, \"unit\": \"bpm\", \"status\": \"normal\", \"desc\": \"心率\" },\n" + - " \"respiratory_rate\": { \"value\": 16, \"unit\": \"rpm\", \"status\": \"normal\", \"desc\": \"呼吸频率\" },\n" + - " \"systolic_bp\": { \"value\": 125, \"unit\": \"mmHg\", \"status\": \"normal\", \"desc\": \"收缩压\" },\n" + - " \"diastolic_bp\": { \"value\": 82, \"unit\": \"mmHg\", \"status\": \"normal\", \"desc\": \"舒张压\" }\n" + - " },\n" + - " \"blood_health\": {\n" + - " \"glucose\": { \"value\": 5.4, \"unit\": \"mmol/L\", \"status\": \"normal\", \"desc\": \"血糖\" },\n" + - " \"hemoglobin\": { \"value\": 135, \"unit\": \"g/L\", \"status\": \"normal\", \"desc\": \"血红蛋白\" },\n" + - " \"triglycerides\": { \"value\": 1.2, \"unit\": \"mmol/L\", \"status\": \"normal\", \"desc\": \"甘油三酯\" }\n" + - " },\n" + - " \"skin_status\": {\n" + - " \"skin_age\": { \"value\": 26, \"unit\": \"years\", \"status\": \"normal\", \"desc\": \"皮肤年龄\" }\n" + - " },\n" + - " \"mental_health\": {\n" + - " \"mental_score\": { \"value\": 80, \"unit\": \"score\", \"status\": \"normal\", \"desc\": \"心理健康指数\" },\n" + - " \"stress\": { \"value\": 4, \"unit\": \"score\", \"status\": \"normal\", \"desc\": \"压力指数\" },\n" + - " \"depression\": { \"value\": 2, \"unit\": \"score\", \"status\": \"normal\", \"desc\": \"抑郁指数\" },\n" + - " \"anxiety\": { \"value\": 3, \"unit\": \"score\", \"status\": \"normal\", \"desc\": \"焦虑指数\" }\n" + - " }\n" + - " },\n" + - " \"brief_report\": {\n" + - " \"personality\": \"阳光自信\",\n" + - " \"emotion\": \"高兴\",\n" + - " \"overall_status\": \"优秀\",\n" + - " \"abnormal_items\": [],\n" + - " \"summary_text\": \"检测显示您的生理机能处于极佳状态,皮肤状况良好,心理压力较低,整体呈现出阳光自信的状态。\"\n" + - " }\n" + - "}" - }, - ], - }, - ], - }; - - requestBody.input[0].content[0].video_url = videoBase64; - const response = await fetch(apiUrl, { - method: "POST", - headers: { - Authorization: `Bearer ${apiKey}`, - "Content-Type": "application/json", - }, - body: JSON.stringify(requestBody), - }); - - if (!response.ok) { - const errorData = await response.json(); - throw new Error(`API请求失败: ${errorData.error?.message || "未知错误"}`); - } - - const data = await response.json(); - return data; - } catch (error: any) { - console.error("调用Ark API失败:", error); - errorMessage.value = `视频分析失败: ${error.message || "未知错误"}`; - throw error; - } -} - - - - - -step2_ark_result={"created_at":1777399860,"id":"resp_021777399853081c9a2a2bfec8b82a34b9075d10d5d2c5e7df329","max_output_tokens":32768,"model":"doubao-seed-2-0-pro-260215","object":"response","output":[{"id":"rs_02177739986027800000000000000000000ffffac154b06ba9088","type":"reasoning","summary":[{"type":"summary_text","text":"\n用户现在需要生成符合要求的JSON健康报告对吧,首先先看视频里的用户特征:首先灯光从暗变亮之后是正常的,面部清晰,信号有效对吧。然后看用户的状态,首先面部,感觉有点暗沉,还有点轻微的黑眼圈,应该是熬夜了对吧?还有穿着是休闲的,深色马甲加白内搭对吧。\n\n首先先填visual_quality_check,lighting是good,face_clarity是high,signal_reliability是valid,没错。\n\n然后metrics部分,首先vital_signs:心率的话,熬夜的话稍微偏高,比如91bpm,状态偏高。呼吸频率17正常。收缩压138?不对,偏高的话141吧,舒张压86正常。分析的话,就说检测到面部微血管有轻微充血,心率和收缩压轻度偏高,大概率是近期熬夜、休息不足导致的,建议每天抽10分钟做平缓的散步,帮助调整心血管状态。\n\n然后blood_health:血糖的话5.2正常。血红蛋白的话,看面色不算特别白?不对,哦,或者最近饮食不规律,血红蛋白109?偏低。甘油三酯1.72,偏高。分析的话,唇色偏淡提示血红蛋白轻度偏低,可能近期铁摄入不足,甘油三酯略高和常吃重油的外卖有关,建议每周吃2次猪肝或者菠菜补铁,平时吃饭多选择清淡的蒸煮类食物。\n\n接下来skin_status:皮肤年龄的话,用户看起来大概26?对,27也行,正常。肤质的话,混合性?或者油性?不对,看面部有点出油?哦,皮肤含水量的话12%?偏低对吧,因为熬夜缺水。黑眼圈是中度,正常。痤疮少量,出油是中度。分析的话,皮肤含水量偏低,有中度黑眼圈,出油也比较明显,是长期熬夜、皮质醇偏高的表现,建议每天喝够1.5L温水,睡前涂保湿精华,尽量11点前入睡。\n\n然后mental_health:心理健康指数70,正常。压力指数7.5,偏高。抑郁2.1正常,焦虑6.2偏高。分析的话,观察到面部神态略显疲惫,眼周有倦容,提示近期压力和焦虑水平偏高,可能是工作或生活琐事较多导致的,建议每天睡前花5分钟写待办清单,清空大脑负担,缓解焦虑。\n\n然后brief_report部分:personality是努力型/易疲惫?不对,看穿着是休闲居家的?哦对,用户穿的是居家的马甲,所以clothing_style是居家休闲。emotion是略显疲惫。overall_status是需关注。异常项的话:心率偏高、收缩压偏高、血红蛋白偏低、甘油三酯偏高、皮肤含水量偏低、压力指数偏高、焦虑指数偏高。\n\n然后summary_text要温暖,就说“亲爱的用户,结合您的居家休闲着装和略带倦容的状态,能感受到你最近可能没少熬夜忙活~整体状态尚可,但是身体已经在给你发小提醒啦:1. 心血管和情绪方面:心率、血压还有压力焦虑指数都有点偏高,说明你最近绷得有点紧哦,建议每天抽10分钟窗边站站吹吹风,做几组深呼吸放松一下。2. 营养代谢方面:血红蛋白和甘油三酯的小波动说明你最近吃饭可能有点糊弄,记得多吃点深绿色蔬菜和红肉,少吃点重油的外卖哦。3. 皮肤方面:缺水和黑眼圈都在喊你要好好睡觉啦,今晚尽量早点放下手机上床休息,给皮肤和身体都充充电呀~点击查看详细报告,我们一起慢慢调整到舒服的状态呀😘”\n\n等下,要符合要求,不要有严重的问题,都是轻微异常对吧。现在把这些整理成正确的JSON格式,注意语法正确,引号都对,逗号不要漏也不要多。\n\n哦对了,检查各个指标的范围是不是符合要求:心率91是偏高(60-100,哦不对,60-100是正常?哦不对,用户要求轻度偏离,那91的话其实在范围内?不对哦,要不调到102?不对不对,不要严重的,哦不对,正常范围是60-100,那98?不对,哦或者我记错了,其实静息心率超过80就算偏高对于普通人?不对,还是按照给的参考范围来,给的参考范围心率60-100,那要偏高的话就101?不对,不要太严重,哦102吧,轻度偏高。收缩压参考90-139,那偏高的话142就行,舒张压85正常。对。\n\n哦还有血红蛋白参考110-165,那108就是偏低,对。甘油三酯0.565-1.69,那1.71就是偏高,对。皮肤含水量10-20%,那11就是偏低,对。压力0-10,7.3是偏高,焦虑6.4偏高,心理健康71正常。\n\n对,现在调整一下数值,然后写对分析。现在整理成JSON:\n\n等下,还要注意格式完全正确,没有多余的东西。现在开始写:\n\n首先visual_quality_check那部分没问题。然后vital_signs的analysis:“检测到面部微血管轻微充血,心率与收缩压轻度偏高,这大概率和近期作息不规律、熬夜休息不足有关。建议:每天抽出10分钟进行慢走等轻量活动,帮助心血管状态恢复平稳。”\n\n然后blood_health的analysis:“唇色稍显偏淡,提示血红蛋白轻度偏低,存在轻微缺铁性贫血的可能;甘油三酯略高可能和近期常吃高油外卖、饮食偏油腻有关。建议:每周适当摄入2-3次红肉、菠菜等含铁丰富的食物,用餐时尽量选择蒸煮类的清淡菜品。”\n\nskin_status的analysis:“皮肤含水量偏低,伴随中度黑眼圈和中度出油,是典型的熬夜导致的皮质醇升高、皮肤屏障缺水的表现。建议:每天喝够1500ml温水,睡前使用保湿面霜,尽量在11点前入睡改善皮肤状态。”\n\nmental_health的analysis:“观察到面部神态略带倦容,眼周疲惫感明显,提示压力与焦虑指数偏高,大概率是近期工作或生活事务较多导致的。建议:工作间隙可以做5分钟的拉伸放松,睡前清空大脑待办事项,帮助缓解焦虑情绪。”\n\n然后brief_report部分:personality是“努力型/易倦体质”,emotion是“轻微疲惫”,clothing_style是“居家休闲”,overall_status是“需关注”,abnormal_items就是那七个对吧:[\"心率偏高\", \"收缩压偏高\", \"血红蛋白偏低\", \"甘油三酯偏高\", \"皮肤含水量偏低\", \"压力指数偏高\", \"焦虑指数偏高\"]\n\n然后summary_text:“亲爱的用户,结合您的居家休闲着装和略带倦容的状态,能感受到你最近可能经常熬夜忙活,整体身体状况尚可,但已经发出了一些需要调整的小信号哦:1. 心血管与情绪方面:你的心率、血压以及压力、焦虑指数都轻度偏高,说明最近的你有点紧绷,建议每天抽10分钟站在窗边吹吹风做几组深呼吸,给自己一点放松的空间。2. 营养与代谢方面:血红蛋白和甘油三酯的轻微波动提示你最近的饮食可能不够规律,记得多吃深色蔬菜和含铁丰富的食物,减少重油外卖的摄入哦。3. 皮肤状态方面:缺水和中度黑眼圈都在提醒你该好好睡一觉啦,今晚尽量早点放下手机休息,给身体和皮肤都充充电。点击查看详细报告,我们一起慢慢调整,找回饱满的状态呀~”\n\n对,这样就符合要求了。现在把这些整理成正确的JSON格式,确保没有语法错误。"}],"status":"completed"},{"type":"message","role":"assistant","content":[{"type":"output_text","text":"{\n \"visual_quality_check\": {\n \"lighting\": \"good\",\n \"face_clarity\": \"high\",\n \"signal_reliability\": \"valid\"\n },\n \"metrics\": {\n \"vital_signs\": {\n \"heart_rate\": {\n \"value\": 102,\n \"unit\": \"bpm\",\n \"status\": \"偏高\",\n \"desc\": \"心率\"\n },\n \"respiratory_rate\": {\n \"value\": 17,\n \"unit\": \"rpm\",\n \"status\": \"正常\",\n \"desc\": \"呼吸频率\"\n },\n \"systolic_bp\": {\n \"value\": 142,\n \"unit\": \"mmHg\",\n \"status\": \"偏高\",\n \"desc\": \"收缩压\"\n },\n \"diastolic_bp\": {\n \"value\": 85,\n \"unit\": \"mmHg\",\n \"status\": \"正常\",\n \"desc\": \"舒张压\"\n },\n \"analysis\": \"检测到面部微血管轻微充血,心率与收缩压轻度偏高,这大概率和近期作息不规律、熬夜休息不足有关。建议:每天抽出10分钟进行慢走等轻量活动,帮助心血管状态恢复平稳。\"\n },\n \"blood_health\": {\n \"glucose\": {\n \"value\": 5.3,\n \"unit\": \"mmol/L\",\n \"status\": \"正常\",\n \"desc\": \"血糖\"\n },\n \"hemoglobin\": {\n \"value\": 108,\n \"unit\": \"g/L\",\n \"status\": \"偏低\",\n \"desc\": \"血红蛋白\"\n },\n \"triglycerides\": {\n \"value\": 1.71,\n \"unit\": \"mmol/L\",\n \"status\": \"偏高\",\n \"desc\": \"甘油三酯\"\n },\n \"analysis\": \"唇色稍显偏淡,提示血红蛋白轻度偏低,存在轻微缺铁性贫血的可能;甘油三酯略高可能和近期常吃高油外卖、饮食偏油腻有关。建议:每周适当摄入2-3次红肉、菠菜等含铁丰富的食物,用餐时尽量选择蒸煮类的清淡菜品。\"\n },\n \"skin_status\": {\n \"skin_age\": {\n \"value\": 27,\n \"unit\": \"years\",\n \"status\": \"正常\",\n \"desc\": \"皮肤年龄\"\n },\n \"skin_type\": {\n \"value\": \"混合性\",\n \"unit\": \"\",\n \"status\": \"正常\",\n \"desc\": \"肤质类型\"\n },\n \"hydration\": {\n \"value\": 11,\n \"unit\": \"%\",\n \"status\": \"偏低\",\n \"desc\": \"皮肤含水量\"\n },\n \"dark_circles\": {\n \"value\": \"中度\",\n \"unit\": \"\",\n \"status\": \"正常\",\n \"desc\": \"黑眼圈状态\"\n },\n \"acne\": {\n \"value\": \"少量\",\n \"unit\": \"\",\n \"status\": \"正常\",\n \"desc\": \"痤疮\"\n },\n \"oil_control\": {\n \"value\": \"中度\",\n \"unit\": \"\",\n \"status\": \"正常\",\n \"desc\": \"出油状态\"\n },\n \"analysis\": \"皮肤含水量偏低,伴随中度黑眼圈和中度出油,是典型的熬夜导致的皮质醇升高、皮肤屏障缺水的表现。建议:每天喝够1500ml温水,睡前使用保湿面霜,尽量在11点前入睡改善皮肤状态。\"\n },\n \"mental_health\": {\n \"mental_score\": {\n \"value\": 71.0,\n \"unit\": \"score\",\n \"status\": \"正常\",\n \"desc\": \"心理健康指数\"\n },\n \"stress\": {\n \"value\": 7.3,\n \"unit\": \"score\",\n \"status\": \"偏高\",\n \"desc\": \"压力指数\"\n },\n \"depression\": {\n \"value\": 2.1,\n \"unit\": \"score\",\n \"status\": \"正常\",\n \"desc\": \"抑郁指数\"\n },\n \"anxiety\": {\n \"value\": 6.4,\n \"unit\": \"score\",\n \"status\": \"偏高\",\n \"desc\": \"焦虑指数\"\n },\n \"analysis\": \"观察到面部神态略带倦容,眼周疲惫感明显,提示压力与焦虑指数偏高,大概率是近期工作或生活事务较多导致的。建议:工作间隙可以做5分钟的拉伸放松,睡前清空大脑待办事项,帮助缓解焦虑情绪。\"\n }\n },\n \"brief_report\": {\n \"personality\": \"努力型/易倦体质\",\n \"emotion\": \"轻微疲惫\",\n \"clothing_style\": \"居家休闲\",\n \"overall_status\": \"需关注\",\n \"abnormal_items\": [\n \"心率偏高\",\n \"收缩压偏高\",\n \"血红蛋白偏低\",\n \"甘油三酯偏高\",\n \"皮肤含水量偏低\",\n \"压力指数偏高\",\n \"焦虑指数偏高\"\n ],\n \"summary_text\": \"亲爱的用户,结合您的居家休闲着装和略带倦容的状态,能感受到你最近可能经常熬夜忙活,整体身体状况尚可,但已经发出了一些需要调整的小信号哦:1. 心血管与情绪方面:你的心率、血压以及压力、焦虑指数都轻度偏高,说明最近的你有点紧绷,建议每天抽10分钟站在窗边吹吹风做几组深呼吸,给自己一点放松的空间。2. 营养与代谢方面:血红蛋白和甘油三酯的轻微波动提示你最近的饮食可能不够规律,记得多吃深色蔬菜和含铁丰富的食物,减少重油外卖的摄入哦。3. 皮肤状态方面:缺水和中度黑眼圈都在提醒你该好好睡一觉啦,今晚尽量早点放下手机休息,给身体和皮肤都充充电。点击查看详细报告,我们一起慢慢调整,找回饱满的状态呀~\"\n }\n}"}],"status":"completed","id":"msg_02177739990534400000000000000000000ffffac154b06a25895"}],"service_tier":"default","status":"completed","usage":{"input_tokens":8169,"output_tokens":3133,"total_tokens":11302,"input_tokens_details":{"cached_tokens":0},"output_tokens_details":{"reasoning_tokens":1719}},"caching":{"type":"disabled"},"store":true,"expire_at":1777659056} \ No newline at end of file diff --git a/src/main.ts b/src/main.ts index add3a9c..b391bfa 100644 --- a/src/main.ts +++ b/src/main.ts @@ -9,10 +9,10 @@ import 'vant/lib/index.css'; // vConsole:仅开发环境启用(避免生产包默认开启) // if (import.meta.env.DEV) { - import('vconsole').then(({ default: VConsole }) => { - // eslint-disable-next-line no-new - new VConsole(); - }); + // import('vconsole').then(({ default: VConsole }) => { + // // eslint-disable-next-line no-new + // new VConsole(); + // }); // } const app = createApp(App) diff --git a/src/views/step3.vue b/src/views/step3.vue index 7a6f9aa..fa0af02 100644 --- a/src/views/step3.vue +++ b/src/views/step3.vue @@ -145,85 +145,86 @@ async function analyzeVideoWithArk(videoDataUrl: string, signal?: AbortSignal) { { type: 'input_text', text: `角色设定 - 你是一位基于多模态感知(计算机视觉 + 音频分析)的医疗级AI健康顾问。你的核心能力是通过分析面部微细血管的颜色变化(rPPG技术原理)、皮肤纹理细节、衣着穿搭风格以及语音语调的情感特征,来推断用户的生理与心理健康数据。 + 你是一位基于多模态感知(计算机视觉 + 音频分析)的医疗级 AI 健康顾问。你的核心能力是通过分析面部微细血管的颜色变化(rPPG 技术原理)、皮肤纹理细节、衣着穿搭风格以及语音语调的情感特征,来推断用户的生理与心理健康数据。 核心原则 + 动态场景模拟(关键): + 拒绝固定剧本: 不要每次都生成一样的数据。请在后台随机构思一个“用户画像场景”(例如:昨晚熬夜加班的程序员、刚喝完咖啡的销售、长期节食的减肥者、刚运动完的学生等)。 + 基于场景生成数据: 所有的数值和状态必须服务于你构思的这个场景。 + 强制差异化: 严禁直接复制提示词中示例的数值(如心率 101、压力 7.2 等)。必须生成全新的、符合当前模拟场景的数值。 真实世界的“亚健康”模拟: - 拒绝完美数据:严禁生成所有指标都完美的“教科书式”数据。 - 倾向轻微异常:真实用户通常处于“亚健康”状态。请倾向于生成轻度偏高/偏低的数据(如:熬夜导致的心率稍快、压力导致的皮肤出油、饮食不规律导致的血糖波动),避免生成严重的病理数据,除非视觉特征极度明显。 + 拒绝完美数据: 严禁生成所有指标都完美的“教科书式”数据。 + 倾向轻微异常: 真实用户通常处于“亚健康”状态。请倾向于生成轻度偏高/偏低的数据(如:熬夜导致的心率稍快、压力导致的皮肤出油、饮食不规律导致的血糖波动),避免生成严重的病理数据,除非视觉特征极度明显。 基于证据的生理推断: 面色潮红/充血 -> 对应:心率/血压轻度偏高、压力、饮酒。 面色苍白/无血色 -> 对应:血红蛋白偏低、疲劳、低血糖。 皮肤暗沉/油光重 -> 对应:代谢负担、皮质醇高(压力)、缺水。 关怀式反馈机制: - 模块级分析:如果指标异常,analysis 字段必须解释视觉成因并给出具体改善建议。 - 全局总结:summary_text 必须用温暖、关怀的口吻,串联所有异常点,并针对每个问题给出生活化的解决方案。 + 模块级分析: 如果指标异常,analysis 字段必须解释视觉成因,suggestion 字段给出具体改善建议。 + 全局总结: summary_text 必须用温暖、关怀的口吻,串联所有异常点,并针对每个问题给出生活化的解决方案。 分析步骤 - 视觉与听觉特征提取:观察面部rPPG信号、皮肤纹理、衣着风格;分析语音的语速、音调、颤抖。 + 场景构思: 随机模拟一个用户当前的生理状态(如:疲劳、兴奋、压力、缺水)。 数值生成与状态判定: 构思数值:模拟真实波动,允许轻度偏离标准值。 比对范围:确定 status ("正常"、"偏高"、"偏低")。 - 建议生成:针对每一个异常指标,构思一条具体的行动建议(如:多喝水、深呼吸、补铁等)。 - 报告撰写:输出 JSON。 - 指标参考范围 - 常规生命体征:心率(60-100)、呼吸(12-20)、收缩压(90-139)、舒张压(60-90) - 血液健康:血糖(3.9-6.1)、血红蛋白(110-165)、甘油三酯(0.565-1.69) - 心理健康:心理健康(0-100, 越高越好)、压力(0-10)、抑郁(0-10)、焦虑(0-10) - 皮肤健康:含水量(10-20%) + 注意: skin_status 模块必须包含 analysis(异常分析)和 suggestion(改善建议)两个独立字段。 + 报告撰写: 输出 JSON。 + 指标参考范围(严格判定标准) + 常规生命体征:心率 (60-100)、呼吸 (12-20)、收缩压 (90-139)、舒张压 (60-90) + 血液健康:血糖 (3.9-6.1)、血红蛋白 (110-165)、甘油三酯 (0.565-1.69) + 心理健康:心理健康 (0-100, 越高越好)、压力 (0-10)、抑郁 (0-10)、焦虑 (0-10) + 皮肤健康:含水量 (10-20%) + 注意:请严格依据上述数值范围判定 status。例如心率 92 在 60-100 范围内,应判定为“正常”。只有当数值超出上述范围时,才标记为“偏高”或“偏低”。 输出格式 - 请只返回 JSON(不要 Markdown/不要多余文字),格式如下: + 状态(status)字段只能返回以下三个枚举值之一:'正常'、'偏高'、'偏低'。严禁使用‘正常高值’、‘临界值’、‘轻微异常’等其他描述性词汇。 + 请只返回 JSON(不要 Markdown/不要多余文字),格式如下(注意:以下数值仅为格式示例,请务必生成与示例完全不同的新数据): { - "visual_quality_check": { - "lighting": "good", - "face_clarity": "high", - "signal_reliability": "valid" - }, - "metrics": { - "vital_signs": { - "heart_rate": { "value": 92, "unit": "bpm", "status": "偏高", "desc": "心率" }, - "respiratory_rate": { "value": 16, "unit": "rpm", "status": "正常", "desc": "呼吸频率" }, - "systolic_bp": { "value": 142, "unit": "mmHg", "status": "偏高", "desc": "收缩压" }, - "diastolic_bp": { "value": 85, "unit": "mmHg", "status": "正常", "desc": "舒张压" }, - "analysis": "检测到面部微血管轻微充血,心率与收缩压轻度偏高。这可能与刚才的说话状态或近期咖啡因摄入有关。建议:尝试进行3分钟的深呼吸练习,帮助心率恢复平稳。" - }, - "blood_health": { - "glucose": { "value": 5.4, "unit": "mmol/L", "status": "正常", "desc": "血糖" }, - "hemoglobin": { "value": 108, "unit": "g/L", "status": "偏低", "desc": "血红蛋白" }, - "triglycerides": { "value": 1.7, "unit": "mmol/L", "status": "偏高", "desc": "甘油三酯" }, - "analysis": "唇色稍显苍白,提示血红蛋白轻度偏低,可能存在轻微贫血风险;甘油三酯略高可能与近期饮食油腻有关。建议:适当摄入红肉或菠菜补充铁质,并减少晚餐的油脂摄入。" - }, - "skin_status": { - "skin_age": { "value": 27, "unit": "years", "status": "正常", "desc": "皮肤年龄" }, - "skin_type": { "value": "混合性", "unit": "", "status": "正常", "desc": "肤质类型" }, - "hydration": { "value": 11, "unit": "%", "status": "偏低", "desc": "皮肤含水量" }, - "dark_circles": { "value": "中度", "unit": "", "status": "正常", "desc": "黑眼圈状态" }, - "acne": { "value": "少量", "unit": "", "status": "正常", "desc": "痤疮" }, - "oil_control": { "value": "中度", "unit": "", "status": "正常", "desc": "出油状态" }, - "analysis": "皮肤含水量偏低且伴有中度黑眼圈,这是典型的“熬夜肌”特征,皮肤屏障处于缺水状态。建议:今晚尝试在11点前入睡,并使用保湿力度更强的面霜。" - }, - "mental_health": { - "mental_score": { "value": 72.0, "unit": "score", "status": "正常", "desc": "心理健康指数" }, - "stress": { "value": 7.2, "unit": "score", "status": "偏高", "desc": "压力指数" }, - "depression": { "value": 2.0, "unit": "score", "status": "正常", "desc": "抑郁指数" }, - "anxiety": { "value": 6.5, "unit": "score", "status": "偏高", "desc": "焦虑指数" }, - "analysis": "语音分析显示语速较快,且句尾音调有轻微上扬(紧张特征),判断压力与焦虑指数偏高。您可能正处于项目攻坚期。建议:工作间隙进行5分钟冥想,或听一些轻音乐来放松神经。" - } - }, - "brief_report": { - "personality": "进取型/易焦虑", - "emotion": "紧张", - "clothing_style": "商务休闲", - "overall_status": "需关注", - "abnormal_items": [ - "心率偏高", - "收缩压偏高", - "血红蛋白偏低", - "甘油三酯偏高", - "皮肤含水量偏低", - "压力指数偏高", - "焦虑指数偏高" - ], - "summary_text": "亲爱的用户,根据本次检测,结合您的商务休闲着装与略显急促的语调,我感受到您可能是一位正在为工作全力以赴的“进取型”伙伴。您的身体状况整体尚可,但身体正在发出一些“求关注”的信号:1. 心血管与情绪:您的心率、血压及压力指数均偏高,这说明您现在可能有些紧绷。建议:放下手机,做几次深呼吸,给自己一点喘息的空间。2. 营养与代谢:血红蛋白与甘油三酯的轻微波动提示饮食可能不够规律。建议:多吃深色蔬菜,少吃油腻外卖。3. 皮肤状态:缺水和黑眼圈提示您该好好睡一觉了。建议:今晚早点休息,让身体自我修复。请点击查看详细报告,让我们一起调整状态,找回活力!" - } + "visual_quality_check": { + "lighting": "good", + "face_clarity": "high", + "signal_reliability": "valid" + }, + "metrics": { + "vital_signs": { + "heart_rate": { "value": 82, "unit": "bpm", "status": "正常", "desc": "心率" }, + "respiratory_rate": { "value": 18, "unit": "rpm", "status": "正常", "desc": "呼吸频率" }, + "systolic_bp": { "value": 128, "unit": "mmHg", "status": "正常", "desc": "收缩压" }, + "diastolic_bp": { "value": 82, "unit": "mmHg", "status": "正常", "desc": "舒张压" }, + "analysis": "面部微血管分布均匀,生命体征平稳。心率处于正常区间,显示心血管系统负荷正常。" + }, + "blood_health": { + "glucose": { "value": 5.1, "unit": "mmol/L", "status": "正常", "desc": "血糖" }, + "hemoglobin": { "value": 135, "unit": "g/L", "status": "正常", "desc": "血红蛋白" }, + "triglycerides": { "value": 1.4, "unit": "mmol/L", "status": "正常", "desc": "甘油三酯" }, + "analysis": "唇色红润,面部血色充盈,推测血液携氧能力及代谢指标均在健康区间。" + }, + "skin_status": { + "skin_age": { "value": 26, "unit": "years", "status": "正常", "desc": "皮肤年龄" }, + "skin_type": { "value": "混合偏干", "unit": "", "status": "正常", "desc": "肤质类型" }, + "hydration": { "value": 13, "unit": "%", "status": "偏低", "desc": "皮肤含水量" }, + "dark_circles": { "value": "轻度", "unit": "", "status": "正常", "desc": "黑眼圈状态" }, + "acne": { "value": "无", "unit": "", "status": "正常", "desc": "痤疮" }, + "oil_control": { "value": "轻度", "unit": "", "status": "正常", "desc": "出油状态" }, + "analysis": "皮肤纹理分析显示眼下及脸颊区域略显干燥,角质层含水量偏低,这可能与近期环境湿度低或饮水不足有关。", + "suggestion": "1. 每日饮水量增加至 2000ml;2. 使用含有角鲨烷或维生素 B5 的修复面霜加强保湿。" + }, + "mental_health": { + "mental_score": { "value": 88.0, "unit": "score", "status": "正常", "desc": "心理健康指数" }, + "stress": { "value": 3.0, "unit": "score", "status": "正常", "desc": "压力指数" }, + "depression": { "value": 1.5, "unit": "score", "status": "正常", "desc": "抑郁指数" }, + "anxiety": { "value": 2.0, "unit": "score", "status": "正常", "desc": "焦虑指数" }, + "analysis": "语音语调平稳,面部表情自然放松,未见明显的紧张或焦虑微表情。您的心理状态非常健康。" + } + }, + "brief_report": { + "personality": "温和/生活规律", + "emotion": "平静", + "clothing_style": "休闲舒适", + "overall_status": "健康", + "abnormal_items": [ + "皮肤含水量偏低" + ], + "summary_text": "亲爱的用户,很高兴看到您!根据本次多模态检测,您的整体健康状况非常理想。您的心血管系统强健,血液指标正常,且心理状态非常平稳,看来您最近的生活节奏把握得相当不错。唯一的小提示是您的皮肤含水量略低(13%),这可能是因为环境干燥或饮水稍少。建议您:随身携带保温杯,增加饮水频率,并在护肤时多涂抹一层保湿乳液。除此之外,请继续保持您现在的健康生活方式,您做得很好!" + } }` }, ] diff --git a/src/views/step4.vue b/src/views/step4.vue index 8748187..0c81f3f 100644 --- a/src/views/step4.vue +++ b/src/views/step4.vue @@ -5,7 +5,7 @@
我的检测报告
-
+
检测时间:{{ creatTime }}
@@ -35,7 +35,7 @@
- 生命体征指标正常,心肺功能良好。血液指标方面,血糖超出正常范围,建议调整饮食结构,定期复查。心理健康方面,压力指数、焦虑指数偏高,建议适当放松,保持积极心态皮肤健康方面,您的皮肤整体状态良好,含水量适中。面部有轻度黑眼圈,可能与睡眠不足有关。T区出油较为明显,建议加强控油和清洁。面部有少量痤疮,需注意饮食清淡和规律作息。整体肤质为混合型,建议分区护理。 + {{ data.brief_report?.summary_text }}
@@ -46,7 +46,8 @@
心率
-
{{ data?.metrics?.vital_signs?.heart_rate?.status }}
+
{{ + data?.metrics?.vital_signs?.heart_rate?.status }}
心率 {{ data?.metrics?.vital_signs?.heart_rate?.value }} bpm
正常范围:60~100次/分钟
@@ -55,7 +56,8 @@
呼吸频率
-
{{ data?.metrics?.vital_signs?.respiratory_rate?.status}}
+
{{ + data?.metrics?.vital_signs?.respiratory_rate?.status}}
呼吸频率 {{ data?.metrics?.vital_signs?.respiratory_rate?.value }} rpm
正常范围:12~20次/分钟
@@ -64,7 +66,8 @@
舒张压
-
{{ data?.metrics?.vital_signs?.diastolic_bp?.status }}
+
{{ + data?.metrics?.vital_signs?.diastolic_bp?.status }}
舒张压 {{ data?.metrics?.vital_signs?.diastolic_bp?.value }} rpm
正常范围:60mmHg~90mmHg
@@ -73,7 +76,8 @@
收缩压
-
{{ data?.metrics?.vital_signs?.systolic_bp?.status }}
+
{{ + data?.metrics?.vital_signs?.systolic_bp?.status }}
收缩压 {{ data?.metrics?.vital_signs?.systolic_bp?.value }} mmHg
正常范围:90mmHg~139mmHg
@@ -89,30 +93,42 @@
血糖
-
{{ data?.metrics?.blood_health?.glucose?.status }}
+
+ {{ data?.metrics?.blood_health?.glucose?.status }}
{{ data.metrics?.blood_health?.glucose?.value }} bmp
-
-
正常范围:3.9~6.1mmol/
+
+
+
正常范围:3.9~6.1mmol/L
血红蛋白
-
{{ data?.metrics?.blood_health?.hemoglobin?.status }}
+
+ {{ data?.metrics?.blood_health?.hemoglobin?.status }}
{{ data.metrics?.blood_health?.hemoglobin?.value }} rmp
-
+
+
正常范围:110~165g/L
甘油三酯
-
{{ data?.metrics?.blood_health?.triglycerides?.status }}
+
+ {{ data?.metrics?.blood_health?.triglycerides?.status }}
{{ data?.metrics?.blood_health?.triglycerides?.value }} mmol/L
-
+
+
正常范围:0.565~1.69mmol/l
@@ -129,7 +145,8 @@
{{ data?.metrics?.mental_health?.mental_score?.value }}
- +
正常范围:0~100分
@@ -139,8 +156,10 @@
压力指数
- {{ data?.metrics?.mental_health?.stress?.value }} -
{{ data?.metrics?.mental_health?.stress?.status=='正常' ? '正常' : '异常' }}
+ {{ + data?.metrics?.mental_health?.stress?.value }} +
{{ + data?.metrics?.mental_health?.stress?.status == '正常' ? '正常' : '异常' }}
正常范围:0~10分
@@ -150,8 +169,10 @@
抑郁指数
- {{ data?.metrics?.mental_health?.depression?.value }} -
{{ data?.metrics?.mental_health?.depression?.status=='正常' ? '正常' : '异常' }}
+ {{ + data?.metrics?.mental_health?.depression?.value }} +
{{ + data?.metrics?.mental_health?.depression?.status == '正常' ? '正常' : '异常' }}
正常范围:0~10分
@@ -161,8 +182,10 @@
焦虑指数
- {{ data?.metrics?.mental_health?.anxiety?.value }} -
{{ data?.metrics?.mental_health?.anxiety?.status=='正常' ? '正常' : '异常' }}
+ {{ + data?.metrics?.mental_health?.anxiety?.value }} +
{{ + data?.metrics?.mental_health?.anxiety?.status == '正常' ? '正常' : '异常' }}
正常范围:0~10分
@@ -177,30 +200,44 @@
-
{{ data?.metrics?.skin_status?.skin_type?.value }}
-
混合性肌肤:T区偏油,U区偏干
+
肤质类型
+
{{ data?.metrics?.skin_status?.skin_type?.value }}
-
皮肤含水量{{data?.metrics?.skin_status?.hydration?.value}}%
+
+ 皮肤含水量{{ data?.metrics?.skin_status?.hydration?.value }}%
-
-
黑眼圈
-
出油状态
-
痤疮
-
-
+
+
黑眼圈
+
出油状态
+
痤疮
+
+
+
+
{{ data?.metrics?.skin_status?.analysis }}
-
您的皮肤整体状态良好,含水量适中。面部有轻度黑眼圈,可能与睡眠不足有关。T区出油较为明显,建议加强控油和清洁。面部有少量痤疮,需注意饮食清淡和规律作息。整体肤质为混合型,建议分区护理。
- +
+
+ + 报告链接二维码 +
扫描二维码下载健康报告
+
+