Zum Hauptinhalt springen

Erstellen Sie Ihren ersten LLM-Spielplatz

Erstellen Sie einen Playground, um mehrere LLM-Anbieter in weniger als 10 Minuten zu evaluieren. Wenn Sie dies in Produktion sehen möchten, schauen Sie sich unsere Website an.

Wie wird es aussehen?

Wie werden wir das tun?: Wir bauen den Server und verbinden ihn mit unserem Vorlagen-Frontend, was am Ende zu einer funktionierenden Playground-Oberfläche führt!

Info

Stellen Sie vor dem Start sicher, dass Sie die Anleitung zur Umgebungs-Einrichtung befolgt haben. Bitte beachten Sie, dass dieses Tutorial davon ausgeht, dass Sie API-SchlĂĽssel von mindestens einem Modell-Anbieter (z.B. OpenAI) besitzen.

1. Schneller Start​

Stellen wir sicher, dass unsere SchlĂĽssel funktionieren. FĂĽhren Sie dieses Skript in jeder beliebigen Umgebung aus (z.B. Google Colab).

🚨 Vergessen Sie nicht, die Platzhalter-Schlüsselwerte durch Ihre Schlüssel zu ersetzen!

pip install litellm
from litellm import completion

## set ENV variables
os.environ["OPENAI_API_KEY"] = "openai key" ## REPLACE THIS
os.environ["COHERE_API_KEY"] = "cohere key" ## REPLACE THIS
os.environ["AI21_API_KEY"] = "ai21 key" ## REPLACE THIS


messages = [{ "content": "Hello, how are you?","role": "user"}]

# openai call
response = completion(model="gpt-3.5-turbo", messages=messages)

# cohere call
response = completion("command-nightly", messages)

# ai21 call
response = completion("j2-mid", messages)

2. Server einrichten​

Wir bauen eine einfache Flask-App als Backend-Server. Wir geben ihr eine spezielle Route fĂĽr unsere Abschlussaufrufe.

Notizen:

  • 🚨 Vergessen Sie nicht, die Platzhalter-SchlĂĽsselwerte durch Ihre SchlĂĽssel zu ersetzen!
  • completion_with_retries: LLM API-Aufrufe können in der Produktion fehlschlagen. Diese Funktion umschlieĂźt den normalen litellm completion()-Aufruf mit tenacity, um den Aufruf im Falle eines Fehlers erneut zu versuchen.

LiteLLM spezifischer Ausschnitt

import os
from litellm import completion_with_retries

## set ENV variables
os.environ["OPENAI_API_KEY"] = "openai key" ## REPLACE THIS
os.environ["COHERE_API_KEY"] = "cohere key" ## REPLACE THIS
os.environ["AI21_API_KEY"] = "ai21 key" ## REPLACE THIS


@app.route('/chat/completions', methods=["POST"])
def api_completion():
data = request.json
data["max_tokens"] = 256 # By default let's set max_tokens to 256
try:
# COMPLETION CALL
response = completion_with_retries(**data)
except Exception as e:
# print the error
print(e)
return response

Der vollständige Code

import os
from flask import Flask, jsonify, request
from litellm import completion_with_retries


## set ENV variables
os.environ["OPENAI_API_KEY"] = "openai key" ## REPLACE THIS
os.environ["COHERE_API_KEY"] = "cohere key" ## REPLACE THIS
os.environ["AI21_API_KEY"] = "ai21 key" ## REPLACE THIS

app = Flask(__name__)

# Example route
@app.route('/', methods=['GET'])
def hello():
return jsonify(message="Hello, Flask!")

@app.route('/chat/completions', methods=["POST"])
def api_completion():
data = request.json
data["max_tokens"] = 256 # By default let's set max_tokens to 256
try:
# COMPLETION CALL
response = completion_with_retries(**data)
except Exception as e:
# print the error
print(e)

return response

if __name__ == '__main__':
from waitress import serve
serve(app, host="0.0.0.0", port=4000, threads=500)

Testen wir es​

Starten Sie den Server

python main.py

FĂĽhren Sie diesen curl-Befehl aus, um ihn zu testen

curl -X POST localhost:4000/chat/completions \
-H 'Content-Type: application/json' \
-d '{
"model": "gpt-3.5-turbo",
"messages": [{
"content": "Hello, how are you?",
"role": "user"
}]
}'

Das sollten Sie sehen

3. Verbindung zu unserer Frontend-Vorlage​

3.1 Vorlage herunterladen​

Für unser Frontend verwenden wir Streamlit – dies ermöglicht es uns, eine einfache Python-Web-App zu erstellen.

Laden wir die von uns (LiteLLM) erstellte Playground-Vorlage herunter

git clone https://github.com/BerriAI/litellm_playground_fe_template.git

3.2 Ausführen​

Stellen Sie sicher, dass unser Server aus Schritt 2 immer noch auf Port 4000 läuft

Info

Wenn Sie einen anderen Port verwendet haben, kein Problem – stellen Sie einfach sicher, dass Sie diese Zeile in der app.py Ihrer Playground-Vorlage ändern.

Lassen Sie uns nun unsere App ausfĂĽhren

cd litellm_playground_fe_template && streamlit run app.py

Wenn Sie Streamlit vermissen – installieren Sie es einfach mit pip (oder werfen Sie einen Blick auf die Installationsrichtlinien)

pip install streamlit

Das sollten Sie sehen

Herzlichen Glückwunsch 🚀

Sie haben Ihren ersten LLM Playground erstellt – mit der Möglichkeit, über 50 LLM-APIs aufzurufen.

Nächste Schritte