로컬 LiteLLM Proxy 서버

로컬 LiteLLM Proxy 서버

100개 이상의 LLM API를 호출할 수 있는 빠르고 가벼운 OpenAI 호환 서버예요.

출처: 문서

본문

info: 문서가 오래됐어요. 새 문서는 여기로 이동했어요.

사용법

uv tool install 'litellm[proxy]'
$ litellm --model ollama/codellama

#INFO: Ollama running on http://0.0.0.0:4000

테스트

새 셸에서:

$ litellm --test

openai base 교체

import openai

openai.api_base = "http://0.0.0.0:4000"

print(openai.ChatCompletion.create(model="test", messages=[{"role":"user", "content":"Hey!"}]))

지원되는 다른 모델:

  • VLLM
  • OpenAI Compatible Server
  • Huggingface
  • Anthropic
  • TogetherAI
  • Replicate
  • Petals
  • Palm
  • Azure OpenAI
  • AI21
  • Cohere

vllm을 로컬에서 실행 중이라고 가정:

$ litellm --model vllm/facebook/opt-125m
$ litellm --model openai/ --api_base
$ export HUGGINGFACE_API_KEY=my-api-key #[OPTIONAL]
$ litellm --model claude-sonnet-5
$ export ANTHROPIC_API_KEY=my-api-key
$ litellm --model claude-sonnet-5
$ export TOGETHERAI_API_KEY=my-api-key
$ litellm --model together_ai/lmsys/vicuna-13b-v1.5-16k
$ export REPLICATE_API_KEY=my-api-key
$ litellm \
  --model replicate/meta/llama-2-70b-chat:02e509c789964a7ea8736978a43525956ef40397be9033abf9fd2badfe68c9e3
$ litellm --model petals/meta-llama/Llama-2-70b-chat-hf
$ export PALM_API_KEY=my-palm-key
$ litellm --model palm/chat-bison
$ export AZURE_API_KEY=my-api-key
$ export AZURE_API_BASE=my-api-base

$ litellm --model azure/my-deployment-name
$ export AI21_API_KEY=my-api-key
$ litellm --model j2-light
$ export COHERE_API_KEY=my-api-key
$ litellm --model command-nightly

튜토리얼: 여러 LLM + LibreChat/Chatbot-UI/Auto-Gen/ChatDev/Langroid 등과 함께 사용

openai base 교체:

import openai

openai.api_key = "any-string-here"
openai.api_base = "http://0.0.0.0:4000" # your proxy url

# call openai
response = openai.ChatCompletion.create(model="gpt-5.6-luna", messages=[{"role": "user", "content": "Hey"}])
print(response)

# call cohere
response = openai.ChatCompletion.create(model="command-nightly", messages=[{"role": "user", "content": "Hey"}])
print(response)

LibreChat

  1. 리포지토리 clone:
git clone https://github.com/danny-avila/LibreChat.git
  1. docker-compose.yml 수정:
OPENAI_REVERSE_PROXY=http://host.docker.internal:4000/v1/chat/completions
  1. .env에 가짜 OpenAI 키 저장:
OPENAI_API_KEY=sk-
  1. LibreChat 실행:
docker compose up

SmartChatbotUI

  1. 리포지토리 clone:
git clone https://github.com/dotneet/smart-chatbot-ui.git
  1. 의존성 설치:
npm i
  1. env 생성:
cp .env.local.example .env.local
  1. API 키와 Base 설정:
OPENAI_API_KEY="my-fake-key"
OPENAI_API_HOST="http://0.0.0.0:4000
  1. docker compose로 실행:
docker compose up -d

AutoGen

uv add pyautogen
from autogen import AssistantAgent, UserProxyAgent, oai
config_list=[
    {
        "model": "my-fake-model",
        "api_base": "http://0.0.0.0:4000",  #litellm compatible endpoint
        "api_type": "open_ai",
        "api_key": "NULL", # just a placeholder
    }
]

response = oai.Completion.create(config_list=config_list, prompt="Hi")
print(response) # works fine

llm_config={
    "config_list": config_list,
}

assistant = AssistantAgent("assistant", llm_config=llm_config)
user_proxy = UserProxyAgent("user_proxy")
user_proxy.initiate_chat(assistant, message="Plot a chart of META and TESLA stock price change YTD.", config_list=config_list)

로컬 Proxy

로컬 proxy로 codellama/mistral 등 모델을 다른 github 리포지토리용으로 테스트하는 방법이에요.

uv add litellm
$ ollama pull codellama # OUR Local CodeLlama

$ litellm --model ollama/codellama --temperature 0.3 --max_tokens 2048

튜토리얼: 여러 LLM + Aider/AutoGen/Langroid 등

proxy 시작:

$ litellm

#INFO: litellm proxy running on http://0.0.0.0:4000

proxy에 요청 보내기

import openai

openai.api_key = "any-string-here"
openai.api_base = "http://0.0.0.0:4000" # your proxy url

# call gpt-5.6-luna
response = openai.ChatCompletion.create(model="gpt-5.6-luna", messages=[{"role": "user", "content": "Hey"}])
print(response)

# call ollama/llama2
response = openai.ChatCompletion.create(model="ollama/llama2", messages=[{"role": "user", "content": "Hey"}])
print(response)

ContinueDev

ContinueDev는 ChatGPT를 VSCode에 가져와요. config.py에서 이 기본 모델로 설정하세요.

  default=OpenAI(
      api_key="IGNORED",
      model="fake-model-name",
      context_length=2048, # customize if needed for your model
      api_base="http://localhost:4000" # your proxy server url
  ),

Aider

$ uv add aider

$ aider --openai-api-base http://0.0.0.0:4000 --openai-api-key fake-key

GPT-Pilot

.env에서 openai 엔드포인트를 로컬 서버로 설정해요.

OPENAI_ENDPOINT=http://0.0.0.0:4000
OPENAI_API_KEY=my-fake-key

guidance

LLM을 제어하는 guidance 언어예요. 참고: guidance는 stop_sequences 같은 추가 파라미터를 보내서, 지원하지 않는 모델은 실패할 수 있어요. 해결: --drop_params 플래그로 proxy를 시작하세요.

litellm --model ollama/codellama --temperature 0.3 --max_tokens 2048 --drop_params
import guidance

# set api_base to your proxy
# set api_key to anything
gpt4 = guidance.llms.OpenAI("gpt-5.6-terra", api_base="http://0.0.0.0:4000", api_key="anything")

experts = guidance('''
{{#system~}}
You are a helpful and terse assistant.
{{~/system}}

{{#user~}}
I want a response to the following question:
{{query}}
Name 3 world-class experts (past or present) who would be great at answering this?
Don't answer the question yet.
{{~/user}}

{{#assistant~}}
{{gen 'expert_names' temperature=0 max_tokens=300}}
{{~/assistant}}
''', llm=gpt4)

result = experts(query='How can I be more productive?')
print(result)

고급

로그

$ litellm --logs

이것은 가장 최근 로그(LLM API로 간 호출 + 받은 응답)를 반환해요. 모든 로그는 현재 디렉터리의 api_logs.json이라는 파일에 저장돼요.

Proxy 구성

다음이 필요하다면:

  • API 키 저장
  • litellm 파라미터 설정 (예: 매핑되지 않은 파라미터 드롭, 폴백 모델 설정 등)
  • 모델별 파라미터 설정 (max tokens, temperature, api base, prompt template)

이는 해당 세션에만(cli 통해) 설정하거나 재시작에도 지속되도록(config 파일 통해) 설정할 수 있어요.

API 키 저장

$ litellm --api_key OPENAI_API_KEY=sk-...

LiteLLM은 이를 로컬에 저장된 config 파일에 저장하고 세션 간에 지속해요.

LiteLLM Proxy는 모든 litellm 지원 API 키를 지원해요. 특정 제공사 키를 추가하려면 다음 목록을 확인하세요. 예:

$ litellm --add_key ANTHROPIC_API_KEY=my-api-key
$ litellm --add_key PERPLEXITYAI_API_KEY=my-api-key
$ litellm --add_key REPLICATE_API_KEY=my-api-key
$ litellm --add_key COHERE_API_KEY=my-api-key

api base, max tokens, temperature 설정 예시:

litellm --model ollama/llama2 \
  --api_base http://localhost:11434 \
  --max_tokens 250 \
  --temperature 0.5

# OpenAI-compatible server running on http://0.0.0.0:4000

성능

FastAPI 서버에서 wrk로 1분간 500,000 HTTP 연결을 부하 테스트했어요. 결과:

Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency   156.38ms   25.52ms 361.91ms   84.73%
    Req/Sec    13.61      5.13    40.00     57.50%
  383625 requests in 1.00m, 391.10MB read
  Socket errors: connect 0, read 1632, write 1, timeout 0

지원 / 창업자와 대화

더 알아보기 (Learn more)

  • 새 Simple Proxy 문서
  • LiteLLM Proxy 구성