forked from phoenix/litellm-mirror
update cookbook
This commit is contained in:
parent
8a2be96c67
commit
5914dbb666
2 changed files with 198 additions and 58 deletions
198
cookbook/LiteLLM_AB_TestLLMs.ipynb
vendored
Normal file
198
cookbook/LiteLLM_AB_TestLLMs.ipynb
vendored
Normal file
|
@ -0,0 +1,198 @@
|
||||||
|
{
|
||||||
|
"nbformat": 4,
|
||||||
|
"nbformat_minor": 0,
|
||||||
|
"metadata": {
|
||||||
|
"colab": {
|
||||||
|
"provenance": []
|
||||||
|
},
|
||||||
|
"kernelspec": {
|
||||||
|
"name": "python3",
|
||||||
|
"display_name": "Python 3"
|
||||||
|
},
|
||||||
|
"language_info": {
|
||||||
|
"name": "python"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"cells": [
|
||||||
|
{
|
||||||
|
"cell_type": "markdown",
|
||||||
|
"source": [
|
||||||
|
"# LiteLLM A/B Testing LLMs in production\n",
|
||||||
|
"\n",
|
||||||
|
"* LiteLLM allows you to use 100+ LLMs as a drop in replacement for `gpt-3.5-turbo`\n",
|
||||||
|
"\n",
|
||||||
|
"This tutorial walks through how to use LiteLLM to easily A/B Test LLMs in production"
|
||||||
|
],
|
||||||
|
"metadata": {
|
||||||
|
"id": "ODpmJQ5u4rXI"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "markdown",
|
||||||
|
"source": [
|
||||||
|
"# Example 1: A/B Test GPT-4 & GPT-3.5\n",
|
||||||
|
"\n",
|
||||||
|
"# Step 1\n",
|
||||||
|
"👉 Get your `id` from here: https://admin.litellm.ai/"
|
||||||
|
],
|
||||||
|
"metadata": {
|
||||||
|
"id": "YamUetcC5Ke7"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"source": [
|
||||||
|
"from litellm import completion_with_split_tests\n",
|
||||||
|
"import os\n",
|
||||||
|
"\n",
|
||||||
|
"## set ENV variables\n",
|
||||||
|
"os.environ[\"OPENAI_API_KEY\"] = \"\"\n",
|
||||||
|
"\n",
|
||||||
|
"\n",
|
||||||
|
"# define a dict of model id and % of requests for model\n",
|
||||||
|
"# see models here: https://docs.litellm.ai/docs/completion/supported\n",
|
||||||
|
"split_per_model = {\n",
|
||||||
|
"\t\"gpt-4\": 0.3,\n",
|
||||||
|
"\t\"gpt-3.5-turbo\": 0.7\n",
|
||||||
|
"}\n",
|
||||||
|
"\n",
|
||||||
|
"messages = [{ \"content\": \"Hello, how are you?\",\"role\": \"user\"}]\n",
|
||||||
|
"\n",
|
||||||
|
"completion_with_split_tests(messages=messages, use_client=True,\n",
|
||||||
|
" id=\"91fad14a-8c0f-4e99-8eaa-68245435aa80\") # enter your id"
|
||||||
|
],
|
||||||
|
"metadata": {
|
||||||
|
"colab": {
|
||||||
|
"base_uri": "https://localhost:8080/"
|
||||||
|
},
|
||||||
|
"id": "7XGfv0958k70",
|
||||||
|
"outputId": "91a069a5-c7d4-4fb0-e345-5ebf383edbbc"
|
||||||
|
},
|
||||||
|
"execution_count": 4,
|
||||||
|
"outputs": [
|
||||||
|
{
|
||||||
|
"output_type": "stream",
|
||||||
|
"name": "stdout",
|
||||||
|
"text": [
|
||||||
|
"last_fetched_at: 1693624804.2941535\n"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"output_type": "execute_result",
|
||||||
|
"data": {
|
||||||
|
"text/plain": [
|
||||||
|
"<OpenAIObject chat.completion id=chatcmpl-7uBT4QHc8BAoZKkU7JoH4ahmXvu0M at 0x7c2895c9e890> JSON: {\n",
|
||||||
|
" \"id\": \"chatcmpl-7uBT4QHc8BAoZKkU7JoH4ahmXvu0M\",\n",
|
||||||
|
" \"object\": \"chat.completion\",\n",
|
||||||
|
" \"created\": 1693624806,\n",
|
||||||
|
" \"model\": \"gpt-3.5-turbo-0613\",\n",
|
||||||
|
" \"choices\": [\n",
|
||||||
|
" {\n",
|
||||||
|
" \"index\": 0,\n",
|
||||||
|
" \"message\": {\n",
|
||||||
|
" \"role\": \"assistant\",\n",
|
||||||
|
" \"content\": \"Hello! I'm an AI, so I don't have emotions, but I'm here to assist you. How can I help you today?\"\n",
|
||||||
|
" },\n",
|
||||||
|
" \"finish_reason\": \"stop\"\n",
|
||||||
|
" }\n",
|
||||||
|
" ],\n",
|
||||||
|
" \"usage\": {\n",
|
||||||
|
" \"prompt_tokens\": 13,\n",
|
||||||
|
" \"completion_tokens\": 29,\n",
|
||||||
|
" \"total_tokens\": 42\n",
|
||||||
|
" }\n",
|
||||||
|
"}"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"metadata": {},
|
||||||
|
"execution_count": 4
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "markdown",
|
||||||
|
"source": [
|
||||||
|
"## A/B Test GPT-4 and Claude-2"
|
||||||
|
],
|
||||||
|
"metadata": {
|
||||||
|
"id": "Y12cxhZt58v8"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": 5,
|
||||||
|
"metadata": {
|
||||||
|
"colab": {
|
||||||
|
"base_uri": "https://localhost:8080/"
|
||||||
|
},
|
||||||
|
"id": "0k6rshtR8i9q",
|
||||||
|
"outputId": "31ac9d73-9e35-4697-d1ff-5d51048566f8"
|
||||||
|
},
|
||||||
|
"outputs": [
|
||||||
|
{
|
||||||
|
"output_type": "stream",
|
||||||
|
"name": "stdout",
|
||||||
|
"text": [
|
||||||
|
"last_fetched_at: 1693624809.3467667\n"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"output_type": "execute_result",
|
||||||
|
"data": {
|
||||||
|
"text/plain": [
|
||||||
|
"<OpenAIObject chat.completion id=chatcmpl-7uBTA6gotsTksvCU7GffJ64ybfHUw at 0x7c28aa288630> JSON: {\n",
|
||||||
|
" \"id\": \"chatcmpl-7uBTA6gotsTksvCU7GffJ64ybfHUw\",\n",
|
||||||
|
" \"object\": \"chat.completion\",\n",
|
||||||
|
" \"created\": 1693624812,\n",
|
||||||
|
" \"model\": \"gpt-4-0613\",\n",
|
||||||
|
" \"choices\": [\n",
|
||||||
|
" {\n",
|
||||||
|
" \"index\": 0,\n",
|
||||||
|
" \"message\": {\n",
|
||||||
|
" \"role\": \"assistant\",\n",
|
||||||
|
" \"content\": \"As an AI, I don't have feelings, but I'm here and ready to assist you. How can I help you today?\"\n",
|
||||||
|
" },\n",
|
||||||
|
" \"finish_reason\": \"stop\"\n",
|
||||||
|
" }\n",
|
||||||
|
" ],\n",
|
||||||
|
" \"usage\": {\n",
|
||||||
|
" \"prompt_tokens\": 13,\n",
|
||||||
|
" \"completion_tokens\": 27,\n",
|
||||||
|
" \"total_tokens\": 40\n",
|
||||||
|
" }\n",
|
||||||
|
"}"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"metadata": {},
|
||||||
|
"execution_count": 5
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"source": [
|
||||||
|
"from litellm import completion_with_split_tests\n",
|
||||||
|
"import os\n",
|
||||||
|
"\n",
|
||||||
|
"## set ENV variables\n",
|
||||||
|
"os.environ[\"ANTHROPIC_API_KEY\"] = \"\"\n",
|
||||||
|
"\n",
|
||||||
|
"# define a dict of model id and % of requests for model\n",
|
||||||
|
"split_per_model = {\n",
|
||||||
|
"\t\"gpt-4\": 0.3,\n",
|
||||||
|
"\t\"claude-2\": 0.7\n",
|
||||||
|
"}\n",
|
||||||
|
"\n",
|
||||||
|
"messages = [{ \"content\": \"Hello, how are you?\",\"role\": \"user\"}]\n",
|
||||||
|
"\n",
|
||||||
|
"\n",
|
||||||
|
"completion_with_split_tests(messages=messages, use_client=True,\n",
|
||||||
|
" id=\"91fad14a-8c0f-4e99-8eaa-68245435aa80\") # enter your id"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "markdown",
|
||||||
|
"source": [],
|
||||||
|
"metadata": {
|
||||||
|
"id": "hzzbsAIp4pnr"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -1,58 +0,0 @@
|
||||||
# -*- coding: utf-8 -*-
|
|
||||||
"""LiteLLM_AB_TestLLMs.ipynb
|
|
||||||
|
|
||||||
Automatically generated by Colaboratory.
|
|
||||||
|
|
||||||
Original file is located at
|
|
||||||
https://colab.research.google.com/drive/1Y7zcpuJT5rqJYEELeg9UfP1Zf8gFVR_o
|
|
||||||
|
|
||||||
# LiteLLM A/B Testing LLMs in production
|
|
||||||
|
|
||||||
* LiteLLM allows you to use 100+ LLMs as a drop in replacement for `gpt-3.5-turbo`
|
|
||||||
|
|
||||||
This tutorial walks through how to use LiteLLM to easily A/B Test LLMs in production
|
|
||||||
|
|
||||||
# Example 1: A/B Test GPT-4 & GPT-3.5
|
|
||||||
|
|
||||||
# Step 1
|
|
||||||
👉 Get your `id` from here: https://admin.litellm.ai/
|
|
||||||
"""
|
|
||||||
|
|
||||||
from litellm import completion_with_split_tests
|
|
||||||
import os
|
|
||||||
|
|
||||||
## set ENV variables
|
|
||||||
os.environ["OPENAI_API_KEY"] = "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"
|
|
||||||
|
|
||||||
|
|
||||||
# define a dict of model id and % of requests for model
|
|
||||||
# see models here: https://docs.litellm.ai/docs/completion/supported
|
|
||||||
split_per_model = {
|
|
||||||
"gpt-4": 0.3,
|
|
||||||
"gpt-3.5-turbo": 0.7
|
|
||||||
}
|
|
||||||
|
|
||||||
messages = [{ "content": "Hello, how are you?","role": "user"}]
|
|
||||||
|
|
||||||
completion_with_split_tests(messages=messages, use_client=True,
|
|
||||||
id="91fad14a-8c0f-4e99-8eaa-68245435aa80") # enter your id
|
|
||||||
|
|
||||||
"""## A/B Test GPT-4 and Claude-2"""
|
|
||||||
|
|
||||||
from litellm import completion_with_split_tests
|
|
||||||
import os
|
|
||||||
|
|
||||||
## set ENV variables
|
|
||||||
os.environ["ANTHROPIC_API_KEY"] = ""
|
|
||||||
|
|
||||||
# define a dict of model id and % of requests for model
|
|
||||||
split_per_model = {
|
|
||||||
"gpt-4": 0.3,
|
|
||||||
"claude-2": 0.7
|
|
||||||
}
|
|
||||||
|
|
||||||
messages = [{ "content": "Hello, how are you?","role": "user"}]
|
|
||||||
|
|
||||||
|
|
||||||
completion_with_split_tests(messages=messages, use_client=True,
|
|
||||||
id="91fad14a-8c0f-4e99-8eaa-68245435aa80") # enter your id
|
|
Loading…
Add table
Add a link
Reference in a new issue