Skip to main content

创建你的第一个LLM游乐场

创建一个游乐场,在不到10分钟内评估多个LLM提供商。如果你想在生产环境中看到这个功能,请查看我们的网站

它看起来会是什么样子?

我们将如何实现这一点?:我们将构建服务器并将其连接到我们的模板前端,最终得到一个可用的游乐场UI!

info

开始之前,请确保你已经按照环境设置指南进行了操作。请注意,本教程依赖于你至少拥有一个模型提供商(例如OpenAI)的API密钥。

1. 快速开始

让我们确保我们的密钥是有效的。在你选择的任何环境中运行此脚本(例如Google Colab)。

🚨 不要忘记将占位符密钥值替换为你的密钥!

pip install litellm
from litellm import completion

## 设置环境变量
os.environ["OPENAI_API_KEY"] = "openai key" ## 替换此项
os.environ["COHERE_API_KEY"] = "cohere key" ## 替换此项
os.environ["AI21_API_KEY"] = "ai21 key" ## 替换此项


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

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

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

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

2. 设置服务器

让我们构建一个基本的Flask应用作为我们的后端服务器。我们将为我们的完成调用设置一个特定的路由。

注释:

  • 🚨 不要忘记将占位符密钥值替换为你的密钥!
  • completion_with_retries: LLM API调用在生产环境中可能会失败。此函数使用tenacity包装普通的litellm completion()调用,以便在调用失败时重试。

LiteLLM特定的代码片段:

import os
from litellm import completion_with_retries

## 设置环境变量
os.environ["OPENAI_API_KEY"] = "openai key" ## 替换此项
os.environ["COHERE_API_KEY"] = "cohere key" ## 替换此项
os.environ["AI21_API_KEY"] = "ai21 key" ## 替换此项


@app.route('/chat/completions', methods=["POST"])
def api_completion():
data = request.json
data["max_tokens"] = 256 # 默认情况下,我们将max_tokens设置为256
try:
# 完成调用
response = completion_with_retries(**data)
except Exception as e:
# 打印错误
print(e)
return response

完整的代码:

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


## 设置环境变量
os.environ["OPENAI_API_KEY"] = "openai key" ## 替换此项
os.environ["COHERE_API_KEY"] = "cohere key" ## 替换此项
os.environ["AI21_API_KEY"] = "ai21 key" ## 替换此项

app = Flask(__name__)

# 示例路由
@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 # 默认情况下,我们将max_tokens设置为256
try:
# 完成调用
response = completion_with_retries(**data)
except Exception as e:
# 打印错误
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 Web应用程序。

让我们下载我们(LiteLLM)创建的游乐场模板:

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

3.2 运行它

确保我们在第2步中的服务器仍在4000端口运行

info

如果你使用了另一个端口,没问题 - 只需确保你更改了游乐场模板app.py中的这一行

现在让我们运行我们的应用:

cd litellm_playground_fe_template && streamlit run app.py

如果你缺少Streamlit - 只需pip安装它(或查看他们的安装指南

pip install streamlit

这是你应该看到的内容:

祝贺 🚀

你已经创建了你的第一个LLM Playground,能够调用50多个LLM API。

下一步: