传统业务对接AI-AI编程框架-Rasa的业务应用实战(1)--项目背景即学习初衷

news2025/6/7 16:59:18

我的初衷:我想学习AI。具体的方向是这样的:原本传统的平台业务去对接智能体。比如发票业务,发票的开具、审核、计税、回款等。根据用户在业务系统前台界面输入若干提示词 或者 语音输入简短语音信息,可以通过智能体给出需要处理的逻辑或者要调用的接口或服务来对接系统内置的各种服务和接口。

学习背景:

希望通过学习AI,特别是智能体(Agent)的开发,将传统平台业务(如发票开具、审核、计税、回款等)与智能交互结合,通过用户输入提示词或语音,自动触发相应的业务逻辑、接口或服务。这是一个非常有前景的方向,结合了自然语言处理(NLP)、智能体架构和系统集成。以下是一个系统化的学习和实施建议,尽量简洁且实用,涵盖技术栈、学习路径和实现思路。

1. 明确核心技术方向

我的需求主要涉及以下AI和相关技术领域:

  • 自然语言处理(NLP):理解用户输入的提示词或语音,解析意图。

  • 语音识别(ASR)与语音合成(TTS):处理语音输入和可能的语音反馈。

  • 智能体(Agent)开发:构建能够根据用户意图调用业务逻辑或接口的智能体。

  • 系统集成:将智能体与现有业务系统的服务、接口对接。

  • 业务流程自动化(RPA+AI):将AI与规则引擎结合,处理发票相关业务逻辑。

2、短期目标:搭建一个简单的意图识别模型

短期目标:用Hugging Face的BERT或Rasa搭建一个简单的意图识别模型,通过一个针对发票业务场景的例子说明它的具体效果。清晰展示意图识别模型的作用、效果,并提供简化的实现思路。

如图示,经斟酌,选用Rasa。

  • 意图识别模型的作用

意图识别模型的目的是从用户输入的自然语言(文本或转录后的语音)中,识别出用户的意图(Intent)和关键信息(Entities),从而触发相应的业务逻辑或API调用。在你的发票业务场景中,模型需要:

  • 识别意图:例如,用户想“开具发票”“查询回款”还是“审核发票”。

  • 提取实体:例如,金额、税率、发票类型、收款方等关键信息。

  • 效果:将用户的模糊输入转化为结构化的指令,供后续系统处理。

预期效果:

  • 用户输入:“开一张1000元的发票,税率13%。”

  • 模型输出:

    • 意图:create_invoice(开具发票)

    • 实体:amount=1000, tax_rate=13%

  • 后续:系统根据输出调用开票API,完成业务操作。

基本步骤

  • 安装和初始化 Rasa 项目:设置开发环境,创建 Rasa 项目。

  • 配置意图和训练数据:定义“开票”和“查询”意图,添加训练数据。

  • 训练 Rasa 模型:训练意图识别模型,测试效果。

  • 添加自定义动作:实现模拟 API 调用,处理“开票”和“查询”逻辑。

  • 测试端到端流程:用 Rasa Shell 测试输入和 API 调用。

  • (可选)扩展功能:支持多轮对话或语音输入。

  • 意图识别模型和智能体的区别

Rasa 与 LangChain 或 LlamaIndex 的相关定义与区别,调研如下:

核心定义与功能

  • Rasa:

    • 定义:一个开源的对话系统框架,专注于构建基于意图识别和对话管理的智能体,支持多轮对话和业务逻辑集成。

    • 核心功能:

      • 意图识别与实体提取:解析用户输入(如“开1000元发票,税率13%” → 意图:create_invoice,实体:{amount: 1000, tax_rate: 0.13})。

      • 对话管理:通过领域文件(domain.yml)和故事(stories.yml)处理多轮对话。

      • 动作执行:支持自定义动作(如调用API、查询数据库)。

      • 技术栈:内置轻量级NLP模型(DIET)或可集成BERT等,支持Python开发。

    • 特点:

      • 专注于对话系统,适合快速搭建端到端的交互式智能体。

      • 自带意图识别和对话管理,开箱即用。

      • 需手动配置训练数据(如nlu.yml)和对话逻辑。

  • LangChain:

    • 定义:一个开源的大模型应用开发框架,用于构建基于大型语言模型(LLM)的智能体,强调与外部工具、记忆和数据源的集成。

    • 核心功能:

      • LLM集成:连接大模型(如Grok、LLaMA、OpenAI)处理复杂语言任务。

      • 工具调用:支持调用API、数据库、搜索引擎等(如调用发票API)。

      • 记忆管理:维护对话上下文,适合多轮交互。

      • 链式工作流:通过“链”(Chains)或“代理”(Agents)组合语言理解和动作。

    • 特点:

      • 高度灵活,适合与大模型结合,处理复杂任务。

      • 依赖外部LLM,需API密钥或本地模型。

      • 更通用,不局限于对话系统,可用于文档分析、知识库查询等。

  • LlamaIndex:

    • 定义:一个开源的数据索引与查询框架,专注于将大模型与外部数据(如文档、数据库)结合,适合知识密集型任务。

    • 核心功能:

      • 数据索引:将业务数据(如发票规则、税率表)索引为向量,供LLM高效查询。

      • 查询引擎:基于用户输入,从索引数据中检索答案或触发动作。

      • LLM集成:类似LangChain,连接大模型处理语言任务。

    • 特点:

      • 专注于数据增强生成(RAG,Retrieval-Augmented Generation),适合需要查询业务数据的场景。

      • 对话功能较弱,主要用于单轮查询或知识提取。

      • 需与LLM结合,依赖外部模型。

LangChain 的本质

  • LangChain 是什么:

    • LangChain 是一个 Python/JavaScript 框架,旨在简化基于 LLM 的应用开发。

    • 核心功能:

      • 连接 LLM:通过 API 或本地模型调用大模型(如 Grok、LLaMA、GPT-4)处理语言任务。

      • 工具集成:支持调用外部工具(如 API、数据库、搜索引擎)。

      • 记忆管理:维护对话上下文,支持多轮交互。

      • 工作流管理:通过“链”(Chains)或“代理”(Agents)组织复杂的任务流程。

    • 关键点:LangChain 本身不包含语言处理能力,依赖外部 LLM 提供语言理解和生成能力。

  • 是否需要对接大模型 API:

    • 是的,LangChain 的核心语言处理功能依赖外部大模型。你需要:

      • 通过 API 调用:例如,连接 OpenAI 的 GPT-4 API、xAI 的 Grok API(需 API 密钥)或 Google 的 Gemini API。

      • 本地部署模型:运行开源模型(如 LLaMA、Mistral)在本地服务器,但需要较高算力(GPU)。

    • 如果不配置 LLM,LangChain 无法独立处理语言任务(如解析“开1000元发票,税率13%”)。

2. “小模型AI”(Rasa) vs “大模型AI” (LangChain)的理解

  • Rasa(小模型AI):

    • Rasa 的默认模型(DIET)是轻量级,适合资源有限的环境或快速开发。

    • 但它可以集成大模型(如 BERT 或 Grok),所以不完全局限于“小模型”。

    • 优点:训练快、部署简单、数据需求低,适合你的短期目标(快速搭建意图识别原型)。

    • 局限:对复杂、模糊输入的处理能力不如大模型,需较多标注数据优化。

  • LangChain(大模型AI):

    • LangChain 通常依赖大模型(如 Grok),这些模型有更强的语言理解能力和泛化能力。

    • 优点:能处理非结构化输入、支持复杂逻辑、集成多种工具,适合你的中期目标(构建复杂智能体)。

    • 局限:依赖外部 LLM,计算成本高,配置复杂,初期上手门槛较高。

类比:

  • Rasa 像一个“轻量级机器人”,擅长处理特定任务(意图识别、对话管理),用小模型快速完成标准化工作。

  • LangChain 像一个“全能助手”,借助大模型处理复杂、灵活的任务,但需要更多资源和配置。

3、中期目标:明确初阶的学习及操作路径

  • 识别意图:处理用户输入,如“开具一张1000元的发票,税率13%”(意图:create_invoice)和“查询发票编号12345”(意图:query_invoice)。

  • 提取实体:如金额(amount)、税率(tax_rate)、发票编号(invoice_number)。

  • 调用API:通过自定义动作对接模拟API,完成开票或查询。

  • 后续扩展:支持语音输入(集成语音识别API,如讯飞)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2401260.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

低功耗架构突破:STM32H750 与 SD NAND (存储芯片)如何延长手环续航至 14 天

低功耗架构突破:STM32H750 与 SD NAND (存储芯片)如何延长手环续航至 14 天 卓越性能强化安全高效能效图形处理优势丰富集成特性 模拟模块实时监控保障数据完整性提升安全性与可靠性测量原理采样率相关结束语 在智能皮电手环及数据存储技术不…

Linux(11)——基础IO(上)

目录 一、理解文件 二、回顾C文件的接口 📄 C语言文件操作函数表 ​编辑📄 三个文件流 三、系统文件I/O 1️⃣open 2️⃣close 3️⃣write 4️⃣read 四、文件描述符 💡用户操作文件的底层逻辑是什么? &#x1f4…

ABP-Book Store Application中文讲解 - Part 9: Authors: User Interface

ABP-Book Store Application中文讲解 - Part 9: Authors: User Interface TBD 1. 汇总 ABP-Book Store Application中文讲解-汇总-CSDN博客 2. 前一章 ABP-Book Store Application中文讲解 - Part 8: Authors: Application Layer-CSDN博客 项目之间的引用关系。 ​​ 目…

Hive自定义函数案例(UDF、UDAF、UDTF)

目录 前提条件 背景 概念及适用场景 UDF(User-Defined Function) 概念 适用场景 UDAF(User-Defined Aggregate Function) 概念 适用场景 UDTF(User-Defined Table-Generating Function) 概念 适…

【学习笔记】Circuit Tracing: Revealing Computational Graphs in Language Models

Circuit Tracing: Revealing Computational Graphs in Language Models 替代模型(Replacement Model):用更多的可解释的特征来替代transformer模型的神经元。 归因图(Attribution Graph):展示特征之间的相互影响,能够追踪模型生成输出时所采用…

STM32标准库-TIM定时器

文章目录 一、TIM定时器1.1定时器1.2定时器类型1.1.1 高级定时器1.1.2通用定时器1.1.3基本定时器 二、定时中断基本结构预分频器时器计时器时序计数器无预装时序计数器有预装时序RCC时钟树 三、定时器定时中断3.1 接线图3.2代码3.3效果: 四、定时器外部中断4.1接线图…

Kafka 如何保证顺序消费

在消息队列的应用场景中,保证消息的顺序消费对于一些业务至关重要,例如金融交易中的订单处理、电商系统的库存变更等。Kafka 作为高性能的分布式消息队列系统,通过巧妙的设计和配置,能够实现消息的顺序消费。接下来,我…

【算法题】算法一本通

每周更新至完结,建议关注收藏点赞。 目录 待整理文章已整理的文章方法论思想总结模版工具总结排序 数组与哈希表栈双指针(滑动窗口、二分查找、链表)树前缀树堆 优先队列(区间/间隔问题、贪心 )回溯图一维DP位操作数学…

Modbus转Ethernet IP赋能挤出吹塑机智能监控

在现代工业自动化领域,小疆智控Modbus转Ethernet IP网关GW-EIP-001与挤出吹塑机的应用越来越广泛。这篇文章将为您详细解读这两者的结合是如何提高生产效率,降低维护成本的。首先了解什么是Modbus和Ethernet IP。Modbus是一种串行通信协议,它…

什么是终端安全管理系统(终端安全管理软件2024科普)

在当今数字化迅速发展的时代,企业面临着越来越多的信息安全威胁。为了应对这些挑战,保障公司数据的安全性和完整性,终端安全管理系统(Endpoint Security Management System)应运而生。 本文将为您深入浅出地科普2024年…

【JVM】Java类加载机制

【JVM】Java类加载机制 什么是类加载? 在 Java 的世界里,每一个类或接口在经过编译后,都会生成对应的 .class 字节码文件。 所谓类加载机制,就是 JVM 将这些 .class 文件中的二进制数据加载到内存中,并对其进行校验…

《C++初阶之入门基础》【C++的前世今生】

【C的前世今生】目录 前言:---------------起源---------------一、历史背景二、横空出世---------------发展---------------三、标准立世C98:首个国际标准版本C03:小修订版本 四、现代进化C11:现代C的开端C14:对C11的…

Apache APISIX

目录 Apache APISIX是什么? Lua Lua 的主要特点: Lua 的常见应用: CVE-2020-13945(Apache APISIX默认API Token导致远程Lua代码执行) ​编辑Lua脚本解析 CVE-2021-45232(Apache APISIX Dashboard API权限绕过导致RCE) Apache …

如何在 git dev 中创建合并请求

先将 自己的代码 推到 自己的远程的 分支上 在 创建 合并请求 根据提示 将 自己的远程的 源码 合并到 对应的分支上 然后 创建 合并请求 等待 对应的 人 来 进行合并就行

基于nlohmann/json 实现 从C++对象转换成JSON数据格式

C对象的JSON序列化与反序列化 基于JsonCpp库实现C对象序列化与反序列化 JSON 介绍 JSON作为一种轻量级的数据交换格式,在Web服务和应用程序中广泛使用。 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读…

《T/CI 404-2024 医疗大数据智能采集及管理技术规范》全面解读与实施分析

规范背景与详细信息 《T/CI 404-2024 医疗大数据智能采集及管理技术规范》是由中国国际科技促进会联合河南科技大学、河南科技大学第一附属医院、深圳市人民医院等十余家医疗机构与企业共同制定的团体标准,于2024年5月正式发布实施。该规范是我国医疗大数据领域的重要技术标准…

国产三维CAD皇冠CAD在「金属压力容器制造」建模教程:蒸汽锅炉

面对蒸汽锅炉设计中复杂的曲面封头、密集的管板开孔、多变的支撑结构以及严格的强度与安全规范(如GB150、ASME等),传统二维设计手段往往捉襟见肘,易出错、效率低、协同难。国产三维CAD皇冠CAD(CrownCAD)凭借…

C++中单例模式详解

在C中,单例模式 (Singleton Pattern) 确保一个类只有一个实例,并提供一个全局访问点来获取这个实例。这在需要一个全局对象来协调整个系统行为的场景中非常有用。 为什么要有单例模式? 在许多项目中,某些类从逻辑上讲只需要一个实…

舆情监控系统爬虫技术解析

之前我已经详细解释过爬虫在系统中的角色和技术要点,这次需要更聚焦“如何实现”这个动作。 我注意到上次回复偏重架构设计,这次应该拆解为更具体的操作步骤:从目标定义到数据落地的完整流水线。尤其要强调动态调度这个容易被忽视的环节——…

Vue3中Ant-design-vue的使用-附完整代码

前言 首先介绍一下什么是Ant-design-vue Ant Design Vue 是基于 Vue 3 的企业级 UI 组件库(同时兼容 Vue 2),是蚂蚁金服开源项目 Ant Design 的 Vue 实现版本。它遵循 Ant Design 的设计规范,提供丰富的组件和高质量的设计体系&…