1 框架介绍

1.1 核心理念

01.统一抽象层
    a.多模型统一接口
        a.功能说明
            LiteLLM提供统一的OpenAI格式接口调用100+种LLM。无需修改代码即可切换不同模型提供商。支持OpenAI、Anthropic、Cohere、Azure等主流服务。统一接口简化多模型管理和切换。
        b.代码示例
            ---
            # 1. 基础调用示例

            from litellm import completion
            import os

            # OpenAI
            response = completion(
                model="gpt-3.5-turbo",
                messages=[{"role": "user", "content": "你好"}]
            )
            print(response.choices[0].message.content)

            # Anthropic Claude
            response = completion(
                model="claude-3-sonnet-20240229",
                messages=[{"role": "user", "content": "你好"}]
            )
            print(response.choices[0].message.content)

            # Azure OpenAI
            response = completion(
                model="azure/gpt-35-turbo",
                messages=[{"role": "user", "content": "你好"}]
            )
            print(response.choices[0].message.content)

            # Cohere
            response = completion(
                model="command-nightly",
                messages=[{"role": "user", "content": "你好"}]
            )
            print(response.choices[0].message.content)

            print("✓ 统一接口调用完成")

            # 2. 模型标识符格式

            # 格式: provider/model-name
            models = [
                "gpt-3.5-turbo",              # OpenAI (默认)
                "claude-3-opus-20240229",     # Anthropic
                "azure/gpt-4",                # Azure OpenAI
                "bedrock/anthropic.claude-v2", # AWS Bedrock
                "vertex_ai/gemini-pro",       # Google Vertex AI
                "palm/chat-bison",            # Google PaLM
                "replicate/llama-2-70b",      # Replicate
                "huggingface/mistralai/Mistral-7B-v0.1", # HuggingFace
                "ollama/qwen:7b",             # Ollama本地模型
            ]

            for model in models:
                print(f"支持的模型: {model}")

            # 3. 动态模型切换

            def chat_with_model(model_name, message):
                """统一接口调用不同模型"""
                try:
                    response = completion(
                        model=model_name,
                        messages=[{"role": "user", "content": message}]
                    )
                    return response.choices[0].message.content
                except Exception as e:
                    return f"调用失败: {str(e)}"

            # 使用不同模型
            result1 = chat_with_model("gpt-3.5-turbo", "介绍Python")
            result2 = chat_with_model("claude-3-sonnet-20240229", "介绍Python")
            result3 = chat_with_model("ollama/qwen:7b", "介绍Python")

            print(f"GPT-3.5: {result1}")
            print(f"Claude: {result2}")
            print(f"Qwen: {result3}")

            # 4. 配置管理

            import litellm

            # 设置API密钥
            litellm.openai_key = os.getenv("OPENAI_API_KEY")
            litellm.anthropic_key = os.getenv("ANTHROPIC_API_KEY")
            litellm.cohere_key = os.getenv("COHERE_API_KEY")

            # 设置超时
            litellm.request_timeout = 60

            # 设置重试
            litellm.num_retries = 3

            # 启用调试日志
            litellm.set_verbose = True

            # 5. 响应格式统一

            response = completion(
                model="gpt-3.5-turbo",
                messages=[{"role": "user", "content": "你好"}]
            )

            # 统一的响应结构
            print(f"模型: {response.model}")
            print(f"内容: {response.choices[0].message.content}")
            print(f"角色: {response.choices[0].message.role}")
            print(f"完成原因: {response.choices[0].finish_reason}")
            print(f"输入tokens: {response.usage.prompt_tokens}")
            print(f"输出tokens: {response.usage.completion_tokens}")
            print(f"总tokens: {response.usage.total_tokens}")

            # 6. 异常处理统一

            from litellm import AuthenticationError, RateLimitError, ServiceUnavailableError

            def safe_completion(model, messages):
                """带异常处理的统一调用"""
                try:
                    return completion(model=model, messages=messages)
                except AuthenticationError:
                    return "认证失败,请检查API密钥"
                except RateLimitError:
                    return "达到速率限制,请稍后重试"
                except ServiceUnavailableError:
                    return "服务不可用"
                except Exception as e:
                    return f"未知错误: {str(e)}"

            result = safe_completion(
                "gpt-3.5-turbo",
                [{"role": "user", "content": "你好"}]
            )
            print(result)

            print("✓ 核心理念示例完成")
            ---
    b.成本优化
        a.功能说明
            自动选择性价比最优的模型。实现请求路由和负载均衡。支持预算控制和成本追踪。成本优化降低AI应用开支。
        b.代码示例
            ---
            # 1. 成本追踪

            import litellm
            from litellm import completion_cost

            # 启用成本追踪
            litellm.success_callback = ["langfuse"]

            response = completion(
                model="gpt-3.5-turbo",
                messages=[{"role": "user", "content": "介绍AI"}]
            )

            # 计算成本
            cost = completion_cost(
                completion_response=response
            )

            print(f"本次调用成本: ${cost:.6f}")
            print(f"输入tokens: {response.usage.prompt_tokens}")
            print(f"输出tokens: {response.usage.completion_tokens}")

            # 2. 预算控制

            from litellm import BudgetManager

            # 创建预算管理器
            budget_manager = BudgetManager(
                project_name="my_project",
                client_type="local"
            )

            # 设置预算上限
            budget_manager.create_budget(
                budget_id="daily_budget",
                max_budget=10.0,  # 每日最多$10
                duration="1d"
            )

            # 检查预算
            def chat_with_budget(message):
                if budget_manager.get_current_cost("daily_budget") >= 10.0:
                    return "今日预算已用完"

                response = completion(
                    model="gpt-3.5-turbo",
                    messages=[{"role": "user", "content": message}]
                )

                # 记录成本
                cost = completion_cost(response)
                budget_manager.update_cost("daily_budget", cost)

                return response.choices[0].message.content

            result = chat_with_budget("你好")
            print(result)

            # 3. 模型降级策略

            def cost_effective_completion(message, budget_limit=0.001):
                """根据预算选择模型"""

                # 模型优先级(从便宜到贵)
                models = [
                    "ollama/qwen:7b",      # 本地免费
                    "gpt-3.5-turbo",       # 便宜
                    "claude-3-haiku",      # 中等
                    "gpt-4",               # 昂贵
                ]

                for model in models:
                    try:
                        response = completion(
                            model=model,
                            messages=[{"role": "user", "content": message}]
                        )

                        cost = completion_cost(response)

                        if cost <= budget_limit:
                            return {
                                "content": response.choices[0].message.content,
                                "model": model,
                                "cost": cost
                            }
                    except Exception as e:
                        continue

                return {"error": "没有符合预算的可用模型"}

            result = cost_effective_completion("介绍Python")
            print(f"使用模型: {result.get('model')}")
            print(f"成本: ${result.get('cost', 0):.6f}")
            print(f"响应: {result.get('content')}")

            print("✓ 成本优化完成")
            ---

1.2 统一接口

01.OpenAI兼容
    a.标准格式
        a.功能说明
            所有模型使用OpenAI标准格式调用。支持messages、temperature、max_tokens等参数。兼容OpenAI SDK和工具。标准化降低学习成本。
        b.代码示例
            ---
            # 1. 标准OpenAI格式

            from litellm import completion

            # 使用OpenAI标准格式
            response = completion(
                model="gpt-3.5-turbo",
                messages=[
                    {"role": "system", "content": "你是一个AI助手"},
                    {"role": "user", "content": "介绍Python"}
                ],
                temperature=0.7,
                max_tokens=1000,
                top_p=1.0,
                frequency_penalty=0.0,
                presence_penalty=0.0
            )

            print(response.choices[0].message.content)

            # 2. 其他模型使用相同格式

            # Claude使用OpenAI格式
            response = completion(
                model="claude-3-sonnet-20240229",
                messages=[
                    {"role": "system", "content": "你是一个AI助手"},
                    {"role": "user", "content": "介绍Python"}
                ],
                temperature=0.7,
                max_tokens=1000
            )

            # Ollama使用OpenAI格式
            response = completion(
                model="ollama/qwen:7b",
                messages=[
                    {"role": "system", "content": "你是一个AI助手"},
                    {"role": "user", "content": "介绍Python"}
                ],
                temperature=0.7
            )

            print("✓ 统一接口完成")
            ---

1.3 使用场景

01.应用场景
    a.多模型对比
        a.功能说明
            快速对比不同模型的输出质量。评估模型性能和成本。选择最适合的模型。多模型对比优化AI应用。
        b.代码示例
            ---
            # 1. 模型A/B测试

            from litellm import completion
            import time

            def compare_models(prompt, models):
                """对比多个模型的响应"""
                results = []

                for model in models:
                    start = time.time()
                    try:
                        response = completion(
                            model=model,
                            messages=[{"role": "user", "content": prompt}]
                        )

                        duration = time.time() - start

                        results.append({
                            "model": model,
                            "response": response.choices[0].message.content,
                            "tokens": response.usage.total_tokens,
                            "duration": duration
                        })
                    except Exception as e:
                        results.append({
                            "model": model,
                            "error": str(e)
                        })

                return results

            # 对比三个模型
            models = ["gpt-3.5-turbo", "claude-3-haiku", "ollama/qwen:7b"]
            results = compare_models("介绍AI的未来发展", models)

            for r in results:
                print(f"\n模型: {r['model']}")
                if 'error' in r:
                    print(f"错误: {r['error']}")
                else:
                    print(f"响应: {r['response'][:100]}...")
                    print(f"Tokens: {r['tokens']}, 耗时: {r['duration']:.2f}s")

            print("✓ 使用场景完成")
            ---

2 快速开始

2.1 安装配置

01.安装部署
    a.pip安装
        a.功能说明
            使用pip快速安装LiteLLM。支持Python 3.8+环境。安装简单无复杂依赖。快速开始AI开发。
        b.代码示例
            ---
            # 1. 基础安装

            # 安装LiteLLM
            pip install litellm

            # 验证安装
            python -c "import litellm; print(litellm.__version__)"

            # 2. 完整安装(包含所有providers)

            pip install 'litellm[proxy]'

            # 3. 环境变量配置

            # .env文件
            OPENAI_API_KEY=your_openai_key
            ANTHROPIC_API_KEY=your_anthropic_key
            COHERE_API_KEY=your_cohere_key

            # 加载环境变量
            from dotenv import load_dotenv
            load_dotenv()

            import os
            import litellm

            litellm.openai_key = os.getenv("OPENAI_API_KEY")
            litellm.anthropic_key = os.getenv("ANTHROPIC_API_KEY")

            print("✓ 安装配置完成")
            ---

2.2 基础调用

01.简单调用
    a.completion函数
        a.功能说明
            使用completion函数调用任意LLM。支持同步和异步调用。返回标准化响应。简单易用的API。
        b.代码示例
            ---
            # 1. 同步调用

            from litellm import completion

            response = completion(
                model="gpt-3.5-turbo",
                messages=[{"role": "user", "content": "你好"}]
            )

            print(response.choices[0].message.content)

            # 2. 异步调用

            from litellm import acompletion
            import asyncio

            async def async_chat():
                response = await acompletion(
                    model="gpt-3.5-turbo",
                    messages=[{"role": "user", "content": "你好"}]
                )
                return response.choices[0].message.content

            result = asyncio.run(async_chat())
            print(result)

            # 3. 多轮对话

            messages = [
                {"role": "system", "content": "你是AI助手"},
                {"role": "user", "content": "我叫张三"},
                {"role": "assistant", "content": "你好张三!"},
                {"role": "user", "content": "我叫什么名字?"}
            ]

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

            print(response.choices[0].message.content)

            print("✓ 基础调用完成")
            ---

2.3 流式输出

01.流式响应
    a.streaming参数
        a.功能说明
            启用streaming实现实时输出。逐token返回生成内容。提升用户体验。流式输出适合长文本生成。
        b.代码示例
            ---
            # 1. 流式调用

            from litellm import completion

            response = completion(
                model="gpt-3.5-turbo",
                messages=[{"role": "user", "content": "讲个故事"}],
                stream=True
            )

            for chunk in response:
                if chunk.choices[0].delta.content:
                    print(chunk.choices[0].delta.content, end='', flush=True)

            print("\n✓ 流式输出完成")
            ---

3 模型支持

3.1 主流LLM

01.OpenAI模型
    a.GPT系列
        a.功能说明
            支持GPT-3.5和GPT-4全系列模型。配置简单直接调用。性能稳定响应快速。OpenAI是主流选择。
        b.代码示例
            ---
            # OpenAI模型调用

            from litellm import completion

            # GPT-3.5
            response = completion(
                model="gpt-3.5-turbo",
                messages=[{"role": "user", "content": "介绍AI"}]
            )

            # GPT-4
            response = completion(
                model="gpt-4",
                messages=[{"role": "user", "content": "介绍AI"}]
            )

            # Claude
            response = completion(
                model="claude-3-sonnet-20240229",
                messages=[{"role": "user", "content": "介绍AI"}]
            )

            print("✓ 主流LLM完成")
            ---

3.2 国产大模型

01.国产模型支持
    a.通义千问
        a.功能说明
            支持阿里通义千问系列模型。适配国内网络环境。满足数据合规要求。国产模型是信创首选。
        b.代码示例
            ---
            # 国产大模型调用

            from litellm import completion

            # 通义千问(通过DashScope)
            response = completion(
                model="dashscope/qwen-turbo",
                messages=[{"role": "user", "content": "你好"}],
                api_key=os.getenv("DASHSCOPE_API_KEY")
            )

            # 文心一言
            response = completion(
                model="wenxin/ernie-bot",
                messages=[{"role": "user", "content": "你好"}]
            )

            # 智谱ChatGLM
            response = completion(
                model="zhipu/chatglm3-6b",
                messages=[{"role": "user", "content": "你好"}]
            )

            print("✓ 国产大模型完成")
            ---

3.3 本地模型

01.Ollama集成
    a.本地部署
        a.功能说明
            通过Ollama调用本地模型。无需API Key离线运行。数据完全本地化。适合隐私敏感场景。
        b.代码示例
            ---
            # 本地模型调用

            from litellm import completion

            # Ollama本地模型
            response = completion(
                model="ollama/qwen:7b",
                messages=[{"role": "user", "content": "你好"}],
                api_base="http://localhost:11434"
            )

            print(response.choices[0].message.content)

            # 批量调用本地模型
            models = ["ollama/qwen:7b", "ollama/llama2", "ollama/mistral"]

            for model in models:
                try:
                    response = completion(
                        model=model,
                        messages=[{"role": "user", "content": "你好"}]
                    )
                    print(f"{model}: {response.choices[0].message.content}")
                except Exception as e:
                    print(f"{model}: 调用失败")

            print("✓ 本地模型完成")
            ---

4 高级特性

4.1 负载均衡

01.自动路由
    a.Router配置
        a.功能说明
            Router实现多模型负载均衡。自动分发请求到可用模型。支持权重和优先级配置。负载均衡提升可用性。
        b.代码示例
            ---
            # 负载均衡配置

            from litellm import Router

            # 创建路由器
            router = Router(
                model_list=[
                    {
                        "model_name": "gpt-3.5",
                        "litellm_params": {
                            "model": "gpt-3.5-turbo",
                            "api_key": os.getenv("OPENAI_API_KEY")
                        }
                    },
                    {
                        "model_name": "claude",
                        "litellm_params": {
                            "model": "claude-3-sonnet-20240229",
                            "api_key": os.getenv("ANTHROPIC_API_KEY")
                        }
                    },
                    {
                        "model_name": "local",
                        "litellm_params": {
                            "model": "ollama/qwen:7b"
                        }
                    }
                ]
            )

            # 使用路由器
            response = router.completion(
                model="gpt-3.5",
                messages=[{"role": "user", "content": "你好"}]
            )

            print(response.choices[0].message.content)
            print("✓ 负载均衡完成")
            ---

4.2 失败重试

01.重试机制
    a.自动重试
        a.功能说明
            自动重试失败的请求。配置重试次数和延迟。支持fallback备用模型。重试机制提升稳定性。
        b.代码示例
            ---
            # 重试配置

            from litellm import Router

            router = Router(
                model_list=[...],
                num_retries=3,
                timeout=60,
                fallbacks=[
                    {"gpt-4": ["gpt-3.5-turbo"]},
                    {"claude-3-opus": ["claude-3-sonnet"]}
                ]
            )

            # 自动重试和fallback
            response = router.completion(
                model="gpt-4",
                messages=[{"role": "user", "content": "你好"}]
            )

            print("✓ 失败重试完成")
            ---

4.3 缓存机制

01.响应缓存
    a.Redis缓存
        a.功能说明
            使用Redis缓存相同请求的响应。减少API调用节省成本。支持TTL过期时间。缓存提升性能降低延迟。
        b.代码示例
            ---
            # Redis缓存

            from litellm import completion
            from litellm.caching import Cache

            # 启用Redis缓存
            litellm.cache = Cache(
                type="redis",
                host="localhost",
                port=6379
            )

            # 第一次调用(无缓存)
            response = completion(
                model="gpt-3.5-turbo",
                messages=[{"role": "user", "content": "什么是AI?"}],
                caching=True
            )

            # 第二次调用(命中缓存)
            response = completion(
                model="gpt-3.5-turbo",
                messages=[{"role": "user", "content": "什么是AI?"}],
                caching=True
            )

            print("✓ 缓存机制完成")
            ---

4.4 成本追踪

01.成本监控
    a.实时统计
        a.功能说明
            实时追踪API调用成本。按模型和用户统计费用。生成成本报表。成本追踪优化预算管理。
        b.代码示例
            ---
            # 成本追踪

            from litellm import completion, completion_cost
            import litellm

            # 成本回调
            costs = []

            def track_cost(kwargs, completion_response, start_time, end_time):
                cost = completion_cost(completion_response)
                costs.append({
                    "model": kwargs["model"],
                    "cost": cost,
                    "tokens": completion_response.usage.total_tokens
                })

            litellm.success_callback = [track_cost]

            # 调用模型
            response = completion(
                model="gpt-3.5-turbo",
                messages=[{"role": "user", "content": "你好"}]
            )

            # 查看成本
            print(f"总成本: ${sum(c['cost'] for c in costs):.6f}")
            print("✓ 成本追踪完成")
            ---

5 Proxy代理服务

5.1 代理部署

01.Proxy服务
    a.启动代理
        a.功能说明
            LiteLLM Proxy提供统一API网关。管理多个模型和API密钥。实现访问控制和监控。Proxy简化企业级部署。
        b.代码示例
            ---
            # 1. 配置文件 config.yaml

            model_list:
              - model_name: gpt-3.5
                litellm_params:
                  model: gpt-3.5-turbo
                  api_key: os.environ/OPENAI_API_KEY

              - model_name: claude
                litellm_params:
                  model: claude-3-sonnet-20240229
                  api_key: os.environ/ANTHROPIC_API_KEY

              - model_name: local
                litellm_params:
                  model: ollama/qwen:7b
                  api_base: http://localhost:11434

            # 2. 启动Proxy服务

            # 命令行启动
            litellm --config config.yaml --port 8000

            # 或使用Docker
            docker run -p 8000:8000 -v $(pwd)/config.yaml:/app/config.yaml ghcr.io/berriai/litellm:latest

            # 3. 客户端调用

            import openai

            client = openai.OpenAI(
                api_key="sk-1234",  # LiteLLM Proxy密钥
                base_url="http://localhost:8000"
            )

            response = client.chat.completions.create(
                model="gpt-3.5",
                messages=[{"role": "user", "content": "你好"}]
            )

            print(response.choices[0].message.content)
            print("✓ 代理部署完成")
            ---

5.2 API密钥管理

01.密钥配置
    a.多密钥管理
        a.功能说明
            为不同用户和团队配置独立API密钥。实现密钥轮换和过期管理。追踪密钥使用情况。密钥管理保障安全。
        b.代码示例
            ---
            # config.yaml密钥配置

            general_settings:
              master_key: sk-1234  # 主密钥
              database_url: postgresql://user:pass@localhost/litellm

            litellm_settings:
              drop_params: true
              set_verbose: false

            router_settings:
              enable_pre_call_checks: true

            # 虚拟密钥配置
            keys:
              - key: sk-team-a
                models: ["gpt-3.5", "claude"]
                max_budget: 100.0
                budget_duration: "1mo"

              - key: sk-team-b
                models: ["local"]
                max_budget: 0

            print("✓ API密钥管理完成")
            ---

5.3 访问控制

01.权限管理
    a.RBAC控制
        a.功能说明
            基于角色的访问控制。限制用户可用的模型和功能。设置请求速率限制。访问控制保障合规。
        b.代码示例
            ---
            # 访问控制配置

            keys:
              - key: sk-admin
                permissions:
                  - "create_key"
                  - "delete_key"
                  - "view_spend"
                models: ["*"]

              - key: sk-developer
                permissions:
                  - "chat_completion"
                models: ["gpt-3.5", "local"]
                tpm_limit: 10000
                rpm_limit: 100

              - key: sk-readonly
                permissions:
                  - "view_spend"
                models: []

            print("✓ 访问控制完成")
            ---

5.4 监控告警

01.系统监控
    a.指标收集
        a.功能说明
            收集请求数、延迟、成本等指标。集成Prometheus和Grafana。配置告警规则。监控告警保障稳定。
        b.代码示例
            ---
            # Prometheus监控配置

            general_settings:
              callbacks: ["prometheus"]

            prometheus_settings:
              port: 9090

            # Grafana仪表盘查询
            # 请求总数
            sum(litellm_requests_total)

            # 平均延迟
            avg(litellm_request_duration_seconds)

            # 成本统计
            sum(litellm_spend_total) by (model)

            # 告警规则
            # 高延迟告警
            avg(litellm_request_duration_seconds) > 5

            # 高成本告警
            sum(litellm_spend_total) > 100

            print("✓ 监控告警完成")
            ---

6 集成应用

6.1 LangChain集成

01.LangChain适配
    a.作为LLM Provider
        a.功能说明
            LiteLLM作为LangChain的LLM提供者。统一管理多个模型。简化模型切换。集成提升开发效率。
        b.代码示例
            ---
            # LangChain集成

            from langchain.chat_models import ChatLiteLLM
            from langchain.schema import HumanMessage

            # 使用LiteLLM作为LangChain模型
            chat = ChatLiteLLM(model="gpt-3.5-turbo")

            messages = [
                HumanMessage(content="介绍Python编程语言")
            ]

            response = chat(messages)
            print(response.content)

            # 切换模型无需修改代码
            chat = ChatLiteLLM(model="claude-3-sonnet-20240229")
            response = chat(messages)
            print(response.content)

            # 本地模型
            chat = ChatLiteLLM(model="ollama/qwen:7b")
            response = chat(messages)
            print(response.content)

            print("✓ LangChain集成完成")
            ---

6.2 自定义集成

01.SDK集成
    a.Python SDK
        a.功能说明
            在Python项目中集成LiteLLM。封装为统一服务层。支持依赖注入和配置管理。SDK集成简化开发。
        b.代码示例
            ---
            # 自定义LLM服务类

            from litellm import completion
            from typing import List, Dict

            class LLMService:
                """统一LLM服务"""

                def __init__(self, default_model: str = "gpt-3.5-turbo"):
                    self.default_model = default_model

                def chat(self, message: str, model: str = None) -> str:
                    """单轮对话"""
                    model = model or self.default_model

                    response = completion(
                        model=model,
                        messages=[{"role": "user", "content": message}]
                    )

                    return response.choices[0].message.content

                def chat_with_history(
                    self,
                    messages: List[Dict],
                    model: str = None
                ) -> str:
                    """多轮对话"""
                    model = model or self.default_model

                    response = completion(
                        model=model,
                        messages=messages
                    )

                    return response.choices[0].message.content

            # 使用服务
            llm = LLMService()

            result = llm.chat("你好")
            print(result)

            result = llm.chat("你好", model="claude-3-sonnet-20240229")
            print(result)

            print("✓ 自定义集成完成")
            ---

6.3 企业级部署

01.生产环境
    a.高可用部署
        a.功能说明
            Kubernetes集群部署LiteLLM Proxy。配置负载均衡和自动扩缩容。实现多区域容灾。企业级部署保障稳定。
        b.代码示例
            ---
            # Kubernetes部署配置

            # deployment.yaml
            apiVersion: apps/v1
            kind: Deployment
            metadata:
              name: litellm-proxy
            spec:
              replicas: 3
              selector:
                matchLabels:
                  app: litellm
              template:
                metadata:
                  labels:
                    app: litellm
                spec:
                  containers:
                  - name: litellm
                    image: ghcr.io/berriai/litellm:latest
                    ports:
                    - containerPort: 8000
                    env:
                    - name: OPENAI_API_KEY
                      valueFrom:
                        secretKeyRef:
                          name: litellm-secrets
                          key: openai-key
                    volumeMounts:
                    - name: config
                      mountPath: /app/config.yaml
                      subPath: config.yaml
                  volumes:
                  - name: config
                    configMap:
                      name: litellm-config

            ---
            # service.yaml
            apiVersion: v1
            kind: Service
            metadata:
              name: litellm-service
            spec:
              selector:
                app: litellm
              ports:
              - port: 80
                targetPort: 8000
              type: LoadBalancer

            print("✓ 企业级部署完成")
            ---

7 最佳实践

7.1 模型选型

01.选择策略
    a.场景匹配
        a.功能说明
            根据应用场景选择合适模型。平衡性能、成本和延迟。考虑数据合规要求。科学选型优化体验。
        b.代码示例
            ---
            # 模型选型矩阵

            model_matrix = {
                "简单问答": {
                    "推荐": ["gpt-3.5-turbo", "claude-3-haiku"],
                    "成本": "低",
                    "延迟": "快"
                },
                "复杂推理": {
                    "推荐": ["gpt-4", "claude-3-opus"],
                    "成本": "高",
                    "延迟": "慢"
                },
                "代码生成": {
                    "推荐": ["gpt-4", "claude-3-sonnet"],
                    "成本": "中",
                    "延迟": "中"
                },
                "本地部署": {
                    "推荐": ["ollama/qwen:7b", "ollama/llama2"],
                    "成本": "无",
                    "延迟": "取决于硬件"
                },
                "信创环境": {
                    "推荐": ["dashscope/qwen-turbo", "ollama/qwen:7b"],
                    "成本": "低",
                    "延迟": "快"
                }
            }

            # 根据场景选择模型
            def select_model(scenario: str) -> str:
                if scenario in model_matrix:
                    return model_matrix[scenario]["推荐"][0]
                return "gpt-3.5-turbo"

            model = select_model("简单问答")
            print(f"推荐模型: {model}")

            print("✓ 模型选型完成")
            ---

7.2 性能优化

01.优化技巧
    a.并发处理
        a.功能说明
            使用异步并发提升吞吐量。配置连接池复用连接。启用缓存减少重复调用。性能优化提升响应速度。
        b.代码示例
            ---
            # 并发调用优化

            from litellm import acompletion
            import asyncio

            async def batch_process(messages: list):
                """批量并发处理"""
                tasks = [
                    acompletion(
                        model="gpt-3.5-turbo",
                        messages=[{"role": "user", "content": msg}]
                    )
                    for msg in messages
                ]

                results = await asyncio.gather(*tasks)
                return [r.choices[0].message.content for r in results]

            # 使用
            messages = ["问题1", "问题2", "问题3", "问题4", "问题5"]
            results = asyncio.run(batch_process(messages))

            for i, result in enumerate(results, 1):
                print(f"结果{i}: {result}")

            print("✓ 性能优化完成")
            ---

7.3 成本控制

01.成本管理
    a.预算控制
        a.功能说明
            设置团队和项目预算上限。监控实时成本消耗。自动限流和告警。成本控制避免超支。
        b.代码示例
            ---
            # 成本控制策略

            from litellm import completion, completion_cost

            class CostController:
                """成本控制器"""

                def __init__(self, daily_budget: float):
                    self.daily_budget = daily_budget
                    self.current_cost = 0.0

                def check_budget(self) -> bool:
                    """检查预算"""
                    return self.current_cost < self.daily_budget

                def chat(self, message: str, model: str = "gpt-3.5-turbo"):
                    """带预算控制的对话"""
                    if not self.check_budget():
                        return "今日预算已用完,请明天再试"

                    response = completion(
                        model=model,
                        messages=[{"role": "user", "content": message}]
                    )

                    # 更新成本
                    cost = completion_cost(response)
                    self.current_cost += cost

                    return {
                        "response": response.choices[0].message.content,
                        "cost": cost,
                        "remaining": self.daily_budget - self.current_cost
                    }

            # 使用
            controller = CostController(daily_budget=1.0)

            result = controller.chat("你好")
            print(f"响应: {result['response']}")
            print(f"本次成本: ${result['cost']:.6f}")
            print(f"剩余预算: ${result['remaining']:.6f}")

            print("✓ 成本控制完成")
            ---