Skip to main content
开始使用

0代码构建问答应用

本文将基于阿里云百炼的智能体应用开发能力,快速创建一个能回答私有知识的智能问答应用。

大语言模型无法直接回答私有知识领域的问题,但您可以借助阿里云百炼的智能体应用构建能力和私有知识文档,零代码构建一个能回答私有领域问题的大模型问答应用。

为什么大模型无法回答私有知识?

核心概念

大语言模型(LLM)的知识来源于训练数据,不包含任何私有、特定领域或最新的信息。因此,直接向其提问关于特定产品或内部知识的问题,会得到不准确或虚构的回答。

如何解决:RAG(检索增强生成)

检索增强生成(Retrieval-Augmented Generation, RAG)是一种将外部知识库与大语言模型相结合的技术。它通过检索相关信息并将其提供给模型,使模型能够基于给定的私有知识进行回答,其核心原理如下:
  1. 数据处理与向量化:上传的文档经过自动化处理,系统会将其切分成数据块(Chunks),然后使用一个嵌入模型(Embedding Model)将每个数据块转换为数学向量,存储于专门的向量数据库中。
  2. 检索:当接收到问题时,系统同样将问题向量化,然后在向量数据库中检索与问题向量最相似的 Top-k 个文档数据块。
  3. 生成:系统将原始问题和检索到的文档片段组合成提示词(Prompt),提交给模型,最终生成答案。

效果展示

无 RAG 问答应用RAG 问答应用
在没有专属知识库时,大模型无法准确回答"阿里云百炼手机"的问题。引入专有知识库后,大模型就能准确回答"阿里云百炼手机"方面的问题。

创建私有知识问答应用

创建智能体

1

创建空白应用

访问应用管理页面。点击创建应用,在智能体应用页签中点击立即创建
2

选择模型

为应用选择大语言模型,建议您选择通义千问-Max模型。
使用大模型会产生计费。阿里云百炼提供了限时免费额度。如需查询免费额度,请您前往模型广场,点击每个模型卡片的查看详情
3

设计Prompt(提示词)

也称为System Prompt,用于定义应用的角色和任务。建议设置Prompt(提示词)为:"你是一位阿里云百炼手机导购,任务是帮助客户对比手机参数,分析客户需求,推荐个性化建议。"
4

配置欢迎语和预设问题

您可以设置智能体的欢迎语,并以您的常见问题作为预设问题,以便快速开展对话。
  • 欢迎语:你好,我是阿里云百炼手机选购向导!我在这里帮助你选购心仪的阿里云百炼手机。
  • 预设问题1:阿里云百炼手机有哪些款式?
  • 预设问题2:请你为我推荐一款性价比最高的手机。
  • 预设问题3:请你帮我挑选一款拍照效果最好的阿里云百炼手机,价格在3000元以内。
5

测试应用

您可以在右侧点击任意问题发起提问。
由于缺少"阿里云百炼手机"的相关知识,阿里云百炼应用的回答较为笼统,甚至可能无中生有。接下来,我们将引导您配置知识库。

创建知识库

1

访问知识库页面

访问知识库页面。点击创建知识库构建您的专属知识库。
2

填写知识库名称

填写知识库名称,点击下一步
本教程中将知识库名称设置为"阿里云百炼手机"。创建知识库向导提供了默认配置,在本教程中您无需改动这些设置。
3

选择类目

选择类目下勾选默认类目,点击下一步
在这一步中,请选择构建知识库的知识文档数据。创建知识库向导提供了默认配置,在本教程中您无需改动这些设置。
4

选择切分策略

选择智能切分,点击导入完成,即可成功创建知识库。
"智能切分"为系统预置切分策略,经评测对于多数文档可获得最佳的检索效果。
5

等待解析完成

根据您上传的文档大小,阿里云百炼需要一定时间解析内容,通常占用1~2分钟,请您耐心等待。

为智能体配置知识库

1

进入应用配置

访问应用管理页面。查找到您创建的"阿里云百炼手机选购向导"应用,点击配置,进入应用配置界面。
2

添加知识库

点击知识 > 文档旁的 + 按钮,再添加知识库,即可完成配置。

测试与发布

1

测试问答效果

在右侧点击任意问题发起提问,例如:"请你帮我挑选一款拍照效果最好的阿里云百炼手机,价格在3000元以内。"引入知识检索增强后,阿里云百炼应用能够准确地回答您的选购问题。
2

发布应用

确认内容变动无误后,点击发布

最佳实践

您已经掌握了构建基础 RAG 应用的核心流程,接下来可以:
  1. 优化 RAG 效果:了解如何在查询、检索、召回、重排等阶段优化 RAG 效果,详情可参见知识库效果优化
  2. 配置更多工具:为智能体配置插件、MCP 等外部工具,进一步扩展大模型的能力。
  3. 探索更强大的应用:使用工作流应用实现复杂的流程编排,使用高代码应用以编码的方式构建复杂的 AI 服务。
  4. 外部调用与集成:通过 DashScope SDK 或 HTTP 请求,将应用集成至业务系统。

常见问题

问:为什么应用回答不准确,或者没有使用知识库中的知识来回答? 答:这可能是由 RAG 管道中的多个环节导致的:
  1. 文档分块时破坏了语义完整性。
  2. 嵌入模型未能准确捕捉文本的核心语义。
  3. 检索环节未能召回最相关的文档片段。
可以尝试以下方案调优:
  1. 使用结构化较好的文档(如 Markdown、JSON)。
  2. 在知识库配置时,选择自定义配置模式,通过选择不同的嵌入模型、设置不同的排序配置来调试应用回答效果。
问:如何让模型在知识库里找不到答案时,明确告知"不知道",而不是编造答案? 答:可以开启干预智能体回复功能,并设置知识库无结果时智能体的干预回复。