Spaces:
Sleeping
Sleeping
# 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. ํ ์คํธ ์์ฑ | |
```python | |
import requests | |
response = requests.post( | |
"https://your-space-url/generate", | |
data={"prompt": "์๋ ํ์ธ์! ์ค๋ ๋ ์จ๊ฐ ์ด๋ค๊ฐ์?"} | |
) | |
print(response.json()) | |
``` | |
#### 2. ์ด๋ฏธ์ง์ ํจ๊ป ์ง์ | |
```python | |
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 ๊ธฐ๋ฐ ์ง์์๋ต | |
```python | |
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 ํ ํฐ | |
### ๐ง ์ค์ | |
ํ๊ฒฝ ๋ณ์๋ฅผ ํตํด ๋ค์ ์ค์ ์ ์กฐ์ ํ ์ ์์ต๋๋ค: | |
```bash | |
# ์๋ฒ ์ค์ | |
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๋ฅผ ํตํด ์ฐ๋ฝํด ์ฃผ์ธ์. |