เรียก LLM API ทั้งหมดโดยใช้รูปแบบ OpenAI [Bedrock, Huggingface, VertexAI, TogetherAI, Azure, OpenAI, Groq ฯลฯ]
LiteLLM จัดการ:
completion
ของผู้ให้บริการ embedding
และจุดสิ้นสุด image_generation
['choices'][0]['message']['content']
เสมอ ข้ามไปที่เอกสาร LiteLLM Proxy (LLM Gateway)
ข้ามไปยังผู้ให้บริการ 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
สำคัญ
ใช้ LiteLLM Proxy กับ 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 บน /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
}
ผู้ให้บริการ | เสร็จสิ้น | สตรีมมิ่ง | เสร็จสิ้นแบบอะซิงโครนัส | สตรีมมิ่งแบบอะซิงโครนัส | การฝังแบบอะซิงก์ | การสร้างภาพ Async |
---|---|---|---|---|---|---|
เปิดใจ | ||||||
สีฟ้า | ||||||
aws - นักปราชญ์ | ||||||
แย่จัง - ข้อเท็จจริง | ||||||
กูเกิล - vertex_ai | ||||||
google - ฝ่ามือ | ||||||
google AI Studio - ราศีเมถุน | ||||||
มิสทรัล ไอ เอพี | ||||||
คนงาน AI ของ cloudflare | ||||||
เชื่อมโยงกัน | ||||||
มานุษยวิทยา | ||||||
ให้อำนาจ | ||||||
การกอด | ||||||
ทำซ้ำ | ||||||
together_ai | ||||||
โอเพ่นเราเตอร์ | ||||||
ไอ21 | ||||||
ชั้นใต้ดิน | ||||||
vllm | ||||||
nlp_cloud | ||||||
อาเลฟ อัลฟ่า | ||||||
กลีบดอก | ||||||
โอลามา | ||||||
ลึกอินฟรา | ||||||
ความฉงนสนเท่ห์-ai | ||||||
กร็อก เอไอ | ||||||
ดีพซีค | ||||||
อะไรก็ได้ | ||||||
ไอบีเอ็ม - watsonx.ai | ||||||
การเดินทางไอ | ||||||
xinference [การอนุมาน Xorbits] | ||||||
เฟรนลี่ไอ |
อ่านเอกสาร
เพื่อสนับสนุน: โคลน Repo ในเครื่อง -> ทำการเปลี่ยนแปลง -> ส่ง PR ที่มีการเปลี่ยนแปลง
ต่อไปนี้เป็นวิธีแก้ไข Repo ในเครื่อง: ขั้นตอนที่ 1: โคลน Repo
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 พร้อมการเปลี่ยนแปลงของคุณ! -
สำหรับบริษัทที่ต้องการความปลอดภัย การจัดการผู้ใช้ และการสนับสนุนอย่างมืออาชีพที่ดีกว่า
พูดคุยกับผู้ก่อตั้ง
สิ่งนี้ครอบคลุมถึง: