请求的生命周期
高层架构
请求流程
用户发送请求:当用户向LiteLLM代理服务器(网关)发送请求时,流程开始。
虚拟密钥:在此阶段,检查请求中的
Bearer令牌以确保其有效并符合预算。以下是每次请求运行的检查列表- 2.1 检查虚拟密钥是否存在于Redis缓存或内存缓存中
- 2.2 如果不在缓存中,在数据库中查找虚拟密钥
速率限制:MaxParallelRequestsHandler检查以下组件的速率限制(rpm/tpm):
- 全局服务器速率限制
- 虚拟密钥速率限制
- 用户速率限制
- 团队限制
LiteLLM
proxy_server.py:包含/chat/completions和/embeddings端点。这些端点的请求通过LiteLLM路由器发送。LiteLLM路由器:LiteLLM路由器处理LLM API部署的负载均衡、回退和重试。
litellm.completion() / litellm.embedding():使用litellm Python SDK以OpenAI API格式调用LLM(转换和参数映射)。
请求后处理:在响应发送回客户端后,执行以下异步任务:
- 记录到LangFuse(记录目的地可配置)
- MaxParallelRequestsHandler更新以下组件的rpm/tpm使用情况:
- 全局服务器速率限制
- 虚拟密钥速率限制
- 用户速率限制
- 团队限制
_PROXY_track_cost_callback更新LiteLLM数据库中的花费/使用情况。以下是每次请求在数据库中跟踪的所有内容