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

更新时间:
复制 MD 格式

LangStudio 集成实时联网搜索和 RAG 能力,构建”基于Web搜索和RAG的聊天助手”应用流,结合实时搜索结果和知识库提供精准回答,适用于需要实时信息与专业知识库结合的问答场景。

背景信息

基于Web搜索和RAG的聊天助手应用流结合联网搜索和知识库检索,使模型能从网络获取实时数据,也能从私有知识库提取专业信息,适用于金融、医疗等需要精准信息的场景。

前提条件

  • 已通过SerpApi官网注册账号并获取api_key(免费版每月可提供100次搜索机会)。

  • LangStudio向量数据库支持使用FaissMilvus向量数据库,若您希望使用Milvus数据库,您需要先完成Milvus数据库的创建,详情请参见创建Milvus实例实例管理

    说明

    Faiss通常用于测试环境,无需额外创建数据库即可使用。在生产环境中,建议您使用Milvus数据库,支持处理更大规模的数据。

  • 已将RAG知识库语料上传至OSS中。

1. (可选)部署LLMEmbedding模型

应用流需要 LLM 和 Embedding 模型服务。已有支持 OpenAI API 的服务可跳过此步骤。

前往快速开始 > ModelGallery,分别部署以下两种场景的模型。更多部署详情,请参见模型部署及训练

重要

请务必选择使用指令微调的大语言模型,Base模型无法正确遵循用户指令回答问题。

2. 创建连接

本文创建的LLMEmbedding模型服务连接基于快速开始 > Model Gallery中部署的模型服务(EAS服务)。更多其他类型的连接及详细说明,请参见连接配置

2.1 创建LLM服务连接

  1. 进入LangStudio,选择地域和工作空间。

  2. 连接 > 模型服务页签下单击新建连接,参数如下配置:

    • 连接类型:选择通用LLM模型服务

    • 服务提供方:选择PAI-EAS模型服务

    • EAS服务:选择1. (可选)部署LLMEmbedding模型中部署的LLM服务。

      选择之后,base_urlapi_key会自动填充,分别对应已部署LLMVPC访问地址和Token。
    • 模型名称:OpenAI API请求中的model的参数值。可通过模型详情页(在Model Gallery页单击模型卡片)查看模型名称的获取方法。

    • Tool Call、结构化输出深度思考视觉:根据模型支持情况选择。

2.2 创建Embedding模型服务连接

2.1 创建LLM服务连接类似,创建通用Embedding模型服务连接。

image

2.3 创建SerpApi连接

连接 > 自定义页签下单击新建连接,创建SerpApi连接。配置前提条件中获取的api_key。

image

3. 创建知识库索引

新建知识库索引,将语料经过解析、分块、向量化后存储到向量数据库,从而构建知识库。其中关键参数配置说明如下,其他配置详情,请参见知识库管理

参数

描述

基础配置

数据源OSS路径

配置前提条件RAG知识库语料的OSS路径。

输出OSS路径

配置文档解析生成的中间结果和索引信息的路径。

重要

当使用FAISS作为向量数据库时,应用流会将生成的索引文件保存到OSS。若使用PAI默认角色(应用流开发-启动运行时时设置的实例RAM角色),应用流可以默认访问用户工作空间的默认存储Bucket,因此建议将此参数配置为当前工作空间默认存储路径所在的OSS Bucket下的任一目录。如果使用自定义角色,您需要为自定义角色授予OSS的访问权限(建议授予AliyunOSSFullAccess权限),详情请参见管理RAM角色的权限

Embedding模型和数据库

Embedding类型

选择通用Embedding模型服务

Embedding连接

选择2.2 创建Embedding模型服务连接中创建的Embedding模型服务连接。

向量数据库类型

选择FAISS。本文以FAISS向量数据库举例说明。

4. 创建并运行应用流

  1. 进入LangStudio,选择工作空间后,在应用流页签下单击新建应用流,创建基于Web搜索和RAG的聊天助手应用流。

    image

  2. 启动运行时:单击右上角选择运行时,并在下拉列表中选择已创建的运行时。注:在进行Python节点解析或查看更多工具时,需要保证运行时已启动。

    如果没有可选的运行时,您需在大模型应用开发(LangStudio)页面的运行时页签下,单击新建运行时,来创建运行时。image关键参数说明:

    专有网络配置:如果3. 创建知识库索引中向量数据库类型为Milvus,则需配置Milvus实例相同的专有网络,或确保已选的专有网络和Milvus实例所在的专有网络已经互通;如果向量数据库类型为FAISS,则无需配置专有网络。

  3. 开发应用流。

    image

    应用流中的其余配置保持默认或根据实际需求进行配置,关键节点配置如下:

    • 知识库检索:在知识库中检索与用户问题相关的文本。

      • 知识库索引名称:选择3. 创建知识库索引中创建的知识库索引。

      • Top K:返回Top K条匹配的数据。

    • serp搜索:使用SerpAPI进行联网搜索,返回指定数量的搜索结果。

      • SerpApi连接:选择2.3 创建SerpApi连接中创建的SerpApi连接。

      • 搜索引擎:支持常见的搜索引擎,如bing、google、baidu、yahoo,也支持自定义的输入。更多搜索引擎支持及其他参数介绍请参见SerApi官网

    • 大模型节点:使用检索到的文档和Serp搜索结果作为上下文,与用户问题一起发送给大语言模型,生成回答。

      • 模型设置:选择2.1 创建LLM服务连接中创建的连接。

      • 对话历史:是否启用对话历史,将历史对话信息作为输入变量。

    关于各节点组件详情,请参见预置组件说明

  4. 调试/运行:单击右上角运行,开始执行应用流。关于应用流运行时的常见问题,请参见常见问题

    image

  5. 查看链路:单击生成答案下的查看链路,查看Trace详情或拓扑视图。

    image

5. 部署应用流

在应用流开发页面,单击右上角部署,将应用流部署为EAS服务。部署参数其余配置保持默认或根据实际需求进行配置,关键参数配置如下:

  • 资源信息 > 实例数:配置服务实例数。本文部署仅供测试使用,因此实例数配置为1。在生产阶段,建议配置多个服务实例,以降低单点故障的风险。

  • 专有网络 > 专有网络(VPC):由于SerpApi服务需要访问公网,因此需要配置具备公网访问能力的VPC(EAS服务默认不可访问公网),详情请参见EAS访问公网或内网资源。另外,如果3. 创建知识库索引中向量数据库类型为Milvus,还需确保与Milvus实例相同的专有网络,或已选的专有网络和Milvus实例所在的专有网络已经互通。

更多部署详情,请参见应用流部署

6. 调用服务

部署成功后,跳转到PAI-EAS,在在线调试页签下配置并发送请求。请求Body中的Key与应用流中“开始节点”中的参数"对话输入"字段一致,本文使用默认字段question

image

更多调用方式(如API调用)及详细说明,请参见应用流部署-调用服务

相关文档