LiteLLM|把 100+ 家 LLM API 跑通:面向新手的完整指南
LiteLLM把 100 家 LLM API 跑通面向新手的完整指南【免费下载链接】litellmThe fastest, litest AI Gateway. Rust core with Python SDK. Call 100 LLM APIs in OpenAI (or native) format with cost tracking, guardrails, load balancing, and logging [Bedrock, Azure, OpenAI, Anthropic, OpenAI, VertexAI, vLLM, Nvidia NIM]项目地址: https://gitcode.com/GitHub_Trending/li/litellm手头有几百份合同 PDF 要喂给大模型做字段抽取时你最先撞上的问题往往不是 prompt而是基建每家 provider 一套 SDK、一套鉴权、一套错误格式代码还没写三行就陷在适配层里。LiteLLM 就是一个 AI 网关用统一的 OpenAI 格式让你直接调 100 家 LLMBedrock、Azure、OpenAI、Anthropic、VertexAI、vLLM 等顺带做好成本跟踪、负载均衡和日志。下面按先跑通再拆解最后端到端走一遍的顺序讲。① 先跑起来最小可用示例安装只需要一条命令pip install litellm接下来把 provider 的 API key 放到环境变量里completion()就能调通任意一家模型——你甚至可以只装它一个库不碰各家的官方 SDK。调通后把model参数换成anthropic/claude-sonnet-4-20250514或vertex_ai/gemini-2.0-flash其余代码一行不动。这就是它的核心卖点换模型只换字符串。② 它到底能做什么核心能力拆解一套 API 抽象掉 provider 差异。各家 SDK 的鉴权、请求体、流式格式都不一样LiteLLM 把它们统一成completion()一个入口。对你来说业务代码里只会出现一种写法from litellm import completion # 换 provider 只改 model 字符串其余代码不动 response completion( modelopenai/gpt-4o, messages[{role: user, content: 你好}], )成本自动算好。每次返回里都带成本字段批量任务跑完直接汇总不用自己查价目表乘 token 数print(response.cost) # 本次调用成本 print(response.usage.total_tokens)内置 RAG 管道。仓库里有一个开箱即用的文档摄取流水线上传 → OCR → 分块 → 向量化 → 入库支持 OpenAI、Bedrock、Vertex AI 等向量库入口就是litellm.ingest()/litellm.query()代码在 litellm/rag/。Router 负责负载均衡与故障转移。某个 provider 抖动时Router 可以自动重试、按权重分流、落到备用 provider——批量处理几千份文档时这层保护比你自己写重试循环省心得多。③ 跟着做批量处理 PDF 合同并抽取字段这一节走一个真实场景目录里有一堆合同 PDF目标是把「甲方、乙方、金额、签署日期」抽出来汇成一张表。分四步每步产出直接喂给下一步。1. 装 PDF 解析依赖pip install pypdf2. 从单个 PDF 提取纯文本LiteLLM 自带解析函数基于 pypdf接收文件字节返回纯文本扫描件会返回None第 ④ 节会讲怎么处理from litellm.rag.ingestion.file_parsers import extract_text_from_pdf with open(contract.pdf, rb) as f: text extract_text_from_pdf(f.read()) print(text[:200])3. 长文本分块适配上下文窗口合同动辄几十页直接塞给模型会超上下文。用内置的递归字符分块器它在段落、句子边界上切分并保留重叠比按固定长度硬切更不容易把条款切碎from litellm.rag.text_splitters.recursive_character_text_splitter import ( RecursiveCharacterTextSplitter, ) splitter RecursiveCharacterTextSplitter(chunk_size3000, chunk_overlap200) chunks splitter.split_text(text) print(len(chunks), chunks)4. 逐块调 LLM 做结构化抽取上一步的每个 chunk 作为 user 消息发给模型要求它输出 JSON。注意这里用timeout和num_retries兜住长文本调用的超时问题from litellm import completion def extract_fields(chunk: str) - str: resp completion( modelopenai/gpt-4o, messages[{ role: user, content: ( 从以下合同文本中抽取甲方、乙方、金额、签署日期。 只输出 JSON无内容则填空字符串。\n\n chunk ), }], timeout120, num_retries2, ) return resp.choices[0].message.content5. 批量循环结果落盘把前四步串起来遍历目录 → 提取 → 分块 → 逐块抽取 → 追加写入 JSONL方便后续用任何表格工具汇总import json from pathlib import Path def process_pdf(path: Path) - list[dict]: text extract_text_from_pdf(path.read_bytes()) results [] for chunk in RecursiveCharacterTextSplitter().split_text(text): raw extract_fields(chunk) results.append({file: path.name, fields: json.loads(raw)}) return results for pdf in sorted(Path(contracts/).glob(*.pdf)): for item in process_pdf(pdf): with open(extracted.jsonl, a, encodingutf-8) as f: f.write(json.dumps(item, ensure_asciiFalse) \n)跑完检查extracted.jsonl同一份合同的多个 chunk 会输出多行去重合并即可得到最终表格。④ 踩坑记录新手最常问的 3 个问题Q长文档调用总是超时怎么办A给completion()显式传timeout默认值对长文本偏小再配num_retries做自动重试。大批量任务里建议把超时统一提到 120 秒左右。如果走代理部署还可以在网关侧配置重试与故障转移把重试逻辑从业务代码里彻底挪走。Q明明 key 是对的却报 401 / 403A九成是环境问题要么环境变量没注入到当前进程要么model没带 provider 前缀导致 LiteLLM 猜错了路由要么该 key 在 provider 侧没有对应模型权限。先单独跑一个最小请求确认鉴权再逐步加参数定位。Qextract_text_from_pdf返回NoneA说明这份 PDF 是扫描件页面里没有文本层pypdf 无字可提。这条路只能走 OCRLiteLLM 的 RAG 摄取管道内置 OCR 环节可以对接 Bedrock、Vertex AI 等支持文档智能的服务在 litellm/rag/ingestion/ 下有各 provider 的实现。⑤ 往前走生态集成与下一步基础跑通之后你可以继续探索这几个方向可观测性把每次调用的耗时、token、成本送进 Langfuse示例见 litellm/integrations/代理网关给团队发虚拟 key、管预算和权限配置入口是 proxy_server_config.yaml路由策略自定义重试、分流、故障转移逻辑在 litellm/router_strategy/容器化部署一行命令起 Docker脚本在 docker/LiteLLM 把「多 provider 适配」这件脏活收敛成了一个库加一个网关剩下的精力可以全部留给业务本身。更多用法看 README.md项目架构细节在 ARCHITECTURE.md。【免费下载链接】litellmThe fastest, litest AI Gateway. Rust core with Python SDK. Call 100 LLM APIs in OpenAI (or native) format with cost tracking, guardrails, load balancing, and logging [Bedrock, Azure, OpenAI, Anthropic, OpenAI, VertexAI, vLLM, Nvidia NIM]项目地址: https://gitcode.com/GitHub_Trending/li/litellm创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻