跳至主要內容

建立您的第一個 LLM playground

建立一個 playground,以便在不到 10 分鐘內評估多個 LLM 提供者。如果您想在正式環境中查看這一點,請參閱我們的網站

它會長什麼樣子?

我們要怎麼做?:我們會建立伺服器,並將它連接到我們的範本前端,最後在結束時得到一個可運作的 playground UI!

資訊

在開始之前,請確認您已遵循 environment-setup 指南。請注意,本教學依賴您至少擁有 1 個模型提供者的 API 金鑰(例如 OpenAI)。

1. 快速開始

讓我們先確認金鑰可正常運作。請在您選擇的任何環境中執行這段程式(例如 Google Colab)。

🚨 別忘了將預留位置的金鑰值替換成您的金鑰!

uv add 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. 設定伺服器

讓我們先建立一個基本的 Flask 應用程式作為後端伺服器。我們會為 completion 請求設定一個特定路由。

注意

  • 🚨 別忘了將預留位置的金鑰值替換成您的金鑰!
  • completion_with_retries:LLM API 請求在正式環境中可能會失敗。這個函式會用 tenacity 封裝一般的 litellm completion() 呼叫,以便在失敗時重試。

LiteLLM 特定片段:

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

完整程式碼如下:

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)

讓我們測試一下

啟動伺服器:

python main.py

執行這個 curl 指令來測試:

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"
}]
}'

您應該會看到這樣的結果

3. 連接到我們的前端範本

3.1 下載範本

前端我們會使用 Streamlit——這讓我們能夠建立一個簡單的 Python 網頁應用程式。

讓我們下載 LiteLLM 為您建立的 playground 範本:

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

3.2 執行它

請確認 步驟 2 的伺服器仍在 4000 埠執行

資訊

如果您使用其他埠,沒問題——只要確認您有在 playground 範本的 app.py 中更改這一行

現在讓我們執行應用程式:

cd litellm_playground_fe_template && streamlit run app.py

如果您沒有安裝 Streamlit——只要使用 uv add 加上它即可(或查看他們的安裝指南

uv add streamlit

您應該會看到這樣的結果:

恭喜 🚀

您已建立您的第一個 LLM Playground——具備可呼叫 50+ 個 LLM API 的能力。

下一步:

🚅
LiteLLM Enterprise
為正式環境打造的 SSO/SAML、稽核記錄、支出追蹤、多團隊管理與防護欄。
深入瞭解 →