传统业务对接AI-AI编程框架-Rasa的业务应用实战(1)--项目背景即学习初衷
我的初衷:我想学习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,如讯飞)。
相关文章:

传统业务对接AI-AI编程框架-Rasa的业务应用实战(1)--项目背景即学习初衷
我的初衷:我想学习AI。具体的方向是这样的:原本传统的平台业务去对接智能体。比如发票业务,发票的开具、审核、计税、回款等。根据用户在业务系统前台界面输入若干提示词 或者 语音输入简短语音信息,可以通过智能体给出需要处理的…...

低功耗架构突破:STM32H750 与 SD NAND (存储芯片)如何延长手环续航至 14 天
低功耗架构突破:STM32H750 与 SD NAND (存储芯片)如何延长手环续航至 14 天 卓越性能强化安全高效能效图形处理优势丰富集成特性 模拟模块实时监控保障数据完整性提升安全性与可靠性测量原理采样率相关结束语 在智能皮电手环及数据存储技术不…...
CSS选择子元素
通过选择器 为所有子元素应用样式。以下是几种常见方法: 1. 选择所有直接子元素(不包括孙级) css 复制 下载 .parent > * {/* 样式规则 */color: red; } > 选择器:只匹配直接子元素 * 通配符:匹配任意类型…...
git cherry-pick (28)
1.1 目的 本文档用于说明如何git上,通过cherry-pick命令合并某个功能。 将分支bg_device的 AHB New feature support libalgo arm64 lib 提交内容合并至 分支spfl_device 分支当中 1.2适配步骤 1.2.1 实操过程 > 分支sfpl_device的状态 rootxrootx-ThinkPad:~/workdir…...
android与Qt类比
一、概念对应关系 Android RecyclerView 组件类比描述Qt 模型 - 视图组件Qt 类比描述RecyclerView画板(容器)QAbstractItemView视图(展示数据的容器,如列表、表格)RecyclerView.Adapter画布(数据桥梁&…...
AX513CE 是一款针对模组渠道市场前端IPC应用而设计的数字SOC芯片 支持高清CMOS Sensor输入 国产品牌
AX513CE 是一款针对模组渠道市场前端IPC应用而设计的数字SOC芯片 支持高清CMOS Sensor输入 国产品牌 产品概述: AX513CE 是一款针对模组渠道市场前端IPC应用而设计的数字SOC芯片,支持高清CMOS Sensor输入,经ISP处理、视频前处理以及音视频编…...

Linux(11)——基础IO(上)
目录 一、理解文件 二、回顾C文件的接口 📄 C语言文件操作函数表 编辑📄 三个文件流 三、系统文件I/O 1️⃣open 2️⃣close 3️⃣write 4️⃣read 四、文件描述符 💡用户操作文件的底层逻辑是什么? Ǵ…...

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博客 项目之间的引用关系。 目…...
鸿蒙开发修改版本几个步骤
鸿蒙开发修改版本几个步骤 比如:5.0.4(16)版本改为5.0.2(14)版本 一、项目下的build-profile.json5 "products": [{"name": "default","signingConfig": "default&qu…...

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):展示特征之间的相互影响,能够追踪模型生成输出时所采用…...
3D视觉重构工业智造:解码迁移科技如何用“硬核之眼“重塑生产节拍
一、工业视觉的进化论:从CCD到3D相机的范式革命 在汽车冲压车间里,传统CCD相机正面临四大检测困局: 平面感知局限:二维视觉无法捕捉曲面工件形变环境适应性差:反光板件导致误检率超12%动态捕捉延迟:传送带…...
Elasticsearch中的刷新(Refresh)和刷新间隔介绍
在 Elasticsearch 中,刷新(Refresh) 是控制索引数据何时对搜索可见的机制,而 刷新间隔(Refresh Interval) 则是配置该机制执行频率的参数。理解这两个概念对于平衡搜索实时性与写入性能至关重要。 一、刷新(Refresh)的本质 Lucene 索引结构与搜索可见性Elasticsearch …...

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接线图…...
【算法训练营Day05】哈希表part1
文章目录 哈希表理论基础有效的字母异位词两个数组的交集快乐数两数之和 哈希表理论基础 几个值得关注的知识点: hash表用于快速的判断元素是否存在(空间换时间)其原理就是将数据通过散列函数映射到bucket中,如果发生hash碰撞&a…...
CMap应用场景和例子
CMap 详解 CMap 是 MFC (Microsoft Foundation Classes) 库中的一个模板类,用于实现键值对的映射关系(类似哈希表或字典)。它提供了高效的数据存储和检索功能,适用于需要通过键快速查找值的场景。 基本模板参数 cpp 运行 tem…...

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

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

Modbus转Ethernet IP赋能挤出吹塑机智能监控
在现代工业自动化领域,小疆智控Modbus转Ethernet IP网关GW-EIP-001与挤出吹塑机的应用越来越广泛。这篇文章将为您详细解读这两者的结合是如何提高生产效率,降低维护成本的。首先了解什么是Modbus和Ethernet IP。Modbus是一种串行通信协议,它…...
C++中如何遍历map?
文章目录 1. 使用范围for循环(C11及以上)2. 使用迭代器3. 使用反向迭代器注意事项 在C中, std::map 是一种关联容器,它存储的是键值对(key-value pairs),并且按键的顺序进行排序。遍历 std::m…...

什么是终端安全管理系统(终端安全管理软件2024科普)
在当今数字化迅速发展的时代,企业面临着越来越多的信息安全威胁。为了应对这些挑战,保障公司数据的安全性和完整性,终端安全管理系统(Endpoint Security Management System)应运而生。 本文将为您深入浅出地科普2024年…...
书籍转圈打印矩阵(8)0604
题目 给定一个整型矩阵matrix,请按照转圈的方式打印它。 例如: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 打印结果为:1,2,3ÿ…...

【JVM】Java类加载机制
【JVM】Java类加载机制 什么是类加载? 在 Java 的世界里,每一个类或接口在经过编译后,都会生成对应的 .class 字节码文件。 所谓类加载机制,就是 JVM 将这些 .class 文件中的二进制数据加载到内存中,并对其进行校验…...
Elasticsearch中的自定义分析器(Custom Analyzer)介绍
在 Elasticsearch 中,自定义分析器(Custom Analyzer) 是一种可配置的文本处理组件,允许用户通过组合分词器(Tokenizer)、过滤器(Token Filter)和字符过滤器(Character Filter)来定义特定的文本分析逻辑。这使得 Elasticsearch 能够针对不同语言、业务场景或特殊需求,…...

《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)是一种轻量级的数据交换格式,易于人阅读…...
Java枚举类映射MySQL的深度解析与实践指南
Java枚举类映射MySQL的深度解析与实践指南 一、枚举类型映射的四大核心策略 1. 序数映射法(ordinal映射) 实现原理:存储枚举值的下标顺序 public enum OrderStatus {PENDING, // 存储为0PROCESSING, // 存储为1SHIPPED, //…...
代码训练LeetCode(21)跳跃游戏2
代码训练(21)LeetCode之跳跃游戏2 Author: Once Day Date: 2025年6月4日 漫漫长路,才刚刚开始… 全系列文章可参考专栏: 十年代码训练_Once-Day的博客-CSDN博客 参考文章: 45. 跳跃游戏 II - 力扣(LeetCode)力扣 (LeetCode) 全球极客挚爱…...