# LiteFlow-AI-Example
**Repository Path**: LunaY77/LiteFlow-AI-Example
## Basic Information
- **Project Name**: LiteFlow-AI-Example
- **Description**: LiteFlow-AI-Example
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2025-11-10
- **Last Updated**: 2025-11-10
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# LiteFLow-AI-Example
## 什么是 LiteFlow-AI
LiteFlow-AI 是基于 LiteFlow 规则引擎框架的 AI 扩展模块,它将 AI 能力与 LiteFlow 强大的流程编排能力完美结合,为开发者提供了一种声明式、组件化的方式来构建 AI 应用。
**核心特性**:
- **注解驱动**:通过简洁的注解定义 AI 组件,无需编写大量样板代码
- **多模型支持**:支持主流 AI 模型提供商,如 OpenAI、DashScope、Ollama 等
- **流程编排**:利用 LiteFlow 的 EL 表达式轻松编排复杂的 AI 调用流程
- **流式与阻塞**:同时支持流式输出与阻塞调用,满足不同场景需求
- **工具调用**:内置工具调用机制,让 AI 能够调用你定义的函数
- **结构化输出**:支持将 AI 输出直接解析为 Java 对象
## 为什么选择 LiteFlow-AI
在构建 AI 应用时,你可能会遇到以下挑战:
1. **业务逻辑复杂**:需要将多个 AI 调用、数据处理、业务判断串联起来
2. **代码臃肿**:大量的条件判断和流程控制代码混杂在一起
3. **难以维护**:业务规则变化时需要修改大量代码
4. **可扩展性差**:添加新的 AI 能力或调整流程需要大量重构
**LiteFlow-AI 的解决方案**:
- **组件化**:将 AI 调用封装为独立组建,职责单一,易于测试和复用
- **规则驱动**:使用声明式的规则文件编排流程,业务逻辑一目了然
- **动态调整**:规则可以热刷新,业务流程调整无需重启服务
- **统一抽象**:屏蔽不同 AI 提供商的差异,切换成本低
## 快速开始
### 环境准备
- JDK 8 及以上版本
- SpringBoot 2.x 或 3.x
- Maven 或 Gradle 构建工具
### 依赖引入
#### Maven Bom 方式引入
1. 通过 bom 在包管理 pom 文件中引入
```xml
com.yomahub
liteflow-ai-bom
${liteflow.version}
pom
import
```
2. 在具体的业务模块中按需导入对应的依赖,比如假设你希望引入调用 DashScope模型 的能力:
```xml
com.yomahub
liteflow-ai-dashscope
```
#### Maven 传统方式引入
```xml
com.yomahub
liteflow-ai-ollama
2.16.0
com.yomahub
liteflow-ai-openai
2.16.0
com.yomahub
liteflow-ai-dashscope
2.16.0
```
#### Gradle 方式引入
```groovy
dependencies {
// 选择其中一个 AI 提供商的依赖
// Ollama
implementation 'com.yomahub:liteflow-ai-ollama:2.16.0'
// OpenAI
implementation 'com.yomahub:liteflow-ai-openai:2.16.0'
// 通义千问 DashScope
implementation 'com.yomahub:liteflow-ai-dashscope:2.16.0'
}
```
### 参数配置
需要在 `src/main/resources/application.yaml` 中配置 LiteFlow-AI 相关配置信息:
```yaml
liteflow:
rule-source: flow.el.xml
ai:
enable: true
base-packages: com.example.demo.node # 你的AI组件所在的包路径
```
如果你使用的是 DashScope 模型 或者 OpenAI 输出格式的模型,还需要配置 DashScope 或 OpenAI 的 API Key:
```yaml
liteflow:
ai:
dashscope:
api-key: your-dashscope-api-key
openai:
api-key: your-openai-api-key
```
---
## 组价介绍
LiteFlow-AI 中创建一个 AI 组件通过定义一个**接口类 + 注解**的方式来实现, 有如下的组织结构:
```java
@AIComponent(...)
@AIChat(...)
@AIInput(...)
@AIOutput(...)
public interface MyAICmp {}
```
共计 4 大注解类型:
1. `@AIComponent`:标记这是一个AI组件,并配置与AI模型厂商相关的基础信息,如API地址、模型名称、超时等。
2. `@AIChat` & `@AIClassify`:标记AI组件的具体任务类型。@AIChat 用于对话场景,@AIClassify 用于分类场景。
3. `@AIInput`:配置AI组件的输入,定义如何从LiteFlow上下文中提取数据并填充到Prompt模板中。
4. `@AIOutput`:配置AI组件的输出,定义如何将AI模型的返回结果(无论是文本还是结构化JSON)映射回LiteFlow上下文中。
当我们创建了一个接口并定义好这些注解后,就可以在LiteFlow的规则文件中直接引用这个AI组件, 对应的组件名称可以使用 AIComponent 中的 nodeId
设置,也可以使用默认值,即类名。假设我们定义了一个 nodeId 为 ai 的 aiCmp,那么规则文件与 LiteFlow 原生书写方式无异,如下所示:
```xml
THEN(ai);
```
-----
## LiteFlow-AI 基本介绍
[LiteFlow-AI 基本介绍](docs/1.LiteFlowAI基本介绍.md)
## HelloWorld To LiteFlow-AI
[HelloWorld To LiteFlow-AI](liteflow-ai-helloworld/README.md)
## LiteFlow-AI 流式调用
[LiteFlow-AI 流式调用](liteflow-ai-chat-stream/README.md)
## LiteFlow-AI 工具调用
[LiteFlow-AI 工具调用](liteflow-ai-tool-call/README.md)
## LiteFlow-AI 结构化输出
[LiteFlow-AI 结构化输出](liteflow-ai-structure-output/README.md)
## LiteFlow-AI 多轮对话
[LiteFlow-AI 多轮对话](liteflow-ai-chat-history/README.md)
## LiteFlow-AI 意图识别
[LiteFlow-AI 意图识别](liteflow-ai-classify/README.md)
## LiteFlow-AI ReactAgent
[LiteFlow-AI ReactAgent](liteflow-ai-react-agent/README.md)