# PoJie

<div align="center">

[![License](https://img.shields.io/badge/License-MIT-blue.svg)](https://gitee.com/dromara/RuoYi-Vue-Plus/blob/5.X/LICENSE)
[![Spring Boot](https://img.shields.io/badge/Spring%20Boot-3.4.7-brightgreen.svg)](https://spring.io/projects/spring-boot)
[![JDK-17](https://img.shields.io/badge/JDK-17-green.svg)](https://openjdk.org/projects/jdk/17/)
[![JDK-21](https://img.shields.io/badge/JDK-21-green.svg)](https://openjdk.org/projects/jdk/21/)
[![MyBatis-Plus](https://img.shields.io/badge/MyBatis--Plus-3.5.12-blue.svg)](https://baomidou.com/)
[![Sa-Token](https://img.shields.io/badge/Sa--Token-1.44.0-orange.svg)](https://sa-token.cc/)
[![LangChain4j](https://img.shields.io/badge/LangChain4j-0.36.2-purple.svg)](https://github.com/langchain4j/langchain4j)
[![Spring AI](https://img.shields.io/badge/Spring%20AI-1.0.0--M5-green.svg)](https://spring.io/projects/spring-ai)


*集成多种AI框架，提供统一的AI服务管理平台*

[在线预览](#) · [使用文档](#) · [更新日志](#)

</div>

## 📖 平台简介

**PoJie** 是一款基于 **Spring Boot 3.4.7** + **JDK 17/21** 的AI增强企业级快速开发平台，在 RuoYi-Vue-Plus 的基础上深度集成了多种AI框架和服务，打造统一的AI服务管理平台。

### 🎯 核心特色

- 🤖 **统一AI服务**：集成Spring AI、LangChain4j等主流AI框架，提供统一的AI服务接口
- 🔌 **多Provider支持**：支持OpenAI、ChatGLM、通义千问、智谱AI等多种AI服务提供商
- 💬 **智能对话**：支持单轮对话、多轮对话、流式响应和记忆管理
- 📚 **知识库集成**：内置知识库服务，支持RAG（检索增强生成）
- ⚖️ **智能编排**：多Provider负载均衡、故障转移和智能路由
- 🛡️ **高可用性**：熔断器保护、限流控制、健康检查和自动重试
- 📊 **AI监控**：实时性能监控、使用统计分析、成本追踪和质量评估
- 🔐 **权限管理**：使用Sa-Token实现权限控制，支持多种认证方式
- 🔗 **第三方登录**：集成JustAuth支持微信、钉钉等多种第三方认证
- 💾 **数据库支持**：原生支持MySQL、Oracle、PostgreSQL、SQLServer等主流数据库
- 🚀 **缓存优化**：使用Redisson作为Redis客户端，提供更丰富的分布式功能
- 📈 **监控体系**：集成Spring Boot Admin，实现全方位监控
- 🛠️ **代码生成**：提供智能化代码生成工具，支持多数据源
- 💰 **支付集成**：内置支付宝、微信支付等主流支付方式

## 功能特性

### AI核心模块
- **统一AI服务**：作为系统的AI大脑，统一管理和编排所有AI Provider
- **多框架集成**：支持Spring AI、LangChain4j等主流AI框架
- **智能对话**：单轮对话、多轮对话、流式响应、记忆管理
- **知识库服务**：内置知识库，支持RAG检索增强生成
- **AI Provider管理**：支持OpenAI、ChatGLM、通义千问、智谱AI等多种服务商
- **智能编排**：负载均衡、故障转移、智能路由、并行处理
- **AI监控**：实时性能监控、使用统计、成本追踪、质量评估

### 系统核心模块
- **系统管理（ruoyi-system）**：用户、角色、菜单、部门、字典等基础管理功能
- **移动端模块（ruoyi-app）**：支持Web和移动端用户统一管理，提供移动端专用API
- **权限控制**：基于Sa-Token的多维度权限管理体系，支持RBAC权限模型
- **工作流（ruoyi-workflow）**：支持复杂的审批流程管理（Warm-Flow工作流引擎）
- **文件存储**：集成MinIO实现分布式文件存储，支持多种OSS存储方式
- **消息推送**：支持WebSocket和SSE实时消息推送
- **聊天系统（ruoyi-chat）**：完整的聊天功能，支持AI助手集成、会话管理、消息历史

### 业务模块
- **商城模块（ruoyi-mall）**：完整的电商业务模块
  - 商品中心：商品、SKU、分类、品牌、属性管理
  - 交易中心：购物车、订单、售后管理
  - 营销中心：活动、拼团、秒杀、砍价
  - 优惠券中心：优惠券发放、核销、过期处理
  - 统计中心：交易分析、会员分析
- **支付模块（ruoyi-pay）**：集成支付宝、微信支付等主流支付方式
- **微信公众号（ruoyi-mp）**：微信公众号开发支持

### 开发工具
- **代码生成器**：根据表结构一键生成CRUD代码
- **Excel处理**：基于FastExcel实现高效的Excel操作
- **日志监控**：完整的操作日志和登录日志记录
- **接口文档**：使用SpringDoc自动生成API文档
- **AI开发工具**：LangChain4j集成工具、AI服务测试工具

### 安全特性
- **数据脱敏**：敏感信息自动脱敏处理
- **数据加密**：支持多种加密算法保障数据安全
- **接口安全**：动态AES+RSA加密传输
- **防重提交**：分布式环境下防重复提交
- **XSS防护**：内置跨站脚本攻击防护
- **AI安全**：API密钥安全管理、AI服务访问控制

### 运维支持
- **多数据源管理**：支持动态切换不同数据库
- **邮件服务**：集成邮件发送功能
- **短信服务**：支持多种短信平台
- **定时任务**：分布式任务调度系统（SnailJob）
- **系统监控**：实时监控服务状态和性能指标
- **AI运维**：AI服务健康检查、性能监控、故障告警

## 🏗️ 技术架构

### 核心技术栈

| 分类 | 技术 | 版本 | 说明 |
|------|------|------|------|
| **基础框架** | Spring Boot | 3.4.7 | 核心框架 |
| **开发环境** | JDK | 17/21 | Java开发环境 |
| **Web容器** | Undertow | - | 高性能Web容器 |
| **权限认证** | Sa-Token | 1.44.0 | 轻量级权限框架 |
| **ORM框架** | MyBatis-Plus | 3.5.12 | 持久层框架 |
| **缓存中间件** | Redisson | 3.50.0 | Redis客户端 |
| **数据库连接池** | HikariCP | - | 高性能连接池 |
| **工具类库** | Hutool | 5.8.38 | Java工具包 |
| **API文档** | SpringDoc | 2.8.8 | OpenAPI 3.0 |
| **Excel处理** | FastExcel | 1.2.0 | 高性能Excel |
| **第三方登录** | JustAuth | 1.16.7 | 第三方认证 |
| **工作流引擎** | Warm-Flow | 1.7.4 | 国产工作流 |
| **任务调度** | SnailJob | 1.5.0 | 分布式任务 |
| **对象映射** | MapStruct Plus | 1.4.8 | 对象转换 |
| **监控管理** | Spring Boot Admin | 3.4.7 | 应用监控 |

### AI技术栈

| 分类 | 技术 | 版本 | 说明 |
|------|------|------|------|
| **AI框架** | Spring AI | 1.0.0-M5 | Spring官方AI框架 |
| **AI框架** | LangChain4j | 0.36.2 | Java版LangChain |
| **AI服务** | OpenAI | - | GPT系列模型 |
| **AI服务** | Azure OpenAI | - | Azure托管OpenAI |
| **AI服务** | ChatGLM | - | 智谱AI对话模型 |
| **AI服务** | 通义千问 | - | 阿里云大语言模型 |
| **AI服务** | 智谱AI | - | 智谱AI平台 |
| **AI平台** | Coze | 0.4.2 | 字节跳动AI Bot |
| **AI平台** | Dify | 1.1.7 | 开源LLM应用平台 |
| **HTTP客户端** | OkHttp | 4.12.0 | AI服务HTTP客户端 |

### 数据库支持

| 数据库 | 支持情况 | 说明 |
|--------|----------|------|
| MySQL | ✅ 原生支持 | 主要推荐 |
| Oracle | ✅ 原生支持 | 企业级 |
| PostgreSQL | ✅ 原生支持 | 开源数据库 |
| SQL Server | ✅ 原生支持 | 微软数据库 |
| 达梦数据库 | ✅ 支持 | 国产数据库 |
| 金仓数据库 | ✅ 支持 | 国产数据库 |

## 🚀 快速开始

### 环境要求

- **JDK**: 17+ (推荐 JDK 21) **⚠️ 必须使用JDK 17+**
- **Maven**: 3.6+
- **MySQL**: 5.7+ / 8.0+
- **Redis**: 5.0+
- **Node.js**: 16+ (前端开发)
- **AI服务**: OpenAI API Key 或其他AI服务商密钥

### 安装步骤

#### 1. 克隆项目

```bash
# 克隆仓库（示例）
git clone https://gitee.com/pengles/PoJie.git
cd PoJie
```

#### 2. 数据库初始化

**方式一：使用 MySQL 命令行**

```sql
-- 1. 创建数据库
CREATE DATABASE ruoyi_vue_plus DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
USE ruoyi_vue_plus;

-- 2. 导入数据库脚本（按顺序执行，路径相对于项目根目录）
SOURCE script/sql/ry_vue.sql;           -- 基础脚本（必须）
SOURCE script/sql/ry_ai.sql;            -- AI模块脚本（如使用AI功能）
SOURCE script/sql/ry_chat.sql;          -- 聊天模块脚本（如使用聊天功能）
SOURCE script/sql/ry_knowledge.sql;     -- 知识库脚本（如使用知识库功能）
SOURCE script/sql/ry_workflow.sql;      -- 工作流脚本（如使用工作流功能）
SOURCE script/sql/ry_mall.sql;          -- 商城脚本（如使用商城功能）
SOURCE script/sql/ry_pay.sql;           -- 支付脚本（如使用支付功能）
SOURCE script/sql/ry_app.sql;           -- 移动端脚本（如使用移动端功能）
SOURCE script/sql/ry_job.sql;           -- 定时任务脚本（如使用定时任务）
```

**方式二：使用图形化工具（Navicat、DBeaver、DataGrip 等）**

1. 创建数据库 `ruoyi_vue_plus`，字符集选择 `utf8mb4`，排序规则选择 `utf8mb4_general_ci`
2. 按顺序执行 `script/sql/` 目录下的 SQL 文件：
   - `ry_vue.sql`（必须，基础脚本）
   - `ry_ai.sql`（如使用 AI 功能）
   - `ry_chat.sql`（如使用聊天功能）
   - `ry_knowledge.sql`（如使用知识库功能）
   - `ry_workflow.sql`（如使用工作流功能）
   - `ry_mall.sql`（如使用商城功能）
   - `ry_pay.sql`（如使用支付功能）
   - `ry_app.sql`（如使用移动端功能）
   - `ry_job.sql`（如使用定时任务）

> **注意**：
> - `ry_vue.sql` 为基础脚本，必须最先执行
> - 其他脚本根据实际使用的功能模块选择执行
> - 建议在生产环境执行前先备份数据库

#### 3. 配置AI服务

**重要：配置AI服务API密钥**

```bash
# 设置环境变量（推荐方式）
# Windows
set OPENAI_API_KEY=your-openai-api-key
set ZHIPU_API_KEY=your-zhipu-api-key
set QWEN_API_KEY=your-qwen-api-key

# Linux/Mac
export OPENAI_API_KEY=your-openai-api-key
export ZHIPU_API_KEY=your-zhipu-api-key
export QWEN_API_KEY=your-qwen-api-key
```

#### 4. 修改配置文件

编辑 `ruoyi-server/src/main/resources/application-dev.yml`：

**基础配置（必须）**

```yaml
spring:
  # 数据源配置
  datasource:
    dynamic:
      primary: master
      datasource:
        master:
          url: jdbc:mysql://localhost:3306/ruoyi_vue_plus?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&useSSL=false&allowPublicKeyRetrieval=true
          username: root
          password: your_password
          driver-class-name: com.mysql.cj.jdbc.Driver
          
  # Redis配置
  data:
    redis:
      host: localhost
      port: 6379
      password: # 如有密码请填写
      database: 0
      timeout: 10s
      lettuce:
        pool:
          max-active: 8
          max-wait: -1ms
          max-idle: 8
          min-idle: 0
```

**AI服务配置（可选，如使用AI功能）**

```yaml
# AI模块配置（application-ai.yml 或 application-dev.yml）
ruoyi:
  ai:
    enabled: true
    default-provider: openai  # 默认AI提供商：openai、zhipu、qwen、chatglm等
    providers:
      openai:
        enabled: true
        api-key: ${OPENAI_API_KEY:your-openai-api-key}
        base-url: https://api.openai.com/v1
        model: gpt-3.5-turbo
        temperature: 0.7
        max-tokens: 2000
      zhipu:
        enabled: false
        api-key: ${ZHIPU_API_KEY:}
        base-url: https://open.bigmodel.cn/api/paas/v4
        model: glm-4
      qwen:
        enabled: false
        api-key: ${QWEN_API_KEY:}
        base-url: https://dashscope.aliyuncs.com/compatible-mode/v1
        model: qwen-turbo
```

> **配置说明**：
> - 数据库密码和Redis密码建议使用环境变量配置
> - AI服务的API密钥强烈建议使用环境变量配置，避免泄露
> - 更多配置项请参考 `application.yml` 和 `application-ai.yml` 文件
> - 各模块的详细配置请参考对应模块的 README 文档

#### 5. 启动应用

**方式一：Maven启动（推荐用于开发）**

```bash
# 进入项目根目录
cd PoJie

# 编译项目
mvn clean compile

# 启动应用
mvn spring-boot:run -pl ruoyi-server -am

# 或使用简化命令
mvn -q -pl ruoyi-server -am spring-boot:run -DskipTests
```

**方式二：IDE启动（推荐用于开发调试）**

1. 使用 IDEA 或 Eclipse 导入 Maven 项目
2. 找到 `ruoyi-server/src/main/java/org/dromara/RuoYiApplication.java`
3. 右键运行 `main` 方法
4. 或配置运行配置，设置工作目录为 `ruoyi-server`

**方式三：JAR包启动（推荐用于生产）**

```bash
# 进入项目根目录
cd PoJie

# 打包（跳过测试）
mvn clean package -DskipTests

# 启动JAR包
java -jar ruoyi-server/target/ruoyi-server.jar

# 或指定配置文件
java -jar ruoyi-server/target/ruoyi-server.jar --spring.profiles.active=prod

# 后台启动（Linux）
nohup java -jar ruoyi-server/target/ruoyi-server.jar > app.log 2>&1 &
```

**方式四：Docker启动（推荐用于生产）**

```bash
# 使用Docker Compose启动（包含MySQL、Redis等）
cd script/docker
docker-compose up -d

# 构建应用镜像（需要Dockerfile）
docker build -t pojie:latest .
docker run -d -p 8080:8080 --name pojie pojie:latest
```

> **启动注意事项**：
> - 确保 MySQL 和 Redis 服务已启动
> - 检查端口 8080 是否被占用
> - 查看启动日志确认服务启动成功
> - 如遇到端口冲突，可在配置文件中修改 `server.port`

#### 6. 访问系统

启动成功后，访问以下地址：

| 服务 | 地址 | 说明 |
|------|------|------|
| **系统首页** | http://localhost:8080 | 系统入口（需要前端配合） |
| **API文档（Swagger）** | http://localhost:8080/swagger-ui/index.html | Swagger UI 接口文档 |
| **API文档（Knife4j）** | http://localhost:8080/doc.html | Knife4j 增强文档（如已集成） |
| **监控中心** | http://localhost:8080/admin | Spring Boot Admin 监控 |
| **健康检查** | http://localhost:8080/actuator/health | Spring Boot Actuator |
| **AI服务健康检查** | http://localhost:8080/ai/health | AI模块健康状态（如启用） |
| **LangChain4j服务** | http://localhost:8080/ai/langchain4j/health | LangChain4j服务状态（如启用） |

**默认登录账号**：
- 用户名：`admin`
- 密码：`admin123`

> **注意**：首次登录后建议立即修改默认密码

#### 7. 验证AI功能（可选）

如果已配置AI服务，可以通过以下方式验证：

1. **测试AI聊天接口**：
   ```bash
   curl -X POST http://localhost:8080/ai/chat \
     -H "Content-Type: application/json" \
     -H "Authorization: Bearer your-token" \
     -d '{"message": "你好，请介绍一下自己"}'
   ```

2. **查看支持的AI模型列表**：
   ```bash
   curl http://localhost:8080/ai/models
   ```

3. **检查AI服务健康状态**：
   访问 http://localhost:8080/ai/health

4. **通过API文档测试**：
   访问 Swagger UI 或 Knife4j 文档，找到AI相关接口进行测试

## 💡 使用示例

### AI服务开发

#### 统一AI服务接口
- 提供统一的AI聊天接口，支持多种AI Provider
- 支持同步和异步（流式）响应模式
- 集成请求验证和响应封装
- 支持多模型切换和配置管理

#### LangChain4j服务使用
- 单轮对话：直接调用AI模型进行问答
- 带记忆的对话：支持上下文记忆的连续对话
- 流式对话：实时返回AI生成内容
- 模型管理：获取和切换支持的AI模型

### 移动端API开发
- 移动端用户登录和认证
- 用户信息管理和权限控制
- 移动端专用的API接口设计
- 支持多种登录方式（账号密码、第三方登录等）


### 分布式文件存储
- 支持多种文件存储方式（本地、阿里云OSS、腾讯云COS、七牛云等）
- 提供统一的文件上传和下载接口
- 支持文件预览和在线编辑
- 集成文件安全检查和病毒扫描

### 实时消息推送
- 基于SSE（Server-Sent Events）的实时消息推送
- 支持用户连接管理和消息广播
- 集成WebSocket支持双向通信
- 提供消息队列和持久化存储

### 多数据源支持
- 支持动态数据源切换和管理
- 提供主从数据库读写分离
- 支持分布式事务处理
- 集成数据源监控和健康检查

### 权限控制
- 基于Sa-Token的轻量级权限框架
- 支持RBAC权限模型
- 提供细粒度的权限控制
- 集成操作日志和审计功能

## 📁 项目结构

```
PoJie/
├── ruoyi-common/                          # 公共模块
│   ├── ruoyi-common-bom/                  # BOM依赖管理
│   ├── ruoyi-common-core/                 # 核心工具类
│   ├── ruoyi-common-doc/                  # 接口文档配置（SpringDoc）
│   ├── ruoyi-common-excel/                # Excel处理（FastExcel）
│   ├── ruoyi-common-mybatis/              # MyBatis-Plus配置
│   ├── ruoyi-common-redis/                # Redis配置（Redisson）
│   ├── ruoyi-common-satoken/              # 权限认证（Sa-Token）
│   ├── ruoyi-common-oss/                  # 对象存储（MinIO/OSS）
│   ├── ruoyi-common-sms/                  # 短信服务
│   ├── ruoyi-common-mail/                 # 邮件服务
│   ├── ruoyi-common-websocket/            # WebSocket支持
│   ├── ruoyi-common-sse/                  # SSE服务器推送
│   ├── ruoyi-common-encrypt/              # 数据加密
│   ├── ruoyi-common-idempotent/           # 幂等性控制
│   ├── ruoyi-common-ratelimiter/          # 限流控制
│   ├── ruoyi-common-log/                  # 日志记录
│   ├── ruoyi-common-security/             # 安全配置
│   ├── ruoyi-common-sensitive/            # 敏感数据脱敏
│   ├── ruoyi-common-social/               # 第三方登录（JustAuth）
│   ├── ruoyi-common-translation/          # 数据翻译
│   ├── ruoyi-common-web/                  # Web通用配置
│   ├── ruoyi-common-json/                 # JSON处理
│   └── ruoyi-common-job/                  # 任务调度
├── ruoyi-modules/                         # 业务模块
│   ├── ruoyi-system/                      # 系统管理模块
│   ├── ruoyi-member/                      # 移动端模块
│   ├── ruoyi-chat/                        # 聊天模块
│   ├── ruoyi-ai/                          # AI核心模块
│   ├── ruoyi-knowledge/                   # 知识库模块
│   ├── ruoyi-workflow/                    # 工作流模块（Warm-Flow）
│   ├── ruoyi-mall/                        # 商城模块（聚合模块）
│   │   ├── ruoyi-mall-product/            # 商品中心
│   │   ├── ruoyi-mall-trade/              # 交易中心
│   │   ├── ruoyi-mall-coupon/             # 优惠券中心
│   │   ├── ruoyi-mall-promotion/          # 营销中心
│   │   └── ruoyi-mall-statistics/         # 统计中心
│   ├── ruoyi-pay/                         # 支付模块
│   ├── ruoyi-generator/                   # 代码生成器
│   ├── ruoyi-job/                         # 定时任务模块（SnailJob）
│   └── ruoyi-mp/                          # 微信公众号模块
├── ruoyi-extend/                          # 扩展模块
│   ├── ruoyi-monitor-admin/               # 监控中心（Spring Boot Admin）
│   └── ruoyi-snailjob-server/             # 分布式任务调度服务端
├── ruoyi-server/                          # 服务启动模块
│   ├── src/main/java/
│   │   └── org/dromara/
│   │       └── RuoYiApplication.java      # 启动类
│   └── src/main/resources/
│       ├── application.yml                # 主配置文件
│       ├── application-dev.yml            # 开发环境配置
│       ├── application-prod.yml           # 生产环境配置
│       └── application-ai.yml             # AI模块配置
├── script/                                # 脚本文件
│   ├── sql/                               # 数据库脚本
│   │   ├── ry_vue.sql                    # 基础数据库脚本（必须）
│   │   ├── ry_ai.sql                     # AI模块数据库脚本
│   │   ├── ry_chat.sql                   # 聊天模块数据库脚本
│   │   ├── ry_knowledge.sql              # 知识库模块数据库脚本
│   │   ├── ry_workflow.sql               # 工作流模块数据库脚本
│   │   ├── ry_mall.sql                   # 商城模块数据库脚本
│   │   ├── ry_pay.sql                    # 支付模块数据库脚本
│   │   ├── ry_app.sql                    # 移动端模块数据库脚本
│   │   └── ry_job.sql                    # 定时任务数据库脚本
│   ├── docker/                            # Docker配置
│   │   ├── docker-compose.yml            # Docker Compose配置
│   │   ├── database.yml                  # 数据库Docker配置
│   │   └── redis/                        # Redis配置
│   └── bin/                               # 启动脚本
└── docs/                                  # 项目文档（可选）
    ├── AI_INTEGRATION_GUIDE.md            # AI集成指南
    ├── LANGCHAIN4J_INTEGRATION_GUIDE.md   # LangChain4j集成指南
    └── DEPLOYMENT_GUIDE.md                # 部署指南
```

## 🔧 开发指南

### 环境配置

1. **开发环境**
   - JDK 17+ (必须)
   - Maven 3.6+
   - MySQL 8.0+
   - Redis 6.0+
   - Node.js 16+
2. **AI服务配置**
   - OpenAI API Key (推荐)
   - 智谱AI API Key (可选)
   - 通义千问API Key (可选)
   - Azure OpenAI配置 (可选)

### AI模块开发

#### 1. 添加新的AI Provider
- 实现AiProvider接口，定义Provider名称和核心方法
- 添加@Component注解和条件配置注解
- 实现chat()和streamChat()方法
- 处理请求参数和响应格式

#### 2. 配置新Provider
- 在application.yml中添加Provider配置
- 设置enabled、api-key、base-url、model等参数
- 支持环境变量和配置文件两种方式

#### 3. LangChain4j扩展开发
- 注入ChatLanguageModel进行AI对话
- 实现自定义聊天服务和流式响应
- 支持记忆管理和上下文处理
- 集成监控和异常处理机制

### 代码生成器使用

1. 访问系统管理 -> 代码生成
2. 选择要生成的数据表
3. 配置生成信息
4. 下载生成的代码

### 新增业务模块

1. 在 `ruoyi-modules` 下创建新模块
2. 添加模块依赖到主pom.xml
3. 配置模块的Controller、Service、Mapper
4. 添加相应的权限配置

### 代码规范

- 遵循阿里巴巴Java开发手册
- 使用统一的代码格式化配置
- 添加必要的单元测试
- 更新相关文档
- AI相关代码需要添加详细的使用说明

### 数据库设计

- 统一的表前缀和命名规范
- 合理的索引设计
- 数据字典维护
- AI相关表结构设计规范：
  - `ai_*` 表前缀用于AI核心功能
  - `chat_*` 表前缀用于聊天相关
  - `knowledge_*` 表前缀用于知识库

### API文档规范

使用 `@Operation`、`@Tag`、`@Parameter` 等注解标注API信息：

```java
@Tag(name = "用户管理")
@RestController
public class UserController {
    
    @Operation(summary = "获取用户信息", description = "根据用户ID获取用户详细信息")
    @GetMapping("/{id}")
    public R<UserVo> getUser(@Parameter(description = "用户ID") @PathVariable Long id) {
        return R.ok(userService.getById(id));
    }
}
```

## 🤝 贡献指南

我们欢迎所有形式的贡献，包括但不限于：

- 🐛 **Bug报告**：发现问题请提交Issue
- 💡 **功能建议**：有好的想法请告诉我们
- 📝 **文档改进**：帮助完善文档
- 🔧 **代码贡献**：提交Pull Request
- 🤖 **AI Provider集成**：添加新的AI服务提供商
- 🧠 **AI算法优化**：改进AI服务性能和质量
- 📚 **知识库功能扩展**：增强RAG和知识管理功能

### 贡献流程

1. Fork 本仓库
2. 创建特性分支 (`git checkout -b feature/AmazingFeature`)
3. 提交更改 (`git commit -m 'Add some AmazingFeature'`)
4. 推送到分支 (`git push origin feature/AmazingFeature`)
5. 开启 Pull Request

### AI相关贡献指南

#### 新增AI Provider

1. **实现Provider接口**
   - 继承AiProvider接口并实现所有必要方法
   - 定义Provider名称和基本配置

2. **添加配置类**
   - 创建配置属性类，使用@ConfigurationProperties注解
   - 定义API密钥、基础URL、模型等配置项

3. **编写单元测试**
   - 为新Provider编写完整的单元测试
   - 测试聊天功能、流式响应、异常处理等

4. **更新文档**
   - 在 `docs/AI_INTEGRATION_GUIDE.md` 中添加使用说明
   - 更新 `README.md` 中的支持列表

#### LangChain4j扩展贡献

1. **扩展现有功能**
   - 添加新的模型支持
   - 优化对话记忆管理
   - 增强流式响应处理

2. **性能优化**
   - 连接池优化
   - 缓存策略改进
   - 异步处理优化

### 代码规范

- 遵循阿里巴巴Java开发手册
- 使用统一的代码格式化配置
- 添加必要的单元测试
- 更新相关文档
- AI相关代码需要包含详细的JavaDoc注释
- 提供配置示例和使用说明

## 📞 联系我们

- **项目地址**：https://gitee.com/pengles/PoJie
- **问题反馈**：https://gitee.com/pengles/PoJie/issues
- **QQ交流群**：待建立
- **微信交流群**：待建立

🌟 **开源精神让我们共同进步，感谢每一位开发者的贡献和分享！**

## 📄 许可证

本项目采用 [MIT 许可证](./LICENSE)，详见 LICENSE 文件。

---

<div align="center">

**如果这个项目对你有帮助，请给个 ⭐ Star 支持一下！**

Made with ❤️ by PoJie Team

</div>
