华为云ASTRO轻应用-通过脚本调用流式报文接口实现智能助手聊天对话:步骤一:创建脚本对接大模型接口

时间:2025-06-12 10:18:32

步骤一:创建脚本对接大模型接口

在华为云Astro轻应用中,您可以通过脚本自定义连接器两种方式来对接大模型接口。本步骤以脚本为例进行介绍,连接器如何对接大模型接口请参见其他操作:通过连接器调用流式报文接口

  1. 创建一个低代码应用。

    1. 参考授权用户使用华为云Astro轻应用并购买实例中操作,申请华为云Astro轻应用免费试用或购买商业实例。
    2. 实例购买后,在华为云Astro轻应用服务控制台的“主页”中,单击“进入首页”,进入应用开发页面。
    3. “应用”中,单击“新建低代码应用”或单击,进入新建低代码应用页面。
    4. 在新建低代码应用页面,应用类型选择“标准应用”,单击“确定”
    5. 输入应用的标签和名称,单击“新建”,即可进入应用设计器。
      图2 创建一个空白应用
      表2 新建空白应用参数说明

      参数

      说明

      示例

      标签

      新建应用的标签,长度不能超过80个字符。标签是应用在系统中的唯一标识,创建后不支持修改。

      我的第一个应用

      名称

      新建应用的名称,输入标签值后单击该参数的输入框,系统会自动生成应用的名称,同时自动在名称前,添加命名空间__。命名要求如下:

      • 长度不能超过31个字符,包括前缀命名空间的长度。

        名称前的内容为命名空间,在华为云Astro轻应用中为了避免不同租户间数据的重名,租户在首次创建应用时需要先定义一个命名空间。一个租户只能创建一个命名空间,创建后不支持修改。

      • 必须以英文字母开头,只能由英文字母、数字或单下划线组成,且不允许以下划线结尾。

      A

  2. 在应用设计器中,选择“逻辑”,单击脚本后的“+”
  3. 新建一个空白的脚本,名称设置为“streamScript”,单击“添加”

    图3 创建脚本
    表3 新建脚本参数说明

    参数

    说明

    示例

    名称

    在输入框中,输入新建脚本的名称。命名要求如下:

    • 长度不能超过63个字符,包括前缀命名空间的长度。

      名称前的内容为命名空间,在华为云Astro轻应用中为了避免不同租户间数据的重名,租户在首次创建应用时需要先定义一个命名空间。一个租户只能创建一个命名空间,创建后不支持修改。

    • 必须以英文字母开头,只能由英文字母、数字或单下划线组成,没有连续的下划线,且不能以下划线结尾。

    streamScript

  4. 在脚本编辑器中,输入示例代码。

    本示例代码主要实现的功能包括:创建一个客户端,通过POST方法和GET方法调用相应的接口,使后台以处理流式报文的方式处理接口返回的数据。其中,https://example.com为待调用大模型接口的地址。

    通过脚本直接调用SSE协议的ULR时,传入参数“isStream”必须设置为“true”,否则不会走流式的处理逻辑。

    import * as context from 'context';
    import * as http from 'http';
    /*
     * 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 CallSseUrl {
        @action.method({ input: "Input", output: "Output", description: "do a operation" })
        run(input: Input): Output {
            let output = new Output();
            let cli = http.newClient()
            let resp = cli.post("https://example.com",
                { isStream: true, data: { "message": input.inputParam }, headers: { "Content-Type": "application/json" } })
            return output;
        }
    }

  5. 单击脚本编辑器上方的,保存脚本。
  6. 调试脚本验证脚本是否符合预期。

    1. 在脚本编辑器上方单击,进入脚本调试页面。
    2. “输入参数”页签中,输入如下示例。
      图4 设置输入参数
      {
          "inputParam": "我想创建一个差旅管理应用"
      }
    3. 单击,执行脚本。

      “输出参数”中,输出如下流式内容,表明脚本输出正常。

      图5 脚本输出内容
      好的!为您**智能规划**了"**差旅管理**"应用的构建计划如下:
      1. 创建一个名为"**差旅管理**"的低代码应用;
      2. 添加模型对象"**差旅管理**",包含字段:
         - **出发城市**(下拉选择)
         - **目的城市**(下拉选择)
         - **出发时间**(日期)
         - **结束时间**(日期)
         - **出差目的**(文本)
      3. 为"**差旅管理**"模型生成一个标准的**增删改查界面**;
      4. 配置一条脚本逻辑:"**提交申请后,自动流转到审批人进行审核**"。
      请问您是否确认该构建计划?
      您可以输入:
      - "**确认**",我将开始执行;
      - 或输入**修改意见**,例如"增加一个报销单模型"或"把交通工具改为文本字段"。

  7. 脚本校验符合预期后,单击脚本编辑器上方的,启用脚本。
support.huaweicloud.com/bestpractice-astrozero/astrozero_bestpractice_0032.html