OpenAI 형식(Bedrock, Huggingface, VertexAI, TogetherAI, Azure, OpenAI, Groq 등)을 사용하여 모든 LLM API를 호출합니다.
LiteLLM은 다음을 관리합니다.
completion
, embedding
및 image_generation
엔드포인트로 변환합니다.['choices'][0]['message']['content']
에서 사용할 수 있습니다. LiteLLM 프록시(LLM 게이트웨이) 문서로 이동
지원되는 LLM 제공업체로 이동
? 안정 릴리스: -stable
태그와 함께 도커 이미지를 사용합니다. 이는 게시되기 전에 12시간의 로드 테스트를 거쳤습니다.
더 많은 공급자를 지원합니다. 제공업체 또는 LLM 플랫폼이 누락된 경우 기능 요청을 제출하세요.
중요한
LiteLLM v1.0.0에는 이제 openai>=1.0.0
필요합니다. 마이그레이션 가이드는 여기
LiteLLM v1.40.14+에는 이제 pydantic>=2.0.0
필요합니다. 변경이 필요하지 않습니다.
pip install litellm
from litellm import completion
import os
## set ENV variables
os . environ [ "OPENAI_API_KEY" ] = "your-openai-key"
os . environ [ "COHERE_API_KEY" ] = "your-cohere-key"
messages = [{ "content" : "Hello, how are you?" , "role" : "user" }]
# openai call
response = completion ( model = "gpt-3.5-turbo" , messages = messages )
# cohere call
response = completion ( model = "command-nightly" , messages = messages )
print ( response )
model=
사용하여 공급자가 지원하는 모델을 호출합니다. 여기에는 제공업체별 세부정보가 있을 수 있으므로 자세한 내용은 제공업체 문서를 참조하세요.
from litellm import acompletion
import asyncio
async def test_get_response ():
user_message = "Hello, how are you?"
messages = [{ "content" : user_message , "role" : "user" }]
response = await acompletion ( model = "gpt-3.5-turbo" , messages = messages )
return response
response = asyncio . run ( test_get_response ())
print ( response )
liteLLM은 모델 응답을 다시 스트리밍하는 것을 지원합니다. stream=True
전달하여 응답으로 스트리밍 반복자를 가져옵니다.
스트리밍은 모든 모델(Bedrock, Huggingface, TogetherAI, Azure, OpenAI 등)에 지원됩니다.
from litellm import completion
response = completion ( model = "gpt-3.5-turbo" , messages = messages , stream = True )
for part in response :
print ( part . choices [ 0 ]. delta . content or "" )
# claude 2
response = completion ( 'claude-2' , messages , stream = True )
for part in response :
print ( part . choices [ 0 ]. delta . content or "" )
LiteLLM은 사전 정의된 콜백을 노출하여 Lunary, Langfuse, DynamoDB, s3 Buckets, Helicone, Promptlayer, Traceloop, Athina, Slack에 데이터를 보냅니다.
from litellm import completion
## set env variables for logging tools
os . environ [ "LUNARY_PUBLIC_KEY" ] = "your-lunary-public-key"
os . environ [ "HELICONE_API_KEY" ] = "your-helicone-auth-key"
os . environ [ "LANGFUSE_PUBLIC_KEY" ] = ""
os . environ [ "LANGFUSE_SECRET_KEY" ] = ""
os . environ [ "ATHINA_API_KEY" ] = "your-athina-api-key"
os . environ [ "OPENAI_API_KEY" ]
# set callbacks
litellm . success_callback = [ "lunary" , "langfuse" , "athina" , "helicone" ] # log input/output to lunary, langfuse, supabase, athina, helicone etc
#openai call
response = completion ( model = "gpt-3.5-turbo" , messages = [{ "role" : "user" , "content" : "Hi ? - i'm openai" }])
여러 프로젝트에 걸쳐 지출 추적 + 로드 밸런싱
호스팅된 프록시(미리보기)
프록시는 다음을 제공합니다.
pip install ' litellm[proxy] '
$ litellm --model huggingface/bigcode/starcoder
# INFO: Proxy running on http://0.0.0.0:4000
중요한
Langchain(Python, JS), OpenAI SDK(Python, JS)와 함께 LiteLLM 프록시 사용 Anthropic SDK, Mistral SDK, LlamaIndex, Instructor, Curl
import openai # openai v1.0.0+
client = openai . OpenAI ( api_key = "anything" , base_url = "http://0.0.0.0:4000" ) # set proxy to base_url
# request sent to model set on litellm proxy, `litellm --model`
response = client . chat . completions . create ( model = "gpt-3.5-turbo" , messages = [
{
"role" : "user" ,
"content" : "this is a test request, write a short poem"
}
])
print ( response )
프록시를 Postgres DB와 연결하여 프록시 키 생성
# Get the code
git clone https://github.com/BerriAI/litellm
# Go to folder
cd litellm
# Add the master key - you can change this after setup
echo ' LITELLM_MASTER_KEY="sk-1234" ' > .env
# Add the litellm salt key - you cannot change this after adding a model
# It is used to encrypt / decrypt your LLM API Key credentials
# We recommned - https://1password.com/password-generator/
# password generator to get a random hash for litellm salt key
echo ' LITELLM_SALT_KEY="sk-1234" ' > .env
source .env
# Start
docker-compose up
프록시 서버의 /ui
에 대한 UI
여러 프로젝트에 걸쳐 예산 및 속도 제한 설정 POST /key/generate
curl ' http://0.0.0.0:4000/key/generate '
--header ' Authorization: Bearer sk-1234 '
--header ' Content-Type: application/json '
--data-raw ' {"models": ["gpt-3.5-turbo", "gpt-4", "claude-2"], "duration": "20m","metadata": {"user": "[email protected]", "team": "core-infra"}} '
{
" key " : " sk-kdEXbIqZRwEeEiHwdg7sFA " , # Bearer token
" expires " : " 2023-11-19T01:38:25.838000+00:00 " # datetime object
}
공급자 | 완성 | 스트리밍 | 비동기 완료 | 비동기 스트리밍 | 비동기 임베딩 | 비동기 이미지 생성 |
---|---|---|---|---|---|---|
개방하다 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
하늘빛 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
AWS - 세이지메이커 | ✅ | ✅ | ✅ | ✅ | ✅ | |
AWS - 기반암 | ✅ | ✅ | ✅ | ✅ | ✅ | |
구글 - vertex_ai | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
구글-팜 | ✅ | ✅ | ✅ | ✅ | ||
구글 AI 스튜디오 - 쌍둥이자리 | ✅ | ✅ | ✅ | ✅ | ||
미스트랄 AI API | ✅ | ✅ | ✅ | ✅ | ✅ | |
cloudflare AI 작업자 | ✅ | ✅ | ✅ | ✅ | ||
응집하다 | ✅ | ✅ | ✅ | ✅ | ✅ | |
인류의 | ✅ | ✅ | ✅ | ✅ | ||
권한을 부여하다 | ✅ | ✅ | ✅ | ✅ | ||
포옹 얼굴 | ✅ | ✅ | ✅ | ✅ | ✅ | |
뒤로 젖히다 | ✅ | ✅ | ✅ | ✅ | ||
함께_ai | ✅ | ✅ | ✅ | ✅ | ||
오픈라우터 | ✅ | ✅ | ✅ | ✅ | ||
ai21 | ✅ | ✅ | ✅ | ✅ | ||
바스텐 | ✅ | ✅ | ✅ | ✅ | ||
vllm | ✅ | ✅ | ✅ | ✅ | ||
nlp_cloud | ✅ | ✅ | ✅ | ✅ | ||
알레프 알파 | ✅ | ✅ | ✅ | ✅ | ||
꽃잎 | ✅ | ✅ | ✅ | ✅ | ||
올라마 | ✅ | ✅ | ✅ | ✅ | ✅ | |
딥인프라 | ✅ | ✅ | ✅ | ✅ | ||
난처함-ai | ✅ | ✅ | ✅ | ✅ | ||
그로크 AI | ✅ | ✅ | ✅ | ✅ | ||
심해탐색 | ✅ | ✅ | ✅ | ✅ | ||
규모에 상관없이 | ✅ | ✅ | ✅ | ✅ | ||
IBM - watsonx.ai | ✅ | ✅ | ✅ | ✅ | ✅ | |
항해 아이 | ✅ | |||||
xinference [Xorbits 추론] | ✅ | |||||
프렌드리AI | ✅ | ✅ | ✅ | ✅ |
문서 읽기
기여하려면: 리포지토리를 로컬로 복제 -> 변경 -> 변경 사항이 포함된 PR 제출.
저장소를 로컬에서 수정하는 방법은 다음과 같습니다. 1단계: 저장소 복제
git clone https://github.com/BerriAI/litellm.git
2단계: 프로젝트로 이동하여 종속성을 설치합니다.
cd litellm
poetry install -E extra_proxy -E proxy
3단계: 변경 사항 테스트:
cd litellm/tests # pwd: Documents/litellm/litellm/tests
poetry run flake8
poetry run pytest .
4단계: 변경 사항이 포함된 PR을 제출하세요! ?
더 나은 보안, 사용자 관리 및 전문적인 지원이 필요한 기업의 경우
창업자와 대화하기
여기에는 다음이 포함됩니다.