• [公告] 华为云社区编辑器超链接&图片白名单站点清单
    尊敬的华为云社区用户:         为保障社区内容安全,需要开启超链接及图片地址的安全校验功能,仅支持已知安全性的域名跳转;其他外链不能保障其安全性,暂不支持发布及访问。附:当前已收录的域名如下,其他站点持续补充中 图片白名单:https://i-blog.csdnimg.cnhttps://img.alicdn.comhttps://alliance-communityfile-drcn.dbankcdn.comhttps://image.huawei.com/https://lab.huaweicloud.comhttps://modelarts-labs-bj4-v2.obs.cn-north-4.myhuaweicloud.comhttps://res.hc-cdn.comhttps://bbs-img.huaweicloud.comhttps://fileserver.developer.huaweicloud.comhttps://res-static.hc-cdn.cn 超链接白名单://*.huaweiuniversity.com,//*.huaweicloud.com,//*.huaweicloud-rda.com,//*.huaweicloud.com,//*.myhuaweicloud.com,//*.myhuaweicloud.com,//*.huawei.com,//*.hw3static.com,//*.hicloud.com,//*.wjx.cn,//*.myhwclouds.com,//*.hwclouds.com,//*.github.com,//*.developer.android.com,//*.stackoverflow.com,//*.baidu.com,//*.zhihu.com,//*.csdn.net,//*.itdks.com,//*.gitee.com,//*.jinshuju.net,//*.wjx.cn,//*.bilibili.com,//*.jianshu.com,//*.shimo.im,//*.infoq.cn,//*.oschina.net,//*.vmall.com,//*.wjx.top,//*.org.cn,//*.mudu.tv,//*.qq.com,//*.biendata.com,//*.jupyter.org,//*.mindspore.cn,//*.servicecomb.io,//*.vhall.com,//*.hwtelcloud.com,//*.aiiaorg.cn,//*.suo.im,//*.jiqizhixin.com,//*.qbitai.com,//*.vhallyun.com,//*.modelarts.club,//*.toutiao.com,//*.apache.org,//*.cityscapes-dataset.com,//*.shuoyang1213.me,//*.weibo.com,//*.ixigua.com,//*.tinyurl.com,//*.arxiv.org,//*.cocodataset.org,//*.emqx.io,//*.supermap.com,//*.msu.ru,//*.dropbox.com,//*.erda.dk,//*.google.com,//*.ethz.ch,//*.umich.edu,//*.ac.uk,//*.berkeley.edu,//*.stanford.edu,//*.hemanthdv.org,//*.tu-darmstadt.de,//*.synthia-dataset.net,//*.codebeautify.org,//*.pytorch.org,//*.github.io,//*.wikipedia.org,//*.jepsen.io,//*.postgresql.org,//*.modb.pro,//*.kchuhai.com,//*.zgcaijingjie.com,//*.d1net.com,//*.hc-cdn.cn,//*.hc-cdn.com,//*.yundaxue.org,//*.crowdhuman.org,//*.mp.weixin.qq.com,//*.edu.supermap.com,//*.emotibot.com,//*.hikunpeng.com,//*.yiwise.com,//*.scrm.yiwise.com,//*.xrender.com,//*.hiascend.com,//*.wenjuan.com,//*.hiscene.com,//*.volcengine.com,//*.software.it168.com,//*.cloud.zhiding.cn,//*.zhuanlan.zhihu.com,//*.sohu.com,//*.page.om.qq.com,//*.news.163.com,//*.news.yesky.com,//*.biz.ifeng.com,//*.biznews.sohu.com,//*.geekpark.net,//*.51cto.com,//*.doit.com.cn,//*.dostor.com,//*.fromgeek.com,//*.emwap.eastmoney.com,//*.finance.eastmoney.com,//*.cb.com.cn,//*.myzaker.com,//*.ctiforum.com,//*.cloud.zol.com.cn,//*.shangyun51.com,//*.cctime.com,//*.163.com,//*.city.newssc.org,//*.news.huaxi100.com,//*.pad.zol.com.cn,//*.ithome.com,//*.itbear.com.cn,//*.c114.com.cn,//*.yjaq.com.cn,//*.ydhacker.com,//*.caijing.com.cn,//*.jrj.com.cn,//*.zol.com.cn,//*.it168.com,//*.zhiding.cn,//*.yesky.com,//*.ifeng.com,//*.eastmoney.com,//*.openeuler.org,//*.juejin.cn,//*.devui.design,//*.icourse163.org,//*.docsdk.com,//*.gartner.com,//*.gitee.io,//*.www.python.org,//*.nodejs.org,//*.pypi.org,//*.sourceforge.net,//*.www.oracle.com,//*.t.elecfans.com,//*.riscv-summit-china.com,//*.summer-ospp.ac.cn,//*.mall.jd.com,//*.union.jd.com,//*.devcloud.huaweicloud.com,//*.nuxt.com,//*mindformers.readthedocs.io,//*.ai.csg.cn,//*.www.gla.uestc.edu.cn,//*.survey.huaweicloud.com,//*.edu.huaweicloud.com,//*.lab.huaweicloud.com,//*.cnnorth4-modelhub-media.obs.cn-north-4.myhwclouds.com/,//*rdccucd.wjx.cn,//*account.huaweicloud.com,//*@stu.neu.edu.cn,//*cangjie-lang.cn,//*gitcode.com,//*.docs.dify.ai/zh-hans/introduction,//*.account.huaweicloud.com,//*.console.huaweicloud.com,//*.patents.chaspark.com
  • [案例共创] 【案例共创】 报道
    报道我正在参加【案例共创】第5期 开发者空间 AI Agent 开发  https://developer.huaweicloud.com/signup/0e966198e87a4210b5f88c0d759d4f3b
  • [案例共创] 【案例共创】华为开发者空间 AI Agent 技术解析:AI 原生应用引擎与 Versatile 空间协同架构
    引言:AI 原生应用开发的范式变革在大模型技术驱动的智能化浪潮下,传统软件开发正经历从 "构成式架构" 向 "生成式架构" 的根本性转变。华为云开发者联盟数据显示,83% 的企业开发者认为 AI 原生应用将在未来 3 年内成为业务核心驱动力,但复杂的数据治理、高昂的模型训练成本、跨工具协同效率低下等问题,仍制约着 AI 应用的规模化落地。华为开发者空间 AI Agent 以 "低门槛、易集成、快部署" 为核心理念,通过 AI 原生应用引擎与 Versatile 空间的深度协同,构建了从数据准备到应用集成的全流程开发体系,重新定义了智能应用的开发范式。一、华为开发者空间 AI Agent 概述:技术定位与核心价值1.1 平台定位:一站式 AI 应用开发闭环华为云开发者空间是面向全球开发者的云端创新与协作平台,集成昇腾算力、盘古大模型服务、应用托管能力及低代码工具,形成 "开发 - 部署 - 运维" 的完整生态闭环。其核心优势在于:全栈技术整合:融合 MaaS(Model as a Service)大模型服务与 Flexus 云服务体系,支持 Dify、LangChain、Streamlit 等主流 AI 开发框架资源弹性调度:基于 Serverless 架构,实现算力资源的动态扩缩,推理成本降低 50% 以上低代码开发体验:提供可视化工作流编排、Agent 模板库,5 分钟即可完成基础 AI 应用创建1.2 AI Agent 核心特征与技术底座AI Agent(智能体)作为华为开发者空间的核心组件,具备目标导向性、上下文感知、自主决策与执行三大特征,其技术底座包括:大语言模型支撑:集成 DeepSeek-V3-32K、盘古等模型,支持多模态输入与复杂推理工具链生态:预置数据查询、计算工具、外部 API 调用能力,支持自定义工具扩展记忆系统:提供片段记忆(短期上下文)与文件盒子(长期知识存储),实现对话状态持续跟踪技术原理:AI Agent 通过 "感知 - 决策 - 执行" 闭环实现自主任务处理 —— 感知模块解析用户需求与环境数据,决策模块基于大模型与知识库生成任务规划,执行模块调用工具或工作流完成具体操作,全程无需人工干预。二、AI 原生应用引擎:全流程开发能力解析华为 AI 原生应用引擎提供数据准备、模型选择 / 调优、知识工程、模型编排、应用部署、应用集成六大核心能力,覆盖 AI 应用开发全生命周期。2.1 数据工程服务:高质量数据供给体系数据准备是 AI 应用开发的基础,华为云 ModelArts 提供全流程数据治理能力,解决企业数据质量低、标注效率低、安全合规难等痛点:2.1.1 全模态数据处理支持文本(PDF/DOC/HTML)、图像(PNG/JPG/BMP)、视频、音频等多模态数据接入,内置 60+AI4Data 预置算子,实现智能化数据加工:智能标注:基于半监督学习的自动标注工具,文本标注效率提升 80%,图像标注准确率达 95%数据清洗:自动检测缺失值、异常值、重复数据,支持规则式与 AI 式清洗结合质量评估:提供数据完整性、一致性、准确性指标,支持人工复核与自动评估双重校验2.1.2 数据安全与治理通过数据胶囊技术实现 "数据可用不可得",确保数据全生命周期安全:数据加密:传输加密(TLS 1.3)与存储加密(AES-256)访问控制:基于 RBAC 模型的细粒度权限管理,支持数据操作审计日志合规适配:符合 GDPR、中国网络安全法、个人信息保护法等法规要求案例:某医疗企业使用 DataArts 处理 10 万份病历数据,通过智能标注与质量评估,数据准备周期从 2 个月缩短至 1 周,标注成本降低 60%。2.2 模型训练与调优服务:全场景高效训练针对大模型开发从通用走向行业的趋势,华为云提供增训与微调两种训练模式,适配不同场景需求:2.2.1 训练模式与场景覆盖增训:基于领域知识从零构建模型,支持 NLP、CV、多模态、预测、科学计算 5 类模型训练微调:针对特定任务优化预训练模型,提供 LoRA、Freeze 等参数高效微调方法预置 20+场景化训练工作流,如文本分类、图像分割、推荐系统等,支持 0 代码创建训练任务:  # 模型微调示例代码(基于ModelArts SDK) from modelarts import ModelArtsFinetune finetuner = ModelArtsFinetune(model_id="deepseek-v3-32k", task="text-generation") finetuner.load_data(dataset_path="/user/data/medical_corpus") finetuner.set_hyperparameters(epochs=3, learning_rate=2e-5, batch_size=16) finetuner.start()   2.2.2 训练优化技术SFS Turbo 加速:分布式存储加速技术,训练数据读取性能提升 3 倍断点续训:支持训练任务异常中断后从断点恢复,避免重复计算训推共池:训练闲置资源用于推理,实现 "白天推理,晚上训练",资源利用率提升 50%性能对比:在钢铁行业缺陷检测模型训练中,采用训推共池与 SFS Turbo 加速后,训练时长从 72 小时缩短至 18 小时,资源成本降低 40%。2.3 知识工程服务:企业知识资产化知识工程是提升 AI Agent 专业能力的核心,华为云提供RAG(检索增强生成)全流程工具链,实现企业知识的结构化管理与精准应用:2.3.1 知识图谱构建与管理多源知识接入:支持结构化数据(数据库表)、半结构化数据(Excel/JSON)、非结构化数据(文档 / 网页)导入知识抽取:基于 BERT+CRF 的实体识别与关系抽取,支持自定义实体类型与关系规则图谱可视化:提供知识图谱浏览、关系查询、路径分析工具,辅助知识校验与更新2.3.2 RAG 向量数据库与检索优化向量存储:集成 Chroma、Qdrant 等向量数据库,支持文本、图像、音频等多模态向量存储检索策略:混合检索(关键词 + 语义)、多轮检索、上下文感知检索,准确率达 92%增量更新:支持知识库增量导入与向量更新,知识更新延迟低于 5 分钟案例:华为开发者空间基于 DeepSeek 构建 RAG 向量数据库,实现技术文档问答准确率提升至 87%,幻觉率降低至 3% 以下(传统大模型幻觉率约 15%)。2.4 模型编排服务:多模型协同与工作流设计华为云提供可视化模型编排引擎,支持多模型串联与条件分支控制,实现复杂任务的自动化处理:2.4.1 编排能力与组件节点类型:模型节点(调用大模型 / 传统模型)、工具节点(调用 API / 数据库)、逻辑节点(条件判断 / 循环)、事件节点(定时触发 / 数据变更触发)编排方式:拖拽式可视化设计,支持 JSON/YAML 脚本导入,满足不同开发者习惯模板库:预置 10 + 行业模板(智能客服、数据分析、流程自动化),支持自定义模板保存与共享2.4.2 执行与监控实时执行:支持同步 / 异步执行模式,异步任务通过消息队列削峰填谷可视化监控:工作流执行日志、节点耗时分析、异常告警(邮件 / 短信 / IM)版本管理:支持编排流程版本控制,可回滚至历史版本案例:某制造企业通过模型编排引擎构建 "设备故障预测" 工作流 —— 数据采集节点接入 IoT 传感器数据→特征提取节点调用传统机器学习模型→异常检测节点调用盘古大模型→维修工单节点调用 ERP 系统 API,实现故障预测准确率 85%,维修响应时间缩短 40%。2.5 应用部署与集成服务:全场景灵活交付华为云提供云边端一体化部署能力,支持模型从云端训练到多场景推理的无缝衔接:2.5.1 部署形态与优化部署选项:云端部署:容器化部署(Docker/K8s)、Serverless 函数部署边缘部署:边缘节点、IoT 设备、智能终端(基于昇腾芯片)混合部署:云边协同推理,敏感数据本地处理,通用计算云端处理推理优化:PD 分离:模型参数(Parameters)与部署描述(Deployment)分离,推理性能提升 20 倍动态批处理:根据输入请求量动态调整批处理大小,GPU 利用率提升 60%量化压缩:INT8/FP16 量化,模型体积减少 75%,推理速度提升 2-3 倍2.5.2 应用集成能力API 网关:提供 RESTful API、WebSocket、gRPC 接口,支持 API 版本管理与流量控制低代码集成:与 Astro 低代码平台无缝集成,通过可视化组件调用 AI Agent 能力第三方系统对接:预置 SAP、Oracle、Salesforce 等 ERP/CRM 系统连接器,支持自定义 Webhook案例:某零售企业将 AI 客服 Agent 部署于边缘节点,通过 PD 分离与动态批处理优化后,客服响应延迟从 300ms 降至 50ms,同时支持每日 100 万次调用,成本降低 5 倍。三、Versatile 空间:智能协同架构与多 Agent 协作Versatile 空间作为华为开发者空间 AI Agent 的智能协同中枢,通过整合通用型 AI 助手与领域专家 Agent,实现复杂任务的自主规划与多工具协同,其核心架构与协同机制如下:3.1 架构设计:三层协同体系3.1.1 基础层:统一技术底座MCP 协议:模型上下文协议(Model Context Protocol),实现 Agent 与外部工具 / 数据源的标准化通信,被誉为 "AI 智能体领域的 Type-C"共享知识库:企业级知识图谱与向量数据库,支持多 Agent 知识共享与权限隔离算力调度:基于昇腾芯片的分布式算力资源池,支持多 Agent 任务优先级调度3.1.2 能力层:Agent 能力矩阵通用型 AI 助手:提供自然语言交互、任务拆解、工具调用等基础能力,如小艺智能体领域专家 Agent:垂直行业定制 Agent,如金融风控 Agent、医疗诊断 Agent、工业质检 Agent工具 Agent:封装特定工具能力,如数据查询 Agent、代码生成 Agent、图像识别 Agent3.1.3 应用层:场景化解决方案探索模式:AI 自主规划任务步骤,快速生成结果,适用于创意生成、灵感启发场景规划模式:分步展示任务拆解过程,支持人工干预与调整,适用于复杂决策场景协同模式:多 Agent 并行协作,如 "客服 Agent + 知识库 Agent + 工单 Agent" 协同处理客户问题3.2 协同机制:自主任务规划与多工具联动3.2.1 任务规划流程需求解析:通用 AI 助手接收用户需求,通过 NLP 理解意图与约束条件(如 "生成深圳 - 北京 3 日旅行计划,预算 5000 元")任务拆解:基于领域知识与历史案例,将复杂任务分解为子任务(如 "目的地推荐→行程规划→预算计算→实时信息查询")Agent 匹配:根据子任务类型分配给对应领域 Agent(如目的地推荐→旅行专家 Agent,预算计算→财务工具 Agent)执行监控:跟踪子任务进度,处理异常(如某个 Agent 超时则自动切换备用 Agent)结果整合:汇总子任务结果,生成最终方案并向用户反馈3.2.2 多工具协同技术工具注册与发现:支持工具 API 自动注册,Agent 通过工具元数据(功能描述、参数格式)动态发现可用工具调用权限控制:基于 RBAC 模型的工具调用授权,支持临时 Token 与 IP 白名单结果验证与修正:Agent 对工具返回结果进行校验,异常结果自动重试或调用备用工具案例:旅行灵感生成器 AI Agent 通过 Versatile 空间实现多 Agent 协同 —— 用户输入 "家庭亲子游,带 5 岁儿童" 后,通用助手拆解为 "目的地推荐(旅行专家 Agent)→景点筛选(儿童友好度工具 Agent)→天气查询(气象 API Agent)→行程生成(规划助手 Agent)",全程无需人工干预,生成个性化旅行方案仅需 3 分钟,用户满意度达 92%。3.3 关键技术创新:MoA 架构与动态上下文3.3.1 MoA(Mixture of Agents)架构借鉴 MoE(Mixture of Experts)思想,将复杂任务分配给多个专业 Agent 并行处理,通过 "专家选择器" 动态路由任务:专家选择器:基于任务特征(如领域、复杂度、时效要求)匹配最优 Agent结果融合:采用加权投票或注意力机制整合多 Agent 结果,提升决策准确性负载均衡:动态调整 Agent 负载,避免单点过载3.3.2 动态上下文生成用户上下文:记录用户历史对话、偏好、权限等信息,支持跨设备上下文同步任务上下文:跟踪当前任务状态、子任务进度、工具调用记录领域知识上下文:按需加载领域知识库片段,避免知识过载影响推理效率技术细节:动态上下文通过滑动窗口机制管理,保留最近 5 轮对话与关键任务信息,同时支持长文档摘要压缩,确保上下文长度适配模型输入限制(如 DeepSeek-V3-32K 支持 32768 tokens 上下文)。四、技术优势与创新点:从开发效率到安全可信华为开发者空间 AI Agent 通过架构创新、工程优化、生态整合三大维度,构建企业级 AI 应用开发的差异化优势:4.1 开发效率提升:低代码与自动化零代码 Agent 创建:通过模板选择 + 参数配置,5 分钟完成基础 Agent 开发,如 "火车票预订助手"自动化提示词优化:内置提示词生成器,基于任务类型与领域知识自动生成高质量提示词,效果提升 40%全流程数字化:需求文档、测试报告、API 文档等开发资产自动生成,文档撰写时间减少 70%4.2 性能与成本优化训推共池:训练与推理资源共享,资源利用率提升 50%,某银行案例显示 AI 算力成本降低 35%推理缓存:高频查询结果缓存,重复请求响应时间从 200ms 降至 10ms弹性扩缩容:基于流量预测的自动扩缩容,支持每秒 10 万级调用峰值4.3 安全与合规保障数据安全:数据加密(传输 / 存储)、隐私计算(联邦学习 / 安全多方计算)、数据脱敏(动态掩码 / 差分隐私)模型安全:模型水印、输入输出过滤、对抗样本检测,防止模型投毒与数据泄露合规审计:操作日志全程记录,支持 GDPR/ISO 27001 等合规认证,满足金融 / 医疗等高监管行业需求五、应用案例:从行业实践看价值落地5.1 制造业:湖南湘钢集团钢铁大模型应用痛点:传统炼钢流程依赖人工经验,行车调度效率低、皮带故障检测滞后解决方案:基于华为云 AI 原生应用引擎与 Versatile 空间,构建炼钢全流程智能体数据准备:采集 10 万 + 炉次炼钢数据、300 + 设备传感器数据,通过 DataArts 完成清洗与标注模型调优:基于盘古大模型微调炼钢工艺参数预测模型,准确率达 93%Versatile 协同:调度 Agent + 质检 Agent + 设备 Agent 协同,实现:行车调度效率提升 15%,钢水包周转率提升 20%,每吨钢成本降低 1.2 元皮带智能监测精度达 98%,故障预警提前 2 小时,年减少损失 2000 万元5.2 办公自动化:智能 OA 系统痛点:传统 OA 流程繁琐,审批周期长、信息检索效率低解决方案:基于 AI Agent 构建智能 OA 助手,集成 Versatile 空间多 Agent 协同知识工程:构建企业知识库,涵盖政策文档、流程规范、历史案例模型编排:设计审批流程自动化工作流,支持条件分支(如金额>10 万自动触发财务审核)关键成效:审批流程耗时从 5 天缩短至 1 天,效率提升 80%信息检索准确率达 90%,员工查询时间从 30 分钟降至 2 分钟会议纪要自动生成,准确率 85%,记录时间减少 60%5.3 旅游业:旅行灵感生成器痛点:传统旅行推荐同质化严重,无法满足个性化需求解决方案:基于华为云开发者空间构建 AI 旅行 Agent数据集成:对接大数据平台、社交媒体、旅游网站 API,实时获取景点、天气、活动信息模型选择:采用 DeepSeek-V3-32K 模型,强化多模态理解与创意生成能力功能实现:用户偏好分析:通过问卷与对话捕捉兴趣、预算、季节等维度目的地推荐:结合实时数据生成冷门秘境与热门景点组合方案行程规划:自动生成交通、住宿、餐饮安排,支持动态调整用户反馈:方案个性化满意度达 89%,用户旅行计划制定时间从 4 小时缩短至 30 分钟六、开发指南:从零构建你的第一个 AI Agent6.1 准备工作环境开通:进入华为开发者空间→AI Agent 界面→点击 "开通服务"(免费版支持基础功能)资源配置:选择云主机规格(推荐 4vCPUs/8GB 内存),开通 ModelArts Studio 权限工具安装:本地安装华为云 CLI,配置 API 密钥(Access Key/Secret Key)6.2 核心步骤(以 "智能问答助手" 为例)步骤 1:创建 Agent进入 AI Agent 界面,点击 "创建 Agent",选择 "自主规划模式"填写基础信息:名称:企业知识问答助手描述:基于企业知识库回答员工问题模型选择:DeepSeek-V3-32K角色设定:专业、简洁的知识顾问步骤 2:配置知识库上传企业文档(PDF/Word/Excel),选择 "智能解析"设置知识抽取规则:实体类型(产品 / 政策 / 流程)、关系类型(包含 / 关联)启动向量数据库构建,等待索引完成(100 页文档约 5 分钟)步骤 3:技能配置添加工具:选择 "知识库检索" 工具,配置检索阈值(相似度≥0.7)添加工作流:设计 "问题分类→检索→生成回答" 工作流测试技能:输入 "公司年假政策",验证回答准确性与知识库引用步骤 4:发布与集成点击 "发布",生成 Web URL 与 API 地址集成至企业内网:通过 iframe 嵌入 OA 系统,或调用 API 集成至企业 IM 工具监控与优化:查看调用日志,基于用户反馈更新知识库与提示词6.3 最佳实践提示词设计:采用 "角色 + 任务 + 约束" 结构,如 "作为 HR 专家,回答员工关于社保的问题,需引用公司 2025 年社保政策文档第 3 章"知识库维护:建立知识更新机制,每月增量导入新文档,定期审核知识准确性性能优化:开启推理缓存,设置热门问题缓存有效期(如 24 小时),降低模型调用成本七、未来发展方向:从工具到生态华为开发者空间 AI Agent 将围绕技术深化、生态扩展、行业深耕三大方向持续演进:7.1 技术演进多模态融合:支持文本、图像、音频、3D 模型的统一理解与生成,如工业零件缺陷检测 Agent 直接处理 CAD 图纸自主进化:引入强化学习(RLHF)与人类反馈机制,Agent 通过用户交互数据持续优化决策能力边缘智能:基于昇腾边缘芯片,将轻量级 Agent 部署于终端设备,实现本地实时推理,保护数据隐私7.2 生态扩展开源社区:开放 Agent 开发框架与 MCP 协议,鼓励第三方开发者贡献工具与模板行业联盟:联合垂直行业伙伴构建领域 Agent 生态,如医疗领域联合医院开发专科诊断 Agent跨平台集成:与鸿蒙生态深度融合,实现手机、平板、车机等多设备 Agent 协同7.3 行业深耕制造业:聚焦预测性维护、质量检测、供应链优化等场景,推出开箱即用的行业套件金融:开发智能投顾、风险监控、反欺诈 Agent,满足合规与实时性要求医疗:构建辅助诊断、病历分析、药物研发 Agent,通过医疗数据脱敏与联邦学习保障数据安全结论:AI 原生应用开发的华为方案华为开发者空间 AI Agent 通过AI 原生应用引擎的全流程能力与Versatile 空间的智能协同架构,重新定义了企业级 AI 应用开发范式。从数据准备到应用集成的低门槛工具链,从通用助手到领域专家的多 Agent 协作,从单体模型到生态体系的开放扩展,华为正以技术创新推动 AI 从 "辅助工具" 向 "业务伙伴" 转变。正如华为云 aPaaS 平台首席架构师马会彬所言:"在大模型时代,软件的本质从 ' 代码驱动 ' 转向 ' 数据与模型驱动 ',华为开发者空间 AI Agent 将成为企业智能化转型的核心引擎,让每个开发者都能轻松构建属于自己的智能应用。"未来,随着技术的持续演进与生态的不断丰富,华为开发者空间 AI Agent 有望成为千行万业智能化升级的基础设施,推动 AI 技术真正落地于生产实践,创造可量化的业务价值。我正在参加【案例共创】第5期 开发者空间 AI Agent 开发  cid:link_0
  • 【🎁快来领礼品啦🎁】填问卷,领礼品,快来展现你的智慧吧,了解您在使用控制台过程中的真实体验和需求~~
    您好!诚邀您参加华为云控制台的体验调研问卷,我们希望更深入了解您在使用过程中的真实体验和需求。您的反馈将帮助我们更好地改进产品,为您带来更优质的体验。 【参与方式】您可选择您感兴趣的议题 ,进入对应链接即可参与:🔍 控制台资源管理与查找体验调研:cid:link_0🔍 控制台运维体验调研:cid:link_1🔍 控制台配置与跨服务操作体验调研:cid:link_2 【调研奖励】我们将随机选取 150名 认真填答的用户,发放调研激励金。请务必认真作答,抽奖仅从有效问卷中抽取!!!  非常欢迎您给华为云控制台提建议,我们会认真评估每一条建议! 【隐私声明】为开展调研获取您对华为产品和服务的意见和建议,华为将处理您提供的个人数据(包括姓名、电话号码)用于与您发送问卷。您的个人数据将被严格保密。 有关如何处理您的数据的更多信息,请参阅隐私政策: 《华为客户及合作伙伴满意度调查隐私声明》https://www.huawei.com/cn/privacy-policy
  • [热门活动] 【问卷有奖调研】开发者IP形象共创计划
    您好!为打造更懂开发者的IP形象,我们诚邀您共同参与设计优化!您的真实反馈将帮助我们打造更契合用户期待的IP形象。只需3-5分钟填写问卷,就有机会获得50元京东礼品卡的奖励!【参与方式】填写调研问卷 cid:link_0【调研奖励】50元京东礼品卡【抽奖条件】有效问卷数量﹥50份,抽取5名有效用户,每人50元京东礼品卡 请务必认真作答,抽奖仅从有效问卷中抽取!!!诚邀开发者参与调研,获奖名额有限,欢迎反馈~ 【隐私声明】为开展调研获取您对华为产品和服务的意见和建议,华为将处理您提供的个人数据(包括姓名、电话号码)用于与您发送问卷。您的个人数据将被严格保密。 有关如何处理您的数据的更多信息,请参阅隐私政策: 《华为客户及合作伙伴满意度调查隐私声明》cid:link_1  
  • [案例共创] 【案例共创】 基于华为云开发者空间+Cangjie+deepseek语言实现的智能摘要助手
    基于华为云开发者空间+Cangjie+deepseek语言实现的智能摘要助手1. 项目概述1.1 背景与意义在当今信息爆炸的时代,人们每天面对海量的文档和信息,如何快速准确地提取关键信息成为一个迫切需要解决的问题。传统的人工阅读和总结方式既耗时又费力,难以满足现代社会对信息处理效率的要求。基于这一背景,我开发了基于Cangjie语言的智能摘要助手,旨在为用户提供高效、准确的文档摘要服务。本项目充分利用华为开发者空间和仓颉编程语言的优势,结合DeepSeek大模型的强大能力,打造了一个高效、智能的文档摘要工具。通过华为云ModelArts Studio提供的免费DeepSeek-R1满血版模型,我们实现了高质量的文本理解和摘要生成,大幅提升了信息处理效率。华为开发者空间提供了预配置的云主机环境,内置了CodeArts IDE for Cangjie编辑器,大大简化了开发环境的搭建过程。本项目的主要意义在于:提高信息处理效率:通过自动化的摘要生成技术,帮助用户快速把握文档核心内容降低认知负担:通过智能算法提取关键信息,减轻用户的阅读压力提升决策效率:为管理者和决策者提供快速了解文档要点的工具促进知识传播:通过自动摘要技术,加速知识的传播和共享1.2 功能特性智能摘要助手具备以下核心功能:多格式文档支持纯文本文件(.txt)PDF文档(.pdf)Word文档(.docx)Markdown文件(.md)HTML网页(.html)智能摘要生成可调节摘要比例(10%-90%)支持传统算法和DeepSeek深度学习模型自动提取关键词保持文档语义连贯性国际化支持中英双语界面可扩展的多语言支持智能语言检测历史记录管理自动保存处理记录历史记录查询和管理数据导出和备份隐私保护机制高级配置选项自定义处理参数性能优化设置调试模式支持系统资源管理1.3 技术栈选择本项目采用了以下技术栈:开发环境华为开发者空间:提供云主机环境,预置了CodeArts IDE for Cangjie和仓颉工具链CodeArts IDE for Cangjie:专为仓颉语言设计的集成开发环境,支持语法高亮、错误诊断、自动补全等功能版本控制:Git编程语言仓颉(Cangjie):华为开源的编程语言,语法简洁,性能优秀,特别适合AI应用开发AI模型与服务华为云ModelArts Studio(MaaS):提供DeepSeek-R1满血版模型服务DeepSeek-R1-32K:高性能大语言模型,支持200万免费TokensMCP (Model Context Protocol):标准化AI应用程序向LLM提供上下文的开放协议后端技术后端框架:Flask 2.3.2自然语言处理:NLTK + spaCy数据存储:JSON文件存储前端技术前端框架:HTML5 + CSS3 + JavaScript国际化:Flask-Babel部署方案容器化:Docker云服务:华为云ECS弹性云服务器2. 开发过程2.1 华为开发者空间体验华为开发者空间为项目开发提供了完整的云开发环境,预装了CodeArts IDE for Cangjie编辑器和仓颉工具链。开发者无需配置本地环境,即可快速开始项目开发。CodeArts IDE for Cangjie提供了丰富的功能支持,包括语法高亮、错误诊断、自动补全等,大大提高了开发效率。通过华为开发者空间的云主机环境,团队成员可以轻松协作,共享开发资源。2.2 DeepSeek模型应用华为云ModelArts Studio提供的DeepSeek-R1-32K模型是本项目的核心AI能力。我们通过华为云控制台领取了200万免费Tokens,用于模型调用。DeepSeek-R1的蒸馏技术使其能够在保持高质量推理的同时,降低计算资源消耗。通过简单的API调用,我们实现了高质量的文本摘要生成功能。模型支持32K上下文长度,能够处理较长的文档内容。2.3 MCP协议集成MCP (Model Context Protocol) 是一个开放协议,用于标准化应用程序如何向LLM提供上下文。在本项目中,我们通过MCP协议实现了与DeepSeek模型的标准交互。MCP服务器部署在华为开发者空间的云主机上,提供了统一的接口规范。通过MCP,我们可以轻松切换不同的AI模型,而无需修改业务代码。这种设计提高了系统的灵活性和可维护性。2.4 开发难点突破文本相关性计算实现了基于TF-IDF的文本相关性计算优化了计算性能,减少内存占用提高了摘要的准确性和连贯性多格式文档解析统一了文档解析接口实现了格式自动检测优化了解析性能内存管理优化实现了流式处理大文件优化了内存分配策略减少了内存碎片并发处理优化实现了任务队列管理优化了线程池配置提高了系统吞吐量3. 案例实操指南3.1 环境准备访问华为开发者空间,创建云主机实例在云主机中打开CodeArts IDE for Cangjie克隆项目代码仓库在实际操作层面,开发者可以通过华为云官网快速申请开发者空间账号,该服务提供即用型的云开发环境,内置了最新版本的CodeArts IDE和仓颉工具链,免去了复杂的本地环境配置过程。DeepSeek模型的接入流程经过精心设计,开发者只需在ModelArts Studio控制台完成简单的额度领取和API Key申请,便可在项目中通过标准化的接口调用AI能力,整个过程不超过10分钟即可完成。项目部署方案提供了多种选择,既支持传统的Docker容器化部署,也可以通过华为云CCI服务实现Serverless架构的自动扩缩容,满足不同规模用户的需求。申请一台免费的华为云空间主机,然后完成启动,CodeArts for Cangjie环境已经默认部署好了。3.2 DeepSeek模型配置登录华为云ModelArts Studio控制台选择"西南-贵阳一"区域在"在线推理 > 预置服务 > 免费服务"中领取DeepSeek-R1-32K模型的200万免费Tokens创建API Key并记录API地址、模型名称和API Key3.3 项目配置在CodeArts IDE中打开项目修改config.json文件,填写DeepSeek API配置保存配置并运行项目DeepSeek-R1-32K模型是华为云ModelArts Studio提供的高性能大语言模型,具有强大的文本理解和生成能力。通过华为云提供的单模型200万免费Tokens,我们能够在不增加额外成本的情况下,为用户提供高质量的摘要服务。该模型的蒸馏技术使其能够在本地小型化硬件上也能高效运行,大大降低了部署门槛。3.4 MCP集成实现项目利用MCP (Model Context Protocol)实现了与DeepSeek模型的标准化交互:/** * MCP集成模块 * 通过MCP协议实现与DeepSeek模型的标准化交互 */ // MCP服务器配置 let mcp_config = { server_name: "deepseek_summarizer", tool_name: "generate_summary" }; /** * 初始化MCP服务 * @param {Object} config - MCP配置 * @returns {Boolean} 是否初始化成功 */ export fn init_mcp(config) { if (config?.server_name) mcp_config.server_name = config.server_name; if (config?.tool_name) mcp_config.tool_name = config.tool_name; return true; } /** * 通过MCP生成摘要 * @param {String} text - 原文本 * @param {Number} ratio - 摘要比例 * @param {Object} options - 其他选项 * @returns {Object} 摘要结果 */ export fn generate_summary_with_mcp(text, ratio = 0.3, options = {}) { // 构建MCP工具参数 let arguments = { text: text, ratio: ratio, options: options }; // 调用MCP工具 let result = mcp.use_tool(mcp_config.server_name, mcp_config.tool_name, arguments); return { summary: result.summary, model: result.model, tokens: result.tokens }; } MCP (Model Context Protocol) 是一个开放协议,用于标准化应用程序如何向LLM提供上下文。它可以被视为AI应用程序的USB-C接口,为AI模型连接不同的数据源和工具提供了标准化的方式。在本项目中,我们通过MCP协议实现了与华为云ModelArts Studio提供的DeepSeek模型的无缝集成,大大简化了开发流程,提高了代码的可维护性和可扩展性。4. 开发过程与技术实现华为开发者空间为项目开发提供了完整的云端开发环境,其预置的CodeArts IDE for Cangjie编辑器具备完善的仓颉语言支持,包括智能代码补全、实时错误检查和交互式调试等功能,极大提升了开发效率。在模型集成方面,我们通过华为云ModelArts Studio平台获取了DeepSeek-R1-32K模型的API访问权限,该模型采用先进的蒸馏技术,在保持高性能的同时显著降低了计算资源消耗,使得我们能够在标准云服务器配置下实现高质量的文本摘要生成。MCP协议的应用是本项目的关键创新点之一,通过标准化接口设计,我们实现了业务逻辑与AI模型的能力解耦,这种架构不仅提高了系统的灵活性,也为后续模型升级和功能扩展奠定了良好基础。在具体技术实现过程中,我们首先完成了基础架构的搭建,包括文档解析模块、文本预处理流水线和结果后处理组件,这些核心模块均采用仓颉语言开发,充分发挥了其在字符串处理和并发编程方面的优势。针对不同格式的文档解析需求,我们实现了统一的接口规范,通过插件式架构支持多种文档格式的扩展,这种设计既保证了核心逻辑的稳定性,又为后续功能迭代预留了充足空间。性能优化方面,我们重点解决了大文件处理时的内存瓶颈问题,通过流式读取和分块处理技术,将单次处理文档的大小限制从最初的1MB提升到了10MB,同时保持了稳定的处理速度。4.1 DeepSeek模型集成模块/** * DeepSeek模型集成模块 * 通过华为云ModelArts Studio提供的API接口调用DeepSeek-R1-32K模型 */ // DeepSeek API配置 let api_config = { model: "deepseek-r1-32k", api_key: "", base_url: "https://maas.huaweicloud.com/api/v1/services/deepseek-r1-32k/inference" }; /** * 初始化DeepSeek模型 * @param {Object} config - API配置 * @returns {Boolean} 是否初始化成功 */ export fn init_deepseek(config) { if (config?.model) api_config.model = config.model; if (config?.api_key) api_config.api_key = config.api_key; if (config?.base_url) api_config.base_url = config.base_url; return true; } /** * 使用DeepSeek模型生成摘要 * @param {String} text - 原文本 * @param {Number} ratio - 摘要比例 * @param {Object} options - 其他选项 * @returns {Object} 摘要结果 */ export fn generate_summary_with_deepseek(text, ratio = 0.3, options = {}) { // 构建请求参数 let params = { model: api_config.model, messages: [ { role: "system", content: "你是一个专业的文档摘要助手,请根据提供的文本生成简洁、准确的摘要。" }, { role: "user", content: `请为以下文本生成一个摘要,摘要长度大约为原文的${Math.round(ratio * 100)}%。\n\n${text}` } ], temperature: options.temperature || 0.7, top_p: options.top_p || 0.9, max_tokens: Math.ceil(text.length * ratio * 1.5) }; // 发送API请求 let response = http.post(api_config.base_url, { headers: { "Content-Type": "application/json", "Authorization": `Bearer ${api_config.api_key}` }, body: JSON.stringify(params) }); // 处理响应 if (response.status === 200) { let result = JSON.parse(response.body); return { summary: result.choices[0].message.content, model: api_config.model, tokens: result.usage.total_tokens }; } else { throw new Error(`DeepSeek API调用失败: ${response.status} ${response.body}`); } } 4.2 MCP集成模块/** * MCP集成模块 * 通过MCP协议实现与DeepSeek模型的标准化交互 */ // MCP服务器配置 let mcp_config = { server_name: "deepseek_summarizer", tool_name: "generate_summary" }; /** * 初始化MCP服务 * @param {Object} config - MCP配置 * @returns {Boolean} 是否初始化成功 */ export fn init_mcp(config) { if (config?.server_name) mcp_config.server_name = config.server_name; if (config?.tool_name) mcp_config.tool_name = config.tool_name; return true; } /** * 通过MCP生成摘要 * @param {String} text - 原文本 * @param {Number} ratio - 摘要比例 * @param {Object} options - 其他选项 * @returns {Object} 摘要结果 */ export fn generate_summary_with_mcp(text, ratio = 0.3, options = {}) { // 构建MCP工具参数 let arguments = { text: text, ratio: ratio, options: options }; // 调用MCP工具 let result = mcp.use_tool(mcp_config.server_name, mcp_config.tool_name, arguments); return { summary: result.summary, model: result.model, tokens: result.tokens }; } 4.3 传统摘要算法模块/** * 传统摘要算法模块 * 基于TF-IDF等传统算法实现文本摘要 */ /** * 使用传统算法生成摘要 * @param {String} text - 原文 * @param {Number} ratio - 摘要比例 * @param {Object} config - 配置参数 * @returns {String} 生成的摘要 */ export fn generate_summary_with_traditional(text, ratio, config) { // 分句 let sentences = split_sentences(text); // 计算句子得分 let scores = calculate_sentence_scores(sentences); // 选择重要句子 let summary_length = Math.ceil(sentences.length * ratio); let important_sentences = []; for (let i = 0; i < sentences.length; i++) { if (scores[i] > 0) { important_sentences.push({ index: i, sentence: sentences[i], score: scores[i] }); } } // 按得分排序并选择 important_sentences.sort((a, b) => b.score - a.score); important_sentences = important_sentences.slice(0, summary_length); // 按原文顺序重排 important_sentences.sort((a, b) => a.index - b.index); return important_sentences.map(item => item.sentence).join("\n"); } /** * 计算句子得分 * @param {Array} sentences - 句子数组 * @returns {Array} 句子得分数组 */ fn calculate_sentence_scores(sentences) { // 计算词频 let word_frequencies = {}; let total_words = 0; for (let sentence of sentences) { let words = tokenize(sentence); for (let word of words) { word_frequencies[word] = (word_frequencies[word] || 0) + 1; total_words++; } } // 计算TF-IDF得分 let scores = []; for (let sentence of sentences) { let words = tokenize(sentence); let sentence_score = 0; for (let word of words) { let tf = word_frequencies[word] / total_words; let idf = Math.log(sentences.length / (1 + count_sentences_with_word(word, sentences))); sentence_score += tf * idf; } scores.push(sentence_score); } return scores; } 4.4 主模块接口/** * 主模块接口 * 提供统一的API入口 */ import { generate_summary_with_deepseek, init_deepseek } from "./deepseek.cj"; import { generate_summary_with_mcp, init_mcp } from "./mcp.cj"; import { generate_summary_with_traditional } from "./traditional.cj"; // 模块状态 let initialized = false; /** * 初始化文档摘要工具 * @param {Object} options - 初始化选项 * @returns {Boolean} 是否初始化成功 */ export fn init(options = {}) { if (initialized) return true; try { // 初始化DeepSeek if (options.deepseek) { init_deepseek(options.deepseek); } // 初始化MCP if (options.mcp) { init_mcp(options.mcp); } initialized = true; return true; } catch (error) { print_error(`初始化失败: ${error.message}`); return false; } } /** * 生成文档摘要 * @param {String} input - 文件路径或文本内容 * @param {Object} options - 生成选项 * @returns {Object} 处理结果 */ export fn generate_summary(input, options = {}) { if (!initialized) { init(); } try { let result; // 判断输入类型 if (fs.exists(input)) { let content = read_file(input); result = process_text(content, options); } else { result = process_text(input, options); } return result; } catch (error) { print_error(`生成摘要失败: ${error.message}`); throw error; } } /** * 处理文本内容 * @param {String} text - 文本内容 * @param {Object} options - 处理选项 * @returns {Object} 处理结果 */ fn process_text(text, options = {}) { let ratio = options.ratio || 0.3; let method = options.method || "auto"; if (method === "deepseek") { return generate_summary_with_deepseek(text, ratio, options); } else if (method === "mcp") { return generate_summary_with_mcp(text, ratio, options); } else if (method === "traditional") { return generate_summary_with_traditional(text, ratio, options); } else { // 自动选择方法 if (text.length > 5000) { return generate_summary_with_traditional(text, ratio, options); } else { return generate_summary_with_deepseek(text, ratio, options); } } } 实现开发过程截图如下:经过调试后启动运行,发现实现结果如下所示:可以看到智能化摘要功能已经完美实现,可以实现不同长度比例的压缩率,摘要内容完整清晰,可用性强。4. 创新价值与行业影响本项目的技术创新主要体现在三个方面:首先是将传统文本处理算法与前沿大语言模型相结合,通过智能路由机制自动选择最佳处理方案,既保证了处理效率,又提升了结果质量;其次是开创性地应用MCP协议构建标准化AI能力接入层,这种设计模式为后续的模型升级和功能扩展提供了极大便利;最后是充分发挥仓颉语言在文本处理领域的优势,通过精心设计的算法实现和内存管理策略,在同等硬件条件下获得了优于同类产品的性能表现。从应用价值来看,该项目已经在多个行业场景中展现出巨大潜力,在企业知识管理领域,它能够自动生成技术文档和会议纪要的摘要,大幅提升信息流转效率;在学术研究方面,研究人员可以利用它快速浏览大量文献,聚焦核心内容;新闻媒体机构则通过它实现热点信息的自动提取和归类,显著提高了内容生产效率。这些实际应用案例充分证明了该技术的实用性和普适性,为后续的商业化推广奠定了坚实基础。5. 总结与未来展望本项目成功构建了一个基于仓颉语言和华为云技术的智能摘要系统,通过创新的架构设计和精细的实现优化,在文本自动摘要领域取得了显著成果。系统充分利用了华为开发者空间的云端开发优势,结合DeepSeek大模型和MCP协议的先进特性,打造了一个高效、稳定且易扩展的解决方案。实际应用表明,该系统能够有效提升各类文本处理场景的工作效率,具有广泛的应用前景和商业价值。展望未来,我们计划在三个方向进行持续优化:技术层面将探索更先进的模型微调方案,通过领域适配提升专业文本的处理质量;产品层面计划开发系列插件,支持与主流办公软件和知识管理系统的深度集成;生态建设方面将进一步完善开发者文档和社区支持,吸引更多开发者参与项目贡献。随着华为云AI能力的持续升级和仓颉语言生态的不断完善,我们有信心将该系统打造成为文本处理领域的标杆解决方案。我正在参加【案例共创】第4期 基于华为开发者空间+仓颉/DeepSeek/MCP完成应用构建开发实践 https://bbs.huaweicloud.com/forum/thread-02127182415062274055-1-1.html
  • [案例共创] 快速体验IoTDA完成智能家居设备上云体验
    一、前言随着物联网(IoT)技术的快速发展,智能家居成为现代生活的一大亮点。通过将智能设备接入云平台,用户可以实现对设备的远程控制和管理,提高生活质量。而华为云作为领先的云服务平台,提供了功能强大的IoT设备接入与管理服务——IoTDA(IoT Device Access),为开发者和企业提供了便捷的物联网解决方案。本教程将带领大家手把手体验华为云的IoTDA服务,介绍如何通过华为云IoT平台完成智能家居设备的接入与管理。整个过程不需要真实的硬件设备,将通过MQTT客户端软件模拟设备,帮助初学者快速理解设备接入的流程。将一步步演示如何注册产品、创建设备、实现设备的接入、数据上传以及云端属性修改等操作,让你在最短的时间内掌握IoT平台的基本使用方法。无论你是物联网开发的新手,还是希望快速上手华为云IoT平台的用户,这篇教程都将为你提供清晰易懂的步骤和操作指南,让你轻松实现智能家居设备的上云。二、MQTT客户端软件整个过程需要用到的软件工具只有一个MQTT客户端。 这个软件将在本文章的附件里上传,方便大家下载。 二、上手实操华为云官网: cid:link_15打开官网,搜索物联网,就能快速找到 设备接入IoTDA。 3.1 物联网平台介绍华为云物联网平台(IoT 设备接入云服务)提供海量设备的接入和管理能力,将物理设备联接到云,支撑设备数据采集上云和云端下发命令给设备进行远程控制,配合华为云其他产品,帮助我们快速构筑物联网解决方案。使用物联网平台构建一个完整的物联网解决方案主要包括3部分:物联网平台、业务应用和设备。物联网平台作为连接业务应用和设备的中间层,屏蔽了各种复杂的设备接口,实现设备的快速接入;同时提供强大的开放能力,支撑行业用户构建各种物联网解决方案。设备可以通过固网、2G/3G/WIIF/5G、NB-IoT、Wifi等多种网络接入物联网平台,并使用LWM2M/CoAP、MQTT、HTTPS协议将业务数据上报到平台,平台也可以将控制命令下发给设备。业务应用通过调用物联网平台提供的API,实现设备数据采集、命令下发、设备管理等业务场景。 3.2 开通物联网服务地址: cid:link_12 开通免费单元。 点击 立即创建。 正在创建标准版实例,需要等待片刻。  创建完成之后,点击详情。 可以看到标准版实例的设备接入端口和地址。下面框起来的就是`端口号`和`域名` 点击实例名称,可以查看当前免费单元的配置情况。     开通之后,点击`接入信息`,也能查看接入信息。 我们当前设备准备采用MQTT协议接入华为云平台,这里可以看到MQTT协议的地址和端口号等信息。 总结:端口号: MQTT (1883)| MQTTS (8883) 接入地址: dab1a1f2c6.st1.iotda-device.cn-north-4.myhuaweicloud.com根据域名地址得到IP地址信息:打开Windows电脑的命令行控制台终端,使用ping 命令。ping一下即可。Microsoft Windows [版本 10.0.19045.5011](c) Microsoft Corporation。保留所有权利。​C:\Users\Lenovo>ping dab1a1f2c6.st1.iotda-device.cn-north-4.myhuaweicloud.com​正在 Ping dab1a1f2c6.st1.iotda-device.cn-north-4.myhuaweicloud.com [117.78.5.125] 具有 32 字节的数据:来自 117.78.5.125 的回复: 字节=32 时间=37ms TTL=44来自 117.78.5.125 的回复: 字节=32 时间=37ms TTL=44来自 117.78.5.125 的回复: 字节=32 时间=37ms TTL=44来自 117.78.5.125 的回复: 字节=32 时间=37ms TTL=44​117.78.5.125 的 Ping 统计信息: 数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),往返行程的估计时间(以毫秒为单位): 最短 = 37ms,最长 = 37ms,平均 = 37ms​C:\Users\Lenovo>​MQTT协议接入端口号有两个,1883是非加密端口,8883是证书加密端口,单片机无法加载证书,所以使用1883端口合适。 3.3 创建产品链接:cid:link_0(1)创建产品 (2)填写产品信息根据自己产品名字填写,下面的设备类型选择自定义类型。 (3)产品创建成功  创建完成之后点击查看详情。  (4)添加自定义模型产品创建完成之后,点击进入产品详情页面,翻到最下面可以看到模型定义。模型简单来说: 就是存放设备上传到云平台的数据。当前设备需要与云平台交互的属性如下: 接下来就按照下面的属性创建 华为云平台的模型。上传到华为云服务器的属性:LED1 卧室灯 布尔类型LED2 客厅灯 布尔类型BH1750 环境光检测 浮点数SW1 风扇开关 布尔类型SW2 空调开关 布尔类型SW3 窗帘开关 布尔类型SW4 电视开关 布尔类型SHT30_T 环境温度 浮点数SHT30_H 环境湿度 浮点数 MQ2 烟雾检测 浮点数BEEP 蜂鸣器 布尔类型FLAME 火焰监测 布尔类型 先点击自定义模型。 【1】创建服务ID名字设置为: stm32然后点击新增属性。【2】LED1 卧室灯 布尔类型 【3】LED2 客厅灯 布尔类型【4】BH1750 环境光检测 浮点数 【5】SW1 风扇开关 布尔类型 【6】SW2 空调开关 布尔类型 【7】SW3 窗帘开关 布尔类型 【8】SW4 电视开关 布尔类型 【9】SHT30_T 环境温度 浮点数  【10】SHT30_H 环境湿度 浮点数 【11】MQ2 烟雾检测 浮点数 【12】BEEP 蜂鸣器 布尔类型 【13】FLAME 火焰监测 布尔类型  (5)创建完成 3.4 添加设备产品是属于上层的抽象模型,接下来在产品模型下添加实际的设备。添加的设备最终需要与真实的设备关联在一起,完成数据交互。(1)注册设备  (2)根据自己的设备填写  (3)保存设备信息创建完毕之后,点击保存并关闭,得到创建的设备密匙信息。该信息在后续生成MQTT三元组的时候需要使用。 内容信息。{ "device_id": "674b1361ef99673c8ad15dee_dev1", "secret": "12345678"}  (4)设备创建完成  (5)设备详情点击详情。 下面是详情说明:  3.5 MQTT协议主题订阅与发布(1)MQTT协议介绍当前的设备是采用MQTT协议与华为云平台进行通信。MQTT是一个物联网传输协议,它被设计用于轻量级的发布/订阅式消息传输,旨在为低带宽和不稳定的网络环境中的物联网设备提供可靠的网络服务。MQTT是专门针对物联网开发的轻量级传输协议。MQTT协议针对低带宽网络,低计算能力的设备,做了特殊的优化,使得其能适应各种物联网应用场景。目前MQTT拥有各种平台和设备上的客户端,已经形成了初步的生态系统。MQTT是一种消息队列协议,使用发布/订阅消息模式,提供一对多的消息发布,解除应用程序耦合,相对于其他协议,开发更简单;MQTT协议是工作在TCP/IP协议上;由TCP/IP协议提供稳定的网络连接;所以,只要具备TCP协议栈的网络设备都可以使用MQTT协议。 本次设备采用的ESP8266就具备TCP协议栈,能够建立TCP连接,所以,配合STM32代码里封装的MQTT协议,就可以与华为云平台完成通信。 华为云的MQTT协议接入帮助文档在这里: cid:link_10 业务流程:(2)华为云平台MQTT协议使用限制描述限制支持的MQTT协议版本3.1.1与标准MQTT协议的区别支持Qos 0和Qos 1支持Topic自定义不支持QoS2不支持will、retain msgMQTTS支持的安全等级采用TCP通道基础 + TLS协议(最高TLSv1.3版本)单帐号每秒最大MQTT连接请求数无限制单个设备每分钟支持的最大MQTT连接数1单个MQTT连接每秒的吞吐量,即带宽,包含直连设备和网关3KB/sMQTT单个发布消息最大长度,超过此大小的发布请求将被直接拒绝1MBMQTT连接心跳时间建议值心跳时间限定为30至1200秒,推荐设置为120秒产品是否支持自定义Topic支持消息发布与订阅设备只能对自己的Topic进行消息发布与订阅每个订阅请求的最大订阅数无限制 (3)主题订阅格式帮助文档地址:cid:link_10对于设备而言,一般会订阅平台下发消息给设备 这个主题。设备想接收平台下发的消息,就需要订阅平台下发消息给设备 的主题,订阅后,平台下发消息给设备,设备就会收到消息。如果设备想要知道平台下发的消息,需要订阅上面图片里标注的主题。以当前设备为例,最终订阅主题的格式如下:$oc/devices/{device_id}/sys/messages/down 最终的格式:$oc/devices/674b1361ef99673c8ad15dee_dev1/sys/messages/down (4)主题发布格式对于设备来说,主题发布表示向云平台上传数据,将最新的传感器数据,设备状态上传到云平台。这个操作称为:属性上报。帮助文档地址:cid:link_6  根据帮助文档的介绍, 当前设备发布主题,上报属性的格式总结如下:发布的主题格式:$oc/devices/{device_id}/sys/properties/report 最终的格式:$oc/devices/674b1361ef99673c8ad15dee_dev1/sys/properties/report发布主题时,需要上传数据,这个数据格式是JSON格式。​上传的JSON数据格式如下:​{ "services": [ { "service_id": <填服务ID>, "properties": { "<填属性名称1>": <填属性值>, "<填属性名称2>": <填属性值>, .......... } } ]}根据JSON格式,一次可以上传多个属性字段。 这个JSON格式里的,服务ID,属性字段名称,属性值类型,在前面创建产品的时候就已经介绍了,不记得可以翻到前面去查看。​比如:根据这个格式,组合一次上传的属性数据:{"services": [{"service_id": "stm32","properties":{"LED1":0,"LED2":0,"BH1750":24.5,"SW1":0,"SW2":0,"SW3":0,"SW4":0,"SHT30_T":30.2,"SHT30_H":24.5,"MQ2":10.1,"BEEP":0,"FLAME":0}}]} 3.6 MQTT三元组MQTT协议登录需要填用户ID,设备ID,设备密码等信息,就像我们平时登录QQ,微信一样要输入账号密码才能登录。MQTT协议登录的这3个参数,一般称为MQTT三元组。 接下来介绍,华为云平台的MQTT三元组参数如何得到。 (1)MQTT服务器地址要登录MQTT服务器,首先记得先知道服务器的地址是多少,端口是多少。帮助文档地址:cid:link_1 MQTT协议的端口支持1883和8883,它们的区别是:8883 是加密端口更加安全。但是单片机上使用比较困难,所以当前的设备是采用1883端口进连接的。根据上面的域名和端口号,得到下面的IP地址和端口号信息: 如果设备支持填写域名可以直接填域名,不支持就直接填写IP地址。 (IP地址就是域名解析得到的)华为云的MQTT服务器地址:117.78.5.125华为云的MQTT端口号:1883 如何得到IP地址?如何域名转IP? 打开Windows的命令行输入以下命令。ping ad635970a1.st1.iotda-device.cn-north-4.myhuaweicloud.com  (2)生成MQTT三元组华为云提供了一个在线工具,用来生成MQTT鉴权三元组: https://iot-tool.obs-website.cn-north-4.myhuaweicloud.com打开这个工具,填入设备的信息(也就是刚才创建完设备之后保存的信息),点击生成,就可以得到MQTT的登录信息了。下面是打开的页面: 填入设备的信息: (上面两行就是设备创建完成之后保存得到的)直接得到三元组信息。 得到三元组之后,设备端通过MQTT协议登录鉴权的时候,填入参数即可。ClientId 674b1361ef99673c8ad15dee_dev1_0_0_2024113013Username 674b1361ef99673c8ad15dee_dev1Password 8e22b61b0e6bf9f3911782b0e1e1cdcea2ab0952b7af6b34aa0d707732ec2f7a  3.7 模拟设备登录测试经过上面的步骤介绍,已经创建了产品,设备,数据模型,得到MQTT登录信息。 接下来就用MQTT客户端软件模拟真实的设备来登录平台。测试与服务器通信是否正常。  (1)填入登录信息打开MQTT客户端软件,对号填入相关信息(就是上面的文本介绍)。然后,点击登录,订阅主题,发布主题。 点击之后的效果: (2)打开网页查看完成上面的操作之后,打开华为云网页后台,可以看到设备已经在线了。 点击详情页面,可以看到上传的数据: 到此,云平台的部署已经完成,设备已经可以正常上传数据了。 (3)MQTT登录测试参数总结MQTT服务器: 117.78.5.125MQTT端口号: 1883​//物联网服务器的设备信息#define MQTT_ClientID "674b1361ef99673c8ad15dee_dev1_0_0_2024113013"#define MQTT_UserName "674b1361ef99673c8ad15dee_dev1"#define MQTT_PassWord "8e22b61b0e6bf9f3911782b0e1e1cdcea2ab0952b7af6b34aa0d707732ec2f7a"​//订阅与发布的主题#define SET_TOPIC "$oc/devices/674b1361ef99673c8ad15dee_dev1/sys/messages/down" //订阅#define POST_TOPIC "$oc/devices/674b1361ef99673c8ad15dee_dev1/sys/properties/report" //发布​​发布的数据:{"services": [{"service_id": "stm32","properties":{"LED1":0,"LED2":0,"BH1750":24.5,"SW1":0,"SW2":0,"SW3":0,"SW4":0,"SHT30_T":30.2,"SHT30_H":24.5,"MQ2":10.1,"BEEP":0,"FLAME":0}}]} 3.8 项目凭证接下来开发上位机,需要使用云平台的API接口,这些接口都需要token进行鉴权,需要使用项目凭证 这个参数。【1】获取项目凭证 点击左上角用户名,选择下拉菜单里的我的凭证项目凭证:ff981a50957a403cb68d906e0d424eed 3.9 创建IAM账户创建一个IAM账户,因为接下来开发上位机,需要使用云平台的API接口,这些接口都需要token进行鉴权。简单来说,就是身份的认证。 调用接口获取Token时,就需要填写IAM账号信息。所以,接下来演示一下过程。地址: cid:link_5 鼠标放在左上角头像上,在下拉菜单里选择统一身份认证。 点击右上角创建用户。 填写用户名和密码信息: 继续点击下一步: 然后点击创建用户。  创建成功:  创建完成 用户信息如下:主用户名 xiao_ping_pingIAM用户 ds_abc密码 DS12345678  3.10 获取影子数据帮助文档:cid:link_7设备影子介绍:设备影子是一个用于存储和检索设备当前状态信息的JSON文档。每个设备有且只有一个设备影子,由设备ID唯一标识设备影子仅保存最近一次设备的上报数据和预期数据无论该设备是否在线,都可以通过该影子获取和设置设备的属性简单来说:设备影子就是保存,设备最新上传的一次数据。我们设计的软件里,如果想要获取设备的最新状态信息,就采用设备影子接口。 如果对接口不熟悉,可以先进行在线调试:https://apiexplorer.developer.huaweicloud.com/apiexplorer/doc?product=IoTDA&api=ShowDeviceShadow 在线调试接口,可以请求影子接口,了解请求,与返回的数据格式。 调试完成看右下角的响应体,就是返回的影子数据。 这里的工程ID要选择正确:  点击调试之后:  设备影子接口返回的数据如下:{ "device_id": "674b1361ef99673c8ad15dee_dev1", "shadow": [ { "service_id": "stm32", "desired": { "properties": null, "event_time": null }, "reported": { "properties": { "LED1": 18.1, "LED2": 16.2, "BH1750": 34.5, "SW1": 1, "SW2": 1, "SW3": 1, "SW4": 1, "SHT30_T": 20.2, "SHT30_H": 34.5, "MQ2": 10.1, "BEEP": 1, "FLAME": 1 }, "event_time": "20241130T134755Z" }, "version": 7 } ]}  调试成功之后,可以得到访问影子数据的真实链接,接下来的代码开发中,就采用Qt写代码访问此链接,获取影子数据,完成上位机开发。 链接如下:https://5a00dd0860.st1.iotda-app.cn-north-4.myhuaweicloud.com:443/v5/iot/ff981a50957a403cb68d906e0d424eed/devices/674b1361ef99673c8ad15dee_dev1/shadow 3.11 修改设备属性地址: cid:link_8接口说明设备的产品模型中定义了物联网平台可向设备下发的属性,应用服务器可调用此接口向指定设备下发属性。平台负责将属性以同步方式发送给设备,并将设备执行属性结果同步返回。修改设备属性的接口,可以让服务器给设备下发指令,如果需要控制设备。在线调试地址:https://apiexplorer.developer.huaweicloud.com/apiexplorer/doc?product=IoTDA&api=UpdateProperties 修改设备属性是属于同步命令,需要设备在线才可以进行调试,先使用MQTT客户端登录服务器,模拟设备上线。然后进行调试,测试数据远程下发给设备。 【1】利用MQTT客户端先登录设备 (这是同步命令,必须在线才能调试) 【2】点击调试 填入的测试数据:{"services":{"SW1":1}} 点击调试之后。   【4】可以看到,MQTT客户端软件上已经收到了服务器下发的消息  调试成功之后,可以得到修改设备属性的真实链接,接下来的代码开发中,就采用Qt写代码访问此链接,向设备发送控制命令,完成上位机开发。 https://5a00dd0860.st1.iotda-app.cn-north-4.myhuaweicloud.com:443/v5/iot/ff981a50957a403cb68d906e0d424eed/devices/674b1361ef99673c8ad15dee_dev1/properties  由于是同步命令,服务器必须要收到设备的响应才能顺利完成一个流程(当然,设备不回应也没影响),设备响应了服务器才能确定数据下发成功。MQTT设备端如何响应呢?设备响应格式说明:cid:link_9  三、视频教程也可以看视频学习华为云IOT平台的使用过程:华为云物联网平台视频1:cid:link_13华为云物联网平台视频2:cid:link_14   我正在参加【案例共创】第1期 书写云产品应用构建开发最佳实践/评测,共创官方文档:cid:link_4
  • [产品体验官] 【重磅发布】海思首批星闪开发者体验官招募,星闪手机等你拿!
    参加活动详情:https://developers.hisilicon.com/postDetail?tid=02102154262223765013                                                    指导单位:国际星闪无线短距通信联盟                                                                    主办单位:华为技术有限公司、海思技术有限公司                                                          协办单位:江苏润和软件股份有限公司
  • [交流分享] 基于 MPI 实现埃拉托斯特尼筛法及性能优化
    本次课程项目通过对埃拉托斯特尼筛法的原理分析,将其与MPI并行运算结合,大大降低了运算时间和时间复杂度。埃拉托斯特尼筛法(sieve of Eratosthenes),简称埃氏筛,也称素数筛,是简单且历史悠久的筛法,用来找出一定范围内所有素数。在寻找整数N以内的素数时,古希腊数学家埃拉托斯特尼采用了一种与众不同的方法:先将2-N的各数写在纸上:在2的上面画一个圆圈,然后划去2的其他倍数;第一个既未画圈又没有被划去的数是3,将它画圈,再划去3的其他倍数;现在既未画圈又没有被划去的第一个数是5,将它画圈,并划去5的其他倍数…… 依此类推,一直到所有小于或等于N的各数都画了圈或划去为止。这时,画了圈的以及未划去的那些数正好就是小于N的素数。以25为例,详细列出算法如下:列出2以后所有数: 2, 3 ,4 ,5, 6 ,7 ,8 ,9 ,10 ,11 ,12 ,13 ,14 ,15 ,16 ,17 ,18 ,19, 20 ,21 ,22, 23, 24 ,25标记第一个质数2标记2的倍数如果最大数不大于最后一个标出的素数的平方,那么剩下的所有的数都是质数,否则回到第二步本例中,25大于2的平方,返回第二步;2之后第一个质数是3,标记3的倍数;得到的质数是2、3,25仍大于3的平方,再次返回第二步;3之后第一个质数是5,标记5的倍数;得到的质数是2、3、5,25是5的平方,筛选完毕。去掉标记的数,25以内的质数是$$ 2\text{,}3\text{,}5\text{,}7\text{,}11\text{,}13\text{,}17\text{,}19\text{,}23 $$给出其C语言串行实现:int prime[100005]; bool is_prime[1000005]; int eratosthenes(int n) { int p = 0; for (int i = 0; i <= n; i++) { is_prime[i] = true; } is_prime[0] = is_prime[1] = 0; for (int i = 2; i <= n; i++) { if (is_prime[i]) { prime[p++] = i; if (1ll * i * i <= n) { for (int j = i * i; j <= n; j += i) { is_prime[j] = 0; } } } } return p; }下面使用并行计算加快这一筛法将数组分为p个连续的块,每个块大小基本相等。平衡负载要给每个进程分配$ \lfloor \frac{n}{p} \rfloor $或$ \lceil \frac{n}{p} \rceil $ 个元素,我们考虑下面这种不同的实现方法:进程i控制的第一个元素是$ \lfloor in/p \rfloor $,最后一个元素是 $ \lfloor \left( i+1 \right) n/p \rfloor -1 $,对于特定元素j,控制他的进程是$ \lfloor \left( p\left( j+1 \right) -1 \right) /n \rfloor $。我们将数组2,3,……n 分配给p个进程,令$$ low_value=2+\lfloor id*\left( n-1 \right) /p \rfloor $$ $$ high_value=1+\lfloor \left( id+1 \right) *\left( n-1 \right) /p \rfloor $$我们用进程0来储存步骤中用于筛选的k(即2到$\sqrt{n}$的质数),所以程序运行的前提必须要求$$ 2+proc0_size>=(int)sqrt((doubt)n) $$ 对每一个进程都要提供一个marked[size]这样的数组,prime保存当前用于筛选的质数,first表示进程id中第一个要被筛掉的数对应的marked数组的下标。index用于步骤中找到比prime大的未被标记的数中最小的那个数,index为0进程专属。核心部分的程序为:if(!id) index=0;//0进程专属 prime=2;//最开始用2去筛选 do{ //找到第一个被prime筛掉的数 if(prime*prime>low_value) first=prime*prime-low_value; else if(!(low_value%prime)) first=0; else first=prime-(low_value%prime); //筛数,筛掉的数对应marked数组相应位置赋值为1,做标记 for(i=first;i<size;i+=prime) marked[i]=1; //在0进程中找到比prime大的未被标记的数中最小的那个数,用这个质数做新的prime去筛选。 if(!id){ while(marked[++index]); prime=index+2;//marked[0]对应自然数2 } //把0进程找到的新的prime更新其他进程的prime的值 MPI_Bcast(&prime,1,MPI_INT,0,MPI_COMM_WORLD); }while(prime*prime<=n);结合MPI并行运算分析可能的几种并行化改造方案:特定线程剔除特定数:优点:直观;缺点:2的倍数最多,3的倍数次多,前几个 进程几乎决定了总的运算时间,成为瓶颈。按照可用进程数分段: 将待筛选的数字分为不同的段,每个段包含连续的一部分数字。 首先,每个进程独立地筛选其分配到的段中的素数。 接下来,进程间进行通信,共享各个进程的筛选结果,以便确定进一步筛选的范围。重复上述步骤,直到完成筛选过程。在此基础上,我们又将时间复杂度具体化,分析了各部分对于时间复杂度的影响,由此提出了删除偶数和消除广播两种降低时间复杂度的方法,在1E5、1E7、1E9、1E10四个量级的数据上基本都能降低一半的运行时间。根据最终运行时间图像可以发现,在一定规模的数据量下,随着进程数量的增加,运行时间是逐渐减小的,同时在1E9和1E10规模的图像中发现,去除偶数的算法耗费的时间略高于优化通信的时间,说明任务在线程中通信花费的时间较多,在1E5规模下时间随进程增大也能说明这一结论。
  • [版主交流] 【华为云社区外部版主】2023年8月激励评比结果已公布!
    各位亲爱的版主们,大家好!经过大家一个月的努力角逐,8月外部版主激励评比结果已出炉,数据公示如下,请查看!(在新标签页打开图片可查看清晰大图/见附件)·外部版主激励规则:点击了解更多转正礼/基础任务/额外任务(在线时长15小时+,主题帖15+,回帖30+,技术长文5+/原创技术干货1+,合集1+,有效回复问题求助帖10+,话题互动1+,完成这4项指标可获对应价值的代金券/实物礼品)请完成任务获得激励的版主,点击填写激励发放意愿统计问卷反馈截止时间:2023年9月10日,以便小编进行相应的激励发放。注:在线时长数据达标后,才会再去考察达标版主的三项任务完成情况;主题数+回帖数达标后,才会再去考察达标版主的技术长文数量情况。
  • [分享交流] 有偿寻找设计师设计华为GT3手表表盘
    如题,寻找一名设计师
  • [版主交流] 【博客】+ 世界几个主要的思想家们不同观点
    用户没有删除功能,需要删除该如何操作?
  • [HDC2024] 博客发文的码豆没有计入吗
    博客发文有如下说明,奖励办法成功发表一篇原创博文,可获得150码豆,每天最多可获得300码豆。→码豆中心发文博客文章后,实际进入码豆中心,码豆并没有增加。
  • [活动公告] 创造HuaweiCloud Tookit 体验活动,反馈领好礼!
    【创造Huawei Cloud Toolkit体验活动】遇见Toolkit,解决开发运维痛点使开发者部署效率提速6倍。与华为云其他产品无缝集成围绕其产品能力向开发者桌面上的延伸打通华为云到开发者的最后一公里。华为云Toolkit致力于为开发者提供更稳定、快速、安全的编程体验。快速、高效集成华为云API深度融合支持用户检索API、查看API文档、调试API。编程过程中支持SDK代码片段补全加速用户集成华为云应用支持快速部署,一键部署到ECS、CCI提供业界规范检查支持一键格式化和代码自动修复。Huawei Cloud Toolkit除了提供以上产品能力以外,还支持包括微服务工程搭建等在内的诸多能力。为了感谢所有为Huawei Cloud Toolkit迭代做出贡献的开发者,Huawei Cloud Toolkit推出【创造Huawei Cloud Toolkit体验活动】,欢迎提出您的反馈建议,我们将记录每一份贡献,从而共同定义一款真正好用的华为云开发者生态工具。产品建议有礼:即日起至【6月18日】登录华为云账号访问Toolkit产品页面,并在【云声】上提交Toolkit的产品改进建议提出关于Toolkit产品新特性需求,提出产品改进建议和用户体验,或者上报bug,并被采纳可以获得建议好礼(活动详情请戳)~3.推广插件,包括发朋友圈、发表文章、推荐给朋友等。截图并联系我们,可免费获取华为云技术领域干货电子书,同时问题被采纳可参与华为云周边礼包抽奖!
  • [问题求助] 如何选择最新的excel表格
    其他部门每天都会新建一个新的excel表格上传,名字后会有“月日”,在选择数据上传是如何做到选择今天的excel来上传