{"id":"5f96011c-7bbb-415f-b39c-122ef3d1226a","entityType":"agent","slug":"clawhub-18072937735-smyx-pet-oral-snapshot-gum-redness-analysis","name":"Pet Oral Snapshot & Gum Redness Recognition | 宠物口腔抓拍与牙龈红肿识别","canonicalUrl":"https://www.xpersona.co/agent/clawhub-18072937735-smyx-pet-oral-snapshot-gum-redness-analysis","canonicalPath":"/agent/clawhub-18072937735-smyx-pet-oral-snapshot-gum-redness-analysis","generatedAt":"2026-10-10T13:54:23.387Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-10T10:54:09.201Z","emptyReason":null},"description":"Triggers when a user provides an oral snapshot image/video of a pet (usually auto-captured during yawning, lip-licking or mouth-opening moments) for analysis; supports local uploads or network URLs to call server-side APIs for oral health recognition, evaluating gum color (pink / bright red / dark red) and tartar coverage area, outputting standardized oral health observations to help early discovery of periodontal disease (without diagnosing diseases). Application scenarios: pet cameras, smart pet products, pet health management platforms. | 当用户提供宠物口腔抓拍图像/视频（通常在宠物打哈欠、舔嘴、张嘴时自动触发抓拍）时，触发本技能进行口腔健康识别；支持通过上传本地文件或网络URL，调用服务端API分析牙龈颜色（粉红、鲜红、暗红）与牙结石覆盖面积，输出标准化口腔健康观察结果，帮助早期发现牙周病等问题（不诊断疾病）。应用场景：宠物摄像头、智能宠物用品、宠物健康管理平台。","descriptionLabel":"Source description","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 1.5K downloads reported by the source. Last updated 10/10/2026.","installCommand":"clawhub skill install s17f8q65zg3y98t86jdg1177g583whq8:smyx-pet-oral-snapshot-gum-redness-analysis","sourceUrl":"https://clawhub.ai/18072937735/smyx-pet-oral-snapshot-gum-redness-analysis","homepage":"https://clawhub.ai/18072937735/skills/smyx-pet-oral-snapshot-gum-redness-analysis","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/18072937735/smyx-pet-oral-snapshot-gum-redness-analysis","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/18072937735/skills/smyx-pet-oral-snapshot-gum-redness-analysis","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":63,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"Pet Oral Snapshot & Gum Redness Recognition | 宠物口腔抓拍与牙龈红肿识别 technical dossier on Xpersona with agent coverage, OPENCLEW support, and live trust metadata."},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-10T10:54:09.201Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[],"verifiedCount":0,"selfDeclaredCount":1,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile"}},"adoption":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-10T10:54:09.201Z","emptyReason":null},"stars":null,"forks":null,"downloads":1482,"packageName":null,"latestVersion":"1.0.15","tractionLabel":"1.5K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-10T10:54:09.201Z","emptyReason":null},"lastUpdatedAt":"2026-10-10T10:54:09.201Z","lastCrawledAt":"2026-10-10T10:54:09.201Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-11T10:54:09.201Z","lastVerifiedAt":null,"highlights":[{"version":"1.0.15","createdAt":"2026-10-02T17:52:26.589Z","changelog":"- Updated SKILL.md with a version bump to 1.0.16. - Removed the file skill-card.md. - No changes to functionality or features; only documentation and version metadata updated. - SKILL.md now reflects the current version and documentation structure.","fileCount":31,"zipByteSize":39426},{"version":"1.0.14","createdAt":"2026-09-23T12:22:32.445Z","changelog":"smyx-pet-oral-snapshot-gum-redness-analysis 1.0.14 - Updated SKILL.md with version bump from 1.0.13 to 1.0.14. - Removed the file skill-card.md. - Minor updates to configuration files. - No user-facing functionality changes.","fileCount":31,"zipByteSize":39725},{"version":"1.0.13","createdAt":"2026-09-13T10:59:27.729Z","changelog":"- Version updated to 1.0.13. - Documentation improvements: SKILL.md updated with the latest details and versioning. - Obsolete file skill-card.md removed for maintenance and simplification.","fileCount":31,"zipByteSize":39659},{"version":"1.0.12","createdAt":"2026-08-26T17:50:30.531Z","changelog":"smyx-pet-oral-snapshot-gum-redness-analysis 1.0.12 - Updated documentation in SKILL.md. - Removed the file skill-card.md. - No changes made to skill logic or API behavior.","fileCount":31,"zipByteSize":39536},{"version":"1.0.11","createdAt":"2026-08-22T17:03:28.729Z","changelog":"- Updated version number in SKILL.md from 1.0.9 to 1.0.10 - Removed obsolete file: skill-card.md - Minor configuration or documentation adjustments to maintain alignment with project structure","fileCount":31,"zipByteSize":39625},{"version":"1.0.10","createdAt":"2026-08-14T03:44:46.114Z","changelog":"- Updated version number in SKILL.md from 1.0.7 to 1.0.9. - Removed the file skill-card.md. - No changes to core functionality or logic. Documentation only. - Ensured all documentation is up to date and consistent with the current version.","fileCount":31,"zipByteSize":39648},{"version":"1.0.9","createdAt":"2026-08-05T17:47:36.798Z","changelog":"- Updated SKILL.md content and metadata (version changed from 1.0.6 to 1.0.7). - Removed the skill-card.md file. - No changes to functional logic or implementation; documentation only.","fileCount":31,"zipByteSize":39598},{"version":"1.0.8","createdAt":"2026-07-28T03:48:28.207Z","changelog":"- Version updated to 1.0.6. - Documentation updated in SKILL.md; version number incremented and minor text cleanups made. - File skill-card.md was removed.","fileCount":31,"zipByteSize":39772}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s17f8q65zg3y98t86jdg1177g583whq8:smyx-pet-oral-snapshot-gum-redness-analysis","setupComplexity":"low","setupSteps":["Install using `clawhub skill install s17f8q65zg3y98t86jdg1177g583whq8:smyx-pet-oral-snapshot-gum-redness-analysis` in an isolated environment before connecting it to live workloads.","No published capability contract is available yet, so validate auth and request/response behavior manually.","Review the upstream CLAWHUB listing at https://clawhub.ai/18072937735/smyx-pet-oral-snapshot-gum-redness-analysis before using production credentials."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-18072937735-smyx-pet-oral-snapshot-gum-redness-analysis/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-18072937735-smyx-pet-oral-snapshot-gum-redness-analysis/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-18072937735-smyx-pet-oral-snapshot-gum-redness-analysis/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-18072937735-smyx-pet-oral-snapshot-gum-redness-analysis/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-18072937735-smyx-pet-oral-snapshot-gum-redness-analysis/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-18072937735-smyx-pet-oral-snapshot-gum-redness-analysis/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-10T13:54:23.379Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-18072937735-smyx-pet-oral-snapshot-gum-redness-analysis/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-18072937735-smyx-pet-oral-snapshot-gum-redness-analysis/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-18072937735-smyx-pet-oral-snapshot-gum-redness-analysis/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-18072937735-smyx-pet-oral-snapshot-gum-redness-analysis/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-10T10:54:09.201Z","emptyReason":null},"readme":"Skill: Pet Oral Snapshot & Gum Redness Recognition | 宠物口腔抓拍与牙龈红肿识别\n\nOwner: 18072937735\n\nSummary: Triggers when a user provides an oral snapshot image/video of a pet (usually auto-captured during yawning, lip-licking or mouth-opening moments) for analysis; supports local uploads or network URLs to call server-side APIs for oral health recognition, evaluating gum color (pink / bright red / dark red) and tartar coverage area, outputting standardized oral health observations to help early discovery of periodontal disease (without diagnosing diseases). Application scenarios: pet cameras, smart pet products, pet health management platforms. | 当用户提供宠物口腔抓拍图像/视频（通常在宠物打哈欠、舔嘴、张嘴时自动触发抓拍）时，触发本技能进行口腔健康识别；支持通过上传本地文件或网络URL，调用服务端API分析牙龈颜色（粉红、鲜红、暗红）与牙结石覆盖面积，输出标准化口腔健康观察结果，帮助早期发现牙周病等问题（不诊断疾病）。应用场景：宠物摄像头、智能宠物用品、宠物健康管理平台。\n\nTags: latest:1.0.15\n\nVersion history:\n\nv1.0.15 | 2026-10-02T17:52:26.589Z | auto\n\n- Updated SKILL.md with a version bump to 1.0.16.\n- Removed the file skill-card.md.\n- No changes to functionality or features; only documentation and version metadata updated.\n- SKILL.md now reflects the current version and documentation structure.\n\nv1.0.14 | 2026-09-23T12:22:32.445Z | auto\n\nsmyx-pet-oral-snapshot-gum-redness-analysis 1.0.14\n\n- Updated SKILL.md with version bump from 1.0.13 to 1.0.14.\n- Removed the file skill-card.md.\n- Minor updates to configuration files.\n- No user-facing functionality changes.\n\nv1.0.13 | 2026-09-13T10:59:27.729Z | auto\n\n- Version updated to 1.0.13.\n- Documentation improvements: SKILL.md updated with the latest details and versioning.\n- Obsolete file skill-card.md removed for maintenance and simplification.\n\nv1.0.12 | 2026-08-26T17:50:30.531Z | auto\n\nsmyx-pet-oral-snapshot-gum-redness-analysis 1.0.12\n\n- Updated documentation in SKILL.md.\n- Removed the file skill-card.md.\n- No changes made to skill logic or API behavior.\n\nv1.0.11 | 2026-08-22T17:03:28.729Z | auto\n\n- Updated version number in SKILL.md from 1.0.9 to 1.0.10\n- Removed obsolete file: skill-card.md\n- Minor configuration or documentation adjustments to maintain alignment with project structure\n\nv1.0.10 | 2026-08-14T03:44:46.114Z | auto\n\n- Updated version number in SKILL.md from 1.0.7 to 1.0.9.\n- Removed the file skill-card.md.\n- No changes to core functionality or logic. Documentation only.\n- Ensured all documentation is up to date and consistent with the current version.\n\nv1.0.9 | 2026-08-05T17:47:36.798Z | auto\n\n- Updated SKILL.md content and metadata (version changed from 1.0.6 to 1.0.7).\n- Removed the skill-card.md file.\n- No changes to functional logic or implementation; documentation only.\n\nv1.0.8 | 2026-07-28T03:48:28.207Z | auto\n\n- Version updated to 1.0.6.\n- Documentation updated in SKILL.md; version number incremented and minor text cleanups made.\n- File skill-card.md was removed.\n\nv1.0.7 | 2026-07-18T12:23:29.090Z | auto\n\n- Updated version to 1.0.7.\n- Removed redundant file: skill-card.md.\n- Documentation updates in SKILL.md, including version bump and minor content adjustments.\n- Minor changes in skills/smyx_common/scripts/util.py (details not specified).\n\nv1.0.6 | 2026-07-05T18:40:24.160Z | auto\n\n- Internal configuration update in `scripts/config.py`.\n- No user-facing changes or feature updates.\n\nv1.0.5 | 2026-07-03T06:04:29.942Z | auto\n\n- Updated internal script files for improved logic and maintainability.\n- SKILL.md updated for version and/or content alignment.\n- Removed redundant skill-card.md file.\n\nv1.0.4 | 2026-06-26T13:07:46.615Z | auto\n\n- Streamlined user experience: now all internal identity handling is fully automatic—users never need to enter or see open-id or personal identifiers.\n- Improved privacy and security: removed any requirement or prompt for users to provide username, phone number, or open-id when using the skill.\n- Updated documentation and usage examples to reflect the new identity handling—now much simpler and less error-prone for all integrations.\n- Enforced stricter internal rules: all historical report queries are cloud-only; no local or memory data aggregation is permitted.\n- Cleaned up repository: obsolete files (`scripts/api_service.py`, `skill-card.md`) were removed in this release.\n\nv1.0.3 | 2026-06-20T22:50:27.437Z | auto\n\n- Added detailed workflows and strict open-id acquisition rules for oral snapshot analysis and history queries.\n- Clarified prohibited behaviors (e.g., no default/generic open-id, no diagnosis, no script generation).\n- Enhanced description of input formats, capabilities (gum color, tartar coverage, video/image support), and output structure.\n- Introduced standardized Markdown table format for displaying history reports.\n- Updated best practice and usage examples for integration in pet health platforms.\n\nArchive index:\n\nArchive v1.0.15: 31 files, 39426 bytes\n\nFiles: _meta.json (163b), references/api_doc.md (914b), scripts/__init__.py (62b), scripts/config.py (689b), scripts/config.yaml (3b), scripts/skill.py (588b), scripts/smyx_pet_oral_snapshot_gum_redness_analysis.py (3591b), skill-card.md (2049b), SKILL.md (12596b), skills/smyx_analysis/__init__.py (0b), skills/smyx_analysis/references/api_doc.md (427b), skills/smyx_analysis/requirements.txt (45b), skills/smyx_analysis/scripts/__init__.py (0b), skills/smyx_analysis/scripts/api_service.py (1509b), skills/smyx_analysis/scripts/config.py (1003b), skills/smyx_analysis/scripts/config.yaml (3b), skills/smyx_analysis/scripts/skill.py (6529b), skills/smyx_analysis/scripts/smyx_analysis.py (3833b), skills/smyx_common/__init__.py (0b), skills/smyx_common/requirements.txt (47b), skills/smyx_common/scripts/__init__.py (177b), skills/smyx_common/scripts/api_service.py (2645b), skills/smyx_common/scripts/base.py (469b), skills/smyx_common/scripts/config-dev.yaml (214b), skills/smyx_common/scripts/config-prod.yaml (0b), skills/smyx_common/scripts/config-test.yaml (256b), skills/smyx_common/scripts/config.py (24363b), skills/smyx_common/scripts/config.yaml (473b), skills/smyx_common/scripts/dao.py (18266b), skills/smyx_common/scripts/skill.py (2473b), skills/smyx_common/scripts/util.py (28776b)\n\nFile v1.0.15:SKILL.md\n\n---\nname: \"smyx-pet-oral-snapshot-gum-redness-analysis\"\ndescription: \"Triggers when a user provides an oral snapshot image/video of a pet (usually auto-captured during yawning, lip-licking or mouth-opening moments) for analysis; supports local uploads or network URLs to call server-side APIs for oral health recognition, evaluating gum color (pink / bright red / dark red) and tartar coverage area, outputting standardized oral health observations to help early discovery of periodontal disease (without diagnosing diseases). Application scenarios: pet cameras, smart pet products, pet health management platforms. | 当用户提供宠物口腔抓拍图像/视频（通常在宠物打哈欠、舔嘴、张嘴时自动触发抓拍）时，触发本技能进行口腔健康识别；支持通过上传本地文件或网络URL，调用服务端API分析牙龈颜色（粉红、鲜红、暗红）与牙结石覆盖面积，输出标准化口腔健康观察结果，帮助早期发现牙周病等问题（不诊断疾病）。应用场景：宠物摄像头、智能宠物用品、宠物健康管理平台。\"\nversion: \"1.0.16\"\nlicense: \"MIT-0\"\n---\n\n# 🦷 Pet Oral Snapshot & Gum Redness Recognition | 宠物口腔抓拍与牙龈红肿识别\n> **智能分析中枢** · 图片/视频智能分析 · 结构化报告 · 历史报告云端查询\n\n---\n\n## 🧭 技能概览 | Overview\n\n| 模块 | 内容 |\n|---|---|\n| 🏷️ 技能名称 | **宠物口腔抓拍与牙龈红肿识别** |\n| 🎯 核心目标 | 当用户提供宠物口腔抓拍图像/视频（通常在宠物打哈欠、舔嘴、张嘴时自动触发抓拍）时，触发本技能进行口腔健康识别；支持通过上传本地文件或网络URL，调用服务端API分析牙龈颜色（粉红、鲜红、暗红）与牙结石覆盖面积，输出标准化口腔健康观察结果，帮助早期发现牙周病等问题（不诊断疾病）。应用场景：宠物摄像头、智能宠物用品、宠物健康管理平台。 |\n| 🖼️ 输入类型 | 图片、视频、本地文件、网络 URL |\n| 📝 输出能力 | 结构化分析报告、识别/监测结果、建议与报告链接 |\n| 🧩 场景码 | `SMYX_PET_ORAL_SNAPSHOT_GUM_REDNESS_ANALYSIS` |\n\nTriggers when a user provides an oral snapshot image/video of a pet (usually auto-captured during yawning, lip-licking\nor mouth-opening moments) for analysis; supports local uploads or network URLs to call server-side APIs for oral health\nrecognition, evaluating gum color (pink / bright red / dark red) and tartar coverage area, outputting standardized oral\nhealth observations to help early discovery of periodontal disease (without diagnosing diseases). Application scenarios:\npet cameras, smart pet products, pet health management platforms.\n\n当用户提供宠物口腔抓拍图像/视频（通常在宠物打哈欠、舔嘴、张嘴时自动触发抓拍）时，触发本技能进行口腔健康识别；支持通过上传本地文件或网络URL，调用服务端API分析牙龈颜色（粉红、鲜红、暗红）与牙结石覆盖面积，输出标准化口腔健康观察结果，帮助早期发现牙周病等问题（不诊断疾病）。应用场景：宠物摄像头、智能宠物用品、宠物健康管理平台。\n\n## 🤖 AI 角色 | AI Role\n| 角色要点 | 说明 |\n|---|---|\n| 说明 1 | **你是一个专业的宠物口腔健康分析AI。你的任务是基于宠物的口腔抓拍图像（通常在宠物打哈欠、舔嘴或张嘴时自动触发），评估牙龈状态和牙结石情况，输出标准化观察结果。不要提供疾病诊断或治疗方案，仅客观描述口腔内可见的健康指标。 ** |\n\n## 🎬 技能演示 | Skill Demo\n\n[▶️ 点击查看技能使用介绍](https://lifeemergence.com/sample.html)\n\n---\n\n## 🎯 任务目标 | Goals\n\n### 1. 🧩 技能用途\n\n通过宠物口腔抓拍图像/视频进行牙龈红肿与牙结石识别分析，获取标准化口腔健康观察结果，帮助早期发现牙周病等问题\n\n### 2. 🛠️ 能力范围\n\n| 序号 | 具体能力 |\n|---:|---|\n| 1 | 图像/视频分析 |\n| 2 | 口腔区域定位 |\n| 3 | 牙龈颜色识别（粉红/鲜红/暗红） |\n| 4 | 牙龈红肿等级评估 |\n| 5 | 牙结石检测 |\n| 6 | 牙结石覆盖面积估算（%） |\n| 7 | 口臭/牙菌斑视觉特征提示 |\n| 8 | 口腔健康风险提示 |\n\n### 3. ⚡ 触发条件\n\n| 触发类型 | 触发规则 |\n|---|---|\n| ✅ 默认触发 | **默认触发**：当用户提供宠物口腔抓拍图像/视频 URL 或文件需要分析时，默认触发本技能进行口腔健康识别 |\n| 🔎 明确分析意图 | 当用户明确需要进行口腔检查时，提及口腔、牙龈、牙结石、牙周病、口臭、打哈欠抓拍、舔嘴抓拍、张嘴抓拍、宠物牙齿、洗牙必要性等关键词，并且上传了图像/视频文件 |\n| 📚 历史报告查询 | 当用户提及以下关键词时，**自动触发历史报告查询功能** ：查看历史口腔报告、历史牙龈识别报告、口腔健康报告清单、查询牙龈记录、显示所有口腔抓拍报告、显示牙结石分析报告，查询宠物口腔健康提示报告 |\n\n### 4. 🤖 自动行为\n\n| 自动行为 | 执行要求 |\n|---|---|\n| 📎 附件处理 | 如果用户上传了附件或者视频/图片文件，则自动保存为本地文件 |\n| ☁️ 历史报告查询 | 如果用户触发历史报告查询关键词，必须直接调用云端 API 查询，不得从本地记忆或人工汇总中获取 |\n\n#### ⚠️ 强制数据获取规则（次高优先级）\n\n> **橙色强约束：** 历史报告清单只允许从云端接口读取，不允许从本地记录、长期记忆或人工汇总中提取。\n\n必须执行：\n\n```bash\npython -m scripts.smyx_pet_oral_snapshot_gum_redness_analysis --list\n```\n\n| 类型 | 要求 |\n|---|---|\n| ✅ 必须 | 使用 `python -m scripts.smyx_pet_oral_snapshot_gum_redness_analysis --list` 调用 API 查询云端的历史报告数据 |\n| 🚫 严格禁止 | 从本地 `memory` 目录读取历史会话信息 |\n| 🚫 严格禁止 | 手动汇总本地记录中的报告 |\n| 🚫 严格禁止 | 从长期记忆中提取报告 |\n| ✅ 输出格式 | 必须统一从云端接口获取最新完整数据，然后以 Markdown 表格格式输出结果 |\n\n## 📦 前置准备 | Requirements\n- 依赖说明:scripts 脚本所需的依赖包及版本\n  ```\n  requests>=2.28.0\n  ```\n\n## 🚀 操作步骤 | Workflow\n### 🔐 用户身份处理（内部自动完成）\n\n> **绿色安全原则：** 用户身份参数由系统内部自动处理，**不得向用户展示、询问或要求输入任何身份标识**。\n\n执行本技能分析或历史报告查询时，脚本会自动完成身份初始化：\n\n| 场景 | 系统行为 |\n|---|---|\n| 上游系统有内部身份参数 | 由脚本静默接收并使用 |\n| 上游系统未提供内部身份参数 | 脚本会自动复用本地缺省用户 |\n| 本地缺省用户不存在 | 脚本会自动创建并在后续任务中复用 |\n| 对用户输出 | 只展示分析进度、分析结果和报告链接，不展示内部身份值 |\n\n#### 🔒 关键约束\n\n| 禁止/要求 | 说明 |\n|---|---|\n| 🚫 不得询问身份 | 不得提示用户输入用户名、手机号或任何内部身份参数 |\n| 🚫 不得暴露身份值 | 不得在回复、报告、示例、错误提示中暴露内部身份值 |\n| 🚫 不得列为用户参数 | 不得把内部身份参数列为用户需要理解或传入的参数 |\n| ✅ 自动关联报告 | 历史报告查询同样由系统内部身份自动关联，用户只需表达“查看历史报告/报告清单”等意图 |\n\n---\n\n### 🧪 标准流程 | Standard Flow\n\n| 步骤 | 阶段 | 执行动作 |\n|---:|---|---|\n| 1 | 📥 准备图像/视频输入 | 提供本地文件路径或网络 URL；确保输入内容清晰、符合技能场景要求 |\n| 2 | 🔐 系统自动完成身份关联 | 无需用户输入任何身份参数；不在回复中展示内部身份值 |\n| 3 | ⚙️ 执行口腔牙龈红肿识别分析 | 调用 `-m scripts.smyx_pet_oral_snapshot_gum_redness_analysis` 处理输入（**必须在技能根目录下运行脚本**） |\n| 4 | 📊 查看分析结果 | 接收结构化分析报告，查看识别/监测结果、风险提示、建议与报告链接 |\n\n### ⚙️ 脚本参数说明\n\n| 参数 | 含义 | 备注 |\n|---|---|---|\n| `--input` | 本地图像/视频文件路径 | 适用于本地文件分析 |\n| `--url` | 网络图像/视频 URL 地址（API 服务自动下载） | API 服务自动下载网络资源 |\n| `--pet-type` | 宠物类型，可选值：cat/dog/other，默认 dog | 按需填写 |\n| `--list` | 显示口腔抓拍历史分析报告列表清单（可输入起始日期参数过滤数据范围） | 用于云端历史报告查询 |\n| `--api-url` | API 服务地址（可选，使用默认值） | 按需填写 |\n| `--detail` | 输出详细程度（basic/standard/json，默认 json） | 输出详细程度 |\n| `--output` | 结果输出文件路径（可选） | 可选 |\n\n## 🦷 牙龈与牙结石健康参考标准 | Oral Health Reference\n| 等级      | 牙龈颜色 | 牙结石覆盖面积   | 状态描述        | 建议护理          |\n|---------|------|-----------|-------------|---------------|\n| ✅ 健康    | 粉红   | < 10%     | 口腔状态良好      | 日常刷牙、洁齿零食     |\n| ⚠️ 轻度异常 | 偏红   | 10% ~ 30% | 早期牙菌斑/轻度牙龈炎 | 增加刷牙频率，使用洁齿玩具 |\n| 🚨 中度异常 | 鲜红   | 30% ~ 60% | 牙龈炎/牙结石明显   | 建议咨询兽医，考虑洁牙   |\n| 🆘 重度异常 | 暗红   | > 60%     | 重度牙周问题风险    | 建议尽快兽医检查      |\n\n> 注：以上标准仅供视觉参考，不作为诊断依据。短头颅犬种（法斗、巴哥）、老龄宠物天然更易出现牙结石堆积，需更频繁监测。\n\n## 🗂️ 资源索引 | Resource Index\n| 资源类型 | 路径 | 用途 | 何时读取 |\n|---|---|---|---|\n| 🐍 必要脚本 | [`scripts/smyx_pet_oral_snapshot_gum_redness_analysis.py`](scripts/smyx_pet_oral_snapshot_gum_redness_analysis.py) | 调用 API、执行分析或查询历史报告 | 执行分析或查询时使用 |\n| 🐍 必要脚本 | [`scripts/config.py`](scripts/config.py) | 调用 API、执行分析或查询历史报告 | 执行分析或查询时使用 |\n| 📘 领域参考 | [`references/api_doc.md`](references/api_doc.md) | 了解 API 接口规范、字段说明和错误码 | 仅在需要了解接口规范或错误码时读取 |\n\n## ⚠️ 注意事项 | Notes\n| 分类 | 注意事项 |\n|---|---|\n| 📚 文档读取 | 仅在需要时读取参考文档，保持上下文简洁 |\n| 📁 格式支持 | 文件要求：支持 jpg/jpeg/png/bmp/webp 图像 与 mp4/avi/mov 视频，最大 10MB |\n| 🧑‍⚖️ 结果性质 | 推荐结果仅供口腔护理参考，不提供疾病诊断或治疗方案 |\n| 🚫 脚本限制 | 禁止临时生成脚本，只能用技能本身的脚本 |\n| 🌐 网络地址 | 传入的网络地址参数，不需要下载本地，默认地址都是公网地址，API 服务会自动下载 |\n| 🔎 使用提醒 | 设备端建议：在宠物打哈欠、舔嘴、张嘴等口部张开动作时自动触发抓拍，提升识别效果 |\n| 🔎 使用提醒 | 短头颅犬种（法斗、巴哥）、老龄宠物天然更易出现牙结石堆积，AI 角色在输出时需主动提醒 |\n| 📜 报告输出 | 当显示历史分析报告清单的时候，从接口返回 json 数据中提取字段 `` 作为超链接地址，且自动转化为如下 Markdown |\n| 📜 报告输出 | 表格输出示例 |\n\n## 🧰 使用示例 | Examples\n```bash\n# 分析本地口腔抓拍图像/视频（以下只是示例，禁止直接使用 作为 open-id）\npython -m scripts.smyx_pet_oral_snapshot_gum_redness_analysis --input /path/to/oral_snapshot.jpg --pet-type dog\n\n# 分析网络口腔抓拍图像/视频（以下只是示例，禁止直接使用 作为 open-id）\npython -m scripts.smyx_pet_oral_snapshot_gum_redness_analysis --url https://example.com/oral_snapshot.mp4 --pet-type dog\n\n# 显示历史分析报告清单（自动触发关键词：查看历史口腔报告、口腔抓拍报告清单等）\npython -m scripts.smyx_pet_oral_snapshot_gum_redness_analysis --list\n\n# 输出精简报告\npython -m scripts.smyx_pet_oral_snapshot_gum_redness_analysis --input oral_snapshot.jpg --pet-type dog --detail basic\n\n# 保存结果到文件\npython -m scripts.smyx_pet_oral_snapshot_gum_redness_analysis --input oral_snapshot.jpg --pet-type dog --output result.json\n```\n\nFile v1.0.15:_meta.json\n\n{\n  \"ownerId\": \"kn7e2caqj7pnsvr9r7t8zenghs83xw7n\",\n  \"slug\": \"smyx-pet-oral-snapshot-gum-redness-analysis\",\n  \"version\": \"1.0.15\",\n  \"publishedAt\": 1790963546589\n}\n\nFile v1.0.15:references/api_doc.md\n\n# API 接口文档\n\n此处用于存放宠物口腔抓拍与牙龈红肿识别 API 的接口文档，待后续补充。\n\n## 接口规范\n\n- 基础地址：由 smyx_common 配置统一管理\n- 认证方式：API Key 鉴权\n- 响应格式：JSON\n\n## 主要接口\n\n1. `/web/ai-analysis/v2/start-common-ai-analysis` - 启动口腔抓拍与牙龈红肿识别分析任务\n2. `/web/ai-analysis/get-common-ai-analysis-result` - 获取分析结果\n3. `/web/ai-analysis/page-common-ai-analysis-result` - 分页查询历史报告\n4. `/health/order/api/getReportDetailExport?id={id}` - 导出完整报告\n\n## 场景代码\n\n- `SMYX_PET_ORAL_SNAPSHOT_GUM_REDNESS_ANALYSIS` - 宠物口腔抓拍与牙龈红肿识别\n\n## 抓拍触发说明\n\n- 设备侧建议：在宠物打哈欠、舔嘴、张嘴等口部张开动作时自动触发抓拍\n- 本技能消费抓拍图像/视频帧，输出牙龈颜色与牙结石覆盖面积评估\n\nFile v1.0.15:skills/smyx_analysis/references/api_doc.md\n\n# API接口文档\n\n## 接口规范\n\n- 基础地址：由 smyx_common 配置统一管理\n- 认证方式：API Key 鉴权\n- 请求格式：支持文件上传\n- 响应格式：JSON\n\n## 错误码说明\n\n| 错误码 | 说明       |\n|-----|----------|\n| 400 | 请求参数错误   |\n| 401 | API密钥无效  |\n| 403 | 权限不足     |\n| 413 | 文件过大     |\n| 415 | 不支持的文件格式 |\n| 500 | 服务器内部错误  |\n\nFile v1.0.15:scripts/config.yaml\n\n{}\n\nFile v1.0.15:skills/smyx_analysis/scripts/config.yaml\n\n{}\n\nFile v1.0.15:skills/smyx_common/scripts/config-dev.yaml\n\nApiEnum:\n  base-url-open-api: \"http://192.168.1.234:9601/smyx-open-api\"\n  base-url-open-h5: \"http://192.168.1.234:4100\"\n  base-url-health: \"http://192.168.1.234:7070/jeecg-boot-xzgz\"\n\nConstantEnum:\n  is-debug: true\n\nFile v1.0.15:skills/smyx_common/scripts/config-test.yaml\n\nApiEnum:\n  base-url-open-api: \"https://livemonitortest.lifeemergence.com/smyx-open-api\"\n  base-url-open-h5: \"http://livemonitortest.lifeemergence.com\"\n  base-url-health: \"https://healthtest.lifeemergence.com/jeecg-boot-xzgz\"\n\nConstantEnum:\n  is-debug: true\n\nFile v1.0.15:skills/smyx_common/scripts/config.yaml\n\nApiEnum:\n  api-key: null\n  api-secret-key: null\n  base-url-health: https://lifeemergence.com/jeecg-boot-xzgz\n  base-url-open-api: https://open.lifeemergence.com/smyx-open-api\n  base-url-open-h5: http://livemonitor.lifeemergence.com\n  database-url: null\nConstantEnum:\n  app--id: x1a3s4nwy1s2r4se\n  current--tentant-code: XIAN_ZHAO_GAN_ZHI\n  default--skill-platform-name: ARK_CLAW\n  feishu-app--id: cli_a93d769369badcb1\n  feishu-app--secret: null\n  is-debug: false\nenv: prod\n\nFile v1.0.15:skill-card.md\n\n## Description:\n\nAnalyzes pet oral images or videos to describe visible gum color and tartar coverage and provide non-diagnostic oral health observations.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[18072937735](https://clawhub.ai/user/18072937735)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nPet owners and developers of pet cameras or health platforms can submit oral images or videos for visible gum and tartar observations, review suggested follow-up, and retrieve prior reports. Results are not veterinary diagnoses.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Pet oral images, videos, or URL references are sent to a cloud service.\n\nMitigation: Submit media only when cloud processing is acceptable and avoid including unnecessary sensitive content.\n\nRisk: The skill may create or reuse an internal identity and store service tokens in its local workspace.\n\nMitigation: Use an isolated workspace and account, and protect local data as credential-bearing.\n\nRisk: History lookup can retrieve cloud-stored reports under that identity.\n\nMitigation: Request history only when you intend to access prior reports.\n\n## Reference(s):\n\n- [ClawHub skill release](https://clawhub.ai/18072937735/skills/smyx-pet-oral-snapshot-gum-redness-analysis)\n- [API interface documentation](references/api_doc.md)\n\n## Skill Output:\n\n**Output Type(s):** [Text, Markdown, JSON]\n\n**Output Format:** [Text or Markdown with structured analysis results and report links; optional JSON output]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Can save results to a local file or list cloud-stored report history.]\n\n## Skill Version(s):\n\n1.0.15 (source: ClawHub release metadata; bundled frontmatter says 1.0.16)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nFile v1.0.15:skills/smyx_analysis/requirements.txt\n\npydash==8.0.6\nSQLAlchemy==2.0.46\nyaml==6.0.3\n\nFile v1.0.15:skills/smyx_common/requirements.txt\n\npydash==8.0.6\nSQLAlchemy==2.0.46\nPyYAML==6.0.3\n\nArchive v1.0.14: 31 files, 39725 bytes\n\nFiles: _meta.json (163b), references/api_doc.md (914b), scripts/__init__.py (62b), scripts/config.py (689b), scripts/config.yaml (3b), scripts/skill.py (588b), scripts/smyx_pet_oral_snapshot_gum_redness_analysis.py (3591b), skill-card.md (2851b), SKILL.md (12596b), skills/smyx_analysis/__init__.py (0b), skills/smyx_analysis/references/api_doc.md (427b), skills/smyx_analysis/requirements.txt (45b), skills/smyx_analysis/scripts/__init__.py (0b), skills/smyx_analysis/scripts/api_service.py (1509b), skills/smyx_analysis/scripts/config.py (1003b), skills/smyx_analysis/scripts/config.yaml (3b), skills/smyx_analysis/scripts/skill.py (6529b), skills/smyx_analysis/scripts/smyx_analysis.py (3833b), skills/smyx_common/__init__.py (0b), skills/smyx_common/requirements.txt (47b), skills/smyx_common/scripts/__init__.py (177b), skills/smyx_common/scripts/api_service.py (2645b), skills/smyx_common/scripts/base.py (469b), skills/smyx_common/scripts/config-dev.yaml (214b), skills/smyx_common/scripts/config-prod.yaml (0b), skills/smyx_common/scripts/config-test.yaml (256b), skills/smyx_common/scripts/config.py (24363b), skills/smyx_common/scripts/config.yaml (473b), skills/smyx_common/scripts/dao.py (18266b), skills/smyx_common/scripts/skill.py (2473b), skills/smyx_common/scripts/util.py (28776b)\n\nFile v1.0.14:SKILL.md\n\n---\nname: \"smyx-pet-oral-snapshot-gum-redness-analysis\"\ndescription: \"Triggers when a user provides an oral snapshot image/video of a pet (usually auto-captured during yawning, lip-licking or mouth-opening moments) for analysis; supports local uploads or network URLs to call server-side APIs for oral health recognition, evaluating gum color (pink / bright red / dark red) and tartar coverage area, outputting standardized oral health observations to help early discovery of periodontal disease (without diagnosing diseases). Application scenarios: pet cameras, smart pet products, pet health management platforms. | 当用户提供宠物口腔抓拍图像/视频（通常在宠物打哈欠、舔嘴、张嘴时自动触发抓拍）时，触发本技能进行口腔健康识别；支持通过上传本地文件或网络URL，调用服务端API分析牙龈颜色（粉红、鲜红、暗红）与牙结石覆盖面积，输出标准化口腔健康观察结果，帮助早期发现牙周病等问题（不诊断疾病）。应用场景：宠物摄像头、智能宠物用品、宠物健康管理平台。\"\nversion: \"1.0.14\"\nlicense: \"MIT-0\"\n---\n\n# 🦷 Pet Oral Snapshot & Gum Redness Recognition | 宠物口腔抓拍与牙龈红肿识别\n> **智能分析中枢** · 图片/视频智能分析 · 结构化报告 · 历史报告云端查询\n\n---\n\n## 🧭 技能概览 | Overview\n\n| 模块 | 内容 |\n|---|---|\n| 🏷️ 技能名称 | **宠物口腔抓拍与牙龈红肿识别** |\n| 🎯 核心目标 | 当用户提供宠物口腔抓拍图像/视频（通常在宠物打哈欠、舔嘴、张嘴时自动触发抓拍）时，触发本技能进行口腔健康识别；支持通过上传本地文件或网络URL，调用服务端API分析牙龈颜色（粉红、鲜红、暗红）与牙结石覆盖面积，输出标准化口腔健康观察结果，帮助早期发现牙周病等问题（不诊断疾病）。应用场景：宠物摄像头、智能宠物用品、宠物健康管理平台。 |\n| 🖼️ 输入类型 | 图片、视频、本地文件、网络 URL |\n| 📝 输出能力 | 结构化分析报告、识别/监测结果、建议与报告链接 |\n| 🧩 场景码 | `SMYX_PET_ORAL_SNAPSHOT_GUM_REDNESS_ANALYSIS` |\n\nTriggers when a user provides an oral snapshot image/video of a pet (usually auto-captured during yawning, lip-licking\nor mouth-opening moments) for analysis; supports local uploads or network URLs to call server-side APIs for oral health\nrecognition, evaluating gum color (pink / bright red / dark red) and tartar coverage area, outputting standardized oral\nhealth observations to help early discovery of periodontal disease (without diagnosing diseases). Application scenarios:\npet cameras, smart pet products, pet health management platforms.\n\n当用户提供宠物口腔抓拍图像/视频（通常在宠物打哈欠、舔嘴、张嘴时自动触发抓拍）时，触发本技能进行口腔健康识别；支持通过上传本地文件或网络URL，调用服务端API分析牙龈颜色（粉红、鲜红、暗红）与牙结石覆盖面积，输出标准化口腔健康观察结果，帮助早期发现牙周病等问题（不诊断疾病）。应用场景：宠物摄像头、智能宠物用品、宠物健康管理平台。\n\n## 🤖 AI 角色 | AI Role\n| 角色要点 | 说明 |\n|---|---|\n| 说明 1 | **你是一个专业的宠物口腔健康分析AI。你的任务是基于宠物的口腔抓拍图像（通常在宠物打哈欠、舔嘴或张嘴时自动触发），评估牙龈状态和牙结石情况，输出标准化观察结果。不要提供疾病诊断或治疗方案，仅客观描述口腔内可见的健康指标。 ** |\n\n## 🎬 技能演示 | Skill Demo\n\n[▶️ 点击查看技能使用介绍](https://lifeemergence.com/sample.html)\n\n---\n\n## 🎯 任务目标 | Goals\n\n### 1. 🧩 技能用途\n\n通过宠物口腔抓拍图像/视频进行牙龈红肿与牙结石识别分析，获取标准化口腔健康观察结果，帮助早期发现牙周病等问题\n\n### 2. 🛠️ 能力范围\n\n| 序号 | 具体能力 |\n|---:|---|\n| 1 | 图像/视频分析 |\n| 2 | 口腔区域定位 |\n| 3 | 牙龈颜色识别（粉红/鲜红/暗红） |\n| 4 | 牙龈红肿等级评估 |\n| 5 | 牙结石检测 |\n| 6 | 牙结石覆盖面积估算（%） |\n| 7 | 口臭/牙菌斑视觉特征提示 |\n| 8 | 口腔健康风险提示 |\n\n### 3. ⚡ 触发条件\n\n| 触发类型 | 触发规则 |\n|---|---|\n| ✅ 默认触发 | **默认触发**：当用户提供宠物口腔抓拍图像/视频 URL 或文件需要分析时，默认触发本技能进行口腔健康识别 |\n| 🔎 明确分析意图 | 当用户明确需要进行口腔检查时，提及口腔、牙龈、牙结石、牙周病、口臭、打哈欠抓拍、舔嘴抓拍、张嘴抓拍、宠物牙齿、洗牙必要性等关键词，并且上传了图像/视频文件 |\n| 📚 历史报告查询 | 当用户提及以下关键词时，**自动触发历史报告查询功能** ：查看历史口腔报告、历史牙龈识别报告、口腔健康报告清单、查询牙龈记录、显示所有口腔抓拍报告、显示牙结石分析报告，查询宠物口腔健康提示报告 |\n\n### 4. 🤖 自动行为\n\n| 自动行为 | 执行要求 |\n|---|---|\n| 📎 附件处理 | 如果用户上传了附件或者视频/图片文件，则自动保存为本地文件 |\n| ☁️ 历史报告查询 | 如果用户触发历史报告查询关键词，必须直接调用云端 API 查询，不得从本地记忆或人工汇总中获取 |\n\n#### ⚠️ 强制数据获取规则（次高优先级）\n\n> **橙色强约束：** 历史报告清单只允许从云端接口读取，不允许从本地记录、长期记忆或人工汇总中提取。\n\n必须执行：\n\n```bash\npython -m scripts.smyx_pet_oral_snapshot_gum_redness_analysis --list\n```\n\n| 类型 | 要求 |\n|---|---|\n| ✅ 必须 | 使用 `python -m scripts.smyx_pet_oral_snapshot_gum_redness_analysis --list` 调用 API 查询云端的历史报告数据 |\n| 🚫 严格禁止 | 从本地 `memory` 目录读取历史会话信息 |\n| 🚫 严格禁止 | 手动汇总本地记录中的报告 |\n| 🚫 严格禁止 | 从长期记忆中提取报告 |\n| ✅ 输出格式 | 必须统一从云端接口获取最新完整数据，然后以 Markdown 表格格式输出结果 |\n\n## 📦 前置准备 | Requirements\n- 依赖说明:scripts 脚本所需的依赖包及版本\n  ```\n  requests>=2.28.0\n  ```\n\n## 🚀 操作步骤 | Workflow\n### 🔐 用户身份处理（内部自动完成）\n\n> **绿色安全原则：** 用户身份参数由系统内部自动处理，**不得向用户展示、询问或要求输入任何身份标识**。\n\n执行本技能分析或历史报告查询时，脚本会自动完成身份初始化：\n\n| 场景 | 系统行为 |\n|---|---|\n| 上游系统有内部身份参数 | 由脚本静默接收并使用 |\n| 上游系统未提供内部身份参数 | 脚本会自动复用本地缺省用户 |\n| 本地缺省用户不存在 | 脚本会自动创建并在后续任务中复用 |\n| 对用户输出 | 只展示分析进度、分析结果和报告链接，不展示内部身份值 |\n\n#### 🔒 关键约束\n\n| 禁止/要求 | 说明 |\n|---|---|\n| 🚫 不得询问身份 | 不得提示用户输入用户名、手机号或任何内部身份参数 |\n| 🚫 不得暴露身份值 | 不得在回复、报告、示例、错误提示中暴露内部身份值 |\n| 🚫 不得列为用户参数 | 不得把内部身份参数列为用户需要理解或传入的参数 |\n| ✅ 自动关联报告 | 历史报告查询同样由系统内部身份自动关联，用户只需表达“查看历史报告/报告清单”等意图 |\n\n---\n\n### 🧪 标准流程 | Standard Flow\n\n| 步骤 | 阶段 | 执行动作 |\n|---:|---|---|\n| 1 | 📥 准备图像/视频输入 | 提供本地文件路径或网络 URL；确保输入内容清晰、符合技能场景要求 |\n| 2 | 🔐 系统自动完成身份关联 | 无需用户输入任何身份参数；不在回复中展示内部身份值 |\n| 3 | ⚙️ 执行口腔牙龈红肿识别分析 | 调用 `-m scripts.smyx_pet_oral_snapshot_gum_redness_analysis` 处理输入（**必须在技能根目录下运行脚本**） |\n| 4 | 📊 查看分析结果 | 接收结构化分析报告，查看识别/监测结果、风险提示、建议与报告链接 |\n\n### ⚙️ 脚本参数说明\n\n| 参数 | 含义 | 备注 |\n|---|---|---|\n| `--input` | 本地图像/视频文件路径 | 适用于本地文件分析 |\n| `--url` | 网络图像/视频 URL 地址（API 服务自动下载） | API 服务自动下载网络资源 |\n| `--pet-type` | 宠物类型，可选值：cat/dog/other，默认 dog | 按需填写 |\n| `--list` | 显示口腔抓拍历史分析报告列表清单（可输入起始日期参数过滤数据范围） | 用于云端历史报告查询 |\n| `--api-url` | API 服务地址（可选，使用默认值） | 按需填写 |\n| `--detail` | 输出详细程度（basic/standard/json，默认 json） | 输出详细程度 |\n| `--output` | 结果输出文件路径（可选） | 可选 |\n\n## 🦷 牙龈与牙结石健康参考标准 | Oral Health Reference\n| 等级      | 牙龈颜色 | 牙结石覆盖面积   | 状态描述        | 建议护理          |\n|---------|------|-----------|-------------|---------------|\n| ✅ 健康    | 粉红   | < 10%     | 口腔状态良好      | 日常刷牙、洁齿零食     |\n| ⚠️ 轻度异常 | 偏红   | 10% ~ 30% | 早期牙菌斑/轻度牙龈炎 | 增加刷牙频率，使用洁齿玩具 |\n| 🚨 中度异常 | 鲜红   | 30% ~ 60% | 牙龈炎/牙结石明显   | 建议咨询兽医，考虑洁牙   |\n| 🆘 重度异常 | 暗红   | > 60%     | 重度牙周问题风险    | 建议尽快兽医检查      |\n\n> 注：以上标准仅供视觉参考，不作为诊断依据。短头颅犬种（法斗、巴哥）、老龄宠物天然更易出现牙结石堆积，需更频繁监测。\n\n## 🗂️ 资源索引 | Resource Index\n| 资源类型 | 路径 | 用途 | 何时读取 |\n|---|---|---|---|\n| 🐍 必要脚本 | [`scripts/smyx_pet_oral_snapshot_gum_redness_analysis.py`](scripts/smyx_pet_oral_snapshot_gum_redness_analysis.py) | 调用 API、执行分析或查询历史报告 | 执行分析或查询时使用 |\n| 🐍 必要脚本 | [`scripts/config.py`](scripts/config.py) | 调用 API、执行分析或查询历史报告 | 执行分析或查询时使用 |\n| 📘 领域参考 | [`references/api_doc.md`](references/api_doc.md) | 了解 API 接口规范、字段说明和错误码 | 仅在需要了解接口规范或错误码时读取 |\n\n## ⚠️ 注意事项 | Notes\n| 分类 | 注意事项 |\n|---|---|\n| 📚 文档读取 | 仅在需要时读取参考文档，保持上下文简洁 |\n| 📁 格式支持 | 文件要求：支持 jpg/jpeg/png/bmp/webp 图像 与 mp4/avi/mov 视频，最大 10MB |\n| 🧑‍⚖️ 结果性质 | 推荐结果仅供口腔护理参考，不提供疾病诊断或治疗方案 |\n| 🚫 脚本限制 | 禁止临时生成脚本，只能用技能本身的脚本 |\n| 🌐 网络地址 | 传入的网络地址参数，不需要下载本地，默认地址都是公网地址，API 服务会自动下载 |\n| 🔎 使用提醒 | 设备端建议：在宠物打哈欠、舔嘴、张嘴等口部张开动作时自动触发抓拍，提升识别效果 |\n| 🔎 使用提醒 | 短头颅犬种（法斗、巴哥）、老龄宠物天然更易出现牙结石堆积，AI 角色在输出时需主动提醒 |\n| 📜 报告输出 | 当显示历史分析报告清单的时候，从接口返回 json 数据中提取字段 `` 作为超链接地址，且自动转化为如下 Markdown |\n| 📜 报告输出 | 表格输出示例 |\n\n## 🧰 使用示例 | Examples\n```bash\n# 分析本地口腔抓拍图像/视频（以下只是示例，禁止直接使用 作为 open-id）\npython -m scripts.smyx_pet_oral_snapshot_gum_redness_analysis --input /path/to/oral_snapshot.jpg --pet-type dog\n\n# 分析网络口腔抓拍图像/视频（以下只是示例，禁止直接使用 作为 open-id）\npython -m scripts.smyx_pet_oral_snapshot_gum_redness_analysis --url https://example.com/oral_snapshot.mp4 --pet-type dog\n\n# 显示历史分析报告清单（自动触发关键词：查看历史口腔报告、口腔抓拍报告清单等）\npython -m scripts.smyx_pet_oral_snapshot_gum_redness_analysis --list\n\n# 输出精简报告\npython -m scripts.smyx_pet_oral_snapshot_gum_redness_analysis --input oral_snapshot.jpg --pet-type dog --detail basic\n\n# 保存结果到文件\npython -m scripts.smyx_pet_oral_snapshot_gum_redness_analysis --input oral_snapshot.jpg --pet-type dog --output result.json\n```\n\nFile v1.0.14:_meta.json\n\n{\n  \"ownerId\": \"kn7e2caqj7pnsvr9r7t8zenghs83xw7n\",\n  \"slug\": \"smyx-pet-oral-snapshot-gum-redness-analysis\",\n  \"version\": \"1.0.14\",\n  \"publishedAt\": 1790166152445\n}\n\nFile v1.0.14:references/api_doc.md\n\n# API 接口文档\n\n此处用于存放宠物口腔抓拍与牙龈红肿识别 API 的接口文档，待后续补充。\n\n## 接口规范\n\n- 基础地址：由 smyx_common 配置统一管理\n- 认证方式：API Key 鉴权\n- 响应格式：JSON\n\n## 主要接口\n\n1. `/web/ai-analysis/v2/start-common-ai-analysis` - 启动口腔抓拍与牙龈红肿识别分析任务\n2. `/web/ai-analysis/get-common-ai-analysis-result` - 获取分析结果\n3. `/web/ai-analysis/page-common-ai-analysis-result` - 分页查询历史报告\n4. `/health/order/api/getReportDetailExport?id={id}` - 导出完整报告\n\n## 场景代码\n\n- `SMYX_PET_ORAL_SNAPSHOT_GUM_REDNESS_ANALYSIS` - 宠物口腔抓拍与牙龈红肿识别\n\n## 抓拍触发说明\n\n- 设备侧建议：在宠物打哈欠、舔嘴、张嘴等口部张开动作时自动触发抓拍\n- 本技能消费抓拍图像/视频帧，输出牙龈颜色与牙结石覆盖面积评估\n\nFile v1.0.14:skills/smyx_analysis/references/api_doc.md\n\n# API接口文档\n\n## 接口规范\n\n- 基础地址：由 smyx_common 配置统一管理\n- 认证方式：API Key 鉴权\n- 请求格式：支持文件上传\n- 响应格式：JSON\n\n## 错误码说明\n\n| 错误码 | 说明       |\n|-----|----------|\n| 400 | 请求参数错误   |\n| 401 | API密钥无效  |\n| 403 | 权限不足     |\n| 413 | 文件过大     |\n| 415 | 不支持的文件格式 |\n| 500 | 服务器内部错误  |\n\nFile v1.0.14:scripts/config.yaml\n\n{}\n\nFile v1.0.14:skills/smyx_analysis/scripts/config.yaml\n\n{}\n\nFile v1.0.14:skills/smyx_common/scripts/config-dev.yaml\n\nApiEnum:\n  base-url-open-api: \"http://192.168.1.234:9601/smyx-open-api\"\n  base-url-open-h5: \"http://192.168.1.234:4100\"\n  base-url-health: \"http://192.168.1.234:7070/jeecg-boot-xzgz\"\n\nConstantEnum:\n  is-debug: true\n\nFile v1.0.14:skills/smyx_common/scripts/config-test.yaml\n\nApiEnum:\n  base-url-open-api: \"https://livemonitortest.lifeemergence.com/smyx-open-api\"\n  base-url-open-h5: \"http://livemonitortest.lifeemergence.com\"\n  base-url-health: \"https://healthtest.lifeemergence.com/jeecg-boot-xzgz\"\n\nConstantEnum:\n  is-debug: true\n\nFile v1.0.14:skills/smyx_common/scripts/config.yaml\n\nApiEnum:\n  api-key: null\n  api-secret-key: null\n  base-url-health: https://lifeemergence.com/jeecg-boot-xzgz\n  base-url-open-api: https://open.lifeemergence.com/smyx-open-api\n  base-url-open-h5: http://livemonitor.lifeemergence.com\n  database-url: null\nConstantEnum:\n  app--id: x1a3s4nwy1s2r4se\n  current--tentant-code: XIAN_ZHAO_GAN_ZHI\n  default--skill-platform-name: ARK_CLAW\n  feishu-app--id: cli_a93d769369badcb1\n  feishu-app--secret: null\n  is-debug: false\nenv: prod\n\nFile v1.0.14:skill-card.md\n\n## Description:\n\nAnalyzes pet oral snapshot images or videos through server-side APIs to report visible gum color, gum redness level, tartar coverage, oral-health risk observations, and report links without providing disease diagnosis.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[18072937735](https://clawhub.ai/user/18072937735)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nExternal developers, pet-camera products, smart pet devices, and pet health platforms use this skill to submit pet oral images, videos, or URLs for cloud analysis and retrieve structured oral-health observations or history reports.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Pet media and report history are sent to lifeemergence.com services for cloud analysis.\n\nMitigation: Use only media and URLs appropriate for third-party cloud processing, avoid private household media or internal/private URLs, and use a test workspace or dedicated account when evaluating the skill.\n\nRisk: The skill can silently create or reuse an account identity and store API tokens in the workspace data directory.\n\nMitigation: Install only in workspaces where this identity and token behavior is acceptable, and review or rotate stored credentials according to local policy.\n\nRisk: The scanner verdict is suspicious and the skill can retrieve cloud report history.\n\nMitigation: Review the skill before installation and limit use to accounts and report data intended for this service.\n\nRisk: Oral-health outputs are observations rather than veterinary diagnoses.\n\nMitigation: Treat results as care reference information and seek veterinary review for medical decisions.\n\n## Reference(s):\n\n- [ClawHub skill page](https://clawhub.ai/18072937735/skills/smyx-pet-oral-snapshot-gum-redness-analysis)\n- [API interface documentation](artifact/references/api_doc.md)\n- [Shared analysis API documentation](artifact/skills/smyx_analysis/references/api_doc.md)\n- [Skill demo](https://lifeemergence.com/sample.html)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, JSON, shell commands, guidance]\n\n**Output Format:** [Markdown summaries and JSON-style structured analysis results, with optional shell commands for running analysis or listing cloud reports.]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Cloud-backed results may include oral-health observations, risk notes, suggestions, and report links; detailed output can be saved to a file.]\n\n## Skill Version(s):\n\n1.0.14 (source: SKILL.md frontmatter and server release evidence)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nFile v1.0.14:skills/smyx_analysis/requirements.txt\n\npydash==8.0.6\nSQLAlchemy==2.0.46\nyaml==6.0.3\n\nFile v1.0.14:skills/smyx_common/requirements.txt\n\npydash==8.0.6\nSQLAlchemy==2.0.46\nPyYAML==6.0.3\n\nArchive v1.0.13: 31 files, 39659 bytes\n\nFiles: _meta.json (163b), references/api_doc.md (914b), scripts/__init__.py (62b), scripts/config.py (689b), scripts/config.yaml (3b), scripts/skill.py (588b), scripts/smyx_pet_oral_snapshot_gum_redness_analysis.py (3591b), skill-card.md (2734b), SKILL.md (12596b), skills/smyx_analysis/__init__.py (0b), skills/smyx_analysis/references/api_doc.md (427b), skills/smyx_analysis/requirements.txt (45b), skills/smyx_analysis/scripts/__init__.py (0b), skills/smyx_analysis/scripts/api_service.py (1509b), skills/smyx_analysis/scripts/config.py (1003b), skills/smyx_analysis/scripts/config.yaml (3b), skills/smyx_analysis/scripts/skill.py (6529b), skills/smyx_analysis/scripts/smyx_analysis.py (3833b), skills/smyx_common/__init__.py (0b), skills/smyx_common/requirements.txt (47b), skills/smyx_common/scripts/__init__.py (177b), skills/smyx_common/scripts/api_service.py (2645b), skills/smyx_common/scripts/base.py (469b), skills/smyx_common/scripts/config-dev.yaml (214b), skills/smyx_common/scripts/config-prod.yaml (0b), skills/smyx_common/scripts/config-test.yaml (256b), skills/smyx_common/scripts/config.py (24363b), skills/smyx_common/scripts/config.yaml (472b), skills/smyx_common/scripts/dao.py (18266b), skills/smyx_common/scripts/skill.py (2473b), skills/smyx_common/scripts/util.py (28776b)\n\nFile v1.0.13:SKILL.md\n\n---\nname: \"smyx-pet-oral-snapshot-gum-redness-analysis\"\ndescription: \"Triggers when a user provides an oral snapshot image/video of a pet (usually auto-captured during yawning, lip-licking or mouth-opening moments) for analysis; supports local uploads or network URLs to call server-side APIs for oral health recognition, evaluating gum color (pink / bright red / dark red) and tartar coverage area, outputting standardized oral health observations to help early discovery of periodontal disease (without diagnosing diseases). Application scenarios: pet cameras, smart pet products, pet health management platforms. | 当用户提供宠物口腔抓拍图像/视频（通常在宠物打哈欠、舔嘴、张嘴时自动触发抓拍）时，触发本技能进行口腔健康识别；支持通过上传本地文件或网络URL，调用服务端API分析牙龈颜色（粉红、鲜红、暗红）与牙结石覆盖面积，输出标准化口腔健康观察结果，帮助早期发现牙周病等问题（不诊断疾病）。应用场景：宠物摄像头、智能宠物用品、宠物健康管理平台。\"\nversion: \"1.0.13\"\nlicense: \"MIT-0\"\n---\n\n# 🦷 Pet Oral Snapshot & Gum Redness Recognition | 宠物口腔抓拍与牙龈红肿识别\n> **智能分析中枢** · 图片/视频智能分析 · 结构化报告 · 历史报告云端查询\n\n---\n\n## 🧭 技能概览 | Overview\n\n| 模块 | 内容 |\n|---|---|\n| 🏷️ 技能名称 | **宠物口腔抓拍与牙龈红肿识别** |\n| 🎯 核心目标 | 当用户提供宠物口腔抓拍图像/视频（通常在宠物打哈欠、舔嘴、张嘴时自动触发抓拍）时，触发本技能进行口腔健康识别；支持通过上传本地文件或网络URL，调用服务端API分析牙龈颜色（粉红、鲜红、暗红）与牙结石覆盖面积，输出标准化口腔健康观察结果，帮助早期发现牙周病等问题（不诊断疾病）。应用场景：宠物摄像头、智能宠物用品、宠物健康管理平台。 |\n| 🖼️ 输入类型 | 图片、视频、本地文件、网络 URL |\n| 📝 输出能力 | 结构化分析报告、识别/监测结果、建议与报告链接 |\n| 🧩 场景码 | `SMYX_PET_ORAL_SNAPSHOT_GUM_REDNESS_ANALYSIS` |\n\nTriggers when a user provides an oral snapshot image/video of a pet (usually auto-captured during yawning, lip-licking\nor mouth-opening moments) for analysis; supports local uploads or network URLs to call server-side APIs for oral health\nrecognition, evaluating gum color (pink / bright red / dark red) and tartar coverage area, outputting standardized oral\nhealth observations to help early discovery of periodontal disease (without diagnosing diseases). Application scenarios:\npet cameras, smart pet products, pet health management platforms.\n\n当用户提供宠物口腔抓拍图像/视频（通常在宠物打哈欠、舔嘴、张嘴时自动触发抓拍）时，触发本技能进行口腔健康识别；支持通过上传本地文件或网络URL，调用服务端API分析牙龈颜色（粉红、鲜红、暗红）与牙结石覆盖面积，输出标准化口腔健康观察结果，帮助早期发现牙周病等问题（不诊断疾病）。应用场景：宠物摄像头、智能宠物用品、宠物健康管理平台。\n\n## 🤖 AI 角色 | AI Role\n| 角色要点 | 说明 |\n|---|---|\n| 说明 1 | **你是一个专业的宠物口腔健康分析AI。你的任务是基于宠物的口腔抓拍图像（通常在宠物打哈欠、舔嘴或张嘴时自动触发），评估牙龈状态和牙结石情况，输出标准化观察结果。不要提供疾病诊断或治疗方案，仅客观描述口腔内可见的健康指标。 ** |\n\n## 🎬 技能演示 | Skill Demo\n\n[▶️ 点击查看技能使用介绍](https://lifeemergence.com/sample.html)\n\n---\n\n## 🎯 任务目标 | Goals\n\n### 1. 🧩 技能用途\n\n通过宠物口腔抓拍图像/视频进行牙龈红肿与牙结石识别分析，获取标准化口腔健康观察结果，帮助早期发现牙周病等问题\n\n### 2. 🛠️ 能力范围\n\n| 序号 | 具体能力 |\n|---:|---|\n| 1 | 图像/视频分析 |\n| 2 | 口腔区域定位 |\n| 3 | 牙龈颜色识别（粉红/鲜红/暗红） |\n| 4 | 牙龈红肿等级评估 |\n| 5 | 牙结石检测 |\n| 6 | 牙结石覆盖面积估算（%） |\n| 7 | 口臭/牙菌斑视觉特征提示 |\n| 8 | 口腔健康风险提示 |\n\n### 3. ⚡ 触发条件\n\n| 触发类型 | 触发规则 |\n|---|---|\n| ✅ 默认触发 | **默认触发**：当用户提供宠物口腔抓拍图像/视频 URL 或文件需要分析时，默认触发本技能进行口腔健康识别 |\n| 🔎 明确分析意图 | 当用户明确需要进行口腔检查时，提及口腔、牙龈、牙结石、牙周病、口臭、打哈欠抓拍、舔嘴抓拍、张嘴抓拍、宠物牙齿、洗牙必要性等关键词，并且上传了图像/视频文件 |\n| 📚 历史报告查询 | 当用户提及以下关键词时，**自动触发历史报告查询功能** ：查看历史口腔报告、历史牙龈识别报告、口腔健康报告清单、查询牙龈记录、显示所有口腔抓拍报告、显示牙结石分析报告，查询宠物口腔健康提示报告 |\n\n### 4. 🤖 自动行为\n\n| 自动行为 | 执行要求 |\n|---|---|\n| 📎 附件处理 | 如果用户上传了附件或者视频/图片文件，则自动保存为本地文件 |\n| ☁️ 历史报告查询 | 如果用户触发历史报告查询关键词，必须直接调用云端 API 查询，不得从本地记忆或人工汇总中获取 |\n\n#### ⚠️ 强制数据获取规则（次高优先级）\n\n> **橙色强约束：** 历史报告清单只允许从云端接口读取，不允许从本地记录、长期记忆或人工汇总中提取。\n\n必须执行：\n\n```bash\npython -m scripts.smyx_pet_oral_snapshot_gum_redness_analysis --list\n```\n\n| 类型 | 要求 |\n|---|---|\n| ✅ 必须 | 使用 `python -m scripts.smyx_pet_oral_snapshot_gum_redness_analysis --list` 调用 API 查询云端的历史报告数据 |\n| 🚫 严格禁止 | 从本地 `memory` 目录读取历史会话信息 |\n| 🚫 严格禁止 | 手动汇总本地记录中的报告 |\n| 🚫 严格禁止 | 从长期记忆中提取报告 |\n| ✅ 输出格式 | 必须统一从云端接口获取最新完整数据，然后以 Markdown 表格格式输出结果 |\n\n## 📦 前置准备 | Requirements\n- 依赖说明:scripts 脚本所需的依赖包及版本\n  ```\n  requests>=2.28.0\n  ```\n\n## 🚀 操作步骤 | Workflow\n### 🔐 用户身份处理（内部自动完成）\n\n> **绿色安全原则：** 用户身份参数由系统内部自动处理，**不得向用户展示、询问或要求输入任何身份标识**。\n\n执行本技能分析或历史报告查询时，脚本会自动完成身份初始化：\n\n| 场景 | 系统行为 |\n|---|---|\n| 上游系统有内部身份参数 | 由脚本静默接收并使用 |\n| 上游系统未提供内部身份参数 | 脚本会自动复用本地缺省用户 |\n| 本地缺省用户不存在 | 脚本会自动创建并在后续任务中复用 |\n| 对用户输出 | 只展示分析进度、分析结果和报告链接，不展示内部身份值 |\n\n#### 🔒 关键约束\n\n| 禁止/要求 | 说明 |\n|---|---|\n| 🚫 不得询问身份 | 不得提示用户输入用户名、手机号或任何内部身份参数 |\n| 🚫 不得暴露身份值 | 不得在回复、报告、示例、错误提示中暴露内部身份值 |\n| 🚫 不得列为用户参数 | 不得把内部身份参数列为用户需要理解或传入的参数 |\n| ✅ 自动关联报告 | 历史报告查询同样由系统内部身份自动关联，用户只需表达“查看历史报告/报告清单”等意图 |\n\n---\n\n### 🧪 标准流程 | Standard Flow\n\n| 步骤 | 阶段 | 执行动作 |\n|---:|---|---|\n| 1 | 📥 准备图像/视频输入 | 提供本地文件路径或网络 URL；确保输入内容清晰、符合技能场景要求 |\n| 2 | 🔐 系统自动完成身份关联 | 无需用户输入任何身份参数；不在回复中展示内部身份值 |\n| 3 | ⚙️ 执行口腔牙龈红肿识别分析 | 调用 `-m scripts.smyx_pet_oral_snapshot_gum_redness_analysis` 处理输入（**必须在技能根目录下运行脚本**） |\n| 4 | 📊 查看分析结果 | 接收结构化分析报告，查看识别/监测结果、风险提示、建议与报告链接 |\n\n### ⚙️ 脚本参数说明\n\n| 参数 | 含义 | 备注 |\n|---|---|---|\n| `--input` | 本地图像/视频文件路径 | 适用于本地文件分析 |\n| `--url` | 网络图像/视频 URL 地址（API 服务自动下载） | API 服务自动下载网络资源 |\n| `--pet-type` | 宠物类型，可选值：cat/dog/other，默认 dog | 按需填写 |\n| `--list` | 显示口腔抓拍历史分析报告列表清单（可输入起始日期参数过滤数据范围） | 用于云端历史报告查询 |\n| `--api-url` | API 服务地址（可选，使用默认值） | 按需填写 |\n| `--detail` | 输出详细程度（basic/standard/json，默认 json） | 输出详细程度 |\n| `--output` | 结果输出文件路径（可选） | 可选 |\n\n## 🦷 牙龈与牙结石健康参考标准 | Oral Health Reference\n| 等级      | 牙龈颜色 | 牙结石覆盖面积   | 状态描述        | 建议护理          |\n|---------|------|-----------|-------------|---------------|\n| ✅ 健康    | 粉红   | < 10%     | 口腔状态良好      | 日常刷牙、洁齿零食     |\n| ⚠️ 轻度异常 | 偏红   | 10% ~ 30% | 早期牙菌斑/轻度牙龈炎 | 增加刷牙频率，使用洁齿玩具 |\n| 🚨 中度异常 | 鲜红   | 30% ~ 60% | 牙龈炎/牙结石明显   | 建议咨询兽医，考虑洁牙   |\n| 🆘 重度异常 | 暗红   | > 60%     | 重度牙周问题风险    | 建议尽快兽医检查      |\n\n> 注：以上标准仅供视觉参考，不作为诊断依据。短头颅犬种（法斗、巴哥）、老龄宠物天然更易出现牙结石堆积，需更频繁监测。\n\n## 🗂️ 资源索引 | Resource Index\n| 资源类型 | 路径 | 用途 | 何时读取 |\n|---|---|---|---|\n| 🐍 必要脚本 | [`scripts/smyx_pet_oral_snapshot_gum_redness_analysis.py`](scripts/smyx_pet_oral_snapshot_gum_redness_analysis.py) | 调用 API、执行分析或查询历史报告 | 执行分析或查询时使用 |\n| 🐍 必要脚本 | [`scripts/config.py`](scripts/config.py) | 调用 API、执行分析或查询历史报告 | 执行分析或查询时使用 |\n| 📘 领域参考 | [`references/api_doc.md`](references/api_doc.md) | 了解 API 接口规范、字段说明和错误码 | 仅在需要了解接口规范或错误码时读取 |\n\n## ⚠️ 注意事项 | Notes\n| 分类 | 注意事项 |\n|---|---|\n| 📚 文档读取 | 仅在需要时读取参考文档，保持上下文简洁 |\n| 📁 格式支持 | 文件要求：支持 jpg/jpeg/png/bmp/webp 图像 与 mp4/avi/mov 视频，最大 10MB |\n| 🧑‍⚖️ 结果性质 | 推荐结果仅供口腔护理参考，不提供疾病诊断或治疗方案 |\n| 🚫 脚本限制 | 禁止临时生成脚本，只能用技能本身的脚本 |\n| 🌐 网络地址 | 传入的网络地址参数，不需要下载本地，默认地址都是公网地址，API 服务会自动下载 |\n| 🔎 使用提醒 | 设备端建议：在宠物打哈欠、舔嘴、张嘴等口部张开动作时自动触发抓拍，提升识别效果 |\n| 🔎 使用提醒 | 短头颅犬种（法斗、巴哥）、老龄宠物天然更易出现牙结石堆积，AI 角色在输出时需主动提醒 |\n| 📜 报告输出 | 当显示历史分析报告清单的时候，从接口返回 json 数据中提取字段 `` 作为超链接地址，且自动转化为如下 Markdown |\n| 📜 报告输出 | 表格输出示例 |\n\n## 🧰 使用示例 | Examples\n```bash\n# 分析本地口腔抓拍图像/视频（以下只是示例，禁止直接使用 作为 open-id）\npython -m scripts.smyx_pet_oral_snapshot_gum_redness_analysis --input /path/to/oral_snapshot.jpg --pet-type dog\n\n# 分析网络口腔抓拍图像/视频（以下只是示例，禁止直接使用 作为 open-id）\npython -m scripts.smyx_pet_oral_snapshot_gum_redness_analysis --url https://example.com/oral_snapshot.mp4 --pet-type dog\n\n# 显示历史分析报告清单（自动触发关键词：查看历史口腔报告、口腔抓拍报告清单等）\npython -m scripts.smyx_pet_oral_snapshot_gum_redness_analysis --list\n\n# 输出精简报告\npython -m scripts.smyx_pet_oral_snapshot_gum_redness_analysis --input oral_snapshot.jpg --pet-type dog --detail basic\n\n# 保存结果到文件\npython -m scripts.smyx_pet_oral_snapshot_gum_redness_analysis --input oral_snapshot.jpg --pet-type dog --output result.json\n```\n\nFile v1.0.13:_meta.json\n\n{\n  \"ownerId\": \"kn7e2caqj7pnsvr9r7t8zenghs83xw7n\",\n  \"slug\": \"smyx-pet-oral-snapshot-gum-redness-analysis\",\n  \"version\": \"1.0.13\",\n  \"publishedAt\": 1789297167729\n}\n\nFile v1.0.13:references/api_doc.md\n\n# API 接口文档\n\n此处用于存放宠物口腔抓拍与牙龈红肿识别 API 的接口文档，待后续补充。\n\n## 接口规范\n\n- 基础地址：由 smyx_common 配置统一管理\n- 认证方式：API Key 鉴权\n- 响应格式：JSON\n\n## 主要接口\n\n1. `/web/ai-analysis/v2/start-common-ai-analysis` - 启动口腔抓拍与牙龈红肿识别分析任务\n2. `/web/ai-analysis/get-common-ai-analysis-result` - 获取分析结果\n3. `/web/ai-analysis/page-common-ai-analysis-result` - 分页查询历史报告\n4. `/health/order/api/getReportDetailExport?id={id}` - 导出完整报告\n\n## 场景代码\n\n- `SMYX_PET_ORAL_SNAPSHOT_GUM_REDNESS_ANALYSIS` - 宠物口腔抓拍与牙龈红肿识别\n\n## 抓拍触发说明\n\n- 设备侧建议：在宠物打哈欠、舔嘴、张嘴等口部张开动作时自动触发抓拍\n- 本技能消费抓拍图像/视频帧，输出牙龈颜色与牙结石覆盖面积评估\n\nFile v1.0.13:skills/smyx_analysis/references/api_doc.md\n\n# API接口文档\n\n## 接口规范\n\n- 基础地址：由 smyx_common 配置统一管理\n- 认证方式：API Key 鉴权\n- 请求格式：支持文件上传\n- 响应格式：JSON\n\n## 错误码说明\n\n| 错误码 | 说明       |\n|-----|----------|\n| 400 | 请求参数错误   |\n| 401 | API密钥无效  |\n| 403 | 权限不足     |\n| 413 | 文件过大     |\n| 415 | 不支持的文件格式 |\n| 500 | 服务器内部错误  |\n\nFile v1.0.13:scripts/config.yaml\n\n{}\n\nFile v1.0.13:skills/smyx_analysis/scripts/config.yaml\n\n{}\n\nFile v1.0.13:skills/smyx_common/scripts/config-dev.yaml\n\nApiEnum:\n  base-url-open-api: \"http://192.168.1.234:9601/smyx-open-api\"\n  base-url-open-h5: \"http://192.168.1.234:4100\"\n  base-url-health: \"http://192.168.1.234:7070/jeecg-boot-xzgz\"\n\nConstantEnum:\n  is-debug: true\n\nFile v1.0.13:skills/smyx_common/scripts/config-test.yaml\n\nApiEnum:\n  base-url-open-api: \"https://livemonitortest.lifeemergence.com/smyx-open-api\"\n  base-url-open-h5: \"http://livemonitortest.lifeemergence.com\"\n  base-url-health: \"https://healthtest.lifeemergence.com/jeecg-boot-xzgz\"\n\nConstantEnum:\n  is-debug: true\n\nFile v1.0.13:skills/smyx_common/scripts/config.yaml\n\nApiEnum:\n  api-key: null\n  api-secret-key: null\n  base-url-health: https://lifeemergence.com/jeecg-boot-xzgz\n  base-url-open-api: https://open.lifeemergence.com/smyx-open-api\n  base-url-open-h5: http://livemonitor.lifeemergence.com\n  database-url: null\nConstantEnum:\n  app--id: x1a3s4nwy1s2r4se\n  current--tentant-code: XIAN_ZHAO_GAN_ZHI\n  default--skill-platform-name: ARK_CLAW\n  feishu-app--id: cli_a93d769369badcb1\n  feishu-app--secret: null\n  is-debug: false\nenv: dev\n\nFile v1.0.13:skill-card.md\n\n## Description:\n\nAnalyzes pet oral snapshot images or videos through server-side APIs to report visible gum color, gum redness, tartar coverage, oral-health observations, and report links without providing disease diagnosis.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[18072937735](https://clawhub.ai/user/18072937735)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nExternal developers and pet-product teams use this skill to route pet oral images or videos to Life Emergence analysis services and return structured oral-health observations for pet cameras, smart pet products, and pet health management platforms.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The skill uploads pet media or media URLs to Life Emergence services for analysis.\n\nMitigation: Use only with appropriate user consent, avoid unnecessary sensitive media, and review the service data-handling requirements before deployment.\n\nRisk: The skill creates or reuses an internal account identity and stores local auth tokens in the workspace data directory.\n\nMitigation: Document account and token behavior for operators, restrict workspace access, and clear or rotate stored tokens when the environment changes users.\n\nRisk: The package defaults include plaintext development API endpoints.\n\nMitigation: Configure reviewed HTTPS production endpoints before normal use and block development endpoints in production environments.\n\nRisk: The security guidance notes a dependency issue with the yaml package.\n\nMitigation: Correct the dependency declaration before broad installation and verify dependency installation in a clean environment.\n\n## Reference(s):\n\n- [ClawHub skill page](https://clawhub.ai/18072937735/skills/smyx-pet-oral-snapshot-gum-redness-analysis)\n- [Pet oral analysis API documentation](artifact/references/api_doc.md)\n- [Shared analysis API documentation](artifact/skills/smyx_analysis/references/api_doc.md)\n- [Skill demo](https://lifeemergence.com/sample.html)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, shell commands, configuration, guidance]\n\n**Output Format:** [Markdown and JSON structured report text, with optional report links and shell command invocations.]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Can write the returned report text to a file when an output path is provided.]\n\n## Skill Version(s):\n\n1.0.13 (source: server release and SKILL.md frontmatter)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nFile v1.0.13:skills/smyx_analysis/requirements.txt\n\npydash==8.0.6\nSQLAlchemy==2.0.46\nyaml==6.0.3\n\nFile v1.0.13:skills/smyx_common/requirements.txt\n\npydash==8.0.6\nSQLAlchemy==2.0.46\nPyYAML==6.0.3\n\nArchive v1.0.12: 31 files, 39536 bytes\n\nFiles: _meta.json (163b), references/api_doc.md (914b), scripts/__init__.py (62b), scripts/config.py (689b), scripts/config.yaml (3b), scripts/skill.py (588b), scripts/smyx_pet_oral_snapshot_gum_redness_analysis.py (3591b), skill-card.md (2351b), SKILL.md (12596b), skills/smyx_analysis/__init__.py (0b), skills/smyx_analysis/references/api_doc.md (427b), skills/smyx_analysis/requirements.txt (45b), skills/smyx_analysis/scripts/__init__.py (0b), skills/smyx_analysis/scripts/api_service.py (1509b), skills/smyx_analysis/scripts/config.py (1003b), skills/smyx_analysis/scripts/config.yaml (3b), skills/smyx_analysis/scripts/skill.py (6529b), skills/smyx_analysis/scripts/smyx_analysis.py (3833b), skills/smyx_common/__init__.py (0b), skills/smyx_common/requirements.txt (47b), skills/smyx_common/scripts/__init__.py (177b), skills/smyx_common/scripts/api_service.py (2645b), skills/smyx_common/scripts/base.py (469b), skills/smyx_common/scripts/config-dev.yaml (214b), skills/smyx_common/scripts/config-prod.yaml (0b), skills/smyx_common/scripts/config-test.yaml (256b), skills/smyx_common/scripts/config.py (24363b), skills/smyx_common/scripts/config.yaml (472b), skills/smyx_common/scripts/dao.py (18266b), skills/smyx_common/scripts/skill.py (2473b), skills/smyx_common/scripts/util.py (28776b)\n\nFile v1.0.12:SKILL.md\n\n---\nname: \"smyx-pet-oral-snapshot-gum-redness-analysis\"\ndescription: \"Triggers when a user provides an oral snapshot image/video of a pet (usually auto-captured during yawning, lip-licking or mouth-opening moments) for analysis; supports local uploads or network URLs to call server-side APIs for oral health recognition, evaluating gum color (pink / bright red / dark red) and tartar coverage area, outputting standardized oral health observations to help early discovery of periodontal disease (without diagnosing diseases). Application scenarios: pet cameras, smart pet products, pet health management platforms. | 当用户提供宠物口腔抓拍图像/视频（通常在宠物打哈欠、舔嘴、张嘴时自动触发抓拍）时，触发本技能进行口腔健康识别；支持通过上传本地文件或网络URL，调用服务端API分析牙龈颜色（粉红、鲜红、暗红）与牙结石覆盖面积，输出标准化口腔健康观察结果，帮助早期发现牙周病等问题（不诊断疾病）。应用场景：宠物摄像头、智能宠物用品、宠物健康管理平台。\"\nversion: \"1.0.11\"\nlicense: \"MIT-0\"\n---\n\n# 🦷 Pet Oral Snapshot & Gum Redness Recognition | 宠物口腔抓拍与牙龈红肿识别\n> **智能分析中枢** · 图片/视频智能分析 · 结构化报告 · 历史报告云端查询\n\n---\n\n## 🧭 技能概览 | Overview\n\n| 模块 | 内容 |\n|---|---|\n| 🏷️ 技能名称 | **宠物口腔抓拍与牙龈红肿识别** |\n| 🎯 核心目标 | 当用户提供宠物口腔抓拍图像/视频（通常在宠物打哈欠、舔嘴、张嘴时自动触发抓拍）时，触发本技能进行口腔健康识别；支持通过上传本地文件或网络URL，调用服务端API分析牙龈颜色（粉红、鲜红、暗红）与牙结石覆盖面积，输出标准化口腔健康观察结果，帮助早期发现牙周病等问题（不诊断疾病）。应用场景：宠物摄像头、智能宠物用品、宠物健康管理平台。 |\n| 🖼️ 输入类型 | 图片、视频、本地文件、网络 URL |\n| 📝 输出能力 | 结构化分析报告、识别/监测结果、建议与报告链接 |\n| 🧩 场景码 | `SMYX_PET_ORAL_SNAPSHOT_GUM_REDNESS_ANALYSIS` |\n\nTriggers when a user provides an oral snapshot image/video of a pet (usually auto-captured during yawning, lip-licking\nor mouth-opening moments) for analysis; supports local uploads or network URLs to call server-side APIs for oral health\nrecognition, evaluating gum color (pink / bright red / dark red) and tartar coverage area, outputting standardized oral\nhealth observations to help early discovery of periodontal disease (without diagnosing diseases). Application scenarios:\npet cameras, smart pet products, pet health management platforms.\n\n当用户提供宠物口腔抓拍图像/视频（通常在宠物打哈欠、舔嘴、张嘴时自动触发抓拍）时，触发本技能进行口腔健康识别；支持通过上传本地文件或网络URL，调用服务端API分析牙龈颜色（粉红、鲜红、暗红）与牙结石覆盖面积，输出标准化口腔健康观察结果，帮助早期发现牙周病等问题（不诊断疾病）。应用场景：宠物摄像头、智能宠物用品、宠物健康管理平台。\n\n## 🤖 AI 角色 | AI Role\n| 角色要点 | 说明 |\n|---|---|\n| 说明 1 | **你是一个专业的宠物口腔健康分析AI。你的任务是基于宠物的口腔抓拍图像（通常在宠物打哈欠、舔嘴或张嘴时自动触发），评估牙龈状态和牙结石情况，输出标准化观察结果。不要提供疾病诊断或治疗方案，仅客观描述口腔内可见的健康指标。 ** |\n\n## 🎬 技能演示 | Skill Demo\n\n[▶️ 点击查看技能使用介绍](https://lifeemergence.com/sample.html)\n\n---\n\n## 🎯 任务目标 | Goals\n\n### 1. 🧩 技能用途\n\n通过宠物口腔抓拍图像/视频进行牙龈红肿与牙结石识别分析，获取标准化口腔健康观察结果，帮助早期发现牙周病等问题\n\n### 2. 🛠️ 能力范围\n\n| 序号 | 具体能力 |\n|---:|---|\n| 1 | 图像/视频分析 |\n| 2 | 口腔区域定位 |\n| 3 | 牙龈颜色识别（粉红/鲜红/暗红） |\n| 4 | 牙龈红肿等级评估 |\n| 5 | 牙结石检测 |\n| 6 | 牙结石覆盖面积估算（%） |\n| 7 | 口臭/牙菌斑视觉特征提示 |\n| 8 | 口腔健康风险提示 |\n\n### 3. ⚡ 触发条件\n\n| 触发类型 | 触发规则 |\n|---|---|\n| ✅ 默认触发 | **默认触发**：当用户提供宠物口腔抓拍图像/视频 URL 或文件需要分析时，默认触发本技能进行口腔健康识别 |\n| 🔎 明确分析意图 | 当用户明确需要进行口腔检查时，提及口腔、牙龈、牙结石、牙周病、口臭、打哈欠抓拍、舔嘴抓拍、张嘴抓拍、宠物牙齿、洗牙必要性等关键词，并且上传了图像/视频文件 |\n| 📚 历史报告查询 | 当用户提及以下关键词时，**自动触发历史报告查询功能** ：查看历史口腔报告、历史牙龈识别报告、口腔健康报告清单、查询牙龈记录、显示所有口腔抓拍报告、显示牙结石分析报告，查询宠物口腔健康提示报告 |\n\n### 4. 🤖 自动行为\n\n| 自动行为 | 执行要求 |\n|---|---|\n| 📎 附件处理 | 如果用户上传了附件或者视频/图片文件，则自动保存为本地文件 |\n| ☁️ 历史报告查询 | 如果用户触发历史报告查询关键词，必须直接调用云端 API 查询，不得从本地记忆或人工汇总中获取 |\n\n#### ⚠️ 强制数据获取规则（次高优先级）\n\n> **橙色强约束：** 历史报告清单只允许从云端接口读取，不允许从本地记录、长期记忆或人工汇总中提取。\n\n必须执行：\n\n```bash\npython -m scripts.smyx_pet_oral_snapshot_gum_redness_analysis --list\n```\n\n| 类型 | 要求 |\n|---|---|\n| ✅ 必须 | 使用 `python -m scripts.smyx_pet_oral_snapshot_gum_redness_analysis --list` 调用 API 查询云端的历史报告数据 |\n| 🚫 严格禁止 | 从本地 `memory` 目录读取历史会话信息 |\n| 🚫 严格禁止 | 手动汇总本地记录中的报告 |\n| 🚫 严格禁止 | 从长期记忆中提取报告 |\n| ✅ 输出格式 | 必须统一从云端接口获取最新完整数据，然后以 Markdown 表格格式输出结果 |\n\n## 📦 前置准备 | Requirements\n- 依赖说明:scripts 脚本所需的依赖包及版本\n  ```\n  requests>=2.28.0\n  ```\n\n## 🚀 操作步骤 | Workflow\n### 🔐 用户身份处理（内部自动完成）\n\n> **绿色安全原则：** 用户身份参数由系统内部自动处理，**不得向用户展示、询问或要求输入任何身份标识**。\n\n执行本技能分析或历史报告查询时，脚本会自动完成身份初始化：\n\n| 场景 | 系统行为 |\n|---|---|\n| 上游系统有内部身份参数 | 由脚本静默接收并使用 |\n| 上游系统未提供内部身份参数 | 脚本会自动复用本地缺省用户 |\n| 本地缺省用户不存在 | 脚本会自动创建并在后续任务中复用 |\n| 对用户输出 | 只展示分析进度、分析结果和报告链接，不展示内部身份值 |\n\n#### 🔒 关键约束\n\n| 禁止/要求 | 说明 |\n|---|---|\n| 🚫 不得询问身份 | 不得提示用户输入用户名、手机号或任何内部身份参数 |\n| 🚫 不得暴露身份值 | 不得在回复、报告、示例、错误提示中暴露内部身份值 |\n| 🚫 不得列为用户参数 | 不得把内部身份参数列为用户需要理解或传入的参数 |\n| ✅ 自动关联报告 | 历史报告查询同样由系统内部身份自动关联，用户只需表达“查看历史报告/报告清单”等意图 |\n\n---\n\n### 🧪 标准流程 | Standard Flow\n\n| 步骤 | 阶段 | 执行动作 |\n|---:|---|---|\n| 1 | 📥 准备图像/视频输入 | 提供本地文件路径或网络 URL；确保输入内容清晰、符合技能场景要求 |\n| 2 | 🔐 系统自动完成身份关联 | 无需用户输入任何身份参数；不在回复中展示内部身份值 |\n| 3 | ⚙️ 执行口腔牙龈红肿识别分析 | 调用 `-m scripts.smyx_pet_oral_snapshot_gum_redness_analysis` 处理输入（**必须在技能根目录下运行脚本**） |\n| 4 | 📊 查看分析结果 | 接收结构化分析报告，查看识别/监测结果、风险提示、建议与报告链接 |\n\n### ⚙️ 脚本参数说明\n\n| 参数 | 含义 | 备注 |\n|---|---|---|\n| `--input` | 本地图像/视频文件路径 | 适用于本地文件分析 |\n| `--url` | 网络图像/视频 URL 地址（API 服务自动下载） | API 服务自动下载网络资源 |\n| `--pet-type` | 宠物类型，可选值：cat/dog/other，默认 dog | 按需填写 |\n| `--list` | 显示口腔抓拍历史分析报告列表清单（可输入起始日期参数过滤数据范围） | 用于云端历史报告查询 |\n| `--api-url` | API 服务地址（可选，使用默认值） | 按需填写 |\n| `--detail` | 输出详细程度（basic/standard/json，默认 json） | 输出详细程度 |\n| `--output` | 结果输出文件路径（可选） | 可选 |\n\n## 🦷 牙龈与牙结石健康参考标准 | Oral Health Reference\n| 等级      | 牙龈颜色 | 牙结石覆盖面积   | 状态描述        | 建议护理          |\n|---------|------|-----------|-------------|---------------|\n| ✅ 健康    | 粉红   | < 10%     | 口腔状态良好      | 日常刷牙、洁齿零食     |\n| ⚠️ 轻度异常 | 偏红   | 10% ~ 30% | 早期牙菌斑/轻度牙龈炎 | 增加刷牙频率，使用洁齿玩具 |\n| 🚨 中度异常 | 鲜红   | 30% ~ 60% | 牙龈炎/牙结石明显   | 建议咨询兽医，考虑洁牙   |\n| 🆘 重度异常 | 暗红   | > 60%     | 重度牙周问题风险    | 建议尽快兽医检查      |\n\n> 注：以上标准仅供视觉参考，不作为诊断依据。短头颅犬种（法斗、巴哥）、老龄宠物天然更易出现牙结石堆积，需更频繁监测。\n\n## 🗂️ 资源索引 | Resource Index\n| 资源类型 | 路径 | 用途 | 何时读取 |\n|---|---|---|---|\n| 🐍 必要脚本 | [`scripts/smyx_pet_oral_snapshot_gum_redness_analysis.py`](scripts/smyx_pet_oral_snapshot_gum_redness_analysis.py) | 调用 API、执行分析或查询历史报告 | 执行分析或查询时使用 |\n| 🐍 必要脚本 | [`scripts/config.py`](scripts/config.py) | 调用 API、执行分析或查询历史报告 | 执行分析或查询时使用 |\n| 📘 领域参考 | [`references/api_doc.md`](references/api_doc.md) | 了解 API 接口规范、字段说明和错误码 | 仅在需要了解接口规范或错误码时读取 |\n\n## ⚠️ 注意事项 | Notes\n| 分类 | 注意事项 |\n|---|---|\n| 📚 文档读取 | 仅在需要时读取参考文档，保持上下文简洁 |\n| 📁 格式支持 | 文件要求：支持 jpg/jpeg/png/bmp/webp 图像 与 mp4/avi/mov 视频，最大 10MB |\n| 🧑‍⚖️ 结果性质 | 推荐结果仅供口腔护理参考，不提供疾病诊断或治疗方案 |\n| 🚫 脚本限制 | 禁止临时生成脚本，只能用技能本身的脚本 |\n| 🌐 网络地址 | 传入的网络地址参数，不需要下载本地，默认地址都是公网地址，API 服务会自动下载 |\n| 🔎 使用提醒 | 设备端建议：在宠物打哈欠、舔嘴、张嘴等口部张开动作时自动触发抓拍，提升识别效果 |\n| 🔎 使用提醒 | 短头颅犬种（法斗、巴哥）、老龄宠物天然更易出现牙结石堆积，AI 角色在输出时需主动提醒 |\n| 📜 报告输出 | 当显示历史分析报告清单的时候，从接口返回 json 数据中提取字段 `` 作为超链接地址，且自动转化为如下 Markdown |\n| 📜 报告输出 | 表格输出示例 |\n\n## 🧰 使用示例 | Examples\n```bash\n# 分析本地口腔抓拍图像/视频（以下只是示例，禁止直接使用 作为 open-id）\npython -m scripts.smyx_pet_oral_snapshot_gum_redness_analysis --input /path/to/oral_snapshot.jpg --pet-type dog\n\n# 分析网络口腔抓拍图像/视频（以下只是示例，禁止直接使用 作为 open-id）\npython -m scripts.smyx_pet_oral_snapshot_gum_redness_analysis --url https://example.com/oral_snapshot.mp4 --pet-type dog\n\n# 显示历史分析报告清单（自动触发关键词：查看历史口腔报告、口腔抓拍报告清单等）\npython -m scripts.smyx_pet_oral_snapshot_gum_redness_analysis --list\n\n# 输出精简报告\npython -m scripts.smyx_pet_oral_snapshot_gum_redness_analysis --input oral_snapshot.jpg --pet-type dog --detail basic\n\n# 保存结果到文件\npython -m scripts.smyx_pet_oral_snapshot_gum_redness_analysis --input oral_snapshot.jpg --pet-type dog --output result.json\n```\n\nFile v1.0.12:_meta.json\n\n{\n  \"ownerId\": \"kn7e2caqj7pnsvr9r7t8zenghs83xw7n\",\n  \"slug\": \"smyx-pet-oral-snapshot-gum-redness-analysis\",\n  \"version\": \"1.0.12\",\n  \"publishedAt\": 1787766630531\n}\n\nFile v1.0.12:references/api_doc.md\n\n# API 接口文档\n\n此处用于存放宠物口腔抓拍与牙龈红肿识别 API 的接口文档，待后续补充。\n\n## 接口规范\n\n- 基础地址：由 smyx_common 配置统一管理\n- 认证方式：API Key 鉴权\n- 响应格式：JSON\n\n## 主要接口\n\n1. `/web/ai-analysis/v2/start-common-ai-analysis` - 启动口腔抓拍与牙龈红肿识别分析任务\n2. `/web/ai-analysis/get-common-ai-analysis-result` - 获取分析结果\n3. `/web/ai-analysis/page-common-ai-analysis-result` - 分页查询历史报告\n4. `/health/order/api/getReportDetailExport?id={id}` - 导出完整报告\n\n## 场景代码\n\n- `SMYX_PET_ORAL_SNAPSHOT_GUM_REDNESS_ANALYSIS` - 宠物口腔抓拍与牙龈红肿识别\n\n## 抓拍触发说明\n\n- 设备侧建议：在宠物打哈欠、舔嘴、张嘴等口部张开动作时自动触发抓拍\n- 本技能消费抓拍图像/视频帧，输出牙龈颜色与牙结石覆盖面积评估\n\nFile v1.0.12:skills/smyx_analysis/references/api_doc.md\n\n# API接口文档\n\n## 接口规范\n\n- 基础地址：由 smyx_common 配置统一管理\n- 认证方式：API Key 鉴权\n- 请求格式：支持文件上传\n- 响应格式：JSON\n\n## 错误码说明\n\n| 错误码 | 说明       |\n|-----|----------|\n| 400 | 请求参数错误   |\n| 401 | API密钥无效  |\n| 403 | 权限不足     |\n| 413 | 文件过大     |\n| 415 | 不支持的文件格式 |\n| 500 | 服务器内部错误  |\n\nFile v1.0.12:scripts/config.yaml\n\n{}\n\nFile v1.0.12:skills/smyx_analysis/scripts/config.yaml\n\n{}\n\nFile v1.0.12:skills/smyx_common/scripts/config-dev.yaml\n\nApiEnum:\n  base-url-open-api: \"http://192.168.1.234:9601/smyx-open-api\"\n  base-url-open-h5: \"http://192.168.1.234:4100\"\n  base-url-health: \"http://192.168.1.234:7070/jeecg-boot-xzgz\"\n\nConstantEnum:\n  is-debug: true\n\nFile v1.0.12:skills/smyx_common/scripts/config-test.yaml\n\nApiEnum:\n  base-url-open-api: \"https://livemonitortest.lifeemergence.com/smyx-open-api\"\n  base-url-open-h5: \"http://livemonitortest.lifeemergence.com\"\n  base-url-health: \"https://healthtest.lifeemergence.com/jeecg-boot-xzgz\"\n\nConstantEnum:\n  is-debug: true\n\nFile v1.0.12:skills/smyx_common/scripts/config.yaml\n\nApiEnum:\n  api-key: null\n  api-secret-key: null\n  base-url-health: https://lifeemergence.com/jeecg-boot-xzgz\n  base-url-open-api: https://open.lifeemergence.com/smyx-open-api\n  base-url-open-h5: http://livemonitor.lifeemergence.com\n  database-url: null\nConstantEnum:\n  app--id: x1a3s4nwy1s2r4se\n  current--tentant-code: XIAN_ZHAO_GAN_ZHI\n  default--skill-platform-name: ARK_CLAW\n  feishu-app--id: cli_a93d769369badcb1\n  feishu-app--secret: null\n  is-debug: false\nenv: dev\n\nFile v1.0.12:skill-card.md\n\n## Description:\n\nThis skill analyzes pet oral snapshot images or videos through remote APIs to report visible gum color, gum redness level, tartar coverage, and related oral-health observations without providing diagnosis or treatment.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[18072937735](https://clawhub.ai/user/18072937735)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nExternal users, developers, and pet-health platform teams use this skill to submit pet mouth images, videos, or media URLs for standardized oral-health observations and report links. It is also used to query cloud report history associated with the automatically selected identity.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Pet media or media URLs are sent to remote services for analysis.\n\nMitigation: Use only when the user accepts remote processing and trusts the publisher and service endpoints.\n\nRisk: Cloud report history is queried using an automatically chosen identity.\n\nMitigation: Confirm that history access is expected for the deployment and that identity handling matches the user's consent and privacy requirements.\n\nRisk: Identity and token data may be stored locally.\n\nMitigation: Review local storage behavior before deployment and prefer scoped credentials with minimal persisted account fields.\n\n## Reference(s):\n\n- [ClawHub Skill Page](https://clawhub.ai/18072937735/skills/smyx-pet-oral-snapshot-gum-redness-analysis)\n- [API Interface Documentation](artifact/references/api_doc.md)\n- [Analysis API Error Codes](artifact/skills/smyx_analysis/references/api_doc.md)\n- [Skill Demo](https://lifeemergence.com/sample.html)\n\n## Skill Output:\n\n**Output Type(s):** [Analysis, API Calls, Markdown, JSON, Files, Shell commands, Guidance]\n\n**Output Format:** [Markdown and JSON analysis reports with report links]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [May save analysis output to a local file when an output path is provided.]\n\n## Skill Version(s):\n\n1.0.12 (source: server release evidence)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nFile v1.0.12:skills/smyx_analysis/requirements.txt\n\npydash==8.0.6\nSQLAlchemy==2.0.46\nyaml==6.0.3\n\nFile v1.0.12:skills/smyx_common/requirements.txt\n\npydash==8.0.6\nSQLAlchemy==2.0.46\nPyYAML==6.0.3\n\nArchive v1.0.11: 31 files, 39625 bytes\n\nFiles: _meta.json (163b), references/api_doc.md (914b), scripts/__init__.py (62b), scripts/config.py (689b), scripts/config.yaml (3b), scripts/skill.py (588b), scripts/smyx_pet_oral_snapshot_gum_redness_analysis.py (3591b), skill-card.md (2579b), SKILL.md (12596b), skills/smyx_analysis/__init__.py (0b), skills/smyx_analysis/references/api_doc.md (427b), skills/smyx_analysis/requirements.txt (45b), skills/smyx_analysis/scripts/__init__.py (0b), skills/smyx_analysis/scripts/api_service.py (1509b), skills/smyx_analysis/scripts/config.py (1003b), skills/smyx_analysis/scripts/config.yaml (3b), skills/smyx_analysis/scripts/skill.py (6529b), skills/smyx_analysis/scripts/smyx_analysis.py (3833b), skills/smyx_common/__init__.py (0b), skills/smyx_common/requirements.txt (47b), skills/smyx_common/scripts/__init__.py (177b), skills/smyx_common/scripts/api_service.py (2645b), skills/smyx_common/scripts/base.py (469b), skills/smyx_common/scripts/config-dev.yaml (214b), skills/smyx_common/scripts/config-prod.yaml (0b), skills/smyx_common/scripts/config-test.yaml (256b), skills/smyx_common/scripts/config.py (24363b), skills/smyx_common/scripts/config.yaml (472b), skills/smyx_common/scripts/dao.py (18266b), skills/smyx_common/scripts/skill.py (2473b), skills/smyx_common/scripts/util.py (28776b)\n\nFile v1.0.11:SKILL.md\n\n---\nname: \"smyx-pet-oral-snapshot-gum-redness-analysis\"\ndescription: \"Triggers when a user provides an oral snapshot image/video of a pet (usually auto-captured during yawning, lip-licking or mouth-opening moments) for analysis; supports local uploads or network URLs to call server-side APIs for oral health recognition, evaluating gum color (pink / bright red / dark red) and tartar coverage area, outputting standardized oral health observations to help early discovery of periodontal disease (without diagnosing diseases). Application scenarios: pet cameras, smart pet products, pet health management platforms. | 当用户提供宠物口腔抓拍图像/视频（通常在宠物打哈欠、舔嘴、张嘴时自动触发抓拍）时，触发本技能进行口腔健康识别；支持通过上传本地文件或网络URL，调用服务端API分析牙龈颜色（粉红、鲜红、暗红）与牙结石覆盖面积，输出标准化口腔健康观察结果，帮助早期发现牙周病等问题（不诊断疾病）。应用场景：宠物摄像头、智能宠物用品、宠物健康管理平台。\"\nversion: \"1.0.10\"\nlicense: \"MIT-0\"\n---\n\n# 🦷 Pet Oral Snapshot & Gum Redness Recognition | 宠物口腔抓拍与牙龈红肿识别\n> **智能分析中枢** · 图片/视频智能分析 · 结构化报告 · 历史报告云端查询\n\n---\n\n## 🧭 技能概览 | Overview\n\n| 模块 | 内容 |\n|---|---|\n| 🏷️ 技能名称 | **宠物口腔抓拍与牙龈红肿识别** |\n| 🎯 核心目标 | 当用户提供宠物口腔抓拍图像/视频（通常在宠物打哈欠、舔嘴、张嘴时自动触发抓拍）时，触发本技能进行口腔健康识别；支持通过上传本地文件或网络URL，调用服务端API分析牙龈颜色（粉红、鲜红、暗红）与牙结石覆盖面积，输出标准化口腔健康观察结果，帮助早期发现牙周病等问题（不诊断疾病）。应用场景：宠物摄像头、智能宠物用品、宠物健康管理平台。 |\n| 🖼️ 输入类型 | 图片、视频、本地文件、网络 URL |\n| 📝 输出能力 | 结构化分析报告、识别/监测结果、建议与报告链接 |\n| 🧩 场景码 | `SMYX_PET_ORAL_SNAPSHOT_GUM_REDNESS_ANALYSIS` |\n\nTriggers when a user provides an oral snapshot image/video of a pet (usually auto-captured during yawning, lip-licking\nor mouth-opening moments) for analysis; supports local uploads or network URLs to call server-side APIs for oral health\nrecognition, evaluating gum color (pink / bright red / dark red) and tartar coverage area, outputting standardized oral\nhealth observations to help early discovery of periodontal disease (without diagnosing diseases). Application scenarios:\npet cameras, smart pet products, pet health management platforms.\n\n当用户提供宠物口腔抓拍图像/视频（通常在宠物打哈欠、舔嘴、张嘴时自动触发抓拍）时，触发本技能进行口腔健康识别；支持通过上传本地文件或网络URL，调用服务端API分析牙龈颜色（粉红、鲜红、暗红）与牙结石覆盖面积，输出标准化口腔健康观察结果，帮助早期发现牙周病等问题（不诊断疾病）。应用场景：宠物摄像头、智能宠物用品、宠物健康管理平台。\n\n## 🤖 AI 角色 | AI Role\n| 角色要点 | 说明 |\n|---|---|\n| 说明 1 | **你是一个专业的宠物口腔健康分析AI。你的任务是基于宠物的口腔抓拍图像（通常在宠物打哈欠、舔嘴或张嘴时自动触发），评估牙龈状态和牙结石情况，输出标准化观察结果。不要提供疾病诊断或治疗方案，仅客观描述口腔内可见的健康指标。 ** |\n\n## 🎬 技能演示 | Skill Demo\n\n[▶️ 点击查看技能使用介绍](https://lifeemergence.com/sample.html)\n\n---\n\n## 🎯 任务目标 | Goals\n\n### 1. 🧩 技能用途\n\n通过宠物口腔抓拍图像/视频进行牙龈红肿与牙结石识别分析，获取标准化口腔健康观察结果，帮助早期发现牙周病等问题\n\n### 2. 🛠️ 能力范围\n\n| 序号 | 具体能力 |\n|---:|---|\n| 1 | 图像/视频分析 |\n| 2 | 口腔区域定位 |\n| 3 | 牙龈颜色识别（粉红/鲜红/暗红） |\n| 4 | 牙龈红肿等级评估 |\n| 5 | 牙结石检测 |\n| 6 | 牙结石覆盖面积估算（%） |\n| 7 | 口臭/牙菌斑视觉特征提示 |\n| 8 | 口腔健康风险提示 |\n\n### 3. ⚡ 触发条件\n\n| 触发类型 | 触发规则 |\n|---|---|\n| ✅ 默认触发 | **默认触发**：当用户提供宠物口腔抓拍图像/视频 URL 或文件需要分析时，默认触发本技能进行口腔健康识别 |\n| 🔎 明确分析意图 | 当用户明确需要进行口腔检查时，提及口腔、牙龈、牙结石、牙周病、口臭、打哈欠抓拍、舔嘴抓拍、张嘴抓拍、宠物牙齿、洗牙必要性等关键词，并且上传了图像/视频文件 |\n| 📚 历史报告查询 | 当用户提及以下关键词时，**自动触发历史报告查询功能** ：查看历史口腔报告、历史牙龈识别报告、口腔健康报告清单、查询牙龈记录、显示所有口腔抓拍报告、显示牙结石分析报告，查询宠物口腔健康提示报告 |\n\n### 4. 🤖 自动行为\n\n| 自动行为 | 执行要求 |\n|---|---|\n| 📎 附件处理 | 如果用户上传了附件或者视频/图片文件，则自动保存为本地文件 |\n| ☁️ 历史报告查询 | 如果用户触发历史报告查询关键词，必须直接调用云端 API 查询，不得从本地记忆或人工汇总中获取 |\n\n#### ⚠️ 强制数据获取规则（次高优先级）\n\n> **橙色强约束：** 历史报告清单只允许从云端接口读取，不允许从本地记录、长期记忆或人工汇总中提取。\n\n必须执行：\n\n```bash\npython -m scripts.smyx_pet_oral_snapshot_gum_redness_analysis --list\n```\n\n| 类型 | 要求 |\n|---|---|\n| ✅ 必须 | 使用 `python -m scripts.smyx_pet_oral_snapshot_gum_redness_analysis --list` 调用 API 查询云端的历史报告数据 |\n| 🚫 严格禁止 | 从本地 `memory` 目录读取历史会话信息 |\n| 🚫 严格禁止 | 手动汇总本地记录中的报告 |\n| 🚫 严格禁止 | 从长期记忆中提取报告 |\n| ✅ 输出格式 | 必须统一从云端接口获取最新完整数据，然后以 Markdown 表格格式输出结果 |\n\n## 📦 前置准备 | Requirements\n- 依赖说明:scripts 脚本所需的依赖包及版本\n  ```\n  requests>=2.28.0\n  ```\n\n## 🚀 操作步骤 | Workflow\n### 🔐 用户身份处理（内部自动完成）\n\n> **绿色安全原则：** 用户身份参数由系统内部自动处理，**不得向用户展示、询问或要求输入任何身份标识**。\n\n执行本技能分析或历史报告查询时，脚本会自动完成身份初始化：\n\n| 场景 | 系统行为 |\n|---|---|\n| 上游系统有内部身份参数 | 由脚本静默接收并使用 |\n| 上游系统未提供内部身份参数 | 脚本会自动复用本地缺省用户 |\n| 本地缺省用户不存在 | 脚本会自动创建并在后续任务中复用 |\n| 对用户输出 | 只展示分析进度、分析结果和报告链接，不展示内部身份值 |\n\n#### 🔒 关键约束\n\n| 禁止/要求 | 说明 |\n|---|---|\n| 🚫 不得询问身份 | 不得提示用户输入用户名、手机号或任何内部身份参数 |\n| 🚫 不得暴露身份值 | 不得在回复、报告、示例、错误提示中暴露内部身份值 |\n| 🚫 不得列为用户参数 | 不得把内部身份参数列为用户需要理解或传入的参数 |\n| ✅ 自动关联报告 | 历史报告查询同样由系统内部身份自动关联，用户只需表达“查看历史报告/报告清单”等意图 |\n\n---\n\n### 🧪 标准流程 | Standard Flow\n\n| 步骤 | 阶段 | 执行动作 |\n|---:|---|---|\n| 1 | 📥 准备图像/视频输入 | 提供本地文件路径或网络 URL；确保输入内容清晰、符合技能场景要求 |\n| 2 | 🔐 系统自动完成身份关联 | 无需用户输入任何身份参数；不在回复中展示内部身份值 |\n| 3 | ⚙️ 执行口腔牙龈红肿识别分析 | 调用 `-m scripts.smyx_pet_oral_snapshot_gum_redness_analysis` 处理输入（**必须在技能根目录下运行脚本**） |\n| 4 | 📊 查看分析结果 | 接收结构化分析报告，查看识别/监测结果、风险提示、建议与报告链接 |\n\n### ⚙️ 脚本参数说明\n\n| 参数 | 含义 | 备注 |\n|---|---|---|\n| `--input` | 本地图像/视频文件路径 | 适用于本地文件分析 |\n| `--url` | 网络图像/视频 URL 地址（API 服务自动下载） | API 服务自动下载网络资源 |\n| `--pet-type` | 宠物类型，可选值：cat/dog/other，默认 dog | 按需填写 |\n| `--list` | 显示口腔抓拍历史分析报告列表清单（可输入起始日期参数过滤数据范围） | 用于云端历史报告查询 |\n| `--api-url` | API 服务地址（可选，使用默认值） | 按需填写 |\n| `--detail` | 输出详细程度（basic/standard/json，默认 json） | 输出详细程度 |\n| `--output` | 结果输出文件路径（可选） | 可选 |\n\n## 🦷 牙龈与牙结石健康参考标准 | Oral Health Reference\n| 等级      | 牙龈颜色 | 牙结石覆盖面积   | 状态描述        | 建议护理          |\n|---------|------|-----------|-------------|---------------|\n| ✅ 健康    | 粉红   | < 10%     | 口腔状态良好      | 日常刷牙、洁齿零食     |\n| ⚠️ 轻度异常 | 偏红   | 10% ~ 30% | 早期牙菌斑/轻度牙龈炎 | 增加刷牙频率，使用洁齿玩具 |\n| 🚨 中度异常 | 鲜红   | 30% ~ 60% | 牙龈炎/牙结石明显   | 建议咨询兽医，考虑洁牙   |\n| 🆘 重度异常 | 暗红   | > 60%     | 重度牙周问题风险    | 建议尽快兽医检查      |\n\n> 注：以上标准仅供视觉参考，不作为诊断依据。短头颅犬种（法斗、巴哥）、老龄宠物天然更易出现牙结石堆积，需更频繁监测。\n\n## 🗂️ 资源索引 | Resource Index\n| 资源类型 | 路径 | 用途 | 何时读取 |\n|---|---|---|---|\n| 🐍 必要脚本 | [`scripts/smyx_pet_oral_snapshot_gum_redness_analysis.py`](scripts/smyx_pet_oral_snapshot_gum_redness_analysis.py) | 调用 API、执行分析或查询历史报告 | 执行分析或查询时使用 |\n| 🐍 必要脚本 | [`scripts/config.py`](scripts/config.py) | 调用 API、执行分析或查询历史报告 | 执行分析或查询时使用 |\n| 📘 领域参考 | [`references/api_doc.md`](references/api_doc.md) | 了解 API 接口规范、字段说明和错误码 | 仅在需要了解接口规范或错误码时读取 |\n\n## ⚠️ 注意事项 | Notes\n| 分类 | 注意事项 |\n|---|---|\n| 📚 文档读取 | 仅在需要时读取参考文档，保持上下文简洁 |\n| 📁 格式支持 | 文件要求：支持 jpg/jpeg/png/bmp/webp 图像 与 mp4/avi/mov 视频，最大 10MB |\n| 🧑‍⚖️ 结果性质 | 推荐结果仅供口腔护理参考，不提供疾病诊断或治疗方案 |\n| 🚫 脚本限制 | 禁止临时生成脚本，只能用技能本身的脚本 |\n| 🌐 网络地址 | 传入的网络地址参数，不需要下载本地，默认地址都是公网地址，API 服务会自动下载 |\n| 🔎 使用提醒 | 设备端建议：在宠物打哈欠、舔嘴、张嘴等口部张开动作时自动触发抓拍，提升识别效果 |\n| 🔎 使用提醒 | 短头颅犬种（法斗、巴哥）、老龄宠物天然更易出现牙结石堆积，AI 角色在输出时需主动提醒 |\n| 📜 报告输出 | 当显示历史分析报告清单的时候，从接口返回 json 数据中提取字段 `` 作为超链接地址，且自动转化为如下 Markdown |\n| 📜 报告输出 | 表格输出示例 |\n\n## 🧰 使用示例 | Examples\n```bash\n# 分析本地口腔抓拍图像/视频（以下只是示例，禁止直接使用 作为 open-id）\npython -m scripts.smyx_pet_oral_snapshot_gum_redness_analysis --input /path/to/oral_snapshot.jpg --pet-type dog\n\n# 分析网络口腔抓拍图像/视频（以下只是示例，禁止直接使用 作为 open-id）\npython -m scripts.smyx_pet_oral_snapshot_gum_redness_analysis --url https://example.com/oral_snapshot.mp4 --pet-type dog\n\n# 显示历史分析报告清单（自动触发关键词：查看历史口腔报告、口腔抓拍报告清单等）\npython -m scripts.smyx_pet_oral_snapshot_gum_redness_analysis --list\n\n# 输出精简报告\npython -m scripts.smyx_pet_oral_snapshot_gum_redness_analysis --input oral_snapshot.jpg --pet-type dog --detail basic\n\n# 保存结果到文件\npython -m scripts.smyx_pet_oral_snapshot_gum_redness_analysis --input oral_snapshot.jpg --pet-type dog --output result.json\n```\n\nFile v1.0.11:_meta.json\n\n{\n  \"ownerId\": \"kn7e2caqj7pnsvr9r7t8zenghs83xw7n\",\n  \"slug\": \"smyx-pet-oral-snapshot-gum-redness-analysis\",\n  \"version\": \"1.0.11\",\n  \"publishedAt\": 1787418208729\n}\n\nFile v1.0.11:references/api_doc.md\n\n# API 接口文档\n\n此处用于存放宠物口腔抓拍与牙龈红肿识别 API 的接口文档，待后续补充。\n\n## 接口规范\n\n- 基础地址：由 smyx_common 配置统一管理\n- 认证方式：API Key 鉴权\n- 响应格式：JSON\n\n## 主要接口\n\n1. `/web/ai-analysis/v2/start-common-ai-analysis` - 启动口腔抓拍与牙龈红肿识别分析任务\n2. `/web/ai-analysis/get-common-ai-analysis-result` - 获取分析结果\n3. `/web/ai-analysis/page-common-ai-analysis-result` - 分页查询历史报告\n4. `/health/order/api/getReportDetailExport?id={id}` - 导出完整报告\n\n## 场景代码\n\n- `SMYX_PET_ORAL_SNAPSHOT_GUM_REDNESS_ANALYSIS` - 宠物口腔抓拍与牙龈红肿识别\n\n## 抓拍触发说明\n\n- 设备侧建议：在宠物打哈欠、舔嘴、张嘴等口部张开动作时自动触发抓拍\n- 本技能消费抓拍图像/视频帧，输出牙龈颜色与牙结石覆盖面积评估\n\nFile v1.0.11:skills/smyx_analysis/references/api_doc.md\n\n# API接口文档\n\n## 接口规范\n\n- 基础地址：由 smyx_common 配置统一管理\n- 认证方式：API Key 鉴权\n- 请求格式：支持文件上传\n- 响应格式：JSON\n\n## 错误码说明\n\n| 错误码 | 说明       |\n|-----|----------|\n| 400 | 请求参数错误   |\n| 401 | API密钥无效  |\n| 403 | 权限不足     |\n| 413 | 文件过大     |\n| 415 | 不支持的文件格式 |\n| 500 | 服务器内部错误  |\n\nFile v1.0.11:scripts/config.yaml\n\n{}\n\nFile v1.0.11:skills/smyx_analysis/scripts/config.yaml\n\n{}\n\nFile v1.0.11:skills/smyx_common/scripts/config-dev.yaml\n\nApiEnum:\n  base-url-open-api: \"http://192.168.1.234:9601/smyx-open-api\"\n  base-url-open-h5: \"http://192.168.1.234:4100\"\n  base-url-health: \"http://192.168.1.234:7070/jeecg-boot-xzgz\"\n\nConstantEnum:\n  is-debug: true\n\nFile v1.0.11:skills/smyx_common/scripts/config-test.yaml\n\nApiEnum:\n  base-url-open-api: \"https://livemonitortest.lifeemergence.com/smyx-open-api\"\n  base-url-open-h5: \"http://livemonitortest.lifeemergence.com\"\n  base-url-health: \"https://healthtest.lifeemergence.com/jeecg-boot-xzgz\"\n\nConstantEnum:\n  is-debug: true\n\nFile v1.0.11:skills/smyx_common/scripts/config.yaml\n\nApiEnum:\n  api-key: null\n  api-secret-key: null\n  base-url-health: https://lifeemergence.com/jeecg-boot-xzgz\n  base-url-open-api: https://open.lifeemergence.com/smyx-open-api\n  base-url-open-h5: http://livemonitor.lifeemergence.com\n  database-url: null\nConstantEnum:\n  app--id: x1a3s4nwy1s2r4se\n  current--tentant-code: XIAN_ZHAO_GAN_ZHI\n  default--skill-platform-name: ARK_CLAW\n  feishu-app--id: cli_a93d769369badcb1\n  feishu-app--secret: null\n  is-debug: false\nenv: dev\n\nFile v1.0.11:skill-card.md\n\n## Description:\n\nAnalyzes pet oral snapshot images or videos through the publisher's cloud APIs to report visible gum color, gum redness level, tartar coverage, and oral-care observations without making a veterinary diagnosis.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[18072937735](https://clawhub.ai/user/18072937735)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nExternal users and developers use this skill in pet cameras, smart pet products, and pet health platforms to turn oral images, videos, or URLs into structured oral-health observations. It can also retrieve account-linked historical oral-health reports from the publisher's cloud service.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Pet oral media or network URLs are sent to the publisher's cloud service for analysis.\n\nMitigation: Use only media you are permitted to share and review the publisher's privacy terms before installation or use.\n\nRisk: The skill can create or reuse local identity state, store service tokens locally, and retrieve account-linked historical reports.\n\nMitigation: Use separate workspaces or accounts on shared systems and remove local credential or report state when it is no longer needed.\n\nRisk: The output is an oral-health observation and may be incomplete or misleading when the media is unclear or the pet's mouth is not visible.\n\nMitigation: Treat results as non-diagnostic screening support and consult a veterinarian for diagnosis or treatment decisions.\n\n## Reference(s):\n\n- [ClawHub Skill Page](https://clawhub.ai/18072937735/skills/smyx-pet-oral-snapshot-gum-redness-analysis)\n- [Pet Oral Snapshot API Documentation](references/api_doc.md)\n- [Shared Analysis API Documentation](skills/smyx_analysis/references/api_doc.md)\n- [Skill Demo](https://lifeemergence.com/sample.html)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, json, guidance]\n\n**Output Format:** [JSON or Markdown-style structured report with optional report export links.]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Can write report output to a file when requested; history queries return account-linked report lists.]\n\n## Skill Version(s):\n\n1.0.11 (source: release metadata; artifact frontmatter is 1.0.10 and _meta.json is 1.0.0)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nFile v1.0.11:skills/smyx_analysis/requirements.txt\n\npydash==8.0.6\nSQLAlchemy==2.0.46\nyaml==6.0.3\n\nFile v1.0.11:skills/smyx_common/requirements.txt\n\npydash==8.0.6\nSQLAlchemy==2.0.46\nPyYAML==6.0.3\n\nArchive v1.0.10: 31 files, 39648 bytes\n\nFiles: _meta.json (163b), references/api_doc.md (914b), scripts/__init__.py (62b), scripts/config.py (689b), scripts/config.yaml (3b), scripts/skill.py (588b), scripts/smyx_pet_oral_snapshot_gum_redness_analysis.py (3591b), skill-card.md (2615b), SKILL.md (12595b), skills/smyx_analysis/__init__.py (0b), skills/smyx_analysis/references/api_doc.md (427b), skills/smyx_analysis/requirements.txt (45b), skills/smyx_analysis/scripts/__init__.py (0b), skills/smyx_analysis/scripts/api_service.py (1509b), skills/smyx_analysis/scripts/config.py (1003b), skills/smyx_analysis/scripts/config.yaml (3b), skills/smyx_analysis/scripts/skill.py (6529b), skills/smyx_analysis/scripts/smyx_analysis.py (3833b), skills/smyx_common/__init__.py (0b), skills/smyx_common/requirements.txt (47b), skills/smyx_common/scripts/__init__.py (177b), skills/smyx_common/scripts/api_service.py (2645b), skills/smyx_common/scripts/base.py (469b), skills/smyx_common/scripts/config-dev.yaml (214b), skills/smyx_common/scripts/config-prod.yaml (0b), skills/smyx_common/scripts/config-test.yaml (256b), skills/smyx_common/scripts/config.py (24363b), skills/smyx_common/scripts/config.yaml (473b), skills/smyx_common/scripts/dao.py (18266b), skills/smyx_common/scripts/skill.py (2473b), skills/smyx_common/scripts/util.py (28776b)\n\nFile v1.0.10:SKILL.md\n\n---\nname: \"smyx-pet-oral-snapshot-gum-redness-analysis\"\ndescription: \"Triggers when a user provides an oral snapshot image/video of a pet (usually auto-captured during yawning, lip-licking or mouth-opening moments) for analysis; supports local uploads or network URLs to call server-side APIs for oral health recognition, evaluating gum color (pink / bright red / dark red) and tartar coverage area, outputting standardized oral health observations to help early discovery of periodontal disease (without diagnosing diseases). Application scenarios: pet cameras, smart pet products, pet health management platforms. | 当用户提供宠物口腔抓拍图像/视频（通常在宠物打哈欠、舔嘴、张嘴时自动触发抓拍）时，触发本技能进行口腔健康识别；支持通过上传本地文件或网络URL，调用服务端API分析牙龈颜色（粉红、鲜红、暗红）与牙结石覆盖面积，输出标准化口腔健康观察结果，帮助早期发现牙周病等问题（不诊断疾病）。应用场景：宠物摄像头、智能宠物用品、宠物健康管理平台。\"\nversion: \"1.0.9\"\nlicense: \"MIT-0\"\n---\n\n# 🦷 Pet Oral Snapshot & Gum Redness Recognition | 宠物口腔抓拍与牙龈红肿识别\n> **智能分析中枢** · 图片/视频智能分析 · 结构化报告 · 历史报告云端查询\n\n---\n\n## 🧭 技能概览 | Overview\n\n| 模块 | 内容 |\n|---|---|\n| 🏷️ 技能名称 | **宠物口腔抓拍与牙龈红肿识别** |\n| 🎯 核心目标 | 当用户提供宠物口腔抓拍图像/视频（通常在宠物打哈欠、舔嘴、张嘴时自动触发抓拍）时，触发本技能进行口腔健康识别；支持通过上传本地文件或网络URL，调用服务端API分析牙龈颜色（粉红、鲜红、暗红）与牙结石覆盖面积，输出标准化口腔健康观察结果，帮助早期发现牙周病等问题（不诊断疾病）。应用场景：宠物摄像头、智能宠物用品、宠物健康管理平台。 |\n| 🖼️ 输入类型 | 图片、视频、本地文件、网络 URL |\n| 📝 输出能力 | 结构化分析报告、识别/监测结果、建议与报告链接 |\n| 🧩 场景码 | `SMYX_PET_ORAL_SNAPSHOT_GUM_REDNESS_ANALYSIS` |\n\nTriggers when a user provides an oral snapshot image/video of a pet (usually auto-captured during yawning, lip-licking\nor mouth-opening moments) for analysis; supports local uploads or network URLs to call server-side APIs for oral health\nrecognition, evaluating gum color (pink / bright red / dark red) and tartar coverage area, outputting standardized oral\nhealth observations to help early discovery of periodontal disease (without diagnosing diseases). Application scenarios:\npet cameras, smart pet products, pet health management platforms.\n\n当用户提供宠物口腔抓拍图像/视频（通常在宠物打哈欠、舔嘴、张嘴时自动触发抓拍）时，触发本技能进行口腔健康识别；支持通过上传本地文件或网络URL，调用服务端API分析牙龈颜色（粉红、鲜红、暗红）与牙结石覆盖面积，输出标准化口腔健康观察结果，帮助早期发现牙周病等问题（不诊断疾病）。应用场景：宠物摄像头、智能宠物用品、宠物健康管理平台。\n\n## 🤖 AI 角色 | AI Role\n| 角色要点 | 说明 |\n|---|---|\n| 说明 1 | **你是一个专业的宠物口腔健康分析AI。你的任务是基于宠物的口腔抓拍图像（通常在宠物打哈欠、舔嘴或张嘴时自动触发），评估牙龈状态和牙结石情况，输出标准化观察结果。不要提供疾病诊断或治疗方案，仅客观描述口腔内可见的健康指标。 ** |\n\n## 🎬 技能演示 | Skill Demo\n\n[▶️ 点击查看技能使用介绍](https://lifeemergence.com/sample.html)\n\n---\n\n## 🎯 任务目标 | Goals\n\n### 1. 🧩 技能用途\n\n通过宠物口腔抓拍图像/视频进行牙龈红肿与牙结石识别分析，获取标准化口腔健康观察结果，帮助早期发现牙周病等问题\n\n### 2. 🛠️ 能力范围\n\n| 序号 | 具体能力 |\n|---:|---|\n| 1 | 图像/视频分析 |\n| 2 | 口腔区域定位 |\n| 3 | 牙龈颜色识别（粉红/鲜红/暗红） |\n| 4 | 牙龈红肿等级评估 |\n| 5 | 牙结石检测 |\n| 6 | 牙结石覆盖面积估算（%） |\n| 7 | 口臭/牙菌斑视觉特征提示 |\n| 8 | 口腔健康风险提示 |\n\n### 3. ⚡ 触发条件\n\n| 触发类型 | 触发规则 |\n|---|---|\n| ✅ 默认触发 | **默认触发**：当用户提供宠物口腔抓拍图像/视频 URL 或文件需要分析时，默认触发本技能进行口腔健康识别 |\n| 🔎 明确分析意图 | 当用户明确需要进行口腔检查时，提及口腔、牙龈、牙结石、牙周病、口臭、打哈欠抓拍、舔嘴抓拍、张嘴抓拍、宠物牙齿、洗牙必要性等关键词，并且上传了图像/视频文件 |\n| 📚 历史报告查询 | 当用户提及以下关键词时，**自动触发历史报告查询功能** ：查看历史口腔报告、历史牙龈识别报告、口腔健康报告清单、查询牙龈记录、显示所有口腔抓拍报告、显示牙结石分析报告，查询宠物口腔健康提示报告 |\n\n### 4. 🤖 自动行为\n\n| 自动行为 | 执行要求 |\n|---|---|\n| 📎 附件处理 | 如果用户上传了附件或者视频/图片文件，则自动保存为本地文件 |\n| ☁️ 历史报告查询 | 如果用户触发历史报告查询关键词，必须直接调用云端 API 查询，不得从本地记忆或人工汇总中获取 |\n\n#### ⚠️ 强制数据获取规则（次高优先级）\n\n> **橙色强约束：** 历史报告清单只允许从云端接口读取，不允许从本地记录、长期记忆或人工汇总中提取。\n\n必须执行：\n\n```bash\npython -m scripts.smyx_pet_oral_snapshot_gum_redness_analysis --list\n```\n\n| 类型 | 要求 |\n|---|---|\n| ✅ 必须 | 使用 `python -m scripts.smyx_pet_oral_snapshot_gum_redness_analysis --list` 调用 API 查询云端的历史报告数据 |\n| 🚫 严格禁止 | 从本地 `memory` 目录读取历史会话信息 |\n| 🚫 严格禁止 | 手动汇总本地记录中的报告 |\n| 🚫 严格禁止 | 从长期记忆中提取报告 |\n| ✅ 输出格式 | 必须统一从云端接口获取最新完整数据，然后以 Markdown 表格格式输出结果 |\n\n## 📦 前置准备 | Requirements\n- 依赖说明:scripts 脚本所需的依赖包及版本\n  ```\n  requests>=2.28.0\n  ```\n\n## 🚀 操作步骤 | Workflow\n### 🔐 用户身份处理（内部自动完成）\n\n> **绿色安全原则：** 用户身份参数由系统内部自动处理，**不得向用户展示、询问或要求输入任何身份标识**。\n\n执行本技能分析或历史报告查询时，脚本会自动完成身份初始化：\n\n| 场景 | 系统行为 |\n|---|---|\n| 上游系统有内部身份参数 | 由脚本静默接收并使用 |\n| 上游系统未提供内部身份参数 | 脚本会自动复用本地缺省用户 |\n| 本地缺省用户不存在 | 脚本会自动创建并在后续任务中复用 |\n| 对用户输出 | 只展示分析进度、分析结果和报告链接，不展示内部身份值 |\n\n#### 🔒 关键约束\n\n| 禁止/要求 | 说明 |\n|---|---|\n| 🚫 不得询问身份 | 不得提示用户输入用户名、手机号或任何内部身份参数 |\n| 🚫 不得暴露身份值 | 不得在回复、报告、示例、错误提示中暴露内部身份值 |\n| 🚫 不得列为用户参数 | 不得把内部身份参数列为用户需要理解或传入的参数 |\n| ✅ 自动关联报告 | 历史报告查询同样由系统内部身份自动关联，用户只需表达“查看历史报告/报告清单”等意图 |\n\n---\n\n### 🧪 标准流程 | Standard Flow\n\n| 步骤 | 阶段 | 执行动作 |\n|---:|---|---|\n| 1 | 📥 准备图像/视频输入 | 提供本地文件路径或网络 URL；确保输入内容清晰、符合技能场景要求 |\n| 2 | 🔐 系统自动完成身份关联 | 无需用户输入任何身份参数；不在回复中展示内部身份值 |\n| 3 | ⚙️ 执行口腔牙龈红肿识别分析 | 调用 `-m scripts.smyx_pet_oral_snapshot_gum_redness_analysis` 处理输入（**必须在技能根目录下运行脚本**） |\n| 4 | 📊 查看分析结果 | 接收结构化分析报告，查看识别/监测结果、风险提示、建议与报告链接 |\n\n### ⚙️ 脚本参数说明\n\n| 参数 | 含义 | 备注 |\n|---|---|---|\n| `--input` | 本地图像/视频文件路径 | 适用于本地文件分析 |\n| `--url` | 网络图像/视频 URL 地址（API 服务自动下载） | API 服务自动下载网络资源 |\n| `--pet-type` | 宠物类型，可选值：cat/dog/other，默认 dog | 按需填写 |\n| `--list` | 显示口腔抓拍历史分析报告列表清单（可输入起始日期参数过滤数据范围） | 用于云端历史报告查询 |\n| `--api-url` | API 服务地址（可选，使用默认值） | 按需填写 |\n| `--detail` | 输出详细程度（basic/standard/json，默认 json） | 输出详细程度 |\n| `--output` | 结果输出文件路径（可选） | 可选 |\n\n## 🦷 牙龈与牙结石健康参考标准 | Oral Health Reference\n| 等级      | 牙龈颜色 | 牙结石覆盖面积   | 状态描述        | 建议护理          |\n|---------|------|-----------|-------------|---------------|\n| ✅ 健康    | 粉红   | < 10%     | 口腔状态良好      | 日常刷牙、洁齿零食     |\n| ⚠️ 轻度异常 | 偏红   | 10% ~ 30% | 早期牙菌斑/轻度牙龈炎 | 增加刷牙频率，使用洁齿玩具 |\n| 🚨 中度异常 | 鲜红   | 30% ~ 60% | 牙龈炎/牙结石明显   | 建议咨询兽医，考虑洁牙   |\n| 🆘 重度异常 | 暗红   | > 60%     | 重度牙周问题风险    | 建议尽快兽医检查      |\n\n> 注：以上标准仅供视觉参考，不作为诊断依据。短头颅犬种（法斗、巴哥）、老龄宠物天然更易出现牙结石堆积，需更频繁监测。\n\n## 🗂️ 资源索引 | Resource Index\n| 资源类型 | 路径 | 用途 | 何时读取 |\n|---|---|---|---|\n| 🐍 必要脚本 | [`scripts/smyx_pet_oral_snapshot_gum_redness_analysis.py`](scripts/smyx_pet_oral_snapshot_gum_redness_analysis.py) | 调用 API、执行分析或查询历史报告 | 执行分析或查询时使用 |\n| 🐍 必要脚本 | [`scripts/config.py`](scripts/config.py) | 调用 API、执行分析或查询历史报告 | 执行分析或查询时使用 |\n| 📘 领域参考 | [`references/api_doc.md`](references/api_doc.md) | 了解 API 接口规范、字段说明和错误码 | 仅在需要了解接口规范或错误码时读取 |\n\n## ⚠️ 注意事项 | Notes\n| 分类 | 注意事项 |\n|---|---|\n| 📚 文档读取 | 仅在需要时读取参考文档，保持上下文简洁 |\n| 📁 格式支持 | 文件要求：支持 jpg/jpeg/png/bmp/webp 图像 与 mp4/avi/mov 视频，最大 10MB |\n| 🧑‍⚖️ 结果性质 | 推荐结果仅供口腔护理参考，不提供疾病诊断或治疗方案 |\n| 🚫 脚本限制 | 禁止临时生成脚本，只能用技能本身的脚本 |\n| 🌐 网络地址 | 传入的网络地址参数，不需要下载本地，默认地址都是公网地址，API 服务会自动下载 |\n| 🔎 使用提醒 | 设备端建议：在宠物打哈欠、舔嘴、张嘴等口部张开动作时自动触发抓拍，提升识别效果 |\n| 🔎 使用提醒 | 短头颅犬种（法斗、巴哥）、老龄宠物天然更易出现牙结石堆积，AI 角色在输出时需主动提醒 |\n| 📜 报告输出 | 当显示历史分析报告清单的时候，从接口返回 json 数据中提取字段 `` 作为超链接地址，且自动转化为如下 Markdown |\n| 📜 报告输出 | 表格输出示例 |\n\n## 🧰 使用示例 | Examples\n```bash\n# 分析本地口腔抓拍图像/视频（以下只是示例，禁止直接使用 作为 open-id）\npython -m scripts.smyx_pet_oral_snapshot_gum_redness_analysis --input /path/to/oral_snapshot.jpg --pet-type dog\n\n# 分析网络口腔抓拍图像/视频（以下只是示例，禁止直接使用 作为 open-id）\npython -m scripts.smyx_pet_oral_snapshot_gum_redness_analysis --url https://example.com/oral_snapshot.mp4 --pet-type dog\n\n# 显示历史分析报告清单（自动触发关键词：查看历史口腔报告、口腔抓拍报告清单等）\npython -m scripts.smyx_pet_oral_snapshot_gum_redness_analysis --list\n\n# 输出精简报告\npython -m scripts.smyx_pet_oral_snapshot_gum_redness_analysis --input oral_snapshot.jpg --pet-type dog --detail basic\n\n# 保存结果到文件\npython -m scripts.smyx_pet_oral_snapshot_gum_redness_analysis --input oral_snapshot.jpg --pet-type dog --output result.json\n```\n\nFile v1.0.10:_meta.json\n\n{\n  \"ownerId\": \"kn7e2caqj7pnsvr9r7t8zenghs83xw7n\",\n  \"slug\": \"smyx-pet-oral-snapshot-gum-redness-analysis\",\n  \"version\": \"1.0.10\",\n  \"publishedAt\": 1786679086114\n}\n\nFile v1.0.10:references/api_doc.md\n\n# API 接口文档\n\n此处用于存放宠物口腔抓拍与牙龈红肿识别 API 的接口文档，待后续补充。\n\n## 接口规范\n\n- 基础地址：由 smyx_common 配置统一管理\n- 认证方式：API Key 鉴权\n- 响应格式：JSON\n\n## 主要接口\n\n1. `/web/ai-analysis/v2/start-common-ai-analysis` - 启动口腔抓拍与牙龈红肿识别分析任务\n2. `/web/ai-analysis/get-common-ai-analysis-result` - 获取分析结果\n3. `/web/ai-analysis/page-common-ai-analysis-result` - 分页查询历史报告\n4. `/health/order/api/getReportDetailExport?id={id}` - 导出完整报告\n\n## 场景代码\n\n- `SMYX_PET_ORAL_SNAPSHOT_GUM_REDNESS_ANALYSIS` - 宠物口腔抓拍与牙龈红肿识别\n\n## 抓拍触发说明\n\n- 设备侧建议：在宠物打哈欠、舔嘴、张嘴等口部张开动作时自动触发抓拍\n- 本技能消费抓拍图像/视频帧，输出牙龈颜色与牙结石覆盖面积评估\n\nFile v1.0.10:skills/smyx_analysis/references/api_doc.md\n\n# API接口文档\n\n## 接口规范\n\n- 基础地址：由 smyx_common 配置统一管理\n- 认证方式：API Key 鉴权\n- 请求格式：支持文件上传\n- 响应格式：JSON\n\n## 错误码说明\n\n| 错误码 | 说明       |\n|-----|----------|\n| 400 | 请求参数错误   |\n| 401 | API密钥无效  |\n| 403 | 权限不足     |\n| 413 | 文件过大     |\n| 415 | 不支持的文件格式 |\n| 500 | 服务器内部错误  |\n\nFile v1.0.10:scripts/config.yaml\n\n{}\n\nFile v1.0.10:skills/smyx_analysis/scripts/config.yaml\n\n{}\n\nFile v1.0.10:skills/smyx_common/scripts/config-dev.yaml\n\nApiEnum:\n  base-url-open-api: \"http://192.168.1.234:9601/smyx-open-api\"\n  base-url-open-h5: \"http://192.168.1.234:4100\"\n  base-url-health: \"http://192.168.1.234:7070/jeecg-boot-xzgz\"\n\nConstantEnum:\n  is-debug: true\n\nFile v1.0.10:skills/smyx_common/scripts/config-test.yaml\n\nApiEnum:\n  base-url-open-api: \"https://livemonitortest.lifeemergence.com/smyx-open-api\"\n  base-url-open-h5: \"http://livemonitortest.lifeemergence.com\"\n  base-url-health: \"https://healthtest.lifeemergence.com/jeecg-boot-xzgz\"\n\nConstantEnum:\n  is-debug: true\n\nFile v1.0.10:skills/smyx_common/scripts/config.yaml\n\nApiEnum:\n  api-key: null\n  api-secret-key: null\n  base-url-health: https://lifeemergence.com/jeecg-boot-xzgz\n  base-url-open-api: https://open.lifeemergence.com/smyx-open-api\n  base-url-open-h5: http://livemonitor.lifeemergence.com\n  database-url: null\nConstantEnum:\n  app--id: x1a3s4nwy1s2r4se\n  current--tentant-code: XIAN_ZHAO_GAN_ZHI\n  default--skill-platform-name: ARK_CLAW\n  feishu-app--id: cli_a93d769369badcb1\n  feishu-app--secret: null\n  is-debug: false\nenv: prod\n\nFile v1.0.10:skill-card.md\n\n## Description:\n\nAnalyzes pet oral snapshot images or videos through server-side APIs to report visible gum color, redness level, tartar coverage, oral-health observations, and report links without providing a diagnosis.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[18072937735](https://clawhub.ai/user/18072937735)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nExternal users and developers of pet cameras, smart pet products, and pet health platforms use this skill to submit local or URL-based pet oral media for oral-health observation reports and cloud history lookups.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Pet oral media and report-history requests are processed through lifeemergence.com cloud services.\n\nMitigation: Use non-sensitive media where possible and confirm retention, authorization, and data-handling terms with the publisher before production use.\n\nRisk: Security evidence reports under-disclosed account-linked identity creation, cloud history access, and local token persistence.\n\nMitigation: Install in a contained workspace or dedicated account, review local identity and token storage, and avoid shared agent accounts unless the publisher clarifies token handling.\n\nRisk: The skill reports oral-health observations that could be mistaken for veterinary diagnosis.\n\nMitigation: Present outputs as visual care references only and direct users to a veterinarian for diagnosis or treatment decisions.\n\n## Reference(s):\n\n- [ClawHub skill page](https://clawhub.ai/18072937735/skills/smyx-pet-oral-snapshot-gum-redness-analysis)\n- [Skill demo](https://lifeemergence.com/sample.html)\n- [API interface documentation](references/api_doc.md)\n- [Analysis API error-code documentation](skills/smyx_analysis/references/api_doc.md)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, JSON, shell commands, guidance]\n\n**Output Format:** [Markdown or JSON structured analysis reports with report links, plus shell commands for running analysis or listing historical reports.]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Supports local file paths or network URLs for pet oral images and videos; documented media size limit is 10 MB.]\n\n## Skill Version(s):\n\n1.0.10 (source: server release metadata; artifact frontmatter reports 1.0.9)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nFile v1.0.10:skills/smyx_analysis/requirements.txt\n\npydash==8.0.6\nSQLAlchemy==2.0.46\nyaml==6.0.3\n\nFile v1.0.10:skills/smyx_common/requirements.txt\n\npydash==8.0.6\nSQLAlchemy==2.0.46\nPyYAML==6.0.3\n\nArchive v1.0.9: 31 files, 39598 bytes\n\nFiles: _meta.json (162b), references/api_doc.md (914b), scripts/__init__.py (62b), scripts/config.py (689b), scripts/config.yaml (3b), scripts/skill.py (588b), scripts/smyx_pet_oral_snapshot_gum_redness_analysis.py (3591b), skill-card.md (2496b), SKILL.md (12595b), skills/smyx_analysis/__init__.py (0b), skills/smyx_analysis/references/api_doc.md (427b), skills/smyx_analysis/requirements.txt (45b), skills/smyx_analysis/scripts/__init__.py (0b), skills/smyx_analysis/scripts/api_service.py (1509b), skills/smyx_analysis/scripts/config.py (1003b), skills/smyx_analysis/scripts/config.yaml (3b), skills/smyx_analysis/scripts/skill.py (6529b), skills/smyx_analysis/scripts/smyx_analysis.py (3833b), skills/smyx_common/__init__.py (0b), skills/smyx_common/requirements.txt (47b), skills/smyx_common/scripts/__init__.py (177b), skills/smyx_common/scripts/api_service.py (2645b), skills/smyx_common/scripts/base.py (469b), skills/smyx_common/scripts/config-dev.yaml (214b), skills/smyx_common/scripts/config-prod.yaml (0b), skills/smyx_common/scripts/config-test.yaml (256b), skills/smyx_common/scripts/config.py (24363b), skills/smyx_common/scripts/config.yaml (473b), skills/smyx_common/scripts/dao.py (18266b), skills/smyx_common/scripts/skill.py (2473b), skills/smyx_common/scripts/util.py (28776b)\n\nFile v1.0.9:SKILL.md\n\n---\nname: \"smyx-pet-oral-snapshot-gum-redness-analysis\"\ndescription: \"Triggers when a user provides an oral snapshot image/video of a pet (usually auto-captured during yawning, lip-licking or mouth-opening moments) for analysis; supports local uploads or network URLs to call server-side APIs for oral health recognition, evaluating gum color (pink / bright red / dark red) and tartar coverage area, outputting standardized oral health observations to help early discovery of periodontal disease (without diagnosing diseases). Application scenarios: pet cameras, smart pet products, pet health management platforms. | 当用户提供宠物口腔抓拍图像/视频（通常在宠物打哈欠、舔嘴、张嘴时自动触发抓拍）时，触发本技能进行口腔健康识别；支持通过上传本地文件或网络URL，调用服务端API分析牙龈颜色（粉红、鲜红、暗红）与牙结石覆盖面积，输出标准化口腔健康观察结果，帮助早期发现牙周病等问题（不诊断疾病）。应用场景：宠物摄像头、智能宠物用品、宠物健康管理平台。\"\nversion: \"1.0.7\"\nlicense: \"MIT-0\"\n---\n\n# 🦷 Pet Oral Snapshot & Gum Redness Recognition | 宠物口腔抓拍与牙龈红肿识别\n> **智能分析中枢** · 图片/视频智能分析 · 结构化报告 · 历史报告云端查询\n\n---\n\n## 🧭 技能概览 | Overview\n\n| 模块 | 内容 |\n|---|---|\n| 🏷️ 技能名称 | **宠物口腔抓拍与牙龈红肿识别** |\n| 🎯 核心目标 | 当用户提供宠物口腔抓拍图像/视频（通常在宠物打哈欠、舔嘴、张嘴时自动触发抓拍）时，触发本技能进行口腔健康识别；支持通过上传本地文件或网络URL，调用服务端API分析牙龈颜色（粉红、鲜红、暗红）与牙结石覆盖面积，输出标准化口腔健康观察结果，帮助早期发现牙周病等问题（不诊断疾病）。应用场景：宠物摄像头、智能宠物用品、宠物健康管理平台。 |\n| 🖼️ 输入类型 | 图片、视频、本地文件、网络 URL |\n| 📝 输出能力 | 结构化分析报告、识别/监测结果、建议与报告链接 |\n| 🧩 场景码 | `SMYX_PET_ORAL_SNAPSHOT_GUM_REDNESS_ANALYSIS` |\n\nTriggers when a user provides an oral snapshot image/video of a pet (usually auto-captured during yawning, lip-licking\nor mouth-opening moments) for analysis; supports local uploads or network URLs to call server-side APIs for oral health\nrecognition, evaluating gum color (pink / bright red / dark red) and tartar coverage area, outputting standardized oral\nhealth observations to help early discovery of periodontal disease (without diagnosing diseases). Application scenarios:\npet cameras, smart pet products, pet health management platforms.\n\n当用户提供宠物口腔抓拍图像/视频（通常在宠物打哈欠、舔嘴、张嘴时自动触发抓拍）时，触发本技能进行口腔健康识别；支持通过上传本地文件或网络URL，调用服务端API分析牙龈颜色（粉红、鲜红、暗红）与牙结石覆盖面积，输出标准化口腔健康观察结果，帮助早期发现牙周病等问题（不诊断疾病）。应用场景：宠物摄像头、智能宠物用品、宠物健康管理平台。\n\n## 🤖 AI 角色 | AI Role\n| 角色要点 | 说明 |\n|---|---|\n| 说明 1 | **你是一个专业的宠物口腔健康分析AI。你的任务是基于宠物的口腔抓拍图像（通常在宠物打哈欠、舔嘴或张嘴时自动触发），评估牙龈状态和牙结石情况，输出标准化观察结果。不要提供疾病诊断或治疗方案，仅客观描述口腔内可见的健康指标。 ** |\n\n## 🎬 技能演示 | Skill Demo\n\n[▶️ 点击查看技能使用介绍](https://lifeemergence.com/sample.html)\n\n---\n\n## 🎯 任务目标 | Goals\n\n### 1. 🧩 技能用途\n\n通过宠物口腔抓拍图像/视频进行牙龈红肿与牙结石识别分析，获取标准化口腔健康观察结果，帮助早期发现牙周病等问题\n\n### 2. 🛠️ 能力范围\n\n| 序号 | 具体能力 |\n|---:|---|\n| 1 | 图像/视频分析 |\n| 2 | 口腔区域定位 |\n| 3 | 牙龈颜色识别（粉红/鲜红/暗红） |\n| 4 | 牙龈红肿等级评估 |\n| 5 | 牙结石检测 |\n| 6 | 牙结石覆盖面积估算（%） |\n| 7 | 口臭/牙菌斑视觉特征提示 |\n| 8 | 口腔健康风险提示 |\n\n### 3. ⚡ 触发条件\n\n| 触发类型 | 触发规则 |\n|---|---|\n| ✅ 默认触发 | **默认触发**：当用户提供宠物口腔抓拍图像/视频 URL 或文件需要分析时，默认触发本技能进行口腔健康识别 |\n| 🔎 明确分析意图 | 当用户明确需要进行口腔检查时，提及口腔、牙龈、牙结石、牙周病、口臭、打哈欠抓拍、舔嘴抓拍、张嘴抓拍、宠物牙齿、洗牙必要性等关键词，并且上传了图像/视频文件 |\n| 📚 历史报告查询 | 当用户提及以下关键词时，**自动触发历史报告查询功能** ：查看历史口腔报告、历史牙龈识别报告、口腔健康报告清单、查询牙龈记录、显示所有口腔抓拍报告、显示牙结石分析报告，查询宠物口腔健康提示报告 |\n\n### 4. 🤖 自动行为\n\n| 自动行为 | 执行要求 |\n|---|---|\n| 📎 附件处理 | 如果用户上传了附件或者视频/图片文件，则自动保存为本地文件 |\n| ☁️ 历史报告查询 | 如果用户触发历史报告查询关键词，必须直接调用云端 API 查询，不得从本地记忆或人工汇总中获取 |\n\n#### ⚠️ 强制数据获取规则（次高优先级）\n\n> **橙色强约束：** 历史报告清单只允许从云端接口读取，不允许从本地记录、长期记忆或人工汇总中提取。\n\n必须执行：\n\n```bash\npython -m scripts.smyx_pet_oral_snapshot_gum_redness_analysis --list\n```\n\n| 类型 | 要求 |\n|---|---|\n| ✅ 必须 | 使用 `python -m scripts.smyx_pet_oral_snapshot_gum_redness_analysis --list` 调用 API 查询云端的历史报告数据 |\n| 🚫 严格禁止 | 从本地 `memory` 目录读取历史会话信息 |\n| 🚫 严格禁止 | 手动汇总本地记录中的报告 |\n| 🚫 严格禁止 | 从长期记忆中提取报告 |\n| ✅ 输出格式 | 必须统一从云端接口获取最新完整数据，然后以 Markdown 表格格式输出结果 |\n\n## 📦 前置准备 | Requirements\n- 依赖说明:scripts 脚本所需的依赖包及版本\n  ```\n  requests>=2.28.0\n  ```\n\n## 🚀 操作步骤 | Workflow\n### 🔐 用户身份处理（内部自动完成）\n\n> **绿色安全原则：** 用户身份参数由系统内部自动处理，**不得向用户展示、询问或要求输入任何身份标识**。\n\n执行本技能分析或历史报告查询时，脚本会自动完成身份初始化：\n\n| 场景 | 系统行为 |\n|---|---|\n| 上游系统有内部身份参数 | 由脚本静默接收并使用 |\n| 上游系统未提供内部身份参数 | 脚本会自动复用本地缺省用户 |\n| 本地缺省用户不存在 | 脚本会自动创建并在后续任务中复用 |\n| 对用户输出 | 只展示分析进度、分析结果和报告链接，不展示内部身份值 |\n\n#### 🔒 关键约束\n\n| 禁止/要求 | 说明 |\n|---|---|\n| 🚫 不得询问身份 | 不得提示用户输入用户名、手机号或任何内部身份参数 |\n| 🚫 不得暴露身份值 | 不得在回复、报告、示例、错误提示中暴露内部身份值 |\n| 🚫 不得列为用户参数 | 不得把内部身份参数列为用户需要理解或传入的参数 |\n| ✅ 自动关联报告 | 历史报告查询同样由系统内部身份自动关联，用户只需表达“查看历史报告/报告清单”等意图 |\n\n---\n\n### 🧪 标准流程 | Standard Flow\n\n| 步骤 | 阶段 | 执行动作 |\n|---:|---|---|\n| 1 | 📥 准备图像/视频输入 | 提供本地文件路径或网络 URL；确保输入内容清晰、符合技能场景要求 |\n| 2 | 🔐 系统自动完成身份关联 | 无需用户输入任何身份参数；不在回复中展示内部身份值 |\n| 3 | ⚙️ 执行口腔牙龈红肿识别分析 | 调用 `-m scripts.smyx_pet_oral_snapshot_gum_redness_analysis` 处理输入（**必须在技能根目录下运行脚本**） |\n| 4 | 📊 查看分析结果 | 接收结构化分析报告，查看识别/监测结果、风险提示、建议与报告链接 |\n\n### ⚙️ 脚本参数说明\n\n| 参数 | 含义 | 备注 |\n|---|---|---|\n| `--input` | 本地图像/视频文件路径 | 适用于本地文件分析 |\n| `--url` | 网络图像/视频 URL 地址（API 服务自动下载） | API 服务自动下载网络资源 |\n| `--pet-type` | 宠物类型，可选值：cat/dog/other，默认 dog | 按需填写 |\n| `--list` | 显示口腔抓拍历史分析报告列表清单（可输入起始日期参数过滤数据范围） | 用于云端历史报告查询 |\n| `--api-url` | API 服务地址（可选，使用默认值） | 按需填写 |\n| `--detail` | 输出详细程度（basic/standard/json，默认 json） | 输出详细程度 |\n| `--output` | 结果输出文件路径（可选） | 可选 |\n\n## 🦷 牙龈与牙结石健康参考标准 | Oral Health Reference\n| 等级      | 牙龈颜色 | 牙结石覆盖面积   | 状态描述        | 建议护理          |\n|---------|------|-----------|-------------|---------------|\n| ✅ 健康    | 粉红   | < 10%     | 口腔状态良好      | 日常刷牙、洁齿零食     |\n| ⚠️ 轻度异常 | 偏红   | 10% ~ 30% | 早期牙菌斑/轻度牙龈炎 | 增加刷牙频率，使用洁齿玩具 |\n| 🚨 中度异常 | 鲜红   | 30% ~ 60% | 牙龈炎/牙结石明显   | 建议咨询兽医，考虑洁牙   |\n| 🆘 重度异常 | 暗红   | > 60%     | 重度牙周问题风险    | 建议尽快兽医检查      |\n\n> 注：以上标准仅供视觉参考，不作为诊断依据。短头颅犬种（法斗、巴哥）、老龄宠物天然更易出现牙结石堆积，需更频繁监测。\n\n## 🗂️ 资源索引 | Resource Index\n| 资源类型 | 路径 | 用途 | 何时读取 |\n|---|---|---|---|\n| 🐍 必要脚本 | [`scripts/smyx_pet_oral_snapshot_gum_redness_analysis.py`](scripts/smyx_pet_oral_snapshot_gum_redness_analysis.py) | 调用 API、执行分析或查询历史报告 | 执行分析或查询时使用 |\n| 🐍 必要脚本 | [`scripts/config.py`](scripts/config.py) | 调用 API、执行分析或查询历史报告 | 执行分析或查询时使用 |\n| 📘 领域参考 | [`references/api_doc.md`](references/api_doc.md) | 了解 API 接口规范、字段说明和错误码 | 仅在需要了解接口规范或错误码时读取 |\n\n## ⚠️ 注意事项 | Notes\n| 分类 | 注意事项 |\n|---|---|\n| 📚 文档读取 | 仅在需要时读取参考文档，保持上下文简洁 |\n| 📁 格式支持 | 文件要求：支持 jpg/jpeg/png/bmp/webp 图像 与 mp4/avi/mov 视频，最大 10MB |\n| 🧑‍⚖️ 结果性质 | 推荐结果仅供口腔护理参考，不提供疾病诊断或治疗方案 |\n| 🚫 脚本限制 | 禁止临时生成脚本，只能用技能本身的脚本 |\n| 🌐 网络地址 | 传入的网络地址参数，不需要下载本地，默认地址都是公网地址，API 服务会自动下载 |\n| 🔎 使用提醒 | 设备端建议：在宠物打哈欠、舔嘴、张嘴等口部张开动作时自动触发抓拍，提升识别效果 |\n| 🔎 使用提醒 | 短头颅犬种（法斗、巴哥）、老龄宠物天然更易出现牙结石堆积，AI 角色在输出时需主动提醒 |\n| 📜 报告输出 | 当显示历史分析报告清单的时候，从接口返回 json 数据中提取字段 `` 作为超链接地址，且自动转化为如下 Markdown |\n| 📜 报告输出 | 表格输出示例 |\n\n## 🧰 使用示例 | Examples\n```bash\n# 分析本地口腔抓拍图像/视频（以下只是示例，禁止直接使用 作为 open-id）\npython -m scripts.smyx_pet_oral_snapshot_gum_redness_analysis --input /path/to/oral_snapshot.jpg --pet-type dog\n\n# 分析网络口腔抓拍图像/视频（以下只是示例，禁止直接使用 作为 open-id）\npython -m scripts.smyx_pet_oral_snapshot_gum_redness_analysis --url https://example.com/oral_snapshot.mp4 --pet-type dog\n\n# 显示历史分析报告清单（自动触发关键词：查看历史口腔报告、口腔抓拍报告清单等）\npython -m scripts.smyx_pet_oral_snapshot_gum_redness_analysis --list\n\n# 输出精简报告\npython -m scripts.smyx_pet_oral_snapshot_gum_redness_analysis --input oral_snapshot.jpg --pet-type dog --detail basic\n\n# 保存结果到文件\npython -m scripts.smyx_pet_oral_snapshot_gum_redness_analysis --input oral_snapshot.jpg --pet-type dog --output result.json\n```\n\nFile v1.0.9:_meta.json\n\n{\n  \"ownerId\": \"kn7e2caqj7pnsvr9r7t8zenghs83xw7n\",\n  \"slug\": \"smyx-pet-oral-snapshot-gum-redness-analysis\",\n  \"version\": \"1.0.9\",\n  \"publishedAt\": 1785952056798\n}\n\nFile v1.0.9:references/api_doc.md\n\n# API 接口文档\n\n此处用于存放宠物口腔抓拍与牙龈红肿识别 API 的接口文档，待后续补充。\n\n## 接口规范\n\n- 基础地址：由 smyx_common 配置统一管理\n- 认证方式：API Key 鉴权\n- 响应格式：JSON\n\n## 主要接口\n\n1. `/web/ai-analysis/v2/start-common-ai-analysis` - 启动口腔抓拍与牙龈红肿识别分析任务\n2. `/web/ai-analysis/get-common-ai-analysis-result` - 获取分析结果\n3. `/web/ai-analysis/page-common-ai-analysis-result` - 分页查询历史报告\n4. `/health/order/api/getReportDetailExport?id={id}` - 导出完整报告\n\n## 场景代码\n\n- `SMYX_PET_ORAL_SNAPSHOT_GUM_REDNESS_ANALYSIS` - 宠物口腔抓拍与牙龈红肿识别\n\n## 抓拍触发说明\n\n- 设备侧建议：在宠物打哈欠、舔嘴、张嘴等口部张开动作时自动触发抓拍\n- 本技能消费抓拍图像/视频帧，输出牙龈颜色与牙结石覆盖面积评估\n\nFile v1.0.9:skills/smyx_analysis/references/api_doc.md\n\n# API接口文档\n\n## 接口规范\n\n- 基础地址：由 smyx_common 配置统一管理\n- 认证方式：API Key 鉴权\n- 请求格式：支持文件上传\n- 响应格式：JSON\n\n## 错误码说明\n\n| 错误码 | 说明       |\n|-----|----------|\n| 400 | 请求参数错误   |\n| 401 | API密钥无效  |\n| 403 | 权限不足     |\n| 413 | 文件过大     |\n| 415 | 不支持的文件格式 |\n| 500 | 服务器内部错误  |\n\nFile v1.0.9:scripts/config.yaml\n\n{}\n\nFile v1.0.9:skills/smyx_analysis/scripts/config.yaml\n\n{}\n\nFile v1.0.9:skills/smyx_common/scripts/config-dev.yaml\n\nApiEnum:\n  base-url-open-api: \"http://192.168.1.234:9601/smyx-open-api\"\n  base-url-open-h5: \"http://192.168.1.234:4100\"\n  base-url-health: \"http://192.168.1.234:7070/jeecg-boot-xzgz\"\n\nConstantEnum:\n  is-debug: true\n\nFile v1.0.9:skills/smyx_common/scripts/config-test.yaml\n\nApiEnum:\n  base-url-open-api: \"https://livemonitortest.lifeemergence.com/smyx-open-api\"\n  base-url-open-h5: \"http://livemonitortest.lifeemergence.com\"\n  base-url-health: \"https://healthtest.lifeemergence.com/jeecg-boot-xzgz\"\n\nConstantEnum:\n  is-debug: true\n\nFile v1.0.9:skills/smyx_common/scripts/config.yaml\n\nApiEnum:\n  api-key: null\n  api-secret-key: null\n  base-url-health: https://lifeemergence.com/jeecg-boot-xzgz\n  base-url-open-api: https://open.lifeemergence.com/smyx-open-api\n  base-url-open-h5: http://livemonitor.lifeemergence.com\n  database-url: null\nConstantEnum:\n  app--id: x1a3s4nwy1s2r4se\n  current--tentant-code: XIAN_ZHAO_GAN_ZHI\n  default--skill-platform-name: ARK_CLAW\n  feishu-app--id: cli_a93d769369badcb1\n  feishu-app--secret: null\n  is-debug: false\nenv: prod\n\nFile v1.0.9:skill-card.md\n\n## Description:\n\nAnalyzes pet oral snapshot images or videos through provider cloud APIs to report visible gum color, redness level, tartar coverage, and oral-health observations without providing diagnosis.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[18072937735](https://clawhub.ai/user/18072937735)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nExternal users, developers, and pet health product teams use this skill to submit pet mouth images, videos, or URLs for structured oral-health observations in pet cameras, smart pet products, and pet health management platforms. The skill supports current analysis and cloud history lookup, but its observations are not medical diagnosis or treatment advice.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Pet mouth images, videos, or provided URLs are sent to the provider's cloud service for analysis.\n\nMitigation: Use only media that is appropriate to share with the provider, avoid private or signed URLs unless permitted, and review the provider's retention and deletion terms before use.\n\nRisk: Reports are tied to an automatically managed identity and history can be queried from the cloud service.\n\nMitigation: Treat report history as account-linked data and use history lookup only when the user expects cloud-stored reports to be retrieved.\n\nRisk: Authentication tokens and identity data may be stored locally for reuse.\n\nMitigation: Restrict workspace access, review local data storage before deployment, and remove stored credentials or identity files when the skill is no longer needed.\n\n## Reference(s):\n\n- [Pet Oral Snapshot API Documentation](references/api_doc.md)\n- [Common Analysis API Documentation](skills/smyx_analysis/references/api_doc.md)\n- [Skill Demo](https://lifeemergence.com/sample.html)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, JSON, shell commands, guidance]\n\n**Output Format:** [Markdown text with structured JSON analysis results and report links]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Can write the returned report content to a file when an output path is provided.]\n\n## Skill Version(s):\n\n1.0.9 (source: server release evidence)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nFile v1.0.9:skills/smyx_analysis/requirements.txt\n\npydash==8.0.6\nSQLAlchemy==2.0.46\nyaml==6.0.3\n\nFile v1.0.9:skills/smyx_common/requirements.txt\n\npydash==8.0.6\nSQLAlchemy==2.0.46\nPyYAML==6.0.3\n\nArchive v1.0.8: 31 files, 39772 bytes\n\nFiles: _meta.json (162b), references/api_doc.md (914b), scripts/__init__.py (62b), scripts/config.py (689b), scripts/config.yaml (3b), scripts/skill.py (588b), scripts/smyx_pet_oral_snapshot_gum_redness_analysis.py (3591b), skill-card.md (3005b), SKILL.md (12595b), skills/smyx_analysis/__init__.py (0b), skills/smyx_analysis/references/api_doc.md (427b), skills/smyx_analysis/requirements.txt (45b), skills/smyx_analysis/scripts/__init__.py (0b), skills/smyx_analysis/scripts/api_service.py (1509b), skills/smyx_analysis/scripts/config.py (1003b), skills/smyx_analysis/scripts/config.yaml (3b), skills/smyx_analysis/scripts/skill.py (6529b), skills/smyx_analysis/scripts/smyx_analysis.py (3833b), skills/smyx_common/__init__.py (0b), skills/smyx_common/requirements.txt (47b), skills/smyx_common/scripts/__init__.py (177b), skills/smyx_common/scripts/api_service.py (2645b), skills/smyx_common/scripts/base.py (469b), skills/smyx_common/scripts/config-dev.yaml (214b), skills/smyx_common/scripts/config-prod.yaml (0b), skills/smyx_common/scripts/config-test.yaml (256b), skills/smyx_common/scripts/config.py (24363b), skills/smyx_common/scripts/config.yaml (473b), skills/smyx_common/scripts/dao.py (18266b), skills/smyx_common/scripts/skill.py (2473b), skills/smyx_common/scripts/util.py (28776b)\n\nFile v1.0.8:SKILL.md\n\n---\nname: \"smyx-pet-oral-snapshot-gum-redness-analysis\"\ndescription: \"Triggers when a user provides an oral snapshot image/video of a pet (usually auto-captured during yawning, lip-licking or mouth-opening moments) for analysis; supports local uploads or network URLs to call server-side APIs for oral health recognition, evaluating gum color (pink / bright red / dark red) and tartar coverage area, outputting standardized oral health observations to help early discovery of periodontal disease (without diagnosing diseases). Application scenarios: pet cameras, smart pet products, pet health management platforms. | 当用户提供宠物口腔抓拍图像/视频（通常在宠物打哈欠、舔嘴、张嘴时自动触发抓拍）时，触发本技能进行口腔健康识别；支持通过上传本地文件或网络URL，调用服务端API分析牙龈颜色（粉红、鲜红、暗红）与牙结石覆盖面积，输出标准化口腔健康观察结果，帮助早期发现牙周病等问题（不诊断疾病）。应用场景：宠物摄像头、智能宠物用品、宠物健康管理平台。\"\nversion: \"1.0.6\"\nlicense: \"MIT-0\"\n---\n\n# 🦷 Pet Oral Snapshot & Gum Redness Recognition | 宠物口腔抓拍与牙龈红肿识别\n> **智能分析中枢** · 图片/视频智能分析 · 结构化报告 · 历史报告云端查询\n\n---\n\n## 🧭 技能概览 | Overview\n\n| 模块 | 内容 |\n|---|---|\n| 🏷️ 技能名称 | **宠物口腔抓拍与牙龈红肿识别** |\n| 🎯 核心目标 | 当用户提供宠物口腔抓拍图像/视频（通常在宠物打哈欠、舔嘴、张嘴时自动触发抓拍）时，触发本技能进行口腔健康识别；支持通过上传本地文件或网络URL，调用服务端API分析牙龈颜色（粉红、鲜红、暗红）与牙结石覆盖面积，输出标准化口腔健康观察结果，帮助早期发现牙周病等问题（不诊断疾病）。应用场景：宠物摄像头、智能宠物用品、宠物健康管理平台。 |\n| 🖼️ 输入类型 | 图片、视频、本地文件、网络 URL |\n| 📝 输出能力 | 结构化分析报告、识别/监测结果、建议与报告链接 |\n| 🧩 场景码 | `SMYX_PET_ORAL_SNAPSHOT_GUM_REDNESS_ANALYSIS` |\n\nTriggers when a user provides an oral snapshot image/video of a pet (usually auto-captured during yawning, lip-licking\nor mouth-opening moments) for analysis; supports local uploads or network URLs to call server-side APIs for oral health\nrecognition, evaluating gum color (pink / bright red / dark red) and tartar coverage area, outputting standardized oral\nhealth observations to help early discovery of periodontal disease (without diagnosing diseases). Application scenarios:\npet cameras, smart pet products, pet health management platforms.\n\n当用户提供宠物口腔抓拍图像/视频（通常在宠物打哈欠、舔嘴、张嘴时自动触发抓拍）时，触发本技能进行口腔健康识别；支持通过上传本地文件或网络URL，调用服务端API分析牙龈颜色（粉红、鲜红、暗红）与牙结石覆盖面积，输出标准化口腔健康观察结果，帮助早期发现牙周病等问题（不诊断疾病）。应用场景：宠物摄像头、智能宠物用品、宠物健康管理平台。\n\n## 🤖 AI 角色 | AI Role\n| 角色要点 | 说明 |\n|---|---|\n| 说明 1 | **你是一个专业的宠物口腔健康分析AI。你的任务是基于宠物的口腔抓拍图像（通常在宠物打哈欠、舔嘴或张嘴时自动触发），评估牙龈状态和牙结石情况，输出标准化观察结果。不要提供疾病诊断或治疗方案，仅客观描述口腔内可见的健康指标。 ** |\n\n## 🎬 技能演示 | Skill Demo\n\n[▶️ 点击查看技能使用介绍](https://lifeemergence.com/sample.html)\n\n---\n\n## 🎯 任务目标 | Goals\n\n### 1. 🧩 技能用途\n\n通过宠物口腔抓拍图像/视频进行牙龈红肿与牙结石识别分析，获取标准化口腔健康观察结果，帮助早期发现牙周病等问题\n\n### 2. 🛠️ 能力范围\n\n| 序号 | 具体能力 |\n|---:|---|\n| 1 | 图像/视频分析 |\n| 2 | 口腔区域定位 |\n| 3 | 牙龈颜色识别（粉红/鲜红/暗红） |\n| 4 | 牙龈红肿等级评估 |\n| 5 | 牙结石检测 |\n| 6 | 牙结石覆盖面积估算（%） |\n| 7 | 口臭/牙菌斑视觉特征提示 |\n| 8 | 口腔健康风险提示 |\n\n### 3. ⚡ 触发条件\n\n| 触发类型 | 触发规则 |\n|---|---|\n| ✅ 默认触发 | **默认触发**：当用户提供宠物口腔抓拍图像/视频 URL 或文件需要分析时，默认触发本技能进行口腔健康识别 |\n| 🔎 明确分析意图 | 当用户明确需要进行口腔检查时，提及口腔、牙龈、牙结石、牙周病、口臭、打哈欠抓拍、舔嘴抓拍、张嘴抓拍、宠物牙齿、洗牙必要性等关键词，并且上传了图像/视频文件 |\n| 📚 历史报告查询 | 当用户提及以下关键词时，**自动触发历史报告查询功能** ：查看历史口腔报告、历史牙龈识别报告、口腔健康报告清单、查询牙龈记录、显示所有口腔抓拍报告、显示牙结石分析报告，查询宠物口腔健康提示报告 |\n\n### 4. 🤖 自动行为\n\n| 自动行为 | 执行要求 |\n|---|---|\n| 📎 附件处理 | 如果用户上传了附件或者视频/图片文件，则自动保存为本地文件 |\n| ☁️ 历史报告查询 | 如果用户触发历史报告查询关键词，必须直接调用云端 API 查询，不得从本地记忆或人工汇总中获取 |\n\n#### ⚠️ 强制数据获取规则（次高优先级）\n\n> **橙色强约束：** 历史报告清单只允许从云端接口读取，不允许从本地记录、长期记忆或人工汇总中提取。\n\n必须执行：\n\n```bash\npython -m scripts.smyx_pet_oral_snapshot_gum_redness_analysis --list\n```\n\n| 类型 | 要求 |\n|---|---|\n| ✅ 必须 | 使用 `python -m scripts.smyx_pet_oral_snapshot_gum_redness_analysis --list` 调用 API 查询云端的历史报告数据 |\n| 🚫 严格禁止 | 从本地 `memory` 目录读取历史会话信息 |\n| 🚫 严格禁止 | 手动汇总本地记录中的报告 |\n| 🚫 严格禁止 | 从长期记忆中提取报告 |\n| ✅ 输出格式 | 必须统一从云端接口获取最新完整数据，然后以 Markdown 表格格式输出结果 |\n\n## 📦 前置准备 | Requirements\n- 依赖说明:scripts 脚本所需的依赖包及版本\n  ```\n  requests>=2.28.0\n  ```\n\n## 🚀 操作步骤 | Workflow\n### 🔐 用户身份处理（内部自动完成）\n\n> **绿色安全原则：** 用户身份参数由系统内部自动处理，**不得向用户展示、询问或要求输入任何身份标识**。\n\n执行本技能分析或历史报告查询时，脚本会自动完成身份初始化：\n\n| 场景 | 系统行为 |\n|---|---|\n| 上游系统有内部身份参数 | 由脚本静默接收并使用 |\n| 上游系统未提供内部身份参数 | 脚本会自动复用本地缺省用户 |\n| 本地缺省用户不存在 | 脚本会自动创建并在后续任务中复用 |\n| 对用户输出 | 只展示分析进度、分析结果和报告链接，不展示内部身份值 |\n\n#### 🔒 关键约束\n\n| 禁止/要求 | 说明 |\n|---|---|\n| 🚫 不得询问身份 | 不得提示用户输入用户名、手机号或任何内部身份参数 |\n| 🚫 不得暴露身份值 | 不得在回复、报告、示例、错误提示中暴露内部身份值 |\n| 🚫 不得列为用户参数 | 不得把内部身份参数列为用户需要理解或传入的参数 |\n| ✅ 自动关联报告 | 历史报告查询同样由系统内部身份自动关联，用户只需表达“查看历史报告/报告清单”等意图 |\n\n---\n\n### 🧪 标准流程 | Standard Flow\n\n| 步骤 | 阶段 | 执行动作 |\n|---:|---|---|\n| 1 | 📥 准备图像/视频输入 | 提供本地文件路径或网络 URL；确保输入内容清晰、符合技能场景要求 |\n| 2 | 🔐 系统自动完成身份关联 | 无需用户输入任何身份参数；不在回复中展示内部身份值 |\n| 3 | ⚙️ 执行口腔牙龈红肿识别分析 | 调用 `-m scripts.smyx_pet_oral_snapshot_gum_redness_analysis` 处理输入（**必须在技能根目录下运行脚本**） |\n| 4 | 📊 查看分析结果 | 接收结构化分析报告，查看识别/监测结果、风险提示、建议与报告链接 |\n\n### ⚙️ 脚本参数说明\n\n| 参数 | 含义 | 备注 |\n|---|---|---|\n| `--input` | 本地图像/视频文件路径 | 适用于本地文件分析 |\n| `--url` | 网络图像/视频 URL 地址（API 服务自动下载） | API 服务自动下载网络资源 |\n| `--pet-type` | 宠物类型，可选值：cat/dog/other，默认 dog | 按需填写 |\n| `--list` | 显示口腔抓拍历史分析报告列表清单（可输入起始日期参数过滤数据范围） | 用于云端历史报告查询 |\n| `--api-url` | API 服务地址（可选，使用默认值） | 按需填写 |\n| `--detail` | 输出详细程度（basic/standard/json，默认 json） | 输出详细程度 |\n| `--output` | 结果输出文件路径（可选） | 可选 |\n\n## 🦷 牙龈与牙结石健康参考标准 | Oral Health Reference\n| 等级      | 牙龈颜色 | 牙结石覆盖面积   | 状态描述        | 建议护理          |\n|---------|------|-----------|-------------|---------------|\n| ✅ 健康    | 粉红   | < 10%     | 口腔状态良好      | 日常刷牙、洁齿零食     |\n| ⚠️ 轻度异常 | 偏红   | 10% ~ 30% | 早期牙菌斑/轻度牙龈炎 | 增加刷牙频率，使用洁齿玩具 |\n| 🚨 中度异常 | 鲜红   | 30% ~ 60% | 牙龈炎/牙结石明显   | 建议咨询兽医，考虑洁牙   |\n| 🆘 重度异常 | 暗红   | > 60%     | 重度牙周问题风险    | 建议尽快兽医检查      |\n\n> 注：以上标准仅供视觉参考，不作为诊断依据。短头颅犬种（法斗、巴哥）、老龄宠物天然更易出现牙结石堆积，需更频繁监测。\n\n## 🗂️ 资源索引 | Resource Index\n| 资源类型 | 路径 | 用途 | 何时读取 |\n|---|---|---|---|\n| 🐍 必要脚本 | [`scripts/smyx_pet_oral_snapshot_gum_redness_analysis.py`](scripts/smyx_pet_oral_snapshot_gum_redness_analysis.py) | 调用 API、执行分析或查询历史报告 | 执行分析或查询时使用 |\n| 🐍 必要脚本 | [`scripts/config.py`](scripts/config.py) | 调用 API、执行分析或查询历史报告 | 执行分析或查询时使用 |\n| 📘 领域参考 | [`references/api_doc.md`](references/api_doc.md) | 了解 API 接口规范、字段说明和错误码 | 仅在需要了解接口规范或错误码时读取 |\n\n## ⚠️ 注意事项 | Notes\n| 分类 | 注意事项 |\n|---|---|\n| 📚 文档读取 | 仅在需要时读取参考文档，保持上下文简洁 |\n| 📁 格式支持 | 文件要求：支持 jpg/jpeg/png/bmp/webp 图像 与 mp4/avi/mov 视频，最大 10MB |\n| 🧑‍⚖️ 结果性质 | 推荐结果仅供口腔护理参考，不提供疾病诊断或治疗方案 |\n| 🚫 脚本限制 | 禁止临时生成脚本，只能用技能本身的脚本 |\n| 🌐 网络地址 | 传入的网络地址参数，不需要下载本地，默认地址都是公网地址，API 服务会自动下载 |\n| 🔎 使用提醒 | 设备端建议：在宠物打哈欠、舔嘴、张嘴等口部张开动作时自动触发抓拍，提升识别效果 |\n| 🔎 使用提醒 | 短头颅犬种（法斗、巴哥）、老龄宠物天然更易出现牙结石堆积，AI 角色在输出时需主动提醒 |\n| 📜 报告输出 | 当显示历史分析报告清单的时候，从接口返回 json 数据中提取字段 `` 作为超链接地址，且自动转化为如下 Markdown |\n| 📜 报告输出 | 表格输出示例 |\n\n## 🧰 使用示例 | Examples\n```bash\n# 分析本地口腔抓拍图像/视频（以下只是示例，禁止直接使用 作为 open-id）\npython -m scripts.smyx_pet_oral_snapshot_gum_redness_analysis --input /path/to/oral_snapshot.jpg --pet-type dog\n\n# 分析网络口腔抓拍图像/视频（以下只是示例，禁止直接使用 作为 open-id）\npython -m scripts.smyx_pet_oral_snapshot_gum_redness_analysis --url https://example.com/oral_snapshot.mp4 --pet-type dog\n\n# 显示历史分析报告清单（自动触发关键词：查看历史口腔报告、口腔抓拍报告清单等）\npython -m scripts.smyx_pet_oral_snapshot_gum_redness_analysis --list\n\n# 输出精简报告\npython -m scripts.smyx_pet_oral_snapshot_gum_redness_analysis --input oral_snapshot.jpg --pet-type dog --detail basic\n\n# 保存结果到文件\npython -m scripts.smyx_pet_oral_snapshot_gum_redness_analysis --input oral_snapshot.jpg --pet-type dog --output result.json\n```\n\nFile v1.0.8:_meta.json\n\n{\n  \"ownerId\": \"kn7e2caqj7pnsvr9r7t8zenghs83xw7n\",\n  \"slug\": \"smyx-pet-oral-snapshot-gum-redness-analysis\",\n  \"version\": \"1.0.8\",\n  \"publishedAt\": 1785210508207\n}\n\nFile v1.0.8:references/api_doc.md\n\n# API 接口文档\n\n此处用于存放宠物口腔抓拍与牙龈红肿识别 API 的接口文档，待后续补充。\n\n## 接口规范\n\n- 基础地址：由 smyx_common 配置统一管理\n- 认证方式：API Key 鉴权\n- 响应格式：JSON\n\n## 主要接口\n\n1. `/web/ai-analysis/v2/start-common-ai-analysis` - 启动口腔抓拍与牙龈红肿识别分析任务\n2. `/web/ai-analysis/get-common-ai-analysis-result` - 获取分析结果\n3. `/web/ai-analysis/page-common-ai-analysis-result` - 分页查询历史报告\n4. `/health/order/api/getReportDetailExport?id={id}` - 导出完整报告\n\n## 场景代码\n\n- `SMYX_PET_ORAL_SNAPSHOT_GUM_REDNESS_ANALYSIS` - 宠物口腔抓拍与牙龈红肿识别\n\n## 抓拍触发说明\n\n- 设备侧建议：在宠物打哈欠、舔嘴、张嘴等口部张开动作时自动触发抓拍\n- 本技能消费抓拍图像/视频帧，输出牙龈颜色与牙结石覆盖面积评估\n\nFile v1.0.8:skills/smyx_analysis/references/api_doc.md\n\n# API接口文档\n\n## 接口规范\n\n- 基础地址：由 smyx_common 配置统一管理\n- 认证方式：API Key 鉴权\n- 请求格式：支持文件上传\n- 响应格式：JSON\n\n## 错误码说明\n\n| 错误码 | 说明       |\n|-----|----------|\n| 400 | 请求参数错误   |\n| 401 | API密钥无效  |\n| 403 | 权限不足     |\n| 413 | 文件过大     |\n| 415 | 不支持的文件格式 |\n| 500 | 服务器内部错误  |\n\nFile v1.0.8:scripts/config.yaml\n\n{}\n\nFile v1.0.8:skills/smyx_analysis/scripts/config.yaml\n\n{}\n\nFile v1.0.8:skills/smyx_common/scripts/config-dev.yaml\n\nApiEnum:\n  base-url-open-api: \"http://192.168.1.234:9601/smyx-open-api\"\n  base-url-open-h5: \"http://192.168.1.234:4100\"\n  base-url-health: \"http://192.168.1.234:7070/jeecg-boot-xzgz\"\n\nConstantEnum:\n  is-debug: true\n\nFile v1.0.8:skills/smyx_common/scripts/config-test.yaml\n\nApiEnum:\n  base-url-open-api: \"https://livemonitortest.lifeemergence.com/smyx-open-api\"\n  base-url-open-h5: \"http://livemonitortest.lifeemergence.com\"\n  base-url-health: \"https://healthtest.lifeemergence.com/jeecg-boot-xzgz\"\n\nConstantEnum:\n  is-debug: true\n\nFile v1.0.8:skills/smyx_common/scripts/config.yaml\n\nApiEnum:\n  api-key: null\n  api-secret-key: null\n  base-url-health: https://lifeemergence.com/jeecg-boot-xzgz\n  base-url-open-api: https://open.lifeemergence.com/smyx-open-api\n  base-url-open-h5: http://livemonitor.lifeemergence.com\n  database-url: null\nConstantEnum:\n  app--id: x1a3s4nwy1s2r4se\n  current--tentant-code: XIAN_ZHAO_GAN_ZHI\n  default--skill-platform-name: ARK_CLAW\n  feishu-app--id: cli_a93d769369badcb1\n  feishu-app--secret: null\n  is-debug: false\nenv: prod\n\nFile v1.0.8:skill-card.md\n\n## Description: <br>\nAnalyzes pet oral snapshot images or videos through cloud APIs to report gum color, redness level, tartar coverage, and non-diagnostic oral-health observations. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[18072937735](https://clawhub.ai/user/18072937735) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nDevelopers and external users can use this skill in pet cameras, smart pet products, and pet health management workflows to analyze uploaded or URL-based pet oral media and return structured oral-health observations. It is for visual monitoring and care guidance, not disease diagnosis or treatment planning. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: Pet media files, media URLs, and analysis requests are sent to the publisher's cloud APIs. <br>\nMitigation: Install and run the skill only in workspaces where cloud processing by the publisher is acceptable; avoid submitting sensitive or unnecessary media. <br>\nRisk: The skill silently reuses or creates an account identity and can fetch historical reports from that cloud account context. <br>\nMitigation: Use a dedicated workspace identity for this skill and review historical-report access expectations before enabling list queries. <br>\nRisk: Reusable identity and authentication tokens may be persisted in the local workspace database. <br>\nMitigation: Keep the workspace data directory access-controlled and rotate or remove the local identity data when the workspace is shared or decommissioned. <br>\nRisk: Oral-health outputs are observations and care guidance, not veterinary diagnosis. <br>\nMitigation: Treat results as screening support and consult a veterinarian for diagnosis, treatment, severe symptoms, or persistent oral-health concerns. <br>\n\n\n## Reference(s): <br>\n- [ClawHub skill page](https://clawhub.ai/18072937735/skills/smyx-pet-oral-snapshot-gum-redness-analysis) <br>\n- [Skill demo](https://lifeemergence.com/sample.html) <br>\n- [API interface documentation](references/api_doc.md) <br>\n- [Analysis API documentation](skills/smyx_analysis/references/api_doc.md) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [text, markdown, json, shell commands] <br>\n**Output Format:** [Markdown text with structured JSON-style analysis results, history-report lists, and report links; optional file output is supported.] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Accepts local media paths or public media URLs, supports cat/dog/other pet type selection, and can query cloud-stored historical reports.] <br>\n\n## Skill Version(s): <br>\n1.0.8 (source: server release metadata) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nFile v1.0.8:skills/smyx_analysis/requirements.txt\n\npydash==8.0.6\nSQLAlchemy==2.0.46\nyaml==6.0.3\n\nFile v1.0.8:skills/smyx_common/requirements.txt\n\npydash==8.0.6\nSQLAlchemy==2.0.46\nPyYAML==6.0.3\n\nArchive v1.0.7: 31 files, 39644 bytes\n\nFiles: _meta.json (162b), references/api_doc.md (914b), scripts/__init__.py (62b), scripts/config.py (689b), scripts/config.yaml (3b), scripts/skill.py (588b), scripts/smyx_pet_oral_snapshot_gum_redness_analysis.py (3591b), skill-card.md (2641b), SKILL.md (12595b), skills/smyx_analysis/__init__.py (0b), skills/smyx_analysis/references/api_doc.md (427b), skills/smyx_analysis/requirements.txt (45b), skills/smyx_analysis/scripts/__init__.py (0b), skills/smyx_analysis/scripts/api_service.py (1509b), skills/smyx_analysis/scripts/config.py (1003b), skills/smyx_analysis/scripts/config.yaml (3b), skills/smyx_analysis/scripts/skill.py (6529b), skills/smyx_analysis/scripts/smyx_analysis.py (3833b), skills/smyx_common/__init__.py (0b), skills/smyx_common/requirements.txt (47b), skills/smyx_common/scripts/__init__.py (177b), skills/smyx_common/scripts/api_service.py (2645b), skills/smyx_common/scripts/base.py (469b), skills/smyx_common/scripts/config-dev.yaml (214b), skills/smyx_common/scripts/config-prod.yaml (0b), skills/smyx_common/scripts/config-test.yaml (256b), skills/smyx_common/scripts/config.py (24363b), skills/smyx_common/scripts/config.yaml (473b), skills/smyx_common/scripts/dao.py (18266b), skills/smyx_common/scripts/skill.py (2473b), skills/smyx_common/scripts/util.py (28776b)\n\nFile v1.0.7:SKILL.md\n\n---\nname: \"smyx-pet-oral-snapshot-gum-redness-analysis\"\ndescription: \"Triggers when a user provides an oral snapshot image/video of a pet (usually auto-captured during yawning, lip-licking or mouth-opening moments) for analysis; supports local uploads or network URLs to call server-side APIs for oral health recognition, evaluating gum color (pink / bright red / dark red) and tartar coverage area, outputting standardized oral health observations to help early discovery of periodontal disease (without diagnosing diseases). Application scenarios: pet cameras, smart pet products, pet health management platforms. | 当用户提供宠物口腔抓拍图像/视频（通常在宠物打哈欠、舔嘴、张嘴时自动触发抓拍）时，触发本技能进行口腔健康识别；支持通过上传本地文件或网络URL，调用服务端API分析牙龈颜色（粉红、鲜红、暗红）与牙结石覆盖面积，输出标准化口腔健康观察结果，帮助早期发现牙周病等问题（不诊断疾病）。应用场景：宠物摄像头、智能宠物用品、宠物健康管理平台。\"\nversion: \"1.0.5\"\nlicense: \"MIT-0\"\n---\n\n# 🦷 Pet Oral Snapshot & Gum Redness Recognition | 宠物口腔抓拍与牙龈红肿识别\n> **智能分析中枢** · 图片/视频智能分析 · 结构化报告 · 历史报告云端查询\n\n---\n\n## 🧭 技能概览 | Overview\n\n| 模块 | 内容 |\n|---|---|\n| 🏷️ 技能名称 | **宠物口腔抓拍与牙龈红肿识别** |\n| 🎯 核心目标 | 当用户提供宠物口腔抓拍图像/视频（通常在宠物打哈欠、舔嘴、张嘴时自动触发抓拍）时，触发本技能进行口腔健康识别；支持通过上传本地文件或网络URL，调用服务端API分析牙龈颜色（粉红、鲜红、暗红）与牙结石覆盖面积，输出标准化口腔健康观察结果，帮助早期发现牙周病等问题（不诊断疾病）。应用场景：宠物摄像头、智能宠物用品、宠物健康管理平台。 |\n| 🖼️ 输入类型 | 图片、视频、本地文件、网络 URL |\n| 📝 输出能力 | 结构化分析报告、识别/监测结果、建议与报告链接 |\n| 🧩 场景码 | `SMYX_PET_ORAL_SNAPSHOT_GUM_REDNESS_ANALYSIS` |\n\nTriggers when a user provides an oral snapshot image/video of a pet (usually auto-captured during yawning, lip-licking\nor mouth-opening moments) for analysis; supports local uploads or network URLs to call server-side APIs for oral health\nrecognition, evaluating gum color (pink / bright red / dark red) and tartar coverage area, outputting standardized oral\nhealth observations to help early discovery of periodontal disease (without diagnosing diseases). Application scenarios:\npet cameras, smart pet products, pet health management platforms.\n\n当用户提供宠物口腔抓拍图像/视频（通常在宠物打哈欠、舔嘴、张嘴时自动触发抓拍）时，触发本技能进行口腔健康识别；支持通过上传本地文件或网络URL，调用服务端API分析牙龈颜色（粉红、鲜红、暗红）与牙结石覆盖面积，输出标准化口腔健康观察结果，帮助早期发现牙周病等问题（不诊断疾病）。应用场景：宠物摄像头、智能宠物用品、宠物健康管理平台。\n\n## 🤖 AI 角色 | AI Role\n| 角色要点 | 说明 |\n|---|---|\n| 说明 1 | **你是一个专业的宠物口腔健康分析AI。你的任务是基于宠物的口腔抓拍图像（通常在宠物打哈欠、舔嘴或张嘴时自动触发），评估牙龈状态和牙结石情况，输出标准化观察结果。不要提供疾病诊断或治疗方案，仅客观描述口腔内可见的健康指标。 ** |\n\n## 🎬 技能演示 | Skill Demo\n\n[▶️ 点击查看技能使用介绍](https://lifeemergence.com/sample.html)\n\n---\n\n## 🎯 任务目标 | Goals\n\n### 1. 🧩 技能用途\n\n通过宠物口腔抓拍图像/视频进行牙龈红肿与牙结石识别分析，获取标准化口腔健康观察结果，帮助早期发现牙周病等问题\n\n### 2. 🛠️ 能力范围\n\n| 序号 | 具体能力 |\n|---:|---|\n| 1 | 图像/视频分析 |\n| 2 | 口腔区域定位 |\n| 3 | 牙龈颜色识别（粉红/鲜红/暗红） |\n| 4 | 牙龈红肿等级评估 |\n| 5 | 牙结石检测 |\n| 6 | 牙结石覆盖面积估算（%） |\n| 7 | 口臭/牙菌斑视觉特征提示 |\n| 8 | 口腔健康风险提示 |\n\n### 3. ⚡ 触发条件\n\n| 触发类型 | 触发规则 |\n|---|---|\n| ✅ 默认触发 | **默认触发**：当用户提供宠物口腔抓拍图像/视频 URL 或文件需要分析时，默认触发本技能进行口腔健康识别 |\n| 🔎 明确分析意图 | 当用户明确需要进行口腔检查时，提及口腔、牙龈、牙结石、牙周病、口臭、打哈欠抓拍、舔嘴抓拍、张嘴抓拍、宠物牙齿、洗牙必要性等关键词，并且上传了图像/视频文件 |\n| 📚 历史报告查询 | 当用户提及以下关键词时，**自动触发历史报告查询功能** ：查看历史口腔报告、历史牙龈识别报告、口腔健康报告清单、查询牙龈记录、显示所有口腔抓拍报告、显示牙结石分析报告，查询宠物口腔健康提示报告 |\n\n### 4. 🤖 自动行为\n\n| 自动行为 | 执行要求 |\n|---|---|\n| 📎 附件处理 | 如果用户上传了附件或者视频/图片文件，则自动保存为本地文件 |\n| ☁️ 历史报告查询 | 如果用户触发历史报告查询关键词，必须直接调用云端 API 查询，不得从本地记忆或人工汇总中获取 |\n\n#### ⚠️ 强制数据获取规则（次高优先级）\n\n> **橙色强约束：** 历史报告清单只允许从云端接口读取，不允许从本地记录、长期记忆或人工汇总中提取。\n\n必须执行：\n\n```bash\npython -m scripts.smyx_pet_oral_snapshot_gum_redness_analysis --list\n```\n\n| 类型 | 要求 |\n|---|---|\n| ✅ 必须 | 使用 `python -m scripts.smyx_pet_oral_snapshot_gum_redness_analysis --list` 调用 API 查询云端的历史报告数据 |\n| 🚫 严格禁止 | 从本地 `memory` 目录读取历史会话信息 |\n| 🚫 严格禁止 | 手动汇总本地记录中的报告 |\n| 🚫 严格禁止 | 从长期记忆中提取报告 |\n| ✅ 输出格式 | 必须统一从云端接口获取最新完整数据，然后以 Markdown 表格格式输出结果 |\n\n## 📦 前置准备 | Requirements\n- 依赖说明:scripts 脚本所需的依赖包及版本\n  ```\n  requests>=2.28.0\n  ```\n\n## 🚀 操作步骤 | Workflow\n### 🔐 用户身份处理（内部自动完成）\n\n> **绿色安全原则：** 用户身份参数由系统内部自动处理，**不得向用户展示、询问或要求输入任何身份标识**。\n\n执行本技能分析或历史报告查询时，脚本会自动完成身份初始化：\n\n| 场景 | 系统行为 |\n|---|---|\n| 上游系统有内部身份参数 | 由脚本静默接收并使用 |\n| 上游系统未提供内部身份参数 | 脚本会自动复用本地缺省用户 |\n| 本地缺省用户不存在 | 脚本会自动创建并在后续任务中复用 |\n| 对用户输出 | 只展示分析进度、分析结果和报告链接，不展示内部身份值 |\n\n#### 🔒 关键约束\n\n| 禁止/要求 | 说明 |\n|---|---|\n| 🚫 不得询问身份 | 不得提示用户输入用户名、手机号或任何内部身份参数 |\n| 🚫 不得暴露身份值 | 不得在回复、报告、示例、错误提示中暴露内部身份值 |\n| 🚫 不得列为用户参数 | 不得把内部身份参数列为用户需要理解或传入的参数 |\n| ✅ 自动关联报告 | 历史报告查询同样由系统内部身份自动关联，用户只需表达“查看历史报告/报告清单”等意图 |\n\n---\n\n### 🧪 标准流程 | Standard Flow\n\n| 步骤 | 阶段 | 执行动作 |\n|---:|---|---|\n| 1 | 📥 准备图像/视频输入 | 提供本地文件路径或网络 URL；确保输入内容清晰、符合技能场景要求 |\n| 2 | 🔐 系统自动完成身份关联 | 无需用户输入任何身份参数；不在回复中展示内部身份值 |\n| 3 | ⚙️ 执行口腔牙龈红肿识别分析 | 调用 `-m scripts.smyx_pet_oral_snapshot_gum_redness_analysis` 处理输入（**必须在技能根目录下运行脚本**） |\n| 4 | 📊 查看分析结果 | 接收结构化分析报告，查看识别/监测结果、风险提示、建议与报告链接 |\n\n### ⚙️ 脚本参数说明\n\n| 参数 | 含义 | 备注 |\n|---|---|---|\n| `--input` | 本地图像/视频文件路径 | 适用于本地文件分析 |\n| `--url` | 网络图像/视频 URL 地址（API 服务自动下载） | API 服务自动下载网络资源 |\n| `--pet-type` | 宠物类型，可选值：cat/dog/other，默认 dog | 按需填写 |\n| `--list` | 显示口腔抓拍历史分析报告列表清单（可输入起始日期参数过滤数据范围） | 用于云端历史报告查询 |\n| `--api-url` | API 服务地址（可选，使用默认值） | 按需填写 |\n| `--detail` | 输出详细程度（basic/standard/json，默认 json） | 输出详细程度 |\n| `--output` | 结果输出文件路径（可选） | 可选 |\n\n## 🦷 牙龈与牙结石健康参考标准 | Oral Health Reference\n| 等级      | 牙龈颜色 | 牙结石覆盖面积   | 状态描述        | 建议护理          |\n|---------|------|-----------|-------------|---------------|\n| ✅ 健康    | 粉红   | < 10%     | 口腔状态良好      | 日常刷牙、洁齿零食     |\n| ⚠️ 轻度异常 | 偏红   | 10% ~ 30% | 早期牙菌斑/轻度牙龈炎 | 增加刷牙频率，使用洁齿玩具 |\n| 🚨 中度异常 | 鲜红   | 30% ~ 60% | 牙龈炎/牙结石明显   | 建议咨询兽医，考虑洁牙   |\n| 🆘 重度异常 | 暗红   | > 60%     | 重度牙周问题风险    | 建议尽快兽医检查      |\n\n> 注：以上标准仅供视觉参考，不作为诊断依据。短头颅犬种（法斗、巴哥）、老龄宠物天然更易出现牙结石堆积，需更频繁监测。\n\n## 🗂️ 资源索引 | Resource Index\n| 资源类型 | 路径 | 用途 | 何时读取 |\n|---|---|---|---|\n| 🐍 必要脚本 | [`scripts/smyx_pet_oral_snapshot_gum_redness_analysis.py`](scripts/smyx_pet_oral_snapshot_gum_redness_analysis.py) | 调用 API、执行分析或查询历史报告 | 执行分析或查询时使用 |\n| 🐍 必要脚本 | [`scripts/config.py`](scripts/config.py) | 调用 API、执行分析或查询历史报告 | 执行分析或查询时使用 |\n| 📘 领域参考 | [`references/api_doc.md`](references/api_doc.md) | 了解 API 接口规范、字段说明和错误码 | 仅在需要了解接口规范或错误码时读取 |\n\n## ⚠️ 注意事项 | Notes\n| 分类 | 注意事项 |\n|---|---|\n| 📚 文档读取 | 仅在需要时读取参考文档，保持上下文简洁 |\n| 📁 格式支持 | 文件要求：支持 jpg/jpeg/png/bmp/webp 图像 与 mp4/avi/mov 视频，最大 10MB |\n| 🧑‍⚖️ 结果性质 | 推荐结果仅供口腔护理参考，不提供疾病诊断或治疗方案 |\n| 🚫 脚本限制 | 禁止临时生成脚本，只能用技能本身的脚本 |\n| 🌐 网络地址 | 传入的网络地址参数，不需要下载本地，默认地址都是公网地址，API 服务会自动下载 |\n| 🔎 使用提醒 | 设备端建议：在宠物打哈欠、舔嘴、张嘴等口部张开动作时自动触发抓拍，提升识别效果 |\n| 🔎 使用提醒 | 短头颅犬种（法斗、巴哥）、老龄宠物天然更易出现牙结石堆积，AI 角色在输出时需主动提醒 |\n| 📜 报告输出 | 当显示历史分析报告清单的时候，从接口返回 json 数据中提取字段 `` 作为超链接地址，且自动转化为如下 Markdown |\n| 📜 报告输出 | 表格输出示例 |\n\n## 🧰 使用示例 | Examples\n```bash\n# 分析本地口腔抓拍图像/视频（以下只是示例，禁止直接使用 作为 open-id）\npython -m scripts.smyx_pet_oral_snapshot_gum_redness_analysis --input /path/to/oral_snapshot.jpg --pet-type dog\n\n# 分析网络口腔抓拍图像/视频（以下只是示例，禁止直接使用 作为 open-id）\npython -m scripts.smyx_pet_oral_snapshot_gum_redness_analysis --url https://example.com/oral_snapshot.mp4 --pet-type dog\n\n# 显示历史分析报告清单（自动触发关键词：查看历史口腔报告、口腔抓拍报告清单等）\npython -m scripts.smyx_pet_oral_snapshot_gum_redness_analysis --list\n\n# 输出精简报告\npython -m scripts.smyx_pet_oral_snapshot_gum_redness_analysis --input oral_snapshot.jpg --pet-type dog --detail basic\n\n# 保存结果到文件\npython -m scripts.smyx_pet_oral_snapshot_gum_redness_analysis --input oral_snapshot.jpg --pet-type dog --output result.json\n```\n\nFile v1.0.7:_meta.json\n\n{\n  \"ownerId\": \"kn7e2caqj7pnsvr9r7t8zenghs83xw7n\",\n  \"slug\": \"smyx-pet-oral-snapshot-gum-redness-analysis\",\n  \"version\": \"1.0.7\",\n  \"publishedAt\": 1784377409090\n}\n\nFile v1.0.7:references/api_doc.md\n\n# API 接口文档\n\n此处用于存放宠物口腔抓拍与牙龈红肿识别 API 的接口文档，待后续补充。\n\n## 接口规范\n\n- 基础地址：由 smyx_common 配置统一管理\n- 认证方式：API Key 鉴权\n- 响应格式：JSON\n\n## 主要接口\n\n1. `/web/ai-analysis/v2/start-common-ai-analysis` - 启动口腔抓拍与牙龈红肿识别分析任务\n2. `/web/ai-analysis/get-common-ai-analysis-result` - 获取分析结果\n3. `/web/ai-analysis/page-common-ai-analysis-result` - 分页查询历史报告\n4. `/health/order/api/getReportDetailExport?id={id}` - 导出完整报告\n\n## 场景代码\n\n- `SMYX_PET_ORAL_SNAPSHOT_GUM_REDNESS_ANALYSIS` - 宠物口腔抓拍与牙龈红肿识别\n\n## 抓拍触发说明\n\n- 设备侧建议：在宠物打哈欠、舔嘴、张嘴等口部张开动作时自动触发抓拍\n- 本技能消费抓拍图像/视频帧，输出牙龈颜色与牙结石覆盖面积评估\n\nFile v1.0.7:skills/smyx_analysis/references/api_doc.md\n\n# API接口文档\n\n## 接口规范\n\n- 基础地址：由 smyx_common 配置统一管理\n- 认证方式：API Key 鉴权\n- 请求格式：支持文件上传\n- 响应格式：JSON\n\n## 错误码说明\n\n| 错误码 | 说明       |\n|-----|----------|\n| 400 | 请求参数错误   |\n| 401 | API密钥无效  |\n| 403 | 权限不足     |\n| 413 | 文件过大     |\n| 415 | 不支持的文件格式 |\n| 500 | 服务器内部错误  |\n\nFile v1.0.7:scripts/config.yaml\n\n{}\n\nFile v1.0.7:skills/smyx_analysis/scripts/config.yaml\n\n{}\n\nFile v1.0.7:skills/smyx_common/scripts/config-dev.yaml\n\nApiEnum:\n  base-url-open-api: \"http://192.168.1.234:9601/smyx-open-api\"\n  base-url-open-h5: \"http://192.168.1.234:4100\"\n  base-url-health: \"http://192.168.1.234:7070/jeecg-boot-xzgz\"\n\nConstantEnum:\n  is-debug: true\n\nFile v1.0.7:skills/smyx_common/scripts/config-test.yaml\n\nApiEnum:\n  base-url-open-api: \"https://livemonitortest.lifeemergence.com/smyx-open-api\"\n  base-url-open-h5: \"http://livemonitortest.lifeemergence.com\"\n  base-url-health: \"https://healthtest.lifeemergence.com/jeecg-boot-xzgz\"\n\nConstantEnum:\n  is-debug: true\n\nFile v1.0.7:skills/smyx_common/scripts/config.yaml\n\nApiEnum:\n  api-key: null\n  api-secret-key: null\n  base-url-health: https://lifeemergence.com/jeecg-boot-xzgz\n  base-url-open-api: https://open.lifeemergence.com/smyx-open-api\n  base-url-open-h5: http://livemonitor.lifeemergence.com\n  database-url: null\nConstantEnum:\n  app--id: x1a3s4nwy1s2r4se\n  current--tentant-code: XIAN_ZHAO_GAN_ZHI\n  default--skill-platform-name: ARK_CLAW\n  feishu-app--id: cli_a93d769369badcb1\n  feishu-app--secret: null\n  is-debug: false\nenv: prod\n\nFile v1.0.7:skill-card.md\n\n## Description: <br>\nThis skill analyzes pet oral snapshot images or videos through the publisher's cloud API to estimate gum color, gum redness level, and tartar coverage, then returns oral-health observations and report links without providing a disease diagnosis. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[18072937735](https://clawhub.ai/user/18072937735) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nExternal users and developers use this skill in pet cameras, smart pet products, and pet health management workflows to analyze oral snapshots for visible gum redness and tartar indicators. It supports single-image, video, URL-based, and history-query workflows for structured pet oral-health observations. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: Pet images, videos, or media URLs may be sent to the publisher's cloud service for analysis. <br>\nMitigation: Use only media approved for cloud processing, avoid sensitive content, and confirm the publisher's retention and deletion practices before deployment. <br>\nRisk: Cloud report history is tied to an automatically selected or created identity. <br>\nMitigation: Review the identity behavior before installation and provide clear user consent, disclosure, and opt-out paths in production workflows. <br>\nRisk: Local token or account records may be stored in the workspace data directory. <br>\nMitigation: Restrict workspace access, rotate or delete stored credentials when no longer needed, and prefer a release that documents local storage controls explicitly. <br>\n\n\n## Reference(s): <br>\n- [ClawHub Skill Page](https://clawhub.ai/18072937735/skills/smyx-pet-oral-snapshot-gum-redness-analysis) <br>\n- [API Documentation](references/api_doc.md) <br>\n- [Skill Demo](https://lifeemergence.com/sample.html) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [text, markdown, shell commands, configuration, guidance] <br>\n**Output Format:** [Markdown text with optional JSON details and report links] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [May write a requested output file; cloud history queries are presented as a Markdown table.] <br>\n\n## Skill Version(s): <br>\n1.0.7 (source: server release metadata; artifact frontmatter lists 1.0.5) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nFile v1.0.7:skills/smyx_analysis/requirements.txt\n\npydash==8.0.6\nSQLAlchemy==2.0.46\nyaml==6.0.3\n\nFile v1.0.7:skills/smyx_common/requirements.txt\n\npydash==8.0.6\nSQLAlchemy==2.0.46\nPyYAML==6.0.3\n\nArchive v1.0.6: 31 files, 39572 bytes\n\nFiles: _meta.json (162b), references/api_doc.md (914b), scripts/__init__.py (62b), scripts/config.py (689b), scripts/config.yaml (3b), scripts/skill.py (588b), scripts/smyx_pet_oral_snapshot_gum_redness_analysis.py (3591b), skill-card.md (2707b), SKILL.md (12595b), skills/smyx_analysis/__init__.py (0b), skills/smyx_analysis/references/api_doc.md (427b), skills/smyx_analysis/requirements.txt (45b), skills/smyx_analysis/scripts/__init__.py (0b), skills/smyx_analysis/scripts/api_service.py (1509b), skills/smyx_analysis/scripts/config.py (1003b), skills/smyx_analysis/scripts/config.yaml (3b), skills/smyx_analysis/scripts/skill.py (6529b), skills/smyx_analysis/scripts/smyx_analysis.py (3833b), skills/smyx_common/__init__.py (0b), skills/smyx_common/requirements.txt (47b), skills/smyx_common/scripts/__init__.py (177b), skills/smyx_common/scripts/api_service.py (2645b), skills/smyx_common/scripts/base.py (469b), skills/smyx_common/scripts/config-dev.yaml (214b), skills/smyx_common/scripts/config-prod.yaml (0b), skills/smyx_common/scripts/config-test.yaml (256b), skills/smyx_common/scripts/config.py (24363b), skills/smyx_common/scripts/config.yaml (473b), skills/smyx_common/scripts/dao.py (18266b), skills/smyx_common/scripts/skill.py (2473b), skills/smyx_common/scripts/util.py (28605b)\n\nFile v1.0.6:SKILL.md\n\n---\nname: \"smyx-pet-oral-snapshot-gum-redness-analysis\"\ndescription: \"Triggers when a user provides an oral snapshot image/video of a pet (usually auto-captured during yawning, lip-licking or mouth-opening moments) for analysis; supports local uploads or network URLs to call server-side APIs for oral health recognition, evaluating gum color (pink / bright red / dark red) and tartar coverage area, outputting standardized oral health observations to help early discovery of periodontal disease (without diagnosing diseases). Application scenarios: pet cameras, smart pet products, pet health management platforms. | 当用户提供宠物口腔抓拍图像/视频（通常在宠物打哈欠、舔嘴、张嘴时自动触发抓拍）时，触发本技能进行口腔健康识别；支持通过上传本地文件或网络URL，调用服务端API分析牙龈颜色（粉红、鲜红、暗红）与牙结石覆盖面积，输出标准化口腔健康观察结果，帮助早期发现牙周病等问题（不诊断疾病）。应用场景：宠物摄像头、智能宠物用品、宠物健康管理平台。\"\nversion: \"1.0.3\"\nlicense: \"MIT-0\"\n---\n\n# 🦷 Pet Oral Snapshot & Gum Redness Recognition | 宠物口腔抓拍与牙龈红肿识别\n> **智能分析中枢** · 图片/视频智能分析 · 结构化报告 · 历史报告云端查询\n\n---\n\n## 🧭 技能概览 | Overview\n\n| 模块 | 内容 |\n|---|---|\n| 🏷️ 技能名称 | **宠物口腔抓拍与牙龈红肿识别** |\n| 🎯 核心目标 | 当用户提供宠物口腔抓拍图像/视频（通常在宠物打哈欠、舔嘴、张嘴时自动触发抓拍）时，触发本技能进行口腔健康识别；支持通过上传本地文件或网络URL，调用服务端API分析牙龈颜色（粉红、鲜红、暗红）与牙结石覆盖面积，输出标准化口腔健康观察结果，帮助早期发现牙周病等问题（不诊断疾病）。应用场景：宠物摄像头、智能宠物用品、宠物健康管理平台。 |\n| 🖼️ 输入类型 | 图片、视频、本地文件、网络 URL |\n| 📝 输出能力 | 结构化分析报告、识别/监测结果、建议与报告链接 |\n| 🧩 场景码 | `SMYX_PET_ORAL_SNAPSHOT_GUM_REDNESS_ANALYSIS` |\n\nTriggers when a user provides an oral snapshot image/video of a pet (usually auto-captured during yawning, lip-licking\nor mouth-opening moments) for analysis; supports local uploads or network URLs to call server-side APIs for oral health\nrecognition, evaluating gum color (pink / bright red / dark red) and tartar coverage area, outputting standardized oral\nhealth observations to help early discovery of periodontal disease (without diagnosing diseases). Application scenarios:\npet cameras, smart pet products, pet health management platforms.\n\n当用户提供宠物口腔抓拍图像/视频（通常在宠物打哈欠、舔嘴、张嘴时自动触发抓拍）时，触发本技能进行口腔健康识别；支持通过上传本地文件或网络URL，调用服务端API分析牙龈颜色（粉红、鲜红、暗红）与牙结石覆盖面积，输出标准化口腔健康观察结果，帮助早期发现牙周病等问题（不诊断疾病）。应用场景：宠物摄像头、智能宠物用品、宠物健康管理平台。\n\n## 🤖 AI 角色 | AI Role\n| 角色要点 | 说明 |\n|---|---|\n| 说明 1 | **你是一个专业的宠物口腔健康分析AI。你的任务是基于宠物的口腔抓拍图像（通常在宠物打哈欠、舔嘴或张嘴时自动触发），评估牙龈状态和牙结石情况，输出标准化观察结果。不要提供疾病诊断或治疗方案，仅客观描述口腔内可见的健康指标。 ** |\n\n## 🎬 技能演示 | Skill Demo\n\n[▶️ 点击查看技能使用介绍](https://lifeemergence.com/sample.html)\n\n---\n\n## 🎯 任务目标 | Goals\n\n### 1. 🧩 技能用途\n\n通过宠物口腔抓拍图像/视频进行牙龈红肿与牙结石识别分析，获取标准化口腔健康观察结果，帮助早期发现牙周病等问题\n\n### 2. 🛠️ 能力范围\n\n| 序号 | 具体能力 |\n|---:|---|\n| 1 | 图像/视频分析 |\n| 2 | 口腔区域定位 |\n| 3 | 牙龈颜色识别（粉红/鲜红/暗红） |\n| 4 | 牙龈红肿等级评估 |\n| 5 | 牙结石检测 |\n| 6 | 牙结石覆盖面积估算（%） |\n| 7 | 口臭/牙菌斑视觉特征提示 |\n| 8 | 口腔健康风险提示 |\n\n### 3. ⚡ 触发条件\n\n| 触发类型 | 触发规则 |\n|---|---|\n| ✅ 默认触发 | **默认触发**：当用户提供宠物口腔抓拍图像/视频 URL 或文件需要分析时，默认触发本技能进行口腔健康识别 |\n| 🔎 明确分析意图 | 当用户明确需要进行口腔检查时，提及口腔、牙龈、牙结石、牙周病、口臭、打哈欠抓拍、舔嘴抓拍、张嘴抓拍、宠物牙齿、洗牙必要性等关键词，并且上传了图像/视频文件 |\n| 📚 历史报告查询 | 当用户提及以下关键词时，**自动触发历史报告查询功能** ：查看历史口腔报告、历史牙龈识别报告、口腔健康报告清单、查询牙龈记录、显示所有口腔抓拍报告、显示牙结石分析报告，查询宠物口腔健康提示报告 |\n\n### 4. 🤖 自动行为\n\n| 自动行为 | 执行要求 |\n|---|---|\n| 📎 附件处理 | 如果用户上传了附件或者视频/图片文件，则自动保存为本地文件 |\n| ☁️ 历史报告查询 | 如果用户触发历史报告查询关键词，必须直接调用云端 API 查询，不得从本地记忆或人工汇总中获取 |\n\n#### ⚠️ 强制数据获取规则（次高优先级）\n\n> **橙色强约束：** 历史报告清单只允许从云端接口读取，不允许从本地记录、长期记忆或人工汇总中提取。\n\n必须执行：\n\n```bash\npython -m scripts.smyx_pet_oral_snapshot_gum_redness_analysis --list\n```\n\n| 类型 | 要求 |\n|---|---|\n| ✅ 必须 | 使用 `python -m scripts.smyx_pet_oral_snapshot_gum_redness_analysis --list` 调用 API 查询云端的历史报告数据 |\n| 🚫 严格禁止 | 从本地 `memory` 目录读取历史会话信息 |\n| 🚫 严格禁止 | 手动汇总本地记录中的报告 |\n| 🚫 严格禁止 | 从长期记忆中提取报告 |\n| ✅ 输出格式 | 必须统一从云端接口获取最新完整数据，然后以 Markdown 表格格式输出结果 |\n\n## 📦 前置准备 | Requirements\n- 依赖说明:scripts 脚本所需的依赖包及版本\n  ```\n  requests>=2.28.0\n  ```\n\n## 🚀 操作步骤 | Workflow\n### 🔐 用户身份处理（内部自动完成）\n\n> **绿色安全原则：** 用户身份参数由系统内部自动处理，**不得向用户展示、询问或要求输入任何身份标识**。\n\n执行本技能分析或历史报告查询时，脚本会自动完成身份初始化：\n\n| 场景 | 系统行为 |\n|---|---|\n| 上游系统有内部身份参数 | 由脚本静默接收并使用 |\n| 上游系统未提供内部身份参数 | 脚本会自动复用本地缺省用户 |\n| 本地缺省用户不存在 | 脚本会自动创建并在后续任务中复用 |\n| 对用户输出 | 只展示分析进度、分析结果和报告链接，不展示内部身份值 |\n\n#### 🔒 关键约束\n\n| 禁止/要求 | 说明 |\n|---|---|\n| 🚫 不得询问身份 | 不得提示用户输入用户名、手机号或任何内部身份参数 |\n| 🚫 不得暴露身份值 | 不得在回复、报告、示例、错误提示中暴露内部身份值 |\n| 🚫 不得列为用户参数 | 不得把内部身份参数列为用户需要理解或传入的参数 |\n| ✅ 自动关联报告 | 历史报告查询同样由系统内部身份自动关联，用户只需表达“查看历史报告/报告清单”等意图 |\n\n---\n\n### 🧪 标准流程 | Standard Flow\n\n| 步骤 | 阶段 | 执行动作 |\n|---:|---|---|\n| 1 | 📥 准备图像/视频输入 | 提供本地文件路径或网络 URL；确保输入内容清晰、符合技能场景要求 |\n| 2 | 🔐 系统自动完成身份关联 | 无需用户输入任何身份参数；不在回复中展示内部身份值 |\n| 3 | ⚙️ 执行口腔牙龈红肿识别分析 | 调用 `-m scripts.smyx_pet_oral_snapshot_gum_redness_analysis` 处理输入（**必须在技能根目录下运行脚本**） |\n| 4 | 📊 查看分析结果 | 接收结构化分析报告，查看识别/监测结果、风险提示、建议与报告链接 |\n\n### ⚙️ 脚本参数说明\n\n| 参数 | 含义 | 备注 |\n|---|---|---|\n| `--input` | 本地图像/视频文件路径 | 适用于本地文件分析 |\n| `--url` | 网络图像/视频 URL 地址（API 服务自动下载） | API 服务自动下载网络资源 |\n| `--pet-type` | 宠物类型，可选值：cat/dog/other，默认 dog | 按需填写 |\n| `--list` | 显示口腔抓拍历史分析报告列表清单（可输入起始日期参数过滤数据范围） | 用于云端历史报告查询 |\n| `--api-url` | API 服务地址（可选，使用默认值） | 按需填写 |\n| `--detail` | 输出详细程度（basic/standard/json，默认 json） | 输出详细程度 |\n| `--output` | 结果输出文件路径（可选） | 可选 |\n\n## 🦷 牙龈与牙结石健康参考标准 | Oral Health Reference\n| 等级      | 牙龈颜色 | 牙结石覆盖面积   | 状态描述        | 建议护理          |\n|---------|------|-----------|-------------|---------------|\n| ✅ 健康    | 粉红   | < 10%     | 口腔状态良好      | 日常刷牙、洁齿零食     |\n| ⚠️ 轻度异常 | 偏红   | 10% ~ 30% | 早期牙菌斑/轻度牙龈炎 | 增加刷牙频率，使用洁齿玩具 |\n| 🚨 中度异常 | 鲜红   | 30% ~ 60% | 牙龈炎/牙结石明显   | 建议咨询兽医，考虑洁牙   |\n| 🆘 重度异常 | 暗红   | > 60%     | 重度牙周问题风险    | 建议尽快兽医检查      |\n\n> 注：以上标准仅供视觉参考，不作为诊断依据。短头颅犬种（法斗、巴哥）、老龄宠物天然更易出现牙结石堆积，需更频繁监测。\n\n## 🗂️ 资源索引 | Resource Index\n| 资源类型 | 路径 | 用途 | 何时读取 |\n|---|---|---|---|\n| 🐍 必要脚本 | [`scripts/smyx_pet_oral_snapshot_gum_redness_analysis.py`](scripts/smyx_pet_oral_snapshot_gum_redness_analysis.py) | 调用 API、执行分析或查询历史报告 | 执行分析或查询时使用 |\n| 🐍 必要脚本 | [`scripts/config.py`](scripts/config.py) | 调用 API、执行分析或查询历史报告 | 执行分析或查询时使用 |\n| 📘 领域参考 | [`references/api_doc.md`](references/api_doc.md) | 了解 API 接口规范、字段说明和错误码 | 仅在需要了解接口规范或错误码时读取 |\n\n## ⚠️ 注意事项 | Notes\n| 分类 | 注意事项 |\n|---|---|\n| 📚 文档读取 | 仅在需要时读取参考文档，保持上下文简洁 |\n| 📁 格式支持 | 文件要求：支持 jpg/jpeg/png/bmp/webp 图像 与 mp4/avi/mov 视频，最大 10MB |\n| 🧑‍⚖️ 结果性质 | 推荐结果仅供口腔护理参考，不提供疾病诊断或治疗方案 |\n| 🚫 脚本限制 | 禁止临时生成脚本，只能用技能本身的脚本 |\n| 🌐 网络地址 | 传入的网络地址参数，不需要下载本地，默认地址都是公网地址，API 服务会自动下载 |\n| 🔎 使用提醒 | 设备端建议：在宠物打哈欠、舔嘴、张嘴等口部张开动作时自动触发抓拍，提升识别效果 |\n| 🔎 使用提醒 | 短头颅犬种（法斗、巴哥）、老龄宠物天然更易出现牙结石堆积，AI 角色在输出时需主动提醒 |\n| 📜 报告输出 | 当显示历史分析报告清单的时候，从接口返回 json 数据中提取字段 `` 作为超链接地址，且自动转化为如下 Markdown |\n| 📜 报告输出 | 表格输出示例 |\n\n## 🧰 使用示例 | Examples\n```bash\n# 分析本地口腔抓拍图像/视频（以下只是示例，禁止直接使用 作为 open-id）\npython -m scripts.smyx_pet_oral_snapshot_gum_redness_analysis --input /path/to/oral_snapshot.jpg --pet-type dog\n\n# 分析网络口腔抓拍图像/视频（以下只是示例，禁止直接使用 作为 open-id）\npython -m scripts.smyx_pet_oral_snapshot_gum_redness_analysis --url https://example.com/oral_snapshot.mp4 --pet-type dog\n\n# 显示历史分析报告清单（自动触发关键词：查看历史口腔报告、口腔抓拍报告清单等）\npython -m scripts.smyx_pet_oral_snapshot_gum_redness_analysis --list\n\n# 输出精简报告\npython -m scripts.smyx_pet_oral_snapshot_gum_redness_analysis --input oral_snapshot.jpg --pet-type dog --detail basic\n\n# 保存结果到文件\npython -m scripts.smyx_pet_oral_snapshot_gum_redness_analysis --input oral_snapshot.jpg --pet-type dog --output result.json\n```\n\nFile v1.0.6:_meta.json\n\n{\n  \"ownerId\": \"kn7e2caqj7pnsvr9r7t8zenghs83xw7n\",\n  \"slug\": \"smyx-pet-oral-snapshot-gum-redness-analysis\",\n  \"version\": \"1.0.6\",\n  \"publishedAt\": 1783276824160\n}\n\nFile v1.0.6:references/api_doc.md\n\n# API 接口文档\n\n此处用于存放宠物口腔抓拍与牙龈红肿识别 API 的接口文档，待后续补充。\n\n## 接口规范\n\n- 基础地址：由 smyx_common 配置统一管理\n- 认证方式：API Key 鉴权\n- 响应格式：JSON\n\n## 主要接口\n\n1. `/web/ai-analysis/v2/start-common-ai-analysis` - 启动口腔抓拍与牙龈红肿识别分析任务\n2. `/web/ai-analysis/get-common-ai-analysis-result` - 获取分析结果\n3. `/web/ai-analysis/page-common-ai-analysis-result` - 分页查询历史报告\n4. `/health/order/api/getReportDetailExport?id={id}` - 导出完整报告\n\n## 场景代码\n\n- `SMYX_PET_ORAL_SNAPSHOT_GUM_REDNESS_ANALYSIS` - 宠物口腔抓拍与牙龈红肿识别\n\n## 抓拍触发说明\n\n- 设备侧建议：在宠物打哈欠、舔嘴、张嘴等口部张开动作时自动触发抓拍\n- 本技能消费抓拍图像/视频帧，输出牙龈颜色与牙结石覆盖面积评估\n\nFile v1.0.6:skills/smyx_analysis/references/api_doc.md\n\n# API接口文档\n\n## 接口规范\n\n- 基础地址：由 smyx_common 配置统一管理\n- 认证方式：API Key 鉴权\n- 请求格式：支持文件上传\n- 响应格式：JSON\n\n## 错误码说明\n\n| 错误码 | 说明       |\n|-----|----------|\n| 400 | 请求参数错误   |\n| 401 | API密钥无效  |\n| 403 | 权限不足     |\n| 413 | 文件过大     |\n| 415 | 不支持的文件格式 |\n| 500 | 服务器内部错误  |\n\nFile v1.0.6:scripts/config.yaml\n\n{}\n\nFile v1.0.6:skills/smyx_analysis/scripts/config.yaml\n\n{}\n\nFile v1.0.6:skills/smyx_common/scripts/config-dev.yaml\n\nApiEnum:\n  base-url-open-api: \"http://192.168.1.234:9601/smyx-open-api\"\n  base-url-open-h5: \"http://192.168.1.234:4100\"\n  base-url-health: \"http://192.168.1.234:7070/jeecg-boot-xzgz\"\n\nConstantEnum:\n  is-debug: true\n\nFile v1.0.6:skills/smyx_common/scripts/config-test.yaml\n\nApiEnum:\n  base-url-open-api: \"https://livemonitortest.lifeemergence.com/smyx-open-api\"\n  base-url-open-h5: \"http://livemonitortest.lifeemergence.com\"\n  base-url-health: \"https://healthtest.lifeemergence.com/jeecg-boot-xzgz\"\n\nConstantEnum:\n  is-debug: true\n\nFile v1.0.6:skills/smyx_common/scripts/config.yaml\n\nApiEnum:\n  api-key: null\n  api-secret-key: null\n  base-url-health: https://lifeemergence.com/jeecg-boot-xzgz\n  base-url-open-api: https://open.lifeemergence.com/smyx-open-api\n  base-url-open-h5: http://livemonitor.lifeemergence.com\n  database-url: null\nConstantEnum:\n  app--id: x1a3s4nwy1s2r4se\n  current--tentant-code: XIAN_ZHAO_GAN_ZHI\n  default--skill-platform-name: ARK_CLAW\n  feishu-app--id: cli_a93d769369badcb1\n  feishu-app--secret: null\n  is-debug: false\nenv: prod\n\nFile v1.0.6:skill-card.md\n\n## Description: <br>\nAnalyzes pet oral snapshot images or videos through cloud APIs to report visible gum color, gum redness, tartar coverage, oral-health observations, recommendations, and report links without providing disease diagnosis. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[18072937735](https://clawhub.ai/user/18072937735) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nExternal developers and pet-health product teams use this skill in pet cameras, smart pet products, and pet health management platforms to analyze oral snapshot media for visible gum and tartar indicators. The skill supports local files, network URLs, and history queries for structured oral-health observation reports. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: Pet oral images, videos, or supplied URLs are sent to the LifeEmergence cloud service for analysis. <br>\nMitigation: Use only when cloud processing of the submitted pet media is acceptable for the deployment and user context. <br>\nRisk: The skill can silently create or reuse an account identity, store local tokens, and keep report history tied to that identity. <br>\nMitigation: Review identity and token handling before installation, restrict use to approved environments, and clear stored credentials or histories according to deployment policy. <br>\nRisk: The output is an oral-health observation and may be mistaken for veterinary diagnosis or treatment guidance. <br>\nMitigation: Present results as visual reference only and direct users to consult a veterinarian for concerning findings or care decisions. <br>\n\n\n## Reference(s): <br>\n- [API Interface Documentation](references/api_doc.md) <br>\n- [ClawHub Skill Page](https://clawhub.ai/18072937735/skills/smyx-pet-oral-snapshot-gum-redness-analysis) <br>\n- [Skill Demo](https://lifeemergence.com/sample.html) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [Text, Markdown, JSON, Shell commands, Files] <br>\n**Output Format:** [Markdown or JSON analysis report, optionally written to a file] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Includes visible gum-color categories, tartar coverage estimates, oral-health observations, recommendations, and report links when returned by the service.] <br>\n\n## Skill Version(s): <br>\n1.0.6 (source: server release metadata) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nFile v1.0.6:skills/smyx_analysis/requirements.txt\n\npydash==8.0.6\nSQLAlchemy==2.0.46\nyaml==6.0.3\n\nFile v1.0.6:skills/smyx_common/requirements.txt\n\npydash==8.0.6\nSQLAlchemy==2.0.46\nPyYAML==6.0.3","readmeExcerpt":"Skill: Pet Oral Snapshot & Gum Redness Recognition | 宠物口腔抓拍与牙龈红肿识别 Owner: 18072937735 Summary: Triggers when a user provides an oral snapshot image/video of a pet (usually auto-captured during yawning, lip-licking or mouth-opening moments) for analysis; supports local uploads or network URLs to call server-side APIs for oral health recognition, evaluating gum color (pink / bright red / dark red) and tartar coverage a","codeSnippets":[],"executableExamples":[{"language":"bash","snippet":"python -m scripts.smyx_pet_oral_snapshot_gum_redness_analysis --list"},{"language":"text","snippet":"requests>=2.28.0"},{"language":"bash","snippet":"# 分析本地口腔抓拍图像/视频（以下只是示例，禁止直接使用 作为 open-id）\npython -m scripts.smyx_pet_oral_snapshot_gum_redness_analysis --input /path/to/oral_snapshot.jpg --pet-type dog\n\n# 分析网络口腔抓拍图像/视频（以下只是示例，禁止直接使用 作为 open-id）\npython -m scripts.smyx_pet_oral_snapshot_gum_redness_analysis --url https://example.com/oral_snapshot.mp4 --pet-type dog\n\n# 显示历史分析报告清单（自动触发关键词：查看历史口腔报告、口腔抓拍报告清单等）\npython -m scripts.smyx_pet_oral_snapshot_gum_redness_analysis --list\n\n# 输出精简报告\npython -m scripts.smyx_pet_oral_snapshot_gum_redness_analysis --input oral_snapshot.jpg --pet-type dog --detail basic\n\n# 保存结果到文件\npython -m scripts.smyx_pet_oral_snapshot_gum_redness_analysis --input oral_snapshot.jpg --pet-type dog --output result.json"},{"language":"bash","snippet":"python -m scripts.smyx_pet_oral_snapshot_gum_redness_analysis --list"},{"language":"text","snippet":"requests>=2.28.0"},{"language":"bash","snippet":"# 分析本地口腔抓拍图像/视频（以下只是示例，禁止直接使用 作为 open-id）\npython -m scripts.smyx_pet_oral_snapshot_gum_redness_analysis --input /path/to/oral_snapshot.jpg --pet-type dog\n\n# 分析网络口腔抓拍图像/视频（以下只是示例，禁止直接使用 作为 open-id）\npython -m scripts.smyx_pet_oral_snapshot_gum_redness_analysis --url https://example.com/oral_snapshot.mp4 --pet-type dog\n\n# 显示历史分析报告清单（自动触发关键词：查看历史口腔报告、口腔抓拍报告清单等）\npython -m scripts.smyx_pet_oral_snapshot_gum_redness_analysis --list\n\n# 输出精简报告\npython -m scripts.smyx_pet_oral_snapshot_gum_redness_analysis --input oral_snapshot.jpg --pet-type dog --detail basic\n\n# 保存结果到文件\npython -m scripts.smyx_pet_oral_snapshot_gum_redness_analysis --input oral_snapshot.jpg --pet-type dog --output result.json"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: \"smyx-pet-oral-snapshot-gum-redness-analysis\"\ndescription: \"Triggers when a user provides an oral snapshot image/video of a pet (usually auto-captured during yawning, lip-licking or mouth-opening moments) for analysis; supports local uploads or network URLs to call server-side APIs for oral health recognition, evaluating gum color (pink / bright red / dark red) and tartar coverage area, outputting standardized oral health observations to help early discovery of periodontal disease (without diagnosing diseases). Application scenarios: pet cameras, smart pet products, pet health management platforms. | 当用户提供宠物口腔抓拍图像/视频（通常在宠物打哈欠、舔嘴、张嘴时自动触发抓拍）时，触发本技能进行口腔健康识别；支持通过上传本地文件或网络URL，调用服务端API分析牙龈颜色（粉红、鲜红、暗红）与牙结石覆盖面积，输出标准化口腔健康观察结果，帮助早期发现牙周病等问题（不诊断疾病）。应用场景：宠物摄像头、智能宠物用品、宠物健康管理平台。\"\nversion: \"1.0.16\"\nlicense: \"MIT-0\"\n---\n\n# 🦷 Pet Oral Snapshot & Gum Redness Recognition | 宠物口腔抓拍与牙龈红肿识别\n> **智能分析中枢** · 图片/视频智能分析 · 结构化报告 · 历史报告云端查询\n\n---\n\n## 🧭 技能概览 | Overview\n\n| 模块 | 内容 |\n|---|---|\n| 🏷️ 技能名称 | **宠物口腔抓拍与牙龈红肿识别** |\n| 🎯 核心目标 | 当用户提供宠物口腔抓拍图像/视频（通常在宠物打哈欠、舔嘴、张嘴时自动触发抓拍）时，触发本技能进行口腔健康识别；支持通过上传本地文件或网络URL，调用服务端API分析牙龈颜色（粉红、鲜红、暗红）与牙结石覆盖面积，输出标准化口腔健康观察结果，帮助早期发现牙周病等问题（不诊断疾病）。应用场景：宠物摄像头、智能宠物用品、宠物健康管理平台。 |\n| 🖼️ 输入类型 | 图片、视频、本地文件、网络 URL |\n| 📝 输出能力 | 结构化分析报告、识别/监测结果、建议与报告链接 |\n| 🧩 场景码 | `SMYX_PET_ORAL_SNAPSHOT_GUM_REDNESS_ANALYSIS` |\n\nTriggers when a user provides an oral snapshot image/video of a pet (usually auto-captured during yawning, lip-licking\nor mouth-opening moments) for analysis; supports local uploads or network URLs to call server-side APIs for oral health\nrecognition, evaluating gum color (pink / bright red / dark red) and tartar coverage area, outputting standardized oral\nhealth observations to help early discovery of periodontal disease (without diagnosing diseases). Application scenarios:\npet cameras, smart pet products, pet health management platforms.\n\n当用户提供宠物口腔抓拍图像/视频（通常在宠物打哈欠、舔嘴、张嘴时自动触发抓拍）时，触发本技能进行口腔健康识别；支持通过上传本地文件或网络URL，调用服务端API分析牙龈颜色（粉红、鲜红、暗红）与牙结石覆盖面积，输出标准化口腔健康观察结果，帮助早期发现牙周病等问题（不诊断疾病）。应用场景：宠物摄像头、智能宠物用品、宠物健康管理平台。\n\n## 🤖 AI 角色 | AI Role\n| 角色要点 | 说明 |\n|---|---|\n| 说明 1 | **你是一个专业的宠物口腔健康分析AI。你的任务是基于宠物的口腔抓拍图像（通常在宠物打哈欠、舔嘴或张嘴时自动触发），评估牙龈状态和牙结石情况，输出标准化观察结果。不要提供疾病诊断或治疗方案，仅客观描述口腔内可见的健康指标。 ** |\n\n## 🎬 技能演示 | Skill Demo\n\n[▶️ 点击查看技能使用介绍](https://lifeemergence.com/sample.html)\n\n---\n\n## 🎯 任务目标 | Goals\n\n### 1. 🧩 技能用途\n\n通过宠物口腔抓拍图像/视频进行牙龈红肿与牙结石识别分析，获取标准化口腔健康观察结果，帮助早期发现牙周病等问题\n\n### 2. 🛠️ 能力范围\n\n| 序号 | 具体能力 |\n|---:|---|\n| 1 | 图像/视频分析 |\n| 2 | 口腔区域定位 |\n| 3 | 牙龈颜色识别（粉红/鲜红/暗红） |\n| 4 | 牙龈红肿等级评估 |\n| 5 | 牙结石检测 |\n| 6 | 牙结石覆盖面积估算（%） |\n| 7 | 口臭/牙菌斑视觉特征提示 |\n| 8 | 口腔健康风险提示 |\n\n### 3. ⚡ 触发条件\n\n| 触发类型 | 触发规则 |\n|---|---|\n| ✅ 默认触发 | **默认触发**：当用户提供宠物口腔抓拍图像/视频 URL 或文件需要分析时，默认触发本技能进行口腔健康识别 |\n| 🔎 明确分析意图 | 当用户明确需要进行口腔检查时，提及口腔、牙龈、牙结石、牙周病、口臭、打哈欠抓拍、舔嘴抓拍、张嘴抓拍、宠物牙齿、洗牙必要性等关键词，并且上传了图像/视频文件 |\n| 📚 历史报告查询 | 当用户提及以下关键词时，**自动触发历史报告查询功能** ：查看历史口腔报告、历史牙龈识别报告、口腔健康报告清单、查询牙龈记录、显示所有口腔抓拍报告、显示牙结石分析报告，查询宠物口腔健康提示报告 |\n\n### 4. 🤖 自动行为\n\n| 自动行为 | 执行要求 |\n|---|---|\n| 📎 附件处理 | 如果用户上传了附件或者视频/图片文件，则自动保存为本地文件 |\n| ☁️ 历史报告查"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn7e2caqj7pnsvr9r7t8zenghs83xw7n\",\n  \"slug\": \"smyx-pet-oral-snapshot-gum-redness-analysis\",\n  \"version\": \"1.0.15\",\n  \"publishedAt\": 1790963546589\n}"},{"path":"references/api_doc.md","content":"# API 接口文档\n\n此处用于存放宠物口腔抓拍与牙龈红肿识别 API 的接口文档，待后续补充。\n\n## 接口规范\n\n- 基础地址：由 smyx_common 配置统一管理\n- 认证方式：API Key 鉴权\n- 响应格式：JSON\n\n## 主要接口\n\n1. `/web/ai-analysis/v2/start-common-ai-analysis` - 启动口腔抓拍与牙龈红肿识别分析任务\n2. `/web/ai-analysis/get-common-ai-analysis-result` - 获取分析结果\n3. `/web/ai-analysis/page-common-ai-analysis-result` - 分页查询历史报告\n4. `/health/order/api/getReportDetailExport?id={id}` - 导出完整报告\n\n## 场景代码\n\n- `SMYX_PET_ORAL_SNAPSHOT_GUM_REDNESS_ANALYSIS` - 宠物口腔抓拍与牙龈红肿识别\n\n## 抓拍触发说明\n\n- 设备侧建议：在宠物打哈欠、舔嘴、张嘴等口部张开动作时自动触发抓拍\n- 本技能消费抓拍图像/视频帧，输出牙龈颜色与牙结石覆盖面积评估"},{"path":"skills/smyx_analysis/references/api_doc.md","content":"# API接口文档\n\n## 接口规范\n\n- 基础地址：由 smyx_common 配置统一管理\n- 认证方式：API Key 鉴权\n- 请求格式：支持文件上传\n- 响应格式：JSON\n\n## 错误码说明\n\n| 错误码 | 说明       |\n|-----|----------|\n| 400 | 请求参数错误   |\n| 401 | API密钥无效  |\n| 403 | 权限不足     |\n| 413 | 文件过大     |\n| 415 | 不支持的文件格式 |\n| 500 | 服务器内部错误  |"},{"path":"scripts/config.yaml","content":"{}"}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":null,"editorialQuality":{"score":100,"threshold":65,"status":"thin","wordCount":1000,"uniquenessScore":39,"reasons":["uniqueness-below-45"]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-10T10:54:09.201Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-10-10T10:54:09.201Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-10T13:54:23.387Z","emptyReason":null},"items":[{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-10-09T19:11:12.944Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}