File size: 2,816 Bytes
641f51b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
# RemoteAgent ํ”„๋กœ์ ํŠธ - Grok LLM ์ถ”๊ฐ€ ๊ณ„ํš

## ํ”„๋กœ์ ํŠธ ๊ฐœ์š”
ํ˜„์žฌ RemoteAgent ํ”„๋กœ์ ํŠธ๋Š” OpenAI์™€ DeepSeek ๋‘ ๊ฐ€์ง€ LLM์„ ์„ ํƒํ•˜์—ฌ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” RAG ๊ธฐ๋ฐ˜ ์ฑ—๋ด‡ ์‹œ์Šคํ…œ์ž…๋‹ˆ๋‹ค. ์ด ํ”„๋กœ์ ํŠธ์— Grok LLM์„ ์ถ”๊ฐ€ํ•˜๋Š” ์ž‘์—…์„ ์ˆ˜ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค.

## ํ˜„์žฌ ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ ๋ถ„์„

### LLM ์ธํ„ฐํŽ˜์ด์Šค ๊ตฌ์กฐ
ํ˜„์žฌ ํ”„๋กœ์ ํŠธ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ธํ„ฐํŽ˜์ด์Šค ๋ฐ ํด๋ผ์ด์–ธํŠธ ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค:

1. **LLM ์ธํ„ฐํŽ˜์ด์Šค ํด๋ž˜์Šค (`utils/llm_interface.py`)**
   - ๋‹ค์–‘ํ•œ LLM API๋ฅผ ํ†ตํ•ฉ ๊ด€๋ฆฌํ•˜๋Š” ์ธํ„ฐํŽ˜์ด์Šค ์ œ๊ณต
   - ํ˜„์žฌ OpenAI, DeepSeek, ๊ทธ๋ฆฌ๊ณ  ์ƒˆ๋กœ ์ถ”๊ฐ€๋œ Grok LLM ํด๋ผ์ด์–ธํŠธ๋ฅผ ์ดˆ๊ธฐํ™” ๋ฐ ๊ด€๋ฆฌ
   - LLM ์„ ํƒ, ํ…์ŠคํŠธ ์ƒ์„ฑ, RAG ๊ธฐ๋ฐ˜ ํ…์ŠคํŠธ ์ƒ์„ฑ ๋“ฑ์˜ ๋ฉ”์„œ๋“œ ์ œ๊ณต

2. **LLM ํด๋ผ์ด์–ธํŠธ ๊ตฌํ˜„**
   - OpenAI ํด๋ผ์ด์–ธํŠธ (`utils/openai_client.py`)
   - DeepSeek ํด๋ผ์ด์–ธํŠธ (`utils/deepseek_client.py`)
   - Grok ํด๋ผ์ด์–ธํŠธ (`utils/grok_client.py`) - **์ƒˆ๋กœ ์ถ”๊ฐ€๋จ**
   - ๊ฐ ํด๋ผ์ด์–ธํŠธ๋Š” ํ™˜๊ฒฝ ๋ณ€์ˆ˜์—์„œ API ํ‚ค ๋ฐ ์„ค์ • ๋กœ๋“œ
   - ๊ณตํ†ต ์ธํ„ฐํŽ˜์ด์Šค๋กœ `generate()` ๋ฐ `rag_generate()` ๋ฉ”์„œ๋“œ ์ œ๊ณต

3. **์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ†ตํ•ฉ**
   - Flask ๊ธฐ๋ฐ˜ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ (`app/app.py`)
   - LLM ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ดˆ๊ธฐํ™”ํ•˜๊ณ  ์›น API๋ฅผ ํ†ตํ•ด ์ œ๊ณต
   - LLM ์„ ํƒ ๋ฐ ๋ณ€๊ฒฝ API ๊ตฌํ˜„ (`/api/llm`)
   - ์ฑ„ํŒ… ๋ฐ ๋ฌธ์„œ ์—…๋กœ๋“œ ๋“ฑ์˜ ๊ธฐ๋Šฅ ์ œ๊ณต

## ์ž‘์—… ๋‚ด์—ญ

### 1. ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์„ค์ •
- `.env` ํŒŒ์ผ ์ƒ์„ฑ ๋ฐ Grok API ๊ด€๋ จ ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์ถ”๊ฐ€
- API ํ‚ค, ๊ธฐ๋ณธ URL, ๋ชจ๋ธ ๋“ฑ Grok ๊ด€๋ จ ์„ค์ • ๊ตฌ์„ฑ
- ๊ธฐ์กด OpenAI ๋ฐ DeepSeek ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋„ ์ถ”๊ฐ€ํ•˜์—ฌ ํ†ตํ•ฉ ๊ด€๋ฆฌ

### 2. Grok ํด๋ผ์ด์–ธํŠธ ๊ตฌํ˜„
- `utils/grok_client.py` ํŒŒ์ผ ์ƒ์„ฑ
- OpenAI ๋ฐ DeepSeek ํด๋ผ์ด์–ธํŠธ์™€ ์œ ์‚ฌํ•œ ์ธํ„ฐํŽ˜์ด์Šค ๊ตฌํ˜„
- Grok API ํ˜ธ์ถœ ๋ฉ”์†Œ๋“œ ๋ฐ ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ ๋กœ์ง ๊ตฌํ˜„
- `chat_completion`, `generate`, `rag_generate` ๋“ฑ์˜ ํ•ต์‹ฌ ๋ฉ”์†Œ๋“œ ๊ตฌํ˜„

### 3. LLM ์ธํ„ฐํŽ˜์ด์Šค ์—…๋ฐ์ดํŠธ
- `utils/llm_interface.py` ํŒŒ์ผ ์ˆ˜์ •
- Grok LLM์„ ์ง€์› ๋ชฉ๋ก์— ์ถ”๊ฐ€
- Grok ํด๋ผ์ด์–ธํŠธ ์ดˆ๊ธฐํ™” ๋ฐ ๊ด€๋ฆฌ ์ฝ”๋“œ ๊ตฌํ˜„
- LLM ์„ธ๋ถ€ ์ •๋ณด ๋ฐ˜ํ™˜ ๋ฉ”์†Œ๋“œ ์—…๋ฐ์ดํŠธ

## ํ–ฅํ›„ ์ž‘์—… ๊ณ„ํš

### 1. ํ…Œ์ŠคํŠธ ๋ฐ ๊ฒ€์ฆ
- ์œ ๋‹› ํ…Œ์ŠคํŠธ ๋ฐ ํ†ตํ•ฉ ํ…Œ์ŠคํŠธ ์ˆ˜ํ–‰
- ์›น ์ธํ„ฐํŽ˜์ด์Šค์—์„œ Grok LLM ์„ ํƒ ๋ฐ ์ž‘๋™ ํ™•์ธ
- ๋‹ค์–‘ํ•œ ํ”„๋กฌํ”„ํŠธ์™€ RAG ์‹œ๋‚˜๋ฆฌ์˜ค ํ…Œ์ŠคํŠธ

### 2. ๋ฌธ์„œํ™”
- API ์‚ฌ์šฉ๋ฒ• ๋ฐ ์„ค์ • ๋ฐฉ๋ฒ• ๋ฌธ์„œํ™”
- ์‚ฌ์šฉ์ž ์•ˆ๋‚ด์„œ ์—…๋ฐ์ดํŠธ

## ํ˜„์žฌ ์ƒํƒœ
- ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ ํŒŒ์•… ์™„๋ฃŒ
- Grok ํด๋ผ์ด์–ธํŠธ ๊ตฌํ˜„ ์™„๋ฃŒ
- LLM ์ธํ„ฐํŽ˜์ด์Šค ์—…๋ฐ์ดํŠธ ์™„๋ฃŒ
- ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์„ค์ • ์™„๋ฃŒ

## ํ•ด์•ผ ํ•  ์ผ
- ๊ตฌํ˜„๋œ ์ฝ”๋“œ ํ…Œ์ŠคํŠธ ๋ฐ ๋””๋ฒ„๊น…
- ์›น ์ธํ„ฐํŽ˜์ด์Šค์—์„œ ํ…Œ์ŠคํŠธ ์ง„ํ–‰
- ๋ฌธ์„œ ์—…๋ฐ์ดํŠธ