LiteLLM

image

1- LiteLLM

网址:https://docs.litellm.ai/

LiteLLM 是一个强大的工具,旨在简化对多种大型语言模型(LLMs)的调用。通过统一的接口,用户可以方便地访问 100 多种不同的模型。以下是一个详细的使用教程,包括安装、配置、基本用法和高级功能。

1.1- 安装 LiteLLM

1.1.1- 安装 Python SDK

首先,确保您的系统上安装了 Python。然后,您可以通过以下命令安装 LiteLLM:

pip install litellm

1.1.2- 安装 Docker(可选)

如果您希望使用 LiteLLM 的代理服务器功能,您需要安装 Docker。请根据您的操作系统访问 Docker 官网 进行安装。

1.2- 设置环境变量

在使用 LiteLLM 之前,您需要设置一些环境变量以存储 API 密钥。以下是设置环境变量的步骤:

1.2.1- 创建 .env 文件

在您的项目目录中创建一个名为 .env 的文件,并添加以下内容:

LITELLM_MASTER_KEY="your_master_key"
LITELLM_SALT_KEY="your_salt_key"
OPENAI_API_KEY="your_openai_api_key"
AZURE_API_KEY="your_azure_api_key"
AZURE_API_BASE="https://your-azure-api-base/"

请确保将 your_master_keyyour_salt_key 和其他密钥替换为您自己的密钥。

1.2.2- 加载环境变量

在终端中运行以下命令以加载环境变量:

source .env

1.3- 配置 LiteLLM

1.3.1- 创建配置文件

在项目目录中创建一个名为 litellm_config.yaml 的配置文件,内容如下:

model_list:
  - model_name: gpt-3.5-turbo
    litellm_params:
      model: openai/gpt-3.5-turbo
      api_key: os.environ/OPENAI_API_KEY
  - model_name: azure-gpt-3.5
    litellm_params:
      model: azure/<your-azure-model-deployment>
      api_base: os.environ/AZURE_API_BASE
      api_key: os.environ/AZURE_API_KEY
      api_version: "2023-07-01-preview"

1.3.2- 启动 Docker 容器

使用以下命令启动 LiteLLM 的 Docker 容器:

docker run \
  -v $(pwd)/litellm_config.yaml:/app/config.yaml \
  -e AZURE_API_KEY="your_azure_api_key" \
  -e AZURE_API_BASE="https://your-azure-api-base/" \
  -p 4000:4000 \
  ghcr.io/berriai/litellm:main-latest \
  --config /app/config.yaml --detailed_debug

1.4- 使用 LiteLLM 进行 API 调用

1.4.1- 基本用法

在 Python 中使用 LiteLLM 进行 API 调用的基本步骤如下:

import os
from litellm import completion

# 设置 API 密钥
os.environ["OPENAI_API_KEY"] = "your_api_key"

# 发送请求
response = completion(
    model="gpt-3.5-turbo",
    messages=[
        {
            "role": "user",
            "content": "你好,今天的天气怎么样?"
        }
    ]
)

print(response)

1.4.2- 处理响应

LiteLLM 的响应将包含模型生成的内容,您可以根据需要进行处理。例如:

if response and 'choices' in response:
    print("模型回复:", response['choices'][0]['message']['content'])

1.5- 高级功能

1.5.1- 流式响应

LiteLLM 支持流式响应,您可以通过设置 stream=True 来获取实时输出:

response = completion(model="gpt-3.5-turbo", messages=messages, stream=True)

for part in response:
    print(part.choices[0].delta.content or "")

1.5.2- 日志记录和监控

您可以设置日志记录和监控工具,以便跟踪 API 调用的使用情况。以下是一个示例:

os.environ["LUNARY_PUBLIC_KEY"] = "your-lunary-public-key"
litellm.success_callback = ["lunary", "langfuse"]

1.5.3- 异常处理

LiteLLM 将所有支持的提供者的异常映射到 OpenAI 的异常。您可以使用以下代码处理异常:

from openai.error import OpenAIError

try:
    response = completion(model="gpt-3.5-turbo", messages=[{"role": "user", "content": "你好!"}])
except OpenAIError as e:
    print("发生错误:", e)

1.6- 总结

LiteLLM 是一个功能强大的工具,能够简化对多种大型语言模型的调用。通过本教程,您可以快速上手并利用 LiteLLM 的各种功能来构建自己的应用程序。如果您在使用过程中遇到问题,请参考官方文档或社区支持以获取更多帮助。