当前位置: 首页 > news >正文

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

引言

随着人工智能技术的快速发展,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使用开发文档:MaaS使用场景和使用流程_AI开发平台ModelArts_华为云

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、上下文和插件等。

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

相关文章:

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

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

微信小程序——创建滑动颜色条

在微信小程序中,你可以使用 slider 组件来创建一个颜色滑动条。以下是一个简单的示例,展示了如何实现一个颜色滑动条,该滑动条会根据滑动位置改变背景颜色。 步骤一:创建小程序项目 首先,使用微信开发者工具创建一个新…...

Qt官方下载地址

1. 最新版本 Qt官方最新版本下载地址:https://www.qt.io/download-qt-installer 当前最新版本Qt6.8.* 如下图: 2. 历史版本 如果你要下载历史版本安装工具或者源码编译方式安装,请转至此链接进行下载:https://download.qt.i…...

网络-ping包分析

-a:使 ping 在收到响应时发出声音(适用于某些操作系统)。-b:允许向广播地址发送 ping。-c count:指定发送的 ping 请求的数量。例如,ping -c 5 google.com 只发送 5 个请求。-i interval:指定两…...

SEO内容优化:如何通过用户需求赢得搜索引擎青睐?

在谷歌SEO优化中,内容一直是最重要的因素之一。但要想让内容真正发挥作用,关键在于满足用户需求,而不是简单地堆砌关键词。谷歌的算法越来越智能化,更注重用户体验和内容的实用性。 了解目标用户的需求。通过工具如Google Trends…...

ubuntu22.04 的录屏软件有哪些?

在Ubuntu 22.04上,有几款适合做视频直播和录屏的软件: 1. OBS Studio (Open Broadcaster Software) 功能:OBS Studio 是最常用的开源直播和录屏软件,支持视频录制、直播流式传输,并且有强大的插件支持,能…...

Opencv查找、绘制轮廓、圆形矩形轮廓和近似轮廓

查找、绘制轮廓、圆形矩形轮廓和近似轮廓 目录 查找、绘制轮廓、圆形矩形轮廓和近似轮廓1 轮廓查找和绘制1.1 轮廓查找1.1.1 函数和参数1.1.2 返回值 1.2 轮廓绘制1.2.1 函数和参数 1.3 步骤1.4 实际测试绘制轮廓 2 绘制近似轮廓2.1 函数和参数2.2 查找特定轮廓2.3 近似轮廓测试…...

深入解析 Python 2 与 Python 3 的差异与演进

Python 2 和 Python 3 是 Python 编程语言的两个主要版本。Python 3 于 2008 年发布,旨在解决 Python 2 中的一些设计缺陷,并引入了许多新特性。虽然 Python 2 在很长一段时间内仍然被广泛使用,但自 2020 年 1 月 1 日起,Python 2…...

后端:Spring(IOC、AOP)

文章目录 1. Spring2. IOC 控制反转2-1. 通过配置文件定义Bean2-1-1. 通过set方法来注入Bean2-1-2. 通过构造方法来注入Bean2-1-3. 自动装配2-1-4. 集合注入2-1-5. 数据源对象管理(第三方Bean)2-1-6. 在xml配置文件中加载properties文件的数据(context命名空间)2-1-7. 加载容器…...

排序:插入、选择、交换、归并排序

排序 :所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。 稳定性 :假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,…...

认识+安装ElasticSearch

1. 为什么要学习ElasticSearch? 一般的来说,项目中的搜索功能尤其是电商项目,商品的搜索肯定是访问频率最高的页面之一。目前搜索功能是基于数据库的模糊搜索来实现的,存在很多问题。 1.1 数据库搜索所存在的问题 1.1.1 查询效率较低 由于数据库模糊查询不走索引&…...

一个模块实现期货分钟 K 线计算、主连行情合成

由于不同期货品种的交易时间存在差异,且不同期货合约的活跃度各不相同,因此基于期货快照行情数据合成分钟K线的计算方法在时间对齐上需要进行不同的处理。 本教程旨在提升 DolphinDB 在具体业务场景中的应用效率,并降低其在实际业务中的开发…...

PyTorch:.max(1)和.max(0)的使用

目录 1).max(1)的使用: 2).max(0)的使用: 1).max(1)的使用: 假设有一个形状为 ( m , n ) 的 Tensor x ,其中m表示行数,n表示列数。 x.max(1) ,相当于x.max(dim1) 。作…...

ASP.NET Core 中使用 Cookie 身份验证

在 ASP.NET Core 中使用 Cookie 身份验证,通常是为了实现用户的登录和授权。以下是配置 Cookie 身份验证的步骤。 1. 安装必要的 NuGet 包 首先,确保项目中包含 Microsoft.AspNetCore.Authentication.Cookies 包。你可以通过 NuGet 包管理器或命令行安…...

Ollama私有化部署大语言模型LLM

目录 一、Ollama介绍 二、安装Ollama 1、标准安装 2、国内加速 三、升级Ollama版本 四、使用Ollama 1、启动ollama服务 systemctl start ollama.service ollama serve 2、使用ollama命令 ollama run 运行模型 ollama ps 查看正在运行的模型 ollama list 查看(本地)…...

安卓app抓包总结(精)

前言 这里简单记录一下相关抓包工具证书的安装 burp证书安装 安装证书到移动设备(安卓7以后必须上传到设备系统根证书上) 导出证书 openssl x509 -inform DER -in cacert.der -out cacert.pem 转换格式 openssl x509 -inform PEM -subject_hash_old -in cacert.pem …...

Three.js 性能优化:打造流畅高效的3D应用

文章目录 前言一、减少几何体复杂度(Reduce Geometry Complexity)二、合并几何体(Merge Geometries)三、使用缓冲区几何体(Use BufferGeometries)四、纹理压缩与管理(Texture Compression and M…...

PHP 在 2025 年的现状与展望

PHP 在 2025 年依然强劲,继续为超过 77% 使用已知服务器端编程语言的网站提供动力。这并非仅仅依靠遗留代码,像 WordPress、Shopify 和 Laravel 这样的主流平台持续推动 PHP 的发展,使其保持着 актуальность 并不断进化。 为什么…...

力扣经典二分题:4. 寻找两个正序数组的中位数

题目链接:4. 寻找两个正序数组的中位数 - 力扣(LeetCode) 一、题目分析 这道题目是让我们在 两个正序的数组中寻找中位数已知两个数组的大小分别是:int m nums1.size(),n nums2.size();中位数性质1:中位数左侧元素 …...

解决WordPress出现Fatal error: Uncaught TypeError: ftp_nlist()致命问题

错误背景 WordPress版本:wordpress-6.6.2-zh_CN WooCommerce版本:woocommerce.9.5.1 WordPress在安装了WooCommerce插件后,安装的过程中没有问题,在安装完成后提示: 此站点遇到了致命错误,请查看您站点管理…...

Excel 技巧07 - 如何计算到两个日期之间的工作日数?(★)如何排除节假日计算两个日期之间的工作日数?

本文讲了如何在Excel中计算两个日期之间的工作日数,以及如何排除节假日计算两个日期之间的工作日数。 1,如何计算到两个日期之间的工作日数? 其实就是利用 NETWORKDAYS.INTL 函数 - weekend: 1 - 星期六,星期日 2,如…...

快速实现一个快递物流管理系统:实时更新与状态追踪

物流管理是电商、仓储和配送等行业的重要组成部分。随着电子商务的快速发展,快递物流的高效管理和实时状态更新变得尤为关键。本文将演示如何使用Node.js、Express、MongoDB等技术快速构建一个简单的快递物流管理系统,该系统支持快递订单的实时更新和追踪…...

kvm 解决 安装windows 虚拟机cpu 核数问题

通过lscpu命令查到我本机的cpu信息如下 CPU(s): 12 —— 系统的总逻辑处理单元数量(包括所有核心和逻辑处理器)。Thread(s) per core: 2 —— 每个物理核心支持 2 个线程(表示启用了超线程技术)。Core(s) per socket: 6 —— 每个…...

Ansys Fluent Aeroacoustics 应用

探索 Ansys Fluent 在气动声学领域的前沿功能,彻底改变各行各业解决降噪和提高音质的方式。 了解气动声学 气动声学是声学的一个分支,它处理湍流流体运动产生的噪声以及这些声音通过流体介质(如空气)的传播。这个领域在工程中至…...

119.使用AI Agent解决问题:Jenkins build Pipeline时,提示npm ERR! errno FETCH_ERROR

目录 1.Jenkins Build时的错误 2.百度文心快码AI智能体帮我解决 提问1:jenkins中如何配置npm的源 提问2:jenkins pipeline 类型为pipeline script from SCM时,如何配置npm源 3.最终解决方法-Jenkinsfile的修改 4.感触 1.Jenkins Build时…...

istio-proxy内存指标

在 Istio 环境中,istio-proxy 是 Envoy 的边车代理容器。通过运行命令 curl localhost:15000/memory,或者curl localhost:15000/stats 可以查询 Envoy 的内存统计信息。以下是典型返回结果的结构和意义: 返回结果单位是bytes,需/…...

List详解 - 双向链表的操作

在C中,std::list是标准模板库(STL)中的一个容器,它实现了双向链表的数据结构。与数组或向量(std::vector)不同,std::list允许在常数时间内进行插入和删除操作,尤其是在链表的任意位置…...

多目标优化算法之一:基于分解的方法

在多目标优化算法中,“基于分解的方法”通常指的是将多目标优化问题(MOP)分解为多个单目标优化子问题,并同时优化这些子问题。这种方法的核心思想是通过引入权重向量或参考点,将多目标问题转化为多个标量优化问题,每个子问题都关注于原始问题的一个特定方面或视角。这样可…...

conntrack iptables 安全组

centos 安装yum install conntrack-tools 1. conntrack状态 NEW: 新建连接(第一次包)。 ESTABLISHED: 已建立连接,正在传输数据。 RELATED: 与已有连接相关的连接,如 FTP 数据连接。 INVALID: 无效连接,无法识别或不…...

stringRedisTemplate.execute执行lua脚本

stringRedisTemplate.execute执行lua脚本 1. 引入必要依赖 确保项目中已经引入了Spring Data Redis相关依赖&#xff0c;例如在 Maven 项目中&#xff0c;一般会有如下依赖&#xff08;版本号根据实际情况调整&#xff09;&#xff1a; <dependency><groupId>or…...

公司网站能否申请国外免费空间/关键词搜索优化外包

请用C实现一个链表&#xff0c;实现链表的查找&#xff0c;逆置&#xff0c;替换&#xff0c;删除&#xff0c;添加&#xff0c;清空&#xff0c;创建。查找、替换和删除、添加里面都会用到遍历链表的操作&#xff0c;所以重点在于遍历&#xff0c; 链表的逆置和清空考虑到效率…...

网站 宗旨/站长工具是干嘛的

职责链模式&#xff08;Chain of Responsibility&#xff09;&#xff1a;使多个对象都有机会处理请求&#xff0c;从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链&#xff0c;并沿着这条链传递该请求&#xff0c;直到有一个对象处理它为止。 1、Handler类…...

福州论坛建站模板/互联网网络推广

函数的使用很简单&#xff0c;直接把 OpenCV 的官方文档截取过来吧&#xff0c;主要是。。。懒了。。。#include <opencv2/opencv.hpp> #include <stdio.h> #include <stdlib.h> #include <iostream>using namespace cv; using namespace std;…...

查公司查企业用什么网站/小学生班级优化大师

原题 | Generating a PEG Parser作者 | Guido van Rossum&#xff08;Python之父&#xff09;译者 | 豌豆花下猫&#xff08;“Python猫”公众号作者&#xff09;声明 | 本翻译是出于交流学习的目的&#xff0c;基于 CC BY-NC-SA 4.0 授权协议。为便于阅读&#xff0c;内容略有…...

苏州建网站公司/杭州百度快速排名提升

文/编辑 | 言有三正所谓读史使人明智&#xff0c;没有一个经典的网络模型是突然之间冒出来的&#xff0c;都是厚积薄发的结果&#xff0c;我们会在知识星球每天更新一篇网络结构设计的文章&#xff0c;现在先来测试大家一下&#xff1a;LeNet5&#xff0c;AlexNet&#xff0c;V…...

asp企业网站模板/常见的网络营销方式有哪几种

浏览器地址栏输入URL到显示页面发生了什么&#xff1f; 1.用户输入 2.卸载原页面并重定向到新页面 3.处理Service Worker 4.网络请求 5.服务端响应 6.浏览器渲染详细流程 这个过程分为两个部分&#xff1a;网络通信页面渲染 步骤1&#xff1a;DNS 域名解析&#xff08;域名解析…...