OpenAI 形式を使用してすべての LLM API を呼び出します [Bedrock、Huggingface、VertexAI、TogetterAI、Azure、OpenAI、Groq など]
LiteLLM は以下を管理します。
completion
、 embedding
、およびimage_generation
エンドポイントに変換します。['choices'][0]['message']['content']
で常に利用可能になります。 LiteLLM プロキシ (LLM ゲートウェイ) のドキュメントに移動
サポートされている LLM プロバイダーに移動
?安定版リリース: -stable
タグを付けた Docker イメージを使用します。これらは公開前に 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、TogetterAI、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、Athana、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 - 基盤 | ✅ | ✅ | ✅ | ✅ | ✅ | |
グーグル - 頂点_ai | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
グーグル - 手のひら | ✅ | ✅ | ✅ | ✅ | ||
Google AI スタジオ - ジェミニ | ✅ | ✅ | ✅ | ✅ | ||
ミストラルアイAPI | ✅ | ✅ | ✅ | ✅ | ✅ | |
クラウドフレア AI ワーカー | ✅ | ✅ | ✅ | ✅ | ||
一致する | ✅ | ✅ | ✅ | ✅ | ✅ | |
人間的な | ✅ | ✅ | ✅ | ✅ | ||
力を与える | ✅ | ✅ | ✅ | ✅ | ||
抱きしめる顔 | ✅ | ✅ | ✅ | ✅ | ✅ | |
複製する | ✅ | ✅ | ✅ | ✅ | ||
一緒に愛 | ✅ | ✅ | ✅ | ✅ | ||
オープンルーター | ✅ | ✅ | ✅ | ✅ | ||
ai21 | ✅ | ✅ | ✅ | ✅ | ||
ベーステン | ✅ | ✅ | ✅ | ✅ | ||
vllm | ✅ | ✅ | ✅ | ✅ | ||
nlp_クラウド | ✅ | ✅ | ✅ | ✅ | ||
アレフ・アルファ | ✅ | ✅ | ✅ | ✅ | ||
花びら | ✅ | ✅ | ✅ | ✅ | ||
オラマ | ✅ | ✅ | ✅ | ✅ | ✅ | |
ディープインフラ | ✅ | ✅ | ✅ | ✅ | ||
困惑-ai | ✅ | ✅ | ✅ | ✅ | ||
グロクAI | ✅ | ✅ | ✅ | ✅ | ||
ディープシーク | ✅ | ✅ | ✅ | ✅ | ||
あらゆるスケール | ✅ | ✅ | ✅ | ✅ | ||
IBM - ワトソンx.ai | ✅ | ✅ | ✅ | ✅ | ✅ | |
航海アイ | ✅ | |||||
xinference [Xorbits 推論] | ✅ | |||||
フレンドリーアイ | ✅ | ✅ | ✅ | ✅ |
ドキュメントを読む
貢献するには: リポジトリをローカルにクローンする -> 変更を加える -> 変更を含む 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 を送信してください。 ?
より優れたセキュリティ、ユーザー管理、専門的なサポートを必要とする企業向け
創設者と話す
これには以下が含まれます: