Spaces:
Running
Running
Lily LLM API - Hugging Face Spaces
๐ค ์๊ฐ
Lily LLM API๋ ๋ค์ค ๋ชจ๋ธ ์ง์๊ณผ RAG(Retrieval Augmented Generation) ์์คํ ์ ๊ฐ์ถ ๊ณ ์ฑ๋ฅ AI API ์๋ฒ์ ๋๋ค.
โจ ์ฃผ์ ๊ธฐ๋ฅ
- ๐ง ๋ฉํฐ๋ชจ๋ฌ AI: Kanana-1.5-v-3b-instruct ๋ชจ๋ธ์ ํตํ ํ ์คํธ ๋ฐ ์ด๋ฏธ์ง ์ฒ๋ฆฌ
- ๐ RAG ์์คํ : ๋ฌธ์ ๊ธฐ๋ฐ ์ง์์๋ต ๋ฐ ์ปจํ ์คํธ ๊ฒ์
- ๐ ๋ฒกํฐ ๊ฒ์: FAISS ๊ธฐ๋ฐ ๊ณ ์ ์ ์ฌ๋ ๊ฒ์
- ๐ ๋ฌธ์ ์ฒ๋ฆฌ: PDF, DOCX, TXT ๋ฑ ๋ค์ํ ๋ฌธ์ ํ์ ์ง์
- ๐ผ๏ธ ์ด๋ฏธ์ง OCR: LaTeX-OCR์ ํตํ ์ํ ๊ณต์ ์ธ์
- โก ๋น๋๊ธฐ ์ฒ๋ฆฌ: Celery ๊ธฐ๋ฐ ๋ฐฑ๊ทธ๋ผ์ด๋ ์์
- ๐ RESTful API: FastAPI ๊ธฐ๋ฐ ๊ณ ์ฑ๋ฅ ์น API
๐ ์ฌ์ฉ ๋ฐฉ๋ฒ
1. ํ ์คํธ ์์ฑ
import requests
response = requests.post(
"https://your-space-url/generate",
data={"prompt": "์๋
ํ์ธ์! ์ค๋ ๋ ์จ๊ฐ ์ด๋ค๊ฐ์?"}
)
print(response.json())
2. ์ด๋ฏธ์ง์ ํจ๊ป ์ง์
import requests
with open("image.jpg", "rb") as f:
response = requests.post(
"https://your-space-url/generate",
data={"prompt": "์ด๋ฏธ์ง์์ ๋ฌด์์ ๋ณผ ์ ์๋์?"},
files={"image1": f}
)
print(response.json())
3. RAG ๊ธฐ๋ฐ ์ง์์๋ต
import requests
# ๋ฌธ์ ์
๋ก๋
with open("document.pdf", "rb") as f:
upload_response = requests.post(
"https://your-space-url/upload-document",
files={"file": f},
data={"user_id": "your_user_id"}
)
document_id = upload_response.json()["document_id"]
# RAG ์ง์
response = requests.post(
"https://your-space-url/rag-query",
json={
"query": "๋ฌธ์์ ์ฃผ์ ๋ด์ฉ์ ๋ฌด์์ธ๊ฐ์?",
"user_id": "your_user_id",
"document_id": document_id
}
)
print(response.json())
๐ API ์๋ํฌ์ธํธ
๊ธฐ๋ณธ ์๋ํฌ์ธํธ
GET /health
- ์๋ฒ ์ํ ํ์ธGET /models
- ์ฌ์ฉ ๊ฐ๋ฅํ ๋ชจ๋ธ ๋ชฉ๋กPOST /load-model
- ๋ชจ๋ธ ๋ก๋POST /generate
- ํ ์คํธ/์ด๋ฏธ์ง ์์ฑ
RAG ์์คํ
POST /upload-document
- ๋ฌธ์ ์ ๋ก๋POST /rag-query
- RAG ๊ธฐ๋ฐ ์ง์GET /documents/{user_id}
- ์ฌ์ฉ์ ๋ฌธ์ ๋ชฉ๋กDELETE /document/{document_id}
- ๋ฌธ์ ์ญ์
๊ณ ๊ธ ๊ธฐ๋ฅ
POST /batch-process
- ๋ฐฐ์น ๋ฌธ์ ์ฒ๋ฆฌGET /task-status/{task_id}
- ์์ ์ํ ํ์ธPOST /cancel-task/{task_id}
- ์์ ์ทจ์
๐ ๏ธ ๊ธฐ์ ์คํ
- Backend: FastAPI, Python 3.11
- AI Models: Transformers, PyTorch
- Vector DB: FAISS, ChromaDB
- Task Queue: Celery, Redis
- OCR: LaTeX-OCR, EasyOCR
- Document Processing: LangChain
๐ ๋ชจ๋ธ ์ ๋ณด
Kanana-1.5-v-3b-instruct
- ํฌ๊ธฐ: 3.6B ๋งค๊ฐ๋ณ์
- ์ธ์ด: ํ๊ตญ์ด ํนํ
- ๊ธฐ๋ฅ: ํ ์คํธ ์์ฑ, ์ด๋ฏธ์ง ์ดํด
- ์ปจํ ์คํธ: ์ต๋ 4096 ํ ํฐ
๐ง ์ค์
ํ๊ฒฝ ๋ณ์๋ฅผ ํตํด ๋ค์ ์ค์ ์ ์กฐ์ ํ ์ ์์ต๋๋ค:
# ์๋ฒ ์ค์
HOST=0.0.0.0
PORT=7860
# ๋ชจ๋ธ ์ค์
DEFAULT_MODEL=kanana-1.5-v-3b-instruct
MAX_NEW_TOKENS=256
TEMPERATURE=0.7
# ์บ์ ์ค์
TRANSFORMERS_CACHE=/app/cache/transformers
HF_HOME=/app/cache/huggingface
๐ ๋ผ์ด์ ์ค
์ด ํ๋ก์ ํธ๋ MIT ๋ผ์ด์ ์ค ํ์ ๋ฐฐํฌ๋ฉ๋๋ค.
๐ค ๊ธฐ์ฌ
๋ฒ๊ทธ ๋ฆฌํฌํธ, ๊ธฐ๋ฅ ์ ์, ํ ๋ฆฌํ์คํธ๋ฅผ ํ์ํฉ๋๋ค!
๐ ์ง์
๋ฌธ์์ฌํญ์ด ์์ผ์๋ฉด GitHub Issues๋ฅผ ํตํด ์ฐ๋ฝํด ์ฃผ์ธ์.