Metadata-Version: 2.4
Name: ChilmAI
Version: 0.1.3
Summary: Generic daycare matching backend and UI
License-Expression: Apache-2.0
Project-URL: homepage, https://chilmai.cyberagent.ai/
Project-URL: documentation, https://cyberagent.github.io/ChilmAI/
Requires-Python: <3.13,>=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
License-File: NOTICE
License-File: TRADEMARK.md
Requires-Dist: numpy==1.26.4
Requires-Dist: pandera==0.20.3
Requires-Dist: openpyxl==3.1.5
Requires-Dist: python-calamine==0.8.2
Requires-Dist: ortools==9.8.3296
Requires-Dist: pandas==2.2.3
Requires-Dist: xlsxwriter==3.2.0
Requires-Dist: tqdm==4.66.5
Requires-Dist: tomli==2.4.1; python_version < "3.11"
Requires-Dist: fastapi==0.139.0
Requires-Dist: jinja2==3.1.6
Requires-Dist: uvicorn==0.34.2
Requires-Dist: python-multipart==0.0.32
Requires-Dist: setuptools==83.0.0
Provides-Extra: package
Requires-Dist: pyinstaller==6.21.0; extra == "package"
Requires-Dist: pip-licenses==5.5.5; extra == "package"
Provides-Extra: test
Requires-Dist: pytest==9.1.1; extra == "test"
Requires-Dist: pytest-playwright==0.8.0; extra == "test"
Requires-Dist: pytest-xdist==3.6.1; extra == "test"
Requires-Dist: pytest-cov==7.1.0; extra == "test"
Requires-Dist: httpx2==2.5.0; extra == "test"
Provides-Extra: format
Requires-Dist: ruff==0.5.7; extra == "format"
Provides-Extra: docs
Requires-Dist: mkdocs-material==9.7.7; extra == "docs"
Requires-Dist: mkdocstrings[python]==0.29.1; extra == "docs"
Requires-Dist: mkdocs-redirects==1.2.2; extra == "docs"
Dynamic: license-file

# ChilmAI

<p align="center">
  <img src="https://cyberagent.github.io/ChilmAI/assets/logo_yoko_black.svg" alt="ChilmAI" width="360">
</p>

<p align="center">
  <a href="https://github.com/CyberAgent/ChilmAI/actions/workflows/pytest.yml">
    <img src="https://github.com/CyberAgent/ChilmAI/actions/workflows/pytest.yml/badge.svg?branch=main" alt="pytest">
  </a>
  <a href="https://github.com/CyberAgent/ChilmAI/actions/workflows/pytest_win.yml">
    <img src="https://github.com/CyberAgent/ChilmAI/actions/workflows/pytest_win.yml/badge.svg?branch=main" alt="pytest windows">
  </a>
  <a href="https://github.com/CyberAgent/ChilmAI/tree/python-coverage-comment-action-data">
    <img src="https://github.com/CyberAgent/ChilmAI/raw/python-coverage-comment-action-data/badge.svg" alt="coverage">
  </a>
  <br>
  <img src="https://img.shields.io/badge/python-3.10%20%7C%203.11%20%7C%203.12-blue" alt="Python 3.10-3.12">
  <a href="https://cyberagent.github.io/ChilmAI/reference/license/">
    <img src="https://img.shields.io/badge/license-Apache--2.0-blue" alt="Apache-2.0">
  </a>
  <a href="https://arxiv.org/abs/2401.07761">
    <img src="https://img.shields.io/badge/arXiv-2401.07761-b31b1b" alt="arXiv 2401.07761">
  </a>
</p>

ChilmAI は、自治体の保育所利用調整における入所選考処理を支援する Python アプリケーションです。入力データのバリデーション、列名マッピング、きょうだい条件を含むマッチング、結果データの整形を行います。

利用方法や仕様の詳細は [ChilmAI ドキュメント](https://cyberagent.github.io/ChilmAI/) を参照してください。

## 主な構成

| 領域 | パス | 内容 |
|---|---|---|
| コアライブラリ | `chilmai/generic` | ファイル読込、列名マッピング、バリデーション、マッチング実行、結果整形 |
| ソルバー | `chilmai/algorithm/cp_use_transfer` | OR-Tools CP-SAT を用いたマッチング実装 |
| リファレンス実装 | `apps` | FastAPI による HTTP API と Web UI |
| サンプルデータ | `sample` | 動作確認用の合成データ |
| テストコード | `test` | 単体テスト、API テスト、ブラウザテスト |

> [!WARNING]
> `apps/` 以下の Web UI と HTTP API はリファレンス実装です。本番運用に必要な認証、認可、監査ログ、運用監視、データ保護、インフラ設定、脆弱性対応は、利用環境に合わせて別途設計・実装してください。

## 使い方

### Windows で Web UI を試す

Windows 11（64-bit）では、[GitHub Releases](https://github.com/CyberAgent/ChilmAI/releases) の `ChilmAI-vX.Y.Z.zip` を展開し、`ChilmAI.exe` を実行すると Web UI を利用できます。インストールや起動時の注意点は[自治体の方へのクイックスタート](https://cyberagent.github.io/ChilmAI/reference/web-ui/quickstart/)を参照してください。

### ライブラリとして利用する

Python 3.10 〜 3.12 の環境に、PyPI からインストールします。パッケージに含まれるのはコアライブラリ（`chilmai`）のみで、Web UI・HTTP API のリファレンス実装（`apps/`）とサンプルデータは含まれません。

<!-- TODO(PyPI 公開後に確定): 公開を確認のうえ、プロジェクトページ（例: https://pypi.org/project/chilmai/）へのリンクをここに追加する -->

```bash
pip install chilmai
```

### ソースコードから利用する

Python 3.10 〜 3.12、Git、[uv](https://docs.astral.sh/uv/) を用意して、依存関係をインストールします。

```bash
git clone https://github.com/CyberAgent/ChilmAI.git
cd ChilmAI
uv sync
```

Python API のサンプルは [インストールと実行](https://cyberagent.github.io/ChilmAI/getting-started/quickstart/)、Web UI と HTTP API の起動方法は [リファレンスアプリ](https://cyberagent.github.io/ChilmAI/api/reference-app/) を参照してください。

## ドキュメント

- [インストールと実行](https://cyberagent.github.io/ChilmAI/getting-started/quickstart/)
- [入力データと設定](https://cyberagent.github.io/ChilmAI/getting-started/data-format/)
- [Web UI 利用ガイド](https://cyberagent.github.io/ChilmAI/reference/web-ui/)
- [Python API](https://cyberagent.github.io/ChilmAI/api/python/)
- [アーキテクチャ](https://cyberagent.github.io/ChilmAI/development/architecture/)
- [セキュリティ](https://cyberagent.github.io/ChilmAI/reference/security/)

## コントリビューション

バグ報告、機能提案、ドキュメント改善、Pull Request を歓迎します。参加方法は [コントリビューション](https://cyberagent.github.io/ChilmAI/development/contributing/) を参照してください。セキュリティ上の懸念は公開 Issue に投稿せず、[セキュリティ](https://cyberagent.github.io/ChilmAI/reference/security/) に記載された方法で報告してください。

## ライセンス

[Apache License 2.0](https://cyberagent.github.io/ChilmAI/reference/license/)
