Skip to content

AI 插件(forge-plugin-ai)

AI 能力插件,集成 Spring AI,支持多 AI 提供商(通义千问、OpenAI、智谱、月之暗面等),提供 Agent 管理、Chat 会话和流式 SSE 响应。

快速开始

1. 引入依赖

xml
<dependency>
    <groupId>com.mdframe.forge</groupId>
    <artifactId>forge-plugin-ai</artifactId>
</dependency>

2. 配置 AI 提供商

ai_provider 表中添加提供商配置:

字段说明
provider_name提供商名称
provider_type类型(openai / azure / dashscope / ollama)
api_keyAPI Key
base_urlAPI 基础地址
models支持的模型列表(JSON)
default_model默认模型
is_default是否为默认提供商

支持的平台

提供商provider_type说明
通义千问(DashScope)dashscope阿里大模型
OpenAIopenaiGPT-4/GPT-3.5
智谱 AIopenai兼容 OpenAI 接口
月之暗面openai兼容 OpenAI 接口
Ollamaollama本地部署模型
Azure OpenAIazureAzure 托管 OpenAI

核心功能

Agent 管理

Agent 是预配置了系统提示词和模型的 AI 助手:

数据库表ai_agent

字段说明
agent_nameAgent 名称
agent_codeAgent 编码(唯一标识)
description描述
system_prompt系统提示词
provider_id关联的提供商 ID
model_name使用的模型
temperature温度参数(0~1)
max_tokens最大输出 Token 数
extra_config额外配置(JSON)
status状态

Chat 会话

流式对话

java
@Autowired
private AiChatService aiChatService;

// 流式 Chat(返回 Flux<String>)
Flux<String> stream = aiChatService.chatStream(
    "你好,请帮我分析一下这个数据",
    "data-analyst",    // agentCode
    sessionId,         // 可为空,为空时自动创建
    userId,
    null,              // providerId(null 时使用 Agent 默认配置)
    null,              // modelName
    null,              // temperature
    null,              // maxTokens
    null,              // projectName
    null               // canvasContext
);

参数解析优先级

所有 Chat 参数都遵循以下回退链:

显式传入 > Agent 配置 > 提供商配置 > 默认值

多轮上下文

DbChatMemory 实现了 Spring AI 的 ChatMemory 接口,基于数据库 ai_chat_record 表存储对话历史,默认保留最近 20 条消息作为上下文。

Dashboard 生成

java
// 非流式
String dashboard = aiChatService.generateDashboard(AIGenerateRequest);

// 流式
Flux<String> stream = aiChatService.generateDashboardStream(AIGenerateRequest);

REST API

Chat 接口

方法路径说明
POST/api/ai/chat/stream流式对话(SSE)
POST/api/ai/dashboard生成 Dashboard
POST/api/ai/dashboard/stream流式生成 Dashboard

Agent 管理

方法路径说明
GET/api/ai/agent/page分页查询 Agent
GET/api/ai/agent/{id}获取 Agent 详情
POST/api/ai/agent创建 Agent
PUT/api/ai/agent更新 Agent
DELETE/api/ai/agent/{id}删除 Agent

Provider 管理

方法路径说明
GET/api/ai/provider/page分页查询 Provider
GET/api/ai/provider/{id}获取 Provider 详情
POST/api/ai/provider创建 Provider
PUT/api/ai/provider更新 Provider
DELETE/api/ai/provider/{id}删除 Provider

数据库表

表名说明
ai_providerAI 提供商配置
ai_agentAI Agent 配置
ai_chat_sessionChat 会话
ai_chat_recordChat 消息记录

核心组件

组件说明
AiChatService核心 Chat 服务,支持流式/非流式、Dashboard 生成
AiChatRecordServiceChat 记录持久化
AiChatSessionService会话管理(getOrCreate)
DbChatMemory基于数据库的 Chat Memory(实现 Spring AI ChatMemory
AiPromptTemplateRendererDashboard 系统提示词渲染
AiAgentServiceAgent 管理服务
AiProviderServiceProvider 管理服务

DTO

ChatRequest

字段说明
content用户输入内容
agentCodeAgent 编码
sessionId会话 ID
providerId指定提供商 ID(覆盖 Agent 默认值)
modelName指定模型(覆盖默认值)
temperature温度参数
maxTokens最大 Token
projectName项目名称
canvasContextCanvas 上下文

AIGenerateRequest

字段说明
sessionId会话 ID
prompt提示词
style样式风格
canvasWidthCanvas 宽度
canvasHeightCanvas 高度
componentCatalog组件目录
projectName项目名称
canvasContextCanvas 上下文