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请求管道提示词管理与模板VTJ.PRO 使用专门的系统提示词来引导LLM生成符合平台要求的代码和元数据。这些提示词由PromptService管理并以Markdown文件的形式存储在_docs/prompts/目录下。提示词类型Coder Prompt (coder.md,coder_v3.md)指示AI扮演一名资深Vue 3开发者的角色。它强制使用“混合API”风格即同时使用Composition API和Options API并为增量更新提供严格的SEARCH/REPLACEdiff格式。Image Prompt (image.md)配置AI以分析UI截图并生成关于布局、导航和配色方案的描述性结构。JSON Prompt (json.md)用于将设计工具如Figma/MasterGo导出的JSON转换为可读的实现说明。实现: PromptServicePromptService负责读取这些模板并在将其发送给LLM之前执行变量插值例如注入支持的依赖项或当前平台类型。函数用途模板源getCoderPrompt生成用于代码生成的系统提示词_docs/prompts/coder_v3.mdgetImagePrompt生成用于图像转代码分析的提示词_docs/prompts/image.mdgetJsonPrompt生成用于设计稿转代码分析的提示词_docs/prompts/json.mdAI Agent工作流 (ReAct模式)该平台在其coder_v3工作流中采用了ReAct推理行动模式。这使得AI不仅能够生成代码还能“思考”任务并调用特定的工具。五步循环T (思考)分析用户需求并检查约束条件。P (规划)将任务分解为原子操作例如创建页面、获取技能。A (行动)执行单个操作如输出一个diff块或一个json工具调用。O (观察)接收来自系统的反馈例如编译错误或工具结果。F (完成)总结已完成和待处理的任务。增量更新 (SEARCH/REPLACE)为了最大限度地减少token消耗并避免因微小更改而重写整个文件AI使用了精确的diff格式。图示增量代码更新工作流支撑服务TopicService 与 ChatServiceTopicService: 管理聊天“主题”的持久化。每个主题包含多条消息并与特定的项目或应用关联。ChatService: 编排对话流程。它负责检索历史记录、准备上下文系统提示词历史记录并调用AIService。ConfigService 与 ValidationServiceConfigService: 处理全局AI设置如针对不同用途的默认模型的检索。ValidationService: 专门用于解析AI的输出。它提取代码块、验证JSON工具调用并确保SEARCH/REPLACE块能唯一匹配目标源代码。LLM模型缓存为确保管理后台和Agent执行期间的高性能模型配置会被缓存。LLMModelService提供了getModels()和getCoderModels()等基于缓存的方法从而减少了每个AI请求对数据库的查询次数。参考资料官网文档https://vtj.pro/在线平台https://app.vtj.pro/开源仓库https://gitee.com/newgateway/vtj