当前位置: 首页 > news >正文

VTJ.PRO 在线应用开发平台的LLM模型管理与配置

LLM 模型管理与配置

本节详细介绍了 VTJ.PRO 平台中大型语言模型(LLM)的基础设施和管理逻辑。系统支持多个提供商、专门的模型用途(如代码生成或多模态视觉),并包含一个缓存层以优化 AI 代理工作流的性能。

数据模型与实体

平台使用结构化的实体模型来定义 LLM 的能力和连接参数。

LLMModelEntity

LLMModelEntity表示由外部服务提供的特定模型实例(例如 GPT-4、Claude-3)。它包含 API 端点、认证密钥和模型特定参数的配置。

关键字段包括:

  • name:模型的显示名称。
  • value:API 调用中使用的技术标识符(例如gpt-4-turbo)。
  • provider:服务提供商(由LLMProvider枚举定义)。
  • purpose:主要使用场景(由LLMPurpose枚举定义)。
  • apiKey:提供商的凭证。
  • baseUrl:API 端点(用于代理服务或本地部署)。

枚举:Provider 与 Purpose

系统对模型进行分类,以确保为特定任务使用正确的工具:

  • LLMProvider:支持OpenAIDeepSeekOllamaMoonshotZhipuGroqAnthropic
  • LLMPurpose:将模型分类为Coder(针对 DSL 和代码生成优化)或Multimodal(支持图像/视觉输入)。

实体关系图

下图说明了LLMModelEntity在后端服务层中如何与其操作枚举相关联。

模型实体空间

LLMModelService 实现

LLMModelService是检索和管理模型的主要接口。它扩展了BaseCrudService以提供标准的 CRUD 操作,同时实现了模型选择和缓存的专用逻辑。

缓存支持的检索

为了在频繁的 AI 代理请求期间最小化数据库开销,该服务对模型列表使用了缓存机制。

  • getModels():检索所有启用的模型,优先使用缓存结果(如果可用)。
  • getCoderModels():过滤模型列表,仅返回标记为LLMPurpose.Coder的模型。这些模型通常由@vtj/coder引擎用于生成 Vue 组件和 DSL。
  • getMultiModel():返回标记为LLMPurpose.Multimodal的第一个可用模型,用于图像转代码或基于视觉的分析。

数据流:请求到模型选择

此图显示了针对特定模型(如 Coder 模型)的请求如何从服务层通过缓存流向数据库。

LLM 模型解析流程

管理界面

平台提供了一个专用的管理界面,用于管理 LLM 配置,位于llms.vue视图中。

配置界面

管理员可以执行以下操作:

  1. 提供商设置:定义新的 LLM 端点,包括为兼容 OpenAI 的代理设置自定义baseUrl
  2. 凭证管理:安全存储apiKey值。
  3. 用途分配:明确将模型标记为CoderMultimodal,以使其在特定工作台工作流中启用。
  4. 状态切换:启用或禁用模型,无需删除其配置。

前端集成

管理界面通过LlmController与后端交互,该控制器公开了由LLMModelService管理的 CRUD 端点。

组件文件路径角色
视图frontend/src/views/admin/llms.vue模型 CRUD 操作的管理界面
控制器backend/src/business/llm/llm.controller.tsLLM 管理的 REST API 端点
服务backend/src/business/llm/llm.service.ts业务逻辑和缓存管理

与 AI 代理工作流的集成

在此模块中配置的模型由AIService使用。当 AI 代理需要执行任务时:

  1. 它根据任务类型(例如聊天 vs. 代码生成)向LLMModelService查询合适的模型。
  2. 它从LLMModelEntity中检索apiKeybaseUrl
  3. 它使用这些参数初始化一个兼容 OpenAI 的客户端实例,以将响应流式传输回工作台。

参考资料

  • 官网文档:https://vtj.pro/
  • 在线平台:https://app.vtj.pro/
  • 开源仓库:https://gitee.com/newgateway/vtj
http://www.jsqmd.com/news/601371/

相关文章:

  • 从零到一:基于Logisim的交通灯系统实训项目全流程解析
  • RetinaFace在Linux系统下的部署与优化指南
  • Cogito-V1-Preview-Llama-3B应用解析:软件测试用例的智能生成与评审
  • Phi-3-mini-128k-instruct在Qt桌面应用中的集成:开发智能配置助手
  • Windows Defender 永久禁用终极方案:开源控制工具完全指南
  • FastAPI + Vue 前后端分离实战:我的项目结构“避坑指南”
  • 如何用Python轻松获取通达信金融数据:mootdx完整指南
  • 手把手教你搞定nRF52832的FLASH和RAM划分(基于S132协议栈V7.x)
  • 如何激发员工参与精益改善?试试这6大有效途径
  • VTJ.PRO 在线应用开发平台的LLM服务、缓存与AI Agent工作流
  • nlp_structbert_sentence-similarity_chinese-large效果展示:海量文本去重与聚类实战案例
  • 万象视界灵坛部署教程:WSL2环境下Windows用户快速体验Bright-Pixel UI
  • 详细步骤:星图平台Qwen3-VL:30B私有化部署及Clawdbot飞书插件配置
  • Claude Code Oracle数据库连接操作方式
  • 3个核心技巧:彻底解决TranslucentTB任务栏透明工具安装失败问题
  • 精益生产8大类生产异常自查指南,你家工厂中了几个?
  • Qwen3-VL-8B AI聊天系统监控与调试:查看日志、检查服务状态指南
  • git放弃本地修改,直接与远端服务器同步
  • WarcraftHelper:魔兽争霸III一站式优化工具全场景解决方案
  • Mac Mouse Fix 高级配置指南:深度定制鼠标事件处理与系统集成
  • 小白也能玩转多模态AI:Qwen2.5-VL-7B图文对话模型快速上手指南
  • HunyuanVideo-Foley效果展示:钢琴独奏音效+琴房光影视频生成高清集锦
  • 【日常使用效率清单】
  • nlp_structbert_sentence-similarity_chinese-large实操手册:自定义输入长度与Padding策略调优
  • Onekey Steam Depot清单自动化工具深度架构剖析
  • 5个简单步骤掌握StreamCap:免费开源的多平台直播自动录制工具终极指南
  • 跨地域团队文件管理:同步机制与权限体系实战指南
  • Onekey:Steam游戏清单的智能配置与自动化解决方案
  • Python必学5大标准库实战指南,Python初学者和自学者必备
  • 数据库课程设计展示:用 Pixel Dream Workshop 可视化学生成绩关系图谱