Zum Hauptinhalt springen

[ALTER PROXY 👉 NEUER Proxy hier] Lokaler LiteLLM Proxy Server

Ein schneller und leichtgewichtiger, OpenAI-kompatibler Server zum Aufrufen von ĂĽber 100 LLM-APIs.

Info

Docs veraltet. Neue Docs 👉 hier

Verwendung​

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

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

Testen​

In einer neuen Shell ausfĂĽhren

$ litellm --test

OpenAI-Basis ersetzen​

import openai 

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

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

Andere unterstützte Modelle:​

Angenommen, Sie fĂĽhren vllm lokal aus
$ litellm --model vllm/facebook/opt-125m

Tutorial: Verwendung mit mehreren LLMs + LibreChat/Chatbot-UI/Auto-Gen/ChatDev/Langroid, etc.​

OpenAI-Basis ersetzen

import openai 

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

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

print(response)

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

print(response)

Lokaler Proxy​

So verwenden Sie den lokalen Proxy, um codellama/mistral/etc. Modelle fĂĽr verschiedene GitHub-Repositorys zu testen

pip install litellm
$ ollama pull codellama # OUR Local CodeLlama  

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

Tutorial: Verwendung mit mehreren LLMs + Aider/AutoGen/Langroid/etc.​

$ litellm

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

Eine Anfrage an Ihren Proxy senden​

import openai 

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

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

print(response)

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

print(response)
Hinweis

Beitragen Verwenden Sie diesen Server mit einem Projekt? Tragen Sie Ihr Tutorial hier bei!

Erweitert​

Logs​

$ litellm --logs

Dies gibt den neuesten Log (den Aufruf an die LLM-API + die empfangene Antwort) zurĂĽck.

Alle Logs werden in einer Datei namens api_logs.json im aktuellen Verzeichnis gespeichert.

Proxy konfigurieren​

Wenn Sie mĂĽssen

  • API-SchlĂĽssel speichern
  • LiteLLM-Parameter setzen (z. B. nicht zugeordnete Parameter löschen, Fallback-Modelle festlegen usw.)
  • Modellspezifische Parameter setzen (max. Token, Temperatur, API-Basis, Prompt-Vorlage)

Sie können diese nur für diese Sitzung (über die Befehlszeile) festlegen oder sie über eine Konfigurationsdatei über Neustarts hinweg beibehalten.

API-Schlüssel speichern​

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

LiteLLM speichert dies in einer lokal gespeicherten Konfigurationsdatei und behält dies über Sitzungen hinweg bei.

LiteLLM Proxy unterstĂĽtzt alle von LiteLLM unterstĂĽtzten API-SchlĂĽssel. Um SchlĂĽssel fĂĽr einen bestimmten Anbieter hinzuzufĂĽgen, ĂĽberprĂĽfen Sie diese Liste

$ litellm --add_key HUGGINGFACE_API_KEY=my-api-key #[OPTIONAL]

Z.B.: API-Basis, maximale Token und Temperatur einstellen.

FĂĽr diese Sitzung:

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

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

Leistung​

Wir haben 500.000 HTTP-Verbindungen fĂĽr 1 Minute auf dem FastAPI-Server mit wrk lastgetestet.

Hier sind unsere Ergebnisse

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

Support/mit Gründern sprechen​