创建你的第一个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。
下一步: