Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 42 additions & 0 deletions .github/CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
# Code of Conduct

Domux follows the iFLYTEK Open Source Community Code of Conduct.

For the full text, please refer to our
[Community Code of Conduct](https://github.com/iflytek/community/blob/master/code-of-conduct.md),
which is adapted from the [Contributor Covenant](https://www.contributor-covenant.org), version 2.0.

## Scope

This Code of Conduct applies to all community spaces of this repository — issues, pull
requests, discussions and code review — and applies when an individual is representing the
project in public spaces.

## Reporting

To report abusive, harassing or otherwise unacceptable behaviour, please contact the
iFLYTEK open source team at <ifly_opensource@iflytek.com>.

All complaints will be reviewed and investigated promptly and fairly. Project maintainers
are obligated to respect the privacy and security of the reporter of any incident.

---

# 行为准则

Domux 遵循讯飞开源社区行为准则。

完整内容请参阅
[社区行为准则](https://github.com/iflytek/community/blob/master/code-of-conduct.md),
该准则改编自 [Contributor Covenant](https://www.contributor-covenant.org) 2.0 版本。

## 适用范围

本行为准则适用于本仓库的所有社区空间——包括 issue、pull request、讨论与代码评审,
并适用于个人在公共场合代表本项目的场景。

## 举报方式

如需举报辱骂、骚扰或其他不可接受的行为,请联系讯飞开源团队:<ifly_opensource@iflytek.com>。

所有举报都将被及时、公正地审查和调查。项目维护者有义务保护举报人的隐私与安全。
69 changes: 69 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
---
name: 🐛 Bug report / 缺陷报告
about: Report incorrect model output, a crash, or broken tooling / 报告模型输出错误、崩溃或工具链问题
title: '[Bug] '
labels: ['bug']
---

<!--
Before filing, please search existing issues to avoid duplicates.
提交前请先搜索已有 issue,避免重复。
-->

## What went wrong / 问题描述

<!-- A clear description of the incorrect behaviour. / 清晰描述出现的错误行为。 -->

## Category / 问题类别

<!-- Keep the one that applies. / 保留适用的一项。 -->

- [ ] Incorrect structured output (intent / device / room / action / value) / 结构化输出错误
- [ ] Inference or deployment failure (vLLM / SGLang / Transformers) / 推理或部署失败
- [ ] Training or reward plugin issue / 训练或奖励插件问题
- [ ] Evaluation script (`eval/run_eval.py`) issue / 评测脚本问题
- [ ] Documentation error / 文档错误
- [ ] Other / 其他

## Reproduction / 复现步骤

**Input utterance / 输入指令:**

```text
<!-- e.g. 把客厅的灯调暗一点 -->
```

**Expected output / 期望输出:**

```json

```

**Actual output / 实际输出:**

```json

```

<!--
For non-output bugs, give the exact commands and the full error traceback instead.
若不是输出类问题,请改为提供完整命令与报错栈。
-->

## Environment / 运行环境

| Item / 项目 | Value / 值 |
| --- | --- |
| Model source / 模型来源 | <!-- Hugging Face / ModelScope / local fine-tune --> |
| Model version / 模型版本 | <!-- e.g. Domux-Gemma-4-E2B-it --> |
| Inference backend / 推理后端 | <!-- vLLM 0.22.0 / SGLang 0.5.12 / Transformers --> |
| Python / OS | |
| GPU / hardware / 硬件 | |

## Additional context / 补充信息

<!--
Logs, screenshots, sampling parameters (temperature, top_p), or a link to a case
under `cases/` that demonstrates the problem.
日志、截图、采样参数(temperature、top_p),或 `cases/` 下可复现该问题的案例链接。
-->
17 changes: 17 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
blank_issues_enabled: true
contact_links:
- name: 📖 Documentation / 项目文档
url: https://github.com/iflytek/domux#readme
about: Quick start, benchmark, deployment and output specification. / 快速开始、评测、部署与输出规范。
- name: 🤗 Model on Hugging Face / Hugging Face 模型
url: https://huggingface.co/iFlytekOpenSource/Domux
about: Model card, weights and usage notes. / 模型卡、权重与使用说明。
- name: 🔧 Model on ModelScope / ModelScope 模型
url: https://modelscope.cn/models/iflytek/domux
about: Mirror for users in mainland China. / 面向中国大陆用户的镜像。
- name: 🔒 Report a security vulnerability / 报告安全漏洞
url: https://github.com/iflytek/community/blob/master/SECURITY.md
about: Please do NOT open a public issue for security problems. / 安全问题请勿公开提交 issue。
- name: 💬 iFLYTEK Open Source Community / 讯飞开源社区
url: https://github.com/iflytek/community
about: Contribution guide and code of conduct. / 贡献指南与行为准则。
57 changes: 57 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
---
name: ✨ Feature request / 功能建议
about: Suggest a new capability, device type, or tooling improvement / 建议新能力、新设备类型或工具链改进
title: '[Feature] '
labels: ['enhancement']
---

<!--
For HER Hack-Astron challenge submissions, please use the dedicated template instead.
如需提交 HER Hack-Astron 赛题,请改用对应模板。
-->

## Problem / 要解决的问题

<!--
What is missing or hard to do today? Describe the user-facing scenario rather than the
solution. 当前缺少什么,或者什么事情很难做到?请先描述用户场景,而不是解决方案。
-->

## Proposed solution / 建议方案

<!-- What you would like to see. / 你希望看到的实现。 -->

## Area / 涉及范围

- [ ] Control capability — new device type, attribute, or action / 控制能力:新设备类型、属性或动作
- [ ] Semantic understanding — dialect, accessibility, context, negation / 语义理解:方言、无障碍、上下文、否定
- [ ] Model / training — data, reward, quantization, on-device latency / 模型与训练:数据、奖励、量化、端侧时延
- [ ] Inference / deployment — backend or serving support / 推理与部署:后端或服务支持
- [ ] Evaluation / dataset / 评测与数据集
- [ ] Documentation or developer experience / 文档或开发体验
- [ ] Other / 其他

## Example / 示例

**Input utterance / 输入指令:**

```text

```

**Desired structured output / 期望的结构化输出:**

```json

```

## Alternatives considered / 已考虑的替代方案

<!-- Optional. / 选填。 -->

## Additional context / 补充信息

<!--
Related issues, papers, datasets, or upstream references.
相关 issue、论文、数据集或上游参考资料。
-->
35 changes: 35 additions & 0 deletions .github/ISSUE_TEMPLATE/question.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
---
name: ❓ Question / 使用咨询
about: Ask about usage, deployment, training, or evaluation / 咨询使用、部署、训练或评测相关问题
title: '[Question] '
labels: ['question']
---

<!--
Please check these first — they answer most questions:
提问前请先查阅以下资料,多数问题已有答案:

- README.md / README_zh.md
- docs/output-spec.md / docs/output-spec.zh.md (output contract / 输出规范)
- eval/DATASET_README.md (dataset & evaluation / 数据集与评测)
- cases/README.md (case studies / 案例)
-->

## Question / 问题

<!-- What would you like to know? / 你想了解什么? -->

## What I have tried / 已经尝试过的

<!--
Commands you ran, docs you read, and what happened.
执行过的命令、查阅过的文档,以及实际结果。
-->

## Environment / 运行环境 (if relevant / 如相关)

| Item / 项目 | Value / 值 |
| --- | --- |
| Model source / 模型来源 | |
| Inference backend / 推理后端 | |
| Python / OS | |
109 changes: 109 additions & 0 deletions THIRD_PARTY_LICENSES.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,109 @@
# Third-Party Licenses

This document inventories the third-party components that Domux depends on, together with a
license risk assessment.

It complements [`NOTICE`](NOTICE), which carries the attribution and pass-through obligations
required for redistribution. Where the two overlap (notably the Gemma model weights), `NOTICE`
is the authoritative statement.

- **Domux's own code** (training scripts, reward plugins, evaluation tooling) is licensed under
the Apache License, Version 2.0 — see [`LICENSE`](LICENSE).
- **Domux's model weights** are a Gemma derivative and are **not** covered by Apache-2.0.
See [Model weights](#model-weights) below.

**Scope of this inventory.** It covers the *direct*, first-order dependencies declared in this
repository. It does not enumerate transitive dependencies. Licenses were verified against
package metadata published on PyPI on **2026-08-26**; declared metadata can change between
releases, so re-verify when bumping a pin.

---

## Training

Declared in [`training/requirements.txt`](training/requirements.txt).

| Component | Constraint | License (as declared) | Project |
| --- | --- | --- | --- |
| `ms-swift[llm]` | `>=3.0.0` | Apache-2.0 | [modelscope/ms-swift](https://github.com/modelscope/ms-swift) |
| `torch` | `>=2.0.0` | `Apache-2.0 AND Apache-2.0 WITH LLVM-exception AND BSD-2-Clause AND BSD-3-Clause AND BSL-1.0 AND MIT` | [pytorch/pytorch](https://github.com/pytorch/pytorch) |
| `transformers` | `>=4.40.0` | Apache-2.0 | [huggingface/transformers](https://github.com/huggingface/transformers) |
| `peft` | `>=0.10.0` | Apache-2.0 | [huggingface/peft](https://github.com/huggingface/peft) |

> `torch` declares a composite SPDX expression because the distributed wheels bundle
> third-party components under several licenses. The PyTorch project's own source license is
> BSD-3-Clause. Anyone **redistributing** PyTorch binaries (rather than installing them from
> PyPI) should also ship PyTorch's bundled third-party notices.

## Inference and deployment

Declared in the Quick Start / Deployment sections of [`README.md`](README.md).

| Component | Constraint | License (as declared) | Project |
| --- | --- | --- | --- |
| `vllm` | `==0.22.0` | Apache-2.0 | [vllm-project/vllm](https://github.com/vllm-project/vllm) |
| `sglang[all]` | `==0.5.12` | Apache-2.0 | [sgl-project/sglang](https://github.com/sgl-project/sglang) |

> These are alternative backends — a deployment normally installs one, not both. The `[all]`
> extra of `sglang` pulls in a substantially larger dependency set than the base package; audit
> it separately if you redistribute a bundled environment.

## Evaluation and tooling

| Component | Used by | License (as declared) | Project |
| --- | --- | --- | --- |
| `requests` | [`eval/run_eval.py`](eval/run_eval.py) | Apache-2.0 | [psf/requests](https://github.com/psf/requests) |
| `modelscope` | model download ([`README.md`](README.md)) | Apache-2.0 | [modelscope/modelscope](https://github.com/modelscope/modelscope) |

[`scripts/validate_cases.py`](scripts/validate_cases.py) uses only the Python standard library
and introduces no third-party dependency.

---

## Model weights

Domux (`Domux-Gemma-4-E2B-it`) is a fine-tuned derivative of Google's Gemma model.

| Component | Terms |
| --- | --- |
| Gemma / Domux model weights | [Gemma Terms of Use](https://ai.google.dev/gemma/terms) + [Gemma Prohibited Use Policy](https://ai.google.dev/gemma/prohibited_use_policy) |

The Gemma Terms of Use are **not** an OSI-approved open source license. They impose use
restrictions that must be passed through to downstream recipients. The full obligations —
providing the terms, displaying a "built from Gemma" notice, and passing through the
restrictions — are set out in [`NOTICE`](NOTICE).

"Gemma" is a trademark of Google LLC.

---

## Risk assessment

| # | Area | Risk | Assessment |
| --- | --- | --- | --- |
| 1 | Direct Python dependencies | **Low** | All are permissive (Apache-2.0, BSD, MIT). No copyleft (GPL/LGPL/AGPL) or source-available/non-commercial license appears in the direct dependency set. All are compatible with distributing this repository's code under Apache-2.0. |
| 2 | Model weights | **Medium — the principal obligation** | The weights are governed by the Gemma Terms of Use, not Apache-2.0. Redistribution requires passing through the terms and the Prohibited Use Policy. Users who assume "Apache-2.0 repository ⇒ Apache-2.0 weights" will be wrong; `NOTICE` and the model cards state the correct terms. |
| 3 | Transitive dependencies | **Unassessed** | Not enumerated here. `torch`, `vllm` and `sglang[all]` each pull in large trees. Anyone shipping a bundled environment or container image should run a full transitive scan rather than relying on this document. |
| 4 | Bundled binaries in `torch` | **Low** | Handled upstream by PyTorch's own notices; relevant only when redistributing PyTorch binaries. |
| 5 | Version drift | **Low, ongoing** | Training dependencies use `>=` constraints, so the resolved version — and in principle its declared license — can change over time. Re-verify when pinning for a release. |
| 6 | Datasets | **See dataset docs** | Evaluation data ships in [`eval/`](eval); its provenance and terms are described in [`eval/DATASET_README.md`](eval/DATASET_README.md). Contributed case studies must satisfy the data-source requirements in [`cases/README.md`](cases/README.md). |

**Summary.** The code-side license position is clean: every direct dependency is permissive and
Apache-2.0-compatible. The meaningful compliance obligation lies with the **model weights**,
which are Gemma-derived and carry use restrictions that must travel with any redistribution.

---

## Maintaining this document

When adding, removing, or re-pinning a dependency, update the tables above.

To regenerate a full inventory including transitive dependencies:

```bash
pip install pip-licenses
pip-licenses --format=markdown --with-urls --with-license-file
```

Verify anything the tooling reports as `UNKNOWN` against the project's own `LICENSE` file
rather than recording it as unknown.