Spaces:
Sleeping
Sleeping
metadata
title: Lily LLM API Server
emoji: ๐ค
colorFrom: blue
colorTo: purple
sdk: docker
sdk_version: \"1.0.0\"
app_port: 7860
app_file: app.py
pinned: false
250826 v1.0.3
- cloudtype migrate, supabase db ์ฐ๊ฒฐ ๊ณ์ธต์ ๋ฉ๋ชจ๋ฆฌ ํ ์คํธ
250825 v1.0.2 test
- lily ์ปจํ ์คํธ ๋ฉ๋ชจ๋ฆฌ supabase ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ฒฐ
250824
- ๊ณ์ธต์ ๋ฉ๋ชจ๋ฆฌ ๊ตฌ์กฐ ํตํฉ ๋ฆฌํฉํ ๋ง, ์ฅ๊ธฐ, ์ค๊ธฐ, ๋จ๊ธฐ
250823
- ์ปจํ ์คํธ ๋งค๋์ , lora, rag ์์คํ , ๋ฌธ์ ์์ฝ + ์ปจํ ์คํธ ํ์ฅ ์์คํ ํตํฉ
250822
- polyglot 1.3b lora ํ๋ผ๋ฉํฐ ์กฐ์ , ์๋ต ํ์ง ํฅ์
250821
- polyplot 5.8b ์๋ต ์๋ ๊ฐ์ , ๋ชจ๋ธ๋ณ tokenizer config settings json ๋ณ์ ๋ช ์์ ์ผ๋ก ๊ธฐ์
250820
- lily llm kanana 3b ๋ฉํฐ๋ชจ๋ฌ ๊ฐ์ , polyglot 1.3b, 5.8b ์๋ต ํ์ง ๊ฐ์
250819 v1.0.1
- ์ปจํ ์คํธ ์ฐฝ, lora ์ถ๊ฐ, kanana model ๊ณต์ ๋ฌธ์๋๋ก ๋ค์ ๋ค์ด๋ก๋ ํ app_v2 ๋ฐ ํ๋กํ ๋ฆฌํฉํ ๋ง
Lily LLM API Server
FastAPI ๊ธฐ๋ฐ ๋ฉํฐ๋ชจ๋ฌ AI ์๋ฒ์ ๋๋ค.
Features
- ํ ์คํธ ์์ฑ
- ์ด๋ฏธ์ง ์ธ์
- RAG ์์คํ
- ์ํ ๊ณต์ ์ฒ๋ฆฌ
API Endpoints
- `GET /health` - ์๋ฒ ์ํ ํ์ธ
- `POST /generate` - ํ ์คํธ/์ด๋ฏธ์ง ์์ฑ
- `POST /upload-document` - ๋ฌธ์ ์ ๋ก๋
- `POST /rag-query` - RAG ์ง์
Model
- Kanana-1.5-v-3b-instruct (ํ๊ตญ์ด ๋ฉํฐ๋ชจ๋ฌ)
- ์๋ ๋ค์ด๋ก๋: gbrabbit/lily-math-model" > README.md
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://huggingface.co/spaces/gbrabbit/lily_fast_api/generate",
data={"prompt": "์๋
ํ์ธ์! ์ค๋ ๋ ์จ๊ฐ ์ด๋ค๊ฐ์?"}
)
print(response.json())
2. ์ด๋ฏธ์ง์ ํจ๊ป ์ง์
import requests
with open("image.jpg", "rb") as f:
response = requests.post(
"https://https://huggingface.co/spaces/gbrabbit/lily_fast_api/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://huggingface.co/spaces/gbrabbit/lily_fast_api/upload-document",
files={"file": f},
data={"user_id": "your_user_id"}
)
document_id = upload_response.json()["document_id"]
# RAG ์ง์
response = requests.post(
"https://huggingface.co/spaces/gbrabbit/lily_fast_api/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๋ฅผ ํตํด ์ฐ๋ฝํด ์ฃผ์ธ์.