应用流开发

LangStudio为应用流开发提供了直观且高效的集成开发环境,您可以构建、调试和优化由大语言模型、Python节点以及其他工具组成的应用流。

前提条件

已创建所需的连接。具体操作,请参见连接配置

创建应用流

进入LangStudio,选择工作空间后,在应用流页签下单击新建应用流,进入应用流创建页面。

image

关键参数说明:

参数

说明

新建方式

从模板新建

  • 智能数据Agent:创建一个智能数据助手,需要用到支持Tool CallLLM连接和SSE MCP Server。

  • 基于Web搜索和RAG的聊天助手:创建一个基于Web搜索和RAG的对话流,需要用到SerpApi及知识库索引。

  • 智能SQL生成助手:创建一个基于自然语言生成并执行SQLLLM应用,需要使用LLM连接和RDS MySQL连接。

  • RAG:创建一个RAG应用,需要使用到向量数据库和LLM连接。

  • 意图识别客服:创建一个基于意图识别和RAG的客服应用流,需要使用LLM连接和知识库索引。

  • IQS联网搜索聊天助手:创建一个对话型应用,在普通对话型的基础上,提供了联网搜索功能。

按类型新建

  • 标准型:适用于通用应用程序开发。利用大语言模型的强大功能、定制的Python代码等来打造您的定制化应用流。

  • 对话型:适用于对话型应用程序开发。在标准型的基础上,对话型提供对话历史、输入、输出的管理,以及对话框形式的测试界面。

OSS导入

选择待导入的应用流ZIP压缩包文件或应用流OSS路径,该路径必须直接包含应用流的flow.dag.yaml及其他Code文件

注:您可通过应用流列表操作列的导出功能将应用流导出。

选择运行时

选择用于应用流开发调试的运行时,选择之后应用流的工作路径会默认为运行时的工作路径。如果没有可用的运行时,可前往运行时管理页面创建,或暂时置空,后续在应用流开发页面创建。

工作路径

如果运行时置空,需手动设置应用流工作路径。后续如果在运行时管理页面创建运行时,需确保运行时的工作路径和应用流工作路径保持一致。

开发应用流

在完成指定应用流的创建后,您可以进入开发阶段。应用流开发界面划分为以下区域:

image

区域

区域说明

备注

应用流编辑区域

应用流的DAG图,可直观地查看数据在整个应用流中的传递。

  • 单击应用流中的节点,在界面右侧可进行节点配置。

  • 单击节点输出端“+”可添加新的节点。

应用流配置区域

配置应用流中的各个节点。

应用流显示调整区域

包含应用流缩放、画布调整、添加节点(大模型、Python、条件分支等,详情请参见附录:预置组件说明)等功能。

应用流运行区域

包含一些常用的操作按钮,如启动/查看/解绑运行时、调试/运行应用流、应用流部署、应用流克隆、查看应用流历史等功能

重要
  • 运行时一旦启动即会产生费用,因此如果您暂不需要运行应用流,建议解绑运行时,避免持续计费。当前应用流与运行时实例解绑后,运行时状态不会发生改变,不影响运行时实例的正常计费。如果您希望彻底停止计费,请前往运行时管理页面对运行时实例进行停止或删除操作。

  • 如果创建应用流时没有配置运行时,可以在此处创建或选择运行时。选择运行时时,系统会自动过滤出和应用流工作路径一致的运行时供您选择。

  • 在启动运行时需确保选择的VPC和应用流所用的连接(如大模型服务连接、数据库服务连接等)所在的VPC一致或两者网络已连通。

基础开发流程如下:

  1. (可选)添加组件:单击应用流节点输出端“+”或画布左下方的添加节点,然后在“+”位置进行首尾连线。

    image

    支持添加大模型、Python、条件分支等类型的节点,详情请参见附录:预置组件说明

  2. 启动运行时:单击右上角启动运行时并进行配置。注:在进行Python节点解析或查看更多工具时,需要保证运行时已启动。运行时一旦启动即会产生费用,因此如果您暂不需要运行应用流,建议解绑运行时,避免持续计费。

    重要

    当前应用流与运行时实例解绑后,运行时状态不会发生改变,不影响运行时实例的正常计费。如果您希望彻底停止计费,请前往运行时管理页面对运行时实例进行停止或删除操作。

    image

    关键参数说明:

    专有网络配置:请确保选择的VPC和应用流所用的连接(如大模型服务连接、数据库服务连接等)所在的VPC一致或两者网络已连通。

  3. 配置节点参数。各组件详情,请参见附录:预置组件说明

  4. 调试/运行:单击右上角运行, 开始执行应用流。

    image

  5. 查看链路/错误日志:单击生成答案下的查看链路查看日志,查看链路(Trace详情、拓扑视图)或运行日志。

    说明

    查看日志功能仅在应用流运行错误时才会显示。

    image

  6. (可选)停止/删除运行时。如果您暂不需要运行应用流,建议解绑运行时,避免持续计费。

    重要

    当前应用流与运行时实例解绑后,运行时状态不会发生改变,不影响运行时实例的正常计费。如果您希望彻底停止计费,请前往运行时管理页面对运行时实例进行停止或删除操作。

    image

后续操作

在完成应用流的开发和调试后,您可以对应用流进行评测,待满足业务需求后,您可以将应用流部署至模型在线服务PAI-EAS中供生产使用。

附录:预置组件说明

开始(Start)

  • 定义

    开始节点用于标识应用流(Workflow)的运行起始状态,以及应用流的输入参数。一个应用流中只能有一个开始节点。

  • 输入参数配置

    通过开始节点可以配置应用流的输入参数信息。对于对话型应用流,系统会默认提供对话历史和对话输入两个默认字段,您可以根据需求添加自定义变量。

    image

  • 使用方式

    在运行应用流时,通过对话面板配置当前会话的输入参数。

    image

大模型(LLM)

  • 定义

    LLM节点是应用流(Workflow)的核心组件,专门用于调用大语言模型以处理自然语言任务。通过此节点,用户可以获得智能的文本响应,帮助回答问题或处理复杂的自然语言输入。此外,LLM节点还提供灵活的配置选项,允许用户调整模型参数、管理对话历史以及自定义提示词,以优化响应质量和准确性。

  • 应用场景

    • 文本生成:根据主题、关键词生成文本内容。

    • 内容分类:自动分类邮件类型(咨询/投诉/垃圾邮件)。

    • 文本转换:将文本翻译成指定语言。

    • RAG:结合检索到的知识回答用户问题。

  • 配置界面

    image

  • 输入(Input)

    • 模型设置:支持使用从ModelGallery部署或其他自定义部署的模型服务,以及Dashscope、DeepSeek等模型提供商提供的模型。如果关注效果,建议选择能力较强的模型。支持配置以下模型参数:

      • 温度:通常是一个介于01之间的值,用于控制模型输出的随机性。温度越接近0,结果越确定和一致;温度越接近1,结果则越随机和多样化。

      • Top P:用于控制结果的多样性。模型会从候选词中选择,确保选择的词的累积概率不超过设定的阈值P,从而影响输出的多样性。

      • Top K:用于控制模型的输出。它限定了模型在生成结果时可以选择的候选词数量。具体来说,Top K设定一个数值K,模型只会从概率最高的前K个词中进行选择。这种方法可以减少生成结果中的随机性,使输出更加集中在可能性较高的词汇上。相比于Top P,Top K更加直接地限制了候选词的数量,而不是基于累积概率。

      • 存在惩罚:用于减少模型重复生成相同的实体或信息。通过对已生成的内容施加惩罚,模型更倾向于生成新的或不同的内容。随着参数值的增加,模型对已经生成过的内容施加更大的惩罚,从而降低重复生成的可能性。

      • 频率惩罚:用于减少过于频繁出现的词或短语的生成概率。随着参数值的增加,对这些常见词或短语施加更大的惩罚,从而降低其出现频率。较高的频率惩罚参数值有助于提升文本的词汇多样性。

      • 最大标记:用于设定模型在单次生成中可以输出的最大长度。设定较低的最大标记值可能会导致生成的文本较短或被截断,而较高的值则允许更长的输出,从而帮助控制生成内容的规模和复杂度,确保结果符合预期的长度要求。

      • 种子:当指定种子值时,模型会尽量进行确定性采样,使得相同种子和参数的重复请求应产生相同的结果。然而,不能保证完全的确定性,建议您参考system_fingerprint(可能需要代理才能访问)响应参数来监控可能的变化。

      • 停止序列:最多4个停止序列,用于指示模型在生成文本时停止进一步输出。当模型检测到其中任意一个停止序列时,它将停止生成更多的tokens,并且返回的文本将不包含该停止序列本身。

    • 对话历史:配置打开后,会自动地在提示词中插入应用流的聊天历史记录。

    • 输入变量:变量中可以引用本节点前置所有节点的输出。

    • 提示词:自定义系统(SYSTEM)/用户(USER)/助手(ASSISTANT)的提示词内容,提示词是jinja2模板,模板中可以通过两个双引号{{}}的方式引用输入变量。

  • 输出(Output)

    节点默认输出String类型的数据,也可以根据需求配置为JSON类型数据。JSON类型支持自定义添加输出变量,大模型会根据变量名称的含义进行输出。

  • 使用案例

Python开发(Python

  • 定义

    应用流(Workflow)支持自定义Python代码的节点,可以实现复杂的数据处理逻辑。

  • 配置界面

    image

  • 输入(Input)

    • 代码:Python代码,需注意以下事项:

      • Python节点的执行入口函数需要被@tool装饰,才可以被加载为一个节点。

      • 修改完代码后,会自动进行解析,函数的入参会被动态解析成节点的输入,函数的输出会被放到output字典中,可以被其他节点引用。

        重要

        Python节点的输入/输出参数通过解析Python函数获得,依赖于运行时。在没有启动运行时的情况下,无法配置节点的输入/输出信息。

      • 函数支持的输入/输出类型:int、float、bool、str、dict、TypedDict、dataclass(只支持输出)、list。

    • 输入:Python函数代码的入参会被动态解析成节点的输入。

  • 输出(Output)

    Python函数代码的输出会被动态解析到output字典中,可以被其他节点引用。

  • 使用案例

    在代码区域输入以下实例代码,代码会被映射为节点的输入和输出:

    from langstudio.core import tool
    from dataclasses import dataclass
    
    @dataclass
    class Result:
        output1: str
        output2: int
    
    @tool
    def invoke(foo: str, bar: int) -> Result:    
        return Result(
            output1="hello" + foo,
            output2=bar + 10
        )
    

    image

    如果Python代码需要额外的执行依赖包,则需要安装相应的依赖。requirements.txt文件会同应用流一起保存,在运行时启动,或是部署服务时会被安装到对应的环境里。

    image

    image

条件分支(Condition

  • 定义

    主要用于流程控制。主要实现if-else逻辑,若设定的条件成立则仅运行对应的分支,若均不成立则运行else分支。需搭配变量聚合(Variable Aggregate)节点使用。

  • 配置界面

    image

  • 输入(Input)

    配置分支条件时,需注意:

    • 每个分支代表一个执行路线,最后一个分支为else分支,代表没有匹配到任何分支,不可编辑。

    • 每个分支可包含多个条件,条件之间支持and/or聚合。

    • 注意上游节点输出、匹配符(如=为空不包括等)以及匹配值,以确保条件的准确性和有效性。

  • 输出(Output)

    无输出。

  • 使用案例

    在连接条件分支组件与下游节点时,每个分支在组件上都有一个对应的连线端口。当某个分支条件被触发时,该分支将执行连接的下游节点,而其他分支节点则会被跳过。之后,可以通过变量聚合(Variable Aggregate)组件收集各个条件分支的执行结果(即下游节点的输出)。

    image

变量聚合(Variable Aggregate

  • 定义

    负责整合不同分支的输出结果,确保无论哪个分支被执行,其结果都能通过一个统一的变量来引用和访问。这在多分支的情况下非常有用,可将不同分支下相同作用的变量映射为一个输出变量,避免下游节点重复定义。

  • 配置界面

    image.png

  • 输入(Input)

    配置变量分组时,需注意:

    • 上游一般是条件分支(Condition)/意图识别(Intent Recognition)产生的多个执行分支。

    • 同一分组中变量必须同类型,第一个非空输出值即为该组的输出。

    • 由于条件分支/意图识别仅会触发一个分支,所以每组有且仅有一个非空值,通过变量聚合节点即可提取出该值,方便下游使用。

    • 如果每个条件分支/意图识别的分支有多个需要的输出,可以添加多个分组,分别提取对应输出值。

  • 输出(Output)

    输出变量会根据所添加的分组进行动态调整。如果存在多个分组,节点将输出多个键值对(Key-Value),其中,Key为组名,Value为组内第一个非空的变量值。

  • 使用案例

    请参见条件分支(Condition)组件的使用案例。

意图识别(Intent Recognition

  • 定义

    主要用于流程控制。通过大语言模型分析用户输入的意图,并根据识别结果执行相应的分支。支持多意图配置和对话历史。

  • 配置界面

    image.png

  • 输入(Input)

    • 用户输入:选择用户输入,用于识别意图。

    • 多意图配置:按需设置意图,确保每个意图的描述都清晰明确,并且不同意图之间不存在语义重叠。最后一个意图默认为“其他意图”,代表没有匹配到任何其他意图,不可编辑。

    • 模型设置:配置意图识别需要的大语言模型,如果关注效果,请选择能力较强的模型,如qwen-max等。

    • 对话历史:配置打开后,大模型推理时会自动地在提示词中插入应用流的聊天历史记录。

    • 额外提示:输入的内容将会被追加到系统提示词中,帮助模型更好的完成意图识别。

  • 输出(Output)

    无输出。

  • 使用案例

    在连接意图识别组件与下游节点时,每个意图分支在组件上都有一个对应的连线端口。当某个意图被识别时,该分支将执行连接的下游节点,而其他分支节点则会被跳过。之后,可以通过变量聚合(Variable Aggregate)组件收集各个条件分支的执行结果(即下游节点的输出)。

    image.png

知识库检索(Index Lookup

  • 定义

    知识库中检索与用户问题相关的文本内容,以便将其用作下游LLM节点的上下文。

  • 配置界面

    image

  • 输入(Input)

    • 知识库索引名称:选择在LangStudio上已注册可用的知识库,详情请参见知识库管理

    • 检索关键词:选择希望在知识库中检索的关键信息,需要引用上游节点的输出参数,格式为String。

    • Top K:知识库索引检索时,系统返回的与检索关键词最相关的前K项结果。

  • 输出(Output)

    检索输出变量result, 类型为List[Dict],其中DictKey包含以下字段:

    Key

    说明

    content

    检索到的文档分片的内容。这个内容是从知识库中提取出来的文本片段,通常与输入的查询相关。

    score

    文档分片与输入查询的相似度得分,即文档分片与查询的匹配程度。得分越高,说明该文档分片与查询的相关性越强。

    以下为输出示例,表示返回结果包含得分最高的top_k条记录:

    [
      {
        "score": 0.8057173490524292,
        "content": "受疫情带来的不确定性影响,xx银行根据经济走势及中国或中国内地环境预判,主动\n加大了贷款和垫款、非信贷资产减值损失的计提力度,加大\n不良资产核销处置力度,提升拨备覆盖率,2020 年实现净利\n289.28亿元,同比增长 2.6%,盈利能力逐步改善。\n(人民币百万元) 2020年 2019年 变动(%)\n经营成果与盈利\n营业收入 153,542 137,958 11.3\n减值损失前营业利润 107,327 95,816 12.0\n净利润 28,928 28,195 2.6\n成本收入比(1)(%) 29.11 29.61下降 0.50个\n百分点\n平均总资产收益率 (%) 0.69 0.77下降 0.08个\n百分点\n加权平均净资产收益率 (%) 9.58 11.30下降 1.72个\n百分点\n净息差(2)(%) 2.53 2.62下降 0.09个\n百分点\n注: (1) 成本收入比 =业务及管理费/营业收入。",
        "id": "49f04c4cb1d48cbad130647bd0d75f***1cf07c4aeb7a5d9a1f3bda950a6b86e",
        "metadata": {
          "page_label": "40",
          "file_name": "2021-02-04_中国xx保险集团股份有限公司_xx_中国xx_2020年__年度报告.pdf",
          "file_path": "oss://my-bucket-name/datasets/chatglm-fintech/2021-02-04__中国xx保险集团股份有限公司__601318__中国xx__2020年__年度报告.pdf",
          "file_type": "application/pdf",
          "file_size": 7982999,
          "creation_date": "2024-10-10",
          "last_modified_date": "2024-10-10"
        }
      },
      {
        "score": 0.7708036303520203,
        "content": "72亿元,同比增长 5.2%。\n2020年\n(人民币百万元)寿险及\n健康险业务财产保险\n业务 银行业务 信托业务 证券业务其他资产\n管理业务 科技业务其他业务\n及合并抵消 集团合并\n归属于母公司股东的净利润 95,018 16,083 16,766 2,476 2,959 5,737 7,936 (3,876) 143,099\n少数股东损益 1,054 76 12,162 3 143 974 1,567 281 16,260\n净利润 (A) 96,072 16,159 28,928 2,479 3,102 6,711 9,503 (3,595) 159,359\n剔除项目 :\n 短期投资波动(1)(B) 10,308 – – – – – – – 10,308\n 折现率变动影响 (C) (7,902) – – – – – – – (7,902)\n 管 理层认为不属于  \n日常营运收支而剔除的  \n一次性重大项目及其他 (D) – – – – – – 1,282 – 1,282\n营运利润 (E=A-B-C-D) 93,666 16,159 28,928 2,479 3,102 6,711 8,221 (3,595) 155,670\n归属于母公司股东的营运利润 92,672 16,",
        "id": "8066c16048bd722d030a85ee8b1***36d5f31624b28f1c0c15943855c5ae5c9f",
        "metadata": {
          "page_label": "19",
          "file_name": "2021-02-04_中国xx保险集团股份有限公司_xxx_中国xx__2020年__年度报告.pdf",
          "file_path": "oss://my-bucket-name/datasets/chatglm-fintech/2021-02-04__中国xx保险集团股份有限公司__601318__中国xx__2020年__年度报告.pdf",
          "file_type": "application/pdf",
          "file_size": 7982999,
          "creation_date": "2024-10-10",
          "last_modified_date": "2024-10-10"
        }
      }
    ]
  • 使用案例

Agent(Agent)

  • 定义

    Agent节点是LangStudio工作流中基于自主性智能体开发的节点组件。该节点支持推理(Reasoning)策略和Tools Use等能力,可通过集成不同的推理策略(目前仅支持FunctionCalling策略),实现自主调用模型上下文协议(MCP)工具,从而使得大语言模型(LLM)能够在运行时动态选择并执行工具(Tools),实现自主性多步推理能力。该节点需要启动运行时后才可配置,可在“更多工具”中选择。

  • 配置界面

    image

  • 输入(Input)

    • Agent策略:选择所需的Agent推理策略,目前仅支持了FunctionCalling策略。

      FunctionCalling

      通过将自然语言指令映射到预定义的工具,实现与外部系统的交互。大语言模型(LLM)首先识别用户意图,决定调用哪个工具并提取所需参数。随后,系统将自动调用选定工具并获得其返回结果,从而帮助LLM生成对自然语言指令的回复。

      应用场景

      • 精确任务处理:对于明确的任务,LLM可以直接调用相应的工具,无需复杂的推理过程,从而提高响应效率和准确性。

      • 外部功能集成:通过调用MCP Tools,LLM可以访问实时数据、执行特定操作等,从而扩展其功能范围。

    • 模型设置:选择驱动Agent的大语言模型,策略中使用OpenAI APITool Call方式传递Tools信息,因此模型需要支持Tool Call功能

    • 对话历史:启用对话历史,可以为Agent提供对话上下文记忆能力。系统会自动的将对话历史消息填充到提示词中,这使得Agent能够理解和引用之前的对话内容,从而提供连贯的上下文相关的回答。例如,当用户在新的消息中使用代词(如“他”、“这里”、“那一天”等)时,开启了对话历史的Agent能够理解这些代词所指代的前文实体,而无需用户重复指定完整信息。

    • MCP服务配置:支持配置SSE MCP Server,内容格式为JSON。FunctionCalling策略支持使用MCP Server提供的MCP Tools,使用方式由策略决定。示例:

      # 使用SSE通信方式的MCP Server配置
      # 用户根据需求,自行手动配置,更换“server-name”为用户需要的服务名称,并替换“url”(必填)
      # 其他非必填参数包括“header”(默认为空)、“timeout”(默认为30)、“sse_read_timeout”(默认为300),参数含义具体可参考:https://github.com/modelcontextprotocol/python-sdk/blob/main/src/mcp/client/sse.py#L22
      # 请自行确保Agent运行环境与MCP Server的网络连通以及MCP Server的功能正确性
      # 支持配置多个MCP Server
      
      {
        "mcpServers": {
          "server-name": {
            "url": "http://localhost:3000:sse",
            "headers": {
              "Authorization": "Bearer 371D480C-15B0-435B-B418-9395B38B9343"
            },
            "timeout": 30,
            "sse_read_timeout": 300
          },
          ...
        }
      }
    • 输入变量:当您希望在提示词中引用应用流上游节点的变量时,需要在本节点中定义相应的输入变量,并将其值设置为上游节点变量的引用。随后,在下面提示词中,您可以通过Jinja2模板语法(通过两个双引号{{}}的方式)引用这些已定义的输入变量,以实现动态数据传递。

    • 提示词:自定义系统(SYSTEM)/用户(USER)/助手(ASSISTANT)的提示词内容,提示词中可引用输入变量

    • 循环次数:设置Agent执行的最大循环次数,范围为1~30。Agent将根据循环次数重复执行任务以生成响应,直到满足以下任一条件:

      • LLM判断已通过调用工具获取足够的信息以生成完整的结果

      • 达到设定的最大循环次数

      请注意,设置合理的循环次数有助于在响应完整性与执行效率之间取得平衡。

  • 输出(Output)

    节点输出String类型的数据。

  • 查看链路/日志

    在应用流页面右上角单击运行后的对话框中,您可以在弹出的对话框中运行结果下方查看链路或日志。

    • 查看链路:查看当前运行的Trace信息,了解Agent在每次请求模型时的输入、模型的输出(包括工具调用及请求参数)、token开销、耗时等信息。

    • 查看日志:当应用流运行错误时,可以查看当前的运行日志,获取节点执行过程中的更多细节。

    此外,您还可以通过在应用流页面右上角单击更多 > 运行历史,选择指定运行记录,查看链路或日志。

循环(Loop)

  • 定义

    循环节点用于执行需要依赖前一轮结果的重复任务,直至满足退出条件或达到预设的最大循环次数。在循环节点内,可以配置一个子流程,系统会根据循环变量重复执行子流程中的逻辑,直到触发终止条件或达到执行次数上限。该节点需要启动运行时后才可配置,可在“更多工具”中选择。

  • 配置界面

    image

  • 输入(Input)

    • 循环变量:用于在循环的各个轮次间传递数据,并在循环结束后继续供下游节点使用。支持配置多个循环变量,其值可以手动输入或从上游节点的输出中选择。

    • 循环退出条件:可基于循环变量进行配置,当指定的循环变量满足预设条件时,循环将终止。

    • 最大循环次数:用于限制循环的最大执行次数,以防止出现无限循环。

  • 输出(Output)

    节点输出为当前循环执行之后循环变量的值。只有通过变量赋值节点才能更新循环变量,如果没有该节点,经过N轮循环后,循环节点的输出将仍然保持为初始输入。

  • 相关节点

    循环相关的节点仅限在循环内使用。您可以通过单击循环内指定节点右侧的“+”来添加以下相关节点:

    • 退出循环(Break Loop)

      退出循环,上游一般是条件分支(Condition)节点。

    • 变量赋值(Variable Assigner)

      将循环内子节点输出结果赋值给循环变量。

    image

SerpAPI-联网搜索(SerpAPI-GenericSearch

  • 定义

    使用SerpApi进行网络搜索,支持多个搜索引擎(如Bing、Google、Baidu、Yahoo以及自定义),可配置搜索位置和结果数量。该节点需要启动运行时后才可配置,可在“更多工具”中选择。

  • 配置界面

    image

  • 输入(Input)

    • SerpApi连接:选择在LangStudio上已创建的SerpApi连接,详情请参见创建SerpApi连接

    • 搜索关键词:选择希望进行网络搜索的关键信息,需要引用上游节点的输出参数,格式为String。

    • 搜索引擎:支持bing、google、baiduyahoo搜索,也支持自定义的输入。

    • 位置:搜索所在位置。如需使用,建议具体到城市,如Shanghai, China

    • 搜索结果数量:返回的查询结果数量。

  • 输出(Output)

    联网搜索输出变量output, 类型为List[Dict],其中DictKey包含以下字段:

    Key

    说明

    title

    搜索结果的标题,通常是网页或文档的标题,简要概括了内容的主题。

    link

    搜索结果的链接,即URL。用户可以通过这个链接访问完整的内容。

    summary

    搜索结果的摘要,通常是对内容的简要介绍或概括,帮助用户快速了解内容的核心信息。

  • 使用案例

    基于LangStudio&DeepSeekRAG及联网搜索聊天机器人解决方案

阿里云IQS-联网搜索(IQS-GenericSearch

  • 定义

    使用阿里云信息查询服务进行标准搜索,支持时间范围筛选。该节点需要启动运行时后才可配置,可在“更多工具”中选择。

  • 配置界面

    image

  • 输入(Input)

    • 搜索关键词:选择希望进行联网搜索的关键信息。长度必须在2100个字符之间,若超过100个字符,将被截断至100个字符;若少于2个字符,则会引发错误。

    • 时间范围:选择搜索数据的时间范围,支持选择NoLimit、OneDay、OneWeek、OneMonthOneYear。

    • IQS连接:如果启动时没有配置有权限的角色,可选择已配置的IQS连接。关于如何配置IQS连接,请参见服务连接配置-自定义连接,并将键和值分别配置为api_key和相应的值,相应的值可通过信息查询服务-凭证管理查看。关于IQS连接使用详情,请参见基于LangStudio&阿里云信息查询服务搭建DeepSeek联网搜索应用流

  • 输出(Output)

    • output:联网搜索输出变量output, 类型为List[Dict],其中DictKey包含以下字段:

      Key

      说明

      title

      搜索结果的标题,通常是网页或文档的标题,简要概括了内容的主题。

      link

      搜索结果的链接,即URL。用户可以通过这个链接访问完整的内容。

      summary

      搜索结果的摘要,通常是对内容的简要介绍或概括,帮助用户快速了解内容的核心信息。

      content

      搜索结果的完整内容或正文,包含详细的信息。由于数据量可能很大,通常不在摘要中展示。

      markdown_text

      Markdown格式的搜索内容,可能返回为空。

      score

      搜索结果的评分,通常是一个数值,用于表示结果的相关性或质量。评分越高,结果通常越符合搜索意图。

      publish_time

      内容的发布时间,通常是一个时间戳或日期,帮助用户了解信息的时效性。

      host_logo

      内容来源网站的标志或图标,通常是一个图片URL,帮助用户识别信息来源。

      hostname

      内容来源网站的主机名或域名,指示信息的来源网站。

      site_label

      内容来源网站的标签或分类,用于指示网站的主题或类别,帮助用户了解信息的背景。

    • scene_items:用于增强搜索结果的辅助信息,在大多数通用搜索中,scene_items通常为空。然而,当通用搜索无法准确满足用户的需求时,尤其是涉及特定场景(如时间、天气、日历等)时,系统会尝试返回scene_items作为补充,确保用户在特定情境下能获取到更精确和有用的信息,详情请参见场景化调用SceneItem概览

  • 使用案例

    基于LangStudio&阿里云信息查询服务搭建DeepSeek联网搜索应用流

结束(End)

  • 定义

    结束节点用于标识应用流(Workflow)的运行结束状态,以及应用流的输出参数。一个应用流Workflow中只能有一个结束节点。

  • 输出参数配置

    应用流输出可以引用所有上游节点产生的输出,作为应用流执行结果。例如,以下示例中应用流的answer输出使用了大模型节点的输出,search_results则是使用了搜索节点的输出。

    image

    说明
    • 对话型应用流默认有一个Chat输出字段,用于作为应用流的对话输出。

    • 应用流程必须包含开始节点和结束节点,且只有连接在这两个节点之间的节点才会被执行,游离的节点则不会执行。