Underground-Digital/Workflow-Engine
0
1Dify にコントリビュートしたいとお考えなのですね。それは素晴らしいことです。2私たちは、LLM アプリケーションの構築と管理のための最も直感的なワークフローを設計するという壮大な野望を持っています。人数も資金も限られている新興企業として、コミュニティからの支援は本当に重要です。3 4私たちは現状を鑑み、機敏かつ迅速に開発をする必要がありますが、同時にあなた様のようなコントリビューターの方々に、可能な限りスムーズな貢献体験をしていただきたいと思っています。そのためにこのコントリビュートガイドを作成しました。5コードベースやコントリビュータの方々と私たちがどのように仕事をしているのかに慣れていただき、楽しいパートにすぐに飛び込めるようにすることが目的です。6 7このガイドは Dify そのものと同様に、継続的に改善されています。実際のプロジェクトに遅れをとることがあるかもしれませんが、ご理解のほどよろしくお願いいたします。8 9ライセンスに関しては、私たちの短い[ライセンスおよびコントリビューター規約](./LICENSE)をお読みください。また、コミュニティは[行動規範](https://github.com/langgenius/.github/blob/main/CODE_OF_CONDUCT.md)を遵守しています。10 11## 飛び込む前に12 13[既存の Issue](https://github.com/langgenius/dify/issues?q=is:issue+is:open) を探すか、[新しい Issue](https://github.com/langgenius/dify/issues/new/choose) を作成してください。私たちは Issue を 2 つのタイプに分類しています。14 15### 機能リクエスト16 17* 新しい機能要望を出す場合は、提案する機能が何を実現するものなのかを説明し、可能な限り多くのコンテキストを含めてください。[@perzeusss](https://github.com/perzeuss)は、あなた様の要望を書き出すのに役立つ [Feature Request Copilot](https://udify.app/chat/MK2kVSnw1gakVwMX) を作ってくれました。気軽に試してみてください。18 19* 既存の課題から 1 つ選びたい場合は、その下にコメントを書いてください。20 21 関連する方向で作業しているチームメンバーが参加します。すべてが良好であれば、コーディングを開始する許可が与えられます。私たちが変更を提案した場合にあなた様の作業が無駄になることがないよう、それまでこの機能の作業を控えていただくようお願いいたします。22 23 提案された機能がどの分野に属するかによって、あなた様は異なるチーム・メンバーと話をするかもしれません。以下は、各チームメンバーが現在取り組んでいる分野の概要です。24 25| Member | Scope |26| --------------------------------------------------------------------------------------- | ------------------------------------ |27| [@yeuoly](https://github.com/Yeuoly) | エージェントアーキテクチャ |28| [@jyong](https://github.com/JohnJyong) | RAG パイプライン設計 |29| [@GarfieldDai](https://github.com/GarfieldDai) | workflow orchestrations の構築 |30| [@iamjoel](https://github.com/iamjoel) & [@zxhlyh](https://github.com/zxhlyh) | フロントエンドを使いやすくする |31| [@guchenhe](https://github.com/guchenhe) & [@crazywoola](https://github.com/crazywoola) | 開発者体験、何でも相談できる窓口 |32| [@takatost](https://github.com/takatost) | 全体的な製品の方向性とアーキテクチャ |33 34優先順位の付け方:35 36| Feature Type | Priority |37| --------------------------------------------------------------------------------------------------------------------- | --------------- |38| チームメンバーによってラベル付けされた優先度の高い機能 | High Priority |39| [community feedback board](https://github.com/langgenius/dify/discussions/categories/feedbacks)の人気の機能リクエスト | Medium Priority |40| 非コア機能とマイナーな機能強化 | Low Priority |41| 価値はあるが即効性はない | Future-Feature |42 43### その他 (バグレポート、パフォーマンスの最適化、誤字の修正など)44 45* すぐにコーディングを始めてください46 47優先順位の付け方:48 49| Issue Type | Priority |50| -------------------------------------------------------------------------------------- | --------------- |51| コア機能のバグ(ログインできない、アプリケーションが動作しない、セキュリティの抜け穴) | Critical |52| 致命的でないバグ、パフォーマンス向上 | Medium Priority |53| 細かな修正(誤字脱字、機能はするが分かりにくい UI) | Low Priority |54 55## インストール56 57以下の手順で 、Difyのセットアップをしてください。58 59### 1. このリポジトリをフォークする60 61### 2. リポジトリをクローンする62 63フォークしたリポジトリをターミナルからクローンします。64 65```66git clone git@github.com:<github_username>/dify.git67```68 69### 3. 依存関係の確認70 71Dify を構築するには次の依存関係が必要です。それらがシステムにインストールされていることを確認してください。72 73- [Docker](https://www.docker.com/)74- [Docker Compose](https://docs.docker.com/compose/install/)75- [Node.js v18.x (LTS)](http://nodejs.org)76- [npm](https://www.npmjs.com/) version 8.x.x or [Yarn](https://yarnpkg.com/)77- [Python](https://www.python.org/) version 3.10.x78 79### 4. インストール80 81Dify はバックエンドとフロントエンドから構成されています。82まず`cd api/`でバックエンドのディレクトリに移動し、[Backend README](api/README.md)に従ってインストールします。83次に別のターミナルで、`cd web/`でフロントエンドのディレクトリに移動し、[Frontend README](web/README.md)に従ってインストールしてください。84 85よくある問題とトラブルシューティングの手順については、[installation FAQ](https://docs.dify.ai/v/japanese/learn-more/faq/install-faq) を確認してください。86 87### 5. ブラウザで dify にアクセスする88 89設定を確認するために、ブラウザで[http://localhost:3000](http://localhost:3000)(デフォルト、または自分で設定した URL とポート)にアクセスしてください。Dify が起動して実行中であることが確認できるはずです。90 91## 開発中92 93モデルプロバイダーを追加する場合は、[このガイド](https://github.com/langgenius/dify/blob/main/api/core/model_runtime/README.md)が役立ちます。94 95Agent や Workflow にツールプロバイダーを追加する場合は、[このガイド](./api/core/tools/README.md)が役立ちます。96 97Dify のバックエンドとフロントエンドの概要を簡単に説明します。98 99### バックエンド100 101Dify のバックエンドは[Flask](https://flask.palletsprojects.com/en/3.0.x/)を使って Python で書かれています。ORM には[SQLAlchemy](https://www.sqlalchemy.org/)を、タスクキューには[Celery](https://docs.celeryq.dev/en/stable/getting-started/introduction.html)を使っています。認証ロジックは Flask-login 経由で行われます。102 103```104[api/]105├── constants // コードベース全体で使用される定数設定106├── controllers // APIルート定義とリクエスト処理ロジック107├── core // アプリケーションの中核的な管理、モデル統合、およびツール108├── docker // Dockerおよびコンテナ関連の設定109├── events // イベントのハンドリングと処理110├── extensions // 第三者のフレームワーク/プラットフォームとの拡張111├── fields // シリアライゼーション/マーシャリング用のフィールド定義112├── libs // 再利用可能なライブラリとヘルパー113├── migrations // データベースマイグレーションスクリプト114├── models // データベースモデルとスキーマ定義115├── services // ビジネスロジックの定義116├── storage // 秘密鍵の保存117├── tasks // 非同期タスクとバックグラウンドジョブの処理118└── tests // テスト関連のファイル119```120 121### フロントエンド122 123このウェブサイトは、Typescriptベースの[Next.js](https://nextjs.org/)テンプレートを使ってブートストラップされ、[Tailwind CSS](https://tailwindcss.com/)を使ってスタイリングされています。国際化には[React-i18next](https://react.i18next.com/)を使用しています。124 125```126[web/]127├── app // レイアウト、ページ、コンポーネント128│ ├── (commonLayout) // アプリ全体で共通のレイアウト129│ ├── (shareLayout) // トークン特有のセッションで共有されるレイアウト130│ ├── activate // アクティベートページ131│ ├── components // ページやレイアウトで共有されるコンポーネント132│ ├── install // インストールページ133│ ├── signin // サインインページ134│ └── styles // グローバルに共有されるスタイル135├── assets // 静的アセット136├── bin // ビルドステップで実行されるスクリプト137├── config // 調整可能な設定とオプション138├── context // アプリの異なる部分で使用される共有コンテキスト139├── dictionaries // 言語別の翻訳ファイル140├── docker // コンテナ設定141├── hooks // 再利用可能なフック142├── i18n // 国際化設定143├── models // データモデルとAPIレスポンスの形状を記述144├── public // ファビコンなどのメタアセット145├── service // APIアクションの形状を指定146├── test147├── types // 関数のパラメータと戻り値の記述148└── utils // 共有ユーティリティ関数149```150 151## PR を投稿する152 153いよいよ、私たちのリポジトリにプルリクエスト (PR) を提出する時が来ました。主要な機能については、まず `deploy/dev` ブランチにマージしてテストしてから `main` ブランチにマージします。154マージ競合などの問題が発生した場合、またはプル リクエストを開く方法がわからない場合は、[GitHub's pull request tutorial](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests) をチェックしてみてください。155 156これで完了です!あなた様の PR がマージされると、[README](https://github.com/langgenius/dify/blob/main/README.md) にコントリビューターとして紹介されます。157 158## ヘルプを得る159 160コントリビュート中に行き詰まったり、疑問が生じたりした場合は、GitHub の関連する issue から質問していただくか、[Discord](https://discord.gg/8Tpq4AcN9c)でチャットしてください。161 