跳到主要内容

🤝 参与贡献

一起构建每个人都值得拥有的 AI 界面。

OPL 数据空间是一个由小型核心团队独立维护的项目。最有价值的贡献并不总是代码。测试 dev 分支、提交清晰的 bug 报告、在 Discussions 中提出想法、改进文档、翻译界面,这些都对项目有很大影响。

行为准则

所有贡献者和社区参与者都必须遵守 行为准则。我们实行 零容忍政策:不尊重、强硬索取或敌对行为会被立即处理,不作预警。

参与方式

测试开发分支

这是最有价值、且不需要写代码的贡献之一:直接运行 dev 分支,日常使用,并把问题反馈出来。

docker run -d -p 3000:8080 -v open-webui:/app/backend/data --name open-webui ghcr.io/open-webui/open-webui:dev

dev 分支变化很快,所以请经常更新。如果你不想用 Docker,也可以参考 开发 OPL 数据空间

提交代码

高价值贡献通常包括:

  • 高质量 bug 报告
  • 详细功能讨论
  • Discussions 中提出经过思考的方案

如果你要提交 PR,请先理解:每一行被合并的代码,之后都需要由核心团队长期维护。因此,提交的代码可能会被重构、重写,或者仅作为另一种实现思路的参考。这不是对提交质量的否定,而是为了保证小团队能持续理解并演化整个代码库。

提交 PR 前建议:

  1. 先开讨论,和团队对齐方向
  2. 遵守现有约定,包括命名、结构和架构模式
  3. 保持 PR 原子性,一个 PR 只解决一个核心目标
  4. 避免引入新依赖,除非已提前讨论
  5. 补齐测试
  6. 写清晰的 commit message

改进文档

你可以帮助项目变得更易用:改进文档、编写教程、补充部署指南。文档主仓库可见于 docs repository

翻译界面

OPL 数据空间使用 src/lib/i18n/locales 下的 JSON 语言文件。新增语言时,通常流程是:

  1. 建立新的语言目录
  2. 复制 en-US
  3. 翻译其中的字符串值,同时保持 JSON 结构
  4. languages.json 中注册

改进无障碍

当你提交 UI 改动时,请尽量同时考虑:

原则建议
语义化 HTML尽量使用 <button><label><nav> 等原生语义元素
键盘导航所有交互元素都应支持无鼠标操作
ARIA 标签在语义 HTML 不足时补充 ARIA
颜色对比用 WebAIM 等工具检查对比度
Alt 文本有意义的图片写描述,无意义装饰图用 alt=""

提交 Issue

创建新 Issue 前,请先查看 Issues 是否已有相同问题。

提交时请尽量:

  • 按模板填写
  • 提供复现步骤
  • 说明预期行为与实际行为
  • 尽量避免“不能用”这类过于模糊的描述
支持范围

OPL 数据空间支持 Docker 部署,但默认认为用户对 Docker 基础已有了解。反向代理、容器网络、宿主机系统配置等超出项目官方支持范围,建议查阅 Docker 官方文档

联系我们

渠道链接
Discorddiscord.gg/5rJgQTnV4s
Redditr/OpenWebUI
GitHub Issuesopen-webui/open-webui/issues
GitHub Discussionsopen-webui/open-webui/discussions