AI 代理与 LLM 集成
VTJ.PRO 中的 AI 代理子系统为低代码平台提供了智能核心,支持 AI 辅助代码生成、图像到 DSL 转换以及基于聊天的交互式开发等功能。该系统设计为与提供商无关,支持多种大语言模型后端,同时为应用程序的其他部分提供统一的接口。

系统概述
AI 基础设施分为 LLM 管理 层(处理连接和模型元数据)和 代理编排 层(处理提示词、上下文和流式传输)。
核心组件与关系
下图展示了 AI 子系统如何通过编排各种服务,将自然语言需求桥接到代码实体空间。
AI 子系统架构
graph TD
subgraph Natural Language Space
User[User Prompt / Image]
TopicService["TopicService (Chat History)"]
end
subgraph Agent Orchestration Layer
AgentService[AgentService]
AIService["AIService (OpenAI Client)"]
PromptService["PromptService (Templates)"]
end
subgraph LLM Infrastructure
LLMModelService[LLMModelService]
LLMModelEntity["LLMModelEntity (DB)"]
CacheService["CacheService (Redis/Memory)"]
end
subgraph Code Entity Space
DslService["DslService (Low-code DSL)"]
Coder["@vtj/coder (Vue Gen)"]
end
User --> AgentService
AgentService --> PromptService
AgentService --> AIService
AgentService --> DslService
AIService --> LLMModelService
LLMModelService --> LLMModelEntity
LLMModelService --> CacheService
DslService --> Coder
LLM 模型管理与配置
VTJ.PRO 支持多种 LLM 提供商(例如 OpenAI、DeepSeek、本地模型)。模型通过 LLMPurpose 进行分类,例如用于逻辑生成的 Coder 或用于图像处理的 Multimodal。
- 提供商抽象 :
LLMModelEntity存储 API 密钥、基础 URL 和模型标识符。 - 缓存 :为确保请求编排期间的低延迟,
LLMModelService使用基于缓存的机制(getModels)来避免频繁的数据库查询。 - 专用检索 :系统提供了辅助方法,如
getCoderModels()和getMultiModel(),用于快速识别特定任务(例如生成 Vue 代码与描述 UI 截图)的最佳模型。
有关详细的配置步骤和实体定义,请参阅 LLM 模型管理与配置 文档。
AI 代理工作流与服务
AgentModule 协调 AI 交互的高级逻辑。它通过一系列专用服务将用户意图转换为结构化的 DSL 或代码片段。
关键服务
| 服务 | 职责 |
|---|---|
AIService |
管理 OpenAI 客户端实例,处理流式补全,并实现 AbortController 以支持请求取消。 |
PromptService |
从 _docs/prompts/ 加载系统提示词。它包括用于逻辑 (coder)、图像转 DSL (image) 和结构化数据 (json) 的模板。 |
TopicService |
管理聊天会话("话题")及其持久化,允许用户在多次 AI 交互中保持上下文。 |
ChatService |
处理话题内的消息级逻辑,包括用户查询和 AI 响应。 |
从提示词到 DSL
以下交互流程展示了自然语言请求如何被转换为系统级代码实体。
自然语言到代码实体流程
sequenceDiagram
participant U as User (IDE/Workbench)
participant A as AgentService
participant P as PromptService
participant AI as AIService
participant LLM as LLM Provider (OpenAI/DeepSeek)
U->>A: Request: "Create a login form"
A->>P: getPrompt('coder')
P-->>A: System Prompt + Context
A->>AI: streamChat(Messages | Model)
AI->>LLM: POST /v1/chat/completions
LLM-->>AI: Streaming Tokens (JSON/DSL)
AI-->>A: Parsed Content
A-->>U: Update DSL / Preview UI
有关提示词模板和流式实现的详细信息,请参阅 LLM 服务、缓存与 AI 代理工作流 文档。
与低代码引擎的集成
AI 子系统与 DslService 紧密集成。当 AI 生成响应时,它通常会输出与 VTJ DSL 兼容的 JSON 结构。
- 代码生成 :
AgentService使用@vtj/coder逻辑,确保 AI 生成的代码片段能够无缝合并到现有的页面架构中。 - 验证 :
ValidationService(在代理模块内)确保 LLM 的输出在应用于项目之前符合预期的 JSON 模式。 - 图像转 UI :通过利用多模态模型,平台可以获取屏幕截图,并使用
PromptService指示 LLM 生成相应的@vtj/coreDSL。
参考资料
- 官网文档:vtj.pro/
- 在线平台:app.vtj.pro/
- 开源仓库:gitee.com/newgateway/...