Zum Hauptinhalt springen

OpenAI-kompatible Endpunkte

Info

Die Auswahl von openai als Provider leitet Ihre Anfrage an einen OpenAI-kompatiblen Endpunkt über die vorgelagerte
offizielle OpenAI Python API-Bibliothek.

Diese Bibliothek erfordert einen API-Schlüssel für alle Anfragen, entweder über den Parameter api_key oder die Umgebungsvariable OPENAI_API_KEY.

Wenn Sie keinen gefälschten API-Schlüssel bei jeder Anfrage angeben möchten, sollten Sie einen Provider verwenden, der direkt mit Ihrem OpenAI-kompatiblen Endpunkt übereinstimmt, wie z. B. hosted_vllm oder llamafile.

Um Modelle aufzurufen, die hinter einem OpenAI-Proxy gehostet werden, nehmen Sie 2 Änderungen vor

  1. Für /chat/completions: Stellen Sie openai/ vor Ihren Modellnamen, damit LiteLLM weiß, dass Sie versuchen, einen OpenAI /chat/completions Endpunkt aufzurufen.

  2. Für /completions: Stellen Sie text-completion-openai/ vor Ihren Modellnamen, damit LiteLLM weiß, dass Sie versuchen, einen OpenAI /completions Endpunkt aufzurufen.[NICHT ERFORDERLICH für openai/ Endpunkte, die über die /v1/completions Route aufgerufen werden].

  3. Fügen Sie NICHTS Zusätzliches zur Basis-URL hinzu, z. B. /v1/embedding. LiteLLM verwendet den openai-client, um diese Aufrufe zu tätigen, und dieser fügt automatisch die relevanten Endpunkte hinzu.

Verwendung - Completion

import litellm
import os

response = litellm.completion(
model="openai/mistral", # add `openai/` prefix to model so litellm knows to route to OpenAI
api_key="sk-1234", # api key to your openai compatible endpoint
api_base="http://0.0.0.0:4000", # set API Base of your Custom OpenAI Endpoint
messages=[
{
"role": "user",
"content": "Hey, how's it going?",
}
],
)
print(response)

Verwendung - Embedding

import litellm
import os

response = litellm.embedding(
model="openai/GPT-J", # add `openai/` prefix to model so litellm knows to route to OpenAI
api_key="sk-1234", # api key to your openai compatible endpoint
api_base="http://0.0.0.0:4000", # set API Base of your Custom OpenAI Endpoint
input=["good morning from litellm"]
)
print(response)

Verwendung mit LiteLLM Proxy Server

So rufen Sie einen OpenAI-kompatiblen Endpunkt mit dem LiteLLM Proxy Server auf

  1. Konfigurieren Sie die config.yaml

    model_list:
    - model_name: my-model
    litellm_params:
    model: openai/<your-model-name> # add openai/ prefix to route as OpenAI provider
    api_base: <model-api-base> # add api base for OpenAI compatible provider
    api_key: api-key # api key to send your model
    Info

    Wenn Sie beim Testen einen Not Found Error erhalten, stellen Sie sicher, dass Ihre api_base den Suffix /v1 hat

    Beispiel: http://vllm-endpoint.xyz/v1

  2. Starten Sie den Proxy

    $ litellm --config /path/to/config.yaml
  3. Anfrage an LiteLLM Proxy Server senden

    import openai
    client = openai.OpenAI(
    api_key="sk-1234", # pass litellm proxy key, if you're using virtual keys
    base_url="http://0.0.0.0:4000" # litellm-proxy-base url
    )

    response = client.chat.completions.create(
    model="my-model",
    messages = [
    {
    "role": "user",
    "content": "what llm are you"
    }
    ],
    )

    print(response)

Erweitert - Systemnachrichten deaktivieren

Einige VLLM-Modelle (z. B. Gemma) unterstützen keine Systemnachrichten. Um diese Anfragen auf 'user'-Nachrichten abzubilden, verwenden Sie das Flag supports_system_message.

model_list:
- model_name: my-custom-model
litellm_params:
model: openai/google/gemma
api_base: http://my-custom-base
api_key: ""
supports_system_message: False # 👈 KEY CHANGE