File size: 3,376 Bytes
d54e6a9
 
 
 
 
 
 
 
 
208adf4
d54e6a9
208adf4
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
eb70b46
208adf4
d54e6a9
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
b834258
 
 
 
c2280e3
 
d234e06
04600a5
 
 
 
 
 
 
 
 
 
59f2d9e
 
04600a5
ae31891
04600a5
d234e06
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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
"""
EXAONE-3.0-7.8B-Instruct ๋ชจ๋ธ์„ Ollama์— ์ถ”๊ฐ€ํ•˜๋Š” ๊ฐ„๋‹จํ•œ ์Šคํฌ๋ฆฝํŠธ
Ollama 0.13.0์—์„œ๋Š” ์ง์ ‘ Hugging Face ๋ชจ๋ธ์„ ์ง€์›ํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ
๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์„ ์•ˆ๋‚ดํ•ฉ๋‹ˆ๋‹ค.
"""

import os
import subprocess
from pathlib import Path
import sys

# ํ”„๋กœ์ ํŠธ ๋ฃจํŠธ๋ฅผ Python ๊ฒฝ๋กœ์— ์ถ”๊ฐ€
sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))

def get_huggingface_token():
    """
    Hugging Face ํ† ํฐ ๊ฐ€์ ธ์˜ค๊ธฐ (ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์šฐ์„ , ์—†์œผ๋ฉด DB์—์„œ)
    Google API ํ‚ค ๊ด€๋ฆฌ ๋ฐฉ์‹๊ณผ ๋™์ผํ•œ ํŒจํ„ด
    """
    # ํ™˜๊ฒฝ ๋ณ€์ˆ˜์—์„œ ๋จผ์ € ํ™•์ธ
    token = os.getenv('HUGGINGFACE_HUB_TOKEN', '').strip()
    if not token:
        token = os.getenv('HF_TOKEN', '').strip()
    
    if token:
        print(f"[Hugging Face] ํ™˜๊ฒฝ ๋ณ€์ˆ˜์—์„œ ํ† ํฐ ๊ฐ€์ ธ์˜ด (๊ธธ์ด: {len(token)}์ž)")
        return token
    
    # DB์—์„œ ๊ฐ€์ ธ์˜ค๊ธฐ (์ˆœํ™˜ ์ฐธ์กฐ ๋ฐฉ์ง€๋ฅผ ์œ„ํ•ด ์—ฌ๊ธฐ์„œ ์ž„ํฌํŠธ)
    try:
        from app.database import SystemConfig
        token = SystemConfig.get_config('huggingface_token', '').strip()
        if token:
            print(f"[Hugging Face] DB์—์„œ ํ† ํฐ ๊ฐ€์ ธ์˜ด (๊ธธ์ด: {len(token)}์ž)")
        return token
    except Exception as e:
        print(f"[Hugging Face] DB์—์„œ ํ† ํฐ ์กฐํšŒ ์‹คํŒจ (ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์‚ฌ์šฉ): {e}")
        return ''

# Hugging Face ํ† ํฐ ๊ฐ€์ ธ์˜ค๊ธฐ
HF_TOKEN = get_huggingface_token()
if not HF_TOKEN:
    raise ValueError("HUGGINGFACE_HUB_TOKEN ๋˜๋Š” HF_TOKEN ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์„ค์ •ํ•˜๊ฑฐ๋‚˜, ๊ด€๋ฆฌ ํŽ˜์ด์ง€์—์„œ ํ† ํฐ์„ ์„ค์ •ํ•ด์ฃผ์„ธ์š”.")

def main():
    print("\n" + "=" * 60)
    print("EXAONE-3.0-7.8B-Instruct Ollama ์ถ”๊ฐ€ ๊ฐ€์ด๋“œ")
    print("=" * 60)
    
    print("\nํ˜„์žฌ Ollama ๋ฒ„์ „(0.13.0)์—์„œ๋Š” Hugging Face ๋ชจ๋ธ์„ ์ง์ ‘ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.")
    print("\n๋‹ค์Œ ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜๋ฅผ ์„ ํƒํ•˜์„ธ์š”:")
    print("\n[๋ฐฉ๋ฒ• 1] Ollama ์—…๋ฐ์ดํŠธ (๊ถŒ์žฅ)")
    print("-" * 60)
    print("์ตœ์‹  ๋ฒ„์ „์˜ Ollama๋Š” Hugging Face ๋ชจ๋ธ์„ ๋” ์ž˜ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.")
    print("https://ollama.ai/download ์—์„œ ์ตœ์‹  ๋ฒ„์ „์„ ๋‹ค์šด๋กœ๋“œํ•˜์„ธ์š”.")
    
    print("\n[๋ฐฉ๋ฒ• 2] GGUF ๋ชจ๋ธ ์‚ฌ์šฉ")
    print("-" * 60)
    print("EXAONE ๋ชจ๋ธ์˜ GGUF ๋ฒ„์ „์ด ์žˆ๋‹ค๋ฉด ์ง์ ‘ ๋‹ค์šด๋กœ๋“œํ•˜์—ฌ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.")
    print("ํ•˜์ง€๋งŒ ํ˜„์žฌ Hugging Face์—๋Š” GGUF ๋ฒ„์ „์ด ์—†๋Š” ๊ฒƒ์œผ๋กœ ๋ณด์ž…๋‹ˆ๋‹ค.")
    
    print("\n[๋ฐฉ๋ฒ• 3] Python์—์„œ ์ง์ ‘ ์‚ฌ์šฉ")
    print("-" * 60)
    print("Ollama๋ฅผ ํ†ตํ•˜์ง€ ์•Š๊ณ  Python์—์„œ ์ง์ ‘ Hugging Face ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.")
    print("ํ•˜์ง€๋งŒ ์ด ๊ฒฝ์šฐ Ollama API์™€์˜ ํ†ตํ•ฉ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.")
    
    print("\n[๋ฐฉ๋ฒ• 4] Modelfile ์ˆ˜์ •")
    print("-" * 60)
    print("๋กœ์ปฌ์— ๋ชจ๋ธ์„ ๋‹ค์šด๋กœ๋“œํ•œ ํ›„ Modelfile์—์„œ ๋กœ์ปฌ ๊ฒฝ๋กœ๋ฅผ ์ฐธ์กฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.")
    
    print("\n" + "=" * 60)
    print("์ถ”์ฒœ: Ollama๋ฅผ ์ตœ์‹  ๋ฒ„์ „์œผ๋กœ ์—…๋ฐ์ดํŠธํ•˜์„ธ์š”")
    print("=" * 60)
    
    print("\nํ˜„์žฌ ์ƒํƒœ:")
    print(f"- Hugging Face ํ† ํฐ: ์„ค์ •๋จ")
    print(f"- Ollama ๋ฒ„์ „: 0.13.0 (์ตœ์‹  ๋ฒ„์ „ ๊ถŒ์žฅ)")
    
    print("\n๋‹ค์Œ ๋ช…๋ น์–ด๋กœ Ollama ๋ฒ„์ „์„ ํ™•์ธํ•˜์„ธ์š”:")
    print("  ollama --version")
    
    print("\nOllama๋ฅผ ์—…๋ฐ์ดํŠธํ•œ ํ›„ ๋‹ค์‹œ ์‹œ๋„ํ•˜์„ธ์š”.")

if __name__ == "__main__":
    main()