soyailabs / install_exaone_simple.py
SOY NV AI
Update: Hugging Face ๋ฐฐํฌ ์„ค์ • ๋ฐ EXAONE ํ†ตํ•ฉ ๊ฐœ์„ 
208adf4
raw
history blame
3.38 kB
"""
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()