跳转到主要内容

架构概览

OpenYida 是一个基于 Node.js 的 CLI 工具,采用分层架构设计,将 AI 能力、宜搭平台集成和开发者体验有机结合。

整体工作流程

OpenYida 工作流程
OpenYida 的工作流程分为 6 个阶段:
  1. User Requirement - 用户通过自然语言描述需求
  2. AI Understanding - AI 理解并分析用户需求
  3. PRD Document - 生成产品需求文档
  4. CLI Execution - 执行 CLI 命令创建应用
  5. Yida Platform - 在宜搭平台构建应用
  6. Online Access - 应用上线访问

系统架构

┌─────────────────────────────────────────────────────────────┐
│                      CLI Interface                          │
│         (Command Parser + Interactive Prompts)              │
└─────────────────────────────────────────────────────────────┘


┌─────────────────────────────────────────────────────────────┐
│                    Command Layer                            │
│   create-app │ create-form │ publish │ data │ doctor ...   │
└─────────────────────────────────────────────────────────────┘


┌─────────────────────────────────────────────────────────────┐
│                    Core Services                            │
│  ┌──────────────┐  ┌──────────────┐  ┌──────────────┐      │
│  │   AI Service │  │  Yida API    │  │   Config     │      │
│  │  (Multi-LLM) │  │  (Open API)  │  │   Manager    │      │
│  └──────────────┘  └──────────────┘  └──────────────┘      │
│  ┌──────────────┐  ┌──────────────┐  ┌──────────────┐      │
│  │  Auth        │  │  Skill       │  │   Template   │      │
│  │  (OAuth 2.0) │  │  System      │  │   Engine     │      │
│  └──────────────┘  └──────────────┘  └──────────────┘      │
└─────────────────────────────────────────────────────────────┘

              ┌───────────────┴───────────────┐
              ▼                               ▼
┌─────────────────────────┐    ┌─────────────────────────────┐
│    AI Providers         │    │    Yida Platform            │
│  ┌─────────────────┐    │    │                             │
│  │ OpenAI (GPT-4)  │    │    │   ┌─────────────────────┐   │
│  ├─────────────────┤    │    │   │   Application       │   │
│  │ Claude (3.5)    │    │    │   │   Engine            │   │
│  ├─────────────────┤    │    │   ├─────────────────────┤   │
│  │ 通义千问        │    │    │   │   Form Builder      │   │
│  ├─────────────────┤    │    │   ├─────────────────────┤   │
│  │ DeepSeek        │    │    │   │   Page Designer     │   │
│  └─────────────────┘    │    │   ├─────────────────────┤   │
│                         │    │   │   Data Management   │   │
│                         │    │   ├─────────────────────┤   │
│                         │    │   │   Connector Hub     │   │
│                         │    │   ├─────────────────────┤   │
│                         │    │   │   Report Center     │   │
│                         │    │   └─────────────────────┘   │
└─────────────────────────┘    └─────────────────────────────┘

认证流程

认证流程 OpenYida 的认证流程:
  1. config.json - 存储配置信息
  2. Login Session - 建立登录会话
  3. Cookie Cache - 缓存认证信息
  4. API Request - 发送 API 请求
  5. Yida Backend - 宜搭后端处理
  6. Page/Form Output - 输出页面/表单

CLI 架构

CLI 架构 OpenYida CLI 与宜搭平台的交互:
  • AI Coding ToolOpenYida CLI
    • Login(登录)
    • Create App(创建应用)
    • Create Page(创建页面)
    • Publish(发布)
    • Get Schema(获取结构)
  • Yida Low-Code Platform
    • App Management(应用管理)
    • Form Pages(表单页面)
    • Custom Pages(自定义页面)

技能体系

技能体系 OpenYida 的技能分为三大类:

Login Skills(登录技能)

  • login - 登录宜搭平台
  • logout - 退出登录

Create Skills(创建技能)

  • create-app - 创建应用
  • create-page - 创建页面
  • create-form - 创建表单
  • get-schema - 获取数据结构

Publish Skills(发布技能)

  • publish - 发布应用

核心设计原则

1. 模块化设计

每个功能模块独立封装,通过清晰的接口进行交互:
  • 命令层: 处理 CLI 输入,调用核心服务
  • 服务层: 封装业务逻辑,对外提供统一 API
  • 适配层: 对接外部系统(AI、宜搭平台)

2. 插件化扩展

Skill 系统支持动态加载和扩展:
// Skill 接口定义
interface Skill {
  name: string;
  version: string;
  activate(context: SkillContext): void;
  deactivate(): void;
}

3. 配置驱动

支持多环境配置,灵活切换:
  • 本地全局配置(~/.openyida/)
  • 项目级配置(.openyidarc.json)
  • 环境变量覆盖

4. 类型安全

全链路 TypeScript 类型支持,减少运行时错误。

数据流

应用创建流程

User Input → AI Service → Code Generation → Yida API → Application
                ↑                              ↓
           PRD Analysis                  Validation
                ↑                              ↓
           Template Selection           Deployment

数据操作流程

User Command → Config Load → Auth Check → Yida API → Data Response

                                         Cache/Store

技术栈

层级技术
运行时Node.js 18+
语言TypeScript 5.x
CLI 框架Commander.js
HTTP 客户端Axios
AI SDKOpenAI SDK, Anthropic SDK
配置管理Cosmiconfig
日志Winston
测试Jest

安全设计

认证安全

  • OAuth 2.0 标准流程
  • Token 自动刷新机制
  • 敏感信息本地加密存储

数据传输

  • 全链路 HTTPS
  • API 签名验证
  • 请求重试和超时控制

性能优化

  • 连接池: 复用 HTTP 连接
  • 智能缓存: 配置和元数据本地缓存
  • 增量更新: 只传输变更内容
  • 并发控制: 限制同时进行的 API 调用

扩展点

开发者可以在以下层面进行扩展:
  1. 新命令: 添加自定义 CLI 命令
  2. 新 Skill: 扩展 AI 能力
  3. 新模板: 自定义代码生成模板
  4. 新 AI Provider: 接入其他大模型

版本兼容性

OpenYida 版本支持的 Node.js宜搭 API 版本
1.x>= 18.0.0v1
2.x>= 20.0.0v2