导言
学习制作一个“公司Web网站Ai助手”,这个助手可以通过解读知识库中的公司报告信息,来回答相关问题。
总体分为以下两步
1、公司报告解读
2、可视化报告中的关键数据。
操作步骤
1、进入阿里云百炼平台
第一步:登录阿里云(https://www.aliyun.com/),右上角点击登录。
第二步:进入阿里云百炼控制台,在顶部搜索“百炼”,或插入网址https://bailian.console.aliyun.com/#/home。
2、创建一个智能体
第一步:进入应用广场,上方点击“应用“
第二步:创建智能体,左侧栏“应用管理”-右上角“新增应用”-弹窗“智能体应用”-“立即创建”
第三步:修改智能体名称,左上角点击既可修改,此处命名为“公司报告解读助手”
3、模型选择与配置
第一步:选择合适的模型,点击“设置”-“选择模型”。由于需要调用知识库,我们需要选择能力较强的旗舰模型。此处选择通义千问-Plus。通义千问3系列模型为思考模型(模型会先输出思考过程,再输出回答内容)可以把思考模式关闭,以减少token值的消耗。
拓展:如何查看模型能力
方法一:来到模型广场,这里的模型边都有参数显示,参数越大,能力越强。
方法二:点击立即体验,相同内容输入不同模型,人工对比。
方法三:百炼内置模型测评。
第二步:模型参数配置
温度系数:默认值0.85,用来调控模型生成的多样性,温度系数越高,模型的自主生成越多样。
最长回复长度:默认值1024,模型生成的长度限制,不包含prompt。允许的最大长度因模型不同有所改变。当发现模型输出中断,通常是最长回复长度不够导致的。
携带上下文轮数:默认值3,设置输入模型的最大历史对话轮数,轮数越多,对话相关性越强。需要多轮对话时,可以合理拉长这个参数。
本实验可以保持所有配置参数不动。
4、其他功能选择
下方有多种多样的功能用以拓展智能体的能力:
视觉:开启则允许用户上传图像,并基于视觉理解能力回答用户问题(需要配置视觉模型才可以开启)。
知识库:提升私域知识问答能力。
动态文件解析:开启后允许用户上传文件(聊天框处文件标识亮起),使用预置算法解析文件,支持用户对文件内容进行问答。
联网搜索:依据场景触发联网搜索。
样例库:Prompt中需要增加${samples}的变量,实现基于few shot的prompt样例引入,提高生成效果。
MCP服务:模型通过标准化协议(MCP)连接企业内部服务API并发起调用。
插件:智能体可以通过插件主动调用OpenAPI,例如信息查询、数据存储等。
智能体:配置好的智能体应用可发布为智能体组件,从而实现特定场景下的智能处理。
工作流:编排好的工作流应用可发布为工作流组件,从而实现复杂、稳定的业务流程。
长期记忆:长期记忆可以提取对话的关键信息并保存至对应的记忆体(Memory ID)中。
支付宝AI收:开启后若应用为应用模板,则拥有赞赏功能。
本次实验中需要开启知识库功能来存储公司报告数据,开启MCP服务来生成可视化图表
知识库
大模型缺乏私有知识,且通用知识更新滞后。业界通常采用检索增强生成(RAG)技术,根据用户输入从外部信息源检索相关信息,然后将检索到的内容整合到用户输入中,从而帮助大模型生成更准确的回答。知识库功能作为阿里云百炼的RAG能力,能有效补充私有知识并提供最新信息。
第一步:新建类目,回到应用广场页面,左侧栏“应用数据”-“非结构化数据”-类目管理处点“+”,新建类目,类目名称 “公司报告”,点击确认。
结构化数据:excel表格这类文件为结构化数据
非结构化数据:非excel表格类型的,如pdf、word、ppt等
因为我们上传的公司报告是pdf格式,因此选择非结构化数据类型。
第二步:导入数据,点击“导入数据”,上传公司报告,点击确认,等待导入完成。
上传文件示例:
第三步:创建知识库,左侧栏“知识库”-“创建知识库”,知识库名称“公司报告”,数据类型选择“非结构化数据”(因为我们刚刚准备的数据就是非结构化数据),配置模式新手选择推荐配置,适用大部分场景,配置模式可以按需更改。
多轮对话改写:开启后通过细化和调整用户的原始输入query来提升检索结果的精确度和相关性,同时在多轮对话场景中,该模块能够适应上下文的变化,确保查询与当前对话的连贯性,从而提供更加连贯、一致且用户友好的交互体验,使得整个对话流程更加自然和高效。
排序配置:开启排序模型后,将对存储引擎检索回来的结果进一步排序,并根据相似度阈值筛选大于阈值的文档片段,关闭排序模型后,相似度阈值将会失效。
相似度阈值:设定最低分数标准,只有超过这个阈值的检索结果才会被考虑用于后续的生成过程。
选择数据,选择类目,将刚才准备的“公司报告”类目勾选
数据处理可以选择智能切分,切分后,文档中的数据就像一片一片蛋糕,分别拆分出来。切分长度可以根据自己的文档内容进行调整。等待数据导入完成。
RAG数据做切分是为了方便模型在获取信息时,不会过多过量,通过片段信息获取关键内容。
第四步,智能体中开启知识库功能,回到智能体,打开知识库,点击“+”添加知识库(此时智能体中自动弹出变量${documents}),选择刚才准备的知识库“公司报告”
第五步,知识库的配置
权重:添加多个知识库时,调整知识库权重可人工干预召回片段排序,知识库召回片段得分 = 知识库权重 × 切片相似度。
知识库拼装策略:为用户提供灵活且高效的方式来从知识库中召回信息,并将其拼装成适合模型输入的Prompt。此功能包含两种策略:“按召回数量”和“智能拼装”。
“按召回数量”,用户可以精确控制从知识库中召回的信息chunk数量,满足对输入信息量和结构有明确要求的场景。
召回片段数:搜索召回的片段数量。数量越大,覆盖率越大,但消耗的模型input也越多。
“智能拼装”,能够根据用户设定的Prompt长度和chunk长度,智能地计算并召回最合适的chunk组合,以最大化利用输入空间,确保信息的完整性和输入效率。这两种策略为用户提供了根据不同任务需求灵活选择的机会,从而优化模型的输入质量和性能表现。
知识库拼装最大长度:该功能允许用户自定义搜索召回结果拼接到Prompt中的文本长度。用户可以根据需求设定具体的字符数或词数限制,以确保生成的Prompt包含适量且相关的检索信息。通过这一设定,用户可以更精细地控制生成内容的质量和上下文相关性,提高RAG应用的灵活性和实用性
回答范围设定:此功能允许您选择如何结合专有知识库与大模型生成的回答。您可以选择优先使用知识库中的准确信息,并在找不到确切答案时利用大模型的能力来生成答案;也支持完全依赖知识库并可自定义无匹配结果时的响应方式。
知识范围判定:
搜索阈值:通过您设置的相似度阈值,系统自动筛选出与用户查询内容在语义上达到或超过这一阈值的搜索结果。这是一种基于文本相似度的自动过滤机制。
未在知识库处理:如果用户问题无法使用知识库内容进行响应,可以让模型自行生成也可以生成固定回复来回答用户。
搜索阈值+大模型判断:在相似度阈值判定的基础上,引入大模型的智能分析能力。系统首先通过相似度阈值筛选出初步的搜索结果,然后利用大模型对这些结果进行深入分析,判断它们与用户查询的关联程度。需要额外产生大模型调用费
设置判断Prompt:输入给大模型,用于判断用户输入和搜索结果的关联程度的提示词
展示回答来源:开启之后,将在结果中以序号方式展示生成结果的来源文档,并且会消耗更多token。
多模态回复增强:针对知识库中的多模态文档,使用qwen-vl-max进行多模态增强回复,账单中会产生额外的qwen-vl-max调用费用。该功能暂时不支持展示回答来源
本实验中,考虑到公司报告信息的不可修改的特性,可以开启未在知识库中的固定回复,添加固定回复:“报告中没有这个信息呢“。
MCP服务
模型上下文协议(Model Context Protocol, MCP)旨在搭建大模型和外部工具之间的信息传递通道。通过 MCP 协议,开发者不用为每个外部工具编写复杂的接口,阿里云百炼应用也能够接入海量第三方工具。
主页上方点击MCP,阿里云百炼已经云部署了数量相对较多的MCP Server,可以选择合适的MCP开通后使用。
AntV可视化图表工具就可以支持我们想要将报告解读可视化的需求,点击立即开通即可。
可在工具处查询MCP的工具详情以及入参要求。
回到智能体页面,点击添加MCP,搜索框中搜索AntV,勾选后确认添加。
5、提示词工程(prompt)
根据实验要求,设计prompt,填入提示词框中,注意由于开启了知识库和MCP工具,需要在提示词中为大模型提供指示。
Prompt涵盖角色、技能、任务、限制、输出等多个方面。它是一个指令、问题或者语句,能被用来引导或指示一个语言模型生成特定的文本输出。Prompt是用户与语言模型交互的起始点,它告诉模型用户的意图,并且期望模型能以有意义且相关的方式回应。通过精心设计的prompt,我们可以引导大语言模型(LLM)更好地理解用户的意图,并生成更准确、有用的回答。Prompt工程涉及开发、优化和测试迭代prompt,以帮助用户有效地与语言模型进行交互。
实验要求:
制作一个“公司报告解读助手”,这个助手可以通过知识库中的公司报告信息,来回答相关问题并使用工具生成可视化图表。
Input:有关公司的相关问题
Output:提供知识库中公司报告的数据回答,以及可视化图表
Prompt示例:
# 角色
你是一位专业的公司报告解读助手,能够深入分析和解读各种公司报告,并使用AntV可视化图表工具生成数据图表,帮助用户更好地理解报告内容。
## 技能
### 技能 1:公司报告解读
- 详细阅读并理解用户提供的公司报告。
- 提取关键信息和数据,进行总结和解释。
- 以清晰、简洁的语言向用户传达报告的核心内容和重要发现。
### 技能 2:金额问题数据可视化
- 使用AntV可视化图表工具,将报告中的关键数据转化为直观的图表。
- 生成柱状图、折线图、饼图等多种类型的图表,以便用户更直观地理解数据。
- 确保图表美观且易于理解,标注清晰,颜色搭配合理。
## 限制
- 涉及到资金、利润等金额问题时,必须使用’AntV可视化图表‘工具,确保可读性。
- 只针对公司报告的内容进行解读和分析。
- 所有的图表和分析结果必须基于用户提供的报告内容。
- 在提供分析和建议时,保持客观和中立,避免引入个人观点或偏见。
# 知识库
请记住以下材料,他们可能对回答问题有帮助。
${documents}
拓展:阿里云百炼提供提示词模板和优化功能,来帮助您更快的完成prompt。
6、应用测试
聊天框处输入问题测试,若测试结果不满意,可以修改模型选择与配置、提示词、功能增加/减少来让测试结果更好。
问题参考:
2024年,该公司的利润分配预案是怎样的?
该公司的境外子公司有哪些?
从2024年的年初到年末,乖宝母公司的非流动资产总额变动了多少?
近三年公司研发投入金额分别是多少?
测试结果示例:
7、体验配置
点击右上角齿轮,可以为应用配置欢迎语、预设问题、预置测试样例。
欢迎语:欢迎语可以介绍本智能体功能提示用户需要输入什么,欢迎语示例:“可以询问我有关乖宝公司2024年年度报告的相关问题哦”
预设问题:预置一组输入数据,配置完成后可快速发起测试。这里仅可输入用户指令,不可以输入文件、图片
测试样例:预置一组输入数据,配置完成后可快速发起测试。这里可输入用户指令、文件、图片。
8、应用发布
点击右上角“发布”,即可将这个写好的应用使用各种方式(如api-key)的形式分享给他人使用啦。
咱们后续的修改更新发布后,也是可以在版本管理这里查看历史版本信息。
发布完成后,点击“发布渠道”,可以看到我们支持多种渠道的分享,可以在这些渠道中将这个应用配置上去哦。