Xinference
Xinference (Xorbits Inference)
https://inference.readthedocs.io/en/latest/index.html
개요 (Overview)
| 속성 | 내용 |
|---|---|
| 설명 | 모든 오픈소스 LLM, 이미지 생성 모델 등을 추론으로 실행하는 오픈소스 플랫폼 |
| LiteLLM 제공자 라우트 | xinference/ |
| 제공자 문서 링크 | Xinference ↗ |
| 지원 작업 | /embeddings, /images/generations |
LiteLLM은 Xinference Embedding + Image Generation 호출을 지원해요.
API Base, Key
# env variable
os.environ['XINFERENCE_API_BASE'] = "http://127.0.0.1:9997/v1"
os.environ['XINFERENCE_API_KEY'] = "anything" #[optional] no api key required
샘플 사용법 - Embedding
from litellm import embedding
import os
os.environ['XINFERENCE_API_BASE'] = "http://127.0.0.1:9997/v1"
response = embedding(
model="xinference/bge-base-en",
input=["good morning from litellm"],
)
print(response)
api_base 파라미터 사용법 (Sample Usage api_base param)
from litellm import embedding
import os
response = embedding(
model="xinference/bge-base-en",
api_base="http://127.0.0.1:9997/v1",
input=["good morning from litellm"],
)
print(response)
이미지 생성 (Image Generation)
LiteLLM Python SDK 사용법
from litellm import image_generation
import os
# xinference image generation call
response = image_generation(
model="xinference/stabilityai/stable-diffusion-3.5-large",
prompt="A beautiful sunset over a calm ocean",
api_base="http://127.0.0.1:9997/v1",
)
print(response)
LiteLLM Proxy Server 사용법
1. config.yaml 설정
model_list:
- model_name: xinference-sd
litellm_params:
model: xinference/stabilityai/stable-diffusion-3.5-large
api_base: http://127.0.0.1:9997/v1
api_key: anything
model_info:
mode: image_generation
general_settings:
master_key: os.environ/LITELLM_MASTER_KEY
2. 프록시 시작
litellm --config config.yaml
# RUNNING on http://0.0.0.0:4000
3. 테스트
curl --location 'http://0.0.0.0:4000/v1/images/generations' \
--header 'Content-Type: application/json' \
--header "Authorization: Bearer ***" \
--data '{
"model": "xinference-sd",
"prompt": "A beautiful sunset over a calm ocean",
"n": 1,
"size": "1024x1024",
"response_format": "url"
}'
고급 사용법 - 추가 파라미터 포함 (Advanced Usage - With Additional Parameters)
from litellm import image_generation
import os
os.environ['XINFERENCE_API_BASE'] = "http://127.0.0.1:9997/v1"
response = image_generation(
model="xinference/stabilityai/stable-diffusion-3.5-large",
prompt="A beautiful sunset over a calm ocean",
n=1, # number of images
size="1024x1024", # image size
response_format="b64_json", # return format
)
print(response)
지원 이미지 생성 모델 (Supported Image Generation Models)
Xinference는 다양한 stable diffusion 모델을 지원해요. 몇 가지 예시:
| 모델명 | 함수 호출 |
|---|---|
stabilityai/stable-diffusion-3.5-large |
image_generation(model="xinference/stabilityai/stable-diffusion-3.5-large", prompt="...") |
stabilityai/stable-diffusion-xl-base-1.0 |
image_generation(model="xinference/stabilityai/stable-diffusion-xl-base-1.0", prompt="...") |
runwayml/stable-diffusion-v1-5 |
image_generation(model="xinference/runwayml/stable-diffusion-v1-5", prompt="...") |
지원되는 이미지 생성 모델의 전체 목록은 다음을 참고해 주세요: https://inference.readthedocs.io/en/latest/models/builtin/image/index.html
지원 모델 (Supported Models)
https://inference.readthedocs.io/en/latest/models/builtin/embedding/index.html 에 나열된 모든 모델이 지원돼요.
| 모델명 | 함수 호출 |
|---|---|
bge-base-en |
embedding(model="xinference/bge-base-en", input) |
bge-base-en-v1.5 |
embedding(model="xinference/bge-base-en-v1.5", input) |
bge-base-zh |
embedding(model="xinference/bge-base-zh", input) |
bge-base-zh-v1.5 |
embedding(model="xinference/bge-base-zh-v1.5", input) |
bge-large-en |
embedding(model="xinference/bge-large-en", input) |
bge-large-en-v1.5 |
embedding(model="xinference/bge-large-en-v1.5", input) |
bge-large-zh |
embedding(model="xinference/bge-large-zh", input) |
bge-large-zh-noinstruct |
embedding(model="xinference/bge-large-zh-noinstruct", input) |
bge-large-zh-v1.5 |
embedding(model="xinference/bge-large-zh-v1.5", input) |
bge-small-en-v1.5 |
embedding(model="xinference/bge-small-en-v1.5", input) |
bge-small-zh |
embedding(model="xinference/bge-small-zh", input) |
bge-small-zh-v1.5 |
embedding(model="xinference/bge-small-zh-v1.5", input) |
e5-large-v2 |
embedding(model="xinference/e5-large-v2", input) |
gte-base |
embedding(model="xinference/gte-base", input) |
gte-large |
embedding(model="xinference/gte-large", input) |
jina-embeddings-v2-base-en |
embedding(model="xinference/jina-embeddings-v2-base-en", input) |
jina-embeddings-v2-small-en |
embedding(model="xinference/jina-embeddings-v2-small-en", input) |
multilingual-e5-large |
embedding(model="xinference/multilingual-e5-large", input) |
출처: 문서