华为云ASTRO轻应用-通过脚本调用流式报文接口实现智能助手聊天对话:其他操作:通过连接器调用流式报文接口
其他操作:通过连接器调用流式报文接口
在华为云Astro轻应用中,除了通过脚本对接大模型接口,还支持通过自定义连接器对接大模型接口。步骤一:创建脚本对接大模型接口中介绍了如何通过脚本对接大模型接口,此处为您介绍如何通过自定义连接器来对接大模型接口。
- 创建自定义连接器。
- 在应用设计器中,选择“集成”,单击“连接器”下的“连接器实例”。
- 在“类型”中,选择“自定义连接器”,进入自定义连接器页面。
- 单击“+”,配置连接器信息,单击“保存”。
图10 创建自定义连接器
- 为自定义连接器添加动作。
- 在“动作”页签中,单击“新建”。
- 设置动作的基本信息,单击“下一步”。
图11 设置基本信息
表6 动作基本信息参数说明 参数
说明
示例
标签
新建动作的标签名,用于在页面显示。
取值范围:1~64个字符。
streamaction
名称
新建动作的名称,名称是动作在系统中的唯一标识。命名要求如下:
streamaction
URL
待调用大模型接口的URL地址。
https://example.com
方法
选择请求的方法,可以设置为POST或GET。
POST
内容类型
输入内容的类型取决于第三方支持的具体种类,该类型在HTTP标准协议中定义。
application/json
返回类型
选择接口的返回类型,支持“application/json”和“text/event-stream”两种类型。
- application/json:选择该类型时,系统将忽略第三方实际返回的“Content-Type”,采用第三方配置的“Content-Type”来解析返回内容。
- text/event-stream:选择该类型时,将以处理流式报文的方式处理接口返回值,需要确保第三方接口的返回值为流式报文,且响应体中的“Content-Type”为“text/event-stream”。
text/event-stream
警告:“返回类型”必须设置为“text/event-stream”,否则自定义连接器的执行逻辑不会走流式的处理逻辑。
- 本示例无需设置消息头入参,请单击
删除第一行参数,再单击“下一步”。
- 设置输入参数,单击“下一步”。
图12 输入参数配置页面
表7仅介绍本实践中使用到的参数,其他参数解释请参见使用自定义连接器调用第三方接口。
- 本示例无需设置输出参数,请单击
删除第一行参数,再单击“保存”。
- 返回动作页签,单击该动作所在行的
,启用该动作。
图13 动作已启用
- 为连接器添加认证信息。
为连接器添加认证信息不是本实践重点介绍的内容,具体操作可参考步骤2:配置连接器认证信息。
- 验证连接器调用流式报文接口。
- 在动作列表中,单击2中创建的动作,进入动作详情页。
- 在动作详情页,单击页面上方的“测试”。
图14 选择测试
- 创建脚本,在脚本中调用自定义连接器。
参考步骤一:创建脚本对接大模型接口中操作,创建一个空白脚本,在脚本编辑器中输入如下示例代码。其中,“命名空间__streamconnector”为1中创建连接器的名称,“命名空间__streamaction”为2中为连接器添加的动作,“命名空间__authname”为3中为连接器添加的认证信息。
import * as context from 'context'; import * as connector from 'connector'; /* * The input parameter is defined by `@action.param()`. */ export class Input { @action.param({ type: "String", required: true, description: "the operation type" }) inputParam: string; } /* * The output parameter is defined by `@action.param()`. */ export class Output { } /* * Define the main service class. * * - The service entry function is defined by `@action.method()`. * - All dependent objects should be defined via `@useObject([])` (for objects) or `@useBo([])` (for business objects). */ export class Calculator { @action.method({ input: "Input", output: "Output", description: "do a operation" }) run(input: Input): Output { let output = new Output(); // 页面上自己创建的自定义连接器的调用方法,第一个参数是创建的自定义连接器名称,第二个参数是认证信息名称 let client2 = connector.newClient("命名空间__streamconnector", "命名空间__authname"); let input2 = { "message": input.inputParam, "stream": true }; // 第一个入参是动作名称, 第二个参数是入参 let resp2 = client2.invoke("命名空间__streamaction", input2); context.getHttp().response.setBody(resp2.data) return output; } }
- 创建一个标准页面,添加一个智能助手组件并做相关设置,具体操作同步骤二:调用流式报文接口实现智能对话。