FastChat OpenAI 호환 API
FastChat OpenAI 호환 API
FastChat은 지원 모델에 대해 OpenAI 호환 RESTful API를 제공해요. 그래서 openai-python 라이브러리나 cURL로 FastChat을 로컬 OpenAI API 대체품(drop-in replacement)처럼 쓸 수 있어요.
지원되는 OpenAI API는 Chat Completions, Completions, Embeddings 세 가지예요.
RESTful API 서버 실행
먼저 컨트롤러를 띄워요.
python3 -m fastchat.serve.controller
그 다음 모델 워커를 띄워요.
python3 -m fastchat.serve.model_worker --model-path lmsys/vicuna-7b-v1.5
마지막으로 RESTful API 서버를 실행해요.
python3 -m fastchat.serve.openai_api_server --host localhost --port 8000
OpenAI 공식 SDK 사용
import openai
openai.api_key = "EMPTY"
openai.base_url = "http://localhost:8000/v1/"
model = "vicuna-7b-v1.5"
prompt = "Once upon a time"
completion = openai.completions.create(model=model, prompt=prompt, max_tokens=64)
print(prompt + completion.choices[0].text)
cURL 사용
curl http://localhost:8000/v1/chat/completions -H "Content-Type: application/json" -d '{"model": "vicuna-7b-v1.5",
"messages": [{"role": "user", "content": "Hello! What is your name?"}]}'
멀티모델 실행
한 프로세스에서 여러 모델을 서빙하려면 multi_model_worker를 써요.
python3 -m fastchat.serve.multi_model_worker --model-path lmsys/vicuna-7b-v1.5 --model-names vicuna-7b-v1.5 --model-path lmsys/longchat-7b-16k --model-names longchat-7b-16k
환경변수
FASTCHAT_WORKER_API_TIMEOUT: 워커 응답 타임아웃(기본 100초)FASTCHAT_WORKER_API_EMBEDDING_BATCH_SIZE: 임베딩 OOM 시 배치 크기 축소(예: 1)