Skip to content

Latest commit

ย 

History

34 Commits

Folders and files

NameName
Last commit message
Last commit date
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

CodaGraph-lite

Version Node.js Python License

ๆœฌๅœฐไผ˜ๅ…ˆ็š„ AI Code Review ๅนณๅฐ

้ซ˜ไฟกๅทๅฎกๆŸฅใ€ๅฏๆŽงๆˆๆœฌใ€ๅฏๆ›ฟๆข LLM API


็›ฎๅฝ•


้กน็›ฎ็ฎ€ไป‹

CodaGraph-lite ๆ˜ฏไธ€ไธช้ขๅ‘ไธชไบบๅผ€ๅ‘่€…ๅ’Œๅฐๅ›ข้˜Ÿ็š„ local-first ไปฃ็ ๅฎกๆŸฅๅนณๅฐใ€‚ไฝ ๅฏไปฅๆŠŠๅฎƒ็›ดๆŽฅ้ƒจ็ฝฒๅœจๆœฌๅœฐๆˆ–็งๆœ‰็Žฏๅขƒ้‡Œ๏ผŒ็”จ่‡ชๅทฑ็š„ Git ๅนณๅฐๅ‡ญๆฎใ€่‡ชๅทฑ็š„ LLM API ๅ’Œ่‡ชๅทฑ็š„่ฟ่กŒ็ญ–็•ฅๅฎŒๆˆๆ—ฅๅธธ PR review๏ผŒ่€Œไธ้œ€่ฆไธ€ๅฅ—ๅคๆ‚็š„ๅค–้ƒจๅŸบ็ก€่ฎพๆ–ฝใ€‚

ๅฎƒไฟ็•™ไบ† CodaGraph ็š„ๆ ธๅฟƒๅฎกๆŸฅ่ƒฝๅŠ›๏ผŒไฝ†ๆŠŠไบงๅ“้‡ๅฟƒไปŽโ€œๆ›ด้‡็š„ๆœๅŠก็ผ–ๆŽ’โ€ๅˆ‡ๅˆฐโ€œๆ›ด้ซ˜ไฟกๅท็š„ๅฎกๆŸฅ่พ“ๅ‡บ + ๆ›ดไฝŽ็š„ๆŽฅๅ…ฅๅ’Œ่ฟ่กŒๆˆๆœฌโ€ใ€‚่ฟ™ไนŸๆ›ด่ดด่ฟ‘ Anthropic ๅœจ Code Review with Claude ไธ€ๆ–‡ ้‡Œๅผบ่ฐƒ็š„ๆ–นๅ‘๏ผš็œŸๆญฃๆœ‰ไปทๅ€ผ็š„ review๏ผŒ้‡็‚นๆ˜ฏๅฟซ้€ŸๆŒ‡ๅ‡บๅ€ผๅพ—ไบบๅˆคๆ–ญ็š„้ฃŽ้™ฉ๏ผŒ่€Œไธๆ˜ฏๆŠŠ diff ๅ†ๅค่ฟฐไธ€้ใ€‚

ไธŽๅฎŒๆ•ด็‰ˆ CodaGraph ็š„ๅŒบๅˆซ

็‰นๆ€ง CodaGraph CodaGraph-lite
ๆœๅŠกๆ•ฐ้‡ 5 ไธช็‹ฌ็ซ‹ๆœๅŠก 2 ไธชๆœๅŠก๏ผˆๅ‰็ซฏ+ๅŽ็ซฏ๏ผ‰
ๆ•ฐๆฎๅบ“ PostgreSQL + Redis SQLite๏ผˆๅ•ๆ–‡ไปถ๏ผ‰
ๆถˆๆฏ้˜Ÿๅˆ— Bull Queue + Redis ่‡ช็ ” SQLite ้˜Ÿๅˆ—
็”จๆˆท็ณป็ปŸ ๅคš็”จๆˆท + RBAC ๅ•็ฎก็†ๅ‘˜
้ƒจ็ฝฒ่ฆๆฑ‚ Docker Compose ๆœฌๅœฐ็›ดๆŽฅ่ฟ่กŒๆˆ– systemd/PM2
ๅฎกๆŸฅๆจกๅž‹ ๅ›บๅฎšๅนณๅฐ้…็ฝฎ OpenAI / Anthropic / DeepSeek / OpenAI-compatible
ๆˆๆœฌๆŽงๅˆถ ไพ่ต–ๅฎŒๆ•ดๅŸบ็ก€่ฎพๆ–ฝ ๅฏ่‡ช้€‰ๆจกๅž‹ใ€Base URL ไธŽ้‡่ฏ•็ญ–็•ฅ
้€‚็”จๅœบๆ™ฏ ไผไธš SaaS ๆœฌๅœฐ / ็งๆœ‰็Žฏๅขƒ / ๅฐๅ›ข้˜Ÿๆ—ฅๅธธ Review

ๆ ธๅฟƒ็‰นๆ€ง

้ซ˜ไฟกๅทๅฎกๆŸฅ

  • ้›†ๆˆ Code Context Engine ๅš่ฏญไน‰ๅˆ†ๆž๏ผŒ่€Œไธๆ˜ฏๅช็œ‹ patch ๆ–‡ๆœฌ
  • ่พ“ๅ‡บๅฎกๆŸฅๆ‘˜่ฆใ€้ฃŽ้™ฉ็ญ‰็บงใ€่ฆ†็›–็އใ€็ฝฎไฟกๅบฆๅ’Œไธ‹ไธ€ๆญฅๅŠจไฝœ
  • ๆ”ฏๆŒ่กŒ็บง่ฏ„่ฎบไธŽๆŠฅๅ‘Š้กต่”ๅŠจ๏ผŒไผ˜ๅ…ˆๅฑ•็คบ็œŸๆญฃๅฝฑๅ“ๅˆๅนถๅ†ณ็ญ–็š„้—ฎ้ข˜

ๆœฌๅœฐไผ˜ๅ…ˆ

  • ๅŒๆœๅŠกๆžถๆž„๏ผšๅ‰็ซฏ (Next.js 14) + ๅŽ็ซฏ (Express.js)
  • ้›ถๅค–้ƒจไพ่ต–ๆ•ฐๆฎๅบ“๏ผšSQLite ๅ•ๆ–‡ไปถๅญ˜ๅ‚จ๏ผŒๆ— ้œ€ PostgreSQL / Redis
  • ๅฎกๆŸฅๆ•ฐๆฎใ€ไป“ๅบ“ไปค็‰Œๅ’Œ่ฟ่กŒๆ—ฅๅฟ—้ƒฝๅฏไปฅ็•™ๅœจไฝ ่‡ชๅทฑ็š„็Žฏๅขƒ้‡Œ

ๆˆๆœฌๅฏๆŽง

  • ้ป˜่ฎคๅ• Worker ไธฒ่กŒๅค„็†๏ผŒ้ฟๅ… review ไปปๅŠกๆŠŠๆœฌๅœฐๆœบๅ™จๆˆ–ๅฐๅž‹ๆœๅŠกๅ™จๆ‹–ๅžฎ
  • ๅฎกๆŸฅ่ฟ่กŒๆ—ถๅ†…็ฝฎๅœจๅŽ็ซฏ่ฟ›็จ‹ไธญ๏ผŒๅ‡ๅฐ‘้ขๅค–ๆœๅŠกๅ’Œ็ปดๆŠคๆˆๆœฌ
  • ๅฏไปฅๆŒ‰ไป“ๅบ“ๅ’Œๅ›ข้˜Ÿไน ๆƒฏ้€‰ๆ‹ฉๆ›ดไพฟๅฎœใ€ๆ›ดๅฟซๆˆ–ๆ›ดๅผบ็š„ๆจกๅž‹

ๅฏๆ›ฟๆข LLM API

  • ๆ”ฏๆŒ OpenAIใ€Anthropicใ€DeepSeek
  • ๆ”ฏๆŒ OpenAI-compatible Base URL
  • ๅฏไปฅๆŽฅ่‡ชๅปบไปฃ็†ใ€็ฝ‘ๅ…ณๆˆ–ๅ…ผๅฎนๆŽฅๅฃ๏ผŒๆ–นไพฟ็ปŸไธ€ๆˆๆœฌไธŽๆƒ้™็ฎก็†

Web ็ฎก็†็•Œ้ข

  • ็›ด่ง‚็š„ไปช่กจๆฟ็•Œ้ข
  • OAuth ้›†ๆˆ็ฎก็†๏ผˆGitHub/Gitee/GitLab๏ผ‰
  • ไป“ๅบ“็ฎก็†ไธŽ Watch ็Šถๆ€ๆŸฅ็œ‹
  • ๅฎกๆŸฅๅކๅฒใ€ไฝœไธš็Šถๆ€ๅ’Œ LLM ่ฐƒ็”จๆƒ…ๅ†ต้›†ไธญๅฑ•็คบ

้กต้ข้ข„่งˆ

ไปฅไธ‹ๆˆชๅ›พๆฅ่‡ชๆœฌๅœฐ่ฟ่กŒไธญ็š„็œŸๅฎž้กต้ข๏ผŒ็”จไบŽๅฑ•็คบๅฝ“ๅ‰็‰ˆๆœฌ็š„ๅŽๅฐ็•Œ้ขๅ’ŒๆŠฅๅ‘Šไฝ“้ชŒใ€‚

็ณป็ปŸๆฆ‚่งˆไปช่กจๆฟ

็ณป็ปŸๆฆ‚่งˆ
ๆŸฅ็œ‹ไฝœไธšๅžๅใ€LLM Tokenใ€่ต„ๆบ็Šถๆ€ๅ’Œ่ฟ่กŒๆจกๅž‹ใ€‚

ไป“ๅบ“็ฎก็†้กต้ข

ไป“ๅบ“็ฎก็†
้›†ไธญ็ฎก็†ๆŽฅๅ…ฅไป“ๅบ“ใ€Watch ็Šถๆ€ใ€Webhook ๅ’Œไธ‹ไธ€ๆญฅๅŠจไฝœใ€‚

ๆˆ‘็š„ๅทฅไฝœ็ฉบ้—ด้กต้ข

ๆˆ‘็š„ๅทฅไฝœ็ฉบ้—ด
ๆŒ‰ๆ”ถ่—ไป“ๅบ“่šๅˆๆ—ฅๅธธๅ…ณๆณจๅฏน่ฑก๏ผŒ็›ดๆŽฅ่ฟ›ๅ…ฅๅ•ไป“ๅบ“็ฎก็†ๅ’Œ Watch ๆ“ไฝœใ€‚

ๅฎกๆŸฅๆŠฅๅ‘Š้กต้ข

Review ๆŠฅๅ‘Š
ๆธฒๆŸ“ Markdown ๆ‘˜่ฆใ€้ฃŽ้™ฉๅˆ†ๅธƒๅ’Œ GitHub ้ฃŽๆ ผ็š„้—ฎ้ข˜ๆ˜Ž็ป†ใ€‚


ๆŠ€ๆœฏๆ ˆ

ๅ‰็ซฏ

  • ๆก†ๆžถ: Next.js 14 (App Router)
  • UI ๅบ“: React 18 + Tailwind CSS
  • ็Šถๆ€็ฎก็†: React Context API
  • HTTP ๅฎขๆˆท็ซฏ: fetch API

ๅŽ็ซฏ

  • ๆก†ๆžถ: Express.js
  • ่ฏญ่จ€: TypeScript
  • ๆ•ฐๆฎๅบ“: SQLite3 (better-sqlite3)
  • ไฝœไธš้˜Ÿๅˆ—: ่‡ช็ ” SQLite ้˜Ÿๅˆ—
  • ่ฎค่ฏ: Session-based + ๅฏ†็ ๅ“ˆๅธŒ

AI ๆœๅŠก

  • Context Agent: Python 3.11+ (gRPC)
  • Review Runtime: server/src/review/* ๅ†…่ฟ›็จ‹ๆ‰ง่กŒ
  • ไปฃ็ ๅˆ†ๆž: Code Context Engine runtime
  • LLM ๆ”ฏๆŒ: OpenAI, Anthropic, DeepSeek ็ญ‰

้ƒจ็ฝฒ

  • ่ฟ›็จ‹็ฎก็†: systemd / PM2
  • ๆ—ฅๅฟ—: Winston + ็ป“ๆž„ๅŒ–ๆ—ฅๅฟ—
  • ็›‘ๆŽง: ๅ†…็ฝฎๅฅๅบทๆฃ€ๆŸฅๅ’ŒๆŒ‡ๆ ‡็ซฏ็‚น

ไธบไป€ไนˆ้€‚ๅˆๆ—ฅๅธธ Review

CodaGraph-lite ็š„้‡็‚นไธๆ˜ฏโ€œ่ฎฉ AI ๅคš่ฏดไธ€ไบ›โ€๏ผŒ่€Œๆ˜ฏ่ฎฉๅฎกๆŸฅ่พ“ๅ‡บๆ›ดๆŽฅ่ฟ‘็œŸๅฎžๅไฝœไธญ็š„้ซ˜ไปทๅ€ผๅ้ฆˆ๏ผšๅ…ˆๅ‘Š่ฏ‰ไฝ ๅ“ช้‡Œๅฑ้™ฉ๏ผŒๅ†็ป™่ถณๅคŸๅฐ‘ไฝ†่ถณๅคŸๅ…ทไฝ“็š„ comment๏ผŒๆœ€ๅŽๆŠŠๆ˜ฏๅฆๅˆๅนถ็•™็ป™ไบบๅˆคๆ–ญใ€‚

ไผ˜ๅŠฟ ๅ…ทไฝ“ไฝ“็Žฐ
ๆœฌๅœฐไผ˜ๅ…ˆ ๅฏไปฅ่ท‘ๅœจๆœฌๆœบใ€ๅ†…็ฝ‘ๆˆ–็งๆœ‰ไบ‘ไธญ๏ผŒๆŠŠไปฃ็ ใ€ไปค็‰Œๅ’ŒๅฎกๆŸฅ่ฎฐๅฝ•็•™ๅœจ่‡ชๅทฑ็š„็Žฏๅขƒ้‡Œ
้ซ˜ไฟกๅท่พ“ๅ‡บ ๆŠฅๅ‘Šไผšๅฑ•็คบ้ฃŽ้™ฉ็ญ‰็บงใ€่ฆ†็›–็އใ€็ฝฎไฟกๅบฆใ€next actions๏ผŒๅนถไผ˜ๅ…ˆๅ‘ๅธƒๆ›ดๆœ‰ๅฝฑๅ“็š„้—ฎ้ข˜
ๆˆๆœฌๅฏๆŽง SQLite + ๅ†…็ฝฎ้˜Ÿๅˆ— + ๅ• Worker ้ป˜่ฎค็ญ–็•ฅ๏ผŒๅŸบ็ก€่ฎพๆ–ฝๅ’Œๆ—ฅๅธธ review ๆˆๆœฌ้ƒฝๆ›ดไฝŽ
ๆจกๅž‹ๅฏๆ›ฟๆข ๅฏๅœจ OpenAIใ€Anthropicใ€DeepSeek ๅ’Œ OpenAI-compatible API ไน‹้—ดๅˆ‡ๆข
ไบบๆœบๅไฝœ AI ็ป™ overviewใ€inline comment ๅ’Œ trace๏ผŒไบบ่ดŸ่ดฃๆœ€็ปˆๅˆคๆ–ญไธŽๅˆๅนถ

่ฟ่กŒๆ—ถๅฏ่ง‚ๆต‹ๆ€ง

็ณป็ปŸๅ†…็ฝฎไปฅไธ‹็›‘ๆŽง็ซฏ็‚น๏ผš

  • /api/status/memory - ๅ†…ๅญ˜ไฝฟ็”จๆŠฅๅ‘Š
  • /api/status/resources - ๅฎŒๆ•ด่ต„ๆบ็Šถๆ€
  • /health - ๆœๅŠกๅฅๅบทๆฃ€ๆŸฅ
  • 95% (1.9GB) โ†’ ๅœๆญขๆŽฅๅ—ๆ–ฐไฝœไธš

ๅฟซ้€Ÿๅผ€ๅง‹

1. ๅ…‹้š†้กน็›ฎ

git clone https://github.com/your-org/codagraph-lite.git
cd codagraph-lite

2. ๅฎ‰่ฃ…ไพ่ต–

# ๅฎ‰่ฃ… Node.js ไพ่ต–๏ผˆๅ‰็ซฏ + ๅŽ็ซฏ๏ผ‰
npm install

# ๅฎ‰่ฃ… Python ไพ่ต–
cd context-agent && pip install -r requirements.txt && cd ..

3. ้…็ฝฎ็Žฏๅขƒๅ˜้‡

# ๅคๅˆถ็คบไพ‹้…็ฝฎ
cp .env.example .env

# ็ผ–่พ‘้…็ฝฎๆ–‡ไปถ
nano .env

ๅฟ…้กป้…็ฝฎ้กน๏ผš

  • ADMIN_USERNAME - ็ฎก็†ๅ‘˜็”จๆˆทๅ
  • ADMIN_PASSWORD - ็ฎก็†ๅ‘˜ๅฏ†็ 
  • LLM_PROVIDER - LLM ๆไพ›ๅ•†
  • LLM_API_KEY - LLM API ๅฏ†้’ฅ
  • CODE_CONTEXT_ENGINE_ROOT - Code Context Engine runtime ่ทฏๅพ„

4. ๅฎ‰่ฃ… Code Context Engine runtime

# ๆŽจ่๏ผšๅฐ† CodeContextEngine runtime ๆ”พๅˆฐ้กน็›ฎๅŒ็บง็›ฎๅฝ•
git clone <your-code-context-engine-repo> ../CodeContextEngine
npm --prefix ../CodeContextEngine install
npm --prefix ../CodeContextEngine run build

# ๅฏ้€‰๏ผšๅฎ‰่ฃ… CLI ไพฟไบŽๆœฌๅœฐ่ฐƒ่ฏ•
npm install -g code-context-engine

5. ๅฏๅŠจๆœๅŠก

ๅผ€ๅ‘ๆจกๅผ๏ผˆๅ‰็ซฏ + ๅŽ็ซฏๅŒๆ—ถๅฏๅŠจ๏ผ‰๏ผš

npm run dev

ๅฟซ้€ŸๅŽๅฐๅฏๅŠจ/้‡ๅฏ๏ผš

# ๅŽๅฐๅฏๅŠจ๏ผˆๆ—ฅๅฟ—ๅ†™ๅ…ฅ .run/dev.log๏ผ‰
npm run service:start

# ๅœๆญขๆœๅŠก
npm run service:stop

# ้‡ๅฏๆœๅŠก
npm run service:restart

# ้‡็ฝฎ็ฎก็†ๅ‘˜ๅฏ†็ ๏ผˆ้ป˜่ฎคไฝฟ็”จ .env ็š„ ADMIN_USERNAME / ADMIN_PASSWORD๏ผ‰
npm run admin:password:reset

# ๆŒ‡ๅฎš็”จๆˆทๅๅ’Œๆ–ฐๅฏ†็ 
bash ./bin/admin-password-reset.sh admin NewStrongPassword123

็”Ÿไบงๆจกๅผ๏ผš

# ๆž„ๅปบๅ‰็ซฏ
cd web && npm run build && cd ..

# ๅฏๅŠจๆœๅŠก
npm run start

6. ่ฎฟ้—ฎๅบ”็”จ

ๆœๅŠก ๅœฐๅ€ ่ฏดๆ˜Ž
ๅ‰็ซฏ็•Œ้ข http://localhost:3000 ็ฎก็†ไปช่กจๆฟ
ๅŽ็ซฏ API http://localhost:7900 RESTful API
ๅฅๅบทๆฃ€ๆŸฅ http://localhost:7900/health ๆœๅŠก็Šถๆ€

7. ๅˆๅง‹ๅŒ–็ฎก็†ๅ‘˜่ดฆๆˆท

้ฆ–ๆฌก่ฎฟ้—ฎ http://localhost:3000๏ผŒ็ณป็ปŸไผšๅผ•ๅฏผไฝ ๏ผš

  1. ๅˆ›ๅปบ็ฎก็†ๅ‘˜่ดฆๆˆท
  2. ้…็ฝฎ LLM ๆไพ›ๅ•†
  3. ๆŽˆๆƒ Git ๅนณๅฐ๏ผˆGitHub/Gitee/GitLab๏ผ‰

็ณป็ปŸ่ฆๆฑ‚

ๆœ€ไฝŽ้…็ฝฎ๏ผˆๆœฌๅœฐ / ๅ•ๆœบ๏ผ‰

่ต„ๆบ ่ฆๆฑ‚ ่ฏดๆ˜Ž
CPU 2 ๆ ธๅฟƒ ๆ”ฏๆŒ่™šๆ‹ŸๅŒ–ไบ‘ๆœๅŠกๅ™จ
ๅ†…ๅญ˜ 2GB RAM ๆœฌๅœฐ่ฐƒ่ฏ•ๆˆ–ๅฐๅ›ข้˜Ÿไฝฟ็”จ้€šๅธธ่ถณๅคŸ
็ฃ็›˜ 10GB ๅฏ็”จ็ฉบ้—ด ๅŒ…ๅซๆ•ฐๆฎๅบ“ๅ’Œๆ—ฅๅฟ—
ๆ“ไฝœ็ณป็ปŸ Linux (Ubuntu 20.04+) ไนŸๆ”ฏๆŒ macOS / Windows
็ฝ‘็ปœ ๅ…ฌ็ฝ‘ IP ็”จไบŽ Webhook ๅ›ž่ฐƒ

่ฝฏไปถไพ่ต–

# Node.js ็‰ˆๆœฌ
node --version  # 18.0.0 ๆˆ–ๆ›ด้ซ˜

# Python ็‰ˆๆœฌ
python --version  # 3.11 ๆˆ–ๆ›ด้ซ˜

# Code Context Engine runtime๏ผˆCLI ไป…็”จไบŽ่ฐƒ่ฏ•๏ผ‰
code-context-engine --version

ๆŽจ่้…็ฝฎ

่ต„ๆบ ๆŽจ่ ่ฏดๆ˜Ž
CPU 2-4 ๆ ธๅฟƒ ๆ›ดๅฟซ็š„ LLM ๅค„็†
ๅ†…ๅญ˜ 4GB RAM ๆ— ้œ€ Swap๏ผŒๆ›ด็จณๅฎš
็ฃ็›˜ 20GB+ SSD ๆ›ดๅฟซ็š„ๆ•ฐๆฎๅบ“่ฎฟ้—ฎ

้กน็›ฎ็ป“ๆž„

codagraph-lite/
โ”œโ”€โ”€ web/                    # Next.js ๅ‰็ซฏๅบ”็”จ
โ”‚   โ”œโ”€โ”€ app/               # App Router ้กต้ข
โ”‚   โ”œโ”€โ”€ components/         # React ็ป„ไปถ
โ”‚   โ””โ”€โ”€ lib/               # ๅทฅๅ…ทๅ‡ฝๆ•ฐ
โ”œโ”€โ”€ server/                  # Express.js ๅŽ็ซฏๆœๅŠก
โ”‚   โ”œโ”€โ”€ src/               # ๆบไปฃ็ 
โ”‚   โ”‚   โ”œโ”€โ”€ database/      # SQLite ๆ•ฐๆฎๅบ“ๅฑ‚
โ”‚   โ”‚   โ”œโ”€โ”€ queue/          # ไฝœไธš้˜Ÿๅˆ—
โ”‚   โ”‚   โ”œโ”€โ”€ routes/         # API ่ทฏ็”ฑ
โ”‚   โ”‚   โ”œโ”€โ”€ services/       # ไธšๅŠก้€ป่พ‘
โ”‚   โ”‚   โ””โ”€โ”€ review/         # Review runtime / prompt / report modules
โ”‚   โ””โ”€โ”€ tests/            # ๅ•ๅ…ƒๆต‹่ฏ•
โ”œโ”€โ”€ context-agent/          # Python Context Agent
โ”‚   โ”œโ”€โ”€ src/
โ”‚   โ””โ”€โ”€ tests/
โ”œโ”€โ”€ proto/                 # gRPC ๅ่ฎฎๅฎšไน‰
โ”œโ”€โ”€ deploy/                # ้ƒจ็ฝฒ่„šๆœฌ
โ”‚   โ”œโ”€โ”€ *.service          # systemd ๆœๅŠกๆ–‡ไปถ
โ”‚   โ””โ”€โ”€ ecosystem.config.js # PM2 ้…็ฝฎ
โ”œโ”€โ”€ docs/                 # ้กน็›ฎๆ–‡ๆกฃ
โ”œโ”€โ”€ data/                 # SQLite ๆ•ฐๆฎๅบ“ๆ–‡ไปถ
โ”œโ”€โ”€ logs/                 # ๆ—ฅๅฟ—ๆ–‡ไปถ
โ””โ”€โ”€ .env.example          # ็Žฏๅขƒๅ˜้‡็คบไพ‹

ๅŠŸ่ƒฝๆผ”็คบ

1. ็ฎก็†ๅ‘˜็™ปๅฝ•

้ฆ–ๆฌกไฝฟ็”จๆ—ถๅˆ›ๅปบ็ฎก็†ๅ‘˜่ดฆๆˆท๏ผŒๅŽ็ปญไฝฟ็”จ็”จๆˆทๅ/ๅฏ†็ ็™ปๅฝ•ใ€‚

2. OAuth ้›†ๆˆ

ไธ€้”ฎๆŽˆๆƒ่ฟžๆŽฅๅˆฐ๏ผš

  • GitHub - ็‚นๅ‡ป"ๆŽˆๆƒ GitHub"ๆŒ‰้’ฎ
  • Gitee - ็‚นๅ‡ป"ๆŽˆๆƒ Gitee"ๆŒ‰้’ฎ
  • GitLab - ็‚นๅ‡ป"ๆŽˆๆƒ GitLab"ๆŒ‰้’ฎ

ๆŽˆๆƒๅŽ็ณป็ปŸ่‡ชๅŠจ้…็ฝฎ Webhookใ€‚

3. ไป“ๅบ“็ฎก็†

ๆŸฅ็œ‹ๅทฒ่ฟžๆŽฅ็š„ไป“ๅบ“ๅˆ—่กจ๏ผš

  • ๅนณๅฐๅ›พๆ ‡
  • ไป“ๅบ“่ทฏๅพ„
  • ๆœ€ๅŽๅฎกๆŸฅๆ—ถ้—ด
  • ่ฟžๆŽฅ/ๆ–ญๅผ€ๆ“ไฝœ

4. PR ๅฎกๆŸฅๆต็จ‹

  1. ๅผ€ๅ‘่€…ๅœจ Git ๅนณๅฐๅˆ›ๅปบ/ๆ›ดๆ–ฐ Pull Request
  2. Webhook ่งฆๅ‘ CodaGraph-lite ๅŽ็ซฏ
  3. ไฝœไธšๅ…ฅ้˜Ÿ็ญ‰ๅพ…ๅค„็†
  4. Worker ๅ…‹้š†ไป“ๅบ“ๅˆฐๅทฅไฝœๅŒบ
  5. ๅˆๅง‹ๅŒ– Code Context Engine runtime ๅนถๆ”ถ้›†ๆฃ€็ดขไธŠไธ‹ๆ–‡
  6. ๅฏๅŠจ Context Agent ๆ”ถ้›†ไธŠไธ‹ๆ–‡
  7. ๅœจๅŽ็ซฏ่ฟ›็จ‹ๅ†…่ฟ่กŒ Review Runtime ๆ‰ง่กŒๅฎกๆŸฅ
  8. ๆ ผๅผๅŒ–ๅฎกๆŸฅ่ฏ„่ฎบ
  9. ๅ‘ๅธƒ่ฏ„่ฎบๅˆฐๅŽŸๅนณๅฐ

5. ไฝœไธš็›‘ๆŽง

ๅฎžๆ—ถๆŸฅ็œ‹๏ผš

  • ๅฝ“ๅ‰ๅค„็†ไธญ็š„ไฝœไธš
  • ้˜Ÿๅˆ—ไธญ็š„ๅพ…ๅค„็†ไฝœไธš
  • ไฝœไธšๅކๅฒๅ’Œ็Šถๆ€
  • ้”™่ฏฏไฟกๆฏๅ’Œ้‡่ฏ•ๆฌกๆ•ฐ

6. ่ต„ๆบ็›‘ๆŽง

ๆŸฅ็œ‹ๅฎžๆ—ถ๏ผš

  • ๅ†…ๅญ˜ไฝฟ็”จ๏ผˆๆ€ป้‡/ๅ„่ฟ›็จ‹๏ผ‰
  • CPU ไฝฟ็”จ็އ
  • ็ฃ็›˜ไฝฟ็”จ
  • Swap ไฝฟ็”จๆƒ…ๅ†ต

้…็ฝฎ่ฏดๆ˜Ž

่ฏฆ็ป†้…็ฝฎ่ฏดๆ˜Ž่ฏทๅ‚่€ƒ๏ผš

ๅ…ณ้”ฎ้…็ฝฎ้€ŸๆŸฅ

้…็ฝฎ้กน ้ป˜่ฎคๅ€ผ ่ฏดๆ˜Ž
ADMIN_USERNAME admin ็ฎก็†ๅ‘˜็”จๆˆทๅ
ADMIN_PASSWORD changeme ็ฎก็†ๅ‘˜ๅฏ†็ ๏ผˆๅฟ…้กปๆ›ดๆ”น๏ผ‰
WORKER_COUNT 1 ้ป˜่ฎคๅ• Worker๏ผŒ่ฟ่กŒๆ›ดๅฏ้ข„ๆต‹ใ€ๆˆๆœฌๆ›ดๅฏๆŽง
LLM_PROVIDER openai LLM ๆไพ›ๅ•†
LLM_API_KEY - LLM API ๅฏ†้’ฅ
CODE_CONTEXT_ENGINE_ROOT ../CodeContextEngine Code Context Engine runtime ่ทฏๅพ„

้ƒจ็ฝฒๆŒ‡ๅ—

่ฏฆ็ป†็š„้ƒจ็ฝฒ่ฏดๆ˜Ž่ฏทๅ‚่€ƒ๏ผš

้ƒจ็ฝฒ่„šๆœฌ

CodaGraph-lite ๆไพ›ๅฎŒๆ•ด็š„้ƒจ็ฝฒ่„šๆœฌ๏ผŒไฝไบŽ deploy/ ็›ฎๅฝ•๏ผš

่„šๆœฌ ๅŠŸ่ƒฝ ไฝฟ็”จๆ–นๅผ
deploy.sh ไธ€้”ฎ้ƒจ็ฝฒ sudo bash deploy/deploy.sh [systemd|pm2]
uninstall.sh ๅฎŒๅ…จๅธ่ฝฝ sudo bash deploy/uninstall.sh [--remove-data]
verify.sh ้ƒจ็ฝฒ้ชŒ่ฏ bash deploy/verify.sh [--verbose]
validate-env.sh ็Žฏๅขƒๅ˜้‡้ชŒ่ฏ bash deploy/validate-env.sh [--strict] [--fix]
setup-swap.sh Swap ้…็ฝฎ๏ผˆ2GB๏ผ‰ sudo bash deploy/setup-swap.sh
backup.sh ๆ•ฐๆฎๅค‡ไปฝ bash deploy/backup.sh [--full]
restore.sh ๆ•ฐๆฎๆขๅค sudo bash deploy/restore.sh <backup_file>
monitor.sh ็ณป็ปŸ็›‘ๆŽง bash deploy/monitor.sh [--continuous]

ๅฟซ้€Ÿ้ƒจ็ฝฒ๏ผˆsystemd๏ผ‰

# 1. ไธ€้”ฎ้ƒจ็ฝฒ๏ผˆๆŽจ่๏ผ‰
sudo bash deploy/deploy.sh systemd

# 2. ๆˆ–ๆ‰‹ๅŠจ้ƒจ็ฝฒ
npm install
cd context-agent && pip install -r requirements.txt && cd ..
# Review Runtime ๅทฒๅ†…็ฝฎๅœจ server ไธญ๏ผŒไธ้œ€่ฆๅ•็‹ฌๅฎ‰่ฃ… review-agent
cp .env.example .env
nano .env  # ็ผ–่พ‘้…็ฝฎ
cd web && npm run build && cd ..
sudo cp deploy/*.service /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable --now codagraph-lite-backend codagraph-lite-frontend

็ณป็ปŸ็›‘ๆŽง

# ๅ•ๆฌกๆฃ€ๆŸฅ
bash deploy/monitor.sh

# ๆŒ็ปญ็›‘ๆŽง๏ผˆๆŒ‰ Ctrl+C ้€€ๅ‡บ๏ผ‰
bash deploy/monitor.sh --continuous --interval=5

็›‘ๆŽงๆ˜พ็คบๅ†…ๅฎนๅŒ…ๆ‹ฌ๏ผš

  • ็ณป็ปŸไฟกๆฏ๏ผˆไธปๆœบใ€ๆ“ไฝœ็ณป็ปŸใ€่ฟ่กŒๆ—ถ้—ด๏ผ‰
  • CPU ไฝฟ็”จ็އๅ’Œ่ดŸ่ฝฝ
  • ๅ†…ๅญ˜ไฝฟ็”จ็އ๏ผˆRAM + Swap๏ผ‰
  • ็ฃ็›˜ไฝฟ็”จๆƒ…ๅ†ต
  • ๆœๅŠก็Šถๆ€๏ผˆๅ‰็ซฏ/ๅŽ็ซฏ๏ผ‰
  • ่ฟ›็จ‹ไฟกๆฏ๏ผˆNode.js / Python๏ผ‰
  • ่ฟ่กŒๆ—ถ็บฆๆŸๆฃ€ๆŸฅ
  • ไฝœไธš้˜Ÿๅˆ—็Šถๆ€
  • ๅ‘Š่ญฆไฟกๆฏ

ๆ•…้šœๆŽ’้™ค

ๅธธ่ง้—ฎ้ข˜ๅ’Œ่งฃๅ†ณๆ–นๆกˆ่ฏทๅ‚่€ƒ๏ผš

ๅธธ่ง้—ฎ้ข˜้€ŸๆŸฅ

้—ฎ้ข˜ ๅฏ่ƒฝๅŽŸๅ›  ่งฃๅ†ณๆ–นๆกˆ
ๆœๅŠกๆ— ๆณ•ๅฏๅŠจ ็ซฏๅฃ่ขซๅ ็”จ ๆฃ€ๆŸฅ FRONTEND_PORT / BACKEND_PORT
OAuth ๅคฑ่ดฅ ๅ›ž่ฐƒ URL ้”™่ฏฏ ๆฃ€ๆŸฅ *_CALLBACK_URL ้…็ฝฎ
ๅ†…ๅญ˜ไธ่ถณ (OOM) Worker ๆ•ฐ้‡่ฟ‡ๅคš ็กฎไฟ WORKER_COUNT=1
Agent ่ถ…ๆ—ถ ไป“ๅบ“่ฟ‡ๅคง ๅขžๅŠ  AGENT_TIMEOUT_* ๅ€ผ
ๆ•ฐๆฎๅบ“้”ๅฎš SQLite ๆ–‡ไปถๆŸๅ ่ฟ่กŒๆ•ฐๆฎๅบ“ๆขๅคๆˆ–ไปŽๅค‡ไปฝๆขๅค

ๆžถๆž„ๆ–‡ๆกฃ

่ฏฆ็ป†็š„ๆžถๆž„่ฏดๆ˜Ž่ฏทๅ‚่€ƒ๏ผš

ๆžถๆž„ๆฆ‚่งˆ

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                   ๆต่งˆๅ™จ/ๅฎขๆˆท็ซฏ                         โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                 โ”‚ HTTPS
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                  Next.js ๅ‰็ซฏ                   โ”‚
โ”‚            (็ซฏๅฃ 3000, ้™ๆ€ๆ–‡ไปถ)            โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                 โ”‚ HTTP API
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚               Express.js ๅŽ็ซฏ                      โ”‚
โ”‚     (็ซฏๅฃ 7900, API + Worker)               โ”‚
โ”‚                                                  โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”       โ”‚
โ”‚  โ”‚ SQLite ๆ•ฐๆฎๅบ“ โ”‚ ไฝœไธš้˜Ÿๅˆ—  โ”‚ Auth ไธญ้—ดไปถโ”‚       โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜       โ”‚
โ”‚                                                  โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”        โ”‚
โ”‚  โ”‚ gRPC ๅฎขๆˆท็ซฏ   โ”‚ In-process Review     โ”‚        โ”‚
โ”‚  โ”‚ (Context)    โ”‚ Runtime (`src/review`)โ”‚        โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜        โ”‚
โ”‚         โ”‚                   โ”‚                     โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”          โ”‚
โ”‚  โ”‚Context Agent โ”‚    โ”‚ Review Runtime  โ”‚          โ”‚
โ”‚  โ”‚Python 3.11+  โ”‚    โ”‚ Node.js ่ฟ›็จ‹ๅ†…  โ”‚          โ”‚
โ”‚  โ”‚ (ไธดๆ—ถ่ฟ›็จ‹)    โ”‚    โ”‚ ๆ‰ง่กŒไธŽๅ‘ๅธƒ่ฏ„่ฎบ  โ”‚          โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜          โ”‚
โ”‚         โ”‚                   โ”‚                     โ”‚
โ”‚         โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜                    โ”‚
โ”‚                   โ–ผ                              โ”‚
โ”‚            Code Context Engine runtime (็ดขๅผ•)                    โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

           ๅค–้ƒจๅนณๅฐ
    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
    โ”‚GitHub  โ”‚ Gitee  โ”‚GitLab โ”‚
    โ”‚OAuth+  โ”‚ OAuth+ โ”‚ OAuth+ โ”‚
    โ”‚Webhook โ”‚ Webhook โ”‚Webhook โ”‚
    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

่ดก็ŒฎๆŒ‡ๅ—

ๆฌข่ฟŽ่ดก็Œฎ๏ผ่ฏทๅ‚่€ƒ๏ผš

ๅผ€ๅ‘ๆต็จ‹

  1. Fork ้กน็›ฎ
  2. ๅˆ›ๅปบๅŠŸ่ƒฝๅˆ†ๆ”ฏ (git checkout -b feature/AmazingFeature)
  3. ๆไบคๆ›ดๆ”น (git commit -m 'Add some AmazingFeature')
  4. ๆŽจ้€ๅˆฐๅˆ†ๆ”ฏ (git push origin feature/AmazingFeature)
  5. ๅผ€ๅฏ Pull Request

ไปฃ็ ่ง„่Œƒ

  • JavaScript/TypeScript: ESLint + Prettier
  • Python: Black + Ruff + MyPy
  • ๆไบคไฟกๆฏ: Conventional Commits ๆ ผๅผ

ๅ‡็บงๆŒ‡ๅ—

่ฏฆ็ป†็š„ๅ‡็บง่ฏดๆ˜Ž่ฏทๅ‚่€ƒ๏ผš

ๅ‡็บงๆฃ€ๆŸฅๆธ…ๅ•

  • ๅค‡ไปฝๆ•ฐๆฎๅบ“ๆ–‡ไปถ
  • ๅค‡ไปฝ .env ้…็ฝฎ
  • ๅœๆญขๆœๅŠก
  • ๆ‹‰ๅ–ๆœ€ๆ–ฐไปฃ็ 
  • ๅฎ‰่ฃ…ๆ–ฐไพ่ต–
  • ่ฟ่กŒๆ•ฐๆฎๅบ“่ฟ็งป
  • ๅฏๅŠจๆœๅŠก
  • ้ชŒ่ฏๅŠŸ่ƒฝๆญฃๅธธ

ๆ–‡ๆกฃ็ดขๅผ•

ๆ–‡ๆกฃ ่ฏดๆ˜Ž
้…็ฝฎๆŒ‡ๅ— ๅฎŒๆ•ด็Žฏๅขƒๅ˜้‡่ฏดๆ˜Ž
้ƒจ็ฝฒๆŒ‡ๅ— ้ƒจ็ฝฒๆญฅ้ชคๅ’Œไผ˜ๅŒ–
ๆ•…้šœๆŽ’้™ค ๅธธ่ง้—ฎ้ข˜่งฃๅ†ณๆ–นๆกˆ
ๆžถๆž„ๆ–‡ๆกฃ ็ณป็ปŸๆžถๆž„่ฎพ่ฎก
API ๆ–‡ๆกฃ RESTful API ๅ‚่€ƒ
่ดก็ŒฎๆŒ‡ๅ— ๅผ€ๅ‘ๅ’Œ่ดก็Œฎๆต็จ‹
ๅ‡็บงๆŒ‡ๅ— ็‰ˆๆœฌๅ‡็บงๆญฅ้ชค

่ฎธๅฏ่ฏ

MIT License


ๆ”ฏๆŒ


่ฎฉไปฃ็ ๅฎกๆŸฅๆ›ด็ฎ€ๅ•๏ผŒๆ›ด้ซ˜ๆ•ˆ

Made with โค๏ธ by the CodaGraph team

About

No description, website, or topics provided.

Resources

Contributing

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages