Вызовите все API-интерфейсы LLM, используя формат OpenAI [Bedrock, Huggingface, VertexAI, TogetherAI, Azure, OpenAI, Groq и т. д.]
LiteLLM управляет:
completion
, embedding
и image_generation
поставщика.['choices'][0]['message']['content']
Перейти к документации по прокси-серверу LiteLLM (шлюз LLM)
Перейти к поддерживаемым поставщикам LLM
? Стабильная версия: используйте образы Docker с тегом -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
Важный
Используйте прокси-сервер LiteLLM с Langchain (Python, JS), OpenAI SDK (Python, JS), 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 для создания ключей прокси.
# 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
на вашем прокси-сервере
Установите бюджеты и ограничения ставок для нескольких проектов 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
}
Поставщик | Завершение | Потоковое вещание | Асинхронное завершение | Асинхронная потоковая передача | Асинхронное внедрение | Асинхронное создание изображений |
---|---|---|---|---|---|---|
опенай | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
лазурный | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
оу - мудрец | ✅ | ✅ | ✅ | ✅ | ✅ | |
оу - основа | ✅ | ✅ | ✅ | ✅ | ✅ | |
гугл — vertex_ai | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Гугл — ладонь | ✅ | ✅ | ✅ | ✅ | ||
Google AI Studio – Близнецы | ✅ | ✅ | ✅ | ✅ | ||
мистраль ай апи | ✅ | ✅ | ✅ | ✅ | ✅ | |
Cloudflare AI-работники | ✅ | ✅ | ✅ | ✅ | ||
согласовываться | ✅ | ✅ | ✅ | ✅ | ✅ | |
антропный | ✅ | ✅ | ✅ | ✅ | ||
расширять возможности | ✅ | ✅ | ✅ | ✅ | ||
обнимающее лицо | ✅ | ✅ | ✅ | ✅ | ✅ | |
копировать | ✅ | ✅ | ✅ | ✅ | ||
вместе_ай | ✅ | ✅ | ✅ | ✅ | ||
openrouter | ✅ | ✅ | ✅ | ✅ | ||
ай21 | ✅ | ✅ | ✅ | ✅ | ||
бастен | ✅ | ✅ | ✅ | ✅ | ||
вллм | ✅ | ✅ | ✅ | ✅ | ||
nlp_cloud | ✅ | ✅ | ✅ | ✅ | ||
алеф альфа | ✅ | ✅ | ✅ | ✅ | ||
лепестки | ✅ | ✅ | ✅ | ✅ | ||
оллама | ✅ | ✅ | ✅ | ✅ | ✅ | |
глубокая инфра | ✅ | ✅ | ✅ | ✅ | ||
недоумение-ай | ✅ | ✅ | ✅ | ✅ | ||
Грок ИИ | ✅ | ✅ | ✅ | ✅ | ||
Глубокий поиск | ✅ | ✅ | ✅ | ✅ | ||
любой масштаб | ✅ | ✅ | ✅ | ✅ | ||
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 со своими изменениями! ?
Для компаний, которым нужна лучшая безопасность, управление пользователями и профессиональная поддержка.
Поговорите с основателями
Это охватывает: