text-generation-webui OpenAI 호환 API

text-generation-webui OpenAI 호환 API

text-generation-webui의 메인 API는 OpenAI와 Anthropic API의 drop-in 대체품을 목표로 해요. Chat, Completions, Messages 엔드포인트를 제공하고, 도구 호출(tool-calling)도 지원해요.

출처: textgen — 12 ‐ OpenAI API

특징

  • 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 모델 목록(현재 로드 모델 우선)

더 알아보기