# 策展 · X (Twitter) 🔥

> 📖 本站完整內容索引（documentation index）：[llms.txt](/llms.txt)

> 作者：OPM (@mihirtwt) · 平台：X (Twitter) · 日期：2026-04-11

> 原始來源：https://x.com/mihirtwt/status/2042889893085614443

## 中文摘要

開源 AI 程式碼審查系統 OpenReview 實作解析。

OpenReview 是一個正在開發中的開源 AI 程式碼審查系統，旨在透過整合向量搜尋與全程式庫索引，提供具備實際程式碼脈絡的審查體驗。該專案目前正積極開發中，目標是實現與 CodeRabbit 等商業產品的功能對等，並作為開發者深入理解複雜系統運作的實作範例。

**核心架構與索引機制**
系統透過 GitHub Webhook 觸發事件，並在使用者安裝時自動對程式庫進行索引。其資料流設計包含以下關鍵步驟：
- 系統會自動過濾無關檔案，排除 `node_modules`、二進位 asset、建置產物（如 `dist`、`.next`）以及 minified 檔案。
- 索引流程採用分塊策略（Chunking），以 500 行為單位進行切分，並保留 50 行重疊以維持上下文連續性。
- 每個檔案區塊會生成向量嵌入（Embeddings）並存入 Pinecone 向量資料庫，以便後續進行語意搜尋。
- 採用「非同步」佇列架構處理索引任務，確保系統在高負載下的穩定性與可擴展性。

**智慧化差異分析與優化**
為了避免全量重新索引帶來的資源浪費，系統實作了基於差異（Diff-based）的索引邏輯：
- 系統會比較提交前後的雜湊值（SHA-256），僅針對變更的檔案進行處理，未變更檔案則直接跳過。
- 透過 GitHub Compare API 僅擷取變更檔案（新增、修改、刪除），並從索引中移除已刪除的檔案。
- 針對強制推送（Force push）、首次提交或大型差異（超過 500 個檔案）等邊緣情況，系統會自動降級回全量索引，確保資料一致性。

**自動化審查流程**
當使用者發起 Pull Request 時，系統會自動啟動審查工作流：
- 透過 `pr-processor` 獲取詳細的程式碼差異，並將任務加入審查佇列。
- 利用向量搜尋檢索程式庫中的相似程式碼，為 AI 提供必要的上下文脈絡。
- 由 AI (Gemini) 生成審查建議，內容包含行內註解（Inline comments）、詳細摘要，甚至包含序列圖與 walkthrough，並透過 GitHub 介面回饋給使用者。

**技術堆疊與發展藍圖**
該專案採用 Monorepo 架構，全專案使用 TypeScript 開發，並整合 Turborepo 進行建置管理。目前已實現 PR 處理、向量索引與 AI 審查生成等核心功能。開發者規劃的未來藍圖包括：
- 互動式功能：聊天介面以進行後續追問、程式碼解釋。
- 審查增強：自定義審查規則（安全性、效能、最佳實踐）、測試生成。
- 管理與商業化：多租戶管理、訂閱計費、API 外部存取介面。
- 進階分析：提交層級分析、審查自動化規則配置。

## 標籤

開源專案, AIGC, RAG, OpenReview, CodeRabbit, GitHub
