-
首先讲个小故事:研发人员A开发了软件A,研发人员B正在研发软件B。有一天,研发人员B想要调用软件A的部分功能来用,但是他又不想从头看一遍软件A的源码和功能实现过程,怎么办呢?研发人员A想了一个好主意:我把软件A里你需要的功能打包好,写成一个函数。你按照我说的流程,把这个函数放在软件B里,就能直接用我的功能了!其中,API就是研发人员A说的那个函数。这就是API的诞生。日常生活中,我们有很多类似API的场景,比如:电脑需要调用手机里面的信息,这时候你会拿一根数据线将电脑手机连接起来,电脑和手机上连接数据线的接口就相当于“API接口”。那SDK又是什么?SDK 就是 Software Development Kit 的缩写,翻译过来——软件开发工具包。这是一个覆盖面相当广泛的名词,可以这么说:辅助开发某一类软件的相关文档、范例和工具的集合都可以叫做SDK。SDK被开发出来是为了减少程序员工作量的。比如——有公司开发出某种软件的某一功能,把它封装成SDK(比如数据分析SDK就是能够实现数据分析功能的SDK),出售给其他公司做开发用,其他公司如果想要给软件开发出某种功能,但又不想从头开始搞开发,直接付钱省事。 现在可以谈谈API和SDK的区别了。总的来说,两者没有值得比较的区别,因为是具有关联性的两种东西。你可以把SDK想象成一个虚拟的程序包,在这个程序包中有一份做好的软件功能,这份程序包几乎是全封闭的,只有一个小小接口可以联通外界,这个接口就是API。比如——我们现在要在企业ERP系统中增加某个功能(比如自动备份、数据分析、云存储等),但又不想耗费大量时间、也没那么多研发亲自去做这个功能。这时我们可以选择使用这个“SDK”软件包,把ERP系统连接上API接口,就可以使用SDK软件包里的功能。最后,贴近生活讲讲两者的关系:有一杯密封饮料,它的名字叫做“SDK”。饮料上插着吸管,吸管的名字叫“API”。把你叫做“XX系统”。如果你想喝到SDK里的饮料(让系统拥有SDK中的功能),你必须通过API这根吸管来实现(通过API连接你的系统和SDK工具包),否则你就喝不到饮料。所以:SDK=放着你想要的软件功能的软件包API=SDK上唯一的接口 现在你明白了吗?
-
背景企业信息化改造、上云之后,仍然有以下痛点亟待解决:不同部门各种IT系统重复造轮子,系统越来越多,开发、维护成本高;不同部门系统之间无法共享,业务申请人各部门之间跑断腿,流程厚重效率低;云内云外系统无法协同,一套业务登录好多个系统,自动化变为半自动,效率打折;。。。。。。服务构建器致力于解决客户高效用云的问题,当然义不容辞,急客户之所急,祭出大杀器~~API编排能力。简介服务构建器以对政企已有IT能力治理以及政企服务供给侧改革为使命,为政企客户提供极简、开放和高效的在线服务构建平台能力,实现IT资源及能力的在线申请、开通、配置和部署,统一IT能力服务化流程,提升IT能力供给效率,构建IT能力服务化生态。API编排伴随当前业界火热的Serverless理念,基于BPMN标准,提供极简的图形化设计器,以拖拽方式生成表单界面和业务流程。其理念就是通过把政企各部门、云内外的各种IT系统的接口能力整合起来,像搭积木一样组成一个新的服务,解决上述背景章节中的痛点。支撑服务构建器的四大场景(重编、混编、新编、联编)中的“新编”。像这样:API编排涉及功主要能块1. 服务API提供者2. 表单设计器3. 流程设计器API编排使用流程服务API提供者(接入需要编排的系统的API) -> 创建服务模板(表单设计器(设计申请表单) -> 流程设计器(设计业务流程)) -> 上线服务 -> 申请服务。API编排基本能力目前API编排的表单设计器支持10中基本界面渲染控件,支持设置显示控制逻辑等,满足一般业务的界面渲染,后续版本会进一步丰富控件类型。流程设计器可以通过拖拽方式设置API的调度,支持子流程,支持数值计算、字符串处理、数组、加解密等30+的丰富内置函数,用于对输入、输出及流程中的过程变量进行计算。案例某大型银行的内部的一种自研的缓存中间件,由于涉及7个部门、5个系统,效率较低,故现状按照每月一个版本申请一次。也就是说某个IT业务部门想申请使用该缓存中间件集群,需要提前一个月向IT管理部门申请版本,然后一个月内相关部门在不同的系统之间申请发放不同的资源,最终才能发放给业务部门使用。该缓存中间件架构如下图:其涉及的部门以及IT系统:通过服务构建器的API编排能力,我们将其整合为如下的流程以及申请界面,将其上线到服务目录中,用户自助申请,审批后流程自动自行,申请人员不用再各部门之间跑腿盖戳,效率大幅提升:申请界面部分截图:流程处理:最终效果:想进一步了解服务构建器的API编排能力?请参考HCS的在线帮助文档中的“服务构建器->API编排”章节。
ThinkingFish
发表于2021-11-26 19:51:01
2021-11-26 19:51:01
最后回复
ThinkingFish
2021-11-26 19:51:01
2082 0 -
# 1. 服务说明 ModelArts在线服务:将训练好的模型通过modelarts在线服务平台部署为一个Web Service服务。对外提供一个标准的Restful API,可使用HTTPS协议访问。 # 2. Api对接前置说明 ## 2.1 确认服务正常 ### 2.1.1 确认服务运行状态 Ⅰ. 在华为云控制台查看已部署的在线服务,确认状态为运行中。  Ⅱ. 进入已运行的在线服务,进入预测功能,进行接口调用。 a.上传图片  b.图片预测  ### 2.1.2 获取token Ⅰ. 请求接口方式:https://support.huaweicloud.com/api-iam/iam_30_0001.html 集成华为SDK:https://sdkcenter.developer.huaweicloud.com/?product=%E7%BB%9F%E4%B8%80%E8%BA%AB%E4%BB%BD%E8%AE%A4%E8%AF%81%E6%9C%8D%E5%8A%A1&language=java Ⅱ 调试过程,可以使用API Explorer 调用统一身份认证服务 KeystoneCreateUserTokenByPassword接口获取IAM用户token: https://apiexplorer.developer.huaweicloud.com/apiexplorer/doc?product=IAM&api=KeystoneCreateUserTokenByPassword # 3. Demo适用服务说明 该服务调用demo适用于Java语言,调用华为云mdoelarts在线服务、APIG等涉及到图片上传的以及返接口返回信息为json串的接口。 # 4. Demo代码 import javax.net.ssl.HttpsURLConnection; import java.io.*; import java.net.URL; /** ** 向华为云上传图片的demo **/ public class UploadImageDemo { public static void main(String[] args) { // 服务器url String modelApi = "https://XXX"; // token String tokenStr = "XXXX"; // 图片的绝对路径 String imageUrl = "C:\\Users\\chuyunwei\\Desktop\\yully.jpg"; // 文件控件名称 String fileParamName = "images"; postData(modelApi, tokenStr, imageUrl, fileParamName); } // 发送post请求 public static void postData(String modelApi, String tokenStr, String imageUrl, String fileParamName) { String boundary = java.util.UUID.randomUUID().toString(); String prefix = "--", linend = "\r\n"; String charset = "UTF-8"; // 数据流 DataOutputStream outStream = null; // 连接 HttpsURLConnection connetion = null; // 读取图片的流 InputStream input = null; try { URL url = new URL(modelApi); connetion = (HttpsURLConnection) url.openConnection(); connetion.setReadTimeout(30 * 1000); // 缓存的最长时间 connetion.setDoInput(true);// 允许输入 connetion.setDoOutput(true);// 允许输出 connetion.setUseCaches(false); // 不允许使用缓存 connetion.setRequestMethod("POST"); connetion.setRequestProperty("connection", "keep-alive"); // 设置以二进制传输数据;multipart/form-data: 每个参数以 --boundary 开始 connetion.setRequestProperty("Content-Type", "multipart/form-data;Charsert=UTF-8;boundary=" + boundary); connetion.setRequestProperty("X-Auth-Token", tokenStr); File file = new File(imageUrl); // 设置内容参数 StringBuilder contentParam = new StringBuilder(prefix).append(boundary).append(linend) .append("Content-Disposition: form-data; name=" + fileParamName + "; filename=" + file.getName() + linend) .append("Content-Type: application/octet-stream; charset=" + charset).append(linend).append(linend); outStream = new DataOutputStream(connetion.getOutputStream()); outStream.write(contentParam.toString().getBytes()); input = new FileInputStream(file); byte[] buffer = new byte[1024]; int len = 0; while ((len = input.read(buffer)) != -1) { outStream.write(buffer, 0, len); } input.close(); outStream.write(linend.getBytes()); // 设置请求结束标志符: 以 --boundary-- 为结束符 byte[] endData = (prefix + boundary + prefix + linend).getBytes(); outStream.write(endData); outStream.flush(); // 获取响应结果流 InputStream connetionInput = connetion.getInputStream(); BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(connetionInput, charset)); // 按行读取响应结果 String line = ""; // 读取响应的结果值 StringBuffer resultBuffer = new StringBuffer(); while ((line = bufferedReader.readLine()) != null) { resultBuffer.append(line); } // 向控制台打印结果 System.out.println(resultBuffer.toString()); } catch (Exception e) { // 打印错误堆栈 e.printStackTrace(); } finally { // 关闭资源 closeResources(outStream, connetion, input); } } // 关闭资源 private static void closeResources(DataOutputStream outStream, HttpsURLConnection connetion, InputStream input) { if (input != null) { try { input.close(); } catch (IOException e) { e.printStackTrace(); } } if (outStream != null) { try { outStream.close(); } catch (IOException e) { e.printStackTrace(); } } if (connetion != null) { connetion.disconnect(); } } } # 5. Demo补充说明 ## 5.1 注释说明 // 服务器url String modelApi = "https://XXX"; // token String tokenStr = "XXXX"; // 图片的绝对路径 String imageUrl = "C:\\Users\\chuyunwei\\Desktop\\yully.jpg"; // 文件控件名称 String fileParamName = "images"; Ⅰ. rl获取,控制台在线服务器调用指南TOP 页获取:  Ⅱ. token,调试过程直接调用: KeystoneCreateUserTokenByPassword接口获取IAM用户token: https://apiexplorer.developer.huaweicloud.com/apiexplorer/doc?product=IAM&api=KeystoneCreateUserTokenByPassword Ⅲ. 图片的绝对路径: 图片存放本地,直接使用本机的绝对路径进行获取。 Ⅳ. 文件控件名称,即为在线服务API输入图片的参数名称:  # 6. 实测结果 ## 6.1 修改配置  ## 6.2 代码调试  调试成功,返回结果。 # 7. 问题记录及解决办法 ## 7.1 服务未启动,运行报错 Ⅰ. 在线服务未启动,调试报错如下,重新启动服务即可正常请求。  ## 7.2 请求报401错误 Ⅰ. 查看错误码,判断401错误为鉴权问题导致,查看modelarts的认证鉴权方式帮助文档。可知请求token时,“auth.scope”的取值需要选择“project”。  Ⅱ. 我的token获取方式:  Ⅲ. Modelart token获取方式:按照如下方式获取token后,请求正常。  # 8. 问题解决渠道说明 ## 8.1 华为云开发者技术支持界面 访问链接:https://support.developer.huaweicloud.com/feedback/#/  ## 8.2 华为云开发者论坛界面 访问链接:https://bbs.huaweicloud.com/forum/forum-1175-1.html 
-
服务构建器API编排简介将政企现有IT能力以服务API的形式接入系统后,API编排提供图形化拖拽方式对服务API进行流程编排,同时提供在线表单构建能力为流程编排定制参数,方便用户灵活地构建模板,从而快速构建服务并上线到服务目录,实现IT现有能力的在线申请、开通、配置和部署。云数据库RDS简介云数据库RDS(Relational Database Service,简称RDS)是一种基于云计算平台的稳定可靠、弹性伸缩、便捷管理的在线云数据库服务。服务构建器编排RDS服务部署演示:
-
checkValidity() 方法<input id="id1" type="number" min="100" max="300" required><button onclick="myFunction()">验证</button> <p id="demo"></p> <script>function myFunction() { var inpObj = document.getElementById("id1"); if (inpObj.checkValidity() == false) { document.getElementById("demo").innerHTML = inpObj.validationMessage; }}</script>尝试一下 »实例如果输入的值大于 100,显示一个信息:rangeOverflow 属性<input id="id1" type="number" max="100"><button onclick="myFunction()">验证</button> <p id="demo"></p> <script>function myFunction() { var txt = ""; if (document.getElementById("id1").validity.rangeOverflow) { txt = "输入的值太大了"; } document.getElementById("demo").innerHTML = txt;}</script>尝试一下 »如果输入的值小于 100,显示一个信息:rangeUnderflow 属性<input id="id1" type="number" min="100" required><button onclick="myFunction()">OK</button> <p id="demo"></p> <script>function myFunction() { var txt = ""; var inpObj = document.getElementById("id1"); if(!isNumeric(inpObj.value)) { txt = "你输入的不是数字"; } else if (inpObj.validity.rangeUnderflow) { txt = "输入的值太小了"; } else { txt = "输入正确"; } document.getElementById("demo").innerHTML = txt;} // 判断输入是否为数字function isNumeric(n) { return !isNaN(parseFloat(n)) && isFinite(n);}</script>尝试一下 »
-
ROMA 20.0.0.SPC12API 接口最大请求数据为多少?使用postMan 请求ROMA接口 请求不到是怎么回事?Topic 消息体最大值是否可以通过系统参数调节大小?
-
https://api.compass-ci.openeuler.org:20009 20008等网址访问超时,网络无问题,已经有两三周无法正常访问了
-
【功能模块】功能模块接入文件预览库,调用api出现权限问题【操作步骤&问题现象】1、功能模块接入文件预览库,调用api出现权限问题。【截图信息】【日志信息】(可选,上传日志内容或者附件)
-
你好我们这边开发了一个接口,里面调用了钉钉的api在abc线上环境,可以正常调通部署到线下cube之后,访问报错下面是详细的报错信息{"resCode":"405230000","resMsg":"Get \"https://oapi.dingtalk.com/gettoken?appkey=dingbktw61sjy2fpgi8i\u0026appsecret=WrPjRLwnhElFl4nOjMgdC4j2FhbEGb1eUMMHjahtKCtvVDvzc7yhL_FSikRh3FnX\": dial tcp: lookup oapi.dingtalk.com on 172.**.*.10:53: server misbehaving"}线下cube是具有访问外网能力的请问这个应该从哪排查呢?
-
共有三种方式可以基于已构建好的请求消息发起请求:cURL cURL是一个命令行工具,用来执行各种URL操作和信息传输。cURL充当的是HTTP客户端,可以发送HTTP请求给服务端,并接收响应消息。cURL适用于接口调试。编码 通过编码调用接口,组装请求消息,并发送处理请求消息。REST客户端 Mozilla、Google都为REST提供了图形化的浏览器插件,发送处理请求消息。一般按照以下情况进行排查:1. 请确保音频格式和请求格式参数保持一致,音频采样率和选择“property”参数中采样率保持一致。2. 确保音频位宽为16bit,目前仅支持16bit位宽的音频,如果低于该位宽的音频,则无法正常识别。
-
我在roma平台上创建了api发布部署后,都走通了,也授权了但是在postman不行我ping了下ip请求超时
-
获奖信息公布幸运奖运气男孩wolfandyAniazekelovewuvita禄仁恝ecstatic极客潇十年树木测试人员001恭喜以上开发者,之前未填写获奖信息的开发者,请与11月5日16:00前完成获奖信息填写。为保证您顺利领取活动奖品,请您提前填写奖品收货信息,如您没有填写,视为放弃奖励。收货信息请【点击此处填写】参与活动前请先报名华为全联接开发者社区活动【点击报名】活动奖励:a. 奖励一:每人获得圆梦积分10分b. 奖励二:在所有完成任务的用户中抽取10个幸运奖,奖品为华为云定制双肩包1个。活动时间:2021年9月15日~2021年10月20日 参与方式(完成任务1即可算打卡成功):任务1(必做):用户先点击【开始体验】并点击【Demo体验指导】然后按照指导完成实验,最后按照要求将实验结果截图回复至活动帖内,视为完成任务。打卡截图示例:电话归属地分析体验项目:用户首先需自行配置后端服务地址,然后将配置好的地址填写到“定义后端服务-后端服务地址”页面中。本项目仅为体验项目,不对积分有任何影响。用户先点击【开始体验】 然后按照实验说明进行体验即可。活动规则:a. 回复非示例图片,视为无效楼层。b. 本次API网关体验活动结束后,将由华为云工作人员将符合抽奖条件的用户名单导入至巨公摇号平台(https://www.jugong.wang/random-portal/)内,抽取各奖项,并截屏公示抽奖过程。如您不同意此抽奖规则,请勿参加本次活动。 Tips:1、请务必使用个人账号参与活动(IAM、企业账号等账号参与无效)。2、所有获得华为电子产品奖项的获奖用户,请于获奖后3日内完成实名认证,否则视为放弃奖励。3、收货信息填写说明:1)为保证您顺利领取活动奖品,请您提前填写奖品收货信息,如您没有填写,视为放弃奖励。收货信息请【点击此处填写】2)填写时间截至2021年11月5日16:00。3)在HC2021开发者社区系列活动中完成一次填写即可。我们最终将会按照您填写的信息发放奖励。4、活动规则请戳https://bbs.huaweicloud.com/forum/thread-154048-1-1.html其他【场景实验室】精彩体验
-
【功能模块】LiveData【操作步骤&问题现象】1、应用:Car Parking System2、操作步骤:LiveData-->API测试-->停车场信息请求参数:[{ "ParkingId":"154354", "ParkingName":"A", "Capacity":1580, "MotorBikeNum":50, "BusNum":50, "ElectrocarNum":1480, "Status":"", "TotalArea":""},{ "ParkingId":"154354", "ParkingName":"A", "Capacity":1580, "MotorBikeNum":50, "BusNum":50, "ElectrocarNum":1480, "Status":"", "TotalArea":""}]3.问题现象:代码中获取请求参数obj.body无参数内容【截图信息】【日志信息】(可选,上传日志内容或者附件)
-
“没有什么是一套表情包不能解决的,如果有,那就再来一套。”——爱奇艺资深研究员 龙翔随着表情包越来越流行,广大网友们也越来越愿意给自己打上“沙雕”标签,使用着各种各样的表情,活跃于网络,可爱、贱萌、夸张、辣眼、戳心、少女……各种无缝切换,千万不要小看斗图界的老司机,他们动辄私藏几百个表情包,能根据不同的聊天场景熟练的甩出直击灵魂的表情,将夸张又委婉的情绪以戏谑的方式表达出来。但在表情包的使用中,有哪些问题需要格外注意呢?表情和品牌营销的结合点在哪?有哪些业务新玩法?9月2日19:00,华为云云市场新生态直播间邀请到了爱奇艺资深研究员龙翔老师,从表情包的发展历程、生态建设以及在华为云的落地情况等方面做了精彩分享,并对观众感兴趣的问题做了详细解答,我们一起来复习一下要点吧!>>点此进入直播回放<<表情包的应用与风险当前主流的表情包含了颜文字、绘文字及贴图/动图表情,主要来源于PGC及UGC,设计元素及风格多变,在交流中能够起到语气确认、含蓄表达、拉近距离、圈层认同的作用,深受年轻人的欢迎。但在使用中容易忽视版权与监管等问题,在表情的商业使用过程中,人物肖像权、内容著作权需要获得相关授权,人物肖像权包括通过绘画或漫画等方式呈现人物;不能以侮辱、恶意丑化的方式传播真人表情包,否则会构成名誉权的侵犯;卡通、IP形象需要相关授权;政治、历史、儿童软**表情也是监管红线。表情包的商业落地与业务玩法一方面,表情包能够增强用户的交互,在涉及到用户文字交互,如聊天、评论、客服、弹幕、点赞等场景都可以考虑表情的集成。另一方面,网络社交形成“圈层文化”进而形成“圈层语言”,表情是圈层语言的一种强化,企业文化也能形成圈子,使用包含企业特色的表情可以比帖横幅、大字报效果更佳。最后是表情和内容制作,好玩的表情逐渐成为爆款文章的必要条件之一,文章加入表情有助于提高读者亲切感,且相对于嵌入视频不会影响阅读连续性。在长短视频的后期制作中结合表情也可能成为行业新爆点。表情和品牌营销结合的价值表情包比其他广告形式更容易传递情感引发传播,可以作为IP形象的试验田和优秀的推广渠道,但目前用户对品牌表情的吸引和使用程度较大程度的弱于相关野表情,品牌在制作表情包时需考虑用户的使用习惯与喜好。逗芽表情在华为云API的落地逗芽表情是爱奇艺的内容孵化项目,作为开放的表情平台,为第三方平台及表情创作者提供服务,依托爱奇艺,与头部影视综内容达成表情合作,拥有大量明星授权,与千名表情艺术家合作,引入第三方表情入驻,且拥有多个自有IP表情,满足用户需求,形成较为完整的表情服务体系。逗芽表情平台在华为云API落地,包含热图、表情搜索、神配图、表情tab四种规格(华为云云市场在售),内容包括:1、热门表情实时推荐,满足用户对热点追踪的心理需求,为不同的人群类型推荐不同类型的热图,适用场景实时更新;2、表情搜索,通过NLP算法实现搜索词和图片的语义匹配,并结合图片质量进行排序输出,适合普通表情用户主动触发基于文本的表情搜索;3、神配图,适合重度表情用户,在文本长度限制内返回匹配任意文字的表情,支持对用户输入发垃圾过滤,保证输出图片安全,适用于输入法、评论、表情制作等使用场景;4、表情商店,收藏管理,方便接入方根据业务场景自行配置表情包,适合中、中毒表情用户对某些表情或表情包有使用偏好,希望能够进行收藏、管理,更快捷的查找使用。直播精选问答:1、Q:针对表情包有没有相关法律法规或审核机制? A:在表情包的创作使用过程中需特别注意名人肖像权、名誉权等方面问题;在审核机制方面,逗芽表情平台会通过算法初审,对表情做基本过滤,再由人工复审,设置相应的指令机制,如对劣迹艺人相关表情包,可在检索后手动批量下架,保证表情包的安全合规。2、Q:个人可以开发表情包吗?如何发布到不同平台? A:首先,个人可以开发表情包,再通过部分第三方平台的表情商店上传,如需盈利则还需要相关资质,创作者可以选择加入逗芽表情平台,由平台帮助做表情分发与管理。3、Q:逗芽表情搜索使用什么架构?有哪些优势? A:逗芽表情搜索一个是通过Elasticsearch索引核心去做,基于文本相关性检索。另外一个召回方式是基于NLP深度学习算法,做语义相关度的召回,将两个方式相结合,做个性化排序,精排输出。4、Q:是否支持离线表情包? A:支持,可通过API接口将表情下载至本地,方便各个场景使用。5、Q:逗芽表情能够提供表情设计服务吗? A:可以,逗芽表情内部有专业的运营团队,可提供表情设计资源,且平台能够帮助对接相关表情艺术家,提供多样的表情设计服务。6、Q:逗芽表情服务,怎样打造个性化内容? A:首先是接口层面的个性化,逗芽虽有千万量级的图片池,但热门表情仍需补足,将长尾图片以个性化的方式推荐给用户的方式,依赖于对用户喜好的精准把握,才能保证个性化推荐的高准确度。对平台来讲,表情还是需要广泛传播才能创造价值。本期直播商品链接(华为云云市场在售):逗芽表情-专业的表情服务平台想了解更多直播详情,请点击 《逗芽表情,让沟通更好玩》,进入华为云云市场直播间观看精彩回放!分享你对本次直播的观后感或梳理直播内容至云社区论坛-云市场版块“云端心声”,还有机会获华为云海量码豆(码豆可兑换实物奖品)及超酷运动蓝牙耳机噢!>>点击了解活动详情,立刻参与吧!>>>获取云市场往期直播材料请戳:https://bbs.huaweicloud.com/forum/thread-136544-1-1.html【华为云云市场,助您上云无忧】
上滑加载中
推荐直播
-
华为云码道Agent集成与鸿蒙实战2026/08/11 周二 19:00-21:00
王一男-华为云码道产品规划专家;李炎-华为云码道产品专家;彭江敏-华为云鸿蒙端云一体化开发专家
本次直播带你解读华为云码道7月份产品新特性、新功能。更有专家演示码道Agent Space × 钉钉机器集成实战,从0到1打通消息通道;码道鸿蒙端云一体化实战,快速搭建员工签到系统。
回顾中 -
华为云开发者AI素养直播课·第三期2026/08/21 周五 16:00-18:00
林华鼎-华为云AI开发者运营负责人;念擎-华为云AI开发者运营案例开发专家
本期直播内容:AI六层能力首次详细解读 + 新一代华为云开发者空间亮相 + 校园案例直播带练
回顾中
热门标签