成为贡献者

非常高兴你能关注53AI Hub项目,我们热切期待与你一同打造更卓越的 AI 生态。作为一个聚焦创新的创业团队,我们正致力于构建简单易用、功能强大的 AI 门户。在这个过程中,每一位社区成员的智慧与付出都至关重要 —— 你的贡献,将直接推动我们向目标迈进。

为了让贡献者更高效地参与开发,我们精心编写了 这份成为贡献者的指南》。这份指南将帮助你:

  • 快速熟悉代码库结构与技术框架
  • 了解项目协作流程与贡献规范
  • 掌握从环境搭建到代码提交的全流程操作

需要说明的是,这份指南与 53AI Hub 产品一样,始终处于动态进化状态。若文档内容与项目实际进展存在偏差,我们诚恳希望你能及时反馈问题或提出优化建议 —— 你的声音,正是我们持续迭代的重要驱动力。

期待与你携手,共同书写 AI 领域的创新篇章! 🚀

在许可方面,请花一分钟阅读我们简短的 开源协议和贡献者协议。社区还遵守 行为准则

在开始之前

查找 现有问题,或 创建 一个新问题。我们将问题分为两类:

新增功能:

  • 如果你要提出新增功能的请求,请详细介绍提议新增功能的应用场景与目标,并尽可能提供详细的上下文。
  • 如果你想从现有问题中选择一个,请在其下方留下评论表示你的意愿。

相关方向的团队成员将参与其中。如果一切顺利,他们将批准你开始编码。在此之前,请不要开始工作,以免我们提出更改导致你的工作付诸东流。

根据所提议的功能所属的领域不同,你可能需要与不同的团队成员交流。以下是我们团队成员目前正在从事的各个领域的概述:

MemberScope
@seekartAPI Developer
@zasomsWeb Developer

安装

以下是设置 53AIHub 进行开发的步骤:

1. Fork 该仓库

2. 克隆仓库

从终端克隆 fork 的仓库:

git clone git@github.com:53AI/53AIHub.git

3. 验证依赖项

53AIHub依赖以下工具和库:

4. 安装

53AIHub由后端和前端组成。通过 cd api/ 导航到后端目录,然后按照 后端 README 进行安装。在另一个终端中,通过 cd web/ 导航到前端目录,然后按照 前端 README 进行安装。

5. 在浏览器中访问 53AIHub

为了验证你的设置,打开浏览器并访问 http://localhost(默认或你自定义的 URL 和端口)。现在你应该看到 53AIHub正在运行。

开发

注意:如果你想要贡献新的工具,请确保已在工具的 YAML 文件内留下了你的联系方式,并且在 53AIHub-docs 帮助文档代码仓库中提交了对应的文档 PR。

为了帮助你快速了解你的贡献在哪个部分,以下是 53AIHub后端和前端的简要注释大纲:

后端开发

53AIHub的后端使用 Go 编写,使用 Gin 框架。它使用 SQLAlchemy 作为 ORM,使用 Celery 作为任务队列。授权逻辑通过 Flask-login 进行处理。

[api/]
├── constants             // Constant settings used throughout code base.
├── controllers           // API route definitions and request handling logic.   
├── core                  // Core application orchestration, model integrations, and tools.
├── docker                // Docker & containerization related configurations.
├── events                // Event handling and processing
├── extensions            // Extensions with 3rd party frameworks/platforms.
├── fields                //field definitions for serialization/marshalling.
├── libs                  // Reusable libraries and helpers.
├── migrations            // Scripts for database migration.
├── models                // Database models & schema definitions.
├── services              // Specifies business logic.
├── storage               // Private key storage.  
├── tasks                 // Handling of async tasks and background jobs.
└── tests

前端开发

前端开发分为53AI Hub用户前台和管理员后台两个项目,使用基于 Typescript 的 VUE3 模板进行引导与样式设计。

  • 用户前台文件结构
[web/front]
├── src/renderer/main     # 源代码目录
│   ├── api/              # api接口与错误code
│   ├── assets/           # 样式跟icon
│   ├── components/       # 组件
│   ├── directive/        # 自定义指令
│   ├── views/            # 页面
│   ├── router/           # 路由配置
│   ├── typings/          # 类型定义
│   ├── constants/        # 常用变量
│   ├── locales/          # 语言包
│   ├── store/            # 状态管理
│   ├── utils/            # 工具箱
│   └── main.ts           # 入口文件
├── src/renderer/public   # 公共资源
├── dist/                 # 构建输出目录
├── .eslintrc.js          # ESLint 配置
├── .prettierrc           # Prettier 配置
├── tsconfig.json         # TypeScript 配置
└── vite.config.ts        # Vite 配置

管理员后台文件结构

[web/console]
├── src/src     # 源代码目录
│   ├── api/              # api接口与错误code
│   ├── assets/           # 样式跟icon
│   ├── components/       # 组件
│   ├── directive/        # 自定义指令
│   ├── views/            # 页面
│   ├── router/           # 路由配置
│   ├── typings/          # 类型定义
│   ├── constants/        # 常用变量
│   ├── locales/          # 语言包
│   ├── store/            # 状态管理
│   ├── utils/            # 工具箱
│   └── main.ts           # 入口文件
├── src/renderer/public   # 公共资源
├── dist/                 # 构建输出目录
├── .eslintrc.js          # ESLint 配置
├── .prettierrc           # Prettier 配置
├── tsconfig.json         # TypeScript 配置
└── vite.config.ts        # Vite 配置

提交你的 PR

最后,是时候向我们的仓库提交一个拉取请求(PR)了。对于重要的功能,我们首先将它们合并到 deploy/dev 分支进行测试,然后再合并到 main 分支。如果你遇到合并冲突或者不知道如何提交拉取请求的问题,请查看 GitHub 的拉取请求教程

就是这样!一旦你的 PR 被合并,你将成为我们 README 中的贡献者。

获取帮助

如果你在贡献过程中遇到困难或者有任何问题,可以通过相关的 GitHub 问题提出你的疑问,或者加入我们的微信群进行快速交流。