text-generation-webui OpenAI 호환 API
text-generation-webui OpenAI 호환 API
text-generation-webui의 메인 API는 OpenAI와 Anthropic API의 drop-in 대체품을 목표로 해요. Chat, Completions, Messages 엔드포인트를 제공하고, 도구 호출(tool-calling)도 지원해요.
특징
- 100% 오프라인·프라이빗
- 로그를 만들지 않음, OpenAI에 연결하지 않음, openai-python 라이브러리 미사용
API 시작
명령줄 플래그에 --api를 추가해요.
- 공개 Cloudflare URL:
--public-api - 로컬 네트워크:
--listen - 포트 변경(기본 5000):
--api-port 1234 - SSL:
--ssl-keyfile key.pem --ssl-certfile cert.pem - API 키 인증:
--api-key yourkey
모든 엔드포인트·파라미터·타입 문서는 http://127.0.0.1:5000/docs 또는 typing.py에 있어요.
Chat completions
curl http://127.0.0.1:5000/v1/chat/completions -H "Content-Type: application/json" -d '{"messages": [{"role": "user", "content": "Hello!"}],
"temperature": 0.6, "top_p": 0.95, "top_k": 20}'
Tool/Function calling
모델이 도구를 호출하기로 하면 응답에 finish_reason: "tool_calls"와 함께 tool_calls 배열이 와요. 도구를 실행한 뒤 결과를 role: "tool" 메시지로 보내고, finish_reason: "stop"이 나올 때까지 반복해요.
임베딩 (alpha)
현재 sentence-transformers/all-mpnet-base-v2(768차원)를 기본으로 사용해요. 모델은 OPENEDAI_EMBEDDING_MODEL 환경변수로 변경 가능해요(예: all-MiniLM-L6-v2). 다른 모델의 임베딩은 차원이 같아도 섞을 수 없어요.
엔드포인트 호환성
| 엔드포인트 | 비고 |
|---|---|
/v1/chat/completions |
지시 추종 모델용, 스트리밍·도구 호출 지원 |
/v1/completions |
텍스트 완성 |
/v1/embeddings |
SentenceTransformer 임베딩 |
/v1/images/generations |
이미지 생성, response_format='b64_json' 전용 |
/v1/models |
모델 목록(현재 로드 모델 우선) |