Skip to content

架构概览

TradingCopilot 是模块化单体。一个 Go 二进制负责 API、任务队列、调度器和运行时进程,前端使用 Vue 3 与 Element Plus。

后端边界

  • internal/domain/*:领域类型和规则,不依赖 GORM、HTTP 或外部客户端。
  • internal/app/*:用例层,写入类用例拥有事务边界。
  • internal/infra/*:AI、行情、Telegram、消息、队列、代理、安全和配置等基础设施适配器。
  • internal/infra/persistence/gorm/*:数据库连接、GORM 模型、映射器、仓储、工作单元和迁移。
  • internal/transport/http:路由、中间件、JSON:API 编码、OpenAPI 生成接口和 DTO 映射。
  • internal/composition:组合根,连接用例、基础设施、持久化和 transport。
  • cmd/tradingcopilot:CLI 入口,只负责配置加载、命令解析和委托。

API 形态

HTTP 路由以 /api 为根路径。除 SSE 流和静态前端资源外,请求/响应体都使用 JSON:API 资源文档。

api/openapi.yaml 是生成 Go 接口和前端 TypeScript 类型的共享契约。

运行时进程

常见运行命令:

bash
go run ./cmd/tradingcopilot serve
go run ./cmd/tradingcopilot worker
go run ./cmd/tradingcopilot scheduler
go run ./cmd/tradingcopilot message-subscription-listener
go run ./cmd/tradingcopilot migrate

Docker 容器的 all 模式会组合运行迁移、HTTP 服务、worker、scheduler 和消息订阅监听。

设计原则

  • 保持单体部署,不引入微服务复杂度。
  • 外部协议客户端留在基础设施适配器。
  • 数据库访问留在 GORM 持久化边界。
  • 应用层拥有消息持久化、过滤结果写入和会议创建事务。
  • CLI 入口保持轻量,跨模块组装放在组合根。

TradingCopilot 不提供投资建议,所有内容仅用于研究、测试和学习。