๐ค AI ้ฉฑๅจ็ๆบ่ฝไปฃ็ ๅฎกๆฅๅทฅๅ ท โ ็ฒ่ดดไปฃ็ ๏ผ่ชๅจๆฃๆต็ผบ้ทใๅฎๅ จๆผๆดๅๆง่ฝ้ฎ้ข
|
|
|
|
ไธๆญขไบๅ็ฐ้ฎ้ข โ ๅฎกๆฅๅฎๆๅ๏ผไฝ ๅฏไปฅไธ AI ๆ็ปญๅฏน่ฏ๏ผๆทฑๅ ฅ็่งฃไปฃ็ ้ป่พใๆข็ดขไผๅๆนๆกใ่ทๅไฟฎๅคไปฃ็ ๏ผ
๐ ๆไบคไปฃ็ ๐ AI ๅฎกๆฅๆฅๅ ๐ฌ ๅค่ฝฎๅฏน่ฏ
โโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ ็ฒ่ดดไปฃ็ โ โโโโ โ ๅ็ฐ 3 ไธช้ฎ้ข โ โโโโ โ "่ฟไธช SQL ๆณจๅ
ฅๆไนไฟฎๅค๏ผ" โ
โ ๆไธไผ ๆไปถโ โ ยท SQL ๆณจๅ
ฅ โ โ โ AI ็ปๅบๅๆฐๅๆฅ่ฏขๆนๆก โ
โ โ โ ยท ๆง่ฝ้ๆฃ โ โ โ
โ โ โ ยท ็ฑปๅ็ผบ้ท โ โ "ไธบไปไน็จๅๆฐๅๆดๅฅฝ๏ผ" โ
โ โ โโโโโโโโโโโโโโโโ โ โ AI ่งฃ้ๅ็ๅๆปๅปๅบๆฏ โ
โ โ โ โ
โ โ โ "ๅธฎๆ้ๆๆดไธชๆฅ่ฏขๅฝๆฐ" โ
โ โ โ โ AI ็ๆๅฎๆดไฟฎๅคไปฃ็ โ
โ โ โ โ
โ โ โ "่ฟๆๅ
ถไปๅฎๅ
จ้ฎ้ขๅ๏ผ" โ
โ โ โ โ AI ็ปง็ปญๆทฑๅ
ฅๅๆ... โ
โโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
ๅ ธๅไฝฟ็จๅบๆฏ๏ผ
| ๅบๆฏ | ็คบไพๆ้ฎ |
|---|---|
| ๐ ็่งฃ้ฎ้ข | "่ฟไธช็ฉบๆ้ๅจๅชไธ่ก๏ผไปไนๆ ๅตไธไผ่งฆๅ๏ผ" |
| ๐ ๏ธ ่ทๅไฟฎๅค | "็ดๆฅ็ปๆไฟฎๅคๅ็ๅฎๆดไปฃ็ " |
| ๐ ๅญฆไน ๅ็ | "ไธบไปไน่ฟ้ไผๆ N+1 ๆฅ่ฏข๏ผไปไนๆฏ eager loading๏ผ" |
| ๐ ๆข็ดขๆนๆก | "้คไบไฝ ๅปบ่ฎฎ็ๆนๆก๏ผ่ฟๆๅ ถไปๅฎ็ฐๆนๅผๅ๏ผๅ่ชไผ็ผบ็น๏ผ" |
| โ ้ช่ฏๆ่ทฏ | "ๆๆ็ฎ็จ Redis ็ผๅญๆฅไผๅ๏ผ่ฟไธชๆนๆกๅฏ่กๅ๏ผ" |
| ๐งช ็ๆๆต่ฏ | "ๅธฎๆ้ๅฏน่ฟไบไฟฎๅคๅๅๅ ๆต่ฏ" |
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Frontend (React) โ
โ Vite + React 18 + TypeScript + Zustand + TailwindCSS โ
โ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ Monaco โ โ React-Query โ โ Zustand โ โ
โ โ Editor โ โ (Data) โ โ (State) โ โ
โ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ HTTP + REST API
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Backend (NestJS) โ
โ โโโโโโโโโโโโโ โโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ Config โโ โ AI Agent โโ โ MongoDB โ โ
โ โ Module โ โ Service โ โ (Mongoose) โ โ
โ โโโโโโโโโโโโโ โโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ โ
โ โผ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ LangChain.js + Zod Schema โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ AI Provider Layer โ
โ โโโโโโโโโโโโ โโโโโโโโโโโโ โโโโโโโโโโโโ โโโโโโโโโโโโ โ
โ โ OpenAI โ โ Claude โ โ DeepSeek โ โ ่ชๅฎไน โ โ
โ โโโโโโโโโโโโ โโโโโโโโโโโโ โโโโโโโโโโโโ โโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
| ็ฏๅข | ็ๆฌ |
|---|---|
| Node.js | >= 18 |
| pnpm | >= 9 |
| MongoDB | >= 6 |
# 1. ๅ
้้กน็ฎ
git clone https://github.com/Sfrui/ai-code-review-agent.git
cd ai-code-review-agent
# 2. ๅฎ่ฃ
ไพ่ต
pnpm install
# 3. ้
็ฝฎ็ฏๅขๅ้
cp .env.example apps/server/.env
# ็ผ่พ apps/server/.env๏ผๅกซๅ
ฅ LLM_API_KEY
# 4. ๅฏๅจๅผๅๆๅกๅจ
pnpm dev่ฎฟ้ฎ http://localhost:5173 ๅผๅงไฝฟ็จ ๐
# ไธ้ฎ้จ็ฝฒๅ็ซฏ + MongoDB
git clone https://github.com/Sfrui/ai-code-review-agent.git
cd ai-code-review-agent
docker compose up --build็นๅปๅฑๅผ้กน็ฎ็ปๆ
ai-code-review-agent/
โโโ apps/
โ โโโ server/ # NestJS ๅ็ซฏ
โ โ โโโ src/
โ โ โโโ modules/
โ โ โ โโโ ai/ # ๐ค AI Agent ๆจกๅ
โ โ โ โโโ chat/ # ๐ฌ ๅค่ฝฎๅฏน่ฏๆจกๅ
โ โ โ โโโ config/ # โ๏ธ ้
็ฝฎๆจกๅ
โ โ โ โโโ database/ # ๐๏ธ ๆฐๆฎๅบๆจกๅ
โ โ โ โโโ review/ # ๐ ๅฎกๆฅๆจกๅ
โ โ โโโ common/ # ๐ง ้็จๅทฅๅ
ท
โ โโโ web/ # React ๅ็ซฏ
โ โโโ src/
โ โโโ pages/ # ๐ ้กต้ข็ปไปถ
โ โโโ components/ # ๐งฉ UI ็ปไปถ
โ โโโ api/ # ๐ API ๅฐ่ฃ
โ โโโ stores/ # ๐ฆ ็ถๆ็ฎก็
โ โโโ hooks/ # ๐ช React Hooks
โโโ packages/shared/ # ๐ ๅ
ฑไบซ็ฑปๅๅ Schema
โโโ nginx/ # ๐ Nginx ๅๅไปฃ็้
็ฝฎ
โโโ docker-compose.yml # ๐ณ Docker ็ผๆ
โโโ CLAUDE.md # ๐ค Claude Code ้กน็ฎๆๅผ
โโโ README.md # ๐ ้กน็ฎ่ฏดๆ
| ๅ้ๅ | ๅฟ ๅกซ | ้ป่ฎคๅผ | ่ฏดๆ |
|---|---|---|---|
LLM_API_KEY |
โ | - | LLM API ๅฏ้ฅ |
LLM_PROVIDER |
openai |
ๆไพๅ | |
LLM_MODEL |
gpt-4o |
ๆจกๅๅ็งฐ | |
LLM_TEMPERATURE |
0.1 |
ๆธฉๅบฆ | |
LLM_MAX_TOKENS |
4096 |
ๆๅคง token | |
LLM_TIMEOUT |
60000 |
่ถ ๆถๆถ้ด | |
MONGODB_URI |
mongodb://localhost:27017/ai-code-review |
MongoDB ๅฐๅ | |
PORT |
3000 |
ๆๅก็ซฏๅฃ |
ๆฌข่ฟๆๆๅฝขๅผ็่ดก็ฎ๏ผ
- Fork ๆฌไปๅบ
- ๅๅปบไฝ ็็นๆงๅๆฏ (
git checkout -b feature/AmazingFeature) - ๆไบคไฝ ็ไฟฎๆน (
git commit -m 'feat: Add some AmazingFeature') - ๆจ้ๅฐๅๆฏ (
git push origin feature/AmazingFeature) - ๆๅผไธไธช Pull Request
- ๅฎกๆฅไปปๅกๅ ้คๅ่ฝ๏ผๅธฆ็กฎ่ฎคๅผน็ช้ฒ่ฏฏๅ ๏ผ
- C ่ฏญ่จๆฏๆ๏ผ่ฏญๆณๅฎกๆฅใๆไปถไธไผ ใๆฉๅฑๅๆ ๅฐ๏ผ
- AI ๅฎกๆฅๆ็คบ่ฏ้้ ๅค่ฏญ่จ็นๆง๏ผC ่ฏญ่จๆ้/ๅ ๅญ้ฎ้ข็ญ๏ผ
- Nginx ๅๅไปฃ็้ ็ฝฎ็ฎๅฝ
- CLAUDE.md ้กน็ฎๆๅผๆไปถ
- HistoryPage ๅก็ๅธๅฑไผๅ๏ผๅ ้คๆ้ฎ hover ๆพ็คบ
- TailwindCSS ้ ็ฝฎ๏ผๆฐๅข scale-in ๅจ็ป๏ผไฟฎๅค require() ไธบ ESM import
- Docker Compose ้ ็ฝฎๆณจ้ไผๅ
- .gitignore ่กฅๅ shared/dist ็ฎๅฝ
- ็งป้ค่ฟๆถ็ server-deploy.sh ้จ็ฝฒ่ๆฌ
- ๅค่ฝฎๅฏน่ฏ่ฟฝ้ฎๅ่ฝ๏ผSSE ๆตๅผ่พๅบ๏ผ
- ๅฟซๆท่ฟฝ้ฎๆ้ฎ๏ผๅฆไฝไฟฎๅคใ่ฏฆ็ป่งฃ้ใๅค็งๆนๆกใไฟฎๅคๅๆต่ฏ๏ผ
- ๅฏน่ฏๅๅฒๆไน ๅๅฐๆฐๆฎๅบ
- AI ่ฎพ็ฝฎ้กต้ขใๆต่ฏ่ฟๆฅใๆ้ฎ
- API ๅปถ่ฟๆพ็คบๅๆบ่ฝ้่ฏฏๆ็คบ
- ไฟฎๅค SSE ๆตๅผๅๅบ่ขซๆฆๆชๅจ็ ดๅ็้ฎ้ข
- ไฟฎๅคๅคงๆฎตไปฃ็ ๆไบค 500 ้่ฏฏ๏ผbody-parser 1MB โ 10MB๏ผ
- ไฟฎๅค Vite ไปฃ็็ผๅฒๅฏผ่ด SSE ไธญๆญ็้ฎ้ข
- ๅค็ปดๅบฆไปฃ็ ๅฎกๆฅ๏ผ็ผบ้ทใๅฎๅ จใๆง่ฝใ่ง่๏ผ
- ๆฏๆๅค็ง AI ๆจกๅ๏ผOpenAIใClaudeใDeepSeek ็ญ๏ผ
- Monaco Editor ไปฃ็ ็ผ่พๅจ
- ๅฎๆถๅฎกๆฅ่ฟๅบฆๆพ็คบ
- ๅๅฒ่ฎฐๅฝๆไน ๅ
- Docker ไธ้ฎ้จ็ฝฒ
- SSL ่ฏไนฆ่ชๅจ้ ็ฝฎ
ๆฌ้กน็ฎ้็จ MIT License ๅผๆบๅ่ฎฎ
ๅฆๆ่งๅพๆ็จ๏ผ่ฏท็ปไธช โญ ๆฏๆไธไธ๏ผ
Made with โค๏ธ by Sfrui