cciwon-code-review-cli 1.0.0 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,233 @@
1
+ # cciwon-code-review-cli
2
+
3
+ AI 기반 코드 리뷰 CLI 도구 (Qwen3-Coder-30B DPO 파인튜닝 모델 사용)
4
+
5
+ ## 특징
6
+
7
+ - 🔒 **폐쇄망 지원**: IP 화이트리스트 기반 (192.168.10.152)
8
+ - 📁 **폴더 전체 리뷰**: 프로젝트 전체를 한 번에 분석
9
+ - 📄 **파일 단위 리뷰**: 개별 파일 심층 분석
10
+ - 🛡️ **보안 중심**: SQL Injection, XSS 등 보안 취약점 탐지
11
+ - ⚡ **빠른 응답**: vLLM 기반 고성능 추론
12
+
13
+ ## 설치
14
+
15
+ ### 1. 서버 설정
16
+
17
+ 먼저 vLLM 서버를 시작해야 합니다:
18
+
19
+ ```bash
20
+ # 필수 패키지 설치
21
+ pip install vllm fastapi uvicorn
22
+
23
+ # 서버 실행
24
+ cd /home/cwk317/codereivew
25
+ python vllm_server.py
26
+ ```
27
+
28
+ 서버가 `192.168.10.152:8000`에서 실행됩니다.
29
+
30
+ ### 2. CLI 설치
31
+
32
+ ```bash
33
+ cd code-review-cli
34
+ npm install
35
+ npm link # 전역 설치
36
+ ```
37
+
38
+ 또는 로컬에서 직접 사용:
39
+
40
+ ```bash
41
+ node bin/code-review.js <command>
42
+ ```
43
+
44
+ ## 사용법
45
+
46
+ ### 서버 상태 확인
47
+
48
+ ```bash
49
+ code-review health
50
+ ```
51
+
52
+ 출력 예시:
53
+ ```
54
+ ✅ 서버 정상 작동 중
55
+
56
+ 서버 정보:
57
+ - 상태: healthy
58
+ - 모델 로드: 완료
59
+ - 서버 URL: http://192.168.10.152:8000
60
+ ```
61
+
62
+ ### 폴더 전체 리뷰
63
+
64
+ ```bash
65
+ code-review folder /path/to/project
66
+ ```
67
+
68
+ 옵션:
69
+ - `-i, --include <patterns>`: 포함할 파일 패턴 (기본: `*.py,*.js,*.ts,*.java,*.cpp,*.go`)
70
+ - `-e, --exclude <patterns>`: 제외할 패턴 (기본: `node_modules,__pycache__,.git,*.pyc`)
71
+ - `-m, --max-files <number>`: 최대 파일 수 (기본: 50)
72
+
73
+ 예시:
74
+ ```bash
75
+ # Python 프로젝트 리뷰
76
+ code-review folder ./my-python-project -i "*.py" -e "__pycache__,*.pyc,venv"
77
+
78
+ # JavaScript 프로젝트 리뷰
79
+ code-review folder ./my-js-project -i "*.js,*.jsx" -e "node_modules,dist,build"
80
+
81
+ # 모든 코드 파일 리뷰 (최대 100개)
82
+ code-review folder ./my-project -m 100
83
+ ```
84
+
85
+ ### 단일 파일 리뷰
86
+
87
+ ```bash
88
+ code-review file /path/to/file.py
89
+ ```
90
+
91
+ 옵션:
92
+ - `-l, --language <lang>`: 프로그래밍 언어 (기본: python)
93
+ - `-c, --checklist <path>`: 체크리스트 파일 경로
94
+
95
+ 예시:
96
+ ```bash
97
+ # Python 파일 리뷰
98
+ code-review file ./app.py -l python
99
+
100
+ # TypeScript 파일 + 체크리스트
101
+ code-review file ./api.ts -l typescript -c ./checklist.txt
102
+
103
+ # Java 파일 리뷰
104
+ code-review file ./Main.java -l java
105
+ ```
106
+
107
+ ## VSCode 통합
108
+
109
+ ### 방법 1: Tasks 사용
110
+
111
+ `.vscode/tasks.json` 파일 생성:
112
+
113
+ ```json
114
+ {
115
+ "version": "2.0.0",
116
+ "tasks": [
117
+ {
118
+ "label": "Code Review: Current Folder",
119
+ "type": "shell",
120
+ "command": "code-review folder ${workspaceFolder}",
121
+ "problemMatcher": [],
122
+ "presentation": {
123
+ "reveal": "always",
124
+ "panel": "new"
125
+ }
126
+ },
127
+ {
128
+ "label": "Code Review: Current File",
129
+ "type": "shell",
130
+ "command": "code-review file ${file}",
131
+ "problemMatcher": [],
132
+ "presentation": {
133
+ "reveal": "always",
134
+ "panel": "new"
135
+ }
136
+ }
137
+ ]
138
+ }
139
+ ```
140
+
141
+ 사용법:
142
+ 1. `Ctrl+Shift+P` → `Tasks: Run Task`
143
+ 2. `Code Review: Current Folder` 또는 `Code Review: Current File` 선택
144
+
145
+ ### 방법 2: 터미널에서 직접 사용
146
+
147
+ VSCode 내장 터미널에서:
148
+
149
+ ```bash
150
+ # 현재 워크스페이스 리뷰
151
+ code-review folder .
152
+
153
+ # 특정 파일 리뷰
154
+ code-review file src/main.py
155
+ ```
156
+
157
+ ## 환경 변수
158
+
159
+ 서버 URL을 변경하려면 환경 변수 설정:
160
+
161
+ ```bash
162
+ export CODE_REVIEW_SERVER=http://192.168.10.152:8000
163
+ code-review health
164
+ ```
165
+
166
+ ## IP 화이트리스트
167
+
168
+ 현재 허용된 IP:
169
+ - `192.168.10.152` (서버 IP)
170
+ - `127.0.0.1` (로컬 테스트용)
171
+
172
+ 다른 IP에서 접근 시:
173
+ ```
174
+ ❌ 허용된 아이피가 아닙니다
175
+ 현재 IP: 192.168.10.xxx
176
+ 허용된 IP: 192.168.10.152, 127.0.0.1
177
+ ```
178
+
179
+ IP 추가하려면 `vllm_server.py`의 `ALLOWED_IPS` 수정:
180
+
181
+ ```python
182
+ ALLOWED_IPS = ["192.168.10.152", "127.0.0.1", "192.168.10.100"] # 새 IP 추가
183
+ ```
184
+
185
+ ## 트러블슈팅
186
+
187
+ ### 서버 연결 실패
188
+
189
+ ```
190
+ ❌ 서버 연결 실패
191
+ 서버 연결 실패: http://192.168.10.152:8000
192
+ 서버가 실행 중인지 확인하세요.
193
+ ```
194
+
195
+ 해결:
196
+ 1. vLLM 서버가 실행 중인지 확인: `ps aux | grep vllm_server`
197
+ 2. 서버 로그 확인: `tail -f /path/to/server.log`
198
+ 3. 방화벽 확인: `sudo ufw status`
199
+
200
+ ### IP 차단
201
+
202
+ ```
203
+ ❌ 허용된 아이피가 아닙니다
204
+ ```
205
+
206
+ 해결:
207
+ 1. 현재 IP 확인: `curl ifconfig.me`
208
+ 2. `vllm_server.py`의 `ALLOWED_IPS`에 추가
209
+ 3. 서버 재시작
210
+
211
+ ### 메모리 부족
212
+
213
+ vLLM 서버가 OOM으로 죽는 경우:
214
+
215
+ `vllm_server.py` 수정:
216
+ ```python
217
+ llm = LLM(
218
+ model=OUTPUT_DIR,
219
+ tensor_parallel_size=2,
220
+ gpu_memory_utilization=0.7, # 0.9 → 0.7로 감소
221
+ max_model_len=1024, # 2048 → 1024로 감소
222
+ )
223
+ ```
224
+
225
+ ## 성능
226
+
227
+ - 평균 응답 시간: ~5초 (폴더 리뷰, 10개 파일 기준)
228
+ - 동시 처리: vLLM 배치 처리로 여러 요청 동시 처리 가능
229
+ - GPU 사용량: 2x RTX 5090 (50-60GB)
230
+
231
+ ## 라이선스
232
+
233
+ MIT
package/lib/api-client.js CHANGED
@@ -2,7 +2,7 @@
2
2
  const axios = require('axios');
3
3
 
4
4
  class CodeReviewClient {
5
- constructor(serverUrl = 'http://192.168.10.152:8000') {
5
+ constructor(serverUrl = 'http://211.56.247.71:8000') {
6
6
  this.serverUrl = serverUrl;
7
7
  this.client = axios.create({
8
8
  baseURL: serverUrl,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cciwon-code-review-cli",
3
- "version": "1.0.0",
3
+ "version": "1.0.1",
4
4
  "description": "AI-powered code review CLI tool using Qwen3-Coder-30B model with IP whitelist support",
5
5
  "main": "lib/api-client.js",
6
6
  "bin": {