-
name: skillhub-assistantdescription: SkillHub 自然语言助手。当用户想要搜索、查找、安装技能时触发此技能。支持中文自然语言交互,自动调用 skillhub 命令搜索和下载技能。触发词: skillhub, 技能商店, 找技能, 搜技能, 安装技能, 下载技能, 有什么技能。SkillHub Assistant这是一个自然语言交互的 SkillHub 技能助手,帮助用户通过自然语言搜索和安装 SkillHub 商店中的技能。系统要求操作系统: Windows 10 或更高版本Python: Python 3.8 或更高版本网络连接: 需要访问互联网必要工具: Git Bash (推荐) 或 PowerShell + curl触发条件当用户表达以下意图时,必须触发此技能:搜索/查找技能: “帮我找个xxx技能”, “有没有xxx的技能”, “搜索xxx技能”安装技能: “安装xxx技能”, “下载xxx技能”, “帮我装个xxx”浏览技能: “有什么技能”, “技能商店”, “看看有什么好用的技能”直接提到: “skillhub”, “技能商店”⚠️ 重要:AI助手必须调用此技能当用户请求安装技能时,AI助手必须通过 SkillTool 调用此技能,而不是直接执行 bash 命令!错误示例 ❌用户: 安装bilibili-hot-monitor技能 助手: [直接执行 bash 命令安装] # 错误!正确示例 ✅用户: 安装bilibili-hot-monitor技能 助手: [使用 SkillTool 调用 skillhub-assistant 技能] # 正确!原因:skillhub-assistant 技能包含完整的安装流程和错误处理逻辑直接执行 bash 命令会绕过技能的验证和配置步骤技能会自动处理环境检测、依赖安装、配置文件创建等环境检测与自动安装Step 1: 检测 SkillHub 是否已安装在执行任何 skillhub 命令前,必须先检测环境是否就绪:# 检测 skillhub 命令是否可用 if command -v skillhub &> /dev/null; then echo "SkillHub CLI 已安装" elif [ -f "$USERPROFILE/.local/bin/skillhub" ]; then echo "SkillHub CLI 已安装(使用完整路径)" export PATH="$USERPROFILE/.local/bin:$PATH" else echo "NOT_INSTALLED" fi 如果返回 NOT_INSTALLED 或命令不存在,则执行自动安装流程。重要: 由于 Git Bash 环境下 Python 输出可能被抑制,skillhub --version 可能无输出,因此通过检查文件是否存在来判断。Step 2: 自动安装 SkillHub CLI如果检测到 SkillHub CLI 未安装,自动执行安装:echo "正在安装 SkillHub CLI..." curl -fsSL https://skillhub-1388575217.cos.ap-guangzhou.myqcloud.com/install/install.sh | bash # 验证安装 if [ -f "$USERPROFILE/.local/bin/skillhub" ]; then echo "✅ SkillHub CLI 安装成功" export PATH="$USERPROFILE/.local/bin:$PATH" else echo "❌ SkillHub CLI 安装失败" exit 1 fi Step 3: 检测 Python 环境# 检测 Python 是否安装 if command -v python3 &> /dev/null; then PYTHON_CMD="python3" elif command -v python &> /dev/null; then PYTHON_CMD="python" else echo "错误: 未找到 Python,请先安装 Python 3.8 或更高版本" echo "下载地址: https://www.python.org/downloads/" exit 1 fi # 获取 Python 版本 PYTHON_VERSION=$($PYTHON_CMD --version 2>&1 | awk '{print $2}') echo "Python 版本: $PYTHON_VERSION" # 获取 Python 完整路径 PYTHON_PATH=$($PYTHON_CMD -c "import sys; print(sys.executable)") echo "Python 路径: $PYTHON_PATH" 注意: Windows 上 python 和 python3 可能指向 Windows Store 的别名,如果遇到问题,使用完整路径。Step 3: 执行安装脚本注意: 此步骤已在 Step 2 中自动完成,无需手动执行。安装完成后,CLI 工具将安装到:Git Bash: $USERPROFILE/.local/bin/skillhubPowerShell: $env:USERPROFILE\.local\bin\skillhubStep 4: 配置环境变量Git Bash# 检查 ~/.local/bin 是否在 PATH 中 if [[ ":$PATH:" != *":$USERPROFILE/.local/bin:"* ]]; then echo "将 $USERPROFILE/.local/bin 添加到 PATH" echo 'export PATH="$USERPROFILE/.local/bin:$PATH"' >> ~/.bashrc export PATH="$USERPROFILE/.local/bin:$PATH" echo "请重启 Git Bash 使环境变量生效" else echo "PATH 已包含 $USERPROFILE/.local/bin" fi PowerShell# 获取当前用户 PATH $currentPath = [Environment]::GetEnvironmentVariable('PATH', 'User') # 定义需要添加的路径 $localBinPath = "$env:USERPROFILE\.local\bin" # 检查路径是否已存在 if ($currentPath -notlike "*$localBinPath*") { # 添加到 PATH $newPath = "$localBinPath;$currentPath" [Environment]::SetEnvironmentVariable('PATH', $newPath, 'User') Write-Host "已将 $localBinPath 添加到 PATH" Write-Host "请重启 PowerShell 使环境变量生效" } else { Write-Host "PATH 已包含 $localBinPath" } 注意: 环境变量修改后需要重启终端才能生效。Step 5: 验证安装# 方式1: 直接使用 skillhub 命令 (环境变量已配置) skillhub --version # 方式2: 使用完整路径 (环境变量未生效时) $USERPROFILE/.local/bin/skillhub --version # 方式3: 使用 Python 直接运行 (备用方案) $PYTHON_CMD $USERPROFILE/.skillhub/skills_store_cli.py --versionStep 6: 配置默认安装路径 (推荐)为了确保技能默认安装到项目级目录,建议配置 SkillHub:# 编辑配置文件 cat > "$USERPROFILE/.skillhub/config.json" << 'EOF' { "self_update_url": "https://skillhub-1388575217.cos.ap-guangzhou.myqcloud.com/version.json", "install_dir": "./.codeartsdoer/skills" } EOF # 验证配置 cat "$USERPROFILE/.skillhub/config.json" 说明:install_dir 设置为 ./.codeartsdoer/skills 表示技能将安装到项目级目录这样可以确保技能与项目关联,便于版本控制和团队协作如果不配置,需要在每次安装时使用 --dir ./.codeartsdoer/skills 参数安装后的文件位置文件路径 (Git Bash)路径 (PowerShell)CLI 工具$USERPROFILE/.local/bin/skillhub$env:USERPROFILE\.local\bin\skillhubCLI 脚本$USERPROFILE/.skillhub/skills_store_cli.py$env:USERPROFILE\.skillhub\skills_store_cli.py配置文件$USERPROFILE/.skillhub/config.json$env:USERPROFILE\.skillhub\config.json技能目录 (项目级)./.codeartsdoer/skills/./.codeartsdoer/skills/重要: 技能默认安装到项目级目录 ./.codeartsdoer/skills/,而不是用户级目录。工作流程1. 环境检测 (必须首先执行)每次使用前,检测 SkillHub 是否可用:# 检测 Python if command -v python3 &> /dev/null; then PYTHON_CMD="python3" elif command -v python &> /dev/null; then PYTHON_CMD="python" else echo "错误: 未找到 Python" exit 1 fi # 检测 skillhub 命令 if command -v skillhub &> /dev/null; then SKILLHUB_CMD="skillhub" elif [ -f "$USERPROFILE/.local/bin/skillhub" ]; then SKILLHUB_CMD="$USERPROFILE/.local/bin/skillhub" else # 使用 Python 直接运行 SKILLHUB_CMD="$PYTHON_CMD $USERPROFILE/.skillhub/skills_store_cli.py" fi # 验证是否可用 if ! $SKILLHUB_CMD --version &> /dev/null; then echo "SkillHub 未安装或不可用,正在执行安装流程..." # 执行安装流程 fi 2. 理解用户意图分析用户的自然语言请求,提取:操作类型: 搜索、安装、浏览关键词: 用户想要的功能或技能名称3. 智能搜索策略(重要)当用户输入中文关键词时,AI 助手应自动执行以下策略:策略流程1. 先用中文关键词搜索 2. 检查结果数量 3. 如果返回 0 结果: - AI 助手自动翻译成英文 - 用英文关键词重新搜索 4. 返回结果给用户实现示例示例 1: 搜索"视频"# 步骤 1: 搜索中文关键词 curl -s "https://lightmake.site/api/v1/search?q=视频&limit=20" # 结果: 0 个技能 # 步骤 2: AI 助手自动翻译 # AI: "视频" → "video" # 步骤 3: 用英文重新搜索 curl -s "https://lightmake.site/api/v1/search?q=video&limit=20" # 结果: 15 个技能 ✅ 示例 2: 搜索"浏览器自动化"# 步骤 1: 搜索中文关键词 curl -s "https://lightmake.site/api/v1/search?q=浏览器自动化&limit=20" # 结果: 0 个技能 # 步骤 2: AI 助手自动翻译 # AI: "浏览器自动化" → "browser automation" # 步骤 3: 用英文重新搜索 curl -s "https://lightmake.site/api/v1/search?q=browser%20automation&limit=20" # 结果: 8 个技能 ✅ 优势✅ 无需关键词对照表: AI 助手具备翻译能力✅ 覆盖所有中文词汇: 不受字典限制✅ 翻译准确: AI 理解上下文✅ 用户体验好: 无需用户手动翻译✅ 响应快速: 无需调用外部翻译 API注意事项先尝试中文: 有些技能可能有中文标签,先尝试中文搜索自动翻译: 如果中文搜索返回 0 结果,AI 助手自动翻译告知用户: 向用户说明使用了翻译后的英文关键词多关键词: 对于多词组合,翻译成合适的英文短语4. 执行 SkillHub 命令重要: 由于 Git Bash 环境下 Python 输出可能被抑制,推荐使用以下方案:方案 A: 使用 curl 直接访问 API (推荐,最可靠)搜索技能:# 搜索技能 curl -s "https://lightmake.site/api/v1/search?q=<关键词>&limit=20" \ -H "User-Agent: skills-store-cli/2026.3.3" \ -H "Accept: application/json" # 格式化输出 curl -s "https://lightmake.site/api/v1/search?q=<关键词>&limit=20" \ -H "User-Agent: skills-store-cli/2026.3.3" \ -H "Accept: application/json" | python3 -m json.tool安装技能:# 1. 获取技能信息 SKILL_INFO=$(curl -s "https://lightmake.site/api/v1/skills/<技能slug>" \ -H "User-Agent: skills-store-cli/2026.3.3" \ -H "Accept: application/json") # 2. 提取版本号 VERSION=$(echo "$SKILL_INFO" | python3 -c "import sys, json; print(json.load(sys.stdin)['latestVersion']['version'])") # 3. 下载技能包 curl -s "https://skillhub-1388575217.cos.ap-guangzhou.myqcloud.com/skills/<技能slug>/$VERSION.zip" \ -o /tmp/<技能slug>.zip # 4. 解压到项目目录 mkdir -p ./.codeartsdoer/skills/<技能slug> unzip -q /tmp/<技能slug>.zip -d ./.codeartsdoer/skills/<技能slug> # 5. 验证安装 test -f ./.codeartsdoer/skills/<技能slug>/SKILL.md && echo "✅ 安装成功" || echo "❌ 安装失败" 优势:✅ 绕过 Python 环境问题✅ 在 Git Bash 环境下工作稳定✅ 输出可靠,不会被抑制✅ 可以看到详细的安装过程方案 B: 使用 SkillHub CLI (备用,可能无输出)# 搜索技能 $SKILLHUB_CMD search <关键词> # 安装技能到项目级目录 $SKILLHUB_CMD install <技能slug> --dir ./.codeartsdoer/skills # 列出已安装技能 $SKILLHUB_CMD list --dir ./.codeartsdoer/skills注意: 如果 CLI 命令无输出,请立即切换到方案 A (curl 方案)。重要提示 - 中文关键词智能搜索:✅ AI 助手会自动处理中文搜索当中文关键词返回 0 结果时,AI 助手会自动翻译成英文并重新搜索无需用户手动翻译或查阅对照表4. 展示结果将搜索结果以友好的方式展示给用户:技能名称和描述版本信息安装命令5. 确认安装在安装技能前:向用户展示技能详情确认用户是否要安装执行安装命令报告安装结果6. 安装后验证安装完成后,必须验证:检查技能目录是否存在: ls -la ./.codeartsdoer/skills/<技能slug>/检查SKILL.md文件是否存在: test -f ./.codeartsdoer/skills/<技能slug>/SKILL.md && echo "OK"向用户展示安装路径和下一步操作示例对话用户: “帮我找个日历相关的技能”助手:检测 SkillHub 环境执行 skillhub search calendar展示搜索结果,询问是否安装用户: “有没有可以操作飞书的技能”助手:检测 SkillHub 环境执行 skillhub search feishu展示飞书相关技能用户: “安装 google-calendar 技能”助手:检测 SkillHub 环境确认安装执行 skillhub install google-calendar --dir ./.codeartsdoer/skills报告安装结果到 ./.codeartsdoer/skills/google-calendar/故障排除问题0: skillhub search 命令无输出 (最常见)症状:$ skillhub search bilibili # 无任何输出,但命令执行成功 原因:Python 输出被抑制: Git Bash 环境下 Python 的标准输出可能被抑制Windows Python 别名: python/python3 可能指向 Windows Store 别名而非真实 Python环境变量问题: PATH 中的 Python 路径不正确解决方案:方案 1: 使用 curl 直接访问 API (推荐)# 直接搜索 curl -s "https://lightmake.site/api/v1/search?q=bilibili&limit=20" \ -H "User-Agent: skills-store-cli/2026.3.3" \ -H "Accept: application/json" # 解析 JSON 结果 curl -s "https://lightmake.site/api/v1/search?q=bilibili&limit=20" \ -H "User-Agent: skills-store-cli/2026.3.3" \ -H "Accept: application/json" | python3 -c " import sys, json data = json.load(sys.stdin) for item in data.get('results', []): print(f\"{item.get('slug')}: {item.get('displayName')}\") " 方案 2: 检查 Python 环境# 检查 python 路径 where python where python3 # 使用完整路径 C:\Users\<用户名>\AppData\Local\Programs\Python\Python312\python.exe \ "$USERPROFILE/.skillhub/skills_store_cli.py" search bilibili方案 3: 使用 PowerShell# PowerShell 中可能输出正常 python $env:USERPROFILE\.skillhub\skills_store_cli.py search bilibili方案 4: 添加调试输出# 使用 verbose 模式 LOG=VERBOSE skillhub search bilibili # 或直接运行 Python 脚本并捕获错误 python3 "$USERPROFILE/.skillhub/skills_store_cli.py" search bilibili 2>&1 最佳实践:优先使用 curl 方案: 最稳定可靠,绕过所有环境问题验证 API 可用性: curl -I https://lightmake.site/api/v1/search保存常用搜索: 将 curl 命令保存为脚本或别名问题0.5: 中文关键词搜索返回 0 结果症状:$ curl -s "https://lightmake.site/api/v1/search?q=视频&limit=20" {"results":[]} # 返回空结果 原因:API 不支持中文搜索: SkillHub API 可能只支持英文关键词URL 编码问题: 中文可能需要特殊编码数据库限制: 技能数据库可能没有中文标签解决方案:方案 1: AI 助手自动翻译搜索 (推荐)# AI 助手自动执行: # 1. 搜索中文 "视频" → 0 结果 # 2. AI 自动翻译: "视频" → "video" # 3. 搜索英文 "video" → 返回结果 ✅ 优势:✅ 无需用户手动翻译✅ AI 助手自动处理✅ 覆盖所有中文词汇✅ 翻译准确(AI 理解上下文)方案 2: 用户直接使用英文关键词# 如果用户知道英文关键词,可以直接使用 curl -s "https://lightmake.site/api/v1/search?q=video&limit=20" 方案 3: 描述功能而非关键词# 如果不确定关键词,描述功能 curl -s "https://lightmake.site/api/v1/search?q=browser%20automation&limit=20" 最佳实践:信任 AI 助手: AI 助手会自动处理中文搜索先尝试中文: 有些技能可能有中文标签查看翻译结果: AI 助手会告知使用了哪个英文关键词问题1: skillhub 命令找不到原因: 环境变量未配置或终端未重启解决方案:# 使用完整路径 $USERPROFILE/.local/bin/skillhub <命令> # 或重新加载环境变量 source ~/.bashrc问题2: Python 命令找不到原因: Python 未安装或不在 PATH 中解决方案:安装 Python 3.8+: https://www.python.org/downloads/安装时勾选 “Add Python to PATH”重启终端验证: python --version问题3: Python 指向 Windows Store原因: Windows 10+ 的 Python 别名优先级高于实际安装的 Python解决方案:找到实际 Python 路径:where python使用完整路径,例如:C:\Users\<用户名>\AppData\Local\Programs\Python\Python312\python.exe或在环境变量中调整 PATH 顺序问题4: curl 命令找不到原因: Windows 默认没有 curl解决方案:安装 Git for Windows: https://git-scm.com/download/win使用 Git Bash 运行命令或使用 PowerShell (Windows 10+ 自带 curl)问题5: 网络连接失败原因: 无法访问 SkillHub 服务器解决方案:检查网络连接确保可以访问: https://skillhub-1388575217.cos.ap-guangzhou.myqcloud.com/如果在国内,建议使用网络加速工具或手动下载安装脚本后执行问题6: 权限不足原因: 没有写入 $USERPROFILE/.local/bin 的权限解决方案:# 创建目录 mkdir -p $USERPROFILE/.local/bin # 设置可执行权限 chmod +x $USERPROFILE/.local/bin/skillhub注意事项优先使用中文与用户交互每次使用前检测 SkillHub 环境,未安装则自动安装搜索技能的最佳实践:优先使用 curl 直接访问 API: 最稳定可靠,避免 Python 环境问题如果 CLI 搜索无输出: 立即切换到 curl 方案尝试多个相关关键词: 以获得更全面的结果验证 API 可用性: 确保网络连接正常安装前向用户说明技能的来源和功能如果没有找到匹配的技能,建议用户尝试其他关键词或描述需求默认安装到项目级目录:技能默认安装到 ./.codeartsdoer/skills/确保技能与项目关联,便于版本控制和团队协作可以通过配置文件或 --dir 参数指定安装路径Windows 环境下注意路径问题:Git Bash 使用 $USERPROFILE 环境变量PowerShell 使用 $env:USERPROFILE 环境变量避免使用硬编码的用户名Python 路径问题:优先使用 python3 命令备用使用 python 命令最后使用完整 Python 路径如果 Python 输出被抑制,使用 curl 方案网络问题:国内用户可能需要网络加速可以手动下载安装脚本确保防火墙允许访问快速参考常用命令# 搜索技能 skillhub search <关键词> # 安装技能到项目级目录 (推荐) skillhub install <技能slug> --dir ./.codeartsdoer/skills # 列出已安装技能 skillhub list --dir ./.codeartsdoer/skills # 查看版本 skillhub --version环境变量# Git Bash - 添加到 PATH export PATH="$USERPROFILE/.local/bin:$PATH" # PowerShell - 添加到 PATH [Environment]::SetEnvironmentVariable('PATH', "$env:USERPROFILE\.local\bin;$env:PATH", 'User') 关键路径项目路径 (Git Bash)路径 (PowerShell)SkillHub CLI$USERPROFILE/.local/bin/skillhub$env:USERPROFILE\.local\bin\skillhubSkillHub 脚本$USERPROFILE/.skillhub/skills_store_cli.py$env:USERPROFILE\.skillhub\skills_store_cli.py配置文件$USERPROFILE/.skillhub/config.json$env:USERPROFILE\.skillhub\config.json技能目录 (项目级)./.codeartsdoer/skills/./.codeartsdoer/skills/重要: 技能默认安装到项目级目录,确保技能与项目关联,便于版本控制和团队协作。一键部署脚本 (可选)如果需要在一台新 Windows 电脑上快速部署,可以使用以下脚本:#!/bin/bash # SkillHub Assistant 一键部署脚本 (Windows Git Bash) echo "==========================================" echo " SkillHub Assistant 一键部署" echo "==========================================" # 检测 Python if command -v python3 &> /dev/null; then PYTHON_CMD="python3" elif command -v python &> /dev/null; then PYTHON_CMD="python" else echo "错误: 未找到 Python" echo "请先安装 Python 3.8 或更高版本" echo "下载地址: https://www.python.org/downloads/" exit 1 fi echo "Python 版本: $($PYTHON_CMD --version)" # 下载并安装 SkillHub echo "正在安装 SkillHub..." curl -fsSL https://skillhub-1388575217.cos.ap-guangzhou.myqcloud.com/install/install.sh | bash # 配置环境变量 if [[ ":$PATH:" != *":$USERPROFILE/.local/bin:"* ]]; then echo "配置环境变量..." echo 'export PATH="$USERPROFILE/.local/bin:$PATH"' >> ~/.bashrc export PATH="$USERPROFILE/.local/bin:$PATH" fi # 验证安装 echo "验证安装..." if command -v skillhub &> /dev/null; then echo "✓ SkillHub 安装成功" skillhub --version else echo "✗ SkillHub 安装失败" exit 1 fi echo "" echo "==========================================" echo " 部署完成!" echo "==========================================" echo "" echo "请重启 Git Bash 使环境变量生效" echo "" 保存为 deploy-skillhub.sh,然后执行:bash deploy-skillhub.sh
-
登录失败,请重试。 详细信息: {“code”:“Unhandled Error”,“message”:“certificate has expired”}
-
关机又打开就变成这样了,不知道上面问题
-
年夜饭菜单生成器帖子整理稿适用场景:用于发布项目介绍帖、参赛说明、经验总结或技术实践分享。项目形态:基于 Flask + HTML/CSS/JavaScript 的春节主题 Web 应用,可根据人数、预算和口味偏好自动生成年夜饭菜单。整理时间:2026-03-13一、项目背景春节是最具烟火气和仪式感的传统节日,而年夜饭又是春节场景中最核心的一环。现实中,家庭在准备年夜饭时经常会遇到几个典型问题:不知道做什么菜、难以兼顾预算和人数、口味偏好多样、想要菜单既喜庆又有寓意。基于这些真实需求,我实现了一个“年夜饭菜单生成器”,希望用一个轻量但完整的 Web 应用,把“选菜”这件事变得更高效、更有趣、更有节日氛围。这个项目的目标并不是做一个复杂的餐饮系统,而是围绕一个明确的春节场景,完成从输入条件、菜单生成、预算控制、结果展示到打印分享的闭环。最终用户只需要输入用餐人数、预算档位和口味偏好,就可以快速得到一份具有节日特色和吉祥寓意的年夜饭菜单。二、实现过程1. 需求拆解在开始编码之前,我先把这个小项目拆成了五个最核心的功能模块:前端输入表单、菜品数据库、菜单生成逻辑、后端接口、结果展示与分享。这样做的好处是结构清晰,开发时可以逐块推进,也方便后续优化和演示。模块作用输入层收集人数、预算等级、口味偏好,尽量减少用户操作成本。数据层维护凉菜、热菜、汤品、主食、甜点等分类菜品,并附上价格和寓意。生成层根据人数决定各类菜品数量,根据预算做增减调整,根据偏好做优先筛选。接口层通过 Flask 暴露菜单生成接口,前端以 JSON 方式调用。展示层把结果可视化展示出来,同时支持重新生成、打印和分享。2. 技术选型后端部分我使用了 Python Flask。原因很直接:这个项目的业务逻辑相对集中,接口数量不多,Flask 足够轻量,适合快速搭建原型并完成场景验证。前端则采用原生 HTML + CSS + JavaScript,这样可以更直接地控制页面结构、春节视觉风格和交互细节,也更适合展示一个从零实现的完整项目。3. 菜品数据库设计为了让生成结果更接近真实年夜饭场景,我把菜品按“凉菜、热菜、汤品、主食、甜点”进行分类,每道菜包含名称、寓意描述和价格三个字段。例如红烧肉对应“红红火火,富贵满堂”,清蒸鲈鱼对应“年年有余,蒸蒸日上”。这样生成出来的不只是一个菜名列表,而是一份有节日氛围、有文化意味的菜单。4. 菜单生成逻辑菜单生成逻辑主要包含三个步骤。第一步,根据人数动态确定每个分类应该生成几道菜;第二步,在菜品库中按分类随机抽取候选菜品,并在凉菜、热菜部分优先考虑口味偏好;第三步,对总价做预算校正,如果超预算就移除价格最高的热菜,如果低于预算下限就继续补充热菜,直到尽量落入预算区间。这种实现方式简单直接,但足以支撑一个可演示、可交互、可落地的完整功能闭环。5. 前端交互与视觉设计前端部分重点突出“春节感”和“易用性”。页面采用红金主色,加入灯笼装饰、卡片化布局和按钮动效;输入区只保留最必要的信息项;结果区则把总价、人均消费、菜品分类和寓意信息集中展示,便于用户直接查看或打印。此外,还实现了分享菜单和复制文案的功能,增强了使用场景的完整性。三、华为云码道(CodeArts)代码智能体使用体验在这个项目的实现过程中,华为云码道(CodeArts)代码智能体给我的帮助主要体现在“提效”和“补全思路”两个层面。对于一个从需求到页面效果都比较完整的小项目来说,代码智能体并不是替代开发者思考,而是在合适的节点上帮我更快地推进实现。在项目初始化阶段,代码智能体适合用来快速搭建基础结构,比如 Flask 项目骨架、接口函数、前端表单雏形等,能明显减少重复性工作。在逻辑实现阶段,它适合辅助梳理菜单生成规则,例如人数与菜品数量的映射、预算上下限校正、偏好筛选等,能帮助我更快把想法转成可运行代码。在前端细节阶段,代码智能体对页面布局、按钮交互、结果渲染、分享逻辑等也能提供比较直接的实现建议,特别适合快速迭代界面。在调试阶段,它对输入校验、异常处理、接口请求格式这类问题也能给出比较实用的排查思路,能缩短来回试错的时间。整体体验总结: CodeArts 代码智能体更像一个高效率的开发搭档,适合在“方案已经明确,但实现需要快速推进”的场景下使用。它在生成基础代码、补充常见逻辑、整理前后端联动流程方面表现比较高效,但最终的业务合理性、交互取舍和项目完成度,仍然需要开发者自己把关。四、完整代码片段下面整理了本项目的主要代码文件,便于在帖子中完整展示实现细节。代码按实际项目结构排列,可直接对应仓库内容。requirements.txtFlask==2.3.3app.pyfrom flask import Flask, render_template, request, jsonifyimport randomimport jsonapp = Flask(__name__)# 菜品数据库 - 按类别分类DISHES_DATABASE = {"凉菜": [{"name": "凉拌黄瓜", "desc": "清爽开胃,寓意清清白白", "price": 15},{"name": "口水鸡", "desc": "麻辣鲜香,红红火火", "price": 38},{"name": "凉拌木耳", "desc": "黑色入肾,健康长寿", "price": 18},{"name": "蒜泥白肉", "desc": "肥而不腻,富贵吉祥", "price": 35},{"name": "凉拌海蜇", "desc": "爽脆可口,海纳百川", "price": 45},{"name": "皮蛋豆腐", "desc": "黑白分明,清正廉洁", "price": 20},{"name": "夫妻肺片", "desc": "麻辣浓香,恩爱和睦", "price": 42},{"name": "凉拌三丝", "desc": "三阳开泰,吉祥如意", "price": 22},],"热菜": [{"name": "红烧肉", "desc": "红红火火,富贵满堂", "price": 58},{"name": "清蒸鲈鱼", "desc": "年年有余,蒸蒸日上", "price": 88},{"name": "糖醋排骨", "desc": "甜甜蜜蜜,骨肉相连", "price": 52},{"name": "宫保鸡丁", "desc": "吉祥如意,丁财两旺", "price": 45},{"name": "麻婆豆腐", "desc": "红白分明,福运连连", "price": 28},{"name": "回锅肉", "desc": "回锅再炒,好运重来", "price": 48},{"name": "水煮鱼", "desc": "鱼跃龙门,财源滚滚", "price": 78},{"name": "东坡肘子", "desc": "大富大贵,肘到福来", "price": 88},{"name": "白切鸡", "desc": "金鸡报晓,大吉大利", "price": 58},{"name": "蒜蓉粉丝蒸扇贝", "desc": "花开富贵,招财进宝", "price": 68},{"name": "红烧狮子头", "desc": "团团圆圆,阖家欢乐", "price": 62},{"name": "干锅花菜", "desc": "花开富贵,四季平安", "price": 32},],"汤品": [{"name": "佛跳墙", "desc": "山珍海味,福寿双全", "price": 188},{"name": "老鸭汤", "desc": "滋补养生,健康长寿", "price": 68},{"name": "排骨莲藕汤", "desc": "藕断丝连,亲情不断", "price": 48},{"name": "鲫鱼豆腐汤", "desc": "鱼跃龙门,富贵有余", "price": 45},{"name": "乌鸡汤", "desc": "滋补养颜,青春永驻", "price": 58},{"name": "冬瓜排骨汤", "desc": "清热解毒,平安健康", "price": 38},],"主食": [{"name": "饺子", "desc": "招财进宝,更岁交子", "price": 28},{"name": "年糕", "desc": "年年高升,步步高升", "price": 25},{"name": "八宝饭", "desc": "八方来财,甜甜蜜蜜", "price": 32},{"name": "春卷", "desc": "春意盎然,黄金万两", "price": 22},{"name": "汤圆", "desc": "团团圆圆,和和美美", "price": 20},{"name": "长寿面", "desc": "长长久久,健康长寿", "price": 18},],"甜点": [{"name": "红豆沙", "desc": "红红火火,甜甜蜜蜜", "price": 18},{"name": "银耳莲子羹", "desc": "连生贵子,银两满仓", "price": 22},{"name": "芒果布丁", "desc": "光芒万丈,前程似锦", "price": 25},{"name": "杨枝甘露", "desc": "甘露滋润,幸福美满", "price": 28},]}# 预算等级配置BUDGET_LEVELS = {"经济实惠": {"min": 200, "max": 400},"中等消费": {"min": 400, "max": 800},"高档豪华": {"min": 800, "max": 1500}}# 人数与菜品数量配置def get_dish_count(people_count):"""根据人数返回各类菜品数量"""if people_count <= 4:return {"凉菜": 2, "热菜": 3, "汤品": 1, "主食": 1, "甜点": 1}elif people_count <= 8:return {"凉菜": 3, "热菜": 5, "汤品": 1, "主食": 2, "甜点": 1}elif people_count <= 12:return {"凉菜": 4, "热菜": 6, "汤品": 2, "主食": 2, "甜点": 2}else:return {"凉菜": 5, "热菜": 8, "汤品": 2, "主食": 3, "甜点": 2}def generate_menu(people_count, budget_level, preferences=None):"""生成年夜饭菜单"""dish_counts = get_dish_count(people_count)budget_range = BUDGET_LEVELS[budget_level] menu = {}total_price = 0 for category, count in dish_counts.items():available_dishes = DISHES_DATABASE[category].copy() # 如果有偏好设置,优先选择符合偏好的菜品if preferences and category in ["热菜", "凉菜"]:preferred_dishes = [d for d in available_dishesif any(pref in d["name"] or pref in d["desc"]for pref in preferences)]if preferred_dishes:available_dishes = preferred_dishes # 随机选择菜品selected = []for _ in range(min(count, len(available_dishes))):dish = random.choice(available_dishes)selected.append(dish)available_dishes.remove(dish)total_price += dish["price"] menu[category] = selected # 如果超出预算,调整菜品while total_price > budget_range["max"] and len(menu["热菜"]) > 2:# 移除最贵的热菜hot_dishes = menu["热菜"]most_expensive = max(hot_dishes, key=lambda x: x["price"])total_price -= most_expensive["price"]hot_dishes.remove(most_expensive) # 如果低于预算,添加菜品while total_price < budget_range["min"]:# 添加一个热菜available = [d for d in DISHES_DATABASE["热菜"]if d not in menu["热菜"]]if available:dish = random.choice(available)menu["热菜"].append(dish)total_price += dish["price"]else:break return {"menu": menu,"total_price": total_price,"people_count": people_count,"budget_level": budget_level,"avg_price_per_person": round(total_price / people_count, 2)}@app.route('/')def index():"""主页"""return render_template('index.html')@app.route('/generate', methods=['POST'])def generate():"""生成菜单API"""data = request.jsonpeople_count = int(data.get('people_count', 6))budget_level = data.get('budget_level', '中等消费')preferences = data.get('preferences', []) # 验证输入if people_count < 1 or people_count > 20:return jsonify({"error": "人数应在1-20人之间"}), 400 if budget_level not in BUDGET_LEVELS:return jsonify({"error": "预算等级无效"}), 400 result = generate_menu(people_count, budget_level, preferences)return jsonify(result)@app.route('/dishes')def get_dishes():"""获取所有菜品数据"""return jsonify(DISHES_DATABASE)if __name__ == '__main__':app.run(debug=True, host='0.0.0.0', port=5000) 五、效果展示下面两张图片分别对应项目首页和一次实际生成结果。生成结果具有随机性,因此每次刷新或重新生成时,具体菜品可能不同,但都会遵循人数、预算和偏好规则。图 1:项目首页。用户可输入人数、选择预算等级,并勾选口味偏好。 图 2:菜单生成结果示例。当前示例为 8 人、中等消费、偏好鱼类和海鲜,生成结果总价为 442 元,人均约 55.25 元。 示例结果说明:本次示例生成的菜单包含主食、凉菜、汤品、热菜和甜点五类内容,其中热菜部分优先生成了“清蒸鲈鱼”“水煮鱼”等与偏好条件匹配的菜品,说明偏好筛选逻辑已经生效;同时总价被控制在“中等消费”预算区间内,说明预算调节逻辑也正常工作。六、总结“年夜饭菜单生成器”虽然是一个体量不大的项目,但它完整覆盖了场景选题、数据设计、后端接口、前端交互、预算控制、视觉呈现和效果输出这些关键环节。对我来说,这个项目的价值不仅在于做出一个可运行的小工具,更在于验证了如何围绕具体节日场景,快速落地一个有实用性、有展示性、也有情绪价值的 Web 应用。如果将来继续迭代,这个项目还可以进一步扩展,例如加入地区菜系、忌口条件、节日推荐文案、菜单导出图片、用户自定义菜品库等能力,让它从“演示型项目”逐步发展为“更贴近真实使用场景”的小产品。
-
插件总是被华为插件市场禁用,反复调整后无果。
yd_234664797
发表于2026-03-13 10:58:45
2026-03-13 10:58:45
最后回复
CodeArts小助手-蚂蚁
2026-03-17 10:15:06
16 1 -
下载安装都是正常的,不可用,IDE contains conflicting module com.huawei.codebot.java.push.codeelf
yd_281390241
发表于2026-03-13 09:35:54
2026-03-13 09:35:54
最后回复
CodeArts小助手-蚂蚁
2026-03-13 09:49:43
37 1 -
你们这个IDE文档多久没更新了,文档上的内容压根跟不上版本节奏
yd_214408476
发表于2026-03-12 14:17:16
2026-03-12 14:17:16
最后回复
CodeArts小助手-蚂蚁
2026-03-12 14:47:12
108 1 -
什么时候支持 mac 因特尔版本的 IDE
yd_239881080
发表于2026-03-12 11:45:53
2026-03-12 11:45:53
最后回复
CodeArts小助手-蚂蚁
2026-03-12 14:08:26
23 1 -
Linux bruce.xiaomi 6.17.0-14-generic #14~24.04.1-Ubuntu SMP PREEMPT_DYNAMIC Thu Jan 15 15:52:10 UTC 2 x86_64 x86_64 x86_64 GNU/Linux
yd_295489957
发表于2026-03-11 20:40:40
2026-03-11 20:40:40
最后回复
CodeArts小助手-蚂蚁
2026-03-12 09:27:41
25 1 -
codearts agent连接失败,无法使用是什么原因导致的?检查网络连接正常
yd_279744515
发表于2026-03-11 17:06:31
2026-03-11 17:06:31
最后回复
CodeArts小助手-蚂蚁
2026-03-12 09:42:52
65 3 -
不管我怎么设置,AI对话只能把修复的代码以聊天的形式告诉我,无法主动修改文件,AI一直告诉我目前是只读模式,可是我在设置-智能体-编辑们文件 打开了,为什么还不可以呢?
yd_216826826
发表于2026-03-11 11:04:30
2026-03-11 11:04:30
最后回复
CodeArts小助手-蚂蚁
2026-03-11 14:21:55
37 1 -
任务拆分后没有针对任务完成情况进行记录,阶段任务在结尾出现死循。
yd_292566468
发表于2026-03-11 09:02:45
2026-03-11 09:02:45
最后回复
CodeArts小助手-蚂蚁
2026-03-11 09:16:35
26 1 -
项目任务执行过程中电脑锁屏再解锁之后,任务卡住无法继续。针对该情况如何更好的继续执行任务?
-
CodeArts中有没有预留通道,让Skill开发者可以采集运营数据。有没有类似.opencode\plugins扩展机制,可以让我把运营数据收集上报到集中的运营平台。
yd_297764004
发表于2026-03-10 17:26:59
2026-03-10 17:26:59
最后回复
CodeArts小助手-蚂蚁
2026-03-11 08:56:18
19 1 -
问题说明在鸿蒙应用开发中,实现应用间的数据交互是常见需求。具体表现为两个方面:一是如何将本应用内的文件通过系统分享面板分享给其他应用,或直接调用其他应用打开文件;二是如何让本应用具备接收其他应用分享文件的能力。开发者在实现过程中,常因对systemShare 模块使用不熟悉、module.json5 中 skills 配置不准确,导致分享面板无法调起、应用无法出现在分享列表或解析分享数据失败等问题。原因分析分享发起方配置复杂:需要正确识别文件类型(UTD),构建标准的SharedData对象,并区分是使用系统分享面板(Popup形式)还是直接通过Want显式调用其他应用。若UTD获取错误或Want参数(如flags)配置不当,会造成分享失败。分享接收方配置严格:鸿蒙系统通过Want机制传递分享数据。应用必须在module.json5中精确声明actions(如 ohos.want.action.sendData)和uris(支持的文件类型和协议),否则系统无法将该应用识别为合法的分享目标。此外,需要在UIAbility的生命周期(onCreate, onNewWant)中主动解析Want参数,逻辑处理不当会导致数据丢失。解决思路发起分享:通过分享面板:利用@kit.ArkData的uniformTypeDescriptor获取文件类型,使用@kit.ShareKit的systemShare 构建分享数据并唤起面板。使用其他应用打开:构造包含 uri、type 和 flags(授权读写)的 Want 对象,调用 context.startAbility。接收分享:配置文件:在module.json5的skills中添加entity.system.share实体,配置ohos.want.action.sendData等动作,并定义支持的uris(如scheme为file,utd为general.entity等)。数据解析:在 onCreate 和 onNewWant 中拦截 Want,使用 systemShare.getSharedData 解析出 SharedRecord 进行业务处理。解决方案APP发起分享方式一:通过分享面板进行分享导入相关模块:import { common } from '@kit.AbilityKit';import { systemShare } from '@kit.ShareKit';import { uniformTypeDescriptor as utd } from '@kit.ArkData';构造分享数据并唤起面板:// 获取文件后缀对应的 UTDlet utdTypeId = utd.getUniformDataTypeByFilenameExtension(file.extension, utd.UniformDataType.OBJECT);// 构造分享数据let shareData: systemShare.SharedData = new systemShare.SharedData({utd: utdTypeId,uri: file.uri});shareData.addRecord({ utd: utdTypeId, uri: file.uri });// 启动分享面板let controller: systemShare.ShareController = new systemShare.ShareController(shareData);let context: common.UIAbilityContext = getContext(this) as common.UIAbilityContext;controller.show(context, {previewMode: systemShare.SharePreviewMode.DEFAULT,selectionMode: systemShare.SelectionMode.SINGLE});方式二:使用其他应用打开let wantInfo: Want = {uri: file.uri,type: 'application/msword', // 示例:打开 Word 文件flags: wantConstant.Flags.FLAG_AUTH_WRITE_URI_PERMISSION,};let context = getContext(this) as common.UIAbilityContext;context.startAbility(wantInfo).then(() => {console.info('分享成功');}).catch((err: BusinessError) => {console.error(`分享失败: ${err.code}, ${err.message}`);});处理接收到的分享内容配置 module.json5:"abilities": [{"skills": [{"entities": ["entity.system.share"],"actions": ["ohos.want.action.sendData","ohos.want.action.viewData"],"uris": [{"scheme": "file","utd": "general.entity","maxFileSupported": 1}]}]}]解析分享数据 (在 UIAbility 中):import { systemShare } from '@kit.ShareKit';onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void {this.handleShareData(want);}onNewWant(want: Want, launchParam: AbilityConstant.LaunchParam): void {this.handleShareData(want);}handleShareData(want: Want) {systemShare.getSharedData(want).then((data: systemShare.SharedData) => {data.getRecords().forEach((record: systemShare.SharedRecord) => {console.info(`Received share: ${record.uri}, type: ${record.utd}`);// 处理分享业务逻辑});}).catch((error: BusinessError) => {console.error(`Failed to getSharedData: ${error.code}`);});}总结问题与痛点:应用间文件共享配置繁琐,module.json5 配置项易错,导致应用无法正确收发文件。技术要点:使用 systemShare Kit 构建标准分享数据。利用 UniformTypeDescriptor (UTD) 准确描述文件类型。通过 Want 显式意图实现应用跳转。正确配置 module.json5 中的 skills 以注册分享能力。实现效果:实现了标准的鸿蒙系统分享体验,无论是主动分享还是接收分享,都能流畅进行,提升了应用的生态交互能力。
上滑加载中
推荐直播
-
华为云码道-玩转OpenClaw,在线养虾2026/03/11 周三 19:00-21:00
刘昱,华为云高级工程师/谈心,华为云技术专家/李海仑,上海圭卓智能科技有限公司CEO
OpenClaw 火爆开发者圈,华为云码道最新推出 Skill ——开发者只需输入一句口令,即可部署一个功能完整的「小龙虾」智能体。直播带你玩转华为云码道,玩转OpenClaw
回顾中 -
华为云码道-AI时代应用开发利器2026/03/18 周三 19:00-20:00
童得力,华为云开发者生态运营总监/姚圣伟,华为云HCDE开发者专家
本次直播由华为专家带你实战应用开发,看华为云码道(CodeArts)代码智能体如何在AI时代让你的创意应用快速落地。更有华为云HCDE开发者专家带你用码道玩转JiuwenClaw,让小艺成为你的AI助理。
回顾中 -
Skill 构建 × 智能创作:基于华为云码道的 AI 内容生产提效方案2026/03/25 周三 19:00-20:00
余伟,华为云软件研发工程师/万邵业(万少),华为云HCDE开发者专家
本次直播带来两大实战:华为云码道 Skill-Creator 手把手搭建专属知识库 Skill;如何用码道提效 OpenClaw 小说文本,打造从大纲到成稿的 AI 原创小说全链路。技术干货 + OPC创作思路,一次讲透!
回顾中
热门标签