跳到主要内容

请求的生命周期

高层架构

请求流程

  1. 用户发送请求:当用户向 LiteLLM 代理服务器(网关)发送请求时,流程开始。

  2. 虚拟密钥:在此阶段,检查请求中的 Bearer token 是否有效且未超出预算。 这里是每次请求运行的检查列表

    • 2.1 检查虚拟密钥是否存在于 Redis 缓存或内存缓存中
    • 2.2 如果不在缓存中,则在数据库中查找虚拟密钥
  3. 速率限制MaxParallelRequestsHandler 检查以下组件的速率限制(每分钟请求数/每分钟 token 数)

    • 全局服务器速率限制
    • 虚拟密钥速率限制
    • 用户速率限制
    • 团队限制
  4. LiteLLM proxy_server.py:包含 /chat/completions/embeddings 端点。对这些端点的请求通过 LiteLLM 路由器发送

  5. LiteLLM 路由器:LiteLLM 路由器处理 LLM API 部署的负载均衡、故障转移和重试。

  6. litellm.completion() / litellm.embedding()使用 litellm Python SDK 以 OpenAI API 格式调用 LLM(翻译和参数映射)

  7. 请求后处理:在响应发送回客户端后,执行以下异步任务

常见问题

  1. 数据库事务是否与请求的生命周期绑定?
    • 否,数据库事务不与请求的生命周期绑定。
    • 检查虚拟密钥是否有效依赖于数据库读取,如果它不在缓存中。
    • 所有其他数据库事务都在后台任务中异步执行