VTJ.PRO 在线应用开发平台的LLM服务、缓存与AI Agent工作流

LLM服务、缓存与AI Agent工作流

本文档详细介绍了VTJ.PRO的AI子系统,重点阐述其与大语言模型(LLM)的集成、提示词管理,以及用于代码生成和图像分析的AI Agent工作流的编排。

AIService: LLM编排器

AIService 是所有LLM交互的核心网关。它抽象了底层兼容OpenAI的客户端,并管理着诸如流式响应、错误处理和请求取消等复杂任务。

主要职责

  • 客户端初始化:根据提供商配置(API密钥、基础URL)动态创建OpenAI客户端。
  • 流式补全 :实现 chatCompletionsStream 方法,以处理向前端实时传输的token流。
  • 中止管理 :使用 AbortController 允许用户终止长时间运行的AI生成任务。
  • 用量追踪:计算并记录token使用量,用于监控和潜在的计费需求。

LLM请求数据流

下图展示了一个请求如何从高层级的Agent服务,通过 AIService,最终流向外部LLM提供商。

图示:AI请求管道

flowchart UserPrompt[User Prompt / Image] SystemPrompt["System Prompt (PromptService)"] ChatService["ChatService.chat()"] AIService["AIService.chatCompletionsStream()"] OpenAIClient["OpenAI Instance (openai-node)"] API["External LLM API (DeepSeek/OpenAI/etc)"] Frontend["Frontend UI (Chat Window)"] subgraph Natural Language Space UserPrompt --> ChatService SystemPrompt --> ChatService end subgraph "Code Entity Space (AIService)" ChatService --> AIService AIService --> OpenAIClient OpenAIClient --> API API -->|Stream| AIService end subgraph Response Handling AIService -->|SSE / Buffer| Frontend end

提示词管理与模板

VTJ.PRO 使用专门的系统提示词来引导LLM生成符合平台要求的代码和元数据。这些提示词由 PromptService 管理,并以Markdown文件的形式存储在 _docs/prompts/ 目录下。

提示词类型

  • Coder Prompt (coder.md, coder_v3.md) :指示AI扮演一名资深Vue 3开发者的角色。它强制使用"混合API"风格(即同时使用Composition API和Options API),并为增量更新提供严格的 SEARCH/REPLACE diff格式。
  • Image Prompt (image.md):配置AI以分析UI截图,并生成关于布局、导航和配色方案的描述性结构。
  • JSON Prompt (json.md):用于将设计工具(如Figma/MasterGo)导出的JSON转换为可读的实现说明。

实现: PromptService

PromptService 负责读取这些模板,并在将其发送给LLM之前执行变量插值(例如,注入支持的依赖项或当前平台类型)。

函数 用途 模板源
getCoderPrompt 生成用于代码生成的系统提示词 _docs/prompts/coder_v3.md
getImagePrompt 生成用于图像转代码分析的提示词 _docs/prompts/image.md
getJsonPrompt 生成用于设计稿转代码分析的提示词 _docs/prompts/json.md

AI Agent工作流 (ReAct模式)

该平台在其 coder_v3 工作流中采用了 ReAct(推理+行动) 模式。这使得AI不仅能够生成代码,还能"思考"任务并调用特定的工具。

五步循环

  1. T (思考):分析用户需求并检查约束条件。
  2. P (规划):将任务分解为原子操作(例如,创建页面、获取技能)。
  3. A (行动) :执行单个操作,如输出一个 diff 块或一个 json 工具调用。
  4. O (观察):接收来自系统的反馈(例如,编译错误或工具结果)。
  5. F (完成):总结已完成和待处理的任务。

增量更新 (SEARCH/REPLACE)

为了最大限度地减少token消耗,并避免因微小更改而重写整个文件,AI使用了精确的diff格式。

图示:增量代码更新工作流

sequenceDiagram participant AI Agent (coder_v3) participant ChatService participant ValidationService participant DslService AI Agent (coder_v3)->>ChatService: Output SEARCH/REPLACE Block ChatService->>ValidationService: Validate Diff Syntax ValidationService->>DslService: Fetch Current DSL/File DslService-->>ValidationService: Return Content ValidationService->>ValidationService: Apply Regex Match & Replace ValidationService-->>ChatService: Success / Match Error ChatService-->>AI Agent (coder_v3): Observation (O:) with Result

支撑服务

TopicService 与 ChatService

  • TopicService: 管理聊天"主题"的持久化。每个主题包含多条消息,并与特定的项目或应用关联。
  • ChatService : 编排对话流程。它负责检索历史记录、准备上下文(系统提示词+历史记录),并调用 AIService

ConfigService 与 ValidationService

  • ConfigService: 处理全局AI设置(如针对不同用途的默认模型)的检索。
  • ValidationService : 专门用于解析AI的输出。它提取代码块、验证JSON工具调用,并确保 SEARCH/REPLACE 块能唯一匹配目标源代码。

LLM模型缓存

为确保管理后台和Agent执行期间的高性能,模型配置会被缓存。LLMModelService 提供了 getModels()getCoderModels() 等基于缓存的方法,从而减少了每个AI请求对数据库的查询次数。

参考资料

相关推荐
QC·Rex2 小时前
从零到部署:构建生产级 AI Agent 的完整指南
人工智能·langchain·agent·rag·工具调用·人工智能体·生产部署
陆业聪2 小时前
字节跳动开源 DeerFlow 2.0 源码拆解:14层Middleware、Sub-Agent并发编排和结构化记忆是怎么做的
人工智能·langchain·aigc·agent
麦聪聊数据2 小时前
电商数据运营的最佳实践:WebSQL 如何兼顾数据分析效率与生产库安全
数据库·sql·低代码·restful
木心术12 小时前
卷积神经网络(CNN)与AI编程的深度整合指南
人工智能·cnn·ai编程
带刺的坐椅2 小时前
CLI 编程代理横向分析报告
ai编程·cli·claudecode·opencode·soloncode
Gale2World3 小时前
专题九:【终局演进】从“单体网关”到去中心化集群:分布式数字员工(Swarm)的宏大涌现
人工智能·agent
初见雨夜3 小时前
OpenAI 官方出手:把 Codex 接进 Claude Code
前端·openai·ai编程
猫咪老师3 小时前
发现一篇非常好的AI Memory综述!
人工智能·agent
Flittly3 小时前
【SpringAIAlibaba新手村系列】(6)PromptTemplate 提示词模板与变量替换
java·spring boot·agent