基于华为Maas(大模型即服务)和开源的Agent三方框架构建AI聊天助手实践

举报
郑小健 发表于 2024/12/31 09:55:04 2024/12/31
【摘要】 引言随着人工智能技术的快速发展,AI聊天助手已经成为企业与用户之间沟通的重要桥梁。为了构建一个高效、智能且易于扩展的AI聊天助手,我们可以利用华为云提供的Maas(Model-as-a-Service,大模型即服务)平台,结合开源的Agent三方框架来实现。本文将详细介绍这一实践过程,并分享一些个人见解和技术观点。 一、背景与动机 1.1 华为Maas平台简介华为Maas是基于云端的大规模...

引言

随着人工智能技术的快速发展,AI聊天助手已经成为企业与用户之间沟通的重要桥梁。为了构建一个高效、智能且易于扩展的AI聊天助手,我们可以利用华为云提供的Maas(Model-as-a-Service,大模型即服务)平台,结合开源的Agent三方框架来实现。本文将详细介绍这一实践过程,并分享一些个人见解和技术观点。


一、背景与动机

1.1 华为Maas平台简介

华为Maas是基于云端的大规模预训练语言模型服务平台,它允许开发者通过API接口快速调用高性能的语言处理能力,而无需自行训练或维护复杂的模型架构。这大大降低了开发门槛,提高了项目实施的速度和灵活性。在2024数博会领先科技成果发布会上,十大领先科技成果和优秀科技成果揭晓。凭借在大数据和人工智能领域的优势,华为云斩获多项大奖,其中就包括:华为云MaaS大模型即服务平台荣获“十大领先科技成果奖”

1.2 开源Agent框架的选择

选择合适的Agent框架对于构建聊天助手至关重要。一个好的Agent框架应该具备以下特点:

  • 易用性:支持多种编程语言,提供丰富的文档和示例代码。
  • 可扩展性:能够轻松集成第三方服务和插件,适应不同的业务需求。
  • 社区活跃度:拥有庞大且活跃的开发者社区,确保长期支持和技术更新。

在众多选项中,Rasa是一个非常受欢迎的开源对话管理框架,它不仅满足上述要求,还提供了强大的自然语言理解和生成功能。因此,本文将以Rasa为例进行讨论。


二、技术方案设计

2.1 系统架构概述

整个系统由三个主要部分组成:前端界面、后端服务器以及华为Maas API。其中,前端负责接收用户的输入并展示回复;后端则承担了核心逻辑处理任务,包括但不限于消息路由、状态管理等;最后,通过调用华为Maas API完成复杂的语言处理工作。

这里我附上MaaS使用开发文档:https://support.huaweicloud.com/usermanual-maas-modelarts/maas-modelarts-0002.html

2.2 核心组件详解

2.2.1 Rasa Agent

作为对话管理的核心组件,Rasa Agent负责解析用户的自然语言输入,根据上下文理解意图,并生成相应的回应。此外,它还可以与其他外部系统交互,如数据库查询、API调用等,从而实现更复杂的功能。

2.2.2 华为Maas API

华为Maas API提供了对大规模预训练语言模型的访问权限,使得我们可以直接利用其强大的文本分析和生成能力。例如,在面对长文本摘要、情感分析等高级应用时,借助Maas可以显著提升处理效率和准确性。

2.2.3 消息队列(Optional)

考虑到高并发场景下的性能优化问题,可以在架构中引入消息队列机制。这样不仅可以缓解瞬时流量压力,还能保证系统的稳定性和可靠性。

*本实验为了便于展示和引导部署,我们就采用了【Dify开发平台】。

Dify是一款开源的大语言模型(LLM)应用开发平台,它融合了后端即服务(Backend as Service, BaaS)和LLMOps的理念,旨在帮助开发者快速搭建生产级的生成式AI应用。以下是关于Dify软件的相关信息:

Dify软件的主要功能

**低代码/无代码开发:**提供用户友好的界面,通过可视化的方式允许开发者轻松定义Prompt、上下文和插件等。

**模块化设计:**采用模块化的设计,每个模块都有清晰的功能和接口,可以根据需求选择性地使用。

**丰富的功能组件:**包括AI工作流、RAG管道、Agent、模型管理、可观测性功能等。

**支持多种大语言模型:**已支持OpenAI GPT系列等模型,并计划进一步扩展。

**数据处理和特征工程工具:**提供了数据清洗、特征选择、特征变换等功能。

**集成外部知识源:**允许自定义API接入外部知识源,让大型语言模型深入理解企业知识和业务。


三、部署流程

在部署前,要重点说明下:

1.MaaS服务仅“华东二”区域支持使用ModelArts Studio大模型即服务平台(MaaS)。
2.MaaS是白名单功能,如果有试用需求,请先申请权限。

【操作步骤】如下:

一、基于华为云资源编排服务(RFS)快速部署Dify软件

这里我们可以使用华为云资源编排服务RFS,他能够在云服务器上基于资源栈模版快速的部署Dify软件,用户只关注终态资源规格,无需感知底层资源申请等复杂环节。超级的方便。

1)创建资源栈:基于提供的Dify资源栈模版创建资源栈,登陆华为云账号,点击创建资源栈,点击【下一步】(如下图)
创建资源栈地址:点击前往创建

为了以防万一,我把模版链接也发下:https://documentation-samples.obs.cn-north-4.myhuaweicloud.com/solution-as-code-publicbucket/solution-as-code-moudle/dify-llm-application-development-platform/dify-llm-application-development-platform.tf.json


2)参数配置:注意配置ECS服务器密码(一定要记住哟),点击【下一步】

(云服务器密码,长度为8-26位,密码至少必须包含大写字母、小写字母、数字和特殊字符(!@$%^-_=+[{}]:,./?)中的三种,仅支持小写字母、数字、中划线(-)、英文句号(.)。修改密码,请参考重置弹性云服务器密码登录ECS控制台修改密码。管理员账户默认root。)

  1. 资源栈设置。设置RFS编排服务对云服务器资源的操作权限,也可以不设置(非必选)直接点击【下一步】。

4)配置确认。最后一步确认下配置,创建【执行计划】,执行计划名称可以自定义,点击创建即可。

(建议完成创建后在部署)

5)启动【部署】。部署Dify软件,点击部署按钮,弹出对话框中点击执行,当"事件"页签出现"Apply required resource success"时表明部署成功。
(点击部署)

(部署成功)

6)登陆Dify开发平台,刷新页面,在“输出”中查看Dify-LLM应用开发平台访问说明,首次登陆需注册管理员账号,依次填写邮箱、账号、密码。

二、在Dify中使用MaaS的模型服务构建聊天助手应用

1)进入华为云控制台,区域切到华东二,服务列表中找到ModelArts.

2)进入ModelArts Studio,点击左侧栏"模型部署",申请大模型免费tokens试用.
(可以一次性全部领取下来哟)

3)这里我们以Qwen2_5-7B-Instruct为例,点击【更多】-【调用】,获取接口和模型名。

4)创建API Key,左侧鉴权管理-创建API Key,保存创建的密钥信息

这里重点说明下:请将此密钥保存在安全且可访问的地方。这是唯一一次可以查看密钥的机会。您以后将无法查看它。一定要复制保存下来先哟。

5)Dify平台上配置【模型供应商】,点击右上角设置,进入【模型供应商】页签,选择【OpenAI-API-compatible供应商】。
关键信息配置如下:

名称 内容
模型名称 请填入步骤3服务信息中的模型名称
API Key 请填入步骤4中创建的API Key
API endpoint URL 请填入步骤4中的API地址,并且删除最后面的“chat/completions”部分
Completion mode 请选择对话

(1)先找到【设置】:

(2)点击进入【设置】后进入到【模型供应商】页签;

(3)选择【OpenAI-API-compatible供应商】;

(4)添加 OpenAI-API-compatible参数信息:

这里要注意下,模型名称是Qwen2.5-7B,而不是Qwen2_5-7B-Instruct。

6)应用构建,在Dify中创建聊天助手时,可以选择已配置的MaaS模型服务进行应用编排。可以根据我下面的流程来走哈:
(1)首先我们在首页先点击【创建空白应用】:

(2)选择【聊天助手】、自定义名称后,点击创建;

(3)完成创建后,我们就可以进行应用编排咯。

(4)点击右上角,可以选择模型,也可以进行多模型调试。非常方便。
这里补充说明下,上面截图我模型配置的时候有参数配错了,所以出现了感叹号,点击重新配置后下面就显示正常咯。

(5)设置提示词:这里我们可以按快捷方式来设置提示词,设置完成后点击应用即可覆盖。

(6)完成提示词设置后,我们就可以在右侧进行调试了。

(7)点击右侧“Prompt日志”可以查看日志,也可以点击“刷新图标”重新生成

到这里我们就完成了整个实验的部署工作,剩下的就等着各位开发者自行研究和挖掘咯。


四、关键技术和最佳实践

4.1 自然语言处理(NLP)技术的应用

NLP是构建聊天助手的基础,直接影响用户体验的好坏。通过结合华为Maas的强大语言处理能力和Rasa内置的NLU引擎,我们可以在不牺牲准确性的前提下大幅提高响应速度。同时,针对特定领域的专业术语,还可以定制专属词汇表,进一步增强理解精度。

4.2 对话管理策略的设计

良好的对话管理策略不仅能提升互动效果,还能有效引导用户按照预期路径操作。为此,建议采用意图分类+槽位填充相结合的方式,即先识别用户的主要诉求(意图),再逐步收集相关信息(槽位)。此外,适时加入提示语句也有助于保持对话流畅性。

4.3 安全性和隐私保护措施

鉴于聊天助手往往涉及敏感信息的传输,必须高度重视数据安全和个人隐私保护。一方面,要严格遵守相关法律法规,确保所有操作均合法合规;另一方面,则需采取加密存储、访问控制等多种手段保障信息安全。特别是在使用华为Maas API时,应遵循官方提供的安全指南,合理配置认证参数。

4.4 性能监控与优化

为了保证系统的持续稳定运行,建立完善的性能监控体系不可或缺。可以通过设置合理的指标阈值,及时发现潜在问题并作出调整。比如,当CPU利用率过高时自动触发扩容操作;或者当响应时间过长时检查是否存在瓶颈环节。另外,定期进行压力测试也是预防突发情况的有效方法之一。


五、个人见解与展望

通过本次实践,我深刻体会到华为Maas与开源Agent框架相结合所带来的巨大优势。前者提供了强大的底层支撑,后者赋予了灵活多变的应用可能性。然而,值得注意的是,尽管当前的技术已经足够成熟,但在某些特殊领域仍然存在改进空间。例如,如何更好地处理多轮对话中的语义一致性问题,或者怎样进一步降低延迟以实现即时反馈等,都是未来值得探索的方向。

总之,构建一个理想的AI聊天助手并非一蹴而就的事情,而是需要不断积累经验、优化算法的过程。希望本文能够为同行们带来些许启发,共同推动这一领域的进步与发展。
(另外希望可以开放Maas使用,申请试用流程较长,也不确定申请进度。)

六、结论

基于华为Maas和开源Agent三方框架构建AI聊天助手是一项具有挑战性和创新性的任务。通过合理规划系统架构、精心挑选核心技术,并注重实际应用场景中的细节处理,我们不仅能够打造出一个功能完备、性能优越的产品,更能为企业和用户提供更加便捷高效的交流方式。期待在未来的发展中,能看到更多优秀的解决方案涌现出来。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。