• [案例共创] 使用 HarmonyOS NEXT和Mass快速开发NutPITalk
    使用 HarmonyOS NEXT和Mass快速开发NutPITalk运行环境DevEco Studio:5.0ReleaseOpenHarmony SDK API12开发板:润和DAYU200/Mate60 ProMassMass(即 ModelArts Studio大模型即服务平台)是华为云面向AI开发者推出的一站式大模型开发平台,支持开发者一键体验大模型能力,快速构建大模型应用。Mass平台提供大模型训练、推理、部署、管理、监控等全生命周期管理能力,帮助开发者快速构建大模型应用,加速AI开发。ModelArts Studio大模型即服务平台(MaaS)的应用场景:业界主流开源大模型覆盖全MaaS集成了业界主流开源大模型,含Llama、Baichuan、Yi、Qwen模型系列,所有的模型均基于昇腾AI云服务进行全面适配和优化,使得精度和性能显著提升。开发者无需从零开始构建模型,只需选择合适的预训练模型进行微调或直接应用,减轻模型集成的负担。零代码、免配置、免调优模型开发平台结合与100+客户适配、调优开源大模型的行业实践经验,沉淀了大量适配昇腾,和调优推理参数的最佳实践。通过为客户提供一键式训练、自动超参调优等能力,和高度自动化的参数配置机制,使得模型优化过程不再依赖于手动尝试,显著缩短了从模型开发到部署的周期,确保了模型在各类应用场景下的高性能表现,让客户能够更加聚焦于业务逻辑与创新应用的设计。资源易获取,按需收费,按需扩缩,支撑故障快恢与断点续训企业在具体使用大模型接入企业应用系统的时候,不仅要考虑模型体验情况,还需要考虑模型具体的精度效果,和实际应用成本。MaaS提供灵活的模型开发能力,同时基于昇腾云的算力底座能力,提供了若干保障客户商业应用的关键能力。保障客户系统应用大模型的成本效率,按需收费,按需扩缩的灵活成本效益资源配置方案,有效避免了资源闲置与浪费,降低了进入AI领域的门槛。架构强调高可用性,多数据中心部署确保数据与任务备份,即使遭遇故障,也能无缝切换至备用系统,维持模型训练不中断,保护长期项目免受时间与资源损耗,确保进展与收益。大模型应用开发,帮助开发者快速构建智能Agents在企业中,项目级复杂任务通常需要理解任务并拆解成多个问题再进行决策,然后调用多个子系统去执行。MaaS基于多个优质昇腾云开源大模型,提供优质Prompt模板,让大模型准确理解业务意图,分解复杂任务,沉淀出丰富的多个智能Agent,帮助企业快速智能构建和部署大模型应用。本案例中我们使用华为云开发者空间,基于HarmonyOS NEXT和Mass快速开发NutPITalk。鸿蒙融合智能力,AI助力人生梦!创新科技迎未来,Mass给接口!我们今天来看一下Mass和鸿蒙的结合,会有什么样的火花。免费领取云主机如您还没有云主机,可点击链接,根据领取指南进行操作。如您已领取云主机,可直接开始案例实践。用到资源资源列表消耗/时时长DevEco Studio免费30minModelArts Studio免费30min合计:0元实践ModelArts Studio 模型服务访问 ModelArts Studio 模型部署进入云主机,打开浏览器,输入 https://console.huaweicloud.com/modelarts/?region=cn-east-4&locale=zh-cn#/model-studio/deployment ,即可访问ModelArts Studio。领取免费 Token 额度领取千万免费token额度,可用于体验Qwen、Chatglm等系列模型,免费额度仅适合用于体验模型。Qwen2.5系列预置服务还支持Function Calling,可以用于构建Agent。获取大模型API和名称以Qwen2.5-72B-32K为例,点击更多-调用,获取API地址和模型名称。创建API Key在调用MaaS部署的模型服务时,需要填写API Key用于接口的鉴权认证。登录ModelArts管理控制台。在左侧导航栏中,选择“ModelArts Studio”进入ModelArts Studio大模型即服务平台。在ModelArts Studio左侧导航栏中,选择“鉴权管理”。在“鉴权管理”页面,单击“创建API Key”,填写描述信息后,单击“确认”会返回“您的密钥”,请复制保存密钥,单击“关闭”后将无法再次查看密钥。左侧鉴权管理-创建API Key,保存创建的密钥信息最多创建5个密钥,密钥只会在新建后显示一次,请妥善保存。创建HarmonyOS NEXT项目添加权限"requestPermissions": [ { "name": "ohos.permission.INTERNET" } ], 网络请求用流式和非流式两种,非流式从@kit.NetworkKit中导入http命名空间。调用createHttp()方法,创建一个HttpRequest对象。调用该对象的on()方法,订阅http响应头事件,此接口会比request请求先返回。可以根据业务需要订阅此消息。调用该对象的request()方法,传入http请求的url地址和可选参数,发起网络请求。按照实际业务需要,解析返回结果。调用该对象的off()方法,取消订阅http响应头事件。当该请求使用完毕时,调用destroy()方法主动销毁。具体代码如下 getData() { // 每一个httpRequest对应一个HTTP请求任务,不可复用 let httpRequest = http.createHttp(); // 用于订阅HTTP响应头,此接口会比request请求先返回。可以根据业务需要订阅此消息 // 从API 8开始,使用on('headersReceive', Callback)替代on('headerReceive', AsyncCallback)。 8+ httpRequest.on('headersReceive', (header) => { console.info('header: ' + JSON.stringify(header)); }); httpRequest.request( // 填写HTTP请求的URL地址,可以带参数也可以不带参数。URL地址需要开发者自定义。请求的参数可以在extraData中指定 "https://infer-modelarts.cn-east-4.myhuaweicloud.com/v1/infers/5f114f77-65c2-4e79-82df-d84b25b89d42/v1/chat/completions", { method: http.RequestMethod.POST, // 可选,默认为http.RequestMethod.GET // 开发者根据自身业务需要添加header字段 header: { 'Content-Type': 'application/json', "Authorization": "Bearer yourApiKey // 把yourApiKey替换成真实的API Key }, // 当使用POST请求时此字段用于传递请求体内容,具体格式与服务端协商确定 extraData: { "model": "Qwen2.5-72B-32K", "max_tokens": 20, "messages": [ { "role": "system", "content": "You are a helpful assistant." }, { "role": "user", "content": "鸿蒙坚果派,你了解多少" } ], "stream": false, "temperature": 1.0 }, expectDataType: http.HttpDataType.STRING, // 可选,指定返回数据的类型 usingCache: true, // 可选,默认为true priority: 1, // 可选,默认为1 connectTimeout: 60000, // 可选,默认为60000ms readTimeout: 60000, // 可选,默认为60000ms usingProtocol: http.HttpProtocol.HTTP1_1, // 可选,协议类型默认值由系统自动指定 usingProxy: false, // 可选,默认不使用网络代理,自API 10开始支持该属性 }, (err: BusinessError, data: http.HttpResponse) => { if (!err) { // data.result为HTTP响应内容,可根据业务需要进行解析 console.info('Result:' + JSON.stringify(data.result)); console.info('code:' + JSON.stringify(data.responseCode)); // data.header为HTTP响应头,可根据业务需要进行解析 console.info('header:' + JSON.stringify(data.header)); console.info('cookies:' + JSON.stringify(data.cookies)); // 8+ // 当该请求使用完毕时,调用destroy方法主动销毁 httpRequest.destroy(); } else { console.error('error:' + JSON.stringify(err)); // 取消订阅HTTP响应头事件 httpRequest.off('headersReceive'); // 当该请求使用完毕时,调用destroy方法主动销毁 httpRequest.destroy(); } } ); } 返回数据{ "id": "chat-7bde4ec9cba949c1829e589f4fa1f8b1", "object": "chat.completion", "created": 1736925731, "model": "Qwen2.5-72B-32K", "choices": [ { "index": 0, "message": { "role": "assistant", "content": "你好!有什么可以帮到你的吗?", "tool_calls": [] }, "logprobs": null, "finish_reason": "stop", "stop_reason": null } ], "usage": { "prompt_tokens": 20, "total_tokens": 30, "completion_tokens": 10 }, "prompt_logprobs": null } 参数说明参数参数类型描述idStr请求ID。objectStr请求任务。createdInt请求生成的时间戳。modelStr调用的模型名。choicesArray模型生成内容。usageObject请求输入长度、输出长度和总长度。创建Model处理数据这里使用我们坚果派开发的IDE插件就好,搭建UI这里面,我们可以做个对话框流式数据从@kit.NetworkKit中导入http命名空间。调用createHttp()方法,创建一个HttpRequest对象。调用该对象的on()方法,可以根据业务需要订阅HTTP响应头事件、HTTP流式响应数据接收事件、HTTP流式响应数据接收进度事件和HTTP流式响应数据接收完毕事件。调用该对象的requestInStream()方法,传入http请求的url地址和可选参数,发起网络请求。按照实际业务需要,可以解析返回的响应码。调用该对象的off()方法,取消订阅响应事件。当该请求使用完毕时,调用destroy()方法主动销毁。具体代码如下:// 引入包名 import { http } from '@kit.NetworkKit'; import { BusinessError } from '@kit.BasicServicesKit'; // 每一个httpRequest对应一个HTTP请求任务,不可复用 let httpRequest = http.createHttp(); // 用于订阅HTTP响应头事件 httpRequest.on('headersReceive', (header: Object) => { console.info('header: ' + JSON.stringify(header)); }); // 用于订阅HTTP流式响应数据接收事件 let res = new ArrayBuffer(0); httpRequest.on('dataReceive', (data: ArrayBuffer) => { const newRes = new ArrayBuffer(res.byteLength + data.byteLength); const resView = new Uint8Array(newRes); resView.set(new Uint8Array(res)); resView.set(new Uint8Array(data), res.byteLength); res = newRes; console.info('res length: ' + res.byteLength); }); // 用于订阅HTTP流式响应数据接收完毕事件 httpRequest.on('dataEnd', () => { console.info('No more data in response, data receive end'); }); // 用于订阅HTTP流式响应数据接收进度事件 class Data { receiveSize: number = 0; totalSize: number = 0; } httpRequest.on('dataReceiveProgress', (data: Data) => { console.log("dataReceiveProgress receiveSize:" + data.receiveSize + ", totalSize:" + data.totalSize); }); let streamInfo: http.HttpRequestOptions = { method: http.RequestMethod.POST, // 可选,默认为http.RequestMethod.GET // 开发者根据自身业务需要添加header字段 header: { 'Content-Type': 'application/json' }, // 当使用POST请求时此字段用于传递请求体内容,具体格式与服务端协商确定 extraData: "data to send", expectDataType: http.HttpDataType.STRING,// 可选,指定返回数据的类型 usingCache: true, // 可选,默认为true priority: 1, // 可选,默认为1 connectTimeout: 60000, // 可选,默认为60000ms readTimeout: 60000, // 可选,默认为60000ms。若传输的数据较大,需要较长的时间,建议增大该参数以保证数据传输正常终止 usingProtocol: http.HttpProtocol.HTTP1_1 // 可选,协议类型默认值由系统自动指定 } // 填写HTTP请求的URL地址,可以带参数也可以不带参数。URL地址需要开发者自定义。请求的参数可以在extraData中指定 httpRequest.requestInStream("EXAMPLE_URL", streamInfo).then((data: number) => { console.info("requestInStream OK!"); console.info('ResponseCode :' + JSON.stringify(data)); // 取消订阅HTTP响应头事件 httpRequest.off('headersReceive'); // 取消订阅HTTP流式响应数据接收事件 httpRequest.off('dataReceive'); // 取消订阅HTTP流式响应数据接收进度事件 httpRequest.off('dataReceiveProgress'); // 取消订阅HTTP流式响应数据接收完毕事件 httpRequest.off('dataEnd'); // 当该请求使用完毕时,调用destroy方法主动销毁 httpRequest.destroy(); }).catch((err: Error) => { console.info("requestInStream ERROR : err = " + JSON.stringify(err)); }); 示例代码 # coding=utf-8 import requests import json if __name__ == '__main__': url = "xxxxxxxxxx/v1/chat/completions" # Send request. headers = { 'Content-Type': 'application/json', 'Authorization': 'Bearer yourApiKey' # 把yourApiKey替换成已获取的API Key。例如,获取的API Key是“1234abcd...”时,此处填写“Bearer 1234abcd...”。 } data = { "model": "Qwen2-7B", # 调用时的模型名称。 "max_tokens": 20, "messages": [ {"role": "system", "content": "You are a helpful assistant."}, {"role": "user", "content": "hello"} ], # 是否开启流式推理,默认为False,表示不开启流式推理。 "stream": False, # 在流式输出时是否展示使用的token数目。只有当stream为True时该参数才会生效。 # "stream_options": {"include_usage": True}, # 控制采样随机性的浮点数,值较低时模型更具确定性,值较高时模型更具创造性。"0"表示贪婪取样。默认为1.0。 "temperature": 1.0 } resp = requests.post(url, headers=headers, data=json.dumps(data), verify=False) # Print result. print(resp.status_code) print(resp.text) 可以请求到数据,FAQrequest和requestInStream使用区别在于:request接口有5M的数据,如果响应大于5M用requestinstream。参考https://support.huaweicloud.com/usermanual-maas-modelarts/maas-modelarts-0011.htmlhttps://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/http-request-V5https://daqianduan.feishu.cn/docx/NSCsd3xNfoXEKvxTVqRcJTahnuh三方库列表https://plugins.jetbrains.com/plugin/25151-json2ets致谢感谢每一个关注此项目的开发者,也是希望大家对文章有任何建议,可以在https://www.nutpi.net/讨论。
  • [案例共创] 使用 HarmonyOS NEXT和Mass快速开发NutPITalk
    使用 HarmonyOS NEXT和Mass快速开发NutPITalk运行环境DevEco Studio:5.0ReleaseOpenHarmony SDK API12开发板:润和DAYU200/Mate60 ProMassMass(即 ModelArts Studio大模型即服务平台)是华为云面向AI开发者推出的一站式大模型开发平台,支持开发者一键体验大模型能力,快速构建大模型应用。Mass平台提供大模型训练、推理、部署、管理、监控等全生命周期管理能力,帮助开发者快速构建大模型应用,加速AI开发。ModelArts Studio大模型即服务平台(MaaS)的应用场景:业界主流开源大模型覆盖全MaaS集成了业界主流开源大模型,含Llama、Baichuan、Yi、Qwen模型系列,所有的模型均基于昇腾AI云服务进行全面适配和优化,使得精度和性能显著提升。开发者无需从零开始构建模型,只需选择合适的预训练模型进行微调或直接应用,减轻模型集成的负担。零代码、免配置、免调优模型开发平台结合与100+客户适配、调优开源大模型的行业实践经验,沉淀了大量适配昇腾,和调优推理参数的最佳实践。通过为客户提供一键式训练、自动超参调优等能力,和高度自动化的参数配置机制,使得模型优化过程不再依赖于手动尝试,显著缩短了从模型开发到部署的周期,确保了模型在各类应用场景下的高性能表现,让客户能够更加聚焦于业务逻辑与创新应用的设计。资源易获取,按需收费,按需扩缩,支撑故障快恢与断点续训企业在具体使用大模型接入企业应用系统的时候,不仅要考虑模型体验情况,还需要考虑模型具体的精度效果,和实际应用成本。MaaS提供灵活的模型开发能力,同时基于昇腾云的算力底座能力,提供了若干保障客户商业应用的关键能力。保障客户系统应用大模型的成本效率,按需收费,按需扩缩的灵活成本效益资源配置方案,有效避免了资源闲置与浪费,降低了进入AI领域的门槛。架构强调高可用性,多数据中心部署确保数据与任务备份,即使遭遇故障,也能无缝切换至备用系统,维持模型训练不中断,保护长期项目免受时间与资源损耗,确保进展与收益。大模型应用开发,帮助开发者快速构建智能Agents在企业中,项目级复杂任务通常需要理解任务并拆解成多个问题再进行决策,然后调用多个子系统去执行。MaaS基于多个优质昇腾云开源大模型,提供优质Prompt模板,让大模型准确理解业务意图,分解复杂任务,沉淀出丰富的多个智能Agent,帮助企业快速智能构建和部署大模型应用。本案例中我们使用华为云开发者空间,基于HarmonyOS NEXT和Mass快速开发NutPITalk。鸿蒙融合智能力,AI助力人生梦!创新科技迎未来,Mass给接口!我们今天来看一下Mass和鸿蒙的结合,会有什么样的火花。免费领取云主机如您还没有云主机,可点击链接,根据领取指南进行操作。如您已领取云主机,可直接开始案例实践。用到资源资源列表消耗/时时长DevEco Studio免费30minModelArts Studio免费30min合计:0元实践ModelArts Studio 模型服务访问 ModelArts Studio 模型部署进入云主机,打开浏览器,输入 https://console.huaweicloud.com/modelarts/?region=cn-east-4&locale=zh-cn#/model-studio/deployment ,即可访问ModelArts Studio。领取免费 Token 额度领取千万免费token额度,可用于体验Qwen、Chatglm等系列模型,免费额度仅适合用于体验模型。Qwen2.5系列预置服务还支持Function Calling,可以用于构建Agent。获取大模型API和名称以Qwen2.5-72B-32K为例,点击更多-调用,获取API地址和模型名称。创建API Key在调用MaaS部署的模型服务时,需要填写API Key用于接口的鉴权认证。登录ModelArts管理控制台。在左侧导航栏中,选择“ModelArts Studio”进入ModelArts Studio大模型即服务平台。在ModelArts Studio左侧导航栏中,选择“鉴权管理”。在“鉴权管理”页面,单击“创建API Key”,填写描述信息后,单击“确认”会返回“您的密钥”,请复制保存密钥,单击“关闭”后将无法再次查看密钥。左侧鉴权管理-创建API Key,保存创建的密钥信息最多创建5个密钥,密钥只会在新建后显示一次,请妥善保存。创建HarmonyOS NEXT项目添加权限"requestPermissions": [ { "name": "ohos.permission.INTERNET" } ], 网络请求用流式和非流式两种,非流式从kit.NetworkKit中导入http命名空间。调用createHttp()方法,创建一个HttpRequest对象。调用该对象的on()方法,订阅http响应头事件,此接口会比request请求先返回。可以根据业务需要订阅此消息。调用该对象的request()方法,传入http请求的url地址和可选参数,发起网络请求。按照实际业务需要,解析返回结果。调用该对象的off()方法,取消订阅http响应头事件。当该请求使用完毕时,调用destroy()方法主动销毁。具体代码如下 getData() { // 每一个httpRequest对应一个HTTP请求任务,不可复用 let httpRequest = http.createHttp(); // 用于订阅HTTP响应头,此接口会比request请求先返回。可以根据业务需要订阅此消息 // 从API 8开始,使用on('headersReceive', Callback)替代on('headerReceive', AsyncCallback)。 8+ httpRequest.on('headersReceive', (header) => { console.info('header: ' + JSON.stringify(header)); }); httpRequest.request( // 填写HTTP请求的URL地址,可以带参数也可以不带参数。URL地址需要开发者自定义。请求的参数可以在extraData中指定 "https://infer-modelarts.cn-east-4.myhuaweicloud.com/v1/infers/5f114f77-65c2-4e79-82df-d84b25b89d42/v1/chat/completions", { method: http.RequestMethod.POST, // 可选,默认为http.RequestMethod.GET // 开发者根据自身业务需要添加header字段 header: { 'Content-Type': 'application/json', "Authorization": "Bearer yourApiKey // 把yourApiKey替换成真实的API Key }, // 当使用POST请求时此字段用于传递请求体内容,具体格式与服务端协商确定 extraData: { "model": "Qwen2.5-72B-32K", "max_tokens": 20, "messages": [ { "role": "system", "content": "You are a helpful assistant." }, { "role": "user", "content": "鸿蒙坚果派,你了解多少" } ], "stream": false, "temperature": 1.0 }, expectDataType: http.HttpDataType.STRING, // 可选,指定返回数据的类型 usingCache: true, // 可选,默认为true priority: 1, // 可选,默认为1 connectTimeout: 60000, // 可选,默认为60000ms readTimeout: 60000, // 可选,默认为60000ms usingProtocol: http.HttpProtocol.HTTP1_1, // 可选,协议类型默认值由系统自动指定 usingProxy: false, // 可选,默认不使用网络代理,自API 10开始支持该属性 }, (err: BusinessError, data: http.HttpResponse) => { if (!err) { // data.result为HTTP响应内容,可根据业务需要进行解析 console.info('Result:' + JSON.stringify(data.result)); console.info('code:' + JSON.stringify(data.responseCode)); // data.header为HTTP响应头,可根据业务需要进行解析 console.info('header:' + JSON.stringify(data.header)); console.info('cookies:' + JSON.stringify(data.cookies)); // 8+ // 当该请求使用完毕时,调用destroy方法主动销毁 httpRequest.destroy(); } else { console.error('error:' + JSON.stringify(err)); // 取消订阅HTTP响应头事件 httpRequest.off('headersReceive'); // 当该请求使用完毕时,调用destroy方法主动销毁 httpRequest.destroy(); } } ); } 返回数据{ "id": "chat-7bde4ec9cba949c1829e589f4fa1f8b1", "object": "chat.completion", "created": 1736925731, "model": "Qwen2.5-72B-32K", "choices": [ { "index": 0, "message": { "role": "assistant", "content": "你好!有什么可以帮到你的吗?", "tool_calls": [] }, "logprobs": null, "finish_reason": "stop", "stop_reason": null } ], "usage": { "prompt_tokens": 20, "total_tokens": 30, "completion_tokens": 10 }, "prompt_logprobs": null } 参数说明参数参数类型描述idStr请求ID。objectStr请求任务。createdInt请求生成的时间戳。modelStr调用的模型名。choicesArray模型生成内容。usageObject请求输入长度、输出长度和总长度。创建Model处理数据这里使用我们坚果派开发的IDE插件就好,搭建UI这里面,我们可以做个对话框流式数据从@kit.NetworkKit中导入http命名空间。调用createHttp()方法,创建一个HttpRequest对象。调用该对象的on()方法,可以根据业务需要订阅HTTP响应头事件、HTTP流式响应数据接收事件、HTTP流式响应数据接收进度事件和HTTP流式响应数据接收完毕事件。调用该对象的requestInStream()方法,传入http请求的url地址和可选参数,发起网络请求。按照实际业务需要,可以解析返回的响应码。调用该对象的off()方法,取消订阅响应事件。当该请求使用完毕时,调用destroy()方法主动销毁。具体代码如下:// 引入包名 import { http } from '@kit.NetworkKit'; import { BusinessError } from '@kit.BasicServicesKit'; // 每一个httpRequest对应一个HTTP请求任务,不可复用 let httpRequest = http.createHttp(); // 用于订阅HTTP响应头事件 httpRequest.on('headersReceive', (header: Object) => { console.info('header: ' + JSON.stringify(header)); }); // 用于订阅HTTP流式响应数据接收事件 let res = new ArrayBuffer(0); httpRequest.on('dataReceive', (data: ArrayBuffer) => { const newRes = new ArrayBuffer(res.byteLength + data.byteLength); const resView = new Uint8Array(newRes); resView.set(new Uint8Array(res)); resView.set(new Uint8Array(data), res.byteLength); res = newRes; console.info('res length: ' + res.byteLength); }); // 用于订阅HTTP流式响应数据接收完毕事件 httpRequest.on('dataEnd', () => { console.info('No more data in response, data receive end'); }); // 用于订阅HTTP流式响应数据接收进度事件 class Data { receiveSize: number = 0; totalSize: number = 0; } httpRequest.on('dataReceiveProgress', (data: Data) => { console.log("dataReceiveProgress receiveSize:" + data.receiveSize + ", totalSize:" + data.totalSize); }); let streamInfo: http.HttpRequestOptions = { method: http.RequestMethod.POST, // 可选,默认为http.RequestMethod.GET // 开发者根据自身业务需要添加header字段 header: { 'Content-Type': 'application/json' }, // 当使用POST请求时此字段用于传递请求体内容,具体格式与服务端协商确定 extraData: "data to send", expectDataType: http.HttpDataType.STRING,// 可选,指定返回数据的类型 usingCache: true, // 可选,默认为true priority: 1, // 可选,默认为1 connectTimeout: 60000, // 可选,默认为60000ms readTimeout: 60000, // 可选,默认为60000ms。若传输的数据较大,需要较长的时间,建议增大该参数以保证数据传输正常终止 usingProtocol: http.HttpProtocol.HTTP1_1 // 可选,协议类型默认值由系统自动指定 } // 填写HTTP请求的URL地址,可以带参数也可以不带参数。URL地址需要开发者自定义。请求的参数可以在extraData中指定 httpRequest.requestInStream("EXAMPLE_URL", streamInfo).then((data: number) => { console.info("requestInStream OK!"); console.info('ResponseCode :' + JSON.stringify(data)); // 取消订阅HTTP响应头事件 httpRequest.off('headersReceive'); // 取消订阅HTTP流式响应数据接收事件 httpRequest.off('dataReceive'); // 取消订阅HTTP流式响应数据接收进度事件 httpRequest.off('dataReceiveProgress'); // 取消订阅HTTP流式响应数据接收完毕事件 httpRequest.off('dataEnd'); // 当该请求使用完毕时,调用destroy方法主动销毁 httpRequest.destroy(); }).catch((err: Error) => { console.info("requestInStream ERROR : err = " + JSON.stringify(err)); }); 示例代码 # coding=utf-8 import requests import json if __name__ == '__main__': url = "xxxxxxxxxx/v1/chat/completions" # Send request. headers = { 'Content-Type': 'application/json', 'Authorization': 'Bearer yourApiKey' # 把yourApiKey替换成已获取的API Key。例如,获取的API Key是“1234abcd...”时,此处填写“Bearer 1234abcd...”。 } data = { "model": "Qwen2-7B", # 调用时的模型名称。 "max_tokens": 20, "messages": [ {"role": "system", "content": "You are a helpful assistant."}, {"role": "user", "content": "hello"} ], # 是否开启流式推理,默认为False,表示不开启流式推理。 "stream": False, # 在流式输出时是否展示使用的token数目。只有当stream为True时该参数才会生效。 # "stream_options": {"include_usage": True}, # 控制采样随机性的浮点数,值较低时模型更具确定性,值较高时模型更具创造性。"0"表示贪婪取样。默认为1.0。 "temperature": 1.0 } resp = requests.post(url, headers=headers, data=json.dumps(data), verify=False) # Print result. print(resp.status_code) print(resp.text) 可以请求到数据,FAQrequest和requestInStream使用区别在于:request接口有5M的数据,如果响应大于5M用requestinstream。参考https://support.huaweicloud.com/usermanual-maas-modelarts/maas-modelarts-0011.htmlhttps://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/http-request-V5三方库列表https://plugins.jetbrains.com/plugin/25151-json2ets致谢感谢每一个关注此项目的开发者,也是希望大家对文章有任何建议,可以在https://www.nutpi.net/讨论。
  • [案例共创] 【案例共创】轻松搭建知识库:CherryStudio 联手华为云的实践指南
    轻松搭建知识库:CherryStudio 联手华为云的实践指南在当今数字化时代,知识管理对于个人和企业都至关重要。CherryStudio 作为一款全能 AI 助手平台,与华为云强强联手,为用户提供了搭建本地知识库系统的便捷方案。本文将详细介绍如何利用 CherryStudio 和华为云实现知识库的搭建和管理。一、CherryStudio:全能 AI 助手平台CherryStudio 是一款集多模型对话、知识库管理、AI 绘画、翻译等功能于一体的全能 AI 助手平台。其高度自定义的设计、强大的扩展能力和友好的用户体验,使其成为专业用户和 AI 爱好者的理想选择。无论是零基础用户还是开发者,都能在 CherryStudio 中找到适合自己的 AI 功能,提升工作效率和创造力。二、本地知识库系统(一)多种格式支持本地知识库系统支持 PDF、DOCX、PPTX、XLSX、TXT、MD 等多种文件格式导入,满足用户不同的文档管理需求。(二)多种数据源支持系统支持本地文件、网址、站点地图甚至手动输入内容作为知识库源,方便用户从多种渠道获取和整合知识。(三)知识库导出用户可以将处理好的知识库导出并分享给他人使用,实现知识的共享和传播。(四)支持搜索检查知识库导入后,用户可实时检索测试,查看处理结果和分段效果,确保知识库的质量和可用性。三、华为云操作步骤(一)创建账号登录首先,到 华为云 创建账号并登录。(二)进入 Maa S 控制台点击 此链接,进入 Maa S 控制台。(三)授权在控制台中进行授权操作,确保后续操作的顺利进行。(四)模型部署点击侧栏的 “模型部署”,全部领取,以便使用华为云提供的模型资源。(五)创建 API Key点击侧栏的 “鉴权管理”,创建 API Key(秘钥)并复制,用于后续在 CherryStudio 中的配置。(六)在 CherryStudio 中配置在 CherryStudio 里创建新服务商,创建华为云。将服务商地址粘贴到 CherryStudio 的服务商地址当中,并在结尾加上 “#” 号。然后把模型名称复制,到 CherryStudio 当中点 “+ 添加” 按钮新建模型,输入模型名称,不要添油加醋,不要带引号,按照示例中的写法进行操作。点击添加模型按钮即可完成添加。粘贴到CherryStudio的服务商地址当中并在结尾加上“#”号然后把模型名称复制,到CherryStudio当中点“+添加”按钮新建模型,输入模型名称,不要添油加醋,不要带引号,示例当中怎么写就怎么抄。四、总结通过以上步骤,华为云、本地知识库和 CherryStudio 就能够很好地结合在一起。结合鸿蒙知识,整个系统形成了一个闭环,为用户提供了一个高效、便捷的知识管理解决方案。无论是个人用户还是企业用户,都可以利用这一方案提升知识管理的效率和质量,实现知识的快速检索、共享和应用。五、未来展望随着技术的不断发展,CherryStudio 和华为云将继续优化和升级,为用户提供更多功能和更好的体验。我们期待这一解决方案能够在更多领域得到应用,为用户创造更大的价值。六、致谢感谢华为云提供的强大技术支持,以及 CherryStudio 团队的不懈努力。同时,感谢所有开发者的信任和支持。总结:CherryStudio 与华为云的结合,为用户搭建本地知识库系统提供了高效、便捷的解决方案。通过简单的操作步骤,用户可以轻松实现知识库的搭建、管理和应用。这一方案不仅提升了知识管理的效率,还为用户提供了更广阔的应用空间。我们相信,随着技术的不断进步,CherryStudio 和华为云将为用户带来更多惊喜和价值。
  • [热门活动] 【获奖结果公示】【互动体验有奖】赢开发者定制冲锋衣、华为无线耳机等丰厚礼品!——DTSE Tech Talk丨NO.77:华为云xDeepSeek:AI驱动云上应用创新
    本期有奖互动体验获奖名单如下,请获奖的小伙伴在3月10日前填写问卷反馈收件信息:cid:link_1 专家答疑详情见:cid:link_3 昵称/手机尾号互动内容mitenkilee【提问】1.在私有化部署中,如何建立高效的模型更新与维护机制,以确保DeepSeek模型的持续优化和稳定性?2.华为平台私有化部署DeepSeek时,如何通过技术手段确保数据在本地存储、传输和处理过程中的安全性,以满足GDPR、HIPAA等国际合规标准?3.在私有化部署中,如何利用DeepSeek的API接口与企业现有的IT系统(如ERP、CRM)无缝集成,以实现智能化业务流程?Hello Digger开发者如何在华为云上快速搭建基于DeepSeek的开发环境,有哪些推荐的工具和流程? 部署DeepSeek应用时,如何选择合适的计算实例类型? 在华为云上使用DeepSeek时,如何进行资源成本优化?有哪些策略可以降低开发和运营成本?是否可以利用华为云的缓存服务提升DeepSeek应用的响应速度,如何使用?1575华为云提到企业级优化方案支持私有化部署。若企业已有本地数据中心,能否通过华为云MaaS平台实现混合云环境下的DeepSeek模型弹性调度?需要哪些基础设施条件?5546华为云ModelArts Studio支持“一键部署DeepSeek专属实例”。对于中小型企业,如何在资源有限的情况下通过200万免费Token快速验证AI应用原型?独享型实例的资源减半策略具体如何实现?华为云通过昇腾适配版DeepSeek-R1/V3实现了序列长度扩展至32K和推理成本减半。能否具体说明这些技术优化如何提升企业处理长文本、多模态数据的效率?背后的算法与硬件协同设计有哪些创新?612***7DeepSeek 的 AI 模型如何与华为云的 昇腾 AI 处理器(Ascend) 深度结合,以实现更高效的模型训练和推理?是否存在针对特定硬件优化的定制化模型? 开发者空间部署DeepSeek抽奖开发者定制斜挎包hi****i3vpkenq176iu开发者空间部署DeepSeek抽奖开发者定制斜挎包hi****kw4d0vlfoo8fa开发者空间部署DeepSeek抽奖开发者定制冲锋衣hi****148bbb2xfbysq开发者空间部署DeepSeek抽奖开发者定制冲锋衣cs****eke开发者空间部署DeepSeek抽奖华为FreeBuds SE 2无线耳机nu****an ——————————————近年来,AI 技术的快速发展正在深刻改变各行各业,而近日随着DeepSeek的热度狂飙,让AI技术进一步深入到了我们的日常生活。那么DeepSeek到底为什么这么火?华为云+DeepSeek后,能为我们的产品和应用带来哪些魔力?在华为云上,如何使用DeepSeek才能充分发挥AI的效力?本期直播,华为云DTSE技术布道师们,将聚焦 AI 与云计算的深度融合,围绕DeepSeek在云上的应用案例,与线上开发者伙伴们一起探讨如何利用 AI 驱动云上应用创新。【直播时间】2025年2月26日 16:00-18:00【直播链接】cid:link_4【互动方式】论坛提问:在本帖下回复,如“【提问】在华为云上,如何使用DeepSeek才能充分发挥AI的效力呢?”直播间提问:直播期间直接在问答区发送具体问题论坛分享:在本帖下回复,分享你对“华为云+DeepSeek”的使用体验、技术观点、应用案例等部署体验:在本论坛贴评论区发布云主机成功安装DeepSeek截图,具体操作可参考《仅四步!在华为开发者空间快速部署DeepSeek》【活动时间】即日起—2025年3月4日【奖励规则】优质互动奖励:活动结束后将从以上参与互动的用户中,根据发表内容的质量和价值,评选5条优质互动,赠送开发者定制短袖T恤或开发者定制128gU盘。成功部署抽奖:云主机成功安装DeepSeek并在本贴回复截图,即可>>点此参与抽奖,赢取开发者定制冲锋衣、华为FreeBuds SE 2无线耳机、开发者定制斜挎包等好礼!​更多直播活动请进入官网直播间参与:​【注意事项】1、所有参与活动的问题,如发现为复用他人内容或直播间中重复内容,则取消获奖资格。2、活动将在3月5日前,在本帖公示获奖情况并收集领奖信息,为保证您顺利领取活动奖品,请关注活动公告,及时填写奖品收货信息。3、活动奖项公示时间截止2025年3月10日,如未反馈邮寄信息视为弃奖。本次活动奖品将于奖项公示后30个工作日内统一发出,请您耐心等待。4、活动期间同类子活动每个ID(同一姓名/电话/收货地址)只能获奖一次,若重复则中奖资格顺延至下一位合格开发者,仅一次顺延。5、如活动奖品出现没有库存的情况,华为云工作人员将会替换等价值的奖品,获奖者不同意此规则视为放弃奖品。6、其他事宜请参考【华为云社区常规活动规则】。
  • LM Studio做ds本地部署使用
    步骤挺简单的。几部就搞定。相对于ollama来说,LM studio有GUI可以使用。安装后启动后的界面:看到DS 7B蒸馏模型下载这个模型之前,可以设置代理proxy,这样4G的7B模型,大约几分钟下载完。看看下载完成、保存到本地的模型文件:加载模型后,和他聊一聊:每秒吐7个token(7个汉字?)。感觉上是比较慢的。最后有个疑问,就是CPU使用。i7 20个虚拟CPU。在windows的任务管理器,性能里看到CPU使用到80%以上。但是在详细信息里面,看lm studio进程使用的CPU只有20%-30%多。这个对不上。挺奇怪的。后面有空到linux下面部署一下看看。
  • ModelArts Studio体验模型(deepseek蒸馏模型Qwen)
    说明:仅“华东二”和“西南-贵阳一”区域支持使用ModelArts Studio大模型即服务平台(MaaS)。MaaS是白名单功能,如果有试用需求,请先申请权限。所以,ModelArts Studio目前在控制台里还搜索不到它这个产品,只能找到modelarts。进入的话要通过链接进入。
  • [其他] deepseek蒸馏模型介绍
    比如DeepSeek-R1-Distill-Llama-8B、比如DeepSeek-R1-Distill-Qwen-32B,解释如下:1. DeepSeek-R1背景:DeepSeek-R1 是 DeepSeek AI 开发的第一代推理模型。它通过大规模强化学习(RL)进行训练,并在 RL 之前使用冷启动数据来增强推理性能。性能:DeepSeek-R1 在数学、代码和推理任务上的表现与 OpenAI 的 o1 模型相当。2. Distill(蒸馏)概念:蒸馏是指将一个更大、更复杂的模型(如 DeepSeek-R1)的知识转移到一个更小、更高效的模型中。这使得较小的模型能够继承较大模型的推理能力。好处:蒸馏后的模型在保持强大性能的同时,更加轻量化,部署成本更低。3. Llama-8B基础模型:Llama-8B 指的是 Llama 系列中的基础模型,具体来说是 Llama3.1-8B-Base。定制化:DeepSeek AI 使用 DeepSeek-R1 生成的推理数据对这个基础模型进行了微调。结果是,DeepSeek-R1-Distill-Llama-8B 在推理任务上进行了优化,并且是基于 Llama-8B 的蒸馏模型之一。4. DeepSeek-R1-Distill-Llama-8B 的关键特点高级推理能力:该模型在紧凑的开源包中封装了高级推理能力。基准性能:在各种基准测试中表现出竞争力,使其成为开发人员和研究人员的宝贵工具。本地部署:支持成本效益高的本地部署,允许用户在自己的硬件上运行模型。5. 使用场景研究与开发:适用于希望在较小模型中利用高级推理能力的研究人员。实际应用:适用于需要强推理能力的任务,如问题解决、代码生成和数学计算。6. 许可和可用性许可:该模型在 MIT 许可证下发布,允许商业使用和修改。获取方式:可以通过 Hugging Face 和 Ollama 等平台下载和使用。总结来说,DeepSeek-R1-Distill-Llama-8B 是基于 Llama-8B 架构的 DeepSeek-R1 模型的蒸馏版本。它在更紧凑和高效的形式中提供了高级推理能力,使其成为研究和实际应用中的强大工具。
  • [其他] DeepSeek 系列概览
    注: 不包含最新的多模态模型版本名称推出时间功能特点DeepSeek-V12024 年 1 月预训练于 2TB 标记数据,主打自然语言处理和编码任务,支持多种编程语言,具有强大的编码能力,适合程序开发人员和技术研究人员使用DeepSeek-V22024 年上半年性能出色且价格低廉,引发中国 AI 模型价格战DeepSeek-V2.52024 年 9 月显著提升了通用能力和代码生成能力DeepSeek-V2.5-12102024 年 12 月全面提升了数学、代码、写作等能力,并新增联网搜索功能DeepSeek-V32024 年 12 月 26 日参数规模达 6710 亿的混合专家(MoE)语言模型,推理速度提升,每秒生成 60 个字符,支持本地部署DeepSeek-R1-Lite2024 年 11 月 20 日推理能力强,在高难度的数学和代码任务中表现优异,思考过程详细,性价比高DeepSeek-R12025 年 1 月 20 日采用强化学习进行后训练,提升推理能力,擅长数学、代码和自然语言推理等复杂任务,完全开源,采用 MIT 许可协议
  • [开发环境] 如何使用官方notebook镜像,本地环境运行
    如AI Gallery上面的镜像 Pytorch_2.0.0-cuda_11.7-py_3.9.11-ubuntu_20.04镜像地址为swr.cn-east-3.myhuaweicloud.com/atelier/pytorch_2_0:pytorch_2.0.0-cuda_11.7-py_3.9.11-ubuntu_20.04-x86_64-20230727142019-7d74011 或基于mindspore的镜像swr.cn-north-4.myhuaweicloud.com/atelier/mindspore_1_7_0:mindspore_1.7.0-cpu-py_3.7-ubuntu_18.04-x86_64-20221118143809-d65d817  如何使用docker或本地k8s运行此镜像,web使用其notebook。
  • [其他] 主干网络(Backbone)详解与扩展
    一、核心概念主干网络(Backbone)是深度神经网络中负责特征提取的核心部分,通常由多个卷积层、池化层、归一化层等组成(而非单一卷积层)。它从输入数据中逐层提取从低级到高级的特征,形成多层次的特征图,供后续任务(如分类、检测)使用。二、经典主干网络演进与特性以下是关键网络的创新点及影响:网络名称核心贡献应用场景AlexNet首个成功CNN,ReLU、Dropout、数据增强,开启深度学习热潮图像分类奠基者VGG堆叠3x3小卷积核,结构简单,证明深度重要性特征提取通用骨干Inception多尺度并行卷积(Inception模块),降低参数量高效分类、多尺度特征融合ResNet残差连接解决梯度消失,允许千层网络几乎所有视觉任务的基础MobileNet深度可分离卷积,大幅减少计算量(FLOPs)移动端/嵌入式设备SENet通道注意力机制(SE模块),动态增强重要特征提升分类、检测精度三、主干网络的扩展方向轻量化设计技术:深度可分离卷积(MobileNet)、通道混洗(ShuffleNet)、神经架构搜索(EfficientNet)。目标:平衡精度与速度,适应移动端/边缘计算。注意力机制融合代表:SENet(通道注意力)、CBAM(空间+通道注意力)、Transformer(自注意力)。效果:提升模型对关键特征的敏感度,如医疗图像中的病灶区域。多任务适应性检测任务:ResNet+FPN(特征金字塔)、CSPDarkNet(YOLOv4/v5)。分割任务:DeepLab系列(空洞卷积)、UNet(跳跃连接)。Transformer的崛起ViT(Vision Transformer):将图像分块处理,通过自注意力捕获全局依赖,需大规模数据预训练。混合架构:Swin Transformer引入局部窗口注意力,兼顾效率和性能。四、选择主干的实用考量精度优先:ResNet、EfficientNet、ViT(需足够数据)。速度优先:MobileNet、ShuffleNet、GhostNet。任务适配:检测常用ResNet+FPN,分割偏好DeepLabv3+。资源限制:参数量、FLOPs、内存占用(如嵌入式设备需INT8量化)。五、前沿趋势与发散思考自监督预训练方法:SimCLR、MoCo利用对比学习从无标签数据学习特征。优势:减少对标注数据的依赖,提升下游任务泛化性。神经架构搜索(NAS)案例:EfficientNet通过NAS平衡深度、宽度、分辨率,达到SOTA。挑战:搜索成本高,需分布式计算支持。可解释性与可视化工具:Grad-CAM、特征图可视化。意义:理解网络关注区域(如自动驾驶中障碍物识别是否合理)。跨模态主干网络CLIP:联合训练图像+文本编码器,实现零样本迁移。BEiT:结合图像掩码建模,类似BERT的预训练策略。六、常见误区纠正误区1:主干网络=卷积层堆叠。正解:包含卷积、池化、归一化、注意力等多类组件。误区2:越深的网络越好。正解:需根据任务复杂度选择,过深可能导致过拟合(如小数据集)。误区3:主干网络必须从头训练。正解:迁移学习常用预训练主干(如ImageNet预训练),冻结或微调。七、动手建议实践对比:在相同数据集上测试ResNet50 vs. MobileNetV3,比较精度和推理速度。特征可视化:使用PyTorch Hook提取VGG不同层的特征图,观察低级到高级特征变化。自定义Backbone:在简单任务(如MNIST分类)中尝试组合Inception模块与残差连接。通过理解主干网络的设计哲学与演进脉络,可以更灵活地选择或设计适合特定场景的模型,同时把握视觉智能的核心驱动力。
  • [其他] P100GPU和smi命令工具介绍
    nvidia-smi -L 是用于列出系统中所有 NVIDIA GPU 的简要信息。输出解析:GPU 0: Tesla P100-PCIE-16GB (UUID: GPU-aeff9e46-cbd1-350c-f781-566034cb7831) GPU 0含义:系统中第一个(编号为0)的 NVIDIA GPU 设备。多卡场景:如果有多个 GPU,会依次显示 GPU 1, GPU 2 等。Tesla P100-PCIE-16GB含义:GPU 的型号和规格。型号说明:Tesla P100:NVIDIA 的通用计算加速卡,专为深度学习、高性能计算(HPC)等场景设计。PCIE:通过 PCI Express 总线与主板连接(区别于 NVLink 版本)。16GB:显存容量为 16GB。UUID含义:GPU 的唯一标识符(Universally Unique Identifier),用于在多 GPU 系统中精准区分物理设备。用途:编程时绑定任务到指定 GPU。系统日志或监控工具中追踪特定 GPU 的状态。Tesla P100 的关键特性:架构:基于 Pascal 架构,支持 FP16/FP32/FP64 计算。适用场景:深度学习训练、科学计算、数据中心加速等。性能:相比消费级显卡(如 GeForce),Tesla 系列更注重稳定性和双精度计算能力。其他操作:查看 GPU 实时状态:nvidia-smi # 显示 GPU 利用率、显存占用、温度等信息 监控指定 GPU 的显存:nvidia-smi -i 0 --query-gpu=memory.used,memory.total --format=csv # -i 0 表示监控 GPU 0 多 GPU 管理:若系统有多个 GPU,可通过环境变量 CUDA_VISIBLE_DEVICES 控制任务使用的 GPU,例如:CUDA_VISIBLE_DEVICES=0 python train.py # 仅使用 GPU 0 常见问题:Q1:为什么显存显示为16GB,但实际可用略少?A1:部分显存会被系统保留(如 GPU 驱动、内核占用),属于正常现象。Q2:如何确认 GPU 是否支持某项功能(如 CUDA 版本)?A2:通过 nvidia-smi -q 查看详细 GPU 属性,或参考 NVIDIA 官方文档。
  • [其他] P100GPU和smi命令工具介绍
    nvidia-smi -L 是用于列出系统中所有 NVIDIA GPU 的简要信息。输出解析:GPU 0: Tesla P100-PCIE-16GB (UUID: GPU-aeff9e46-cbd1-350c-f781-566034cb7831) GPU 0含义:系统中第一个(编号为0)的 NVIDIA GPU 设备。多卡场景:如果有多个 GPU,会依次显示 GPU 1, GPU 2 等。Tesla P100-PCIE-16GB含义:GPU 的型号和规格。型号说明:Tesla P100:NVIDIA 的通用计算加速卡,专为深度学习、高性能计算(HPC)等场景设计。PCIE:通过 PCI Express 总线与主板连接(区别于 NVLink 版本)。16GB:显存容量为 16GB。UUID含义:GPU 的唯一标识符(Universally Unique Identifier),用于在多 GPU 系统中精准区分物理设备。用途:编程时绑定任务到指定 GPU。系统日志或监控工具中追踪特定 GPU 的状态。Tesla P100 的关键特性:架构:基于 Pascal 架构,支持 FP16/FP32/FP64 计算。适用场景:深度学习训练、科学计算、数据中心加速等。性能:相比消费级显卡(如 GeForce),Tesla 系列更注重稳定性和双精度计算能力。其他操作:查看 GPU 实时状态:nvidia-smi # 显示 GPU 利用率、显存占用、温度等信息 监控指定 GPU 的显存:nvidia-smi -i 0 --query-gpu=memory.used,memory.total --format=csv # -i 0 表示监控 GPU 0 多 GPU 管理:若系统有多个 GPU,可通过环境变量 CUDA_VISIBLE_DEVICES 控制任务使用的 GPU,例如:CUDA_VISIBLE_DEVICES=0 python train.py # 仅使用 GPU 0 常见问题:Q1:为什么显存显示为16GB,但实际可用略少?A1:部分显存会被系统保留(如 GPU 驱动、内核占用),属于正常现象。Q2:如何确认 GPU 是否支持某项功能(如 CUDA 版本)?A2:通过 nvidia-smi -q 查看详细 GPU 属性,或参考 NVIDIA 官方文档。
  • [问题求助] CANN路径查询
    依据教程(【2023CANN训练营第二季】——Ascend C代码实操分享-云社区-华为云)在5.编译之前要修改CMakePresets.json文件下的ASCEND_CANN_PACKAGE_PATH变量,修改成你实际的CANN安装路径,时,不知道如何查询CANN安装路径; 
  • [案例共创] 【案例共创】采用DIFY接入华为Maas服务创建聊天助手
    MaasMaas叫做模型即服务(Model as a Service),这是一种新兴流行的人工智能服务模式,它通过将机器学习模型(比如通义)及其相关能力打包成可重复使用的服务,通过API的形式提供给用户。这样用户在无需了解任何复杂的算法和实现细节的情况,就可以调用模型进行数据处理和沟通了。 华为云打造的AI开放平台ModelArts,是面向开发者的一站式AI开发平台,为机器学习与深度学习提供海量数据预处理及半自动化标注、大规模分布式Training、自动化模型生成,及端-边-云模型按需部署能力,帮助用户快速创建和部署模型,管理全周期AI工作流。 我们在控制台搜索一下model可以看到Ai开发平台ModelArts,属于人工智能模块。我们点击进入。我们在左侧菜单中可以看到ModelArts Studio平台,点击进入。(注意如果没有这个菜单的,切换到华东二区域)进入后我们可以看到关于ModelArts Studio的相关介绍,它有丰富的模型资源,配合易上手的模型工具,就可以快速打造AI了。我们可以看到,平台为我们准备了大量的tokens可以让我们免费体验,点击立即领取进入到领取页。我们可以看到平台为我们提供了不同的模型,让我们可以测试体验。我们首先点击领取,则可以领取免费的tokens用来调用,然后点击更多,点击调用。调用弹窗中,我们可以看到提供的内容。1、API地址,这个地址就是用来请求AI的服务地址。2、模型名称,这个是在调用AI服务时,需要告诉AI当前是哪个模型。3、管理API Key ,这个是用来在请求AI服务时,需要有一个安全认证,这里就是安全秘钥的生成管理地址。首先,我们创建一个安全秘钥,点击管理API Key , 直接创建就可以。注意,API Key生成后只会显示一次,需要自己管理。感兴趣的朋友可以看一下调用示例,可以在本地python环境下,调用一下试试。DifyDify 是一个创新的开源平台,它专门为大型语言模型(LLM)应用的开发而设计。它巧妙地结合了后端即服务(Backend as Service)的理念和LLMOps的实践,加速了开发者构建高效、可扩展的生成式 AI 应用的过程。Dify 支持集成多种顶尖的大型语言模型。我们通过Flexus X实例快速部署Dify。我们创建资源栈,选择模板URL方式 。参数配置我们输入创建ecs_password。也就是ecs的密码。然后一直下一步确认即可。在创建完成的资源处-输入栏目,可以看到dify对应的访问网址。至此,dify我们就安装完成。我们访问dify后,点击用户信息-设置-模型供应商进行配置模型。第一步:选择OpenAI-API-compatible ,通义的模型也支持这个模型。第二步:选择模型类型LLM.第三步:输入 模型名称 。第四步:输入APIkey、API Url、模型code。文章上方已经介绍过APIkey、url和模型key的获取。可以在重温一下。接下来我们创建一个名称为Chat1应用,在编排处,输入提示词,选择对应的模型。我们在调试和预览处可针对提示词和一些其他编排信息进行测试。测试无误后直接点击右上角发布即可。 到此,基于Dify工具结合Maas快速创建聊天助手完成了。 我正在参加【案例共创】第1期 书写云产品应用构建开发最佳实践/评测,共创官方文档 cid:link_0  
  • [案例共创] 【案例共创】使用MaxKB接入华为Maas服务快速打造AI问答Agent
    MaxKB是什么?MaxKB是一款基于大语言模型(LLM)和 检索增强生成(RAG) 的开源知识库问答系统, 广泛应用于智能客服、企业内部知识库、学术研究与教育等场景。企业可以利用MaxKB搭建专属AI客服,快速响应客户咨询。核心功能点?支持对知识库文档的直接上传、并可自动爬取在线文档,对文本自动进行拆分、向量化处理,支持多种文件格式,包括Markdown、TXT、PDF、DOCX、HTML等。通过检索增强生成(RAG)技术,解析用户发出的问题并匹配检索知识库,提供更加准确的答案。支持对接各种大语言模型,包括本地私有大模型(如Llama 3、Qwen 2等)和国内外公共大模型(如OpenAI、通义千问、百度千帆等)。内置强大的工作流引擎和函数库,满足各种复杂业务场景下的需求。如何安装?在线通过docker安装非常简单。只需要执行下方的命令即可安装成功。# Linux 操作系统 docker run -d --name=maxkb --restart=always -p 8080:8080 -v ~/.maxkb:/var/lib/postgresql/data -v ~/.python-packages:/opt/maxkb/app/sandbox/python-packages cr2.fit2cloud.com/1panel/maxkb # Windows 操作系统 docker run -d --name=maxkb --restart=always -p 8080:8080 -v C:/maxkb:/var/lib/postgresql/data -v C:/python-packages:/opt/maxkb/app/sandbox/python-packages cr2.fit2cloud.com/1panel/maxkb安装成功后,通过浏览器访问 http://目标服务器IP地址:8080 即可 默认登录信息 用户名:admin 默认密码:MaxKB@123.安装成功后,访问域名可看到如下页面。输入账号密码即可进入主页。 MaasMaas叫做模型即服务(Model as a Service),这是一种新兴流行的人工智能服务模式,它通过将机器学习模型(比如通义)及其相关能力打包成可重复使用的服务,通过API的形式提供给用户。这样用户在无需了解任何复杂的算法和实现细节的情况,就可以调用模型进行数据处理和沟通了。华为云打造的AI开放平台ModelArts,是面向开发者的一站式AI开发平台,为机器学习与深度学习提供海量数据预处理及半自动化标注、大规模分布式Training、自动化模型生成,及端-边-云模型按需部署能力,帮助用户快速创建和部署模型,管理全周期AI工作流。我们在控制台搜索一下model可以看到Ai开发平台ModelArts,属于人工智能模块。我们点击进入。我们在左侧菜单中可以看到ModelArts Studio平台,点击进入。(注意如果没有这个菜单的,切换到华东二区域)进入后我们可以看到关于ModelArts Studio的相关介绍,它有丰富的模型资源,配合易上手的模型工具,就可以快速打造AI了。我们可以看到,平台为我们准备了大量的tokens可以让我们免费体验,点击立即领取进入到领取页。我们可以看到平台为我们提供了不同的模型,让我们可以测试体验。我们首先点击领取,则可以领取免费的tokens用来调用,然后点击更多,点击调用。调用弹窗中,我们可以看到提供的内容。1、API地址,这个地址就是用来请求AI的服务地址。2、模型名称,这个是在调用AI服务时,需要告诉AI当前是哪个模型。3、管理API Key ,这个是用来在请求AI服务时,需要有一个安全认证,这里就是安全秘钥的生成管理地址。首先,我们创建一个安全秘钥,点击管理API Key , 直接创建就可以。注意,API Key生成后只会显示一次,需要自己管理。 至此,我们就介绍完了Maas的访问基础信息及MaxKB的安装访问。接下来我们就实战使用MaxKB结合Maas快速打造AI Agent实战:MaxKB调用Maas服务我们打开MaxKB后,首先创建一个基础的应用,点击创建应用,只需要输入应用名称,然后点击创建。接下来我们配置模型,点击AI模型后,默认是没有模型的,点击添加模型。选择OpenAI,这个大部分模型都支持。这里我们第一步:填写一个模型名称,自定义即可。第二步:在模型类型处选择大语言模型。第三步:在基础模型处输入我们在Maas平台调用处显示的模型名称,可搜索出来。第四步:输入API域名,也是在Maas平台提供的API域名,注意,域名只到V1,后面的参数都不要第五步:输入API Key , 也是我们在Maas平台调用处管理的API Key. 完成上面五步后,点击创建,我们就完成了模型的创建。我们在简单配置一下开场白,这块就是基于业务需求来配置了。 最后点击保存并发布。然后来到MaxKB主页,我们来演示一下。点击应用的演示按钮。自动跳转到演示页面。下面就是相应的AI Agent调用了。这样一个企业级的AI就快速打造完成了。可以在任何企业平台进行调用。 我正在参加【案例共创】第1期 书写云产品应用构建开发最佳实践/评测,共创官方文档cid:link_0