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 上下文