华为云用户手册

  • 前提条件 预置服务或我的服务满足以下条件: 预置服务-商用服务:已开通预置服务的商用服务并产生调用记录。具体操作,请参见在ModelArts Studio(MaaS)预置服务中开通商用服务。 预置服务-免费服务:已领取预置服务的免费服务额度并产生调用记录。具体操作,请参见 免费体验 ModelArts Studio(MaaS)预置服务。 我的服务:已在“我的服务”页面部署模型服务并产生调用记录。具体操作,请参见使用ModelArts Studio(MaaS)部署模型服务。
  • 方式二:使用华为云App体验ModelArts Studio 下载华为云App。具体信息,请参见华为云App介绍。 打开华为云App,在底部导航栏单击“华为云”,在搜索框输入ModelArts Studio并单击“搜索”,单击“产品”页签,单击“ModelArts Studio”卡片。 图1 打开ModelArts Studio产品 在ModelArts Studio大模型即服务平台,单击“ModelArts Studio控制台”。 (可选)如果您是新用户,请执行以下操作,领取免费额度并签署服务声明。老用户请跳过此步骤。 单击“一键领取”,免费领取DeepSeek Tokens额度。 在“开通商用服务”页面,按需单击“跳过”或“立即开通”。 单击“跳过”,将使用免费服务。免费服务仅提供基础体验能力,且受严格的速率限制。 单击“立即开通”,将为您提供商用级别的推理 API服务 ,暂不支持关闭商用服务,未使用商用服务时不会产生费用。关于如何计费,请参见推理服务按Tokens使用量(后付费)。 在ModelArts Studio服务声明对话框,查看服务声明内容并单击“同意”。 在对话页面顶部,单击模型名称,按需选择模型服务,进行文本对话。 您也可以在右上角单击参数设置图标,按需拖动调整推理参数。单击“恢复默认”可以将参数值调回默认值。 表2 参数设置 参数 说明 温度/Temperature 设置推理温度。 数值较高,输出结果更加随机。 数值较低,输出结果更加集中和确定。 取值范围:0~2 默认值:0.7 核采样/top_p 设置推理核采样。调整输出文本的多样性,数值越大,生成文本的多样性就越高。 取值范围:0.1~1 默认值:1 top_k 选择在模型的输出结果中选择概率最高的前K个结果。 取值范围:1~1000 默认值:20 (可选)如果您需要开通商用服务,可以在对话页面顶部,单击模型名称,选择“商用服务”,在目标模型右侧单击“开通”。
  • 方式一:使用网址体验ModelArts Studio 打开ModelArts Studio。 (可选)如果您是新用户,请执行以下操作,领取免费额度并签署服务声明。老用户请跳过此步骤。 单击“一键领取”,免费领取DeepSeek Tokens额度。 在“开通商用服务”页面,按需单击“跳过”或“立即开通”。 单击“跳过”,将使用免费服务。免费服务仅提供基础体验能力,且受严格的速率限制。 单击“立即开通”,将为您提供商用级别的推理API服务,暂不支持关闭商用服务,未使用商用服务时不会产生费用。关于如何计费,请参见推理服务按Tokens使用量(后付费)。 在ModelArts Studio服务声明对话框,查看服务声明内容并单击“同意”。 在对话页面顶部,单击模型名称,按需选择模型服务,进行文本对话。 您也可以在右上角单击参数设置图标,按需拖动调整推理参数。单击“恢复默认”可以将参数值调回默认值。 表1 参数设置 参数 说明 温度/Temperature 设置推理温度。 数值较高,输出结果更加随机。 数值较低,输出结果更加集中和确定。 取值范围:0~2 默认值:0.7 核采样/top_p 设置推理核采样。调整输出文本的多样性,数值越大,生成文本的多样性就越高。 取值范围:0.1~1 默认值:1 top_k 选择在模型的输出结果中选择概率最高的前K个结果。 取值范围:1~1000 默认值:20 (可选)如果您需要开通商用服务,可以在对话页面顶部,单击模型名称,选择“商用服务”,在目标模型右侧单击“开通”。
  • 使用ModelArts Studio(MaaS)创建多轮对话 本文介绍如何使用MaaS Chat API进行多轮对话。 MaaS服务端不会记录用户请求的上下文,用户每次发起请求时,需要将之前所有对话历史拼接好后,传递给Chat API。下文以一个Python代码为例进行说明,请您根据实际情况进行修改。 以下为Python的上下文拼接和请求示例代码: from openai import OpenAI client = OpenAI(api_key="MaaS API Key", base_url="https://xxxxxxxxxxxxxxxx") # 首轮对话 messages = [{"role": "user", "content": "9.11和9.8哪个大?"}] response = client.chat.completions.create( model="DeepSeek-R1", messages=messages ) messages.append(response.choices[0].message) print(f"Messages Round 1: {messages}") # 第二轮对话 messages.append({"role": "user", "content": "他们相加等于多少"}) response = client.chat.completions.create( model="DeepSeek-R1", messages=messages ) messages.append(response.choices[0].message) print(f"Messages Round 2: {messages}") 首轮对话时,请求体中的messages为: [ {"role": "user", "content": "9.11和9.8哪个大?"} ] 在第二轮对话时,请求体中的messages构建步骤如下: 将首轮对话中模型(role的值为"assistant")的输出内容添加到messages结尾。 将新的用户问题添加到messages结尾。 最终传递给Chat API的请求体中的messages为: [ {"role": "user", "content": "9.11和9.8哪个大?"}, {"role": "assistant", "content": "9.8更大"}, {"role": "user", "content": "他们相加等于多少"} ]
  • 操作步骤 登录ModelArts Studio控制台,在顶部导航栏选择目标区域。 在左侧导航栏,选择“在线推理”。 在“预置服务”页签的“商用服务”页签,在目标服务右侧的“操作”列,单击“开通服务”。 在“开通付费服务”页面,勾选目标服务,仔细阅读并勾选“开通须知”区域下的内容,然后单击“立即开通”。 商用服务列表的“优惠折扣”列会显示已有的优惠券,“--”表示没有优惠,请以实际环境为准。 开通商用服务后,可以使用预置服务进行体验或调用。具体操作,请参见在MaaS体验模型服务和调用MaaS部署的模型服务。 在“商用服务”页签,单击“调用统计”列的图标,可以查看目标服务的调用次数、Tokens数、首Token时延等指标信息。详细信息,请参见在ModelArts Studio(MaaS)查看调用数据和监控指标。
  • 常见问题 有计费示例吗? 计费项和计费示例请参考MaaS模型推理计费项。 开通付费服务后,可以关闭吗? 暂不支持关闭付费服务,未使用服务时不会产生费用。 使用商用服务,模型状态显示冻结,如何处理? 此时欠费冻结的资源不可使用,未开通的模型不支持再开通。您可以通过充值进行解冻,被冻结的资源实例将恢复使用,未开通的模型将支持开通。详细操作请参见账户充值。 如果模型服务的RPM数值为300,可以1秒直接发送300个请求吗? 不可以。如果模型服务的RPM(每分钟请求数)为300,意味着每秒最多可以处理5个请求(300/60=5)。因此,1秒内发送300个请求会远远超出服务的处理能力,导致请求失败。 建议您均匀地发送API请求,避免短时间内发送大量请求。根据API网关的限流机制,如果1秒内的请求数超过RPM/60*1,超额部分的请求可能会触发API网关的速率限制拦截,导致请求失败并返回错误码429(Too Many Requests)。
  • 错误码 在调用MaaS部署的模型服务时,可能出现的错误码及相关信息如下。 表1 错误码 HTTP状态码 错误码 错误信息 说明 401 ModelArts.4207 "error_msg":"The free quota has been used up." 免费额度已用完。 5XX APIG.0203 "error_msg":"Backend timeout",error_code:APIG.0203 请求的服务响应超时。 500 ModelArts.4302 "error_code": "ModelArts.4302", "error_msg": "Gateway forwarding error because the access is rejected. " 请求的在线服务已停止。 400 ModelArts.4905 "error_code": "ModelArts.4905", "error_msg": "Failed to check the authorization request header. " API Key错误或不存在。 400 ModelArts.4203 "error_code": "ModelArts.4203", "error_msg": "Invalid request because requested service 5a6a7a2d-3a1b-44d3-bb40-3633a8ef**** is unavailable. " 请求的服务已删除。 400 "object": "error" "object": "error", "message": "[{'type': 'missing', 'loc': ('body', 'model'), 'msg': 'Field required', 'input': {'max_tokens': 20, 'messages': [{'role': 'system', 'content': 'You are a helpful assistant.'}, {'role': 'user', 'content': '你好'}], 'stream': False, 'temperature': 1.0}}]", "type": "BadRequestError", "param": null, "code": 400 请求体中缺失必填参数。 400 "object": "error" "object": "error", "message": "[{'type': 'extra_forbidden', 'loc': ('body', 'test'), 'msg': 'Extra inputs are not permitted', 'input': 15}]", "type": "BadRequestError", "param": null, "code": 400 请求体中包含不支持的额外请求参数。 400 "object": "error" "object": "error", "message": "[{'type': 'json_invalid', 'loc': ('body', 273), 'msg': 'JSON decode error', 'input': {}, 'ctx': {'error': \"Expecting ',' delimiter\"}}]", "type": "BadRequestError", "param": null, "code": 400 请求体json格式错误。 400 "object": "error" "object": "error", "message": "[{'type': 'missing', 'loc': ('body',), 'msg': 'Field required', 'input': None}]", "type": "BadRequestError", "param": null, "code": 400 无请求体。 400 "object": "error" "object": "error", "message": "This model's maximum context length is 4096 tokens. However, you requested 8242 tokens (20 in the messages, 8222 in the completion). Please reduce the length of the messages or completion.", "type": "BadRequestError", "param": null, "code": 400 max_tokens设置超出模型支持的上限。 400 ModelArts.4203 "error_code": "ModelArts.4203", "error_msg": "Invalid request because access prohibited. " 访问被拒绝;免费Token领取后需要等待几分钟后生效,请稍候重试。 401 ModelArts.0201 "error_code": "ModelArts.0201", "error_msg": "Token doesn't exist. " 模型服务正在部署中,请等待服务状态为运行中后再进行调用。 404 "object": "error" "object": "error", "message": "The model `Qwen2.5-72B-32K` does not exist.", "type": "NotFoundError", "param": null, "code": 404 请求体中model参数填写错误。 404 APIG.0101 "error_msg": "The API does not exist or has not been published in the environment", "error_code": "APIG.0101", "request_id": "d0ddda0fcdd0cc23a1588fafe426****" 请求接口地址错误或不存在。 405 - "detail":"Method Not Allowed" 采用了错误的请求方式。 413 ModelArts.4910 "error_msg":"May contain sensitive information, please try again." 包含不合规内容,请求已被风控拦截。 429 APIG.0308 "error_msg": "The throttling threshold has been reached: policy ip over ratelimit,limit:5,time:1 minute" 达到APIG流量控制上限。 父主题: ModelArts Studio(MaaS) API调用规范
  • 响应示例 { "object": "list", "data": [ { "id": "DeepSeek-R1", "object": "model", "created": 0, "owned_by": "" }, { "id": "DeepSeek-V3", "object": "model", "created": 0, "owned_by": "" } ] }
  • 请求示例 import requests url = "https://example.com/v1/infers/xxxxxxxxxxxxxxxxxxx/v1/models" headers = {"Authorization": "Bearer yourApiKey"} response = requests.request("GET", url, headers=headers) print(response.text)
  • 请求示例 Python请求示例: # coding=utf-8 import requests import json if __name__ == '__main__': url = "https://example.com/v1/infers/xxxxxxxxxxx/v1/chat/completions" # Send request. headers = { 'Content-Type': 'application/json', 'Authorization': 'Bearer yourApiKey' # 把yourApiKey替换成真实的API Key。 } data = { "model": "DeepSeek-R1", "max_tokens": 20, "messages": [ {"role": "system", "content": "You are a helpful assistant."}, {"role": "user", "content": "你好"} ], # 是否开启流式推理, 默认为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) OpenAI SDK请求示例: from openai import OpenAI client = OpenAI( base_url = "https://example.com/v1/infers/xxxxxxxxxxxx/v1", api_key = "yourApiKey" ) completion = client.chat.completions.create( model="DeepSeek-R1", messages=[{"role":"user","content":"9.11和9.8哪个大"}], temperature=0.6, top_p=0.7, max_tokens=4096, stream=True ) for chunk in completion: if chunk.choices[0].delta.content is not None: print(chunk.choices[0].delta.content, end="")
  • 支持模型列表 表1 支持模型列表 模型系列 模型版本 支持地域 model参数值 max_tokens取值范围 Function Call功能 DeepSeek DeepSeek-R1-8K 西南-贵阳一、华北-乌兰察布一 DeepSeek-R1 [2,8192] 暂不支持 DeepSeek DeepSeek-R1-16K 西南-贵阳一、华北-乌兰察布一 DeepSeek-R1 [2,16384] 暂不支持 DeepSeek DeepSeek-R1-32K 西南-贵阳一、华北-乌兰察布一 DeepSeek-R1 [2,32768] 暂不支持 DeepSeek DeepSeek-V3-8K 西南-贵阳一、华北-乌兰察布一 DeepSeek-V3 [2,8192] 暂不支持 DeepSeek DeepSeek-V3-16K 西南-贵阳一、华北-乌兰察布一 DeepSeek-V3 [2,16384] 暂不支持 DeepSeek DeepSeek-V3-32K 西南-贵阳一、华北-乌兰察布一 DeepSeek-V3 [2,32768] 暂不支持 DeepSeek DeepSeek-R1-Distill-Qwen-32B-8K 西南-贵阳一、华北-乌兰察布一 DeepSeek-R1-Distill-Qwen-32B-8K [2,8192] 暂不支持 DeepSeek DeepSeek-R1-Distill-Qwen-32B 西南-贵阳一、华东二、华北-乌兰察布一 DeepSeek-R1-Distill-Qwen-32B [2,4096] 暂不支持 DeepSeek DeepSeek-R1-Distill-Qwen-14B 西南-贵阳一、华东二、华北-乌兰察布一 DeepSeek-R1-Distill-Qwen-14B [2,4096] 暂不支持 通义千问2.5 Qwen2.5-72B-32K 西南-贵阳一、华东二 Qwen2.5-72B-32K [2,32768] 支持 通义千问2.5 Qwen2.5-72B-1K 西南-贵阳一、华东二 Qwen2.5-72B-1K [2,4096] 暂不支持 通义千问2.5 Qwen2.5-72B 西南-贵阳一、华东二 Qwen2.5-72B [2,4096] 支持 通义千问2.5 Qwen2.5-72B-AWQ 西南-贵阳一、华东二 Qwen2.5-72B [2,4096] 暂不支持 通义千问2.5 Qwen2.5-32B 西南-贵阳一、华东二 Qwen2.5-32B [2,4096] 暂不支持 通义千问2.5 Qwen2.5-32B-AWQ 西南-贵阳一、华东二 Qwen2.5-32B-AWQ [2,4096] 暂不支持 通义千问2.5 Qwen2.5-14B 西南-贵阳一、华东二 Qwen2.5-14B [2,4096] 暂不支持 通义千问2.5 Qwen2.5-7B 西南-贵阳一、华东二 Qwen2.5-7B [2,4096] 支持 通义千问2.5 Qwen2.5-1.5B 西南-贵阳一、华东二 Qwen2.5-1.5B [2,4096] 暂不支持 通义千问2.5 Qwen2.5-0.5B 西南-贵阳一、华东二 Qwen2.5-0.5B [2,4096] 暂不支持 通义千问2 Qwen2-72B-32K 西南-贵阳一、华东二 Qwen2-72B-32K [2,32768] 暂不支持 通义千问2 Qwen2-72B 西南-贵阳一、华东二 Qwen2-72B [2,4096] 暂不支持 通义千问2 Qwen2-72B-1K 西南-贵阳一、华东二 Qwen2-72B-1K [2,4096] 暂不支持 通义千问2 Qwen2-72B-AWQ 西南-贵阳一、华东二 Qwen2-72B-AWQ [2,4096] 暂不支持 通义千问2 Qwen2-32B 西南-贵阳一、华东二 Qwen2-32B [2,4096] 暂不支持 通义千问2 Qwen2-14B 西南-贵阳一、华东二 Qwen2-14B [2,4096] 暂不支持 通义千问2 Qwen2-7B 西南-贵阳一、华东二 Qwen2-7B [2,4096] 暂不支持 通义千问2 Qwen2-7B-AWQ 西南-贵阳一、华东二 Qwen2-7B-AWQ [2,4096] 暂不支持 通义千问2 Qwen2-1.5B 西南-贵阳一、华东二 Qwen2-1.5B [2,4096] 暂不支持 通义千问2 Qwen2-1.5B-AWQ 西南-贵阳一、华东二 Qwen2-1.5B-AWQ [2,4096] 暂不支持 通义千问2 Qwen2-0.5B 西南-贵阳一、华东二 Qwen2-0.5B [2,4096] 暂不支持 ChatGLM GLM4-9B 西南-贵阳一、华东二 GLM4-9B [2,4096] 暂不支持 ChatGLM ChatGLM3-6B 西南-贵阳一、华东二 ChatGLM3-6B [2,4096] 暂不支持 通义千问1.5 Qwen1.5-72B-32K 西南-贵阳一、华东二 Qwen1.5-72B-32K [2,32768] 暂不支持 通义千问1.5 Qwen1.5-72B 西南-贵阳一、华东二 Qwen1.5-72B [2,4096] 暂不支持 通义千问1.5 Qwen1.5-72B-AWQ 西南-贵阳一、华东二 Qwen1.5-72B-AWQ [2,4096] 暂不支持 通义千问1.5 Qwen1.5-32B 西南-贵阳一、华东二 Qwen1.5-32B [2,4096] 暂不支持 通义千问1.5 Qwen1.5-14B 西南-贵阳一、华东二 Qwen1.5-14B [2,4096] 暂不支持 通义千问1.5 Qwen1.5-14B-AWQ 西南-贵阳一、华东二 Qwen1.5-14B-AWQ [2,4096] 暂不支持 通义千问1.5 Qwen1.5-7B 西南-贵阳一、华东二 Qwen1.5-7B [2,4096] 暂不支持 通义千问1.5 Qwen1.5-7B-AWQ 西南-贵阳一、华东二 Qwen1.5-7B-AWQ [2,4096] 暂不支持 Yi Yi-34B 西南-贵阳一、华东二 Yi-34B [2,4096] 暂不支持 Yi Yi-6B 西南-贵阳一、华东二 Yi-6B [2,4096] 暂不支持 Deepseek Coder Deepseek-Coder-33B 西南-贵阳一、华东二 Deepseek-Coder-33B [2,4096] 暂不支持 通义千问 Qwen-72B 西南-贵阳一、华东二 Qwen-72B [2,4096] 暂不支持 通义千问 Qwen-14B 西南-贵阳一、华东二 Qwen-14B [2,2048] 暂不支持 通义千问 Qwen-7B 西南-贵阳一、华东二 Qwen-7B [2,4096] 暂不支持
  • 前提条件 预置服务或我的服务满足以下条件: 预置服务-商用服务:已开通预置服务的商用服务并产生调用记录。具体操作,请参见在ModelArts Studio(MaaS)预置服务中开通商用服务。 预置服务-免费服务:已领取预置服务的免费服务额度并产生调用记录。具体操作,请参见免费体验ModelArts Studio(MaaS)预置服务。 我的服务:已在“我的服务”页面部署模型服务并产生调用记录。具体操作,请参见使用ModelArts Studio(MaaS)部署模型服务。
  • 约束限制 统计范围: 仅统计预置服务-商用服务、预置服务-免费服务、我的服务的调用数据。 调用统计数据仅统计通过API接口调用产生的数据,页面体验产生的数据暂时不纳入统计。 当前统计数据仅统计2025年04月27日开始的数据,如您需要在此之前已产生的调用数据,请提交工单。 数据更新延迟:调用数据统计可能存在1~2小时的延迟,数据不能实时反映最新调用情况。 时间范围限制: 支持预设时间段:今天、昨天、近3天、近7天、近14天。 自定义时间段:最长不超过30天。
  • 创建API Key 最多可创建30个密钥。每个密钥仅在创建时显示一次,请确保妥善保存。如果密钥丢失,无法找回,需要重新创建API Key以获取新的访问密钥。 登录ModelArts Studio控制台,在顶部导航栏选择目标区域。 在左侧导航栏,单击“API Key管理”。 在“API Key管理”页面,单击“创建API Key”,填写标签和描述信息后,单击“确定”。 标签和描述信息在创建完成后,不支持修改。 表1 创建API Key参数说明 参数 说明 标签 自定义API Key的标签。标签具有唯一性,不可重复。仅支持大小写英文字母、数字、下划线、中划线,长度范围为1~100个字符。 描述 自定义API Key的描述,长度范围为1~100个字符。 在“您的密钥”对话框,复制密钥并保存至安全位置。 保存完毕后,单击“关闭”。 单击“关闭”后将无法再次查看密钥。
  • 删除API Key 当API Key数量达到上限,或者API Key发生泄露、遗忘等情况时,建议您及时删除不再使用的API Key。删除后该API Key将无法使用且无法找回。 登录ModelArts Studio控制台,在顶部导航栏选择目标区域。 在左侧导航栏,单击“API Key管理”。 在“API Key管理”页面右侧,单击API Key右侧的“删除”。 在“删除API Key”对话框,单击“确定”。
  • 场景描述 当用户使用MaaS部署的模型服务进行数据请求、模型推理等操作时,系统通过验证API Key来确认用户的身份与访问权限,只有具备有效API Key的用户才能成功调用模型服务,防止未经授权的访问。 首次接入服务:用户首次调用模型接口时需要创建API Key完成身份认证。 密钥丢失或泄露:原有API Key泄露或遗忘时,需要新建并替换旧密钥以保障安全。 定期轮换密钥:根据安全策略定期更新密钥,减少长期暴露的风险。
  • 使用ModelArts Studio(MaaS) DeepSeek API搭建AI应用 您可以使用MaaS DeepSeek API搭配Dify、Cherry Studio等实现AI相关应用。 Dify:使用MaaS(大模型即服务平台)的免费Token额度的满血版DeepSeek-R1 API接入Dify(开源Agent平台),快速构建AI 对话机器人 并将其嵌入在网页中。具体操作,请参见基于ModelArts Studio(MaaS) DeepSeek API和Dify快速构建网站智能客服。 Cherry Studio:使用Cherry Studio调用部署在ModelArts Studio上的DeepSeek模型,构建个人AI助手。具体操作,请参见基于ModelArts Studio(MaaS) DeepSeek API和Cherry Studio快速构建个人AI智能助手。 Cursor:使用Cursor调用部署在ModelArts Studio上的DeepSeek模型,构建代码编辑器。具体操作,请参见基于ModelArts Studio(MaaS) DeepSeek API和Cursor快速构建代码编辑器。 Cline:使用Cline调用部署在ModelArts Studio上的DeepSeek模型,构建AI编程助手。具体操作,请参见基于ModelArts Studio(MaaS) DeepSeek API和Cline快速构建AI编程助手。 RAGFlow:使用RAGFlow调用部署在ModelArts Studio上的DeepSeek模型,快速构建AI助理。具体操作,请参见基于ModelArts Studio(MaaS) DeepSeek API和RAGFlow快速构建AI助理。 Deep Research:使用Deep Research调用部署在ModelArts Studio上的DeepSeek模型,快速实现行业洞察。具体操作,请参见基于ModelArts Studio(MaaS) DeepSeek API和Deep Research快速实现行业洞察。
  • 使用场景 大语言模型的Function Calling能力允许模型调用外部函数或服务,以扩展其自身的能力,执行它本身无法完成的任务。以下是一些Function Calling的使用场景: 表1 Function Calling使用场景说明 使用场景 说明 增强能力 大模型通过Function Calling可以调用外部工具或服务,例如实时数据检索、文件处理、数据库查询等,从而扩展其能力。 实时数据访问 由于大模型通常基于静态数据集训练,不具备实时信息。Function Calling允许模型访问最新的数据,提供更准确、更及时的回答。 提高准确性 在需要精确计算或特定领域知识时,大模型可以通过调用专门的函数来提高回答的准确性,例如调用数学计算函数、翻译服务或专业知识库。
  • 使用方式 方式一:在请求体中添加相关函数。 "tools": [ { 'type': 'function', 'function': { 'name': '对应到实际执行的函数名称', 'description': '此处是函数相关描述', 'parameters': { '_comments': '此处是函数参数相关描述' }, } }, { '_comments': '其他函数相关说明' } ] 方式二:通过OpenAI库发起请求。 response = client.chat.completions.create( model="MaaS模型名称", messages = messages, tools=[ { 'type': 'function', 'function': { 'name': '对应到实际执行的函数名称', 'description': '此处是函数相关描述', 'parameters': { // 此处是函数参数相关描述 }, } }, { // 其他函数相关说明 } ] // chat.completions 其他参数 )
  • 操作步骤 在Dify界面右上角单击用户头像,选择“设置”。 在“设置”页面左侧,选择“模型供应商”页签,找到“ OpenAI-API-compatible”供应商,单击添加模型。 在弹窗中,配置MaaS对应的模型名称、API Key、API Endpoint URL、Function calling等信息。 表1 配置说明 配置项 说明 模型名称 MaaS“调用说明”页面显示的模型名称。 API Key MaaS“API Key管理”页面中创建的API Key。具体操作,请参见创建API Key。 API Endpoint URL 服务调用界面中MaaS服务的基础API地址,需要去掉地址尾部的“/chat/completions” 。具体操作,请参见步骤二:调用MaaS模型服务进行预测。 Function calling 设置为“Tool Call”。 Stream function calling 暂不支持。 在Dify中创建Agent进行编排,在右上角单击“Agent 设置”,选择上一步配置好的模型进行使用。 在Agent设置中可以看到Dify已自动将Agent Mode切换到了Function Calling模式。 图1 Agent设置 在“编排”页面的“提示词”文本框,输入以下信息。 你是一位乐于助人的AI助手。在回答用户问题时,你需要:1. 始终使用自然语言解释你将要采取的行动 2. 在调用工具之前,说明你要使用哪个工具以及原因 3. 在获取信息的过程中,清晰地描述你正在做什么 4. 永远不要返回空的回复 - 确保用自然语言解释你的每个步骤,比如当查询天气时,你应该先说'让我使用天气工具为您查询...',然后再进行工具调用。记住:先表达你的理解和计划,再使用工具。每次回复都必须包含对用户的清晰解释。 图2 输入提示词 在“编排”页面的“工具”区域右侧,单击“添加”,按需添加工具并与模型进行对话调用。 Dify内置有丰富的插件,同时支持自定义工具的创建。 图3 添加工具
  • 前提条件 给用户组授权之前,请先了解用户组可以添加的使用ModelArts及其依赖服务的权限,并结合实际需求进行选择,MaaS服务支持的系统权限,请参见表1。 表1 服务授权列表 待授权的服务 授权说明 IAM 权限设置 是否必选 ModelArts 授予子用户使用ModelArts服务的权限。 ModelArts CommonOperations没有任何专属资源池的创建、更新、删除权限,只有使用权限。推荐给子用户配置此权限。 ModelArts CommonOperations 必选 如果需要给子用户开通专属资源池的创建、更新、删除权限,此处要勾选ModelArts FullAccess,请谨慎配置。 ModelArts FullAccess 可选 ModelArts FullAccess权限和ModelArts CommonOperations权限建议二选一。 OBS 对象存储服务 授予子用户使用OBS服务的权限。ModelArts的数据管理、开发环境、训练作业、模型推理部署均需要通过OBS进行数据中转。 OBS OperateAccess 必选 SWR容器镜像 仓库 授予子用户使用SWR服务权限。ModelArts的自定义镜像功能依赖 镜像服务 SWR FullAccess权限。 SWR OperateAccess 必选 CES 云监控 授予子用户使用CES 云监控服务 的权限。通过CES 云监控 可以查看ModelArts的在线服务和对应模型负载运行状态的整体情况,并设置监控告警。 CES FullAccess 必选 SMN 消息服务 授予子用户使用SMN消息服务的权限。SMN 消息通知 服务配合CES监控告警功能一起使用。 SMN FullAccess 必选 VPC虚拟私有云 子用户在创建ModelArts的专属资源池过程中,如果需要开启自定义网络配置,需要配置VPC权限。 VPC FullAccess 可选
  • 约束与限制 华为云账号 只有华为云账号可以使用委托授权,可以为当前账号授权,也可以为当前账号下的所有IAM用户授权。 多个IAM用户或账号,可使用同一个委托。 一个账号下,最多可创建50个委托。 对于首次使用ModelArts的新用户,请直接新增委托即可。一般用户新增普通用户权限即可满足使用要求。如果有精细化权限管理的需求,可以自定义权限按需设置。 IAM用户 如果已获得委托授权,则可以在权限管理页面中查看到已获得的委托授权信息。 如果未获得委托授权,当打开“访问授权”页面时,ModelArts会提醒您当前用户未配置授权,需联系此IAM用户的管理员账号进行委托授权。
  • 修改授权的权限范围 在查看授权详情时,如果想要修改授权范围,可以在权限详情页单击“IAM查看全部委托权限”。 图9 去IAM修改委托权限 进入IAM控制台的“委托”页面,单击需要修改的委托名称,按需修改该委托的基本信息。“持续时间”可以选择永久、1天,或者自定义天数,例如30天。 图10 手动创建的委托 在“授权记录”页面单击“授权”,勾选要配置的策略,单击“下一步”设置最小授权范围,单击“确定”,完成授权修改。 设置最小授权范围时,可以选择指定的区域,也可以选择所有区域,即不设置范围。
  • 删除授权 为了更好的管理您的授权,您可以删除某一IAM用户的授权,也可批量清空所有用户的授权。删除操作无法恢复,请谨慎操作。 删除某一用户的授权 在“权限管理”页面,展示当前账号下为其IAM用户配置的授权列表,针对某一用户,您可以单击“操作”列的“删除”,输入“DELETE”后单击“确认”,可删除此用户的授权。删除生效后,此用户将无法继续使用ModelArts的相关功能。 批量清空所有授权 在“权限管理”页面,单击授权列表上方的“清空授权”,输入“DELETE”后单击“确认”,可删除当前账号下的所有授权。删除生效后,此账号及其所有IAM子用户将无法继续使用ModelArts的相关功能。
  • 场景描述 MaaS服务的访问授权是通过ModelArts统一管理的,当用户已拥有ModelArts的访问授权时,无需单独配置MaaS服务的访问授权,当用户没有ModelArts的访问授权时,则需要先完成配置才能正常使用MaaS服务。 ModelArts在任务执行过程中需要访问用户的其他服务,典型的就是训练过程中,需要访问OBS读取用户的训练数据。在这个过程中,就出现了ModelArts“代表”用户去访问其他云服务的情形。从安全角度出发,ModelArts代表用户访问任何云服务之前,均需要先获得用户的授权,而这个动作就是一个“委托”的过程。用户授权ModelArts再代表自己访问特定的云服务,以完成其在ModelArts平台上执行的AI计算任务。 ModelArts提供了一键式自动授权功能,用户可以在ModelArts的权限管理功能中,快速完成委托授权,由ModelArts为用户自动创建委托并配置到ModelArts服务中。 本章节主要介绍一键式自动授权方式。一键式自动授权方式支持给IAM子用户、联邦用户(虚拟IAM用户)、委托用户和所有用户授权。
  • 常见问题 首次使用ModelArts如何配置授权? 直接选择“新增委托”中的“普通用户”权限即可,普通用户包括用户使用ModelArts完成AI开发的所有必要功能权限,如数据的访问、训练任务的创建和管理等。一般用户选择此项即可。 如何获取访问密钥AK/SK? 如果在其他功能(例如访问模型服务等)中使用到访问密钥AK/SK认证,获取AK/SK方式请参考如何获取访问密钥。 如何删除已有委托? 需要前往 统一身份认证 服务IAM控制台的委托页面删除。具体操作,请参见删除或修改委托。 进入ModelArts控制台的某个页面时,为什么会提示权限不足? 可能原因是用户委托权限配置不足或模块能力升级,需要更新授权信息。根据界面操作提示追加授权即可。具体操作,请参见配置用户缺失的ModelArts Studio(MaaS)相关服务权限。
  • 应用中心介绍 “MaaS应用体验中心”提供基于行业客户应用场景的AI解决方案。MaaS提供的模型服务和华为云各AI应用层构建工具之间相互连通,通过灵活的组合方案,来帮助客户快速解决模型落地应用时所面临的业务及技术挑战。 MaaS应用体验中心结合 KooSearch 企业搜索服务、盘古数字人大脑和Dify,为具体的客户应用场景提供一整套解决方案。 KooSearch 企业搜索 服务:基于在MaaS开源大模型部署的模型API,搭建企业专属方案、LLM驱动的语义搜索、多模态搜索增强。 盘古数字人大脑:基于在MaaS开源大模型部署的模型API,升级智能对话解决方案,含智能客服、数字人。 Dify:支持自部署的应用构建开源解决方案,用于Agent编排、自定义工作流。
  • 前提条件 使用预置服务:在“在线推理”页面的“预置服务”页签,已领取免费Token额度且额度未使用完毕,或者已开通商用服务。具体操作,请参见免费体验MaaS预置服务和在ModelArts Studio(MaaS)预置服务中开通商用服务。 使用我的服务:在“在线推理”页面的“我的服务”页签,服务列表存在运行中、更新中或升级中的模型服务。具体操作,请参见使用ModelArts Studio(MaaS)部署模型服务。
  • 接口调用说明 假设API地址为https://example.com/v1/infers/937cabe5-d673-47f1-9e7c-2b4de06*****/{endpoint} ,其中{endpoint}仅支持如下接口: /v1/chat/completions /v1/models /v1/completions 注意: /v1/models使用GET方法不需要请求体,而/v1/chat/completions与/v1/completions均需要POST请求方式和对应的JSON请求体。 通用请求头为Authorization: Bearer YOUR_API_KEY,对于POST请求,还需包含Content-Type: application/json。 表5 接口说明 类型/接口 /v1/models /v1/chat/completions /v1/completions 请求方法 GET POST POST 用途 获取当前支持的模型列表。 用于聊天对话型生成调用。 面向传统文本补全,即根据给定的prompt生成相应文本。 请求体说明 无需请求体,仅需通过请求头传入认证信息。 model:使用的模型标识,例如 "GLM-4-9B"。 messages:对话消息数组,每条消息需要包含role(如 "user" 或 "assistant")和content。 其他可选参数:例如temperature(生成温度)、max_tokens等,用于控制生成结果的多样性和长度。 model:使用的模型标识,例如 "GLM-4-9B"。 prompt:用户的文本提示。 max_tokens:生成文本的最大长度。 temperature:控制生成随机性,通常与/v1/chat/completions参数类似。 请求示例 GET https://example.com/v1/infers/937cabe5-d673-47f1-9e7c-2b4de06*****/v1/models HTTP/1.1 Authorization: Bearer YOUR_API_KEY POST https://example.com/v1/infers/937cabe5-d673-47f1-9e7c-2b4de06*****/v1/chat/completions HTTP/1.1 Content-Type: application/json Authorization: Bearer YOUR_API_KEY { "model": "******", "messages": [ {"role": "user", "content": "Hello, how are you?"} ], "temperature": 0.7 } POST https://example.com/v1/infers/937cabe5-d673-47f1-9e7c-2b4de06*****/v1/completions HTTP/1.1 Content-Type: application/json Authorization: Bearer YOUR_API_KEY { "model": "******", "prompt": "Tell me a story about a brave knight.", "max_tokens": 150, "temperature": 0.7 } 响应示例 { "data": [ { "id": "******", "description": "最新一代大模型" }, { "id": "******", "description": "性价比较高的替代方案" } ] } { "id": "******", "object": "chat.completion", "choices": [ { "index": 0, "message": {"role": "assistant", "content": "I'm doing well, thank you! How can I help you today?"} } ], "usage": { "prompt_tokens": 15, "completion_tokens": 25, "total_tokens": 40 } } { "id": "******", "object": "text_completion", "choices": [ { "text": "Once upon a time, a brave knight embarked on a perilous journey...", "index": 0 } ], "usage": { "prompt_tokens": 10, "completion_tokens": 90, "total_tokens": 100 } }
  • 步骤一:获取API Key 在调用MaaS部署的模型服务时,需要填写API Key用于接口的鉴权认证。最多可创建30个密钥。每个密钥仅在创建时显示一次,请确保妥善保存。如果密钥丢失,无法找回,需要重新创建API Key以获取新的访问密钥。更多信息,请参见在ModelArts Studio(MaaS)管理API Key。 登录ModelArts Studio控制台,在顶部导航栏选择目标区域。 在左侧导航栏,单击“API Key管理”。 在“API Key管理”页面,单击“创建API Key”,填写标签和描述信息后,单击“确定”。 标签和描述信息在创建完成后,不支持修改。 表1 创建API Key参数说明 参数 说明 标签 自定义API Key的标签。标签具有唯一性,不可重复。仅支持大小写英文字母、数字、下划线、中划线,长度范围为1~100个字符。 描述 自定义API Key的描述,长度范围为1~100个字符。 在“您的密钥”对话框,复制密钥并保存至安全位置。 保存完毕后,单击“关闭”。 单击“关闭”后将无法再次查看密钥。
共100000条
提示

您即将访问非华为云网站,请注意账号财产安全