悩んでる人コードレビューをAIにやらせたいけど、コードを外部のAPIには送りたくないんだよね…



Dify(ディファイ)とRAG、ローカルLLMを組み合わせれば実現できます。
DifyとRAGを組み合わせると、社内の規約をふまえたレビューを自動化できます。
とはいえ、Difyのナレッジ機能だけでは、コードレビュー専用の構成までは一直線につながりません。
そこで、PR作成からレビュー投稿までを一本の構成図として整理しました。
今回は、Dify RAGでコードレビューを回す構成例を紹介します。
- PRの作成から差分取得・レビュー・コメント投稿までの一連の流れ
- GitHubとGitLabで連携の仕組みが異なるという正確な理解
- コードレビューに使うモデルを選ぶときのライセンスの境目
先に構成の全体像だけ知りたい方はDify RAGでコードレビューを回す基本構成からどうぞ。
※本記事はDify公式ドキュメントの記載にもとづく構成例です(2026年10月確認)。実際に構築・動作検証したものではありません。
Dify RAG|コードレビューを回す基本構成の全体像


Dify RAGでコードレビューを回す構成は、PR作成をきっかけに差分を取得し、レビューしてコメントを返す一連の流れです。
全体の流れ|PR作成から差分取得・レビュー・コメント投稿まで
- GitHubの公式トリガープラグインが、Pull Requestイベントを検知してワークフローを起動する
- ツールプラグインが差分ファイルを取得し、レビュー対象のコードを渡す
- ナレッジ検索ノードが、登録済みの規約やレビュー指摘集から関連情報を検索する
- LLMノードが差分とナレッジを読み、レビューコメントを生成する
- 生成したレビューを、ツールプラグインがPRへ投稿する
この一連の流れは、公式プラグインの組み合わせだけで実現できます。
ローカルで完結させる理由|AIコードレビューをクラウドに頼らない構成
AIコードレビューをクラウドAPIに任せると、差分コードはどこに送られるのでしょうか。
ローカルLLMとDifyを自前でホストすれば、コードを外部に出さずにレビューできます。



精度は大丈夫なの?クラウドのAIの方が賢そうだけど…



規約やレビュー指摘集をナレッジ化すれば、現場に合った指摘ができます。
この構成の軸になるのは、コードを外部に出さずに検証できるという点です。
Difyのライセンスとセルフホスト要件|商用利用できる条件


Difyのライセンスは、Apache License 2.0を改変した独自のオープンソースライセンスです。
ライセンスの基本的な内容|商用利用は原則可能
Difyのライセンスは、他社アプリのバックエンドとしての利用も、企業向けプラットフォームとしての利用も商用利用として許可しています。
ただし、特定の条件に当てはまる場合は、別途商用ライセンスが必要です。
ライセンス全文は、Dify公式GitHubリポジトリのLICENSEファイルで確認できます。
商用利用の分かれ目|マルチテナント運用とロゴ表示
条件は2つです。マルチテナント運用と、ロゴ・著作権表示の変更です。
- マルチテナント運用:1テナント=1ワークスペースを超える運用には、Dify側の許可が必要
- ロゴ・著作権表示:Difyのフロントエンドを使う場合、コンソールやアプリ内の表示を削除・変更できない



個人開発なら、何も気にしなくていいの?



マルチテナントで提供せず、ロゴ表示も変えない使い方なら、この2条件には当たりません。
個人・1チームでのセルフホスト・1テナント運用なら、この2条件には触れません。
セルフホストの最小要件|Docker Composeでの起動条件
Difyのセルフホストには、Docker Compose v2.24.0以降が必要です。
- CPU:2コア以上
- RAM:4GiB以上
- macOS:Docker仮想マシンに仮想CPU2個以上・メモリ8GiB以上を割り当てる
この要件の詳細は、セルフホスト公式手順に明記されています。
この要件はDify本体用で、ローカルLLM推論用のGPU・VRAMは別枠です。
DifyをDockerで動かす場合、Ollamaへの接続URLにlocalhostは使えません。
代わりにhost.docker.internalか、LAN上のIPアドレスを指定します。
どちらのツールで動かすか迷ったときの判断材料は、OllamaとLM Studioの違いです。
コードレビュー用ナレッジの作り方|規約をRAGで検索させる仕組み


コードレビュー用のナレッジは、コーディング規約や過去のレビュー指摘集をDifyに登録してつくります。
登録するナレッジの中身|コーディング規約と過去のレビュー指摘集
ナレッジに向くのは、社内のコーディング規約と、過去のレビューで指摘した内容をまとめた文書です。
Difyは、Markdownやdocx、PDF、csvなど複数の形式を自動で振り分けて取り込みます。
1回のアップロードは最大5ファイル、ファイルサイズは15MBまでという制限があります。
チャンクとインデックスの設定|作成後は変更できない項目に注意
チャンク化には汎用モードと親子モードがあり、作成後にモードは変更できません。
親子モードの親チャンクを全文モードにすると、処理されるのは最初の10,000トークンだけです。
インデックスも高品質とエコノミーの2種類があり、高品質からエコノミーへは戻せません。
この2項目の詳細は、インデックス設定の公式ドキュメントで確認できます。
まずエコノミーで試し、精度が足りなければ高品質に切り替える順番が安全です。
埋め込みモデルの選び方|embeddinggemmaはGemma利用規約
高品質インデックスのベクトル化には、検索用の埋め込みモデルを使います。
| 埋め込みモデル | ライセンス | 商用利用 |
|---|---|---|
| embeddinggemma | Gemma利用規約 | 条件付き可 |
| qwen3-embedding | Apache License 2.0 | 可 |
| all-minilm | Apache License 2.0 | 可 |
| nomic-embed-text | Apache License 2.0 | 可 |
embeddinggemmaはGemma 3ベースで、Gemma利用規約が適用されます(2026年10月確認)。
ライセンスを気にせず使うなら、qwen3-embeddingやall-minilmなどApache 2.0の埋め込みモデルも選べます(2026年10月確認)。
検索方式とRerankの注意点|Ollamaにはネイティブ機能がない
| 検索方式 | 概要 | Rerank |
|---|---|---|
| ベクトル検索 | クエリをベクトル化して近いチャンクを検索 | 任意(無効時は並べ替えなし) |
| 全文検索 | キーワードを含むテキストを逆引き検索 | 任意 |
| ハイブリッド検索 | ベクトル+全文を同時実行し重み付けかRerankで統合 | 重み付けかRerankのどちらかが必須 |
TopKとスコアしきい値は、Rerankを有効にしないと効きません。
Rerankを使うなら、llama.cpp・vLLM・TEI・Xinferenceのいずれかで別途サービスを立てる必要があります。
GitHub連携|Dify公式トリガープラグインでPRごとに自動レビュー


GitHubで使えるのは、Pull Requestイベントで自動起動する公式トリガープラグインです。
トリガーの仕組み|Webhookの自動作成とイベントの種類
公式のgithub_triggerプラグインが、Webhookの作成からシークレット生成、署名検証まで自動化します。
認証はOAuthが推奨ですが、Personal Access Tokenでも構いません。
対応している主なイベントは、pull_request・issues・push・check_runです。
この仕組みは、dify-official-pluginsという公式リポジトリで確認できます。
Pull Requestイベントを選べば、PRが作成されるたびに自動起動する仕組みです。
差分取得からコメント投稿まで|使う4つのツール機能
- github_pull_detail:PRの詳細情報を取得する
- github_pull_files:PRの差分ファイルを取得する
- github_pull_comments:既存のPRコメントを取得する
- github_create_pull_review:レビュー結果をPRに投稿する
この4つを組み合わせれば、差分取得からレビュー投稿までワークフロー内で完結できます。
GitLab連携|Webhookトリガーとワークフロー実行APIで代替する


GitLabには、GitHubと同じ専用トリガープラグインはありませんが、別の方法で同等の仕組みを作れます。
専用プラグインがない理由|確認済み17種のトリガーの対象外
Dify公式のトリガープラグインは17種類確認できましたが、GitLab向けは含まれていません。
一方で、GitLabツールプラグイン自体は存在し、コミットやマージリクエストの操作に使えます。
2026年10月時点の確認であり、今後追加される可能性はあります。
Webhookトリガーで代替する|汎用の受け口
DifyのWebhookトリガーノードは、外部システムからのHTTPリクエストを受けて起動する汎用的な受け口です。
GitLab側は「Settings > Webhooks」の画面から、このURLを登録すれば同じ構成が作れます。
CI/CDからAPIを呼ぶ方法|ワークフロー実行APIという選択肢
GitLab CI/CDのパイプラインから、Difyのワークフロー実行APIを直接呼ぶ構成も可能です。
公式の具体的なYAMLサンプルは見当たらないため、パイプラインの記述は自作が前提になります。
「GitLabは未対応」ではなく、受け口の作り方が違うだけというのが正確な理解です。
レビューモデルの選び方|CodestralとDevstralでライセンスが分かれる


コードレビューに使う生成モデルは、同じ開発元でもライセンスが割れています。
Codestralは商用不可|MNPLの非本番限定ライセンス
| モデル | ライセンス | 商用利用 |
|---|---|---|
| Codestral-22B-v0.1 | MNPL(非本番限定) | 不可 |
| Devstral-Small-2507 | Apache License 2.0 | 可 |
| Qwen3-Coder-Next | Apache License 2.0 | 可 |
Codestral-22B-v0.1は、Mistral AI Non-Production License(MNPL)です。
テスト・研究・個人利用の非本番環境限定で、商用提供は明示的に禁止されています。
商用可の選択肢|DevstralとQwen3-Coder-NextはApache 2.0
Devstralは、Codestralと同じMistral AI製ながらApache License 2.0です。
Qwen3-Coder-Nextも同じくApache 2.0で、商用利用が可能です。
商用でコードレビューを回すなら、現時点ではこの2系統が現実的な選択肢です(2026年10月確認)。
動かせるVRAMの目安は、VRAM別に動かせるモデル一覧のとおりです。
繋ぐモデル自体を広く比較したい場合は、ローカルLLMおすすめモデル比較も参考になります。
Dify RAGコードレビューに関するよくある質問
Dify RAGコードレビューに関するよくある質問をまとめました。
- Dify RAGはコードレビューに対応していますか?
-
ナレッジ機能とワークフローを組み合わせれば、コードレビュー用の構成を作れます。
GitHub公式プラグインを使えば、PR作成から投稿までを自動化できます。
- Difyは無料で商用利用できますか?
-
マルチテナント運用とロゴ表示の変更をしない限り、商用利用が可能です。
この2条件に当てはまる場合は、別途商用ライセンスが必要です。
- GitLabでも同じ構成を作れますか?
-
専用のトリガープラグインはありませんが、Webhookトリガーかワークフロー実行APIを使えば同等の仕組みを作れます。
- OllamaでRerankは使えますか?
-
Ollama単体には、ネイティブのRerank機能がありません。
llama.cppやvLLMなどで、別途Rerankサービスを立てる必要があります。
- Codestralはコードレビューに使っていいですか?
-
MNPLの非本番限定ライセンスのため、商用のコードレビューには使えません。
商用利用ならDevstralやQwen3-Coder-Nextが代替になります(2026年10月確認)。
まとめ|Dify RAGでコードレビューを回す構成のポイント
Dify RAGでコードレビューを回す前に整理しておきたい点を、ここまでの内容からまとめました。
基本構成:PR作成→差分取得→ナレッジ検索とLLMレビュー→コメント投稿の4工程で完結します。
ライセンス:Difyは商用利用可能ですが、マルチテナント運用とロゴ変更には別途ライセンスが必要です。
GitHub/GitLab:GitHubは公式トリガープラグインがあり、GitLabはWebhookかAPIで同等の構成を作ります。
ナレッジ設計:コーディング規約と過去のレビュー指摘集を登録し、検索方式とRerankの要否を確認します。
モデル選定:Codestralは商用不可、DevstralとQwen3-Coder-Nextが商用利用できる代替です。
応用として、Dify+画像生成を組み合わせ、レビュー指摘からワイヤーフレーム素案を作る使い方も考えられます。
接続するツールやモデル選びで迷ったら、以下もあわせて確認してみてください。
- OllamaとLM Studioの違い:ローカルLLMをどちらで動かすか迷ったら確認できます
- VRAM別に動かせるモデル一覧:レビュー用モデルを搭載VRAMから選べます
- ローカルLLMおすすめモデル比較:繋ぐモデルそのものを選ぶときに使えます
- ローカルLLMの活用方法(カテゴリトップ):他の活用例もまとめて確認できます






コメント