Muhammad-314/llm-gateways-tut

GitHub: Muhammad-314/llm-gateways-tut

基于LiteLLM与LangChain的大模型网关实践项目,演示如何在多供应商环境下实现统一的API路由、故障转移、成本追踪与请求安全防护。

Stars: 0 | Forks: 0

# 🚀 LLM Gateway 架构与实现 (`llm-gateways-tut`) 本仓库包含实践代码和学习实验,旨在演示如何使用 **LiteLLM** 和 **LangChain** 构建并将 **LLM Gateway** 集成到生产级 AI 应用中[cite: 3]。 ## 📖 概述与架构 **LLM Gateway** 充当一个智能的中间件代理,位于你的生成式 AI 应用和底层模型提供商(OpenAI、Anthropic、Groq、Gemini 等)之间[cite: 3]。它将模型集成抽象在统一的 API 之后,从而防止供应商锁定,消除单点故障,并增加企业级控制[cite: 3]。 ``` ┌─────────────────────────────┐ │ Your Application │ │ (Chatbot, RAG, Agent, etc) │ └──────────────┬──────────────┘ │ ▼ ┌─────────────────────────────┐ │ LLM GATEWAY │ │ • Unified Routing │ │ • Automatic Fallbacks │ │ • In-Memory Caching │ │ • Cost & Latency Tracking │ │ • Guardrails & Callbacks │ └──────┬─────┬─────┬─────┬────┘ │ │ │ │ ▼ ▼ ▼ ▼ OpenAI Claude Gemini Groq ``` ## ✨ 已实现的核心功能 1. **统一 API 抽象**:使用 LiteLLM 的标准 `completion()` 签名调用 100 多个模型 endpoint(OpenAI、Anthropic、Groq 等)[cite: 3]。 2. **自动多提供商 Fallback**:当主要提供商发生中断或触发速率限制时,可优雅地故障转移到备用模型[cite: 3]。 3. **精确匹配的内存缓存**:使用 `litellm.cache` 缓存相同的查询,以减少 API 支出并缩短响应时间[cite: 3]。 4. **实时成本追踪**:使用 LiteLLM 内置的定价引擎(`completion_cost`)进行每次调用的 token 级别成本计算[cite: 3]。 5. **智能路由策略**:为 `Router` 实例配置 `least-busy`、`latency-based-routing` 和别名部署池[cite: 3]。 6. **可观测性与日志记录 Callback**:注册自定义的 `success_callback` 和 `failure_callback` 钩子,以生成包含 token 数量、延迟和用户标签的审计日志[cite: 3]。 7. **LangChain 与 LCEL 集成**:通过 `ChatLiteLLM` 封装 LiteLLM 模型,并使用 `.with_fallbacks()` 进行链式调用[cite: 3]。 8. **LiteLLM 原生 Guardrails**: * **PII 脱敏**:在分发 prompt 之前,基于正则表达式对电子邮件、电话号码、PAN、Aadhaar 和信用卡进行清洗[cite: 3]。 * **Prompt 注入防御**:使用输入 callback 拦截越狱和指令覆盖[cite: 3]。 * **禁止主题过滤**:在调用 API 之前检测被禁止的关键词并引发自定义异常[cite: 3]。 ## 📁 仓库与 Notebook 详细拆解 该 notebook(`llm_gateway.ipynb`)被划分为多个独立的模块[cite: 3]: | 部分 | 描述 | 关键模块/函数 | | :--- | :--- | :--- | | **1. 设置与环境** | 为 OpenAI、Anthropic 和 Groq 加载环境变量[cite: 3]。 | `dotenv`, `litellm`[cite: 3] | | **2. 统一 Completion** | 跨多个模型供应商的单一函数调用[cite: 3]。 | `litellm.completion()`[cite: 3] | | **3. 自动 Fallback** | 在模拟模型失败期间的 fallback 链执行[cite: 3]。 | `fallbacks=["gpt-4o-mini", ...]`[cite: 3] | | **4. 成本与缓存** | token 使用量计算和内存中的响应缓存[cite: 3]。 | `completion_cost`, `litellm.caching.Cache`[cite: 3] | | **5. 智能 Router** | 跨部署池的负载均衡和延迟路由[cite: 3]。 | `litellm.Router`[cite: 3] | | **6. 自定义 Callback** | 通过成功/失败事件处理程序构建审计日志[cite: 3]。 | `litellm.success_callback`[cite: 3] | | **7. LangChain Pipeline** | LangChain Chat Models 的无缝直接替换方案[cite: 3]。 | `ChatLiteLLM`, `.with_fallbacks()`[cite: 3] | | **8. 任务感知聊天机器人** | 将查询分类路由到专门的模型链[cite: 3]。 | `smart_chat()`[cite: 3] | | **9. Gateway Guardrails** | 用于 PII、注入和主题安全的调用前检查钩子[cite: 3]。 | `litellm.input_callback`[cite: 3] |
标签:AI中间件, AI安全防护栏, API路由, DLL 劫持, LangChain, LiteLLM, LLM网关, NoSQL, 大语言模型, 轻量级, 逆向工具