步骤四:创建自定义连接器并编排对接DeepSeek
在智能助手模板应用中,创建一个自定义连接器和服务编排,用于对接DeepSeek。
- 获取模型部署接口地址和参数。
本实践以华为ModelArts Studio中部署的DeepSeek体验示例为例,实际使用时请根据实际模型部署情况,获取接口地址和参数。
- 登录ModelArts控制台 ,区域选择“华东二”。
图1 选择华东二区域
- 在左侧导航栏中,选择“模型部署”,领取DeepSeek免费额度服务。
请记录服务名称,后续在创建服务编排时需要设置。图2 领取DeepSeek免费额度服务
- 在左侧导航栏中,选择“鉴权管理”,单击“创建API Key”。
图3 创建API Key
- 获取API Key,用于后续调用DeepSeek服务。
- 返回模型部署页面,单击“调用”,进入调用页面。
图5 选择调用
- 复制API地址和模型名称并保存,单击“API调用指南”。
图6 单击API调用指南在调用指南中,可以看到通过接口调用DeepSeek的请求消息结构以及各个参数的作用(截图仅展示请求参数,返回参数在操作中下拉即可阅读)。根据业务需求,此处仅需要请求参数中的model(模型名称)和messages(请求内容,后续自定义),请求地址url即API地址,Authorization为Bearer+ApiKey(二者之间需有一个空格)。图7 查看接口参数图8 查看接口请求参数
- 登录ModelArts控制台 ,区域选择“华东二”。
- 返回智能助手模板应用设计器,创建自定义连接器。
- 在智能助手模板应用设计器的左侧菜单栏中,选择“集成 > 连接器 > 连接器实例”。
- 选择“自定义连接器”,单击
,进入创建自定义连接器页面。
图9 新建自定义连接器 - 输入连接器的标签和名称,单击“保存”。
图10 设置连接器信息
- 在已创建连接器的“动作”页签,单击“新建”。
图11 选择新建
- 设置动作基本信息,单击“下一步”。
图12 设置基本信息
表2 动作基本信息参数说明 参数
说明
示例
标签
新建动作的标签名,用于在页面显示。
取值范围:1~64个字符。
ds
名称
新建动作的名称,名称是动作在系统中的唯一标识。命名要求如下:
ds
URL
第三方提供的,协议服务的URL地址。例如,/path/test (认证信息需要配置主机地址)、http://www.域名.com或者http://系统参数。
配置为1.f中获取的URL地址
方法
在下拉框中,选择请求的方法。- GET:获取资源。
- POST:创建资源。
- PUT:更新资源。
- PATCH:用于更新资源的部分内容。
- DELETE:删除资源。
- OPTIONS:用于获取当前URL所支持的方法。
方法选择“PUT”或“POST”时,可自定义输入消息体参数。当第三方入参为数组或非JSON类型时,需要在定义输入参数设置为“键-值”形式。勾选后系统会引入一个通用的入参变量“$in”,将数组或非JSON类型的变量存到“$in”中,变成“键-值”格式传入到Rest Action中。
POST
内容类型
输入内容的类型,该值取决于第三方支持哪种类型,是在HTTP标准协议中定义的。
- application/json
- application/x-www-form-urlencoded
- application/xml
- multipart/form-data
- text/html
- text/plain
application/json
返回类型
取值为“application/json”时,表示会忽略第三方实际返回的“content-type”,使用第三方配置的“content-type”来解析第三方返回的内容。
如果该参数取值为空,表示使用http返回中的“content-type”,来解析第三方返回的内容。
application/json
超时时间
当超出该参数设定的时间,第三方没有返回结果时系统报错。
单位:秒。
自定义,30秒
- 设置消息头入参,本示例无需配置,单击
删除后,再单击“下一步”。
图13 删除消息头入参 - 设置输入参数,单击“下一步”。
图14 设置输入参数
表3 输入参数说明 参数
说明
示例
标签
输入参数的标签名,用于在页面显示。
model、messages
名称
新建输入参数的名称,名称是输入参数在系统中的唯一标识。
model、messages
参数位置
设置输入参数的位置,取值如下:
- 消息体
- URL查询参数
- URL路径参数
消息体
数据类型
设置输入参数的数据类型,取值如下:- 日期:日期类型,精度到天。
- 日期/时间:时间类型,精度到秒。
- 数字:数字类型。
- 字符串:字符串类型。
- 布尔值:布尔类型,取值为“true”和“false”。
- 全局结构体
- 键值对(Map):Map集合类型。
- 对象:对象标识类型。
- 敏感文本,如姓名、手机号等。
字符串、键值对(Map)
必填
输入参数是否设置为必填。
勾选
集合
输入参数是否设置为数组类型。
输入参数messages,请勾选集合
- 设置输出参数,“消息体格式”修改为“值”,“数据类型”选择“键值对(Map)”,单击“保存”。
图15 设置输出参数
- 动作创建完成后,在“认证信息”页签,单击“新建”。
图16 选择新建
- 设置认证信息,单击“保存”。
图17 设置认证基本信息图18 鉴权设置
表4 添加认证信息参数说明 参数
说明
示例
标签
认证的标签名,用于在页面显示。
取值范围:1~64个字符。
ds
名称
认证的名称,名称是认证在系统中的唯一标识。命名要求如下:
ds
鉴权设置
- 鉴权协议:设置鉴权协议,支持OAuth、简单消息头和JWT(JSON Web Tokens)三种。
- 鉴权模式:设置为“client credentials”,此处只支持OAuth2的client credentials鉴权模式。
- 鉴权地址:第三方系统OAuth2协议,获取的token地址。例如,AstroZero获取token的地址为“https://{host}:{port}/baas/auth/v1.0/oauth2/token”,这里需要填入第三方系统的。
- Client ID:OAuth2协议中的client id。
- Client Secret:OAuth2协议中的client secret。
简单消息头
消息头属性
定义调用业务接口时,所用的消息头的映射规则。
当使用获取的token,去返回具体rest action时,按照OAuth2的标准一般是将token放到请求头上。例如,Authorization: Bearer ${access_token}。
但是由于各个第三方接口实现的差异性,不一定叫Authorization,也不一定会在token前面加Bearer,例如访问平台的接口,token直接放在请求头Access-Token上,且不需要Bearer前缀,所以需要配置消息头属性。
“键”设置为“Authorization”,“值”设置为1.f中获取的Bearer+apiKey的值,两者之间需要有一个空格。
- 保存成功后,在“动作”页签,单击动作后的
,启用动作。
动作创建后必须要启用,否则在服务编排中无法选择到。图19 动作已启用
- 新建服务编排。
- 在应用设计器的左侧导航栏中,选择“逻辑”。
- 单击编排后的
,输入服务编排的标签和名称,单击“添加”。
图20 新建服务编排表5 添加服务编排参数说明 参数
说明
示例
标签
新建服务编排的标签名,用于在界面展示,创建后可修改。
取值范围:1~64个字符。
dss
名称
服务编排在系统中的唯一标识,创建后不支持修改。系统会自动在名称前添加“{命名空间}__”,当其他功能调用服务编排时,调用的是服务编排的名称,而不是标签。
命名要求如下:
dss
- 在服务编排设计器中,单击
,进入全局上下文页面。
- 单击“变量”后的
,创建表6中的变量。
图21 新建变量图22 新建变量result图23 新建变量messages - 在2中创建的自定义连接器到画布中。
如果此处选择不到连接器,请确认2中创建的连接器是否已启用。图24 拖拽自定义连接器到画布中
中,拖拽
- 选中开始图元,单击
,为图元设置入参和出参。
图25 设置开始图元的入参和出参 - 选中连接器图元,单击
,选择动作。
图26 为连接器添加动作 - 设置连接器的输入参数和输出参数。
输入参数model请配置为1.b中的模型名称。假设模型名称为DeepSeek-R1-Distill-Qwen-32B,此处的model请配置为“"DeepSeek-R1-Distill-Qwen-32B"”。图27 设置连接器的输入输出参数
- 连接开始图元和连接器图元。
图28 连接图元
- 单击页面上方的
,保存服务编排。
- 保存成功后,单击
,运行服务编排。
输入参数可自定义,运行速度取决于大模型返回的速度。图29 设置输入参数图30 查看运行结果 - 返回服务编排设计页面,单击
,启用服务编排。
服务编排启用后,才可以被其他资源引用。