统一大模型接口工具

统一大模型接口工具 liteLLMhttps://docs.litellm.ai/docs/#litellm-python-sdkLiteLLM 完整使用教程什么是 LiteLLMLiteLLM 统一封装100 大模型厂商接口OpenAI、Claude、Gemini、Ollama、DeepSeek、Azure OpenAI、Groq 等两种使用模式Python SDK代码直接调用适合程序内部LiteLLM Proxy 网关服务启动 HTTP 接口兼容 OpenAI SDK多服务共享核心特点统一参数格式切换模型只改 model 名称不用重写请求代码一、安装1基础 SDK仅代码调用pipinstalllitellm2完整包SDK Proxy网关推荐pipinstalllitellm[proxy]模式1Python SDK 直接调用最简单示例1调用 OpenAI / DeepSeekimportosfromlitellmimportcompletion# 设置密钥方式1环境变量os.environ[OPENAI_API_KEY]sk-xxx# os.environ[DEEPSEEK_API_KEY] sk-xxxresponsecompletion(modelopenai/gpt-3.5-turbo,# modeldeepseek/deepseek-chat, # 切换模型只需改这一行messages[{role:user,content:你好请简单介绍LiteLLM}],temperature0.7)print(response.choices[0].message.content)示例2调用本地 Ollama本地大模型fromlitellmimportcompletion responsecompletion(modelollama/qwen2.5:7b,api_basehttp://localhost:11434,# ollama默认地址messages[{role:user,content:写一段快速排序代码}])print(response.choices[0].message.content)示例3流式输出 streamfromlitellmimportcompletion responsecompletion(modelopenai/gpt-3.5-turbo,messages[{role:user,content:讲个小故事}],streamTrue)forchunkinresponse:ifchunk.choicesandchunk.choices[0].delta.content:print(chunk.choices[0].delta.content,end)model 命名规范重要格式厂商前缀/模型名模型服务商model写法OpenAIopenai/gpt-4oAnthropic Claudeanthropic/claude-3-5-sonnet-20241022DeepSeekdeepseek/deepseek-chatGoogle Geminigemini/gemini-2.0-flashOllama本地ollama/llama3.1:8bGroqgroq/llama-3.3-70b-versatile模式2LiteLLM Proxy 网关服务重点生产常用启动一个兼容 OpenAI 协议的统一API网关所有程序只请求http://localhost:4000/v1/chat/completions由网关分发到不同模型。步骤1编写配置文件config.yamlmodel_list:# OpenAI-model_name:gpt-3.5-turbolitellm_params:model:openai/gpt-3.5-turboapi_key:sk-xxx# DeepSeek可以自定义别名-model_name:deepseek-chatlitellm_params:model:deepseek/deepseek-chatapi_key:sk-xxx# 本地Ollama-model_name:qwen2.5-7blitellm_params:model:ollama/qwen2.5:7bapi_base:http://localhost:11434general_settings:master_key:sk-master-123456# 访问网关的密钥自定义步骤2启动代理服务litellm--configconfig.yaml--host0.0.0.0--port4000启动成功Proxy running on http://0.0.0.0:4000管理后台地址http://localhost:4000/ui步骤3客户端调用任意OpenAI兼容SDK可以使用 openai python 库、curl、前端、各类工具直接调用fromopenaiimportOpenAI clientOpenAI(base_urlhttp://localhost:4000/v1,api_keysk-master-123456# 使用config里的master_key)respclient.chat.completions.create(modeldeepseek-chat,# 使用yaml中model_namemessages[{role:user,content:hello world}])print(resp.choices[0].message.content)curl 测试curlhttp://localhost:4000/v1/chat/completions\-HAuthorization: Bearer sk-master-123456\-HContent-Type: application/json\-d{ model: gpt-3.5-turbo, messages: [{role:user,content:hi}] }进阶常用功能1模型负载均衡/故障自动降级在 config.yaml 多个模型使用相同model_namelitellm 自动实现负载均衡失败自动切换model_list:-model_name:gpt-fallbacklitellm_params:model:openai/gpt-3.5-turboapi_key:sk-key1-model_name:gpt-fallback# 同名作为备用litellm_params:model:openai/gpt-3.5-turboapi_key:sk-key22设置日志、token用量统计proxy模式自带token消耗统计、限流、虚拟密钥管理后台UI操作常见踩坑model名称忘记加前缀❌modelgpt-3.5-turbo✅modelopenai/gpt-3.5-turboSDK直接调用必须加前缀proxy网关不需要Ollama 调用必须带上api_basehttp://localhost:11434网络访问失败添加代理litellm.proxy_settings{http_proxy:http://127.0.0.1:7890}密钥建议优先环境变量不要硬编码在代码官方文档https://docs.litellm.ai/docs